diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java index 139bf6475..c8149ba76 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/KeychainApplication.java @@ -26,11 +26,11 @@ import android.accounts.AccountManager; import android.app.Application; import android.content.Context; import android.graphics.Bitmap; -import android.os.Handler; import android.support.annotation.Nullable; import android.widget.Toast; import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.sufficientlysecure.keychain.analytics.AnalyticsManager; import org.sufficientlysecure.keychain.network.TlsCertificatePinning; import org.sufficientlysecure.keychain.provider.TemporaryFileProvider; import org.sufficientlysecure.keychain.service.ContactSyncAdapterService; @@ -42,7 +42,7 @@ import timber.log.Timber.DebugTree; public class KeychainApplication extends Application { - TrackingManager trackingManager; + AnalyticsManager analyticsManager; /** * Called when the application is starting, before any activity, service, or receiver objects @@ -108,8 +108,8 @@ public class KeychainApplication extends Application { TemporaryFileProvider.scheduleCleanupImmediately(); - trackingManager = TrackingManager.getInstance(getApplicationContext()); - trackingManager.initialize(this); + analyticsManager = AnalyticsManager.getInstance(getApplicationContext()); + analyticsManager.initialize(this); } /** @@ -158,7 +158,7 @@ public class KeychainApplication extends Application { } } - public TrackingManager getTrackingManager() { - return trackingManager; + public AnalyticsManager getAnalyticsManager() { + return analyticsManager; } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/analytics/TrackingConsentRequester.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/analytics/AnalyticsConsentRequester.java similarity index 82% rename from OpenKeychain/src/main/java/org/sufficientlysecure/keychain/analytics/TrackingConsentRequester.java rename to OpenKeychain/src/main/java/org/sufficientlysecure/keychain/analytics/AnalyticsConsentRequester.java index 59370ba58..1a6173555 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/analytics/TrackingConsentRequester.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/analytics/AnalyticsConsentRequester.java @@ -1,4 +1,4 @@ -package org.sufficientlysecure.keychain; +package org.sufficientlysecure.keychain.analytics; import java.util.concurrent.TimeUnit; @@ -6,11 +6,14 @@ import java.util.concurrent.TimeUnit; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; -import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager.NameNotFoundException; import android.preference.PreferenceActivity; +import org.sufficientlysecure.keychain.BuildConfig; +import org.sufficientlysecure.keychain.Constants; +import org.sufficientlysecure.keychain.KeychainApplication; +import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.ui.SettingsActivity; import org.sufficientlysecure.keychain.ui.SettingsActivity.ExperimentalPrefsFragment; import org.sufficientlysecure.keychain.ui.util.Notify; @@ -18,14 +21,14 @@ import org.sufficientlysecure.keychain.ui.util.Notify.Style; import org.sufficientlysecure.keychain.util.Preferences; -public class TrackingConsentRequester { +public class AnalyticsConsentRequester { private final Activity activity; - public static TrackingConsentRequester getInstance(Activity activity) { - return new TrackingConsentRequester(activity); + public static AnalyticsConsentRequester getInstance(Activity activity) { + return new AnalyticsConsentRequester(activity); } - private TrackingConsentRequester(Activity activity) { + private AnalyticsConsentRequester(Activity activity) { this.activity = activity; } @@ -61,20 +64,20 @@ public class TrackingConsentRequester { preferences.setAnalyticsLastAskedNow(); - TrackingManager trackingManager = ((KeychainApplication) activity.getApplication()).getTrackingManager(); + AnalyticsManager analyticsManager = ((KeychainApplication) activity.getApplication()).getAnalyticsManager(); AlertDialog show = new Builder(activity) .setMessage(R.string.dialog_analytics_text) .setPositiveButton(R.string.button_analytics_yes, (dialog, which) -> { preferences.setAnalyticsAskedPolitely(); preferences.setAnalyticsGotUserConsent(true); - trackingManager.refreshSettings(activity); + analyticsManager.refreshSettings(activity); Notify.create(activity, R.string.snack_analytics_accept, Style.OK, this::startExperimentalSettingsActivity, R.string.snackbutton_analytics_settings).show(); }) .setNegativeButton(R.string.button_analytics_no, (dialog, which) -> { preferences.setAnalyticsAskedPolitely(); preferences.setAnalyticsGotUserConsent(false); - trackingManager.refreshSettings(activity); + analyticsManager.refreshSettings(activity); Notify.create(activity, R.string.snack_analytics_reject, Style.OK, this::startExperimentalSettingsActivity, R.string.snackbutton_analytics_settings).show(); }) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/TrackingManager.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/analytics/AnalyticsManager.java similarity index 93% rename from OpenKeychain/src/main/java/org/sufficientlysecure/keychain/TrackingManager.java rename to OpenKeychain/src/main/java/org/sufficientlysecure/keychain/analytics/AnalyticsManager.java index d57b077e3..5e494dd19 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/TrackingManager.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/analytics/AnalyticsManager.java @@ -1,4 +1,4 @@ -package org.sufficientlysecure.keychain; +package org.sufficientlysecure.keychain.analytics; import android.app.Activity; @@ -15,14 +15,14 @@ import org.piwik.sdk.extra.TrackHelper; import org.sufficientlysecure.keychain.util.Preferences; -public class TrackingManager { +public class AnalyticsManager { private Tracker piwikTracker; - public static TrackingManager getInstance(Context context) { - return new TrackingManager(context); + public static AnalyticsManager getInstance(Context context) { + return new AnalyticsManager(context); } - private TrackingManager(Context context) { + private AnalyticsManager(Context context) { refreshSettings(context); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java index 4773c042a..b0e6eab6a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java @@ -54,7 +54,7 @@ import org.openintents.openpgp.util.OpenPgpApi; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.model.SubKey.UnifiedKeyInfo; import org.sufficientlysecure.keychain.KeychainApplication; -import org.sufficientlysecure.keychain.TrackingManager; +import org.sufficientlysecure.keychain.analytics.AnalyticsManager; import org.sufficientlysecure.keychain.operations.BackupOperation; import org.sufficientlysecure.keychain.operations.results.DecryptVerifyResult; import org.sufficientlysecure.keychain.operations.results.ExportResult; @@ -101,7 +101,7 @@ public class OpenPgpService extends Service { private ApiAppDao mApiAppDao; private OpenPgpServiceKeyIdExtractor mKeyIdExtractor; private ApiPendingIntentFactory mApiPendingIntentFactory; - private TrackingManager trackingManager; + private AnalyticsManager analyticsManager; @Override public void onCreate() { @@ -112,7 +112,7 @@ public class OpenPgpService extends Service { mApiPendingIntentFactory = new ApiPendingIntentFactory(getBaseContext()); mKeyIdExtractor = OpenPgpServiceKeyIdExtractor.getInstance(getContentResolver(), mApiPendingIntentFactory); - trackingManager = ((KeychainApplication) getApplication()).getTrackingManager(); + analyticsManager = ((KeychainApplication) getApplication()).getAnalyticsManager(); } private Intent signImpl(Intent data, InputStream inputStream, @@ -1030,7 +1030,7 @@ public class OpenPgpService extends Service { return errorResult; } - trackingManager.trackApiServiceCall(data.getAction(), mApiPermissionHelper.getCurrentCallingPackage()); + analyticsManager.trackApiServiceCall(data.getAction(), mApiPermissionHelper.getCurrentCallingPackage()); Progressable progressable = null; if (data.hasExtra(OpenPgpApi.EXTRA_PROGRESS_MESSENGER)) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainServiceTask.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainServiceTask.java index 5fa9437b5..2065dc1cc 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainServiceTask.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainServiceTask.java @@ -28,7 +28,7 @@ import android.os.Parcelable; import android.support.v4.os.CancellationSignal; import org.sufficientlysecure.keychain.KeychainApplication; -import org.sufficientlysecure.keychain.TrackingManager; +import org.sufficientlysecure.keychain.analytics.AnalyticsManager; import org.sufficientlysecure.keychain.daos.KeyWritableRepository; import org.sufficientlysecure.keychain.operations.BackupOperation; import org.sufficientlysecure.keychain.operations.BaseOperation; @@ -55,19 +55,20 @@ import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; public class KeychainServiceTask { - private final TrackingManager trackingManager; + private final AnalyticsManager analyticsManager; public static KeychainServiceTask create(Activity activity) { Context context = activity.getApplicationContext(); - TrackingManager trackingManager = ((KeychainApplication) activity.getApplication()).getTrackingManager(); + KeyWritableRepository keyRepository = KeyWritableRepository.create(context); + AnalyticsManager analyticsManager = ((KeychainApplication) activity.getApplication()).getAnalyticsManager(); - return new KeychainServiceTask(context, KeyWritableRepository.create(context), trackingManager); + return new KeychainServiceTask(context, keyRepository, analyticsManager); } - private KeychainServiceTask(Context context, KeyWritableRepository keyRepository, TrackingManager trackingManager) { + private KeychainServiceTask(Context context, KeyWritableRepository keyRepository, AnalyticsManager analyticsManager) { this.context = context; this.keyRepository = keyRepository; - this.trackingManager = trackingManager; + this.analyticsManager = analyticsManager; } private final Context context; @@ -130,7 +131,7 @@ public class KeychainServiceTask { return null; } - trackingManager.trackInternalServiceCall(op.getClass().getSimpleName()); + analyticsManager.trackInternalServiceCall(op.getClass().getSimpleName()); // noinspection unchecked, we make sure it's the correct op above return op.execute(inputParcel, cryptoInput); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index a3afc393d..32ce010d3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -54,7 +54,7 @@ import eu.davidea.flexibleadapter.SelectableAdapter.Mode; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.KeychainDatabase; import org.sufficientlysecure.keychain.R; -import org.sufficientlysecure.keychain.TrackingConsentRequester; +import org.sufficientlysecure.keychain.analytics.AnalyticsConsentRequester; import org.sufficientlysecure.keychain.compatibility.ClipboardReflection; import org.sufficientlysecure.keychain.daos.DatabaseNotifyManager; import org.sufficientlysecure.keychain.daos.KeyRepository; @@ -261,7 +261,7 @@ public class KeyListFragment extends RecyclerFragment> liveData = viewModel.getGenericLiveData(requireContext(), this::loadFlexibleKeyItems); liveData.observe(this, this::onLoadKeyItems); - TrackingConsentRequester.getInstance(activity).maybeAskForAnalytics(); + AnalyticsConsentRequester.getInstance(activity).maybeAskForAnalytics(); } @WorkerThread diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MainActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MainActivity.java index e98e15abd..358d9aafa 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MainActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MainActivity.java @@ -23,7 +23,6 @@ import android.os.Build.VERSION_CODES; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentManager.OnBackStackChangedListener; import android.support.v4.app.FragmentTransaction; import android.support.v7.widget.Toolbar; import android.view.View; @@ -39,7 +38,7 @@ import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem; import org.sufficientlysecure.keychain.KeychainApplication; import org.sufficientlysecure.keychain.R; -import org.sufficientlysecure.keychain.TrackingManager; +import org.sufficientlysecure.keychain.analytics.AnalyticsManager; import org.sufficientlysecure.keychain.operations.results.OperationResult; import org.sufficientlysecure.keychain.remote.ui.AppsListFragment; import org.sufficientlysecure.keychain.ui.base.BaseSecurityTokenActivity; @@ -64,7 +63,7 @@ public class MainActivity extends BaseSecurityTokenActivity implements FabContai public Drawer mDrawer; private Toolbar mToolbar; - private TrackingManager trackingManager; + private AnalyticsManager analyticsManager; @Override public void onCreate(Bundle savedInstanceState) { @@ -75,7 +74,7 @@ public class MainActivity extends BaseSecurityTokenActivity implements FabContai mToolbar.setTitle(R.string.app_name); setSupportActionBar(mToolbar); - trackingManager = ((KeychainApplication) getApplication()).getTrackingManager(); + analyticsManager = ((KeychainApplication) getApplication()).getAnalyticsManager(); mDrawer = new DrawerBuilder() .withActivity(this) @@ -205,7 +204,7 @@ public class MainActivity extends BaseSecurityTokenActivity implements FabContai private void setFragment(Fragment frag) { FragmentManager fragmentManager = getSupportFragmentManager(); - trackingManager.trackFragmentImpression(getClass().getSimpleName(), frag.getClass().getSimpleName()); + analyticsManager.trackFragmentImpression(getClass().getSimpleName(), frag.getClass().getSimpleName()); FragmentTransaction ft = fragmentManager.beginTransaction(); ft.replace(R.id.main_fragment_container, frag); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java index 37042fdb9..09994ebb0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/SettingsActivity.java @@ -37,7 +37,6 @@ import android.os.Bundle; import android.preference.EditTextPreference; import android.preference.ListPreference; import android.preference.Preference; -import android.preference.Preference.OnPreferenceChangeListener; import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; import android.preference.SwitchPreference; @@ -51,7 +50,6 @@ import android.view.ViewGroup; import android.widget.LinearLayout; import org.sufficientlysecure.keychain.Constants; -import org.sufficientlysecure.keychain.Constants.Pref; import org.sufficientlysecure.keychain.KeychainApplication; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.compatibility.AppCompatPreferenceActivity; @@ -591,7 +589,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity { super.onPause(); Activity activity = getActivity(); - ((KeychainApplication) activity.getApplication()).getTrackingManager().refreshSettings(activity); + ((KeychainApplication) activity.getApplication()).getAnalyticsManager().refreshSettings(activity); } @Override diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java index 25f16f672..457d02354 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvActivity.java @@ -48,7 +48,7 @@ import org.sufficientlysecure.keychain.livedata.GenericLiveData; import org.sufficientlysecure.keychain.model.SubKey; import org.sufficientlysecure.keychain.model.SubKey.UnifiedKeyInfo; import org.sufficientlysecure.keychain.model.UserPacket.UserId; -import org.sufficientlysecure.keychain.TrackingManager; +import org.sufficientlysecure.keychain.analytics.AnalyticsManager; import org.sufficientlysecure.keychain.operations.results.OperationResult; import org.sufficientlysecure.keychain.daos.KeyRepository; import org.sufficientlysecure.keychain.ui.adapter.PagerTabStripAdapter; @@ -89,7 +89,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements OnPageChangeList } } - private TrackingManager trackingManager; + private AnalyticsManager analyticsManager; @Override protected void onCreate(Bundle savedInstanceState) { @@ -98,7 +98,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements OnPageChangeList setFullScreenDialogClose(v -> finish()); keyRepository = KeyRepository.create(this); - trackingManager = ((KeychainApplication) getApplication()).getTrackingManager(); + analyticsManager = ((KeychainApplication) getApplication()).getAnalyticsManager(); viewPager = findViewById(R.id.pager); slidingTabLayout = findViewById(R.id.sliding_tab_layout); @@ -302,7 +302,7 @@ public class ViewKeyAdvActivity extends BaseActivity implements OnPageChangeList invalidateOptionsMenu(); String fragmentName = tabAdapter.getItem(position).getClass().getSimpleName(); - trackingManager.trackFragmentImpression(getClass().getSimpleName(), fragmentName); + analyticsManager.trackFragmentImpression(getClass().getSimpleName(), fragmentName); } @Override