mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-11-27 11:12:15 -05:00
handle onActivityResult in FileDialogFragment directly
This commit is contained in:
parent
e8b9dfe379
commit
96936dda23
@ -76,7 +76,7 @@ public final class Id {
|
|||||||
public static final int public_keys = 0x00007001;
|
public static final int public_keys = 0x00007001;
|
||||||
public static final int secret_keys = 0x00007002;
|
public static final int secret_keys = 0x00007002;
|
||||||
public static final int filename = 0x00007003;
|
public static final int filename = 0x00007003;
|
||||||
public static final int output_filename = 0x00007004;
|
// public static final int output_filename = 0x00007004;
|
||||||
public static final int key_server_preference = 0x00007005;
|
public static final int key_server_preference = 0x00007005;
|
||||||
public static final int look_up_key_id = 0x00007006;
|
public static final int look_up_key_id = 0x00007006;
|
||||||
public static final int export_to_server = 0x00007007;
|
public static final int export_to_server = 0x00007007;
|
||||||
|
@ -27,7 +27,6 @@ import org.sufficientlysecure.keychain.ui.dialog.DeleteKeyDialogFragment;
|
|||||||
import org.sufficientlysecure.keychain.ui.dialog.FileDialogFragment;
|
import org.sufficientlysecure.keychain.ui.dialog.FileDialogFragment;
|
||||||
import org.sufficientlysecure.keychain.util.Log;
|
import org.sufficientlysecure.keychain.util.Log;
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.app.ProgressDialog;
|
import android.app.ProgressDialog;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
@ -107,7 +106,7 @@ public class ExportHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mFileDialog = FileDialogFragment.newInstance(messenger, title, message,
|
mFileDialog = FileDialogFragment.newInstance(messenger, title, message,
|
||||||
exportFilename, null, Id.request.filename);
|
exportFilename, null);
|
||||||
|
|
||||||
mFileDialog.show(activity.getSupportFragmentManager(), "fileDialog");
|
mFileDialog.show(activity.getSupportFragmentManager(), "fileDialog");
|
||||||
}
|
}
|
||||||
@ -182,22 +181,4 @@ public class ExportHelper {
|
|||||||
activity.startService(intent);
|
activity.startService(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean handleActivityResult(int requestCode, int resultCode, Intent data) {
|
|
||||||
if (requestCode == Id.request.filename) {
|
|
||||||
if (resultCode == Activity.RESULT_OK && data != null) {
|
|
||||||
try {
|
|
||||||
String path = data.getData().getPath();
|
|
||||||
Log.d(Constants.TAG, "path=" + path);
|
|
||||||
|
|
||||||
// set filename used in export/import dialogs
|
|
||||||
mFileDialog.setFilename(path);
|
|
||||||
} catch (NullPointerException e) {
|
|
||||||
Log.e(Constants.TAG, "Nullpointer while retrieving path!", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -629,8 +629,7 @@ public class DecryptActivity extends DrawerActivity {
|
|||||||
|
|
||||||
mFileDialog = FileDialogFragment.newInstance(messenger,
|
mFileDialog = FileDialogFragment.newInstance(messenger,
|
||||||
getString(R.string.title_decrypt_to_file),
|
getString(R.string.title_decrypt_to_file),
|
||||||
getString(R.string.specify_file_to_decrypt_to), mOutputFilename, null,
|
getString(R.string.specify_file_to_decrypt_to), mOutputFilename, null);
|
||||||
Id.request.output_filename);
|
|
||||||
|
|
||||||
mFileDialog.show(getSupportFragmentManager(), "fileDialog");
|
mFileDialog.show(getSupportFragmentManager(), "fileDialog");
|
||||||
}
|
}
|
||||||
@ -826,20 +825,6 @@ public class DecryptActivity extends DrawerActivity {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case Id.request.output_filename: {
|
|
||||||
if (resultCode == RESULT_OK && data != null) {
|
|
||||||
try {
|
|
||||||
String path = FileHelper.getPath(this, data.getData());
|
|
||||||
Log.d(Constants.TAG, "path=" + path);
|
|
||||||
|
|
||||||
mFileDialog.setFilename(path);
|
|
||||||
} catch (NullPointerException e) {
|
|
||||||
Log.e(Constants.TAG, "Nullpointer while retrieving path!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// this request is returned after LookupUnknownKeyDialogFragment started
|
// this request is returned after LookupUnknownKeyDialogFragment started
|
||||||
// KeyServerQueryActivity and user looked uo key
|
// KeyServerQueryActivity and user looked uo key
|
||||||
case Id.request.look_up_key_id: {
|
case Id.request.look_up_key_id: {
|
||||||
|
@ -663,10 +663,4 @@ public class EditKeyActivity extends SherlockFragmentActivity {
|
|||||||
: getString(R.string.btn_set_passphrase));
|
: getString(R.string.btn_set_passphrase));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
||||||
if (!mExportHelper.handleActivityResult(requestCode, resultCode, data)) {
|
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -590,8 +590,7 @@ public class EncryptActivity extends DrawerActivity {
|
|||||||
|
|
||||||
mFileDialog = FileDialogFragment.newInstance(messenger,
|
mFileDialog = FileDialogFragment.newInstance(messenger,
|
||||||
getString(R.string.title_encrypt_to_file),
|
getString(R.string.title_encrypt_to_file),
|
||||||
getString(R.string.specify_file_to_encrypt_to), mOutputFilename, null,
|
getString(R.string.specify_file_to_encrypt_to), mOutputFilename, null);
|
||||||
Id.request.output_filename);
|
|
||||||
|
|
||||||
mFileDialog.show(getSupportFragmentManager(), "fileDialog");
|
mFileDialog.show(getSupportFragmentManager(), "fileDialog");
|
||||||
}
|
}
|
||||||
@ -973,20 +972,6 @@ public class EncryptActivity extends DrawerActivity {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
case Id.request.output_filename: {
|
|
||||||
if (resultCode == RESULT_OK && data != null) {
|
|
||||||
try {
|
|
||||||
String path = data.getData().getPath();
|
|
||||||
Log.d(Constants.TAG, "path=" + path);
|
|
||||||
|
|
||||||
mFileDialog.setFilename(path);
|
|
||||||
} catch (NullPointerException e) {
|
|
||||||
Log.e(Constants.TAG, "Nullpointer while retrieving path!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
case Id.request.public_keys: {
|
case Id.request.public_keys: {
|
||||||
if (resultCode == RESULT_OK) {
|
if (resultCode == RESULT_OK) {
|
||||||
Bundle bundle = data.getExtras();
|
Bundle bundle = data.getExtras();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2012-2013 Dominik Schürmann <dominik@dominikschuermann.de>
|
* Copyright (C) 2012-2014 Dominik Schürmann <dominik@dominikschuermann.de>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -56,7 +56,7 @@ public class KeyListPublicActivity extends DrawerActivity {
|
|||||||
switch (item.getItemId()) {
|
switch (item.getItemId()) {
|
||||||
case R.id.menu_key_list_public_import:
|
case R.id.menu_key_list_public_import:
|
||||||
Intent intentImport = new Intent(this, ImportKeysActivity.class);
|
Intent intentImport = new Intent(this, ImportKeysActivity.class);
|
||||||
startActivityForResult(intentImport, Id.request.import_from_qr_code);
|
startActivityForResult(intentImport, 0);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
case R.id.menu_key_list_public_export:
|
case R.id.menu_key_list_public_export:
|
||||||
@ -69,30 +69,27 @@ public class KeyListPublicActivity extends DrawerActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
// @Override
|
||||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
// protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
if (!mExportHelper.handleActivityResult(requestCode, resultCode, data)) {
|
// switch (requestCode) {
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
// case Id.request.look_up_key_id: {
|
||||||
}
|
// if (resultCode == RESULT_CANCELED || data == null
|
||||||
// switch (requestCode) {
|
// || data.getStringExtra(KeyServerQueryActivity.RESULT_EXTRA_TEXT) == null) {
|
||||||
// case Id.request.look_up_key_id: {
|
// return;
|
||||||
// if (resultCode == RESULT_CANCELED || data == null
|
// }
|
||||||
// || data.getStringExtra(KeyServerQueryActivity.RESULT_EXTRA_TEXT) == null) {
|
//
|
||||||
// return;
|
// Intent intent = new Intent(this, KeyListPublicActivity.class);
|
||||||
// }
|
// intent.setAction(KeyListPublicActivity.ACTION_IMPORT);
|
||||||
//
|
// intent.putExtra(KeyListPublicActivity.EXTRA_TEXT,
|
||||||
// Intent intent = new Intent(this, KeyListPublicActivity.class);
|
// data.getStringExtra(KeyListActivity.EXTRA_TEXT));
|
||||||
// intent.setAction(KeyListPublicActivity.ACTION_IMPORT);
|
// handleActions(intent);
|
||||||
// intent.putExtra(KeyListPublicActivity.EXTRA_TEXT,
|
// break;
|
||||||
// data.getStringExtra(KeyListActivity.EXTRA_TEXT));
|
// }
|
||||||
// handleActions(intent);
|
//
|
||||||
// break;
|
// default: {
|
||||||
// }
|
// super.onActivityResult(requestCode, resultCode, data);
|
||||||
//
|
// break;
|
||||||
// default: {
|
// }
|
||||||
// super.onActivityResult(requestCode, resultCode, data);
|
// }
|
||||||
// break;
|
// }
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -91,11 +91,4 @@ public class KeyListSecretActivity extends DrawerActivity {
|
|||||||
startActivityForResult(intent, 0);
|
startActivityForResult(intent, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
||||||
if (!mExportHelper.handleActivityResult(requestCode, resultCode, data)) {
|
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -503,11 +503,4 @@ public class ViewKeyActivity extends SherlockFragmentActivity implements CreateN
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
||||||
if (!mExportHelper.handleActivityResult(requestCode, resultCode, data)) {
|
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2012-2013 Dominik Schürmann <dominik@dominikschuermann.de>
|
* Copyright (C) 2012-2014 Dominik Schürmann <dominik@dominikschuermann.de>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -27,6 +27,7 @@ import android.app.AlertDialog;
|
|||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.Messenger;
|
import android.os.Messenger;
|
||||||
@ -39,15 +40,12 @@ import android.widget.EditText;
|
|||||||
|
|
||||||
import com.beardedhen.androidbootstrap.BootstrapButton;
|
import com.beardedhen.androidbootstrap.BootstrapButton;
|
||||||
|
|
||||||
// TODO: return result from file manager activity to this dialog! not the activity!
|
|
||||||
// do it like in ImportFileFragment!
|
|
||||||
public class FileDialogFragment extends DialogFragment {
|
public class FileDialogFragment extends DialogFragment {
|
||||||
private static final String ARG_MESSENGER = "messenger";
|
private static final String ARG_MESSENGER = "messenger";
|
||||||
private static final String ARG_TITLE = "title";
|
private static final String ARG_TITLE = "title";
|
||||||
private static final String ARG_MESSAGE = "message";
|
private static final String ARG_MESSAGE = "message";
|
||||||
private static final String ARG_DEFAULT_FILE = "default_file";
|
private static final String ARG_DEFAULT_FILE = "default_file";
|
||||||
private static final String ARG_CHECKBOX_TEXT = "checkbox_text";
|
private static final String ARG_CHECKBOX_TEXT = "checkbox_text";
|
||||||
private static final String ARG_REQUEST_CODE = "request_code";
|
|
||||||
|
|
||||||
public static final int MESSAGE_OKAY = 1;
|
public static final int MESSAGE_OKAY = 1;
|
||||||
|
|
||||||
@ -60,11 +58,13 @@ public class FileDialogFragment extends DialogFragment {
|
|||||||
private BootstrapButton mBrowse;
|
private BootstrapButton mBrowse;
|
||||||
private CheckBox mCheckBox;
|
private CheckBox mCheckBox;
|
||||||
|
|
||||||
|
private static final int REQUEST_CODE = 0x00007004;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates new instance of this file dialog fragment
|
* Creates new instance of this file dialog fragment
|
||||||
*/
|
*/
|
||||||
public static FileDialogFragment newInstance(Messenger messenger, String title, String message,
|
public static FileDialogFragment newInstance(Messenger messenger, String title, String message,
|
||||||
String defaultFile, String checkboxText, int requestCode) {
|
String defaultFile, String checkboxText) {
|
||||||
FileDialogFragment frag = new FileDialogFragment();
|
FileDialogFragment frag = new FileDialogFragment();
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
args.putParcelable(ARG_MESSENGER, messenger);
|
args.putParcelable(ARG_MESSENGER, messenger);
|
||||||
@ -73,7 +73,6 @@ public class FileDialogFragment extends DialogFragment {
|
|||||||
args.putString(ARG_MESSAGE, message);
|
args.putString(ARG_MESSAGE, message);
|
||||||
args.putString(ARG_DEFAULT_FILE, defaultFile);
|
args.putString(ARG_DEFAULT_FILE, defaultFile);
|
||||||
args.putString(ARG_CHECKBOX_TEXT, checkboxText);
|
args.putString(ARG_CHECKBOX_TEXT, checkboxText);
|
||||||
args.putInt(ARG_REQUEST_CODE, requestCode);
|
|
||||||
|
|
||||||
frag.setArguments(args);
|
frag.setArguments(args);
|
||||||
|
|
||||||
@ -93,7 +92,6 @@ public class FileDialogFragment extends DialogFragment {
|
|||||||
String message = getArguments().getString(ARG_MESSAGE);
|
String message = getArguments().getString(ARG_MESSAGE);
|
||||||
String defaultFile = getArguments().getString(ARG_DEFAULT_FILE);
|
String defaultFile = getArguments().getString(ARG_DEFAULT_FILE);
|
||||||
String checkboxText = getArguments().getString(ARG_CHECKBOX_TEXT);
|
String checkboxText = getArguments().getString(ARG_CHECKBOX_TEXT);
|
||||||
final int requestCode = getArguments().getInt(ARG_REQUEST_CODE);
|
|
||||||
|
|
||||||
LayoutInflater inflater = (LayoutInflater) activity
|
LayoutInflater inflater = (LayoutInflater) activity
|
||||||
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||||
@ -112,7 +110,8 @@ public class FileDialogFragment extends DialogFragment {
|
|||||||
// only .asc or .gpg files
|
// only .asc or .gpg files
|
||||||
// setting it to text/plain prevents Cynaogenmod's file manager from selecting asc
|
// setting it to text/plain prevents Cynaogenmod's file manager from selecting asc
|
||||||
// or gpg types!
|
// or gpg types!
|
||||||
FileHelper.openFile(activity, mFilename.getText().toString(), "*/*", requestCode);
|
FileHelper.openFile(FileDialogFragment.this, mFilename.getText().toString(), "*/*",
|
||||||
|
REQUEST_CODE);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -166,7 +165,7 @@ public class FileDialogFragment extends DialogFragment {
|
|||||||
* @param progress
|
* @param progress
|
||||||
* @param max
|
* @param max
|
||||||
*/
|
*/
|
||||||
public void setFilename(String filename) {
|
private void setFilename(String filename) {
|
||||||
AlertDialog dialog = (AlertDialog) getDialog();
|
AlertDialog dialog = (AlertDialog) getDialog();
|
||||||
EditText filenameEditText = (EditText) dialog.findViewById(R.id.input);
|
EditText filenameEditText = (EditText) dialog.findViewById(R.id.input);
|
||||||
|
|
||||||
@ -175,6 +174,32 @@ public class FileDialogFragment extends DialogFragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
|
switch (requestCode & 0xFFFF) {
|
||||||
|
case REQUEST_CODE: {
|
||||||
|
if (resultCode == Activity.RESULT_OK && data != null) {
|
||||||
|
try {
|
||||||
|
String path = data.getData().getPath();
|
||||||
|
Log.d(Constants.TAG, "path=" + path);
|
||||||
|
|
||||||
|
// set filename used in export/import dialogs
|
||||||
|
setFilename(path);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
Log.e(Constants.TAG, "Nullpointer while retrieving path!", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send message back to handler which is initialized in a activity
|
* Send message back to handler which is initialized in a activity
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user