diff options
author | Trumeet <liangyuteng12345@gmail.com> | 2018-11-25 21:41:12 -0800 |
---|---|---|
committer | Trumeet <liangyuteng12345@gmail.com> | 2018-11-25 21:41:12 -0800 |
commit | 8ebfd80c76d11ead283d4148d4d393614e2033ac (patch) | |
tree | 2d28d36c0119d0eafc17a9d6b61d51ef827035a3 | |
parent | 5a9c7a96b94369d6483233afc411be66f05b8de5 (diff) | |
download | SysUIController-8ebfd80c76d11ead283d4148d4d393614e2033ac.tar SysUIController-8ebfd80c76d11ead283d4148d4d393614e2033ac.tar.gz SysUIController-8ebfd80c76d11ead283d4148d4d393614e2033ac.tar.bz2 SysUIController-8ebfd80c76d11ead283d4148d4d393614e2033ac.zip |
feat: add Firebase Performance
-rw-r--r-- | app/build.gradle | 2 | ||||
-rw-r--r-- | app/src/main/AndroidManifest.xml | 11 | ||||
-rw-r--r-- | app/src/main/java/moe/yuuta/sysuicontroller/Main.java | 48 | ||||
-rw-r--r-- | app/src/main/java/moe/yuuta/sysuicontroller/MainFragment.java | 20 | ||||
-rw-r--r-- | build.gradle | 1 |
5 files changed, 25 insertions, 57 deletions
diff --git a/app/build.gradle b/app/build.gradle index 5a4ce5b..10b84fe 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,6 +3,7 @@ apply plugin: "androidx.navigation.safeargs" apply plugin: 'com.google.gms.google-services' apply plugin: 'io.fabric' apply plugin: 'com.google.android.gms.oss-licenses-plugin' +apply plugin: 'com.google.firebase.firebase-perf' android { compileSdkVersion 28 @@ -46,5 +47,6 @@ dependencies { implementation 'com.crashlytics.sdk.android:crashlytics:2.9.6' implementation "android.arch.work:work-runtime:1.0.0-alpha11" implementation 'com.google.android.gms:play-services-oss-licenses:16.0.1' + implementation 'com.google.firebase:firebase-perf:16.2.0' compileOnly project(':hiddenapi') } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ed9c59a..08bcb9b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -30,17 +30,6 @@ <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> - <provider - android:name="com.google.firebase.provider.FirebaseInitProvider" - android:authorities="${applicationId}.firebaseinitprovider" - tools:node="remove" - android:exported="false" /> - <provider - android:name="androidx.work.impl.WorkManagerInitializer" - android:authorities="${applicationId}.workmanager-init" - android:exported="false" - android:multiprocess="true" - tools:node="remove"/> </application> </manifest>
\ No newline at end of file diff --git a/app/src/main/java/moe/yuuta/sysuicontroller/Main.java b/app/src/main/java/moe/yuuta/sysuicontroller/Main.java index 100ff9a..89a9786 100644 --- a/app/src/main/java/moe/yuuta/sysuicontroller/Main.java +++ b/app/src/main/java/moe/yuuta/sysuicontroller/Main.java @@ -1,14 +1,8 @@ package moe.yuuta.sysuicontroller; -import android.app.Activity; import android.app.Application; -import android.os.Bundle; -import com.google.firebase.FirebaseApp; -import com.google.firebase.analytics.FirebaseAnalytics; - -import androidx.work.Configuration; -import androidx.work.WorkManager; +import com.google.firebase.perf.FirebasePerformance; public class Main extends Application { public static final String GLOBAL_TAG = "SysUIController"; @@ -16,44 +10,6 @@ public class Main extends Application { @Override public void onCreate() { super.onCreate(); - registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { - @Override - public void onActivityCreated(Activity activity, Bundle savedInstanceState) { - unregisterActivityLifecycleCallbacks(this); - FirebaseApp.initializeApp(activity); - FirebaseAnalytics.getInstance(activity); - WorkManager.initialize(activity, new Configuration.Builder().build()); - } - - @Override - public void onActivityStarted(Activity activity) { - - } - - @Override - public void onActivityResumed(Activity activity) { - - } - - @Override - public void onActivityPaused(Activity activity) { - - } - - @Override - public void onActivityStopped(Activity activity) { - - } - - @Override - public void onActivitySaveInstanceState(Activity activity, Bundle outState) { - - } - - @Override - public void onActivityDestroyed(Activity activity) { - - } - }); + FirebasePerformance.getInstance().setPerformanceCollectionEnabled(!BuildConfig.DEBUG); } } diff --git a/app/src/main/java/moe/yuuta/sysuicontroller/MainFragment.java b/app/src/main/java/moe/yuuta/sysuicontroller/MainFragment.java index fd6aecb..4538c76 100644 --- a/app/src/main/java/moe/yuuta/sysuicontroller/MainFragment.java +++ b/app/src/main/java/moe/yuuta/sysuicontroller/MainFragment.java @@ -17,6 +17,9 @@ import android.view.MenuItem; import android.widget.Toast; import com.google.android.gms.oss.licenses.OssLicensesMenuActivity; +import com.google.firebase.perf.FirebasePerformance; +import com.google.firebase.perf.metrics.AddTrace; +import com.google.firebase.perf.metrics.Trace; import java.util.ArrayList; import java.util.HashSet; @@ -111,14 +114,22 @@ public class MainFragment extends PreferenceFragment implements Preference.OnPre for (PreferenceGroup group : mGroupsShouldBeDisabledBeforeServer) { group.setEnabled(enable); } + Trace traceClear = FirebasePerformance.getInstance().newTrace("traceClear"); + traceClear.start(); + traceClear.putMetric("disable_map_size", mDisableMap.size()); + traceClear.putMetric("disable2_map_size", mDisable2Map.size()); for (int i = 0; i < mDisableMap.size(); i ++) getPreferenceScreen().removePreference(mDisableMap.valueAt(i)); for (int i = 0; i < mDisable2Map.size(); i ++) getPreferenceScreen().removePreference(mDisable2Map.valueAt(i)); mDisable2Map.clear(); mDisableMap.clear(); + traceClear.stop(); if (enable) { try { List<DisableItem> available = mService.getAvailableDisableItems(); Log.d(TAG, "Available disable items: " + available.toString()); + Trace traceDisplayAvailableItems = FirebasePerformance.getInstance().newTrace("traceDisplayAvailableItems"); + traceDisplayAvailableItems.start(); + traceDisplayAvailableItems.putMetric("available_item_size", available.size()); Set<String /* Name (key) */> showedKeys = new HashSet<>(available.size()); for (DisableItem item : available) { showedKeys.add(item.getKey().toLowerCase()); @@ -136,14 +147,21 @@ public class MainFragment extends PreferenceFragment implements Preference.OnPre if (item.isDisable2()) mDisable2Map.put(item.getFlag(), preference); mDisableMap.put(item.getFlag(), preference); } + traceDisplayAvailableItems.stop(); // Disable not supported prebuilt preferences + Trace traceSetNotAvailableBatch = FirebasePerformance.getInstance().newTrace("traceSetNotAvailableBatch"); + traceSetNotAvailableBatch.start(); + traceSetNotAvailableBatch.putMetric("showed_keys", showedKeys.size()); Log.d(TAG, "Showed items: " + showedKeys.toString()); setNotAvailableBatch(showedKeys, getPreferenceScreen()); + traceSetNotAvailableBatch.stop(); } catch (Exception e) { Log.e(TAG, "Read available disable items", e); } SharedPreferences preferences = requireContext().getSharedPreferences("flags", Context.MODE_PRIVATE); + Trace traceUpdateUIDisabled = FirebasePerformance.getInstance().newTrace("traceUpdateUIDisabled"); + traceUpdateUIDisabled.start(); try { mService.disable(preferences.getInt("disable_flags", mService.getDisableNoneFlag(false))); updateUIDisabled(false, mService.getDisableFlags()); @@ -157,6 +175,7 @@ public class MainFragment extends PreferenceFragment implements Preference.OnPre } catch (RemoteException e) { Log.e(TAG, "Receive disable2 flags", e); } + traceUpdateUIDisabled.stop(); } if (mStatusPreference != null) { @@ -246,6 +265,7 @@ public class MainFragment extends PreferenceFragment implements Preference.OnPre } @Override + @AddTrace(name = "MainFragment#onCreatePreferences") public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { setPreferencesFromResource(R.xml.main_settings, rootKey); mStatusPreference = findPreference("key_service_status"); diff --git a/build.gradle b/build.gradle index 2fdcfaf..bbb81a9 100644 --- a/build.gradle +++ b/build.gradle @@ -14,6 +14,7 @@ buildscript { classpath 'com.google.gms:google-services:4.2.0' classpath 'io.fabric.tools:gradle:1.26.1' classpath 'com.google.android.gms:oss-licenses-plugin:0.9.4' + classpath 'com.google.firebase:firebase-plugins:1.1.5' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } |