From 5428530dbd610f6f104960128b1dbcb896d7f7a0 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Thu, 31 Aug 2017 11:07:16 +1200 Subject: [PATCH] Add Firebase analytics --- .gitignore | 1 + app/build.gradle | 25 +++++++++++++--- app/src/google/AndroidManifest.xml | 20 +++++++++++++ .../traccar/client/GoogleMainApplication.java | 30 +++++++++++++++++++ app/src/hidden/AndroidManifest.xml | 2 +- build.gradle | 3 +- 6 files changed, 74 insertions(+), 7 deletions(-) create mode 100644 app/src/google/AndroidManifest.xml create mode 100644 app/src/google/java/org/traccar/client/GoogleMainApplication.java diff --git a/.gitignore b/.gitignore index 9d95977..1cf4420 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ local.properties *.iml build/ .DS_Store +google-services.json diff --git a/app/build.gradle b/app/build.gradle index 54bc665..f1d4757 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -5,6 +5,8 @@ android { buildToolsVersion '26.0.1' defaultConfig { + applicationId "org.traccar.client" + buildConfigField "boolean", "HIDDEN_APP", "false" minSdkVersion 14 targetSdkVersion 26 versionCode 37 @@ -16,10 +18,8 @@ android { } productFlavors { - regular { - applicationId "org.traccar.client" - buildConfigField "boolean", "HIDDEN_APP", "false" - } + regular + google hidden { applicationId "org.traccar.client.hidden" buildConfigField "boolean", "HIDDEN_APP", "true" @@ -38,4 +38,21 @@ dependencies { compile 'com.android.support:design:26.0.1' testCompile 'junit:junit:4.12' testCompile 'org.robolectric:robolectric:3.4.2' + googleCompile 'com.google.firebase:firebase-core:11.2.0' + googleCompile 'com.google.firebase:firebase-crash:11.2.0' +} + +if (getGradle().getStartParameter().getTaskRequests().toString().contains("Google")) { + apply plugin: 'com.google.gms.google-services' + + task copyJson(type: Copy) { + from '../../traccar-shared/google-services' + into '.' + include 'traccar-client-android.json' + rename('traccar-client-android.json', 'google-services.json') + } + + afterEvaluate { + preBuild.dependsOn copyJson + } } diff --git a/app/src/google/AndroidManifest.xml b/app/src/google/AndroidManifest.xml new file mode 100644 index 0000000..6f58b66 --- /dev/null +++ b/app/src/google/AndroidManifest.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + diff --git a/app/src/google/java/org/traccar/client/GoogleMainApplication.java b/app/src/google/java/org/traccar/client/GoogleMainApplication.java new file mode 100644 index 0000000..4ec4e4e --- /dev/null +++ b/app/src/google/java/org/traccar/client/GoogleMainApplication.java @@ -0,0 +1,30 @@ +/* + * Copyright 2017 Anton Tananaev (anton.tananaev@gmail.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.traccar.client; + +import com.google.firebase.analytics.FirebaseAnalytics; + +public class GoogleMainApplication extends MainApplication { + + private FirebaseAnalytics firebaseAnalytics; + + @Override + public void onCreate() { + super.onCreate(); + firebaseAnalytics = FirebaseAnalytics.getInstance(this); + } + +} diff --git a/app/src/hidden/AndroidManifest.xml b/app/src/hidden/AndroidManifest.xml index e9e7f96..e4cdaca 100644 --- a/app/src/hidden/AndroidManifest.xml +++ b/app/src/hidden/AndroidManifest.xml @@ -6,7 +6,7 @@ + tools:replace="android:label"> diff --git a/build.gradle b/build.gradle index 67e8a6e..9327e1d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,10 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' + classpath 'com.google.gms:google-services:3.1.0' } }