aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MultiCertifyKeyFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MultiCertifyKeyFragment.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MultiCertifyKeyFragment.java31
1 files changed, 27 insertions, 4 deletions
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 0b0fb0e04..026051715 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MultiCertifyKeyFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/MultiCertifyKeyFragment.java
@@ -45,14 +45,18 @@ import android.widget.ScrollView;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.pgp.KeyRing;
+import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException;
+import org.sufficientlysecure.keychain.provider.CachedPublicKeyRing;
import org.sufficientlysecure.keychain.provider.KeychainContract.UserIds;
import org.sufficientlysecure.keychain.provider.KeychainDatabase.Tables;
+import org.sufficientlysecure.keychain.provider.ProviderHelper;
import org.sufficientlysecure.keychain.service.CertifyActionsParcel;
import org.sufficientlysecure.keychain.service.CertifyActionsParcel.CertifyAction;
import org.sufficientlysecure.keychain.service.KeychainIntentService;
import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler;
import org.sufficientlysecure.keychain.service.PassphraseCacheService;
import org.sufficientlysecure.keychain.service.results.CertifyResult;
+import org.sufficientlysecure.keychain.service.results.OperationResult;
import org.sufficientlysecure.keychain.ui.adapter.MultiUserIdsAdapter;
import org.sufficientlysecure.keychain.ui.dialog.PassphraseDialogFragment;
import org.sufficientlysecure.keychain.ui.util.Notify;
@@ -105,11 +109,29 @@ public class MultiCertifyKeyFragment extends LoaderFragment
return;
}
+ // preselect certify key id if given
+ long certifyKeyId = mActivity.getIntent().getLongExtra(MultiCertifyKeyActivity.EXTRA_CERTIFY_KEY_ID, Constants.key.none);
+ if (certifyKeyId != Constants.key.none) {
+ try {
+ CachedPublicKeyRing key = (new ProviderHelper(getActivity())).getCachedPublicKeyRing(certifyKeyId);
+ if (key.canCertify()) {
+ mCertifyKeySpinner.setSelectedKeyId(certifyKeyId);
+ }
+ } catch (PgpGeneralException e) {
+ Log.e(Constants.TAG, "certify certify check failed", e);
+ }
+ }
+
mUserIdsAdapter = new MultiUserIdsAdapter(mActivity, null, 0);
mUserIds.setAdapter(mUserIdsAdapter);
getLoaderManager().initLoader(0, null, this);
+ OperationResult result = mActivity.getIntent().getParcelableExtra(MultiCertifyKeyActivity.EXTRA_RESULT);
+ if (result != null) {
+ // display result from import
+ result.createNotify(mActivity).show();
+ }
}
@Override
@@ -189,14 +211,15 @@ public class MultiCertifyKeyFragment extends LoaderFragment
return new CursorLoader(mActivity, uri,
USER_IDS_PROJECTION, selection, ids,
Tables.USER_IDS + "." + UserIds.MASTER_KEY_ID + " ASC"
- + ", " + Tables.USER_IDS + "." + UserIds.USER_ID + " ASC");
+ + ", " + Tables.USER_IDS + "." + UserIds.USER_ID + " ASC"
+ );
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
- MatrixCursor matrix = new MatrixCursor(new String[] {
- "_id", "user_data", "grouped"
+ MatrixCursor matrix = new MatrixCursor(new String[]{
+ "_id", "user_data", "grouped"
});
data.moveToFirst();
@@ -229,7 +252,7 @@ public class MultiCertifyKeyFragment extends LoaderFragment
byte[] d = p.marshall();
p.recycle();
- matrix.addRow(new Object[] {
+ matrix.addRow(new Object[]{
lastMasterKeyId, d, header ? 1 : 0
});
// indicate that we have a header for this masterKeyId