diff options
author | Ash Hughes <ashes-iontach@hotmail.com> | 2013-03-19 02:04:56 +0000 |
---|---|---|
committer | Ash Hughes <ashes-iontach@hotmail.com> | 2013-03-19 02:04:56 +0000 |
commit | 650b22d5e9512ede43b0c742799d49b061dda587 (patch) | |
tree | aa32b62b8496a1ff96f85e4673faa5dd8d8ead65 | |
parent | 2d856c5f0e4f0ba9e1973ad85fde14ad06a1133c (diff) | |
download | open-keychain-650b22d5e9512ede43b0c742799d49b061dda587.tar.gz open-keychain-650b22d5e9512ede43b0c742799d49b061dda587.tar.bz2 open-keychain-650b22d5e9512ede43b0c742799d49b061dda587.zip |
only sign keys if private key has capability
3 files changed, 17 insertions, 1 deletions
diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/SelectSecretKeyActivity.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/SelectSecretKeyActivity.java index 14ccb17c7..10acd38d9 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/SelectSecretKeyActivity.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/SelectSecretKeyActivity.java @@ -34,8 +34,11 @@ public class SelectSecretKeyActivity extends SherlockFragmentActivity { public static final String ACTION_SELECT_SECRET_KEY = Constants.INTENT_PREFIX + "SELECT_SECRET_KEYRING"; + public static final String EXTRA_FILTER_CERTIFY = "filter_certify"; + public static final String RESULT_EXTRA_MASTER_KEY_ID = "masterKeyId"; public static final String RESULT_EXTRA_USER_ID = "userId"; + public static boolean filterCertify = false; @Override protected void onCreate(Bundle savedInstanceState) { @@ -61,6 +64,8 @@ public class SelectSecretKeyActivity extends SherlockFragmentActivity { // } // }); + filterCertify = getIntent().getBooleanExtra(EXTRA_FILTER_CERTIFY, false); + handleIntent(getIntent()); } diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/SelectSecretKeyFragment.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/SelectSecretKeyFragment.java index a3d9167a3..ae3adeed7 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/SelectSecretKeyFragment.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/SelectSecretKeyFragment.java @@ -91,12 +91,22 @@ public class SelectSecretKeyFragment extends SherlockListFragment implements // sample only has one Loader, so we don't care about the ID. Uri baseUri = KeyRings.buildSecretKeyRingsUri(); + String CapFilter = null; + if (((SelectSecretKeyActivity)getActivity()).filterCertify == true) { + CapFilter = "(cert>0)"; + } + + // These are the rows that we will retrieve. long now = new Date().getTime() / 1000; String[] projection = new String[] { KeyRings._ID, KeyRings.MASTER_KEY_ID, UserIds.USER_ID, + "(SELECT COUNT(cert_keys." + Keys._ID + ") FROM " + Tables.KEYS + + " AS cert_keys WHERE cert_keys." + Keys.KEY_RING_ROW_ID + " = " + + KeychainDatabase.Tables.KEY_RINGS + "." + KeyRings._ID + " AND cert_keys." + + Keys.CAN_CERTIFY + " = '1') AS cert", "(SELECT COUNT(available_keys." + Keys._ID + ") FROM " + Tables.KEYS + " AS available_keys WHERE available_keys." + Keys.KEY_RING_ROW_ID + " = " + KeychainDatabase.Tables.KEY_RINGS + "." + KeyRings._ID @@ -127,7 +137,7 @@ public class SelectSecretKeyFragment extends SherlockListFragment implements // Now create and return a CursorLoader that will take care of // creating a Cursor for the data being displayed. - return new CursorLoader(getActivity(), baseUri, projection, null, null, orderBy); + return new CursorLoader(getActivity(), baseUri, projection, CapFilter, null, orderBy); } @Override diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/SignKeyActivity.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/SignKeyActivity.java index 6ded66468..1e7fe0120 100644 --- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/SignKeyActivity.java +++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/SignKeyActivity.java @@ -121,6 +121,7 @@ public class SignKeyActivity extends SherlockFragmentActivity { // kick off the SecretKey selection activity so the user chooses which key to sign with // first Intent intent = new Intent(this, SelectSecretKeyActivity.class); + intent.putExtra(SelectSecretKeyActivity.EXTRA_FILTER_CERTIFY, true); startActivityForResult(intent, Id.request.secret_keys); } } |