diff options
| author | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-10-25 22:53:35 +0200 | 
|---|---|---|
| committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-10-25 22:53:35 +0200 | 
| commit | c1ef9ed1495e0a7392c4f553a086cc470569e653 (patch) | |
| tree | 9b8e56658f8712e85ca408269e04b60d92d44919 /OpenKeychain/src | |
| parent | 109938225064504261796af193d22f6a0736b328 (diff) | |
| download | open-keychain-c1ef9ed1495e0a7392c4f553a086cc470569e653.tar.gz open-keychain-c1ef9ed1495e0a7392c4f553a086cc470569e653.tar.bz2 open-keychain-c1ef9ed1495e0a7392c4f553a086cc470569e653.zip | |
Use passphrase dialog activity instead of passphrase dialog
Diffstat (limited to 'OpenKeychain/src')
3 files changed, 67 insertions, 36 deletions
| diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java index e2d241825..a18eb76d1 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java @@ -40,18 +40,17 @@ import android.widget.ListView;  import org.sufficientlysecure.keychain.Constants;  import org.sufficientlysecure.keychain.R;  import org.sufficientlysecure.keychain.compatibility.DialogFragmentWorkaround; -import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException; -import org.sufficientlysecure.keychain.ui.util.ActionBarHelper; +import org.sufficientlysecure.keychain.operations.results.OperationResult; +import org.sufficientlysecure.keychain.operations.results.OperationResult.LogType; +import org.sufficientlysecure.keychain.operations.results.SingletonResult;  import org.sufficientlysecure.keychain.pgp.KeyRing; +import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException;  import org.sufficientlysecure.keychain.provider.CachedPublicKeyRing;  import org.sufficientlysecure.keychain.provider.KeychainContract;  import org.sufficientlysecure.keychain.provider.ProviderHelper;  import org.sufficientlysecure.keychain.provider.ProviderHelper.NotFoundException;  import org.sufficientlysecure.keychain.service.KeychainIntentService;  import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; -import org.sufficientlysecure.keychain.operations.results.OperationResult; -import org.sufficientlysecure.keychain.operations.results.OperationResult.LogType; -import org.sufficientlysecure.keychain.operations.results.SingletonResult;  import org.sufficientlysecure.keychain.service.PassphraseCacheService;  import org.sufficientlysecure.keychain.service.SaveKeyringParcel;  import org.sufficientlysecure.keychain.ui.adapter.SubkeysAdapter; @@ -63,8 +62,8 @@ import org.sufficientlysecure.keychain.ui.dialog.AddUserIdDialogFragment;  import org.sufficientlysecure.keychain.ui.dialog.EditSubkeyDialogFragment;  import org.sufficientlysecure.keychain.ui.dialog.EditSubkeyExpiryDialogFragment;  import org.sufficientlysecure.keychain.ui.dialog.EditUserIdDialogFragment; -import org.sufficientlysecure.keychain.ui.dialog.PassphraseDialogFragment;  import org.sufficientlysecure.keychain.ui.dialog.SetPassphraseDialogFragment; +import org.sufficientlysecure.keychain.ui.util.ActionBarHelper;  import org.sufficientlysecure.keychain.ui.util.Notify;  import org.sufficientlysecure.keychain.util.Log; @@ -74,6 +73,8 @@ public class EditKeyFragment extends LoaderFragment implements      public static final String ARG_DATA_URI = "uri";      public static final String ARG_SAVE_KEYRING_PARCEL = "save_keyring_parcel"; +    public static final int REQUEST_CODE_PASSPHRASE = 0x00008001; +      private ListView mUserIdsList;      private ListView mSubkeysList;      private ListView mUserIdsAddedList; @@ -242,23 +243,9 @@ public class EditKeyFragment extends LoaderFragment implements          }          if (mCurrentPassphrase == null) { -            PassphraseDialogFragment.show(getActivity(), mSaveKeyringParcel.mMasterKeyId, -                    new Handler() { -                        @Override -                        public void handleMessage(Message message) { -                            if (message.what == PassphraseDialogFragment.MESSAGE_OKAY) { -                                mCurrentPassphrase = message.getData().getString( -                                        PassphraseDialogFragment.MESSAGE_DATA_PASSPHRASE); -                                // Prepare the loaders. Either re-connect with an existing ones, -                                // or start new ones. -                                getLoaderManager().initLoader(LOADER_ID_USER_IDS, null, EditKeyFragment.this); -                                getLoaderManager().initLoader(LOADER_ID_SUBKEYS, null, EditKeyFragment.this); -                            } else { -                                EditKeyFragment.this.getActivity().finish(); -                            } -                        } -                    } -            ); +            Intent intent = new Intent(getActivity(), PassphraseDialogActivity.class); +            intent.putExtra(PassphraseDialogActivity.EXTRA_SUBKEY_ID, mSaveKeyringParcel.mMasterKeyId); +            startActivityForResult(intent, REQUEST_CODE_PASSPHRASE);          } else {              // Prepare the loaders. Either re-connect with an existing ones,              // or start new ones. @@ -280,6 +267,28 @@ public class EditKeyFragment extends LoaderFragment implements          mSubkeysAddedList.setAdapter(mSubkeysAddedAdapter);      } +    @Override +    public void onActivityResult(int requestCode, int resultCode, Intent data) { +        switch (requestCode) { +            case REQUEST_CODE_PASSPHRASE: { +                if (resultCode == Activity.RESULT_OK && data != null) { +                    mCurrentPassphrase = data.getStringExtra(PassphraseDialogActivity.MESSAGE_DATA_PASSPHRASE); +                    // Prepare the loaders. Either re-connect with an existing ones, +                    // or start new ones. +                    getLoaderManager().initLoader(LOADER_ID_USER_IDS, null, EditKeyFragment.this); +                    getLoaderManager().initLoader(LOADER_ID_SUBKEYS, null, EditKeyFragment.this); +                } else { +                    getActivity().finish(); +                } +                return; +            } + +            default: { +                super.onActivityResult(requestCode, resultCode, data); +            } +        } +    } +      private void initView() {          mChangePassphrase.setOnClickListener(new View.OnClickListener() {              @Override diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MultiCertifyKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MultiCertifyKeyFragment.java index b9eab2260..3e532b56a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MultiCertifyKeyFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MultiCertifyKeyFragment.java @@ -18,6 +18,7 @@  package org.sufficientlysecure.keychain.ui; +import android.app.Activity;  import android.app.ProgressDialog;  import android.content.Intent;  import android.database.Cursor; @@ -68,6 +69,8 @@ import java.util.ArrayList;  public class MultiCertifyKeyFragment extends LoaderFragment          implements LoaderManager.LoaderCallbacks<Cursor> { +    public static final int REQUEST_CODE_PASSPHRASE = 0x00008001; +      private FragmentActivity mActivity;      private CheckBox mUploadKeyCheckbox; @@ -303,22 +306,33 @@ public class MultiCertifyKeyFragment extends LoaderFragment              return;          }          if (passphrase == null) { -            PassphraseDialogFragment.show(mActivity, mSignMasterKeyId, -                    new Handler() { -                        @Override -                        public void handleMessage(Message message) { -                            if (message.what == PassphraseDialogFragment.MESSAGE_OKAY) { -                                startCertifying(); -                            } -                        } -                    } -            ); +            Intent intent = new Intent(getActivity(), PassphraseDialogActivity.class); +            intent.putExtra(PassphraseDialogActivity.EXTRA_SUBKEY_ID, mSignMasterKeyId); +            startActivityForResult(intent, REQUEST_CODE_PASSPHRASE);              // bail out; need to wait until the user has entered the passphrase before trying again          } else {              startCertifying();          }      } + +    @Override +    public void onActivityResult(int requestCode, int resultCode, Intent data) { +        switch (requestCode) { +            case REQUEST_CODE_PASSPHRASE: { +                if (resultCode == Activity.RESULT_OK && data != null) { +                    String passphrase = data.getStringExtra(PassphraseDialogActivity.MESSAGE_DATA_PASSPHRASE); +                    startCertifying(); +                } +                return; +            } + +            default: { +                super.onActivityResult(requestCode, resultCode, data); +            } +        } +    } +      /**       * kicks off the actual signing process on a background thread       */ diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyMainFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyMainFragment.java index 7623f9a7b..dc8f51f59 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyMainFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyMainFragment.java @@ -329,9 +329,17 @@ public class ViewKeyMainFragment extends LoaderFragment implements      }      private void certify(Uri dataUri) { -        Intent signIntent = new Intent(getActivity(), CertifyKeyActivity.class); -        signIntent.setData(dataUri); -        startActivityForResult(signIntent, 0); +        long keyId = 0; +        try { +            keyId = new ProviderHelper(getActivity()) +                    .getCachedPublicKeyRing(dataUri) +                    .extractOrGetMasterKeyId(); +        } catch (PgpKeyNotFoundException e) { +            Log.e(Constants.TAG, "key not found!", e); +        } +        Intent certifyIntent = new Intent(getActivity(), MultiCertifyKeyActivity.class); +        certifyIntent.putExtra(MultiCertifyKeyActivity.EXTRA_KEY_IDS, new long[]{keyId}); +        startActivityForResult(certifyIntent, 0);      }      private void editKey(Uri dataUri) { | 
