19
19
import android .widget .Toolbar ;
20
20
21
21
import org .joinmastodon .android .E ;
22
+ import org .joinmastodon .android .GlobalUserPreferences ;
22
23
import org .joinmastodon .android .R ;
23
24
import org .joinmastodon .android .api .requests .accounts .GetAccountRelationships ;
24
25
import org .joinmastodon .android .api .requests .polls .SubmitPollVote ;
@@ -395,10 +396,12 @@ protected void updatePoll(String itemID, Status status, Poll poll){
395
396
public void onPollOptionClick (PollOptionStatusDisplayItem .Holder holder ){
396
397
Poll poll =holder .getItem ().poll ;
397
398
Poll .Option option =holder .getItem ().option ;
398
- if (poll .multiple ){
399
+ if (poll .multiple || GlobalUserPreferences . voteButtonForSingleChoice ){
399
400
if (poll .selectedOptions ==null )
400
401
poll .selectedOptions =new ArrayList <>();
401
- if (poll .selectedOptions .contains (option )){
402
+ boolean optionContained =poll .selectedOptions .contains (option );
403
+ if (!poll .multiple ) poll .selectedOptions .clear ();
404
+ if (optionContained ){
402
405
poll .selectedOptions .remove (option );
403
406
holder .itemView .setSelected (false );
404
407
}else {
@@ -407,6 +410,9 @@ public void onPollOptionClick(PollOptionStatusDisplayItem.Holder holder){
407
410
}
408
411
for (int i =0 ;i <list .getChildCount ();i ++){
409
412
RecyclerView .ViewHolder vh =list .getChildViewHolder (list .getChildAt (i ));
413
+ if (!poll .multiple && vh instanceof PollOptionStatusDisplayItem .Holder item ){
414
+ if (item != holder ) item .itemView .setSelected (false );
415
+ }
410
416
if (vh instanceof PollFooterStatusDisplayItem .Holder footer ){
411
417
if (footer .getItemID ().equals (holder .getItemID ())){
412
418
footer .rebind ();
0 commit comments