From 20cebc2788ef409e64727e5f9da393704224af70 Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Wed, 8 Jul 2015 17:25:07 +0200 Subject: change wording of export dialog, remove "export secret" checkbox --- .../keychain/ui/BackupFragment.java | 1 - .../keychain/ui/ViewKeyActivity.java | 28 ++++------------ .../keychain/ui/ViewKeyAdvShareFragment.java | 25 ++++---------- .../keychain/util/ExportHelper.java | 38 +++++++++++++--------- 4 files changed, 35 insertions(+), 57 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupFragment.java index 714623ad4..3582bf2b8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/BackupFragment.java @@ -39,7 +39,6 @@ public class BackupFragment extends Fragment { // This ids for multiple key export. private ArrayList mIdsForRepeatAskPassphrase; - private ArrayList mIdsForExport; // This index for remembering the number of master key. private int mIndex; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java index 122c30cad..63597ea87 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -95,7 +95,7 @@ public class ViewKeyActivity extends BaseNfcActivity implements public static final String EXTRA_NFC_FINGERPRINTS = "nfc_fingerprints"; static final int REQUEST_QR_FINGERPRINT = 1; - static final int REQUEST_EXPORT = 2; + static final int REQUEST_BACKUP = 2; static final int REQUEST_CERTIFY = 3; public static final String EXTRA_DISPLAY_RESULT = "display_result"; @@ -325,7 +325,7 @@ public class ViewKeyActivity extends BaseNfcActivity implements return true; } case R.id.menu_key_view_export_file: { - startPassphraseActivity(REQUEST_EXPORT); + startPassphraseActivity(REQUEST_BACKUP); return true; } case R.id.menu_key_view_delete: { @@ -413,23 +413,9 @@ public class ViewKeyActivity extends BaseNfcActivity implements startActivityForResult(intent, requestCode); } - private void exportToFile(Uri dataUri, ProviderHelper providerHelper) { - try { - Uri baseUri = KeychainContract.KeyRings.buildUnifiedKeyRingUri(dataUri); - - HashMap data = providerHelper.getGenericData( - baseUri, - new String[]{KeychainContract.Keys.MASTER_KEY_ID, KeychainContract.KeyRings.HAS_SECRET}, - new int[]{ProviderHelper.FIELD_TYPE_INTEGER, ProviderHelper.FIELD_TYPE_INTEGER}); - - new ExportHelper(this).showExportKeysDialog( - new long[]{(Long) data.get(KeychainContract.KeyRings.MASTER_KEY_ID)}, - Constants.Path.APP_DIR_FILE, ((Long) data.get(KeychainContract.KeyRings.HAS_SECRET) != 0) - ); - } catch (ProviderHelper.NotFoundException e) { - Notify.create(this, R.string.error_key_not_found, Notify.Style.ERROR).show(); - Log.e(Constants.TAG, "Key not found", e); - } + private void backupToFile() { + new ExportHelper(this).showExportKeysDialog( + mMasterKeyId, Constants.Path.APP_DIR_FILE, true); } private void deleteKey() { @@ -489,8 +475,8 @@ public class ViewKeyActivity extends BaseNfcActivity implements return; } - case REQUEST_EXPORT: { - exportToFile(mDataUri, mProviderHelper); + case REQUEST_BACKUP: { + backupToFile(); return; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java index 0613388d7..65f70ec14 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyAdvShareFragment.java @@ -22,7 +22,6 @@ import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.IOException; import java.io.OutputStreamWriter; -import java.util.HashMap; import android.app.Activity; import android.app.ActivityOptions; @@ -84,6 +83,7 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements private Uri mDataUri; private byte[] mFingerprint; + private long mMasterKeyId; @Override public View onCreateView(LayoutInflater inflater, ViewGroup superContainer, Bundle savedInstanceState) { @@ -135,7 +135,7 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements vKeySafeButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - exportToFile(mDataUri, new ProviderHelper(getActivity())); + exportToFile(); } }); vKeyClipboardButton.setOnClickListener(new View.OnClickListener() { @@ -173,23 +173,9 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements return root; } - private void exportToFile(Uri dataUri, ProviderHelper providerHelper) { - try { - Uri baseUri = KeychainContract.KeyRings.buildUnifiedKeyRingUri(dataUri); - - HashMap data = providerHelper.getGenericData( - baseUri, - new String[]{KeychainContract.Keys.MASTER_KEY_ID, KeychainContract.KeyRings.HAS_SECRET}, - new int[]{ProviderHelper.FIELD_TYPE_INTEGER, ProviderHelper.FIELD_TYPE_INTEGER}); - - new ExportHelper(getActivity()).showExportKeysDialog( - new long[]{(Long) data.get(KeychainContract.KeyRings.MASTER_KEY_ID)}, - Constants.Path.APP_DIR_FILE, ((Long) data.get(KeychainContract.KeyRings.HAS_SECRET) != 0) - ); - } catch (ProviderHelper.NotFoundException e) { - Notify.create(getActivity(), R.string.error_key_not_found, Notify.Style.ERROR).show(); - Log.e(Constants.TAG, "Key not found", e); - } + private void exportToFile() { + new ExportHelper(getActivity()).showExportKeysDialog( + mMasterKeyId, Constants.Path.APP_DIR_FILE, false); } private void startSafeSlinger(Uri dataUri) { @@ -383,6 +369,7 @@ public class ViewKeyAdvShareFragment extends LoaderFragment implements /** Load QR Code asynchronously and with a fade in animation */ private void setFingerprint(byte[] fingerprintBlob) { mFingerprint = fingerprintBlob; + mMasterKeyId = KeyFormattingUtils.getKeyIdFromFingerprint(fingerprintBlob); final String fingerprint = KeyFormattingUtils.convertFingerprintToHex(fingerprintBlob); mFingerprintView.setText(KeyFormattingUtils.colorizeFingerprint(fingerprint)); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ExportHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ExportHelper.java index cc51ef700..89a6da9cb 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ExportHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/ExportHelper.java @@ -17,6 +17,9 @@ package org.sufficientlysecure.keychain.util; + +import java.io.File; + import android.support.v4.app.FragmentActivity; import org.sufficientlysecure.keychain.Constants; @@ -25,15 +28,12 @@ import org.sufficientlysecure.keychain.operations.results.ExportResult; import org.sufficientlysecure.keychain.service.ExportKeyringParcel; import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper; -import java.io.File; - public class ExportHelper implements CryptoOperationHelper.Callback { protected File mExportFile; FragmentActivity mActivity; - private CryptoOperationHelper mExportOpHelper; private boolean mExportSecret; private long[] mMasterKeyIds; @@ -42,15 +42,13 @@ public class ExportHelper this.mActivity = activity; } - /** - * Show dialog where to export keys - */ - public void showExportKeysDialog(final long[] masterKeyIds, final File exportFile, - final boolean showSecretCheckbox) { + /** Show dialog where to export keys */ + public void showExportKeysDialog(final Long masterKeyId, final File exportFile, + final boolean exportSecret) { mExportFile = exportFile; String title; - if (masterKeyIds == null) { + if (masterKeyId == null) { // export all keys title = mActivity.getString(R.string.title_export_keys); } else { @@ -58,17 +56,24 @@ public class ExportHelper title = mActivity.getString(R.string.title_export_key); } - String message = mActivity.getString(R.string.specify_file_to_export_to); - String checkMsg = showSecretCheckbox ? - mActivity.getString(R.string.also_export_secret_keys) : null; + String message; + if (exportSecret) { + message = mActivity.getString(masterKeyId == null + ? R.string.specify_backup_dest_secret + : R.string.specify_backup_dest_secret_single); + } else { + message = mActivity.getString(masterKeyId == null + ? R.string.specify_backup_dest + : R.string.specify_backup_dest_single); + } FileHelper.saveFile(new FileHelper.FileDialogCallback() { @Override public void onFileSelected(File file, boolean checked) { mExportFile = file; - exportKeys(masterKeyIds, checked); + exportKeys(masterKeyId == null ? null : new long[] { masterKeyId }, exportSecret); } - }, mActivity.getSupportFragmentManager(), title, message, exportFile, checkMsg); + }, mActivity.getSupportFragmentManager(), title, message, exportFile, null); } // TODO: If ExportHelper requires pending data (see CryptoOPerationHelper), activities using @@ -82,8 +87,9 @@ public class ExportHelper mExportSecret = exportSecret; mMasterKeyIds = masterKeyIds; // if masterKeyIds is null it means export all - mExportOpHelper = new CryptoOperationHelper(mActivity, this, R.string.progress_exporting); - mExportOpHelper.cryptoOperation(); + CryptoOperationHelper exportOpHelper = + new CryptoOperationHelper<>(mActivity, this, R.string.progress_exporting); + exportOpHelper.cryptoOperation(); } @Override -- cgit v1.2.3