mirror of
https://github.com/apache/cordova-plugin-camera.git
synced 2025-01-31 12:42:50 +08:00
CB-9189 android: Implementing save/restore API to handle Activity destruction
This commit is contained in:
parent
e8fa1695c4
commit
e2193631d5
@ -400,7 +400,12 @@ scenario, the image may not appear when the cordova activity is restored.
|
||||
|
||||
Android uses intents to launch the camera activity on the device to capture
|
||||
images, and on phones with low memory, the Cordova activity may be killed. In this
|
||||
scenario, the image may not appear when the Cordova activity is restored.
|
||||
scenario, the result from the plugin call will be delivered via the resume event.
|
||||
See [the Android Lifecycle guide](http://cordova.apache.org/docs/en/dev/guide/platforms/android/lifecycle.html)
|
||||
for more information. The `pendingResult.result` value will contain the value that
|
||||
would be passed to the callbacks (either the URI/URL or an error message). Check
|
||||
the `pendingResult.pluginStatus` to determine whether or not the call was
|
||||
successful.
|
||||
|
||||
#### Browser Quirks
|
||||
|
||||
|
@ -77,7 +77,12 @@ scenario, the image may not appear when the cordova activity is restored.
|
||||
|
||||
Android uses intents to launch the camera activity on the device to capture
|
||||
images, and on phones with low memory, the Cordova activity may be killed. In this
|
||||
scenario, the image may not appear when the Cordova activity is restored.
|
||||
scenario, the result from the plugin call will be delivered via the resume event.
|
||||
See [the Android Lifecycle guide](http://cordova.apache.org/docs/en/dev/guide/platforms/android/lifecycle.html)
|
||||
for more information. The `pendingResult.result` value will contain the value that
|
||||
would be passed to the callbacks (either the URI/URL or an error message). Check
|
||||
the `pendingResult.pluginStatus` to determine whether or not the call was
|
||||
successful.
|
||||
|
||||
#### Browser Quirks
|
||||
|
||||
|
@ -1214,4 +1214,58 @@ private String ouputModifiedBitmap(Bitmap bitmap, Uri uri) throws IOException {
|
||||
return (this.targetWidth > 0 && this.targetHeight > 0) ||
|
||||
this.correctOrientation || this.allowEdit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Taking or choosing a picture launches another Activity, so we need to implement the
|
||||
* save/restore APIs to handle the case where the CordovaActivity is killed by the OS
|
||||
* before we get the launched Activity's result.
|
||||
*/
|
||||
public Bundle onSaveInstanceState() {
|
||||
Bundle state = new Bundle();
|
||||
state.putInt("destType", this.destType);
|
||||
state.putInt("srcType", this.srcType);
|
||||
state.putInt("mQuality", this.mQuality);
|
||||
state.putInt("targetWidth", this.targetWidth);
|
||||
state.putInt("targetHeight", this.targetHeight);
|
||||
state.putInt("encodingType", this.encodingType);
|
||||
state.putInt("mediaType", this.mediaType);
|
||||
state.putInt("numPics", this.numPics);
|
||||
state.putBoolean("allowEdit", this.allowEdit);
|
||||
state.putBoolean("correctOrientation", this.correctOrientation);
|
||||
state.putBoolean("saveToPhotoAlbum", this.saveToPhotoAlbum);
|
||||
|
||||
if(this.croppedUri != null) {
|
||||
state.putString("croppedUri", this.croppedUri.toString());
|
||||
}
|
||||
|
||||
if(this.imageUri != null) {
|
||||
state.putString("imageUri", this.imageUri.toString());
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
public void onRestoreStateForActivityResult(Bundle state, CallbackContext callbackContext) {
|
||||
this.destType = state.getInt("destType");
|
||||
this.srcType = state.getInt("srcType");
|
||||
this.mQuality = state.getInt("mQuality");
|
||||
this.targetWidth = state.getInt("targetWidth");
|
||||
this.targetHeight = state.getInt("targetHeight");
|
||||
this.encodingType = state.getInt("encodingType");
|
||||
this.mediaType = state.getInt("mediaType");
|
||||
this.numPics = state.getInt("numPics");
|
||||
this.allowEdit = state.getBoolean("allowEdit");
|
||||
this.correctOrientation = state.getBoolean("correctOrientation");
|
||||
this.saveToPhotoAlbum = state.getBoolean("saveToPhotoAlbum");
|
||||
|
||||
if(state.containsKey("croppedUri")) {
|
||||
this.croppedUri = Uri.parse(state.getString("croppedUri"));
|
||||
}
|
||||
|
||||
if(state.containsKey("imageUri")) {
|
||||
this.imageUri = Uri.parse(state.getString("imageUri"));
|
||||
}
|
||||
|
||||
this.callbackContext = callbackContext;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user