From cd9ede9711d8db7169efeba2167bb25fd8c628cd Mon Sep 17 00:00:00 2001 From: Khalid Hussain Date: Tue, 3 Feb 2015 12:47:46 +0800 Subject: [PATCH] Updates database. Fixes #11. --- app/src/main/assets/hisnul.sqlite3 | Bin 176128 -> 186368 bytes .../main/java/adapters/DuaGroupAdapter.java | 32 ++++++++++++++++-- app/src/main/res/values/strings.xml | 4 +-- 3 files changed, 31 insertions(+), 5 deletions(-) diff --git a/app/src/main/assets/hisnul.sqlite3 b/app/src/main/assets/hisnul.sqlite3 index 16949f4c19b4436714230890cea3fa62cb71851d..5060b9b92db8ada3b7194562baa4530dcc9260c0 100644 GIT binary patch delta 8068 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 delta 335 zcmZqJz}@hGYl1XyC<6n-8X%SfV#bLY=8T~m6P7RwG%}hp0Y&1Ne=~n${>U_8vK-5= z$zECNn@w3G8QH~TfpSvPo2RlRFmkg3*|ID^LYjFK$A5mthD{PIHrrXQF#TcP6v4v7 z!pLaGFxjBMcCrG;$L(epnNBnDGAS}JGbA%GJYh&?+BjK|BXo0e#z97|2@ISJO~nk2 zsm0S3%NWHbyJY3?-E8t<=7Ng5!o_1I>u1lMd^X#hjgcvWfhl6MAcr5*Cf&`J1__LeT$5)SJ_VAD zapIHDwsK6KYZL mList; + private CharSequence search_txt = ""; public DuaGroupAdapter(Context context, List list) { mContext = context; @@ -42,6 +49,7 @@ public Filter getFilter() { return new Filter() { @Override protected FilterResults performFiltering(CharSequence constraint) { + search_txt = constraint; final ExternalDbOpenHelper helper = ExternalDbOpenHelper.getInstance(mContext); final SQLiteDatabase db = helper.openDataBase(); @@ -50,7 +58,7 @@ protected FilterResults performFiltering(CharSequence constraint) { try { c = db.query(HisnDatabaseInfo.DuaGroupTable.TABLE_NAME, null, HisnDatabaseInfo.DuaGroupTable.ENGLISH_TITLE + " like ?", - new String[] { "%" + constraint + "%" }, null, null, null); + new String[]{"%" + constraint + "%"}, null, null, null); if (c != null && c.moveToFirst()) { do { final Dua dua = new Dua(c.getInt(0), c.getString(2)); @@ -106,13 +114,31 @@ public View getView(int position, View convertView, ViewGroup parent) { holder.tvReference = (TextView) convertView.findViewById(R.id.txtReference); holder.tvDuaName = (TextView) convertView.findViewById(R.id.txtDuaName); convertView.setTag(holder); - } - holder = (ViewHolder) convertView.getTag(); + } else + holder = (ViewHolder) convertView.getTag(); Dua p = getItem(position); if (p != null) { holder.tvReference.setText("" + p.getReference()); holder.tvDuaName.setText(p.getTitle()); + + String filter = search_txt.toString(); + String itemValue = holder.tvDuaName.getText().toString(); + + int startPos = itemValue.toLowerCase(Locale.US).indexOf(filter.toLowerCase(Locale.US)); + int endPos = startPos + filter.length(); + + if (startPos != -1) // This should always be true, just a sanity check + { + Spannable spannable = new SpannableString(itemValue); + ColorStateList highlightColor = + new ColorStateList(new int[][]{new int[]{}}, new int[]{mContext.getResources().getColor(R.color.colorAccent)}); + TextAppearanceSpan highlightSpan = new TextAppearanceSpan(null, Typeface.BOLD, -1, highlightColor, null); + + spannable.setSpan(highlightSpan, startPos, endPos, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + holder.tvDuaName.setText(spannable); + } else + holder.tvDuaName.setText(itemValue); } return convertView; } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b3192e6..c554828 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -24,8 +24,8 @@ <big><b>Contributors</b></big><br/> Ahmed El-Helw (<a href="http://twitter.com/ahmedre">@ahmedre</a>)<br/> Azhar Ali (<a href="https://www.linkedin.com/pub/md-azhar-ali/90/251/140">LinkedIn</a>)<br/> - Abdul Majed Ahmed (<a href="https://www.facebook.com/abdulmajed.ahmed">Facebook</a>)<br/> - Hussaini Zulkifli (<a href="https://twitter.com/HussainiZul">@HussainiZulk</a>)<br/> + Abdul Majed Ahmed (<a href="https://twitter.com/AbdulMajed19">@AbdulMajed19</a>)<br/> + Hussaini Zulkifli (<a href="https://twitter.com/HussainiZul">@HussainiZul</a>)<br/> Mohammad Khalid Hussain (<a href="https://www.github.com/khalid.hussain">GitHub</a>) <br/><br/>