summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSascha Haeberling <haeberling@google.com>2015-05-29 16:20:28 -0700
committerSascha Haeberling <haeberling@google.com>2015-05-29 16:22:39 -0700
commit2eb8298b5fa99af132f6be6da920ed8867974488 (patch)
treea0786fb80c2a65ba573fb8a4760736ef2c8843df /src
parente6b00bf3c0319cba17ce23161402568c8e3c3547 (diff)
downloadandroid_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.java30
-rw-r--r--src/com/android/camera/util/CameraUtil.java4
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();
}