Prevent double tap send on camera first flow.

Defensive array list copies where used in builders and Intent#putParcelableArrayListExtra.

Spelling.
This commit is contained in:
Alan Evans
2021-02-25 12:33:39 -04:00
parent e0d9c3f149
commit e6f4b0976f
9 changed files with 49 additions and 53 deletions

View File

@@ -569,22 +569,14 @@ public class MediaSendActivity extends PassphraseRequiredActivity implements Med
@Override
public void onCameraContactsSendClicked(@NonNull List<Recipient> recipients) {
MediaSendFragment fragment = getMediaSendFragment();
if (fragment != null) {
fragment.pausePlayback();
SimpleProgressDialog.DismissibleDialog dialog = SimpleProgressDialog.showDelayed(this, 300, 0);
viewModel.onSendClicked(buildModelsToTransform(fragment), recipients, composeText.getMentions()).observe(this, result -> {
dialog.dismiss();
setActivityResultAndFinish(result);
});
} else {
throw new AssertionError("No editor fragment available!");
}
onSend(recipients);
}
private void onSendClicked() {
onSend(Collections.emptyList());
}
private void onSend(@NonNull List<Recipient> recipients) {
MediaSendFragment fragment = getMediaSendFragment();
if (fragment == null) {
@@ -600,7 +592,7 @@ public class MediaSendActivity extends PassphraseRequiredActivity implements Med
fragment.pausePlayback();
SimpleProgressDialog.DismissibleDialog dialog = SimpleProgressDialog.showDelayed(this, 300, 0);
viewModel.onSendClicked(buildModelsToTransform(fragment), Collections.emptyList(), composeText.getMentions())
viewModel.onSendClicked(buildModelsToTransform(fragment), recipients, composeText.getMentions())
.observe(this, result -> {
dialog.dismiss();
setActivityResultAndFinish(result);