diff options
Diffstat (limited to 'OpenKeychain/src/main/java/org')
| -rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java | 35 | 
1 files changed, 23 insertions, 12 deletions
| diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java index f9dbb2b6b..0007d179a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptActivity.java @@ -23,6 +23,7 @@ import android.content.Intent;  import android.content.pm.LabeledIntent;  import android.content.pm.ResolveInfo;  import android.net.Uri; +import android.os.Build;  import android.os.Bundle;  import android.os.Handler;  import android.os.Message; @@ -223,20 +224,22 @@ public class EncryptActivity extends DrawerActivity implements EncryptActivityIn                  super.handleMessage(message);                  if (message.arg1 == KeychainIntentServiceHandler.MESSAGE_OKAY) { -                    Notify.showNotify(EncryptActivity.this, R.string.encrypt_sign_successful, Notify.Style.INFO); +                    if (!isContentMessage()) { +                        Notify.showNotify(EncryptActivity.this, R.string.encrypt_sign_successful, Notify.Style.INFO); -                    if (!isContentMessage() && mDeleteAfterEncrypt) { -                        for (Uri inputUri : mInputUris) { -                            DeleteFileDialogFragment deleteFileDialog = DeleteFileDialogFragment.newInstance(inputUri); -                            deleteFileDialog.show(getSupportFragmentManager(), "deleteDialog"); +                        if (mDeleteAfterEncrypt) { +                            for (Uri inputUri : mInputUris) { +                                DeleteFileDialogFragment deleteFileDialog = DeleteFileDialogFragment.newInstance(inputUri); +                                deleteFileDialog.show(getSupportFragmentManager(), "deleteDialog"); +                            } +                            mInputUris.clear(); +                            notifyUpdate();                          } -                        mInputUris.clear(); -                        notifyUpdate();                      }                      if (mShareAfterEncrypt) { -                        // Share encrypted file -                        startActivity(sendCreateChooserExcludingOpenKeychain(message)); +                        // Share encrypted message/file +                        startActivity(sendWithChooserExcludingOpenKeychain(message));                      } else if (isContentMessage()) {                          // Copy to clipboard                          copyToClipboard(message); @@ -305,9 +308,17 @@ public class EncryptActivity extends DrawerActivity implements EncryptActivityIn       * @param message       * @return       */ -    private Intent sendCreateChooserExcludingOpenKeychain(Message message) { +    private Intent sendWithChooserExcludingOpenKeychain(Message message) {          Intent prototype = createSendIntent(message); +        String title = isContentMessage() ? getString(R.string.title_share_message) +                : getString(R.string.title_share_file); + +        // somehow this returns lists with only one entry on Android 2.3 +        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) { +            return Intent.createChooser(prototype, title); +        } +          String[] blacklist = new String[]{Constants.PACKAGE_NAME + ".ui.EncryptActivity"};          List<LabeledIntent> targetedShareIntents = new ArrayList<LabeledIntent>(); @@ -348,7 +359,7 @@ public class EncryptActivity extends DrawerActivity implements EncryptActivityIn                  }                  // Create chooser with only one Intent in it -                Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(targetedShareIntents.size() - 1), getString(R.string.title_share_file)); +                Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(targetedShareIntents.size() - 1), title);                  // append all other Intents                  chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[]{}));                  return chooserIntent; @@ -357,7 +368,7 @@ public class EncryptActivity extends DrawerActivity implements EncryptActivityIn          }          // fallback to Android's default chooser -        return Intent.createChooser(prototype, getString(R.string.title_share_file)); +        return Intent.createChooser(prototype, title);      }      private Intent createSendIntent(Message message) { | 
