aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain
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
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')
-rw-r--r--OpenPGP-Keychain/AndroidManifest.xml1
-rw-r--r--OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/KeyViewActivity.java69
-rw-r--r--OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/ShareActivity.java79
3 files changed, 44 insertions, 105 deletions
diff --git a/OpenPGP-Keychain/AndroidManifest.xml b/OpenPGP-Keychain/AndroidManifest.xml
index 8433323f4..c01f85088 100644
--- a/OpenPGP-Keychain/AndroidManifest.xml
+++ b/OpenPGP-Keychain/AndroidManifest.xml
@@ -351,7 +351,6 @@
<data android:mimeType="application/pgp-keys" />
</intent-filter>
</activity>
- <activity android:name=".ui.ShareActivity" />
<activity
android:name=".ui.HelpActivity"
android:label="@string/title_help" />
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");
+ }
}
diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/ShareActivity.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/ShareActivity.java
deleted file mode 100644
index 159b2b63a..000000000
--- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/ShareActivity.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2013 Dominik Schürmann <dominik@dominikschuermann.de>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-package org.sufficientlysecure.keychain.ui;
-
-import java.util.ArrayList;
-
-import org.sufficientlysecure.keychain.Constants;
-import org.sufficientlysecure.keychain.R;
-import org.sufficientlysecure.keychain.provider.ProviderHelper;
-import org.sufficientlysecure.keychain.ui.dialog.ShareQrCodeDialogFragment;
-
-import android.content.Intent;
-import android.os.Bundle;
-
-import com.actionbarsherlock.app.SherlockFragmentActivity;
-
-public class ShareActivity extends SherlockFragmentActivity {
- // Actions for internal use only:
- public static final String ACTION_SHARE_KEYRING = Constants.INTENT_PREFIX + "SHARE_KEYRING";
- public static final String ACTION_SHARE_KEYRING_WITH_QR_CODE = Constants.INTENT_PREFIX
- + "SHARE_KEYRING_WITH_QR_CODE";
-
- public static final String EXTRA_MASTER_KEY_ID = "master_key_id";
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- handleActions(getIntent());
- }
-
- protected void handleActions(Intent intent) {
- String action = intent.getAction();
- Bundle extras = intent.getExtras();
-
- if (extras == null) {
- extras = new Bundle();
- }
-
- long masterKeyId = extras.getLong(EXTRA_MASTER_KEY_ID);
-
- // get public keyring as ascii armored string
- ArrayList<String> keyringArmored = ProviderHelper.getPublicKeyRingsAsArmoredString(this,
- new long[] { masterKeyId });
-
- if (ACTION_SHARE_KEYRING.equals(action)) {
- // 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)));
- } else if (ACTION_SHARE_KEYRING_WITH_QR_CODE.equals(action)) {
- ShareQrCodeDialogFragment dialog = ShareQrCodeDialogFragment.newInstance(keyringArmored
- .get(0));
- dialog.show(getSupportFragmentManager(), "qrCodeShareDialog");
- }
-
- // close this activity
- // TODO: finish() would also close dialog...
- // integrate this into new KeyViewActivity when ready
- // finish();
- }
-}