From 61386e9ca9eb48fc8c73a2c32d382bd0bcfeadf2 Mon Sep 17 00:00:00 2001 From: Jake McGinty Date: Mon, 16 Nov 2015 16:57:51 -0800 Subject: [PATCH] more useful contact select headers Closes #4608 // FREEBIE --- res/drawable-hdpi/ic_badge_24dp.png | Bin 1816 -> 0 bytes res/drawable-mdpi/ic_badge_24dp.png | Bin 1075 -> 0 bytes res/drawable-xhdpi/ic_badge_24dp.png | Bin 2553 -> 0 bytes res/drawable-xxhdpi/ic_badge_24dp.png | Bin 4120 -> 0 bytes res/drawable-xxxhdpi/ic_badge_24dp.png | Bin 3299 -> 0 bytes res/drawable/badge_drawable.xml | 6 --- res/layout/contact_selection_list_item.xml | 1 - res/values/attrs.xml | 1 - .../securesms/components/AvatarImageView.java | 38 ------------------ .../components/RecyclerViewFastScroller.java | 24 ++++++----- .../contacts/ContactSelectionListAdapter.java | 36 +++++++++-------- 11 files changed, 34 insertions(+), 72 deletions(-) delete mode 100644 res/drawable-hdpi/ic_badge_24dp.png delete mode 100644 res/drawable-mdpi/ic_badge_24dp.png delete mode 100644 res/drawable-xhdpi/ic_badge_24dp.png delete mode 100644 res/drawable-xxhdpi/ic_badge_24dp.png delete mode 100644 res/drawable-xxxhdpi/ic_badge_24dp.png delete mode 100644 res/drawable/badge_drawable.xml diff --git a/res/drawable-hdpi/ic_badge_24dp.png b/res/drawable-hdpi/ic_badge_24dp.png deleted file mode 100644 index aaf4fba850c2aa412fc55cc8d41649ff7a6e9985..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1816 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 diff --git a/res/drawable-xhdpi/ic_badge_24dp.png b/res/drawable-xhdpi/ic_badge_24dp.png deleted file mode 100644 index 15fde7bffdc87ece56e089ac46de1f19360978ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2553 zcmVH-V2W^Rj1~4{gm6#Y}G&Mm}LZcET8jXR(_!lt(t(JdOjD#*-`fCeF zp~a{z#cr#FD3X*4gl$5AXjjvPZK-h;w`IHU&V9?f~6e+94}xEJ_6@J}EF%0LVZ0B3+d0Y3va0;@A*&P(AS z-g6^xJ8%%_0VIyWl{KGJ5b@ifo1BDUpqR$ z<^0jH;)13&oc8zUTPPercs#Kz_uukJR1c7`s zX)^ySl;aJD3sSc=kR=%WDkZerkpp%+(yZ~0@ZYfw-?2Sqs4U8aY>wef3jCuI2nfmp z?L&7eH#&G$x#w7MX>YN7CXO9>_Lt7SQhfd1ezj?u1j#xwe0GXtgR7J33t1|YvUQA8 z7;8!il$c?;`0I|*&(0VwM<(I}H1bKa5emE-_S)FO8S`h@5vc{95(>)Z7*{`<_m!YI z;gM88scBmBc4uXW$dW&YD09PJC7;avmAf3_&?i4fB@~p+F&1DfjLESDg=+v#Hh?rw zaZc^9XmDEFpgs4Q61v=axWJ`dN%FppXOODuT}2<^7%Qzg>DUwCU;~MIqSAu5%Z*M6 zfA)XqX5X34t~W>MTz2N&Y-NxjQqD~HBr}v}TelJ%8yrZh?80kO4tlG=hlN0wwou2_ z`n?azF@!Ker0lgKc|U|M=RRP=s|}mWNseuZEIDqhC8`K&a1jO-6uS|rR-f?A=j%32 zh@9qx%D$vpygyiuS0fTE*4gKPnGS209kY!3Bah^fE`+k>n2|$&GjjN3AT6&Mx%oFB z17&RZbxKSp58&A3pj^O7#IAx(Ke~VgN`47&o~lLM`jDrLCbQoPVly}_9S?wsfP5%l z{9P#T_85tZIT&nSdhSY=fdL+Q&H4 zoCdn8nBq&#*^x?H@>%hlaA6aD zLV4+(P)0sTWQ>ukx%V2a@h{I3K_C}`QX$JZps^6BS}hUojV$0)1q_W z;K5CV=3{4|n%rg)2(_OHWmpv;VN2dBz?A^^?W zqCgeMN70m4t-5(V93XaM1$KD}TDA``TpsB#>bNu)V^@H{a}KLgfFGPa7sxe_X)3M# z&5S!bIFJiCxlN5+ZKge<3g~97FX`Dh0y0O(29hb9pp(-F81ujPT!@I1lUy)mJ{B|` z84Bd_*WoX8Vn4!VPY}3}6Sz4AP&nU_DiC`L$Sf7`QwEyFZ{IQuoqahdq2vRj&oHf= zoa_#`M>N5SIr}u9>J|9qGztvRgzO4rn^3kRe-!PTu;c#WA4WzBIXZI=3Jl}}IrX1F zZg?WpbFnx3;ap8TP z+KDI6=6O}%`P#!MVcQw*2~8l@{%*i%l4tY@f}9kf#QFn9Qwc9KCFZh`{Y4enSaT}jhf=$l-LyaC z%!e9AmArN0G5ExH{+MK@D?A0NPbCU|Dp9hz&_k-gDxjZ!03|Y#xtaF@%v;mSj zgRIohfw3yssWs)c(S?1hJJ4*Ze4yFyA83{Wz4k~+SKyJ7$GU2clmPdEyj+J^|7rNa zC-;3A>+o*vlOV2bYd=!@XMr!IKdCeWq8iTjP`}h0d@+>JPFNP1?YoF01>n<DrTo19 zUql=xY$VT!Qc9A{(XGlY%Kp60J1I6e(lvIkQ)22`37Gc_4h)te-xZXeR!(1ew#o|* zIFVE0$HFqX$+6fgCaHAAv@GL_Y1#BwOfq%FL}RyRBXT+@@2{(+)a#uT@5zSl8ZE_x zE;`w8zya+gpSVlDHC0^lt*Ly;H#zH!fJw?M2Tsv!YA?4PPR!})j*-tnXb0e~Sxesa zsDtE+GhVZ@jej+(GOe7l%>BgBCB~pqs0-p!A07rmMAOJ=^vl#>Oz`uYOfCqtFfh*?vCpZ5GvU4xvqlADX P00000NkvXXu0mjf_T}8c diff --git a/res/drawable-xxhdpi/ic_badge_24dp.png b/res/drawable-xxhdpi/ic_badge_24dp.png deleted file mode 100644 index e64872158a0f0641505703b938765fd002db0f28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4120 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 diff --git a/res/drawable/badge_drawable.xml b/res/drawable/badge_drawable.xml deleted file mode 100644 index 5a87e3c781..0000000000 --- a/res/drawable/badge_drawable.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - diff --git a/res/layout/contact_selection_list_item.xml b/res/layout/contact_selection_list_item.xml index ab4ab40aaa..4f9d121420 100644 --- a/res/layout/contact_selection_list_item.xml +++ b/res/layout/contact_selection_list_item.xml @@ -18,7 +18,6 @@ android:layout_height="40dp" android:foreground="@drawable/contact_photo_background" android:cropToPadding="true" - app:showBadge="true" tools:src="@color/md_material_blue_600" android:layout_marginRight="10dp" android:contentDescription="@string/SingleContactSelectionActivity_contact_photo" /> diff --git a/res/values/attrs.xml b/res/values/attrs.xml index 433040b358..afd2e9a504 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -132,7 +132,6 @@ - diff --git a/src/org/thoughtcrime/securesms/components/AvatarImageView.java b/src/org/thoughtcrime/securesms/components/AvatarImageView.java index 6f7f462141..6fc4ea17ee 100644 --- a/src/org/thoughtcrime/securesms/components/AvatarImageView.java +++ b/src/org/thoughtcrime/securesms/components/AvatarImageView.java @@ -3,13 +3,8 @@ package org.thoughtcrime.securesms.components; import android.content.Context; import android.content.Intent; import android.content.res.TypedArray; -import android.graphics.drawable.Drawable; -import android.graphics.drawable.LayerDrawable; -import android.os.AsyncTask; import android.provider.ContactsContract; import android.support.annotation.Nullable; -import android.support.v4.content.ContextCompat; -import android.support.v4.util.Pair; import android.util.AttributeSet; import android.view.View; import android.widget.ImageView; @@ -21,13 +16,10 @@ import org.thoughtcrime.securesms.contacts.avatars.ContactPhotoFactory; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientFactory; import org.thoughtcrime.securesms.recipients.Recipients; -import org.thoughtcrime.securesms.util.DirectoryHelper; -import org.thoughtcrime.securesms.util.DirectoryHelper.UserCapabilities.Capability; public class AvatarImageView extends ImageView { private boolean inverted; - private boolean showBadge; public AvatarImageView(Context context) { super(context); @@ -41,7 +33,6 @@ public class AvatarImageView extends ImageView { if (attrs != null) { TypedArray typedArray = context.getTheme().obtainStyledAttributes(attrs, R.styleable.AvatarImageView, 0, 0); inverted = typedArray.getBoolean(0, false); - showBadge = typedArray.getBoolean(1, false); typedArray.recycle(); } } @@ -51,12 +42,9 @@ public class AvatarImageView extends ImageView { MaterialColor backgroundColor = recipients.getColor(); setImageDrawable(recipients.getContactPhoto().asDrawable(getContext(), backgroundColor.toConversationColor(getContext()), inverted)); setAvatarClickHandler(recipients, quickContactEnabled); - setTag(recipients); - if (showBadge) new BadgeResolutionTask(getContext()).execute(recipients); } else { setImageDrawable(ContactPhotoFactory.getDefaultContactPhoto(null).asDrawable(getContext(), ContactColors.UNKNOWN_COLOR.toConversationColor(getContext()), inverted)); setOnClickListener(null); - setTag(null); } } @@ -85,30 +73,4 @@ public class AvatarImageView extends ImageView { setOnClickListener(null); } } - - private class BadgeResolutionTask extends AsyncTask> { - private final Context context; - - public BadgeResolutionTask(Context context) { - this.context = context; - } - - @Override - protected Pair doInBackground(Recipients... recipients) { - Capability textCapability = DirectoryHelper.getUserCapabilities(context, recipients[0]).getTextCapability(); - return new Pair<>(recipients[0], textCapability == Capability.SUPPORTED); - } - - @Override - protected void onPostExecute(Pair result) { - if (getTag() == result.first && result.second) { - final Drawable badged = new LayerDrawable(new Drawable[] { - getDrawable(), - ContextCompat.getDrawable(context, R.drawable.badge_drawable) - }); - - setImageDrawable(badged); - } - } - } } diff --git a/src/org/thoughtcrime/securesms/components/RecyclerViewFastScroller.java b/src/org/thoughtcrime/securesms/components/RecyclerViewFastScroller.java index 70c7336223..3eed8e0ab7 100644 --- a/src/org/thoughtcrime/securesms/components/RecyclerViewFastScroller.java +++ b/src/org/thoughtcrime/securesms/components/RecyclerViewFastScroller.java @@ -25,7 +25,6 @@ import android.annotation.TargetApi; import android.content.Context; import android.os.Build.VERSION; import android.support.annotation.NonNull; -import android.support.v4.view.ViewCompat; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.AttributeSet; @@ -57,8 +56,8 @@ public class RecyclerViewFastScroller extends LinearLayout { return; final int verticalScrollOffset = recyclerView.computeVerticalScrollOffset(); final int verticalScrollRange = recyclerView.computeVerticalScrollRange(); - float proportion = (float)verticalScrollOffset / ((float)verticalScrollRange - height); - setBubbleAndHandlePosition(height * proportion); + final float proportion = (float)verticalScrollOffset / verticalScrollRange; + setBubbleAndHandlePosition(proportion); } }; @@ -106,7 +105,7 @@ public class RecyclerViewFastScroller extends LinearLayout { handle.setSelected(true); case MotionEvent.ACTION_MOVE: final float y = event.getY(); - setBubbleAndHandlePosition(y); + setBubbleAndHandlePosition(y / height); setRecyclerViewPosition(y); return true; case MotionEvent.ACTION_UP: @@ -147,12 +146,14 @@ public class RecyclerViewFastScroller extends LinearLayout { if (recyclerView != null) { final int itemCount = recyclerView.getAdapter().getItemCount(); float proportion; - if (ViewUtil.getY(handle) == 0) + if (ViewUtil.getY(handle) == 0) { proportion = 0f; - else if (ViewUtil.getY(handle) + handle.getHeight() >= height - TRACK_SNAP_RANGE) + } else if (ViewUtil.getY(handle) + handle.getHeight() >= height - TRACK_SNAP_RANGE) { proportion = 1f; - else - proportion = y / (float) height; + } else { + proportion = y / (float)height; + } + final int targetPos = Util.clamp((int)(proportion * (float)itemCount), 0, itemCount - 1); ((LinearLayoutManager) recyclerView.getLayoutManager()).scrollToPositionWithOffset(targetPos, 0); final CharSequence bubbleText = ((FastScrollAdapter) recyclerView.getAdapter()).getBubbleText(targetPos); @@ -164,8 +165,11 @@ public class RecyclerViewFastScroller extends LinearLayout { private void setBubbleAndHandlePosition(float y) { final int handleHeight = handle.getHeight(); final int bubbleHeight = bubble.getHeight(); - ViewUtil.setY(handle, Util.clamp((int)(y - handleHeight / 2), 0, height - handleHeight)); - ViewUtil.setY(bubble, Util.clamp((int)(y - bubbleHeight), 0, height - bubbleHeight - handleHeight / 2)); + final int handleY = Util.clamp((int)((height - handleHeight) * y), 0, height - handleHeight); + ViewUtil.setY(handle, handleY); + ViewUtil.setY(bubble, Util.clamp(handleY - bubbleHeight - bubble.getPaddingBottom() + handleHeight, + 0, + height - bubbleHeight)); } @TargetApi(11) diff --git a/src/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java b/src/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java index 6405827c94..11149397c7 100644 --- a/src/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java +++ b/src/org/thoughtcrime/securesms/contacts/ContactSelectionListAdapter.java @@ -20,14 +20,13 @@ import android.content.Context; import android.content.res.TypedArray; import android.database.Cursor; import android.provider.ContactsContract; -import android.support.annotation.DrawableRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.widget.RecyclerView; import android.text.SpannableString; import android.text.Spanned; import android.text.TextUtils; -import android.text.style.ImageSpan; +import android.text.style.ForegroundColorSpan; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; @@ -40,6 +39,7 @@ import org.thoughtcrime.securesms.ContactSelectionListFragment.StickyHeaderAdapt import org.thoughtcrime.securesms.contacts.ContactSelectionListAdapter.HeaderViewHolder; import org.thoughtcrime.securesms.contacts.ContactSelectionListAdapter.ViewHolder; import org.thoughtcrime.securesms.database.CursorRecyclerViewAdapter; +import org.thoughtcrime.securesms.util.Util; import java.util.HashMap; import java.util.Map; @@ -103,7 +103,7 @@ public class ContactSelectionListAdapter extends CursorRecyclerViewAdapter getSelectedContacts() { return selectedContacts; } - private CharSequence getSpannedHeaderString(int position, @DrawableRes int drawable) { - Cursor cursor = getCursorAtPositionOrThrow(position); - - if (cursor.getInt(cursor.getColumnIndexOrThrow(ContactsDatabase.CONTACT_TYPE_COLUMN)) == ContactsDatabase.PUSH_TYPE) { - SpannableString spannable = new SpannableString(" "); - spannable.setSpan(new ImageSpan(getContext(), drawable, ImageSpan.ALIGN_BOTTOM), 0, spannable.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + private CharSequence getSpannedHeaderString(int position) { + final String headerString = getHeaderString(position); + if (isPush(position)) { + SpannableString spannable = new SpannableString(headerString); + spannable.setSpan(new ForegroundColorSpan(getContext().getResources().getColor(R.color.signal_primary)), 0, headerString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); return spannable; } else { - return getHeaderString(position); + return headerString; } } private @NonNull String getHeaderString(int position) { Cursor cursor = getCursorAtPositionOrThrow(position); String letter = cursor.getString(cursor.getColumnIndexOrThrow(ContactsDatabase.NAME_COLUMN)); - if (cursor.getInt(cursor.getColumnIndexOrThrow(ContactsDatabase.CONTACT_TYPE_COLUMN)) == ContactsDatabase.PUSH_TYPE) { - return getContext().getString(R.string.app_name); - } else if (!TextUtils.isEmpty(letter)) { + if (!TextUtils.isEmpty(letter)) { String firstChar = letter.trim().substring(0, 1).toUpperCase(); if (Character.isLetterOrDigit(firstChar.codePointAt(0))) { return firstChar; @@ -176,12 +173,19 @@ public class ContactSelectionListAdapter extends CursorRecyclerViewAdapter