From e4edebfed788388b92723b3f803c4be05e994c0e Mon Sep 17 00:00:00 2001 From: Akinwale Ariwodola Date: Thu, 16 Jul 2020 13:51:08 +0100 Subject: [PATCH] fix for follow / unfollow confusion --- .../assets/font_awesome_5_free_regular.otf | Bin 0 -> 97016 bytes .../browser/ui/channel/ChannelFragment.java | 16 ++- .../browser/ui/controls/OutlineIconView.java | 29 +++++ .../ui/findcontent/FileViewFragment.java | 103 ++++++++++-------- app/src/main/res/layout/fragment_channel.xml | 12 +- .../main/res/layout/fragment_file_view.xml | 20 +++- 6 files changed, 122 insertions(+), 58 deletions(-) create mode 100644 app/src/main/assets/font_awesome_5_free_regular.otf create mode 100644 app/src/main/java/io/lbry/browser/ui/controls/OutlineIconView.java diff --git a/app/src/main/assets/font_awesome_5_free_regular.otf b/app/src/main/assets/font_awesome_5_free_regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..7b525099ffb4b28d910703047b1adc6495bb24ca GIT binary patch literal 97016 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ⅈrE))f4de!Ymy zZ4|k66dm`JL%y3ORk`ktEimNU1b6i7i<0SIN9}hvnTMiGY@b~N_hrQONTHGwGqt7T zt$=)Uqo7B*JyjeSc^Nk<`gsrsiN=<{-H#kIo2JfWN&>h``L|f|dR=LQ!gx*Xeej5oRWX{xM4- zY}&iO8|9m*VAKl->NR#WW`w|ZSGqFcE3w&_UYvduWqwl5(TiGPerhQ>9vKl5Y(-VZ zD&eVDh;3Ky!Us5qHY{Lo>W$DpwPktSwnB$QLo?5_QPFEs)cM#r;Im%8G?oLqQV?9( zv8e{RL;OXmg2do@9-f~1!;mb|MG%heOHr@(cLJijIbx-X9ZgF6Z$hNE`8KDp43-k} zmHvB2EUnf^*F$!T{ghu>U1A8iqS=bIk<}#*3J6OM6X5!g7_}uUvBZ9ip04-I6pFWf zpmslqq>>%@F5eK4{xm^ZiTBE!sBCeK`B}N@cnMJHhNgmQcEDMXJ+rorg_~#<i_NKwQk1L*3s~l8*4kpNH)-9x~`th7L1v5 z0vbL$_rOeOZb6$br$@R0wwU3K%zP?_K|x0{vxyRb^@yOk!0j|!I$|#tm*wLJF}|pZ zw6KhdA6hh;Sq7sjGI>-*KZmb5S#}{o1!QcC8#c34vjY_QRUxV+stV9TQSAskRaM@z zlEV*Ud{Olh$Wrm6jie{uJyol`)w?=9lAm3eQk57ZBly)BTf5@zRQjFjr8NUf&^xLpvFxiFuEqn=Ywt+Fhl2X$P_S4Ts>|l| zD^s@Ul~6|Q0o!tzCuzjn)e@g*Mrjj%mWY1yJ+@%$KwqKSO~6nhH2v{l*MENMH}`_B z#S5*(G?inQ>=Ox#fJWqMjQ(E6*TOo>C z#I6N=HjvaDFgCv>H>*wzD@jKI>Z8P^GcaT9Sp>KHG=bSxy|l@ZBLdkU8L%9dSNj&I z=VLI}zJOg1X)TN~co1wBbv_x|IA4Hd1hkC|jg`@dO#$djOwR9+?#2u07O~7Dy-;1m zDG@N1NrKNa{yA5dLP+&20;VskJol;#kdKz!T`&5`&6pWgq_5;sTbI(eI9a7aKWs^9 z(_^g)U=U4d$tHDvk~a>k*+W(KB7tDruOmTJ)Q$&1FJj3$ocR><+!KHR{(Dj3?54k26MfR-w zZ#WYWx!)iy{E;SlZWRI;30Za z! zP||n_eEA%dAj{>(m^8c~v{ULv)}{CvxcMM(YJv>-56MgqwA4=2uy|ujoalh`+BK_W zoGCco$LjQ!$B1o90vcd6EW>nW&^KTO|Dv5-3#!FjcPDQlHIMibtjF zw(D3}ib5FI(F@hVl=xK{KGsEH?KP`PLap?K3K@aVqfwhuqI02vOH&u#hJ{t##%q~6 z@hiwBCi3<(T}aGq+Z5~q{YByFhcLiEr2Qia3Dvxn60tvoFOtVr()}9z7OLt zCpUujaF-!&evEplt#MY9!S7LWGKoGV3DGnmVU<`ZSA{eoq7&;v&icLol;gf3_KEH(7Ds~={au*VsxQB}#a_Hg=w+px2<7N`CC{}@ zmUZfoTCTJ2_LWE7n6<}~;iV78jgk2z9UCyJG~%_^f-Fm1~h)nXbg z!lD{*Yg4G6lHe*DM?)E?{S4ZRhHYO(OsN(P5T&)N5VUM(o_Pf$YhEeV-6cVIBkE18<&%YFCzoMCiK2mpeI4}Jy24G? zx>_+yTT-WJ9DNhny5VM7?QEaPz6LuzA2HDmzM#Ig4u0i~5F7O+q!qoVYy%NU^n%v$ zv%e+#R$X|CEF$0!o7}mKXu?=7+&+pSQi^=dcm&tmplE~eS6c@vG}wSYpTV9lz6MFO zrbN>vPFqcg7Pg?Q(fKw|L@&}LZWqah^Mi

`f^h^$*uC4VFrukvbGe9}7JF*Fcn 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 L;m*L-%PIU11m6{0 literal 0 HcmV?d00001 diff --git a/app/src/main/java/io/lbry/browser/ui/channel/ChannelFragment.java b/app/src/main/java/io/lbry/browser/ui/channel/ChannelFragment.java index 5c5d9aed..0f325bc8 100644 --- a/app/src/main/java/io/lbry/browser/ui/channel/ChannelFragment.java +++ b/app/src/main/java/io/lbry/browser/ui/channel/ChannelFragment.java @@ -49,6 +49,7 @@ import io.lbry.browser.tasks.claim.ClaimListResultHandler; import io.lbry.browser.tasks.claim.ResolveTask; import io.lbry.browser.tasks.lbryinc.FetchStatCountTask; import io.lbry.browser.ui.BaseFragment; +import io.lbry.browser.ui.controls.OutlineIconView; import io.lbry.browser.ui.controls.SolidIconView; import io.lbry.browser.ui.findcontent.FollowingFragment; import io.lbry.browser.utils.Helper; @@ -80,7 +81,8 @@ public class ChannelFragment extends BaseFragment implements FetchChannelsListen private View buttonTip; private View buttonFollowUnfollow; private int subCount; - private SolidIconView iconFollowUnfollow; + private OutlineIconView iconFollow; + private SolidIconView iconUnfollow; private View layoutNothingAtLocation; private View layoutLoadingState; @@ -105,7 +107,8 @@ public class ChannelFragment extends BaseFragment implements FetchChannelsListen buttonShare = root.findViewById(R.id.channel_view_share); buttonTip = root.findViewById(R.id.channel_view_tip); buttonFollowUnfollow = root.findViewById(R.id.channel_view_follow_unfollow); - iconFollowUnfollow = root.findViewById(R.id.channel_view_icon_follow_unfollow); + iconFollow = root.findViewById(R.id.channel_view_icon_follow); + iconUnfollow = root.findViewById(R.id.channel_view_icon_unfollow); tabPager = root.findViewById(R.id.channel_view_pager); tabLayout = root.findViewById(R.id.channel_view_tabs); @@ -274,13 +277,8 @@ public class ChannelFragment extends BaseFragment implements FetchChannelsListen private void checkIsFollowing() { if (claim != null) { boolean isFollowing = Lbryio.isFollowing(claim); - if (iconFollowUnfollow != null) { - iconFollowUnfollow.setText(isFollowing ? R.string.fa_heart_broken : R.string.fa_heart); - Context context = getContext(); - if (context != null) { - iconFollowUnfollow.setTextColor(ContextCompat.getColor(context, isFollowing ? R.color.foreground : R.color.red)); - } - } + Helper.setViewVisibility(iconFollow, !isFollowing ? View.VISIBLE : View.GONE); + Helper.setViewVisibility(iconUnfollow, isFollowing ? View.VISIBLE : View.GONE); } } diff --git a/app/src/main/java/io/lbry/browser/ui/controls/OutlineIconView.java b/app/src/main/java/io/lbry/browser/ui/controls/OutlineIconView.java new file mode 100644 index 00000000..46c3c2b2 --- /dev/null +++ b/app/src/main/java/io/lbry/browser/ui/controls/OutlineIconView.java @@ -0,0 +1,29 @@ +package io.lbry.browser.ui.controls; + +import android.content.Context; +import android.graphics.Typeface; +import android.util.AttributeSet; +import android.view.Gravity; + +import androidx.appcompat.widget.AppCompatTextView; + +public class OutlineIconView extends AppCompatTextView { + private Context context; + + public OutlineIconView(Context context) { + super(context); + this.context = context; + init(); + } + + public OutlineIconView(Context context, AttributeSet attrs) { + super(context, attrs); + this.context = context; + init(); + } + + private void init() { + setGravity(Gravity.CENTER); + setTypeface(Typeface.createFromAsset(context.getAssets(), "font_awesome_5_free_regular.otf")); + } +} diff --git a/app/src/main/java/io/lbry/browser/ui/findcontent/FileViewFragment.java b/app/src/main/java/io/lbry/browser/ui/findcontent/FileViewFragment.java index a3d0a1d1..4f7a5b71 100644 --- a/app/src/main/java/io/lbry/browser/ui/findcontent/FileViewFragment.java +++ b/app/src/main/java/io/lbry/browser/ui/findcontent/FileViewFragment.java @@ -9,6 +9,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.ActivityInfo; import android.graphics.Color; +import android.graphics.Outline; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; @@ -141,6 +142,7 @@ import io.lbry.browser.tasks.lbryinc.ClaimRewardTask; import io.lbry.browser.tasks.lbryinc.FetchStatCountTask; import io.lbry.browser.tasks.lbryinc.LogFileViewTask; import io.lbry.browser.ui.BaseFragment; +import io.lbry.browser.ui.controls.OutlineIconView; import io.lbry.browser.ui.controls.SolidIconView; import io.lbry.browser.ui.publish.PublishFragment; import io.lbry.browser.utils.Helper; @@ -724,6 +726,44 @@ public class FileViewFragment extends BaseFragment implements } } + private View.OnClickListener followUnfollowListener = new View.OnClickListener() { + @Override + public void onClick(View view) { + if (claim != null && claim.getSigningChannel() != null) { + Claim publisher = claim.getSigningChannel(); + boolean isFollowing = Lbryio.isFollowing(publisher); + Subscription subscription = Subscription.fromClaim(publisher); + view.setEnabled(false); + Context context = getContext(); + new ChannelSubscribeTask(context, publisher.getClaimId(), subscription, isFollowing, new ChannelSubscribeTask.ChannelSubscribeHandler() { + @Override + public void onSuccess() { + if (isFollowing) { + Lbryio.removeSubscription(subscription); + Lbryio.removeCachedResolvedSubscription(publisher); + } else { + Lbryio.addSubscription(subscription); + Lbryio.addCachedResolvedSubscription(publisher); + } + view.setEnabled(true); + checkIsFollowing(); + FollowingFragment.resetClaimSearchContent = true; + + // Save shared user state + if (context != null) { + context.sendBroadcast(new Intent(MainActivity.ACTION_SAVE_SHARED_USER_STATE)); + } + } + + @Override + public void onError(Exception exception) { + view.setEnabled(true); + } + }).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + } + } + }; + private void resolveUrl(String url) { resolving = true; Helper.setViewVisibility(layoutDisplayArea, View.INVISIBLE); @@ -1060,44 +1100,10 @@ public class FileViewFragment extends BaseFragment implements } }); - View buttonFollowUnfollow = root.findViewById(R.id.file_view_icon_follow_unfollow); - buttonFollowUnfollow.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (claim != null && claim.getSigningChannel() != null) { - Claim publisher = claim.getSigningChannel(); - boolean isFollowing = Lbryio.isFollowing(publisher); - Subscription subscription = Subscription.fromClaim(publisher); - buttonFollowUnfollow.setEnabled(false); - Context context = getContext(); - new ChannelSubscribeTask(context, publisher.getClaimId(), subscription, isFollowing, new ChannelSubscribeTask.ChannelSubscribeHandler() { - @Override - public void onSuccess() { - if (isFollowing) { - Lbryio.removeSubscription(subscription); - Lbryio.removeCachedResolvedSubscription(publisher); - } else { - Lbryio.addSubscription(subscription); - Lbryio.addCachedResolvedSubscription(publisher); - } - buttonFollowUnfollow.setEnabled(true); - checkIsFollowing(); - FollowingFragment.resetClaimSearchContent = true; - - // Save shared user state - if (context != null) { - context.sendBroadcast(new Intent(MainActivity.ACTION_SAVE_SHARED_USER_STATE)); - } - } - - @Override - public void onError(Exception exception) { - buttonFollowUnfollow.setEnabled(true); - } - }).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } - } - }); + View buttonFollow = root.findViewById(R.id.file_view_icon_follow); + View buttonUnfollow = root.findViewById(R.id.file_view_icon_unfollow); + buttonFollow.setOnClickListener(followUnfollowListener); + buttonUnfollow.setOnClickListener(followUnfollowListener); commentChannelSpinnerAdapter = new InlineChannelSpinnerAdapter(getContext(), R.layout.spinner_item_channel, new ArrayList<>()); commentChannelSpinnerAdapter.addPlaceholder(false); @@ -1418,7 +1424,17 @@ public class FileViewFragment extends BaseFragment implements } } - root.findViewById(R.id.file_view_icon_follow_unfollow).setVisibility(claim.getSigningChannel() != null ? View.VISIBLE : View.GONE); + boolean isAnonymous = claim.getSigningChannel() == null; + View iconFollow = root.findViewById(R.id.file_view_icon_follow); + View iconUnfollow = root.findViewById(R.id.file_view_icon_unfollow); + if (isAnonymous) { + if (iconFollow.getVisibility() == View.VISIBLE) { + iconFollow.setVisibility(View.INVISIBLE); + } + if (iconUnfollow.getVisibility() == View.VISIBLE) { + iconUnfollow.setVisibility(View.INVISIBLE); + } + } MaterialButton mainActionButton = root.findViewById(R.id.file_view_main_action_button); if (claim.isPlayable()) { @@ -2408,11 +2424,10 @@ public class FileViewFragment extends BaseFragment implements Context context = getContext(); View root = getView(); if (context != null && root != null) { - SolidIconView iconFollowUnfollow = root.findViewById(R.id.file_view_icon_follow_unfollow); - if (iconFollowUnfollow != null) { - iconFollowUnfollow.setText(isFollowing ? R.string.fa_heart_broken : R.string.fa_heart); - iconFollowUnfollow.setTextColor(ContextCompat.getColor(context, isFollowing ? R.color.foreground : R.color.red)); - } + OutlineIconView iconFollow = root.findViewById(R.id.file_view_icon_follow); + SolidIconView iconUnfollow = root.findViewById(R.id.file_view_icon_unfollow); + Helper.setViewVisibility(iconFollow, !isFollowing ? View.VISIBLE: View.INVISIBLE); + Helper.setViewVisibility(iconUnfollow, isFollowing ? View.VISIBLE : View.INVISIBLE); } } } diff --git a/app/src/main/res/layout/fragment_channel.xml b/app/src/main/res/layout/fragment_channel.xml index af46977f..7602a54a 100644 --- a/app/src/main/res/layout/fragment_channel.xml +++ b/app/src/main/res/layout/fragment_channel.xml @@ -210,14 +210,22 @@ android:clickable="true" android:layout_width="36dp" android:layout_height="36dp"> - + diff --git a/app/src/main/res/layout/fragment_file_view.xml b/app/src/main/res/layout/fragment_file_view.xml index ebac1449..1ff24b8e 100644 --- a/app/src/main/res/layout/fragment_file_view.xml +++ b/app/src/main/res/layout/fragment_file_view.xml @@ -484,7 +484,7 @@ android:paddingTop="12dp" android:paddingLeft="16dp" android:paddingBottom="12dp" - android:layout_toLeftOf="@id/file_view_icon_follow_unfollow"> + android:layout_toLeftOf="@id/file_view_icon_follow"> - + +