aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog
diff options
context:
space:
mode:
authorAdithya Abraham Philip <adithyaphilip@gmail.com>2015-08-06 01:59:11 +0530
committerAdithya Abraham Philip <adithyaphilip@gmail.com>2015-08-06 04:40:52 +0530
commit37864a9d42436081eb6132dc0c8b1e0868a15272 (patch)
tree57056b42101cf9a2ba89ad4f62e9326061114125 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog
parent7086a67c2e131542c0ce903e1a5db887deae59fe (diff)
downloadopen-keychain-37864a9d42436081eb6132dc0c8b1e0868a15272.tar.gz
open-keychain-37864a9d42436081eb6132dc0c8b1e0868a15272.tar.bz2
open-keychain-37864a9d42436081eb6132dc0c8b1e0868a15272.zip
updated OrbotHelper with silent start
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddEditKeyserverDialogFragment.java19
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/OrbotStartDialogFragment.java73
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SupportInstallDialogFragment.java12
3 files changed, 77 insertions, 27 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddEditKeyserverDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddEditKeyserverDialogFragment.java
index 691cc009d..47bc7dfda 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddEditKeyserverDialogFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/AddEditKeyserverDialogFragment.java
@@ -50,6 +50,7 @@ import android.widget.TextView.OnEditorActionListener;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
+
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.keyimport.HkpKeyserver;
@@ -216,15 +217,25 @@ public class AddEditKeyserverDialogFragment extends DialogFragment implements On
if (mVerifyKeyserverCheckBox.isChecked()) {
final Preferences.ProxyPrefs proxyPrefs = Preferences.getPreferences(getActivity())
.getProxyPrefs();
- Runnable ignoreTor = new Runnable() {
+ OrbotHelper.DialogActions dialogActions = new OrbotHelper.DialogActions() {
+ @Override
+ public void onOrbotStarted() {
+ verifyConnection(keyserverUrl,
+ proxyPrefs.parcelableProxy.getProxy());
+ }
+
@Override
- public void run() {
+ public void onNeutralButton() {
verifyConnection(keyserverUrl, null);
}
+
+ @Override
+ public void onCancel() {
+ // do nothing
+ }
};
- if (OrbotHelper.putOrbotInRequiredState(R.string.orbot_ignore_tor, ignoreTor, proxyPrefs,
- getActivity())) {
+ if (OrbotHelper.putOrbotInRequiredState(dialogActions, getActivity())) {
verifyConnection(keyserverUrl, proxyPrefs.parcelableProxy.getProxy());
}
} else {
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/OrbotStartDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/OrbotStartDialogFragment.java
index d1d22b6d7..b06e05c30 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/OrbotStartDialogFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/OrbotStartDialogFragment.java
@@ -18,15 +18,19 @@
package org.sufficientlysecure.keychain.ui.dialog;
import android.app.Activity;
-import android.support.v7.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
+import android.content.Intent;
import android.os.Bundle;
import android.os.Message;
import android.os.Messenger;
import android.os.RemoteException;
+import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
+import android.support.v7.app.AlertDialog;
import android.view.ContextThemeWrapper;
+import android.view.View;
+import android.widget.Button;
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
@@ -43,8 +47,11 @@ public class OrbotStartDialogFragment extends DialogFragment {
private static final String ARG_MESSAGE = "message";
private static final String ARG_MIDDLE_BUTTON = "middleButton";
+ private static final int ORBOT_REQUEST_CODE = 1;
+
public static final int MESSAGE_MIDDLE_BUTTON = 1;
- public static final int MESSAGE_DIALOG_DISMISSED = 2; // for either cancel or enable pressed
+ public static final int MESSAGE_DIALOG_CANCELLED = 2; // for either cancel or enable pressed
+ public static final int MESSAGE_ORBOT_STARTED = 3; // for either cancel or enable pressed
public static OrbotStartDialogFragment newInstance(Messenger messenger, int title, int message, int middleButton) {
Bundle args = new Bundle();
@@ -59,6 +66,7 @@ public class OrbotStartDialogFragment extends DialogFragment {
return fragment;
}
+ @NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
@@ -77,7 +85,7 @@ public class OrbotStartDialogFragment extends DialogFragment {
@Override
public void onClick(DialogInterface dialog, int which) {
Message msg = Message.obtain();
- msg.what = MESSAGE_DIALOG_DISMISSED;
+ msg.what = MESSAGE_DIALOG_CANCELLED;
try {
messenger.send(msg);
} catch (RemoteException e) {
@@ -89,13 +97,11 @@ public class OrbotStartDialogFragment extends DialogFragment {
}
});
- builder.setPositiveButton(R.string.orbot_start_dialog_start, new DialogInterface.OnClickListener() {
+ builder.setNeutralButton(middleButton, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- getActivity().startActivityForResult(OrbotHelper.getOrbotStartIntent(), 1);
-
- Message msg = Message.obtain();
- msg.what = MESSAGE_DIALOG_DISMISSED;
+ Message msg = new Message();
+ msg.what = MESSAGE_MIDDLE_BUTTON;
try {
messenger.send(msg);
} catch (RemoteException e) {
@@ -106,21 +112,52 @@ public class OrbotStartDialogFragment extends DialogFragment {
}
});
- builder.setNeutralButton(middleButton, new DialogInterface.OnClickListener() {
+ builder.setPositiveButton(R.string.orbot_start_dialog_start, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
- Message msg = new Message();
- msg.what = MESSAGE_MIDDLE_BUTTON;
- try {
- messenger.send(msg);
- } catch (RemoteException e) {
- Log.w(Constants.TAG, "Exception sending message, Is handler present?", e);
- } catch (NullPointerException e) {
- Log.w(Constants.TAG, "Messenger is null!", e);
- }
+ // actual onClick defined in onStart, this is just to make the button appear
}
});
return builder.show();
}
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ //super.onStart() is where dialog.show() is actually called on the underlying dialog,
+ // so we have to do it after this point
+ AlertDialog d = (AlertDialog) getDialog();
+ if (d != null) {
+ Button positiveButton = d.getButton(Dialog.BUTTON_POSITIVE);
+ positiveButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ startActivityForResult(OrbotHelper.getShowOrbotStartIntent(),
+ ORBOT_REQUEST_CODE);
+ }
+ });
+ }
+ }
+
+ @Override
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ if (requestCode == ORBOT_REQUEST_CODE) {
+ // assume Orbot was started
+ final Messenger messenger = getArguments().getParcelable(ARG_MESSENGER);
+
+ Message msg = Message.obtain();
+ msg.what = MESSAGE_ORBOT_STARTED;
+ try {
+ messenger.send(msg);
+ } catch (RemoteException e) {
+ Log.w(Constants.TAG, "Exception sending message, Is handler present?", e);
+ } catch (NullPointerException e) {
+ Log.w(Constants.TAG, "Messenger is null!", e);
+ }
+ dismiss();
+ }
+ }
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SupportInstallDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SupportInstallDialogFragment.java
index b2b71b364..82d1be4ed 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SupportInstallDialogFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/SupportInstallDialogFragment.java
@@ -20,6 +20,7 @@ package org.sufficientlysecure.keychain.ui.dialog;
import android.app.Dialog;
import android.os.Bundle;
import android.os.Messenger;
+import android.support.annotation.NonNull;
import android.support.v4.app.DialogFragment;
import org.sufficientlysecure.keychain.ui.util.InstallDialogFragmentHelper;
@@ -34,7 +35,7 @@ public class SupportInstallDialogFragment extends DialogFragment {
* and "Cancel") and an optional third button. Callbacks are provided only for the middle button, if set.
*
* @param messenger required only for callback from middle button if it has been set
- * @param title
+ * @param title xml resource for title of the install dialog
* @param message content of dialog
* @param packageToInstall package name of application to install
* @param middleButton if not null, adds a third button to the app with a call back
@@ -57,16 +58,17 @@ public class SupportInstallDialogFragment extends DialogFragment {
/**
* To create a DialogFragment with only two buttons
*
- * @param title
- * @param message
- * @param packageToInstall
+ * @param title xml string resource for title of the dialog
+ * @param message xml string resource to display as dialog body
+ * @param packageToInstall name of package to install
* @return
*/
public static SupportInstallDialogFragment newInstance(int title, int message,
- String packageToInstall) {
+ String packageToInstall) {
return newInstance(null, title, message, packageToInstall, -1, false);
}
+ @NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {