Merge "Revert "Remove set wallpaper context item""
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 6b72c25..062814b 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -678,7 +678,7 @@
}
void onDestroy() {
- if (mUploadHandler != null) {
+ if (!mUploadHandler.handled()) {
mUploadHandler.onResult(Activity.RESULT_CANCELED, null);
mUploadHandler = null;
}
@@ -1088,10 +1088,10 @@
}
break;
case FILE_SELECTED:
- // Choose a file from the file picker.
- if (null == mUploadHandler) break;
+ // Chose a file from the file picker.
+ if (null == mUploadHandler)
+ break;
mUploadHandler.onResult(resultCode, intent);
- mUploadHandler = null;
break;
case AUTOFILL_SETUP:
// Determine whether a profile was actually set up or not
diff --git a/src/com/android/browser/UploadHandler.java b/src/com/android/browser/UploadHandler.java
index ee578fa..5947e4a 100644
--- a/src/com/android/browser/UploadHandler.java
+++ b/src/com/android/browser/UploadHandler.java
@@ -39,6 +39,9 @@
private ValueCallback<Uri> mUploadMessage;
private String mCameraFilePath;
+ private boolean mHandled;
+ private boolean mCaughtActivityNotFoundException;
+
private Controller mController;
public UploadHandler(Controller controller) {
@@ -49,7 +52,19 @@
return mCameraFilePath;
}
+ boolean handled() {
+ return mHandled;
+ }
+
void onResult(int resultCode, Intent intent) {
+
+ if (resultCode == Activity.RESULT_CANCELED && mCaughtActivityNotFoundException) {
+ // Couldn't resolve an activity, we are going to try again so skip
+ // this result.
+ mCaughtActivityNotFoundException = false;
+ return;
+ }
+
Uri result = intent == null || resultCode != Activity.RESULT_OK ? null
: intent.getData();
@@ -71,6 +86,8 @@
}
mUploadMessage.onReceiveValue(result);
+ mHandled = true;
+ mCaughtActivityNotFoundException = false;
}
void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
@@ -183,6 +200,7 @@
// No installed app was able to handle the intent that
// we sent, so fallback to the default file upload control.
try {
+ mCaughtActivityNotFoundException = true;
mController.getActivity().startActivityForResult(createDefaultOpenableIntent(),
Controller.FILE_SELECTED);
} catch (ActivityNotFoundException e2) {