diff --git a/build.gradle b/build.gradle index 6389d18..7ca98c7 100644 --- a/build.gradle +++ b/build.gradle @@ -5,6 +5,19 @@ buildscript { google() jcenter() } + dependencies { + classpath "com.android.tools.build:gradle:4.0.1" + + // NOTE: Do not place your application dependencies here; they belong + // in the individual module build.gradle files + } +} + +allprojects { + repositories { + google() + jcenter() + } } android { @@ -34,7 +47,7 @@ dependencies { compileOnly fileTree(dir: 'libs', include: ['godot-lib*.aar']) // Firebase Core (needs Analytics implementation) (https://firebase.google.com/support/release-notes/android) - implementation 'com.google.firebase:firebase-analytics:17.4.0' + implementation 'com.google.firebase:firebase-analytics:17.5.0' // Firebase Ads (AdMob) (https://firebase.google.com/support/release-notes/android) implementation 'com.google.android.gms:play-services-ads:19.1.0' // Firebase Ads (AdMob) Unity Mediation (https://github.com/googleads/googleads-mobile-android-mediation/blob/master/ThirdPartyAdapters/unity/CHANGELOG.md#version-3422) diff --git a/downloads/Firebase.release.aar b/downloads/Firebase.release.aar index ca75a9d..6a374c9 100644 Binary files a/downloads/Firebase.release.aar and b/downloads/Firebase.release.aar differ diff --git a/downloads/Firebase.release.gdap b/downloads/Firebase.release.gdap index 8f883e2..5a35c60 100644 --- a/downloads/Firebase.release.gdap +++ b/downloads/Firebase.release.gdap @@ -6,7 +6,7 @@ binary="Firebase.release.aar" [dependencies] remote=[ - "com.google.firebase:firebase-analytics:17.4.0", + "com.google.firebase:firebase-analytics:17.5.0", "com.google.android.gms:play-services-ads:19.1.0", "com.google.ads.mediation:unity:3.4.2.2", "com.google.firebase:firebase-auth:19.3.1", diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..646c51b --- /dev/null +++ b/gradle.properties @@ -0,0 +1,2 @@ +android.useAndroidX=true +android.enableJetifier=true diff --git a/src/main/java/org/godotengine/androidplugin/firebase/Analytics.java b/src/main/java/org/godotengine/androidplugin/firebase/Analytics.java index d6daafc..2099fc5 100644 --- a/src/main/java/org/godotengine/androidplugin/firebase/Analytics.java +++ b/src/main/java/org/godotengine/androidplugin/firebase/Analytics.java @@ -68,4 +68,12 @@ public void sendCustom(final String key, final String value) { // firebaseAnalytics = FirebaseAnalytics.getInstance(activity); firebaseAnalytics.logEvent("appEvent", bundle); } -} \ No newline at end of file + + public void setCollectionEnabled(final boolean enabled) { + firebaseAnalytics.setAnalyticsCollectionEnabled(enabled); + } + + public void resetData() { + firebaseAnalytics.resetAnalyticsData(); + } +} diff --git a/src/main/java/org/godotengine/androidplugin/firebase/Firebase.java b/src/main/java/org/godotengine/androidplugin/firebase/Firebase.java index efc1268..ee109dc 100644 --- a/src/main/java/org/godotengine/androidplugin/firebase/Firebase.java +++ b/src/main/java/org/godotengine/androidplugin/firebase/Firebase.java @@ -75,6 +75,8 @@ public List getPluginMethods() { // ===== Analytics methods.add("analytics_send_custom"); methods.add("analytics_send_events"); + methods.add("analytics_set_collection_enabled"); + methods.add("analytics_reset_data"); // ===== Authentication methods.add("authentication_get_id_token"); @@ -243,7 +245,7 @@ public void run() { } public void analytics_send_events(final String key, final Dictionary data) { - if (key.length() <= 0 || data.size() <= 0) { + if (key.length() <= 0) { return; } @@ -253,6 +255,22 @@ public void run() { } }); } + + public void analytics_set_collection_enabled(final boolean enabled) { + godot.runOnUiThread(new Runnable() { + public void run() { + Analytics.getInstance(godot).setCollectionEnabled(enabled); + } + }); + } + + public void analytics_reset_data() { + godot.runOnUiThread(new Runnable() { + public void run() { + Analytics.getInstance(godot).resetData(); + } + }); + } // ===== Analytics ================================================================================================ // ===== Authentication diff --git a/src/main/java/org/godotengine/androidplugin/firebase/Utils.java b/src/main/java/org/godotengine/androidplugin/firebase/Utils.java index 25ec742..8399a98 100644 --- a/src/main/java/org/godotengine/androidplugin/firebase/Utils.java +++ b/src/main/java/org/godotengine/androidplugin/firebase/Utils.java @@ -152,7 +152,8 @@ public static void putGodotValue(Bundle bundle, String key, Object value) { if (value instanceof Boolean) { bundle.putBoolean(key, (Boolean) value); } else if (value instanceof Integer) { - bundle.putInt(key, (Integer) value); + // Storing as long since that's often expected + bundle.putLong(key, (Integer) value); } else if (value instanceof Double) { bundle.putDouble(key, (Double) value); } else if (value instanceof String) {