clean up in attachment chooser code. fixed #1168
This commit is contained in:
parent
e388c75452
commit
61fd5d6696
|
@ -398,61 +398,61 @@ public class ConversationActivity extends XmppActivity
|
|||
}
|
||||
|
||||
private void selectPresenceToAttachFile(final int attachmentChoice, final int encryption) {
|
||||
final OnPresenceSelected callback = new OnPresenceSelected() {
|
||||
|
||||
@Override
|
||||
public void onPresenceSelected() {
|
||||
Intent intent = new Intent();
|
||||
boolean chooser = false;
|
||||
String fallbackPackageId = null;
|
||||
switch (attachmentChoice) {
|
||||
case ATTACHMENT_CHOICE_CHOOSE_IMAGE:
|
||||
intent.setAction(Intent.ACTION_GET_CONTENT);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
||||
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE,true);
|
||||
}
|
||||
intent.setType("image/*");
|
||||
chooser = true;
|
||||
break;
|
||||
case ATTACHMENT_CHOICE_TAKE_PHOTO:
|
||||
Uri uri = xmppConnectionService.getFileBackend().getTakePhotoUri();
|
||||
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
|
||||
mPendingImageUris.clear();
|
||||
mPendingImageUris.add(uri);
|
||||
break;
|
||||
case ATTACHMENT_CHOICE_CHOOSE_FILE:
|
||||
chooser = true;
|
||||
intent.setType("*/*");
|
||||
intent.addCategory(Intent.CATEGORY_OPENABLE);
|
||||
intent.setAction(Intent.ACTION_GET_CONTENT);
|
||||
break;
|
||||
case ATTACHMENT_CHOICE_RECORD_VOICE:
|
||||
intent.setAction(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
|
||||
break;
|
||||
case ATTACHMENT_CHOICE_LOCATION:
|
||||
intent.setAction("eu.siacs.conversations.location.request");
|
||||
fallbackPackageId = "eu.siacs.conversations.sharelocation";
|
||||
break;
|
||||
}
|
||||
if (intent.resolveActivity(getPackageManager()) != null) {
|
||||
if (chooser) {
|
||||
startActivityForResult(
|
||||
Intent.createChooser(intent, getString(R.string.perform_action_with)),
|
||||
attachmentChoice);
|
||||
} else {
|
||||
startActivityForResult(intent, attachmentChoice);
|
||||
}
|
||||
} else if (fallbackPackageId != null) {
|
||||
startActivity(getInstallApkIntent(fallbackPackageId));
|
||||
}
|
||||
}
|
||||
};
|
||||
if (attachmentChoice == ATTACHMENT_CHOICE_LOCATION && encryption != Message.ENCRYPTION_OTR) {
|
||||
getSelectedConversation().setNextCounterpart(null);
|
||||
Intent intent = new Intent("eu.siacs.conversations.location.request");
|
||||
startActivityForResult(intent,attachmentChoice);
|
||||
callback.onPresenceSelected();
|
||||
} else {
|
||||
selectPresence(getSelectedConversation(), new OnPresenceSelected() {
|
||||
|
||||
@Override
|
||||
public void onPresenceSelected() {
|
||||
Intent intent = new Intent();
|
||||
boolean chooser = false;
|
||||
String fallbackPackageId = null;
|
||||
switch (attachmentChoice) {
|
||||
case ATTACHMENT_CHOICE_CHOOSE_IMAGE:
|
||||
intent.setAction(Intent.ACTION_GET_CONTENT);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
||||
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE,true);
|
||||
}
|
||||
intent.setType("image/*");
|
||||
chooser = true;
|
||||
break;
|
||||
case ATTACHMENT_CHOICE_TAKE_PHOTO:
|
||||
Uri uri = xmppConnectionService.getFileBackend().getTakePhotoUri();
|
||||
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
|
||||
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
|
||||
mPendingImageUris.clear();
|
||||
mPendingImageUris.add(uri);
|
||||
break;
|
||||
case ATTACHMENT_CHOICE_CHOOSE_FILE:
|
||||
chooser = true;
|
||||
intent.setType("*/*");
|
||||
intent.addCategory(Intent.CATEGORY_OPENABLE);
|
||||
intent.setAction(Intent.ACTION_GET_CONTENT);
|
||||
break;
|
||||
case ATTACHMENT_CHOICE_RECORD_VOICE:
|
||||
intent.setAction(MediaStore.Audio.Media.RECORD_SOUND_ACTION);
|
||||
break;
|
||||
case ATTACHMENT_CHOICE_LOCATION:
|
||||
intent.setAction("eu.siacs.conversations.location.request");
|
||||
fallbackPackageId = "eu.siacs.conversations.sharelocation";
|
||||
break;
|
||||
}
|
||||
if (intent.resolveActivity(getPackageManager()) != null) {
|
||||
if (chooser) {
|
||||
startActivityForResult(
|
||||
Intent.createChooser(intent, getString(R.string.perform_action_with)),
|
||||
attachmentChoice);
|
||||
} else {
|
||||
startActivityForResult(intent, attachmentChoice);
|
||||
}
|
||||
} else if (fallbackPackageId != null) {
|
||||
startActivity(getInstallApkIntent(fallbackPackageId));
|
||||
}
|
||||
}
|
||||
});
|
||||
selectPresence(getSelectedConversation(),callback);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue