bug fix, code cleanup

This commit is contained in:
nuclearfog 2022-12-27 23:20:31 +01:00
parent d9d15f1efa
commit dce43a90ea
No known key found for this signature in database
GPG Key ID: 03488A185C476379
5 changed files with 34 additions and 27 deletions

View File

@ -5,8 +5,8 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import org.nuclearfog.twidda.adapter.holder.OnHolderClickListener;
import org.nuclearfog.twidda.adapter.holder.Optionholder;
import org.nuclearfog.twidda.adapter.holder.Optionholder.OnOptionItemClick;
import org.nuclearfog.twidda.database.GlobalSettings;
import org.nuclearfog.twidda.model.Account;
import org.nuclearfog.twidda.model.Poll;
@ -16,7 +16,7 @@ import org.nuclearfog.twidda.model.Poll;
*
* @author nuclearfog
*/
public class OptionsAdapter extends RecyclerView.Adapter<Optionholder> implements OnOptionItemClick {
public class OptionsAdapter extends RecyclerView.Adapter<Optionholder> implements OnHolderClickListener {
private Poll.Option[] options = {};
private int totalVotes = 1;
@ -59,8 +59,16 @@ public class OptionsAdapter extends RecyclerView.Adapter<Optionholder> implement
@Override
public void onOptionClick(int pos) {
listener.onOptionClick(pos);
public void onItemClick(int pos, int type, int... extras) {
if (type == OnHolderClickListener.POLL_OPTION) {
listener.onOptionClick(pos);
}
}
@Override
public boolean onPlaceholderClick(int position) {
return false;
}
/**

View File

@ -160,6 +160,7 @@ public class MessageHolder extends ViewHolder implements OnClickListener, OnTagC
/**
* item click listener
* todo find a replace for this listener class
*/
public interface OnItemClickListener extends OnHolderClickListener {

View File

@ -47,6 +47,8 @@ public interface OnHolderClickListener {
int POLL_ITEM = 19;
int POLL_OPTION = 20;
/**
* called when an item was clicked
*

View File

@ -3,7 +3,10 @@ package org.nuclearfog.twidda.adapter.holder;
import static androidx.recyclerview.widget.RecyclerView.NO_POSITION;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.SeekBar;
@ -23,14 +26,14 @@ import org.nuclearfog.twidda.model.Poll;
*
* @author nuclearfog
*/
public class Optionholder extends ViewHolder implements View.OnClickListener {
public class Optionholder extends ViewHolder implements OnClickListener, OnTouchListener {
private SeekBar count;
private SeekBar voteProgress;
private TextView name, votes;
private ImageView checked;
@Nullable
private OnOptionItemClick listener;
private OnHolderClickListener listener;
private GlobalSettings settings;
/**
@ -40,14 +43,15 @@ public class Optionholder extends ViewHolder implements View.OnClickListener {
super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_option, parent, false));
name = itemView.findViewById(R.id.item_option_name);
checked = itemView.findViewById(R.id.item_option_voted_icon);
count = itemView.findViewById(R.id.item_option_count_bar);
voteProgress = itemView.findViewById(R.id.item_option_count_bar);
votes = itemView.findViewById(R.id.item_option_count_text);
name.setTextColor(settings.getFontColor());
votes.setTextColor(settings.getFontColor());
AppStyles.setSeekBarColor(count, settings);
AppStyles.setSeekBarColor(voteProgress, settings);
checked.setOnClickListener(this);
voteProgress.setOnTouchListener(this);
this.settings = settings;
}
@ -57,15 +61,21 @@ public class Optionholder extends ViewHolder implements View.OnClickListener {
int position = getLayoutPosition();
if (position != NO_POSITION && listener != null) {
if (v == checked) {
listener.onOptionClick(position);
listener.onItemClick(position, OnHolderClickListener.POLL_OPTION);
}
}
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return v == voteProgress;
}
/**
* set viewholder click listener
*/
public void setOnOptionItemClickListener(OnOptionItemClick listener) {
public void setOnOptionItemClickListener(OnHolderClickListener listener) {
this.listener = listener;
}
@ -80,23 +90,10 @@ public class Optionholder extends ViewHolder implements View.OnClickListener {
checked.setImageResource(R.drawable.check);
else
checked.setImageResource(R.drawable.circle);
voteProgress.setMax(Math.max(totalCount, 1));
AppStyles.setDrawableColor(checked, settings.getIconColor());
name.setText(option.getTitle());
count.setMax(totalCount);
count.setProgress(option.getVotes());
voteProgress.setProgress(option.getVotes());
votes.setText(StringTools.NUMBER_FORMAT.format(option.getVotes()));
}
/**
* viewholder click listener
*/
public interface OnOptionItemClick {
/**
* called on item click
*
* @param pos adapter position of the item
*/
void onOptionClick(int pos);
}
}

View File

@ -36,7 +36,6 @@
android:id="@+id/item_option_voted_icon"
android:layout_width="@dimen/item_option_icon_size"
android:layout_height="@dimen/item_option_icon_size"
android:src="@drawable/check"
android:layout_margin="@dimen/item_option_layout_margin"
android:contentDescription="@string/description_poll_vote_icon" />