summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2019-05-25 23:07:07 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2019-05-25 23:07:07 +0000
commit5398e720f95008de38702ba7005bdc4b82d95d10 (patch)
treeaa29f0fb3005239bd8a8a12cc1332384ce9e1e88
parent6885b98121a7c6c1c725b51c47228309614824d7 (diff)
parentf20ce8550b1031c574ac646f1749bc5a3d306120 (diff)
downloadandroid_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.xml1
-rw-r--r--res/xml/main.xml6
-rw-r--r--src/com/google/android/traceur/FileSender.java2
-rw-r--r--src/com/google/android/traceur/MainFragment.java58
-rw-r--r--src/com/google/android/traceur/QsService.java2
-rw-r--r--src/com/google/android/traceur/Receiver.java35
-rw-r--r--src/com/google/android/traceur/StopTraceService.java3
-rw-r--r--src/com/google/android/traceur/TraceService.java15
-rw-r--r--src/com/google/android/traceur/TraceUtils.java24
-rw-r--r--uitests/src/com/android/settings/ui/TraceurAppTests.java9
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));