diff options
author | Miroojin Bakshi <gaglu231094@gmail.com> | 2014-03-10 15:25:09 +0530 |
---|---|---|
committer | Miroojin Bakshi <gaglu231094@gmail.com> | 2014-03-10 15:25:09 +0530 |
commit | b927c0f26ace30651b3cb9df9d71741745563aaf (patch) | |
tree | 9c7d888c7d3bfe4e54a8d5730dcd12bc1de95c38 /OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyListPublicAdapter.java | |
parent | 8d85aa5876949aec45a908760411790f3601c632 (diff) | |
download | open-keychain-b927c0f26ace30651b3cb9df9d71741745563aaf.tar.gz open-keychain-b927c0f26ace30651b3cb9df9d71741745563aaf.tar.bz2 open-keychain-b927c0f26ace30651b3cb9df9d71741745563aaf.zip |
Highlight search query in SelectPublicKeyFragment and
KeyListPublicFragment
Diffstat (limited to 'OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyListPublicAdapter.java')
-rw-r--r-- | OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyListPublicAdapter.java | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyListPublicAdapter.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyListPublicAdapter.java index 086d2c178..dcc368e7b 100644 --- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyListPublicAdapter.java +++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyListPublicAdapter.java @@ -19,6 +19,8 @@ package org.sufficientlysecure.keychain.ui.adapter; import java.util.HashMap; import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; @@ -33,6 +35,9 @@ import android.content.Context; import android.database.Cursor; import android.graphics.Color; import android.support.v4.widget.CursorAdapter; +import android.text.Html; +import android.text.Spannable; +import android.text.style.ForegroundColorSpan; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -46,13 +51,14 @@ public class KeyListPublicAdapter extends CursorAdapter implements StickyListHea private int mSectionColumnIndex; private int mIndexUserId; private int mIndexIsRevoked; + private String mCurQuery; @SuppressLint("UseSparseArrays") private HashMap<Integer, Boolean> mSelection = new HashMap<Integer, Boolean>(); public KeyListPublicAdapter(Context context, Cursor c, int flags, int sectionColumnIndex) { super(context, c, flags); - + mCurQuery = null; mInflater = LayoutInflater.from(context); mSectionColumnIndex = sectionColumnIndex; initIndex(c); @@ -78,6 +84,10 @@ public class KeyListPublicAdapter extends CursorAdapter implements StickyListHea } } + public void setSearchQuery(String searchQuery){ + mCurQuery = searchQuery; + } + /** * Bind cursor data to the item list view * <p/> @@ -110,6 +120,10 @@ public class KeyListPublicAdapter extends CursorAdapter implements StickyListHea } else { revoked.setVisibility(View.GONE); } + if(mCurQuery != null){ + mainUserId.setText(highlightSearchKey(userIdSplit[0])); + mainUserIdRest.setText(highlightSearchKey(userIdSplit[1])); + } } @Override @@ -228,5 +242,24 @@ public class KeyListPublicAdapter extends CursorAdapter implements StickyListHea } return v; } + private Spannable highlightSearchKey(String text) { + Spannable highlight; + Pattern pattern; + Matcher matcher; + String orig_str; + + orig_str = Html.fromHtml(text).toString(); + highlight = (Spannable) Html.fromHtml(text); + pattern = Pattern.compile("(?i)" + mCurQuery); + matcher = pattern.matcher(orig_str); + if (matcher.find()) { + highlight.setSpan( + new ForegroundColorSpan(0xFF33B5E5), + matcher.start(), + matcher.end(), + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + } + return highlight; + } } |