aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2015-10-26 21:57:08 +0100
committerVincent Breitmoser <valodim@mugenguild.com>2015-10-26 21:57:31 +0100
commite89dba8f245f59afd9e4e3da9c62f98befcb4d47 (patch)
tree034b17c5d6fbf478c3aede3eb2775aaa13f809f9
parent67a51cdfe3f6fb7982b27eb2b6d4b1b5d49f69aa (diff)
downloadopen-keychain-e89dba8f245f59afd9e4e3da9c62f98befcb4d47.tar.gz
open-keychain-e89dba8f245f59afd9e4e3da9c62f98befcb4d47.tar.bz2
open-keychain-e89dba8f245f59afd9e4e3da9c62f98befcb4d47.zip
prevent crashes in EncryptKeyCompletionView (2)
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java29
1 files changed, 19 insertions, 10 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java
index 7fec47533..01d51af48 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/EncryptKeyCompletionView.java
@@ -29,6 +29,7 @@ import android.support.v4.app.LoaderManager;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
+import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
@@ -134,18 +135,19 @@ public class EncryptKeyCompletionView extends TokenCompleteTextView<KeyItem>
+ KeyRings.IS_EXPIRED + " = 0 AND "
+ Tables.KEYS + "." + KeyRings.IS_REVOKED + " = 0";
- if (args != null && args.containsKey(ARG_QUERY)) {
- String query = args.getString(ARG_QUERY);
- mAdapter.setSearchQuery(query);
+ if (args == null || !args.containsKey(ARG_QUERY)) {
+ // mAdapter.setSearchQuery(null);
+ // return new CursorLoader(getContext(), baseUri, projection, where, null, null);
+ return null;
+ }
- where += " AND " + KeyRings.USER_ID + " LIKE ?";
+ String query = args.getString(ARG_QUERY);
+ mAdapter.setSearchQuery(query);
- return new CursorLoader(getContext(), baseUri, projection, where,
- new String[]{"%" + query + "%"}, null);
- }
+ where += " AND " + KeyRings.USER_ID + " LIKE ?";
- mAdapter.setSearchQuery(null);
- return new CursorLoader(getContext(), baseUri, projection, where, null, null);
+ return new CursorLoader(getContext(), baseUri, projection, where,
+ new String[]{"%" + query + "%"}, null);
}
@@ -167,6 +169,8 @@ public class EncryptKeyCompletionView extends TokenCompleteTextView<KeyItem>
super.showDropDown();
}
+
+
@Override
public void onFocusChanged(boolean hasFocus, int direction, Rect previous) {
super.onFocusChanged(hasFocus, direction, previous);
@@ -182,8 +186,13 @@ public class EncryptKeyCompletionView extends TokenCompleteTextView<KeyItem>
if (start < mPrefix.length()) {
start = mPrefix.length();
}
+ String query = text.subSequence(start, end).toString();
+ if (TextUtils.isEmpty(query) || query.length() < 2) {
+ mLoaderManager.destroyLoader(0);
+ return;
+ }
Bundle args = new Bundle();
- args.putString(ARG_QUERY, text.subSequence(start, end).toString());
+ args.putString(ARG_QUERY, query);
mLoaderManager.restartLoader(0, args, this);
}