@SuppressWarnings("MissingPermission") static void setAnalyticsEnabled(@NonNull Context context, boolean enabled) { try { FirebaseAnalytics.getInstance(context).setAnalyticsCollectionEnabled(enabled); } catch (LinkageError e) { AppCenterLog.debug(LOG_TAG, "Firebase analytics not available so cannot change state."); } }
private void logAnalytics(int randomIndex){ Bundle bundle = new Bundle(); bundle.putString(FirebaseAnalytics.Param.ITEM_ID, String.valueOf(randomIndex)); mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle); //Sets whether analytics collection is enabled for this app on this device. mFirebaseAnalytics.setAnalyticsCollectionEnabled(true); //Sets the minimum engagement time required before starting a session. The default value is 10000 (10 seconds). Let's make it 20 seconds just for the fun mFirebaseAnalytics.setMinimumSessionDuration(20000); //Sets the duration of inactivity that terminates the current session. The default value is 1800000 (30 minutes). mFirebaseAnalytics.setSessionTimeoutDuration(500); //Sets the user ID property. mFirebaseAnalytics.setUserId(String.valueOf(randomIndex)); }
@SuppressWarnings("deprecation") @Test public void verifyEnableFirebaseAnalytics() { Push push = Push.getInstance(); Channel channel = mock(Channel.class); start(push, channel); verify(mFirebaseAnalyticsInstance).setAnalyticsCollectionEnabled(false); Push.enableFirebaseAnalytics(mContext); verify(mFirebaseAnalyticsInstance).setAnalyticsCollectionEnabled(false); }
@SuppressWarnings("deprecation") @Test public void verifyEnableFirebaseAnalyticsBeforeStart() { Push push = Push.getInstance(); Channel channel = mock(Channel.class); Push.enableFirebaseAnalytics(mContext); start(push, channel); verify(mFirebaseAnalyticsInstance, never()).setAnalyticsCollectionEnabled(false); }
verify(mFirebaseAnalyticsInstance).setAnalyticsCollectionEnabled(false); verify(mFirebaseAnalyticsInstance, never()).setAnalyticsCollectionEnabled(true); push = Push.getInstance(); start(push, channel); verify(mFirebaseAnalyticsInstance, times(2)).setAnalyticsCollectionEnabled(false); verify(mFirebaseAnalyticsInstance, never()).setAnalyticsCollectionEnabled(true);
FirebaseAnalytics.getInstance(this).setAnalyticsCollectionEnabled(!isAnalyticsDisabled);