diff options
author | Sascha Haeberling <haeberling@google.com> | 2015-05-29 16:20:28 -0700 |
---|---|---|
committer | Sascha Haeberling <haeberling@google.com> | 2015-05-29 16:22:39 -0700 |
commit | 2eb8298b5fa99af132f6be6da920ed8867974488 (patch) | |
tree | a0786fb80c2a65ba573fb8a4760736ef2c8843df /src | |
parent | e6b00bf3c0319cba17ce23161402568c8e3c3547 (diff) | |
download | android_packages_apps_Camera2-2eb8298b5fa99af132f6be6da920ed8867974488.tar.gz android_packages_apps_Camera2-2eb8298b5fa99af132f6be6da920ed8867974488.tar.bz2 android_packages_apps_Camera2-2eb8298b5fa99af132f6be6da920ed8867974488.zip |
Use Google Feedback CrashBuilder API to make reports easier to consume.
Manual Cherry-Pick Part 1 of http://ag/699672
Currently, Feedback reports don't include a stacktrace. You have to
download
a system log file to find it. This tweak allows us to see the stacktrace
on the Report page itself.
Example old report:
https://feedback.corp.google.com/product/102042/crash?lView=rd&lCategory=8590053278&lRSort=1&lROrder=2&lRFilter=1&lReport=5517267704
Example new report:
https://feedback.corp.google.com/product/102042/crash?lView=rd&lCategory=8590053278&lRSort=1&lROrder=2&lRFilter=1&lReport=5517601160
Change-Id: If5f0ed6c69e96fe5f3661af913ae1525f8594b75
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/camera/FatalErrorHandlerImpl.java | 30 | ||||
-rw-r--r-- | src/com/android/camera/util/CameraUtil.java | 4 |
2 files changed, 20 insertions, 14 deletions
diff --git a/src/com/android/camera/FatalErrorHandlerImpl.java b/src/com/android/camera/FatalErrorHandlerImpl.java index a8bf69d62..802abc6af 100644 --- a/src/com/android/camera/FatalErrorHandlerImpl.java +++ b/src/com/android/camera/FatalErrorHandlerImpl.java @@ -34,8 +34,9 @@ public final class FatalErrorHandlerImpl implements FatalErrorHandler { @Override public void onMediaStorageFailure() { + Exception ex = new Exception(); // Log a stack trace to be sure we can track the source. - Log.e(TAG, "Handling Media Storage Failure:", new Exception()); + Log.e(TAG, "Handling Media Storage Failure:", ex); // Log the error UsageStatistics.instance().storageWarning(Storage.ACCESS_FAILURE); @@ -43,13 +44,14 @@ public final class FatalErrorHandlerImpl implements FatalErrorHandler { Reason reason = Reason.MEDIA_STORAGE_FAILURE; boolean finishActivity = reason.doesFinishActivity(); CameraUtil.showError(mActivity, reason.getDialogMsgId(), reason.getFeedbackMsgId(), - finishActivity); + finishActivity, ex); } @Override public void onCameraOpenFailure() { + Exception ex = new Exception(); // Log a stack trace to be sure we can track the source. - Log.e(TAG, "Handling Camera Open Failure:", new Exception()); + Log.e(TAG, "Handling Camera Open Failure:", ex); UsageStatistics.instance().cameraFailure( eventprotos.CameraFailure.FailureReason.OPEN_FAILURE, null, @@ -58,13 +60,14 @@ public final class FatalErrorHandlerImpl implements FatalErrorHandler { Reason reason = Reason.CANNOT_CONNECT_TO_CAMERA; boolean finishActivity = reason.doesFinishActivity(); CameraUtil.showError(mActivity, reason.getDialogMsgId(), reason.getFeedbackMsgId(), - finishActivity); + finishActivity, ex); } @Override public void onCameraReconnectFailure() { + Exception ex = new Exception(); // Log a stack trace to be sure we can track the source. - Log.e(TAG, "Handling Camera Reconnect Failure:", new Exception()); + Log.e(TAG, "Handling Camera Reconnect Failure:", ex); UsageStatistics.instance().cameraFailure( eventprotos.CameraFailure.FailureReason.RECONNECT_FAILURE, null, @@ -73,13 +76,14 @@ public final class FatalErrorHandlerImpl implements FatalErrorHandler { Reason reason = Reason.CANNOT_CONNECT_TO_CAMERA; boolean finishActivity = reason.doesFinishActivity(); CameraUtil.showError(mActivity, reason.getDialogMsgId(), reason.getFeedbackMsgId(), - finishActivity); + finishActivity, ex); } @Override public void onGenericCameraAccessFailure() { + Exception ex = new Exception(); // Log a stack trace to be sure we can track the source. - Log.e(TAG, "Handling Camera Access Failure:", new Exception()); + Log.e(TAG, "Handling Camera Access Failure:", ex); UsageStatistics.instance().cameraFailure( eventprotos.CameraFailure.FailureReason.UNKNOWN_REASON, null, @@ -88,13 +92,14 @@ public final class FatalErrorHandlerImpl implements FatalErrorHandler { Reason reason = Reason.CANNOT_CONNECT_TO_CAMERA; boolean finishActivity = reason.doesFinishActivity(); CameraUtil.showError(mActivity, reason.getDialogMsgId(), reason.getFeedbackMsgId(), - finishActivity); + finishActivity, ex); } @Override public void onCameraDisabledFailure() { + Exception ex = new Exception(); // Log a stack trace to be sure we can track the source. - Log.e(TAG, "Handling Camera Disabled Failure:", new Exception()); + Log.e(TAG, "Handling Camera Disabled Failure:", ex); // Log the error UsageStatistics.instance().cameraFailure( @@ -104,16 +109,17 @@ public final class FatalErrorHandlerImpl implements FatalErrorHandler { Reason reason = Reason.CAMERA_DISABLED_BY_SECURITY_POLICY; boolean finishActivity = reason.doesFinishActivity(); CameraUtil.showError(mActivity, reason.getDialogMsgId(), reason.getFeedbackMsgId(), - finishActivity); + finishActivity, ex); } @Override public void handleFatalError(Reason reason) { + Exception ex = new Exception(); // Log a stack trace to be sure we can track the source. - Log.e(TAG, "Handling Fatal Error:", new Exception()); + Log.e(TAG, "Handling Fatal Error:", ex); boolean finishActivity = reason.doesFinishActivity(); CameraUtil.showError(mActivity, reason.getDialogMsgId(), reason.getFeedbackMsgId(), - finishActivity); + finishActivity, ex); } } diff --git a/src/com/android/camera/util/CameraUtil.java b/src/com/android/camera/util/CameraUtil.java index a2a5a7d29..639e63593 100644 --- a/src/com/android/camera/util/CameraUtil.java +++ b/src/com/android/camera/util/CameraUtil.java @@ -289,7 +289,7 @@ public class CameraUtil { */ @Deprecated public static void showError(final Activity activity, final int dialogMsgId, final int feedbackMsgId, - final boolean finishActivity) { + final boolean finishActivity, final Exception ex) { final DialogInterface.OnClickListener buttonListener = new DialogInterface.OnClickListener() { @Override @@ -304,7 +304,7 @@ public class CameraUtil { new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - new GoogleHelpHelper(activity).sendGoogleFeedback(feedbackMsgId); + new GoogleHelpHelper(activity).sendGoogleFeedback(feedbackMsgId, ex); if (finishActivity) { activity.finish(); } |