From be6b7ff89993de4eff1eb2499f7537ab74a6d8c8 Mon Sep 17 00:00:00 2001 From: Adithya Abraham Philip Date: Wed, 8 Jul 2015 06:31:34 +0530 Subject: shifted proxy checking to ImportKeysListCloudLoader --- .../ui/adapter/ImportKeysListCloudLoader.java | 36 ++++++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListCloudLoader.java') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListCloudLoader.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListCloudLoader.java index 9d3d230d4..adf46caf8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListCloudLoader.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListCloudLoader.java @@ -18,6 +18,7 @@ package org.sufficientlysecure.keychain.ui.adapter; import android.content.Context; +import android.support.annotation.Nullable; import android.support.v4.content.AsyncTaskLoader; import org.sufficientlysecure.keychain.Constants; @@ -26,9 +27,11 @@ import org.sufficientlysecure.keychain.keyimport.ImportKeysListEntry; import org.sufficientlysecure.keychain.keyimport.Keyserver; import org.sufficientlysecure.keychain.operations.results.GetKeyResult; import org.sufficientlysecure.keychain.operations.results.OperationResult; +import org.sufficientlysecure.keychain.service.input.RequiredInputParcel; import org.sufficientlysecure.keychain.util.Log; import org.sufficientlysecure.keychain.util.ParcelableProxy; import org.sufficientlysecure.keychain.util.Preferences; +import org.sufficientlysecure.keychain.util.orbot.OrbotHelper; import java.util.ArrayList; @@ -44,13 +47,21 @@ public class ImportKeysListCloudLoader private ArrayList mEntryList = new ArrayList<>(); private AsyncTaskResultWrapper> mEntryListWrapper; + /** + * Pass a parcelableProxy to specify an explicit proxy, otherwise will fetch from preferences + * + * @param context + * @param serverQuery + * @param cloudPrefs + * @param parcelableProxy + */ public ImportKeysListCloudLoader(Context context, String serverQuery, Preferences.CloudSearchPrefs cloudPrefs, - ParcelableProxy proxy) { + @Nullable ParcelableProxy parcelableProxy) { super(context); mContext = context; mServerQuery = serverQuery; mCloudPrefs = cloudPrefs; - mParcelableProxy = proxy; + mParcelableProxy = parcelableProxy; } @Override @@ -99,11 +110,30 @@ public class ImportKeysListCloudLoader * Query keyserver */ private void queryServer(boolean enforceFingerprint) { + ParcelableProxy parcelableProxy; + + if (mParcelableProxy == null) { + // no explicit proxy specified, fetch from preferences + if (OrbotHelper.isOrbotInRequiredState(mContext)) { + parcelableProxy = Preferences.getPreferences(mContext).getProxyPrefs() + .parcelableProxy; + } else { + // user needs to enable/install orbot + mEntryList.clear(); + GetKeyResult pendingResult = new GetKeyResult(null, + RequiredInputParcel.createOrbotRequiredOperation()); + mEntryListWrapper = new AsyncTaskResultWrapper<>(mEntryList, pendingResult); + return; + } + } else { + parcelableProxy = mParcelableProxy; + } + try { ArrayList searchResult = CloudSearch.search( mServerQuery, mCloudPrefs, - mParcelableProxy != null ? mParcelableProxy.getProxy() : null + parcelableProxy.getProxy() ); mEntryList.clear(); -- cgit v1.2.3