diff options
| author | Vincent Breitmoser <valodim@mugenguild.com> | 2014-03-08 13:17:52 +0100 | 
|---|---|---|
| committer | Vincent Breitmoser <valodim@mugenguild.com> | 2014-03-08 13:17:52 +0100 | 
| commit | 706e212b6b1f5fbd30643d33336f3967d88e8b5b (patch) | |
| tree | 413c89cd597f30c8f6e4e59994617183440b6da9 /OpenPGP-Keychain/src/main/java | |
| parent | 7ad8977cf3f4117782d6568322ec76c5cd8e2475 (diff) | |
| download | open-keychain-706e212b6b1f5fbd30643d33336f3967d88e8b5b.tar.gz open-keychain-706e212b6b1f5fbd30643d33336f3967d88e8b5b.tar.bz2 open-keychain-706e212b6b1f5fbd30643d33336f3967d88e8b5b.zip  | |
add edit button and secret key info to public key view
Diffstat (limited to 'OpenPGP-Keychain/src/main/java')
3 files changed, 36 insertions, 1 deletions
diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java index ea6d3a859..b6bfc372a 100644 --- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java +++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java @@ -483,6 +483,12 @@ public class ProviderHelper {          return (masterKeyId > 0);      } +    public static boolean hasSecretKeyByMasterKeyId(Context context, long masterKeyId) { +        Uri queryUri = KeyRings.buildSecretKeyRingsByMasterKeyIdUri(Long.toString(masterKeyId)); +        // see if we can get our master key id back from the uri +        return getMasterKeyId(context, queryUri) == masterKeyId; +    } +      /**       * Get master key id of keyring by its row id       */ diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java index 0099fb80d..bdae88e55 100644 --- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java +++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java @@ -427,7 +427,6 @@ public class KeyListFragment extends Fragment implements AdapterView.OnItemClick                      button.setOnClickListener(new OnClickListener() {                          public void onClick(View view) {                              Intent editIntent = new Intent(getActivity(), EditKeyActivity.class); -                            // editIntent.setData(KeychainContract.KeyRings.buildSecretKeyRingsUri(Long.toString(1)));                              editIntent.setData(KeychainContract.KeyRings.buildSecretKeyRingsByMasterKeyIdUri(Long.toString(id)));                              editIntent.setAction(EditKeyActivity.ACTION_EDIT_KEY);                              startActivityForResult(editIntent, 0); diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyMainFragment.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyMainFragment.java index 495764eaf..c7403b0a0 100644 --- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyMainFragment.java +++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyMainFragment.java @@ -19,6 +19,7 @@ package org.sufficientlysecure.keychain.ui;  import android.content.Intent;  import android.database.Cursor; +import android.graphics.Color;  import android.net.Uri;  import android.os.Bundle;  import android.support.v4.app.Fragment; @@ -59,6 +60,8 @@ public class ViewKeyMainFragment extends Fragment  implements      private TextView mExpiry;      private TextView mCreation;      private TextView mFingerprint; +    private TextView mSecretKey; +    private BootstrapButton mActionEdit;      private BootstrapButton mActionEncrypt;      private ListView mUserIds; @@ -85,8 +88,10 @@ public class ViewKeyMainFragment extends Fragment  implements          mCreation = (TextView) view.findViewById(R.id.creation);          mExpiry = (TextView) view.findViewById(R.id.expiry);          mFingerprint = (TextView) view.findViewById(R.id.fingerprint); +        mSecretKey = (TextView) view.findViewById(R.id.secret_key);          mUserIds = (ListView) view.findViewById(R.id.user_ids);          mKeys = (ListView) view.findViewById(R.id.keys); +        mActionEdit = (BootstrapButton) view.findViewById(R.id.action_edit);          mActionEncrypt = (BootstrapButton) view.findViewById(R.id.action_encrypt);          return view; @@ -116,6 +121,31 @@ public class ViewKeyMainFragment extends Fragment  implements          Log.i(Constants.TAG, "mDataUri: " + mDataUri.toString()); +        { // label whether secret key is available, and edit button if it is +            final long masterKeyId = ProviderHelper.getMasterKeyId(getActivity(), mDataUri); +            if(ProviderHelper.hasSecretKeyByMasterKeyId(getActivity(), masterKeyId)) { +                // set this attribute. this is a LITTLE unclean, but we have the info available +                // right here, so why not. +                mSecretKey.setTextColor(getResources().getColor(R.color.emphasis)); +                mSecretKey.setText(R.string.secret_key_yes); + +                // edit button +                mActionEdit.setVisibility(View.VISIBLE); +                mActionEdit.setOnClickListener(new View.OnClickListener() { +                    public void onClick(View view) { +                        Intent editIntent = new Intent(getActivity(), EditKeyActivity.class); +                        editIntent.setData(KeychainContract.KeyRings.buildSecretKeyRingsByMasterKeyIdUri(Long.toString(masterKeyId))); +                        editIntent.setAction(EditKeyActivity.ACTION_EDIT_KEY); +                        startActivityForResult(editIntent, 0); +                    } +                }); +            } else { +                mSecretKey.setTextColor(Color.BLACK); +                mSecretKey.setText(getResources().getString(R.string.secret_key_no)); +                mActionEdit.setVisibility(View.GONE); +            } +        } +          mActionEncrypt.setOnClickListener(new View.OnClickListener() {              @Override  | 
