aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyViewActivity.java
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-01-02 23:09:10 +0100
committerDominik Schürmann <dominik@dominikschuermann.de>2014-01-02 23:09:10 +0100
commit9576aeabca5453578f297d3546f2d3526eb377de (patch)
treea30ae759cd9d218e91081f5e9f748afc99ab8c14 /OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyViewActivity.java
parentbc0edfda0bae21a567b9ea340cab323f9a15a086 (diff)
downloadopen-keychain-9576aeabca5453578f297d3546f2d3526eb377de.tar.gz
open-keychain-9576aeabca5453578f297d3546f2d3526eb377de.tar.bz2
open-keychain-9576aeabca5453578f297d3546f2d3526eb377de.zip
integrate share activity in view activity
Diffstat (limited to 'OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyViewActivity.java')
-rw-r--r--OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyViewActivity.java69
1 files changed, 44 insertions, 25 deletions
diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyViewActivity.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyViewActivity.java
index c2ef64d51..4a628a3c3 100644
--- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyViewActivity.java
+++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyViewActivity.java
@@ -18,6 +18,7 @@
package org.sufficientlysecure.keychain.ui;
+import java.util.ArrayList;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -29,20 +30,21 @@ import org.sufficientlysecure.keychain.Id;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.pgp.PgpKeyHelper;
import org.sufficientlysecure.keychain.provider.ProviderHelper;
+import org.sufficientlysecure.keychain.ui.dialog.ShareQrCodeDialogFragment;
import org.sufficientlysecure.keychain.util.Log;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
-import android.provider.ContactsContract.DataUsageFeedback;
import android.text.format.DateFormat;
import android.widget.TextView;
import com.actionbarsherlock.app.SherlockActivity;
+import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
-public class KeyViewActivity extends SherlockActivity {
+public class KeyViewActivity extends SherlockFragmentActivity {
private Uri mDataUri;
private PGPPublicKey mPublicKey;
@@ -136,32 +138,19 @@ public class KeyViewActivity extends SherlockActivity {
return true;
case R.id.menu_key_view_export_file:
-// long masterKeyId = ProviderHelper.getPublicMasterKeyId(mKeyListActivity, keyRingRowId);
-// if (masterKeyId == -1) {
-// masterKeyId = ProviderHelper.getSecretMasterKeyId(mKeyListActivity, keyRingRowId);
-// }
-//
-// mKeyListActivity.showExportKeysDialog(masterKeyId);
+ // long masterKeyId = ProviderHelper.getPublicMasterKeyId(mKeyListActivity,
+ // keyRingRowId);
+ // if (masterKeyId == -1) {
+ // masterKeyId = ProviderHelper.getSecretMasterKeyId(mKeyListActivity, keyRingRowId);
+ // }
+ //
+ // mKeyListActivity.showExportKeysDialog(masterKeyId);
return true;
case R.id.menu_key_view_share:
- // get master key id using row id
- long masterKeyId3 = ProviderHelper.getPublicMasterKeyId(this, keyRingRowId);
-
- Intent shareIntent = new Intent(this, ShareActivity.class);
- shareIntent.setAction(ShareActivity.ACTION_SHARE_KEYRING);
- shareIntent.putExtra(ShareActivity.EXTRA_MASTER_KEY_ID, masterKeyId3);
- startActivityForResult(shareIntent, 0);
-
+ shareKey();
return true;
case R.id.menu_key_view_share_qr_code:
- // get master key id using row id
- long masterKeyId = ProviderHelper.getPublicMasterKeyId(this, keyRingRowId);
-
- Intent qrCodeIntent = new Intent(this, ShareActivity.class);
- qrCodeIntent.setAction(ShareActivity.ACTION_SHARE_KEYRING_WITH_QR_CODE);
- qrCodeIntent.putExtra(ShareActivity.EXTRA_MASTER_KEY_ID, masterKeyId);
- startActivityForResult(qrCodeIntent, 0);
-
+ shareKeyQrCode();
return true;
case R.id.menu_key_view_share_nfc:
// get master key id using row id
@@ -174,7 +163,7 @@ public class KeyViewActivity extends SherlockActivity {
return true;
case R.id.menu_key_view_delete:
-// mKeyListActivity.showDeleteKeyDialog(keyRingRowId);
+ // mKeyListActivity.showDeleteKeyDialog(keyRingRowId);
return true;
@@ -225,4 +214,34 @@ public class KeyViewActivity extends SherlockActivity {
}
return result;
}
+
+ private void shareKey() {
+ // TODO: use data uri!
+ long keyRingRowId = Long.valueOf(mDataUri.getLastPathSegment());
+ long masterKeyId = ProviderHelper.getPublicMasterKeyId(this, keyRingRowId);
+
+ // get public keyring as ascii armored string
+ ArrayList<String> keyringArmored = ProviderHelper.getPublicKeyRingsAsArmoredString(this,
+ new long[] { masterKeyId });
+
+ // let user choose application
+ Intent sendIntent = new Intent(Intent.ACTION_SEND);
+ sendIntent.putExtra(Intent.EXTRA_TEXT, keyringArmored.get(0));
+ sendIntent.setType("text/plain");
+ startActivity(Intent.createChooser(sendIntent,
+ getResources().getText(R.string.action_share_key_with)));
+ }
+
+ private void shareKeyQrCode() {
+ // TODO: use data uri!
+ long keyRingRowId = Long.valueOf(mDataUri.getLastPathSegment());
+ long masterKeyId = ProviderHelper.getPublicMasterKeyId(this, keyRingRowId);
+ // get public keyring as ascii armored string
+ ArrayList<String> keyringArmored = ProviderHelper.getPublicKeyRingsAsArmoredString(this,
+ new long[] { masterKeyId });
+
+ ShareQrCodeDialogFragment dialog = ShareQrCodeDialogFragment.newInstance(keyringArmored
+ .get(0));
+ dialog.show(getSupportFragmentManager(), "qrCodeShareDialog");
+ }
}