diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-05-25 23:07:07 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-05-25 23:07:07 +0000 |
commit | 5398e720f95008de38702ba7005bdc4b82d95d10 (patch) | |
tree | aa29f0fb3005239bd8a8a12cc1332384ce9e1e88 | |
parent | 6885b98121a7c6c1c725b51c47228309614824d7 (diff) | |
parent | f20ce8550b1031c574ac646f1749bc5a3d306120 (diff) | |
download | android_packages_apps_Traceur-5398e720f95008de38702ba7005bdc4b82d95d10.tar.gz android_packages_apps_Traceur-5398e720f95008de38702ba7005bdc4b82d95d10.tar.bz2 android_packages_apps_Traceur-5398e720f95008de38702ba7005bdc4b82d95d10.zip |
Snap for 5606001 from f20ce8550b1031c574ac646f1749bc5a3d306120 to qt-qpr1-release
Change-Id: I86fa1c6f6d046a06543d4f90f07632af596d962f
-rw-r--r-- | res/values/preference_keys.xml | 1 | ||||
-rw-r--r-- | res/xml/main.xml | 6 | ||||
-rw-r--r-- | src/com/google/android/traceur/FileSender.java | 2 | ||||
-rw-r--r-- | src/com/google/android/traceur/MainFragment.java | 58 | ||||
-rw-r--r-- | src/com/google/android/traceur/QsService.java | 2 | ||||
-rw-r--r-- | src/com/google/android/traceur/Receiver.java | 35 | ||||
-rw-r--r-- | src/com/google/android/traceur/StopTraceService.java | 3 | ||||
-rw-r--r-- | src/com/google/android/traceur/TraceService.java | 15 | ||||
-rw-r--r-- | src/com/google/android/traceur/TraceUtils.java | 24 | ||||
-rw-r--r-- | uitests/src/com/android/settings/ui/TraceurAppTests.java | 9 |
10 files changed, 66 insertions, 89 deletions
diff --git a/res/values/preference_keys.xml b/res/values/preference_keys.xml index b23f3b9..a3daf86 100644 --- a/res/values/preference_keys.xml +++ b/res/values/preference_keys.xml @@ -9,5 +9,4 @@ <string name="pref_key_max_long_trace_size">max_long_trace_size</string> <string name="pref_key_max_long_trace_duration">max_long_trace_duration</string> <string name="pref_key_quick_setting">quick_setting_enabled</string> - <string name="pref_key_use_perfetto">use_perfetto_2</string> </resources> diff --git a/res/xml/main.xml b/res/xml/main.xml index 0d47435..685e889 100644 --- a/res/xml/main.xml +++ b/res/xml/main.xml @@ -41,12 +41,12 @@ android:persistent="false" android:title="@string/clear_saved_traces" /> <androidx.preference.PreferenceCategory + android:key="long_trace_category" android:orderingFromXml="true" > <androidx.preference.SwitchPreference android:key="@string/pref_key_long_traces" android:title="@string/long_traces" android:summary="@string/long_traces_summary" - android:dependency="@string/pref_key_use_perfetto" android:defaultValue="false" /> <androidx.preference.ListPreference android:key="@string/pref_key_max_long_trace_size" @@ -69,9 +69,5 @@ android:key="@string/pref_key_quick_setting" android:title="@string/show_quick_settings_tile" android:defaultValue="false" /> - <androidx.preference.SwitchPreference - android:key="@string/pref_key_use_perfetto" - android:title="@string/use_perfetto_beta" - android:defaultValue="true" /> </androidx.preference.PreferenceCategory> </androidx.preference.PreferenceScreen> diff --git a/src/com/google/android/traceur/FileSender.java b/src/com/google/android/traceur/FileSender.java index a824f9d..b069521 100644 --- a/src/com/google/android/traceur/FileSender.java +++ b/src/com/google/android/traceur/FileSender.java @@ -56,7 +56,7 @@ public class FileSender { intent.putExtra(Intent.EXTRA_INTENT, sendIntent); final Notification.Builder builder = - new Notification.Builder(context, Receiver.NOTIFICATION_CHANNEL) + new Notification.Builder(context, Receiver.NOTIFICATION_CHANNEL_OTHER) .setSmallIcon(R.drawable.stat_sys_adb) .setContentTitle(context.getString(R.string.trace_saved)) .setTicker(context.getString(R.string.trace_saved)) diff --git a/src/com/google/android/traceur/MainFragment.java b/src/com/google/android/traceur/MainFragment.java index 5db3577..e69b2b3 100644 --- a/src/com/google/android/traceur/MainFragment.java +++ b/src/com/google/android/traceur/MainFragment.java @@ -67,8 +67,6 @@ public class MainFragment extends PreferenceFragment { private MultiSelectListPreference mTags; - private SwitchPreference mUsePerfetto; - private boolean mRefreshing; private BroadcastReceiver mRefreshReceiver; @@ -166,24 +164,6 @@ public class MainFragment extends PreferenceFragment { } }); - mUsePerfetto = (SwitchPreference) findPreference(getActivity().getString(R.string.pref_key_use_perfetto)); - mUsePerfetto.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - boolean shouldUsePerfetto = (boolean)newValue; - boolean success = TraceUtils.switchTraceEngine( - shouldUsePerfetto ? PerfettoUtils.NAME : AtraceUtils.NAME); - - if (success) { - mUsePerfetto.setChecked(shouldUsePerfetto); - } - return false; - } - }); - - getPreferenceScreen().getSharedPreferences() - .registerOnSharedPreferenceChangeListener(mSharedPreferenceChangeListener); - refreshUi(); mRefreshReceiver = new BroadcastReceiver() { @@ -202,14 +182,18 @@ public class MainFragment extends PreferenceFragment { } @Override - public void onResume() { - super.onResume(); + public void onStart() { + super.onStart(); + getPreferenceScreen().getSharedPreferences() + .registerOnSharedPreferenceChangeListener(mSharedPreferenceChangeListener); getActivity().registerReceiver(mRefreshReceiver, new IntentFilter(ACTION_REFRESH_TAGS)); Receiver.updateTracing(getContext()); } @Override - public void onPause() { + public void onStop() { + getPreferenceScreen().getSharedPreferences() + .unregisterOnSharedPreferenceChangeListener(mSharedPreferenceChangeListener); getActivity().unregisterReceiver(mRefreshReceiver); if (mAlertDialog != null) { @@ -217,7 +201,7 @@ public class MainFragment extends PreferenceFragment { mAlertDialog = null; } - super.onPause(); + super.onStop(); } @Override @@ -246,9 +230,6 @@ public class MainFragment extends PreferenceFragment { mTracingOn.setChecked(mTracingOn.getPreferenceManager().getSharedPreferences().getBoolean( mTracingOn.getKey(), false)); - // Grey out the toggle to change the trace engine if a trace is in progress. - mUsePerfetto.setEnabled(!mTracingOn.isChecked()); - // Update category list to match the categories available on the system. Set<Entry<String, String>> availableTags = TraceUtils.listCategories().entrySet(); ArrayList<String> entries = new ArrayList<String>(availableTags.size()); @@ -280,12 +261,21 @@ public class MainFragment extends PreferenceFragment { context.getString(R.string.pref_key_buffer_size)); bufferSize.setSummary(bufferSize.getEntry()); - ListPreference maxLongTraceSize = (ListPreference)findPreference( - context.getString(R.string.pref_key_max_long_trace_size)); - maxLongTraceSize.setSummary(maxLongTraceSize.getEntry()); - - ListPreference maxLongTraceDuration = (ListPreference)findPreference( - context.getString(R.string.pref_key_max_long_trace_duration)); - maxLongTraceDuration.setSummary(maxLongTraceDuration.getEntry()); + // If we are not using the Perfetto trace backend, + // hide the unsupported preferences. + if (TraceUtils.currentTraceEngine().equals(PerfettoUtils.NAME)) { + ListPreference maxLongTraceSize = (ListPreference)findPreference( + context.getString(R.string.pref_key_max_long_trace_size)); + maxLongTraceSize.setSummary(maxLongTraceSize.getEntry()); + + ListPreference maxLongTraceDuration = (ListPreference)findPreference( + context.getString(R.string.pref_key_max_long_trace_duration)); + maxLongTraceDuration.setSummary(maxLongTraceDuration.getEntry()); + } else { + Preference longTraceCategory = findPreference("long_trace_category"); + if (longTraceCategory != null) { + getPreferenceScreen().removePreference(longTraceCategory); + } + } } } diff --git a/src/com/google/android/traceur/QsService.java b/src/com/google/android/traceur/QsService.java index 852840b..0ddbf36 100644 --- a/src/com/google/android/traceur/QsService.java +++ b/src/com/google/android/traceur/QsService.java @@ -65,7 +65,7 @@ public class QsService extends TileService { public void onClick() { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); boolean newTracingState = !prefs.getBoolean(getString(R.string.pref_key_tracing_on), false); - prefs.edit().putBoolean(getString(R.string.pref_key_tracing_on), newTracingState).apply(); + prefs.edit().putBoolean(getString(R.string.pref_key_tracing_on), newTracingState).commit(); Receiver.updateTracing(this); } diff --git a/src/com/google/android/traceur/Receiver.java b/src/com/google/android/traceur/Receiver.java index 987d775..26a504e 100644 --- a/src/com/google/android/traceur/Receiver.java +++ b/src/com/google/android/traceur/Receiver.java @@ -49,7 +49,8 @@ public class Receiver extends BroadcastReceiver { public static final String STOP_ACTION = "com.android.traceur.STOP"; public static final String OPEN_ACTION = "com.android.traceur.OPEN"; - public static final String NOTIFICATION_CHANNEL = "system-tracing"; + public static final String NOTIFICATION_CHANNEL_TRACING = "trace-is-being-recorded"; + public static final String NOTIFICATION_CHANNEL_OTHER = "system-tracing"; private static final List<String> TRACE_TAGS = Arrays.asList( "am", "binder_driver", "camera", "dalvik", "freq", "gfx", "hal", @@ -72,11 +73,11 @@ public class Receiver extends BroadcastReceiver { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { - createNotificationChannel(context); + createNotificationChannels(context); updateDeveloperOptionsWatcher(context); updateTracing(context); } else if (STOP_ACTION.equals(intent.getAction())) { - prefs.edit().putBoolean(context.getString(R.string.pref_key_tracing_on), false).apply(); + prefs.edit().putBoolean(context.getString(R.string.pref_key_tracing_on), false).commit(); updateTracing(context); } else if (OPEN_ACTION.equals(intent.getAction())) { context.sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)); @@ -198,7 +199,7 @@ public class Receiver extends BroadcastReceiver { PreferenceManager.getDefaultSharedPreferences(context); prefs.edit().putBoolean( context.getString(R.string.pref_key_quick_setting), false) - .apply(); + .commit(); updateQuickSettings(context); } } @@ -215,7 +216,7 @@ public class Receiver extends BroadcastReceiver { String title = context.getString(R.string.tracing_categories_unavailable); String msg = TextUtils.join(", ", getActiveUnavailableTags(context, prefs)); final Notification.Builder builder = - new Notification.Builder(context, NOTIFICATION_CHANNEL) + new Notification.Builder(context, NOTIFICATION_CHANNEL_OTHER) .setSmallIcon(R.drawable.stat_sys_adb) .setContentTitle(title) .setTicker(title) @@ -236,17 +237,27 @@ public class Receiver extends BroadcastReceiver { .notify(Receiver.class.getName(), 0, builder.build()); } - private static void createNotificationChannel(Context context) { - NotificationChannel channel = new NotificationChannel( - NOTIFICATION_CHANNEL, context.getString(R.string.system_tracing), + private static void createNotificationChannels(Context context) { + NotificationChannel tracingChannel = new NotificationChannel( + NOTIFICATION_CHANNEL_TRACING, + context.getString(R.string.trace_is_being_recorded), NotificationManager.IMPORTANCE_HIGH); - channel.setBypassDnd(true); - channel.enableVibration(true); - channel.setSound(null, null); + tracingChannel.setBypassDnd(true); + tracingChannel.enableVibration(true); + tracingChannel.setSound(null, null); + + NotificationChannel saveTraceChannel = new NotificationChannel( + NOTIFICATION_CHANNEL_OTHER, + context.getString(R.string.saving_trace), + NotificationManager.IMPORTANCE_HIGH); + saveTraceChannel.setBypassDnd(true); + saveTraceChannel.enableVibration(true); + saveTraceChannel.setSound(null, null); NotificationManager notificationManager = context.getSystemService(NotificationManager.class); - notificationManager.createNotificationChannel(channel); + notificationManager.createNotificationChannel(tracingChannel); + notificationManager.createNotificationChannel(saveTraceChannel); } public static Set<String> getActiveTags(Context context, SharedPreferences prefs, boolean onlyAvailable) { diff --git a/src/com/google/android/traceur/StopTraceService.java b/src/com/google/android/traceur/StopTraceService.java index c9df791..a8dd636 100644 --- a/src/com/google/android/traceur/StopTraceService.java +++ b/src/com/google/android/traceur/StopTraceService.java @@ -37,7 +37,6 @@ public class StopTraceService extends TraceService { */ @Override public void onHandleIntent(Intent intent) { - setupTraceEngine(); Context context = getApplicationContext(); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); boolean prefsTracingOn = @@ -51,7 +50,7 @@ public class StopTraceService extends TraceService { PreferenceManager.getDefaultSharedPreferences(context) .edit().putBoolean(context.getString(R.string.pref_key_tracing_on), - false).apply(); + false).commit(); context.sendBroadcast(new Intent(MainFragment.ACTION_REFRESH_TAGS)); QsService.updateTile(); diff --git a/src/com/google/android/traceur/TraceService.java b/src/com/google/android/traceur/TraceService.java index a028645..dc567b6 100644 --- a/src/com/google/android/traceur/TraceService.java +++ b/src/com/google/android/traceur/TraceService.java @@ -80,7 +80,6 @@ public class TraceService extends IntentService { @Override public void onHandleIntent(Intent intent) { - setupTraceEngine(); Context context = getApplicationContext(); if (intent.getAction().equals(INTENT_ACTION_START_TRACING)) { @@ -111,7 +110,7 @@ public class TraceService extends IntentService { String msg = context.getString(R.string.tap_to_stop_tracing); Notification.Builder notification = - new Notification.Builder(context, Receiver.NOTIFICATION_CHANNEL) + new Notification.Builder(context, Receiver.NOTIFICATION_CHANNEL_TRACING) .setSmallIcon(R.drawable.stat_sys_adb) .setContentTitle(title) .setTicker(title) @@ -138,7 +137,7 @@ public class TraceService extends IntentService { TraceUtils.traceStop(); PreferenceManager.getDefaultSharedPreferences(context) .edit().putBoolean(context.getString(R.string.pref_key_tracing_on), - false).apply(); + false).commit(); QsService.updateTile(); stopForeground(Service.STOP_FOREGROUND_REMOVE); } @@ -150,7 +149,7 @@ public class TraceService extends IntentService { getSystemService(NotificationManager.class); Notification.Builder notification = - new Notification.Builder(this, Receiver.NOTIFICATION_CHANNEL) + new Notification.Builder(this, Receiver.NOTIFICATION_CHANNEL_OTHER) .setSmallIcon(R.drawable.stat_sys_adb) .setContentTitle(getString(R.string.saving_trace)) .setTicker(getString(R.string.saving_trace)) @@ -184,12 +183,4 @@ public class TraceService extends IntentService { stopForeground(Service.STOP_FOREGROUND_REMOVE); } - protected void setupTraceEngine() { - Context context = getApplicationContext(); - boolean usePerfetto = - PreferenceManager.getDefaultSharedPreferences(context) - .getBoolean(context.getString(R.string.pref_key_use_perfetto), true); - TraceUtils.switchTraceEngine( - usePerfetto ? PerfettoUtils.NAME : AtraceUtils.NAME); - } } diff --git a/src/com/google/android/traceur/TraceUtils.java b/src/com/google/android/traceur/TraceUtils.java index 6350795..924d193 100644 --- a/src/com/google/android/traceur/TraceUtils.java +++ b/src/com/google/android/traceur/TraceUtils.java @@ -41,7 +41,9 @@ public class TraceUtils { public static final String TRACE_DIRECTORY = "/data/local/traces/"; - private static TraceEngine mTraceEngine = new AtraceUtils(); + // To change Traceur to use atrace to collect traces, + // change mTraceEngine to point to AtraceUtils(). + private static TraceEngine mTraceEngine = new PerfettoUtils(); private static final Runtime RUNTIME = Runtime.getRuntime(); @@ -55,26 +57,6 @@ public class TraceUtils { public boolean isTracingOn(); } - public static boolean switchTraceEngine(String newTraceEngine) { - if (mTraceEngine.getName().equals(newTraceEngine)) { - Log.e(TAG, "Tried to switch to use " + newTraceEngine - + " for tracing, but you already were!"); - return true; - } - - if (PerfettoUtils.NAME.equals(newTraceEngine)) { - mTraceEngine = new PerfettoUtils(); - } else if (AtraceUtils.NAME.equals(newTraceEngine)) { - mTraceEngine = new AtraceUtils(); - } else { - throw new AssertionError("Tried to switch to use " + newTraceEngine - + " for tracing, but I don't know what that is!"); - } - - Log.v(TAG, "Switched to using " + newTraceEngine + " for tracing!"); - return true; - } - public static String currentTraceEngine() { return mTraceEngine.getName(); } diff --git a/uitests/src/com/android/settings/ui/TraceurAppTests.java b/uitests/src/com/android/settings/ui/TraceurAppTests.java index 18717d4..aa3dfa8 100644 --- a/uitests/src/com/android/settings/ui/TraceurAppTests.java +++ b/uitests/src/com/android/settings/ui/TraceurAppTests.java @@ -103,6 +103,15 @@ public class TraceurAppTests { assertNotNull("Clear saved traces element not found.", mDevice.wait(Until.findObject(By.text("Clear saved traces")), TIMEOUT)); + assertNotNull("Long traces element not found.", + mDevice.wait(Until.findObject(By.text("Long traces")), + TIMEOUT)); + assertNotNull("Maximum long trace size element not found.", + mDevice.wait(Until.findObject(By.text("Maximum long trace size")), + TIMEOUT)); + assertNotNull("Maximum long trace duration element not found.", + mDevice.wait(Until.findObject(By.text("Maximum long trace duration")), + TIMEOUT)); assertNotNull("Show Quick Settings tile switch not found.", mDevice.wait(Until.findObject(By.text("Show Quick Settings tile")), TIMEOUT)); |