diff --git a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java index e9a2b843b..22c776e1b 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java +++ b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java @@ -15,6 +15,7 @@ public class GlobalUserPreferences{ public static boolean alwaysExpandContentWarnings; public static boolean disableMarquee; public static ThemePreference theme; + public static boolean voteButtonForSingleChoice; private static SharedPreferences getPrefs(){ return MastodonApp.context.getSharedPreferences("global", Context.MODE_PRIVATE); @@ -32,6 +33,7 @@ public class GlobalUserPreferences{ showInteractionCounts=prefs.getBoolean("showInteractionCounts", false); alwaysExpandContentWarnings=prefs.getBoolean("alwaysExpandContentWarnings", false); disableMarquee=prefs.getBoolean("disableMarquee", false); + voteButtonForSingleChoice=prefs.getBoolean("voteButtonForSingleChoice", true); theme=ThemePreference.values()[prefs.getInt("theme", 0)]; } diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java index add235384..c44e371df 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java @@ -400,10 +400,12 @@ public abstract class BaseStatusListFragment exten public void onPollOptionClick(PollOptionStatusDisplayItem.Holder holder){ Poll poll=holder.getItem().poll; Poll.Option option=holder.getItem().option; - if(poll.multiple){ + if(poll.multiple || GlobalUserPreferences.voteButtonForSingleChoice){ if(poll.selectedOptions==null) poll.selectedOptions=new ArrayList<>(); - if(poll.selectedOptions.contains(option)){ + boolean optionContained=poll.selectedOptions.contains(option); + if(!poll.multiple) poll.selectedOptions.clear(); + if(optionContained){ poll.selectedOptions.remove(option); holder.itemView.setSelected(false); }else{ @@ -412,6 +414,9 @@ public abstract class BaseStatusListFragment exten } for(int i=0;i + tools:text="scream into void. like this: aaaaaaaaaaaaaaaaaaaa"/>