diff options
Diffstat (limited to 'src')
-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 |
7 files changed, 56 insertions, 83 deletions
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(); } |