diff options
| -rw-r--r-- | packages/Shell/src/com/android/shell/BugreportProgressService.java | 18 | ||||
| -rw-r--r-- | proto/src/metrics_constants.proto | 39 | ||||
| -rw-r--r-- | services/core/java/com/android/server/policy/GlobalActions.java | 4 |
3 files changed, 60 insertions, 1 deletions
diff --git a/packages/Shell/src/com/android/shell/BugreportProgressService.java b/packages/Shell/src/com/android/shell/BugreportProgressService.java index 9926ae5e7ffc..d8b0571c364f 100644 --- a/packages/Shell/src/com/android/shell/BugreportProgressService.java +++ b/packages/Shell/src/com/android/shell/BugreportProgressService.java @@ -41,6 +41,8 @@ import java.util.zip.ZipOutputStream; import libcore.io.Streams; import com.android.internal.annotations.VisibleForTesting; +import com.android.internal.logging.MetricsLogger; +import com.android.internal.logging.MetricsProto.MetricsEvent; import com.google.android.collect.Lists; import android.accounts.Account; @@ -506,6 +508,7 @@ public class BugreportProgressService extends Service { * Cancels a bugreport upon user's request. */ private void cancel(int id) { + MetricsLogger.action(this, MetricsEvent.ACTION_BUGREPORT_NOTIFICATION_ACTION_CANCEL); Log.v(TAG, "cancel: ID=" + id); final BugreportInfo info = getInfo(id); if (info != null && !info.finished) { @@ -582,6 +585,7 @@ public class BugreportProgressService extends Service { * change its values. */ private void launchBugreportInfoDialog(int id) { + MetricsLogger.action(this, MetricsEvent.ACTION_BUGREPORT_NOTIFICATION_ACTION_DETAILS); // Copy values so it doesn't lock mProcesses while UI is being updated final String name, title, description; final BugreportInfo info = getInfo(id); @@ -610,6 +614,7 @@ public class BugreportProgressService extends Service { * upon receiving a {@link #INTENT_BUGREPORT_STARTED}. */ private void takeScreenshot(int id, boolean delayed) { + MetricsLogger.action(this, MetricsEvent.ACTION_BUGREPORT_NOTIFICATION_ACTION_SCREENSHOT); if (getInfo(id) == null) { // Most likely am killed Shell before user tapped the notification. Since system might // be too busy anwyays, it's better to ignore the notification and switch back to the @@ -859,6 +864,7 @@ public class BugreportProgressService extends Service { * intent, but issuing a warning dialog the first time. */ private void shareBugreport(int id, BugreportInfo sharedInfo) { + MetricsLogger.action(this, MetricsEvent.ACTION_BUGREPORT_NOTIFICATION_ACTION_SHARE); BugreportInfo info = getInfo(id); if (info == null) { // Service was terminated but notification persisted @@ -1139,9 +1145,16 @@ public class BugreportProgressService extends Service { if (info == null) { return; } + if (title != null && !title.equals(info.title)) { + MetricsLogger.action(this, MetricsEvent.ACTION_BUGREPORT_DETAILS_TITLE_CHANGED); + } info.title = title; + if (description != null && !description.equals(info.description)) { + MetricsLogger.action(this, MetricsEvent.ACTION_BUGREPORT_DETAILS_DESCRIPTION_CHANGED); + } info.description = description; if (name != null && !name.equals(info.name)) { + MetricsLogger.action(this, MetricsEvent.ACTION_BUGREPORT_DETAILS_NAME_CHANGED); info.name = name; updateProgress(info); } @@ -1229,7 +1242,7 @@ public class BugreportProgressService extends Service { /** * Sets its internal state and displays the dialog. */ - private void initialize(Context context, BugreportInfo info) { + private void initialize(final Context context, BugreportInfo info) { // First initializes singleton. if (mDialog == null) { @SuppressLint("InflateParams") @@ -1263,6 +1276,8 @@ public class BugreportProgressService extends Service { @Override public void onClick(DialogInterface dialog, int id) { + MetricsLogger.action(context, + MetricsEvent.ACTION_BUGREPORT_DETAILS_CANCELED); if (!mTempName.equals(mSavedName)) { // Must restore dumpstate's name since it was changed // before user clicked OK. @@ -1307,6 +1322,7 @@ public class BugreportProgressService extends Service { @Override public void onClick(View view) { + MetricsLogger.action(context, MetricsEvent.ACTION_BUGREPORT_DETAILS_SAVED); sanitizeName(); final String name = mInfoName.getText().toString(); final String title = mInfoTitle.getText().toString(); diff --git a/proto/src/metrics_constants.proto b/proto/src/metrics_constants.proto index 3f3f851acfb5..cd31b17c7ba2 100644 --- a/proto/src/metrics_constants.proto +++ b/proto/src/metrics_constants.proto @@ -369,5 +369,44 @@ message MetricsEvent { // Logged when the user saves a modification to notification importance. Negative numbers // indicate the user lowered the importance; positive means they increased it. ACTION_SAVE_IMPORTANCE = 291; + + // Interactive bug report initiated from power menu. + ACTION_BUGREPORT_FROM_POWER_MENU_INTERACTIVE = 292; + + // Full bug report initiated from power menu. + ACTION_BUGREPORT_FROM_POWER_MENU_FULL = 293; + + // Interactive bug report initiated from Settings. + ACTION_BUGREPORT_FROM_SETTINGS_INTERACTIVE = 294; + + // Full bug report initiated from Settings. + ACTION_BUGREPORT_FROM_SETTINGS_FULL = 295; + + // Bug report canceled using system notification. + ACTION_BUGREPORT_NOTIFICATION_ACTION_CANCEL = 296; + + // Bug report details screen open using system notification. + ACTION_BUGREPORT_NOTIFICATION_ACTION_DETAILS = 297; + + // Additional Bug report screen shot taken using system notification. + ACTION_BUGREPORT_NOTIFICATION_ACTION_SCREENSHOT = 298; + + // Bug report shared by user using system notification. + ACTION_BUGREPORT_NOTIFICATION_ACTION_SHARE = 299; + + // User changed bug report name using the details screen. + ACTION_BUGREPORT_DETAILS_NAME_CHANGED = 300; + + // User changed bug report title using the details screen. + ACTION_BUGREPORT_DETAILS_TITLE_CHANGED = 301; + + // User changed bug report description using the details screen. + ACTION_BUGREPORT_DETAILS_DESCRIPTION_CHANGED = 302; + + // Changes made on bug report details screen were saved by user. + ACTION_BUGREPORT_DETAILS_SAVED = 303; + + // Changes made on bug report details screen were canceled by user. + ACTION_BUGREPORT_DETAILS_CANCELED = 304; } } diff --git a/services/core/java/com/android/server/policy/GlobalActions.java b/services/core/java/com/android/server/policy/GlobalActions.java index a0f20aa0f5b1..5615998cb9a5 100644 --- a/services/core/java/com/android/server/policy/GlobalActions.java +++ b/services/core/java/com/android/server/policy/GlobalActions.java @@ -388,6 +388,8 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac public void run() { try { // Take an "interactive" bugreport. + MetricsLogger.visible(this, + MetricsEvent.ACTION_BUGREPORT_FROM_POWER_MENU_INTERACTIVE); ActivityManagerNative.getDefault().requestBugReport( ActivityManager.BUGREPORT_OPTION_INTERACTIVE); } catch (RemoteException e) { @@ -405,6 +407,8 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac } try { // Take a "full" bugreport. + MetricsLogger.visible(this, + MetricsEvent.ACTION_BUGREPORT_FROM_POWER_MENU_FULL); ActivityManagerNative.getDefault().requestBugReport( ActivityManager.BUGREPORT_OPTION_FULL); } catch (RemoteException e) { |