Fixes a crash where photoUploadUri can be nullified if the activity is evicted from memory while taking a picture, so when it resumes and recreates it no longer has a valid URI. Closes #326

This commit is contained in:
Vavassor 2017-07-02 17:45:13 -04:00
parent 17df70d166
commit b06dda47c1
1 changed files with 6 additions and 2 deletions

View File

@ -238,11 +238,13 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
if (previousInputContentInfo != null) { if (previousInputContentInfo != null) {
onCommitContentInternal(previousInputContentInfo, previousFlags); onCommitContentInternal(previousInputContentInfo, previousFlags);
} }
photoUploadUri = savedInstanceState.getParcelable("photoUploadUri");
} else { } else {
showMarkSensitive = false; showMarkSensitive = false;
startingVisibility = preferences.getString("rememberedVisibility", "public"); startingVisibility = preferences.getString("rememberedVisibility", "public");
statusMarkSensitive = false; statusMarkSensitive = false;
startingHideText = false; startingHideText = false;
photoUploadUri = null;
} }
/* If the composer is started up as a reply to another post, override the "starting" state /* If the composer is started up as a reply to another post, override the "starting" state
@ -435,6 +437,7 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
} }
currentInputContentInfo = null; currentInputContentInfo = null;
currentFlags = 0; currentFlags = 0;
outState.putParcelable("photoUploadUri", photoUploadUri);
super.onSaveInstanceState(outState); super.onSaveInstanceState(outState);
} }
@ -821,6 +824,7 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
} }
} }
@NonNull
private File createNewImageFile() throws IOException { private File createNewImageFile() throws IOException {
// Create an image file name // Create an image file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date()); String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date());
@ -1092,11 +1096,11 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
if (requestCode == MEDIA_PICK_RESULT && resultCode == RESULT_OK && data != null) { if (resultCode == RESULT_OK && requestCode == MEDIA_PICK_RESULT && data != null) {
Uri uri = data.getData(); Uri uri = data.getData();
long mediaSize = MediaUtils.getMediaSize(getContentResolver(), uri); long mediaSize = MediaUtils.getMediaSize(getContentResolver(), uri);
pickMedia(uri, mediaSize); pickMedia(uri, mediaSize);
} else if (requestCode == MEDIA_TAKE_PHOTO_RESULT && resultCode == RESULT_OK) { } else if (resultCode == RESULT_OK && requestCode == MEDIA_TAKE_PHOTO_RESULT) {
long mediaSize = MediaUtils.getMediaSize(getContentResolver(), photoUploadUri); long mediaSize = MediaUtils.getMediaSize(getContentResolver(), photoUploadUri);
pickMedia(photoUploadUri, mediaSize); pickMedia(photoUploadUri, mediaSize);
} }