diff options
Diffstat (limited to 'APG/src/org/thialfihar/android')
-rw-r--r-- | APG/src/org/thialfihar/android/apg/Id.java | 7 | ||||
-rw-r--r-- | APG/src/org/thialfihar/android/apg/ui/KeyListPublicFragment.java | 24 | ||||
-rw-r--r-- | APG/src/org/thialfihar/android/apg/ui/ShareActivity.java (renamed from APG/src/org/thialfihar/android/apg/ui/ShareQrCodeActivity.java) | 31 | ||||
-rw-r--r-- | APG/src/org/thialfihar/android/apg/ui/ShareNfcBeamActivity.java | 5 |
4 files changed, 45 insertions, 22 deletions
diff --git a/APG/src/org/thialfihar/android/apg/Id.java b/APG/src/org/thialfihar/android/apg/Id.java index d25bb24b0..db283da37 100644 --- a/APG/src/org/thialfihar/android/apg/Id.java +++ b/APG/src/org/thialfihar/android/apg/Id.java @@ -35,9 +35,10 @@ public final class Id { public static final int edit = 0x21070003; public static final int update = 0x21070004; public static final int exportToServer = 0x21070005; - public static final int share_qr_code = 0x21070006; - public static final int share_nfc = 0x21070007; - public static final int signKey = 0x21070008; + public static final int share = 0x21070006; + public static final int share_qr_code = 0x21070007; + public static final int share_nfc = 0x21070008; + public static final int signKey = 0x21070009; public static final class option { public static final int new_pass_phrase = 0x21070001; diff --git a/APG/src/org/thialfihar/android/apg/ui/KeyListPublicFragment.java b/APG/src/org/thialfihar/android/apg/ui/KeyListPublicFragment.java index 06bf7e7d9..7c23e6217 100644 --- a/APG/src/org/thialfihar/android/apg/ui/KeyListPublicFragment.java +++ b/APG/src/org/thialfihar/android/apg/ui/KeyListPublicFragment.java @@ -76,8 +76,9 @@ public class KeyListPublicFragment extends KeyListFragment implements menu.add(0, Id.menu.update, 1, R.string.menu_updateKey); menu.add(0, Id.menu.signKey, 2, R.string.menu_signKey); menu.add(0, Id.menu.exportToServer, 3, R.string.menu_exportKeyToServer); - menu.add(0, Id.menu.share_qr_code, 6, R.string.menu_shareQrCode); - menu.add(0, Id.menu.share_nfc, 7, R.string.menu_shareNfc); + menu.add(0, Id.menu.share, 6, R.string.menu_share); + menu.add(0, Id.menu.share_qr_code, 7, R.string.menu_shareQrCode); + menu.add(0, Id.menu.share_nfc, 8, R.string.menu_shareNfc); } @@ -142,9 +143,9 @@ public class KeyListPublicFragment extends KeyListFragment implements // get master key id using row id long masterKeyId = ProviderHelper.getPublicMasterKeyId(mKeyListActivity, keyRingRowId); - Intent qrCodeIntent = new Intent(mKeyListActivity, ShareQrCodeActivity.class); - qrCodeIntent.setAction(ShareQrCodeActivity.ACTION_SHARE_WITH_QR_CODE); - qrCodeIntent.putExtra(ShareQrCodeActivity.EXTRA_MASTER_KEY_ID, masterKeyId); + Intent qrCodeIntent = new Intent(mKeyListActivity, ShareActivity.class); + qrCodeIntent.setAction(ShareActivity.ACTION_SHARE_KEYRING_WITH_QR_CODE); + qrCodeIntent.putExtra(ShareActivity.EXTRA_MASTER_KEY_ID, masterKeyId); startActivityForResult(qrCodeIntent, 0); return true; @@ -154,12 +155,23 @@ public class KeyListPublicFragment extends KeyListFragment implements long masterKeyId2 = ProviderHelper.getPublicMasterKeyId(mKeyListActivity, keyRingRowId); Intent nfcIntent = new Intent(mKeyListActivity, ShareNfcBeamActivity.class); - nfcIntent.setAction(ShareNfcBeamActivity.ACTION_SHARE_WITH_NFC); + nfcIntent.setAction(ShareNfcBeamActivity.ACTION_SHARE_KEYRING_WITH_NFC); nfcIntent.putExtra(ShareNfcBeamActivity.EXTRA_MASTER_KEY_ID, masterKeyId2); startActivityForResult(nfcIntent, 0); return true; + case Id.menu.share: + // get master key id using row id + long masterKeyId3 = ProviderHelper.getPublicMasterKeyId(mKeyListActivity, keyRingRowId); + + Intent shareIntent = new Intent(mKeyListActivity, ShareActivity.class); + shareIntent.setAction(ShareActivity.ACTION_SHARE_KEYRING); + shareIntent.putExtra(ShareActivity.EXTRA_MASTER_KEY_ID, masterKeyId3); + startActivityForResult(shareIntent, 0); + + return true; + default: return super.onContextItemSelected(item); diff --git a/APG/src/org/thialfihar/android/apg/ui/ShareQrCodeActivity.java b/APG/src/org/thialfihar/android/apg/ui/ShareActivity.java index 7d4237b80..7fec42e47 100644 --- a/APG/src/org/thialfihar/android/apg/ui/ShareQrCodeActivity.java +++ b/APG/src/org/thialfihar/android/apg/ui/ShareActivity.java @@ -19,6 +19,7 @@ package org.thialfihar.android.apg.ui; import java.util.ArrayList; import org.thialfihar.android.apg.Constants; +import org.thialfihar.android.apg.R; import org.thialfihar.android.apg.provider.ProviderHelper; import com.actionbarsherlock.app.SherlockFragmentActivity; @@ -27,9 +28,10 @@ import com.google.zxing.integration.android.IntentIntegrator; import android.content.Intent; import android.os.Bundle; -public class ShareQrCodeActivity extends SherlockFragmentActivity { - public static final String ACTION_SHARE_WITH_QR_CODE = Constants.INTENT_PREFIX - + "SHARE_WITH_QR_CODE"; +public class ShareActivity extends SherlockFragmentActivity { + 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 = "masterKeyId"; @@ -48,18 +50,25 @@ public class ShareQrCodeActivity extends SherlockFragmentActivity { extras = new Bundle(); } - if (ACTION_SHARE_WITH_QR_CODE.equals(action)) { - long masterKeyId = extras.getLong(EXTRA_MASTER_KEY_ID); + long masterKeyId = extras.getLong(EXTRA_MASTER_KEY_ID); - // get public keyring as ascii armored string - ArrayList<String> keyringArmored = ProviderHelper.getPublicKeyRingsAsArmoredString( - this, new long[] { masterKeyId }); - // close this activity - finish(); + // get public keyring as ascii armored string + ArrayList<String> keyringArmored = ProviderHelper.getPublicKeyRingsAsArmoredString(this, + new long[] { masterKeyId }); + // close this activity + finish(); + + 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.shareKeyringWith))); + } else if (ACTION_SHARE_KEYRING_WITH_QR_CODE.equals(action)) { // use barcode scanner integration library new IntentIntegrator(this).shareText(keyringArmored.get(0)); } } - } diff --git a/APG/src/org/thialfihar/android/apg/ui/ShareNfcBeamActivity.java b/APG/src/org/thialfihar/android/apg/ui/ShareNfcBeamActivity.java index bdf5f6227..abb2d6b82 100644 --- a/APG/src/org/thialfihar/android/apg/ui/ShareNfcBeamActivity.java +++ b/APG/src/org/thialfihar/android/apg/ui/ShareNfcBeamActivity.java @@ -54,7 +54,8 @@ import android.text.method.LinkMovementMethod; @TargetApi(Build.VERSION_CODES.JELLY_BEAN) public class ShareNfcBeamActivity extends SherlockFragmentActivity implements CreateNdefMessageCallback, OnNdefPushCompleteCallback { - public static final String ACTION_SHARE_WITH_NFC = Constants.INTENT_PREFIX + "SHARE_WITH_NFC"; + public static final String ACTION_SHARE_KEYRING_WITH_NFC = Constants.INTENT_PREFIX + + "SHARE_KEYRING_WITH_NFC"; public static final String EXTRA_MASTER_KEY_ID = "masterKeyId"; @@ -96,7 +97,7 @@ public class ShareNfcBeamActivity extends SherlockFragmentActivity implements extras = new Bundle(); } - if (ACTION_SHARE_WITH_NFC.equals(action)) { + if (ACTION_SHARE_KEYRING_WITH_NFC.equals(action)) { long masterKeyId = extras.getLong(EXTRA_MASTER_KEY_ID); // get public keyring as byte array |