bug fix, code cleanup
This commit is contained in:
parent
d9d15f1efa
commit
dce43a90ea
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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 {
|
||||
|
||||
|
|
|
@ -47,6 +47,8 @@ public interface OnHolderClickListener {
|
|||
|
||||
int POLL_ITEM = 19;
|
||||
|
||||
int POLL_OPTION = 20;
|
||||
|
||||
/**
|
||||
* called when an item was clicked
|
||||
*
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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" />
|
||||
|
||||
|
|
Loading…
Reference in New Issue