change wording of export dialog, remove "export secret" checkbox
This commit is contained in:
@@ -39,7 +39,6 @@ public class BackupFragment extends Fragment {
|
||||
|
||||
// This ids for multiple key export.
|
||||
private ArrayList<Long> mIdsForRepeatAskPassphrase;
|
||||
private ArrayList<Long> mIdsForExport;
|
||||
// This index for remembering the number of master key.
|
||||
private int mIndex;
|
||||
|
||||
|
||||
@@ -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<String, Object> 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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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<String, Object> 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));
|
||||
|
||||
@@ -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 <ExportKeyringParcel, ExportResult> {
|
||||
protected File mExportFile;
|
||||
|
||||
FragmentActivity mActivity;
|
||||
|
||||
private CryptoOperationHelper<ExportKeyringParcel, ExportResult> 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<ExportKeyringParcel, ExportResult> exportOpHelper =
|
||||
new CryptoOperationHelper<>(mActivity, this, R.string.progress_exporting);
|
||||
exportOpHelper.cryptoOperation();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user