add linked it to view key context menu

This commit is contained in:
Vincent Breitmoser
2015-03-02 19:05:52 +01:00
parent e6af789bf5
commit 8bec183eda
4 changed files with 26 additions and 1 deletions

View File

@@ -72,6 +72,7 @@ import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.provider.ProviderHelper;
import org.sufficientlysecure.keychain.service.KeychainIntentService;
import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler;
import org.sufficientlysecure.keychain.ui.linked.LinkedIdWizard;
import org.sufficientlysecure.keychain.ui.util.FormattingUtils;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
import org.sufficientlysecure.keychain.ui.util.Notify;
@@ -334,6 +335,12 @@ public class ViewKeyActivity extends BaseActivity implements
certifyFingeprint(mDataUri);
return true;
}
case R.id.menu_key_view_add_linked_identity: {
Intent intent = new Intent(this, LinkedIdWizard.class);
intent.setData(mDataUri);
startActivity(intent);
return true;
}
}
} catch (ProviderHelper.NotFoundException e) {
Notify.showNotify(this, R.string.error_key_not_found, Notify.Style.ERROR);
@@ -346,6 +353,10 @@ public class ViewKeyActivity extends BaseActivity implements
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem editKey = menu.findItem(R.id.menu_key_view_edit);
editKey.setVisible(mIsSecret);
MenuItem addLinked = menu.findItem(R.id.menu_key_view_add_linked_identity);
addLinked.setVisible(mIsSecret);
MenuItem certifyFingerprint = menu.findItem(R.id.menu_key_view_certify_fingerprint);
certifyFingerprint.setVisible(!mIsSecret && !mIsVerified);

View File

@@ -27,6 +27,7 @@ import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
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.util.Log;
@@ -47,7 +48,14 @@ public class LinkedIdWizard extends ActionBarActivity {
try {
Uri uri = getIntent().getData();
uri = KeychainContract.KeyRings.buildUnifiedKeyRingUri(uri);
CachedPublicKeyRing ring = new ProviderHelper(this).getCachedPublicKeyRing(uri);
if (!ring.hasAnySecret()) {
Log.e(Constants.TAG, "Linked Identities can only be added to secret keys!");
finish();
return;
}
mMasterKeyId = ring.extractOrGetMasterKeyId();
mFingerprint = ring.getFingerprint();
} catch (PgpKeyNotFoundException e) {

View File

@@ -37,4 +37,9 @@
android:visible="false"
android:title="@string/menu_certify_fingerprint" />
<item
android:id="@+id/menu_key_view_add_linked_identity"
app:showAsAction="never"
android:title="@string/menu_linked_add_identity" />
</menu>

View File

@@ -1292,8 +1292,9 @@
<string name="linked_id_generic_text">"This file claims ownership of the OpenPGP key with long id %2$s.\n\nCookie for proof:\n%1$s"</string>
<string name="linked_verifying">Verifying…</string>
<string name="linked_verify_success">Verification successful!</string>
<string name="linked_verify_error">Veriication error!</string>
<string name="linked_verify_error">Verification error!</string>
<string name="linked_verify_pending">Not yet verified</string>
<string name="linked_need_verify">The resource needs to be verified before you can proceed!</string>
<string name="menu_linked_add_identity">"Add Linked Identity"</string>
</resources>