aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-10-04 21:09:32 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-10-04 21:09:32 +0200
commit0599f0dd4e83e20ddf234d1c1ef1f897b8305b02 (patch)
tree293fedd38c9579b8c40bec6f10b2e9b2f4fe4e27 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter
parent9e1a0c2c0a6de82425b3e4715d700a7361a1e328 (diff)
downloadopen-keychain-0599f0dd4e83e20ddf234d1c1ef1f897b8305b02.tar.gz
open-keychain-0599f0dd4e83e20ddf234d1c1ef1f897b8305b02.tar.bz2
open-keychain-0599f0dd4e83e20ddf234d1c1ef1f897b8305b02.zip
Workings on new parcel for key downloads
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/AsyncTaskResultWrapper.java12
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListCloudLoader.java32
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListLoader.java18
3 files changed, 43 insertions, 19 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/AsyncTaskResultWrapper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/AsyncTaskResultWrapper.java
index 5f2aec4fe..dc0c5846a 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/AsyncTaskResultWrapper.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/AsyncTaskResultWrapper.java
@@ -17,6 +17,8 @@
package org.sufficientlysecure.keychain.ui.adapter;
+import org.sufficientlysecure.keychain.service.results.OperationResult;
+
/**
* The AsyncTaskResultWrapper is used to wrap a result from a AsyncTask (for example: Loader).
* You can pass the result and an exception in it if an error occurred.
@@ -28,19 +30,19 @@ package org.sufficientlysecure.keychain.ui.adapter;
public class AsyncTaskResultWrapper<T> {
private final T mResult;
- private final Exception mError;
+ private final OperationResult mOperationResult;
- public AsyncTaskResultWrapper(T result, Exception error) {
+ public AsyncTaskResultWrapper(T result, OperationResult operationResult) {
this.mResult = result;
- this.mError = error;
+ this.mOperationResult = operationResult;
}
public T getResult() {
return mResult;
}
- public Exception getError() {
- return mError;
+ public OperationResult getOperationResult() {
+ return mOperationResult;
}
}
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 0332e8882..cb51a15a9 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
@@ -21,6 +21,9 @@ import android.content.Context;
import android.support.v4.content.AsyncTaskLoader;
import org.sufficientlysecure.keychain.Constants;
+import org.sufficientlysecure.keychain.keyimport.Keyserver;
+import org.sufficientlysecure.keychain.service.results.GetKeyResult;
+import org.sufficientlysecure.keychain.service.results.OperationResult;
import org.sufficientlysecure.keychain.util.Preferences;
import org.sufficientlysecure.keychain.keyimport.CloudSearch;
import org.sufficientlysecure.keychain.keyimport.ImportKeysListEntry;
@@ -93,7 +96,8 @@ public class ImportKeysListCloudLoader
*/
private void queryServer(boolean enforceFingerprint) {
try {
- ArrayList<ImportKeysListEntry> searchResult = CloudSearch.search(mServerQuery, mCloudPrefs);
+ ArrayList<ImportKeysListEntry> searchResult
+ = CloudSearch.search(mServerQuery, mCloudPrefs);
mEntryList.clear();
// add result to data
@@ -114,9 +118,29 @@ public class ImportKeysListCloudLoader
} else {
mEntryList.addAll(searchResult);
}
- mEntryListWrapper = new AsyncTaskResultWrapper<ArrayList<ImportKeysListEntry>>(mEntryList, null);
- } catch (Exception e) {
- mEntryListWrapper = new AsyncTaskResultWrapper<ArrayList<ImportKeysListEntry>>(mEntryList, e);
+ GetKeyResult getKeyResult = new GetKeyResult(GetKeyResult.RESULT_OK, null);
+ mEntryListWrapper = new AsyncTaskResultWrapper<ArrayList<ImportKeysListEntry>>(mEntryList, getKeyResult);
+ } catch (Keyserver.CloudSearchFailureException e) {
+ // convert exception to result parcel
+ int error = GetKeyResult.RESULT_ERROR;
+ OperationResult.LogType logType = null;
+ if (e instanceof Keyserver.QueryFailedException) {
+ error = GetKeyResult.RESULT_ERROR_QUERY_FAILED;
+ logType = OperationResult.LogType.MSG_GET_QUERY_FAILED;
+ } else if (e instanceof Keyserver.TooManyResponsesException) {
+ error = GetKeyResult.RESULT_ERROR_TOO_MANY_RESPONSES;
+ logType = OperationResult.LogType.MSG_GET_TOO_MANY_RESPONSES;
+ } else if (e instanceof Keyserver.QueryTooShortException) {
+ error = GetKeyResult.RESULT_ERROR_QUERY_TOO_SHORT;
+ logType = OperationResult.LogType.MSG_GET_QUERY_TOO_SHORT;
+ } else if (e instanceof Keyserver.QueryTooShortOrTooManyResponsesException) {
+ error = GetKeyResult.RESULT_ERROR_TOO_SHORT_OR_TOO_MANY_RESPONSES;
+ logType = OperationResult.LogType.MSG_GET_QUERY_TOO_SHORT_OR_TOO_MANY_RESPONSES;
+ }
+ OperationResult.OperationLog log = new OperationResult.OperationLog();
+ log.add(logType, 0);
+ GetKeyResult getKeyResult = new GetKeyResult(error, log);
+ mEntryListWrapper = new AsyncTaskResultWrapper<ArrayList<ImportKeysListEntry>>(mEntryList, getKeyResult);
}
}
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListLoader.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListLoader.java
index 04947da93..6664cb61a 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListLoader.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysListLoader.java
@@ -25,6 +25,8 @@ import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.keyimport.ImportKeysListEntry;
import org.sufficientlysecure.keychain.keyimport.ParcelableKeyRing;
import org.sufficientlysecure.keychain.pgp.UncachedKeyRing;
+import org.sufficientlysecure.keychain.service.results.GetKeyResult;
+import org.sufficientlysecure.keychain.service.results.OperationResult;
import org.sufficientlysecure.keychain.util.InputData;
import org.sufficientlysecure.keychain.util.Log;
import org.sufficientlysecure.keychain.util.PositionAwareInputStream;
@@ -37,9 +39,6 @@ import java.util.Iterator;
public class ImportKeysListLoader
extends AsyncTaskLoader<AsyncTaskResultWrapper<ArrayList<ImportKeysListEntry>>> {
- public static class NoValidKeysException extends Exception {
- }
-
public static class NonPgpPartException extends Exception {
private int mCount;
@@ -72,7 +71,8 @@ public class ImportKeysListLoader
return mEntryListWrapper;
}
- mEntryListWrapper = new AsyncTaskResultWrapper<ArrayList<ImportKeysListEntry>>(mData, null);
+ GetKeyResult getKeyResult = new GetKeyResult(GetKeyResult.RESULT_OK, null);
+ mEntryListWrapper = new AsyncTaskResultWrapper<ArrayList<ImportKeysListEntry>>(mData, getKeyResult);
if (mInputData == null) {
Log.e(Constants.TAG, "Input data is null!");
@@ -136,13 +136,11 @@ public class ImportKeysListLoader
}
} catch (IOException e) {
Log.e(Constants.TAG, "IOException on parsing key file! Return NoValidKeysException!", e);
-
- NoValidKeysException e1 = new NoValidKeysException();
+ OperationResult.OperationLog log = new OperationResult.OperationLog();
+ log.add(OperationResult.LogType.MSG_GET_NO_VALID_KEYS, 0);
+ GetKeyResult getKeyResult = new GetKeyResult(GetKeyResult.RESULT_ERROR_NO_VALID_KEYS, log);
mEntryListWrapper = new AsyncTaskResultWrapper<ArrayList<ImportKeysListEntry>>
- (mData, e1);
- } catch (Exception e) {
- Log.e(Constants.TAG, "Other Exception on parsing key file!", e);
- mEntryListWrapper = new AsyncTaskResultWrapper<ArrayList<ImportKeysListEntry>>(mData, e);
+ (mData, getKeyResult);
}
}