From 9576aeabca5453578f297d3546f2d3526eb377de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Sch=C3=BCrmann?= Date: Thu, 2 Jan 2014 23:09:10 +0100 Subject: integrate share activity in view activity --- .../keychain/ui/KeyViewActivity.java | 69 ++++++++++++------- .../keychain/ui/ShareActivity.java | 79 ---------------------- 2 files changed, 44 insertions(+), 104 deletions(-) delete mode 100644 OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/ShareActivity.java (limited to 'OpenPGP-Keychain/src/org') 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 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 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 - * - * 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 . - */ - -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 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(); - } -} -- cgit v1.2.3