Makes call to MetricsLogger right away when taking bugreports.

Previously the call was made on takeBugreport(), which caused a NPE on
interative report calls because the context was null since it was
handled by a handler.

BUG: 27354167
Change-Id: I19e91cb4b43a7aa0bfcdab440c4cd4225110fdfb
This commit is contained in:
Felipe Leme
2016-02-25 11:37:56 -08:00
parent 56462d668a
commit 038bf65686

View File

@@ -87,9 +87,13 @@ public class BugreportPreference extends CustomDialogPreference {
if (mFullTitle.isChecked()) {
Log.v(TAG, "Taking full bugreport right away");
MetricsLogger.action(getDialog().getContext(),
MetricsEvent.ACTION_BUGREPORT_FROM_SETTINGS_FULL);
takeBugreport(ActivityManager.BUGREPORT_OPTION_FULL);
} else {
Log.v(TAG, "Taking interactive bugreport in " + BUGREPORT_DELAY_SECONDS + "s");
MetricsLogger.action(getDialog().getContext(),
MetricsEvent.ACTION_BUGREPORT_FROM_SETTINGS_INTERACTIVE);
// Add a little delay before executing, to give the user a chance to close
// the Settings activity before it takes a screenshot.
final Context context = getContext();
@@ -110,18 +114,6 @@ public class BugreportPreference extends CustomDialogPreference {
private void takeBugreport(int bugreportType) {
try {
switch (bugreportType) {
case ActivityManager.BUGREPORT_OPTION_FULL:
MetricsLogger.action(getDialog().getContext(),
MetricsEvent.ACTION_BUGREPORT_FROM_SETTINGS_FULL);
break;
case ActivityManager.BUGREPORT_OPTION_INTERACTIVE:
MetricsLogger.action(getDialog().getContext(),
MetricsEvent.ACTION_BUGREPORT_FROM_SETTINGS_INTERACTIVE);
break;
default:
Log.w(TAG, "Unknown bugreportType: " + bugreportType);
}
ActivityManagerNative.getDefault().requestBugReport(bugreportType);
} catch (RemoteException e) {
Log.e(TAG, "error taking bugreport (bugreportType=" + bugreportType + ")", e);