mirror of
https://github.com/nuclearfog/Shitter.git
synced 2025-02-06 22:13:21 +01:00
changed adapter view item styling
This commit is contained in:
parent
be5bf83ee5
commit
672b1149f5
@ -130,7 +130,7 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
|
||||
zoomImage = findViewById(R.id.image_full);
|
||||
videoView = findViewById(R.id.video_view);
|
||||
videoController = new MediaController(this);
|
||||
adapter = new ImageAdapter(this);
|
||||
adapter = new ImageAdapter(getApplicationContext(), this);
|
||||
videoView.setZOrderOnTop(true);
|
||||
videoView.setOnPreparedListener(this);
|
||||
videoView.setOnErrorListener(this);
|
||||
|
@ -58,10 +58,10 @@ public class FontAdapter extends BaseAdapter {
|
||||
tv = new TextView(parent.getContext());
|
||||
tv.setTextSize(COMPLEX_UNIT_SP, FONT_SIZE);
|
||||
tv.setPadding(TEXT_PADDING, 0, TEXT_PADDING, 0);
|
||||
tv.setTextColor(settings.getFontColor());
|
||||
}
|
||||
tv.setText(name);
|
||||
tv.setTypeface(font);
|
||||
tv.setTextColor(settings.getFontColor());
|
||||
return tv;
|
||||
}
|
||||
}
|
@ -1,12 +1,15 @@
|
||||
package org.nuclearfog.twidda.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.PorterDuffColorFilter;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
|
||||
import androidx.annotation.MainThread;
|
||||
import androidx.annotation.NonNull;
|
||||
@ -15,10 +18,12 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.holder.ImageHolder;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
import static android.graphics.PorterDuff.Mode.SRC_ATOP;
|
||||
import static android.view.View.VISIBLE;
|
||||
import static androidx.recyclerview.widget.RecyclerView.NO_POSITION;
|
||||
|
||||
@ -38,6 +43,7 @@ public class ImageAdapter extends Adapter<ViewHolder> {
|
||||
private static final int LOADING = 1;
|
||||
|
||||
private OnImageClickListener itemClickListener;
|
||||
private GlobalSettings settings;
|
||||
|
||||
private List<ImageHolder> images = new LinkedList<>();
|
||||
private boolean loading = false;
|
||||
@ -48,8 +54,9 @@ public class ImageAdapter extends Adapter<ViewHolder> {
|
||||
*
|
||||
* @param itemClickListener Click listener for images
|
||||
*/
|
||||
public ImageAdapter(OnImageClickListener itemClickListener) {
|
||||
public ImageAdapter(Context context, OnImageClickListener itemClickListener) {
|
||||
this.itemClickListener = itemClickListener;
|
||||
settings = GlobalSettings.getInstance(context);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -142,7 +149,7 @@ public class ImageAdapter extends Adapter<ViewHolder> {
|
||||
return item;
|
||||
} else {
|
||||
View view = inflater.inflate(R.layout.item_image_load, parent, false);
|
||||
return new LoadItem(view);
|
||||
return new LoadItem(view, settings.getHighlightColor());
|
||||
}
|
||||
}
|
||||
|
||||
@ -175,13 +182,16 @@ public class ImageAdapter extends Adapter<ViewHolder> {
|
||||
*/
|
||||
private final class LoadItem extends ViewHolder {
|
||||
|
||||
LoadItem(View v) {
|
||||
LoadItem(View v, int color) {
|
||||
super(v);
|
||||
ProgressBar progress = v.findViewById(R.id.imageitem_progress);
|
||||
progress.getIndeterminateDrawable().mutate().setColorFilter(new PorterDuffColorFilter(color, SRC_ATOP));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public interface OnImageClickListener {
|
||||
|
||||
/**
|
||||
* simple click on image_add
|
||||
*
|
||||
|
@ -2,6 +2,7 @@ package org.nuclearfog.twidda.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.PorterDuffColorFilter;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@ -15,6 +16,7 @@ import android.widget.TextView;
|
||||
import androidx.annotation.MainThread;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.cardview.widget.CardView;
|
||||
import androidx.recyclerview.widget.RecyclerView.Adapter;
|
||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
||||
|
||||
@ -24,7 +26,6 @@ import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.holder.UserListList;
|
||||
import org.nuclearfog.twidda.backend.items.User;
|
||||
import org.nuclearfog.twidda.backend.items.UserList;
|
||||
import org.nuclearfog.twidda.backend.utils.AppStyles;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
import org.nuclearfog.twidda.fragment.UserListFragment;
|
||||
|
||||
@ -163,13 +164,7 @@ public class ListAdapter extends Adapter<ViewHolder> {
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
if (viewType == ITEM_LIST) {
|
||||
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false);
|
||||
final ListHolder vh = new ListHolder(v);
|
||||
AppStyles.setTheme(settings, v);
|
||||
|
||||
setIcon(vh.createdAt, icons[3]);
|
||||
setIcon(vh.followIndicator, icons[4]);
|
||||
vh.memberIcon.setImageDrawable(icons[5]);
|
||||
vh.subscrIcon.setImageDrawable(icons[6]);
|
||||
final ListHolder vh = new ListHolder(v, settings);
|
||||
vh.pb_image.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@ -193,9 +188,7 @@ public class ListAdapter extends Adapter<ViewHolder> {
|
||||
return vh;
|
||||
} else {
|
||||
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_placeholder, parent, false);
|
||||
final PlaceHolder ph = new PlaceHolder(v);
|
||||
ph.loadBtn.setTypeface(settings.getFontFace());
|
||||
ph.loadBtn.setTextColor(settings.getFontColor());
|
||||
final PlaceHolder ph = new PlaceHolder(v, settings);
|
||||
ph.loadBtn.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@ -219,13 +212,13 @@ public class ListAdapter extends Adapter<ViewHolder> {
|
||||
ListHolder vh = (ListHolder) holder;
|
||||
UserList item = data.get(index);
|
||||
User owner = item.getListOwner();
|
||||
vh.title.setText(item.getTitle());
|
||||
vh.username.setText(owner.getUsername());
|
||||
vh.screenname.setText(owner.getScreenname());
|
||||
vh.description.setText(item.getDescription());
|
||||
vh.createdAt.setText(getTimeString(item.getCreatedAt()));
|
||||
vh.memberCount.setText(formatter.format(item.getMemberCount()));
|
||||
vh.subscriberCount.setText(formatter.format(item.getSubscriberCount()));
|
||||
vh.textViews[0].setText(item.getTitle());
|
||||
vh.textViews[2].setText(owner.getUsername());
|
||||
vh.textViews[3].setText(owner.getScreenname());
|
||||
vh.textViews[1].setText(item.getDescription());
|
||||
vh.textViews[4].setText(getTimeString(item.getCreatedAt()));
|
||||
vh.textViews[5].setText(formatter.format(item.getMemberCount()));
|
||||
vh.textViews[6].setText(formatter.format(item.getSubscriberCount()));
|
||||
if (settings.getImageLoad() && owner.hasProfileImage()) {
|
||||
String pbLink = owner.getImageLink();
|
||||
if (!owner.hasDefaultProfileImage())
|
||||
@ -233,24 +226,24 @@ public class ListAdapter extends Adapter<ViewHolder> {
|
||||
Picasso.get().load(pbLink).error(R.drawable.no_image).into(vh.pb_image);
|
||||
}
|
||||
if (!item.isListOwner() && item.isFollowing()) {
|
||||
vh.followIndicator.setVisibility(VISIBLE);
|
||||
vh.textViews[7].setVisibility(VISIBLE);
|
||||
} else {
|
||||
vh.followIndicator.setVisibility(GONE);
|
||||
vh.textViews[7].setVisibility(GONE);
|
||||
}
|
||||
if (owner.isVerified()) {
|
||||
setIcon(vh.username, icons[0]);
|
||||
setIcon(vh.textViews[2], icons[0]);
|
||||
} else {
|
||||
setIcon(vh.username, null);
|
||||
setIcon(vh.textViews[2], null);
|
||||
}
|
||||
if (owner.isLocked()) {
|
||||
setIcon(vh.screenname, icons[1]);
|
||||
setIcon(vh.textViews[3], icons[1]);
|
||||
} else {
|
||||
setIcon(vh.screenname, null);
|
||||
setIcon(vh.textViews[3], null);
|
||||
}
|
||||
if (item.isPrivate()) {
|
||||
setIcon(vh.title, icons[2]);
|
||||
setIcon(vh.textViews[0], icons[2]);
|
||||
} else {
|
||||
setIcon(vh.title, null);
|
||||
setIcon(vh.textViews[0], null);
|
||||
}
|
||||
} else if (holder instanceof PlaceHolder) {
|
||||
PlaceHolder placeHolder = (PlaceHolder) holder;
|
||||
@ -297,23 +290,34 @@ public class ListAdapter extends Adapter<ViewHolder> {
|
||||
* view holder class for an user list item
|
||||
*/
|
||||
private final class ListHolder extends ViewHolder {
|
||||
final ImageView pb_image, subscrIcon, memberIcon;
|
||||
final TextView title, username, screenname, description, createdAt;
|
||||
final TextView memberCount, subscriberCount, followIndicator;
|
||||
|
||||
ListHolder(View v) {
|
||||
final ImageView pb_image, subscrIcon, memberIcon;
|
||||
final TextView[] textViews = new TextView[8];
|
||||
|
||||
ListHolder(View v, GlobalSettings settings) {
|
||||
super(v);
|
||||
CardView background = (CardView) v;
|
||||
pb_image = v.findViewById(R.id.list_owner_profile);
|
||||
memberIcon = v.findViewById(R.id.list_member_icon);
|
||||
subscrIcon = v.findViewById(R.id.list_subscriber_icon);
|
||||
followIndicator = v.findViewById(R.id.list_action);
|
||||
title = v.findViewById(R.id.list_title);
|
||||
username = v.findViewById(R.id.list_ownername);
|
||||
screenname = v.findViewById(R.id.list_screenname);
|
||||
description = v.findViewById(R.id.list_description);
|
||||
createdAt = v.findViewById(R.id.list_createdat);
|
||||
memberCount = v.findViewById(R.id.list_member);
|
||||
subscriberCount = v.findViewById(R.id.list_subscriber);
|
||||
textViews[0] = v.findViewById(R.id.list_title);
|
||||
textViews[1] = v.findViewById(R.id.list_description);
|
||||
textViews[2] = v.findViewById(R.id.list_ownername);
|
||||
textViews[3] = v.findViewById(R.id.list_screenname);
|
||||
textViews[4] = v.findViewById(R.id.list_createdat);
|
||||
textViews[5] = v.findViewById(R.id.list_member);
|
||||
textViews[6] = v.findViewById(R.id.list_subscriber);
|
||||
textViews[7] = v.findViewById(R.id.list_action);
|
||||
|
||||
for (TextView tv : textViews) {
|
||||
tv.setTextColor(settings.getFontColor());
|
||||
tv.setTypeface(settings.getFontFace());
|
||||
}
|
||||
background.setCardBackgroundColor(settings.getCardColor());
|
||||
textViews[4].setCompoundDrawablesWithIntrinsicBounds(icons[3], null, null, null);
|
||||
textViews[7].setCompoundDrawablesWithIntrinsicBounds(icons[4], null, null, null);
|
||||
memberIcon.setImageDrawable(icons[5]);
|
||||
subscrIcon.setImageDrawable(icons[6]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -325,10 +329,16 @@ public class ListAdapter extends Adapter<ViewHolder> {
|
||||
final ProgressBar loadCircle;
|
||||
final Button loadBtn;
|
||||
|
||||
PlaceHolder(@NonNull View v) {
|
||||
PlaceHolder(@NonNull View v, GlobalSettings settings) {
|
||||
super(v);
|
||||
CardView background = (CardView) v;
|
||||
loadCircle = v.findViewById(R.id.placeholder_loading);
|
||||
loadBtn = v.findViewById(R.id.placeholder_button);
|
||||
|
||||
loadBtn.setTypeface(settings.getFontFace());
|
||||
loadBtn.setTextColor(settings.getFontColor());
|
||||
loadCircle.getIndeterminateDrawable().mutate().setColorFilter(new PorterDuffColorFilter(settings.getHighlightColor(), SRC_ATOP));
|
||||
background.setCardBackgroundColor(settings.getCardColor());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -101,9 +101,9 @@ public class LocationAdapter extends BaseAdapter {
|
||||
tv = new TextView(parent.getContext());
|
||||
tv.setTextSize(COMPLEX_UNIT_DIP, TEXT_SIZE);
|
||||
tv.setPadding(TEXT_PADDING, 0, TEXT_PADDING, 0);
|
||||
tv.setTextColor(settings.getFontColor());
|
||||
tv.setTypeface(settings.getFontFace());
|
||||
}
|
||||
tv.setTextColor(settings.getFontColor());
|
||||
tv.setTypeface(settings.getFontFace());
|
||||
tv.setText(data.get(pos).getName());
|
||||
return tv;
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ import android.widget.TextView;
|
||||
import androidx.annotation.MainThread;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.cardview.widget.CardView;
|
||||
import androidx.recyclerview.widget.RecyclerView.Adapter;
|
||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
||||
|
||||
@ -25,7 +26,6 @@ import org.nuclearfog.tag.Tagger.OnTagClickListener;
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.items.Message;
|
||||
import org.nuclearfog.twidda.backend.items.User;
|
||||
import org.nuclearfog.twidda.backend.utils.AppStyles;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -109,11 +109,8 @@ public class MessageAdapter extends Adapter<ViewHolder> {
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_dm, parent, false);
|
||||
final MessageHolder vh = new MessageHolder(view);
|
||||
AppStyles.setTheme(settings, view);
|
||||
setIcon(vh.receivername, icons[2]);
|
||||
vh.message.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
vh.answer.setOnClickListener(new View.OnClickListener() {
|
||||
final MessageHolder vh = new MessageHolder(view, settings);
|
||||
vh.buttons[0].setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int position = vh.getLayoutPosition();
|
||||
@ -122,7 +119,7 @@ public class MessageAdapter extends Adapter<ViewHolder> {
|
||||
}
|
||||
}
|
||||
});
|
||||
vh.delete.setOnClickListener(new View.OnClickListener() {
|
||||
vh.buttons[1].setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int position = vh.getLayoutPosition();
|
||||
@ -152,21 +149,21 @@ public class MessageAdapter extends Adapter<ViewHolder> {
|
||||
text = Tagger.makeTextWithLinks(message.getText(), settings.getHighlightColor(), itemClickListener);
|
||||
|
||||
MessageHolder holder = (MessageHolder) vh;
|
||||
holder.message.setText(text);
|
||||
holder.username.setText(sender.getUsername());
|
||||
holder.screenname.setText(sender.getScreenname());
|
||||
holder.createdAt.setText(getTimeString(message.getTime()));
|
||||
holder.receivername.setText(message.getReceiver().getScreenname());
|
||||
holder.textViews[0].setText(sender.getUsername());
|
||||
holder.textViews[1].setText(sender.getScreenname());
|
||||
holder.textViews[2].setText(message.getReceiver().getScreenname());
|
||||
holder.textViews[3].setText(getTimeString(message.getTime()));
|
||||
holder.textViews[4].setText(text);
|
||||
|
||||
if (sender.isVerified()) {
|
||||
setIcon(holder.username, icons[0]);
|
||||
setIcon(holder.textViews[0], icons[0]);
|
||||
} else {
|
||||
setIcon(holder.username, null);
|
||||
setIcon(holder.textViews[0], null);
|
||||
}
|
||||
if (sender.isLocked()) {
|
||||
setIcon(holder.screenname, icons[1]);
|
||||
setIcon(holder.textViews[1], icons[1]);
|
||||
} else {
|
||||
setIcon(holder.screenname, null);
|
||||
setIcon(holder.textViews[1], null);
|
||||
}
|
||||
if (settings.getImageLoad() && sender.hasProfileImage()) {
|
||||
String pbLink = sender.getImageLink();
|
||||
@ -201,25 +198,34 @@ public class MessageAdapter extends Adapter<ViewHolder> {
|
||||
* Holder class for a message view
|
||||
*/
|
||||
private final class MessageHolder extends ViewHolder {
|
||||
final ImageView profile_img;
|
||||
final TextView username;
|
||||
final TextView screenname;
|
||||
final TextView receivername;
|
||||
final TextView createdAt;
|
||||
final TextView message;
|
||||
final Button answer;
|
||||
final Button delete;
|
||||
|
||||
MessageHolder(View v) {
|
||||
final TextView[] textViews = new TextView[5];
|
||||
final Button[] buttons = new Button[2];
|
||||
final ImageView profile_img;
|
||||
|
||||
MessageHolder(View v, GlobalSettings settings) {
|
||||
super(v);
|
||||
CardView background = (CardView) v;
|
||||
profile_img = v.findViewById(R.id.dm_profileImg);
|
||||
username = v.findViewById(R.id.dm_username);
|
||||
screenname = v.findViewById(R.id.dm_screenname);
|
||||
receivername = v.findViewById(R.id.dm_receiver);
|
||||
createdAt = v.findViewById(R.id.dm_time);
|
||||
message = v.findViewById(R.id.dm_message);
|
||||
answer = v.findViewById(R.id.dm_answer);
|
||||
delete = v.findViewById(R.id.dm_delete);
|
||||
textViews[0] = v.findViewById(R.id.dm_username);
|
||||
textViews[1] = v.findViewById(R.id.dm_screenname);
|
||||
textViews[2] = v.findViewById(R.id.dm_receiver);
|
||||
textViews[3] = v.findViewById(R.id.dm_time);
|
||||
textViews[4] = v.findViewById(R.id.dm_message);
|
||||
buttons[0] = v.findViewById(R.id.dm_answer);
|
||||
buttons[1] = v.findViewById(R.id.dm_delete);
|
||||
|
||||
for (TextView tv : textViews) {
|
||||
tv.setTextColor(settings.getFontColor());
|
||||
tv.setTypeface(settings.getFontFace());
|
||||
}
|
||||
for (Button button : buttons) {
|
||||
button.setTextColor(settings.getFontColor());
|
||||
button.setTypeface(settings.getFontFace());
|
||||
}
|
||||
background.setCardBackgroundColor(settings.getCardColor());
|
||||
textViews[2].setCompoundDrawables(icons[2], null, null, null);
|
||||
textViews[4].setMovementMethod(LinkMovementMethod.getInstance());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -9,12 +9,12 @@ import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.MainThread;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.cardview.widget.CardView;
|
||||
import androidx.recyclerview.widget.RecyclerView.Adapter;
|
||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
||||
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.items.Trend;
|
||||
import org.nuclearfog.twidda.backend.utils.AppStyles;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
|
||||
import java.text.NumberFormat;
|
||||
@ -85,9 +85,7 @@ public class TrendAdapter extends Adapter<ViewHolder> {
|
||||
@Override
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_trend, parent, false);
|
||||
final ItemHolder vh = new ItemHolder(v);
|
||||
AppStyles.setTheme(settings, v);
|
||||
|
||||
final ItemHolder vh = new ItemHolder(v, settings);
|
||||
v.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@ -105,15 +103,15 @@ public class TrendAdapter extends Adapter<ViewHolder> {
|
||||
public void onBindViewHolder(@NonNull ViewHolder vh, int index) {
|
||||
ItemHolder holder = (ItemHolder) vh;
|
||||
Trend trend = trends.get(index);
|
||||
holder.pos.setText(trend.getRankStr());
|
||||
holder.name.setText(trend.getName());
|
||||
holder.textViews[0].setText(trend.getRankStr());
|
||||
holder.textViews[1].setText(trend.getName());
|
||||
if (trend.hasRangeInfo()) {
|
||||
Resources resources = holder.vol.getContext().getResources();
|
||||
Resources resources = holder.textViews[2].getContext().getResources();
|
||||
String trendVol = formatter.format(trend.getRange()) + " " + resources.getString(R.string.trend_range);
|
||||
holder.vol.setText(trendVol);
|
||||
holder.vol.setVisibility(VISIBLE);
|
||||
holder.textViews[2].setText(trendVol);
|
||||
holder.textViews[2].setVisibility(VISIBLE);
|
||||
} else {
|
||||
holder.vol.setVisibility(GONE);
|
||||
holder.textViews[2].setVisibility(GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -121,13 +119,20 @@ public class TrendAdapter extends Adapter<ViewHolder> {
|
||||
* view holder class for an item view
|
||||
*/
|
||||
private final class ItemHolder extends ViewHolder {
|
||||
final TextView name, pos, vol;
|
||||
final TextView[] textViews = new TextView[3];
|
||||
|
||||
ItemHolder(View v) {
|
||||
ItemHolder(View v, GlobalSettings settings) {
|
||||
super(v);
|
||||
pos = v.findViewById(R.id.trendpos);
|
||||
name = v.findViewById(R.id.trendname);
|
||||
vol = v.findViewById(R.id.trendvol);
|
||||
CardView background = (CardView) v;
|
||||
textViews[0] = v.findViewById(R.id.trendpos);
|
||||
textViews[1] = v.findViewById(R.id.trendname);
|
||||
textViews[2] = v.findViewById(R.id.trendvol);
|
||||
|
||||
background.setCardBackgroundColor(settings.getCardColor());
|
||||
for (TextView tv : textViews) {
|
||||
tv.setTextColor(settings.getFontColor());
|
||||
tv.setTypeface(settings.getFontFace());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,7 @@ package org.nuclearfog.twidda.adapter;
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.PorterDuffColorFilter;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.text.Spanned;
|
||||
import android.view.LayoutInflater;
|
||||
@ -17,6 +18,7 @@ import android.widget.TextView;
|
||||
import androidx.annotation.MainThread;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.cardview.widget.CardView;
|
||||
import androidx.recyclerview.widget.RecyclerView.Adapter;
|
||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
||||
|
||||
@ -26,7 +28,6 @@ import org.nuclearfog.tag.Tagger;
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.items.Tweet;
|
||||
import org.nuclearfog.twidda.backend.items.User;
|
||||
import org.nuclearfog.twidda.backend.utils.AppStyles;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
|
||||
import java.text.NumberFormat;
|
||||
@ -221,9 +222,7 @@ public class TweetAdapter extends Adapter<ViewHolder> {
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
if (viewType == VIEW_TWEET) {
|
||||
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_tweet, parent, false);
|
||||
final TweetHolder vh = new TweetHolder(v);
|
||||
vh.retweeterName.setCompoundDrawablesWithIntrinsicBounds(R.drawable.retweet, 0, 0, 0);
|
||||
AppStyles.setTheme(settings, v);
|
||||
final TweetHolder vh = new TweetHolder(v, settings);
|
||||
v.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@ -237,8 +236,7 @@ public class TweetAdapter extends Adapter<ViewHolder> {
|
||||
return vh;
|
||||
} else {
|
||||
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_placeholder, parent, false);
|
||||
final PlaceHolder vh = new PlaceHolder(v);
|
||||
AppStyles.setTheme(settings, v);
|
||||
final PlaceHolder vh = new PlaceHolder(v, settings);
|
||||
vh.loadBtn.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@ -273,40 +271,40 @@ public class TweetAdapter extends Adapter<ViewHolder> {
|
||||
TweetHolder vh = (TweetHolder) holder;
|
||||
User user = tweet.getUser();
|
||||
if (tweet.getEmbeddedTweet() != null) {
|
||||
vh.retweeterName.setText(user.getScreenname());
|
||||
vh.retweeterName.setVisibility(VISIBLE);
|
||||
vh.textViews[5].setText(user.getScreenname());
|
||||
vh.textViews[5].setVisibility(VISIBLE);
|
||||
tweet = tweet.getEmbeddedTweet();
|
||||
user = tweet.getUser();
|
||||
} else {
|
||||
vh.retweeterName.setVisibility(INVISIBLE);
|
||||
vh.textViews[5].setVisibility(INVISIBLE);
|
||||
}
|
||||
Spanned text = Tagger.makeTextWithLinks(tweet.getTweet(), settings.getHighlightColor());
|
||||
vh.tweet.setText(text);
|
||||
vh.username.setText(user.getUsername());
|
||||
vh.screenname.setText(user.getScreenname());
|
||||
vh.retweetCount.setText(formatter.format(tweet.getRetweetCount()));
|
||||
vh.favoriteCount.setText(formatter.format(tweet.getFavorCount()));
|
||||
vh.time.setText(getTimeString(tweet.getTime()));
|
||||
vh.textViews[2].setText(text);
|
||||
vh.textViews[0].setText(user.getUsername());
|
||||
vh.textViews[1].setText(user.getScreenname());
|
||||
vh.textViews[3].setText(formatter.format(tweet.getRetweetCount()));
|
||||
vh.textViews[4].setText(formatter.format(tweet.getFavorCount()));
|
||||
vh.textViews[6].setText(getTimeString(tweet.getTime()));
|
||||
|
||||
if (tweet.retweeted()) {
|
||||
setIcon(vh.retweetCount, icons[3]);
|
||||
setIcon(vh.textViews[3], icons[3]);
|
||||
} else {
|
||||
setIcon(vh.retweetCount, icons[2]);
|
||||
setIcon(vh.textViews[3], icons[2]);
|
||||
}
|
||||
if (tweet.favored()) {
|
||||
setIcon(vh.favoriteCount, icons[5]);
|
||||
setIcon(vh.textViews[4], icons[5]);
|
||||
} else {
|
||||
setIcon(vh.favoriteCount, icons[4]);
|
||||
setIcon(vh.textViews[4], icons[4]);
|
||||
}
|
||||
if (user.isVerified()) {
|
||||
setIcon(vh.username, icons[0]);
|
||||
setIcon(vh.textViews[0], icons[0]);
|
||||
} else {
|
||||
setIcon(vh.username, null);
|
||||
setIcon(vh.textViews[0], null);
|
||||
}
|
||||
if (user.isLocked()) {
|
||||
setIcon(vh.screenname, icons[1]);
|
||||
setIcon(vh.textViews[1], icons[1]);
|
||||
} else {
|
||||
setIcon(vh.screenname, null);
|
||||
setIcon(vh.textViews[1], null);
|
||||
}
|
||||
if (settings.getImageLoad() && user.hasProfileImage()) {
|
||||
String pbLink = user.getImageLink();
|
||||
@ -356,20 +354,27 @@ public class TweetAdapter extends Adapter<ViewHolder> {
|
||||
* Holder class for the tweet view
|
||||
*/
|
||||
private final class TweetHolder extends ViewHolder {
|
||||
final TextView username, screenname, tweet, retweetCount;
|
||||
final TextView favoriteCount, retweeterName, time;
|
||||
final TextView[] textViews = new TextView[7];
|
||||
final ImageView profile;
|
||||
|
||||
TweetHolder(@NonNull View v) {
|
||||
TweetHolder(@NonNull View v, GlobalSettings settings) {
|
||||
super(v);
|
||||
username = v.findViewById(R.id.username);
|
||||
screenname = v.findViewById(R.id.screenname);
|
||||
tweet = v.findViewById(R.id.tweettext);
|
||||
retweetCount = v.findViewById(R.id.retweet_number);
|
||||
favoriteCount = v.findViewById(R.id.favorite_number);
|
||||
retweeterName = v.findViewById(R.id.retweeter);
|
||||
time = v.findViewById(R.id.time);
|
||||
CardView background = (CardView) v;
|
||||
profile = v.findViewById(R.id.tweetPb);
|
||||
textViews[0] = v.findViewById(R.id.username);
|
||||
textViews[1] = v.findViewById(R.id.screenname);
|
||||
textViews[2] = v.findViewById(R.id.tweettext);
|
||||
textViews[3] = v.findViewById(R.id.retweet_number);
|
||||
textViews[4] = v.findViewById(R.id.favorite_number);
|
||||
textViews[5] = v.findViewById(R.id.retweeter);
|
||||
textViews[6] = v.findViewById(R.id.time);
|
||||
|
||||
for (TextView tv : textViews) {
|
||||
tv.setTextColor(settings.getFontColor());
|
||||
tv.setTypeface(settings.getFontFace());
|
||||
}
|
||||
background.setBackgroundColor(settings.getCardColor());
|
||||
textViews[5].setCompoundDrawablesWithIntrinsicBounds(icons[2], null, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
@ -380,10 +385,14 @@ public class TweetAdapter extends Adapter<ViewHolder> {
|
||||
final Button loadBtn;
|
||||
final ProgressBar loadCircle;
|
||||
|
||||
PlaceHolder(@NonNull View v) {
|
||||
PlaceHolder(@NonNull View v, GlobalSettings settings) {
|
||||
super(v);
|
||||
CardView background = (CardView) v;
|
||||
loadBtn = v.findViewById(R.id.placeholder_button);
|
||||
loadCircle = v.findViewById(R.id.placeholder_loading);
|
||||
|
||||
background.setCardBackgroundColor(settings.getCardColor());
|
||||
loadCircle.getIndeterminateDrawable().mutate().setColorFilter(new PorterDuffColorFilter(settings.getHighlightColor(), SRC_ATOP));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2,6 +2,7 @@ package org.nuclearfog.twidda.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.PorterDuffColorFilter;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
@ -16,6 +17,7 @@ import android.widget.TextView;
|
||||
import androidx.annotation.MainThread;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.cardview.widget.CardView;
|
||||
import androidx.recyclerview.widget.RecyclerView.Adapter;
|
||||
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
|
||||
|
||||
@ -24,7 +26,6 @@ import com.squareup.picasso.Picasso;
|
||||
import org.nuclearfog.twidda.R;
|
||||
import org.nuclearfog.twidda.backend.holder.TwitterUserList;
|
||||
import org.nuclearfog.twidda.backend.items.User;
|
||||
import org.nuclearfog.twidda.backend.utils.AppStyles;
|
||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
|
||||
import java.text.NumberFormat;
|
||||
@ -147,10 +148,7 @@ public class UserAdapter extends Adapter<ViewHolder> {
|
||||
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
if (viewType == ITEM_USER) {
|
||||
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_user, parent, false);
|
||||
final ItemHolder vh = new ItemHolder(v);
|
||||
AppStyles.setTheme(settings, v);
|
||||
setIcon(vh.following, icons[2]);
|
||||
setIcon(vh.follower, icons[3]);
|
||||
final ItemHolder vh = new ItemHolder(v, settings);
|
||||
v.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@ -179,8 +177,7 @@ public class UserAdapter extends Adapter<ViewHolder> {
|
||||
return vh;
|
||||
} else {
|
||||
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_placeholder, parent, false);
|
||||
final PlaceHolder vh = new PlaceHolder(v);
|
||||
AppStyles.setTheme(settings, v);
|
||||
final PlaceHolder vh = new PlaceHolder(v, settings);
|
||||
vh.loadBtn.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@ -203,19 +200,19 @@ public class UserAdapter extends Adapter<ViewHolder> {
|
||||
User user = items.get(index);
|
||||
if (holder instanceof ItemHolder && user != null) {
|
||||
ItemHolder vh = (ItemHolder) holder;
|
||||
vh.username.setText(user.getUsername());
|
||||
vh.screenname.setText(user.getScreenname());
|
||||
vh.following.setText(formatter.format(user.getFollowing()));
|
||||
vh.follower.setText(formatter.format(user.getFollower()));
|
||||
vh.textViews[0].setText(user.getUsername());
|
||||
vh.textViews[1].setText(user.getScreenname());
|
||||
vh.textViews[2].setText(formatter.format(user.getFollowing()));
|
||||
vh.textViews[3].setText(formatter.format(user.getFollower()));
|
||||
if (user.isVerified()) {
|
||||
setIcon(vh.username, icons[0]);
|
||||
setIcon(vh.textViews[0], icons[0]);
|
||||
} else {
|
||||
setIcon(vh.username, null);
|
||||
setIcon(vh.textViews[0], null);
|
||||
}
|
||||
if (user.isLocked()) {
|
||||
setIcon(vh.screenname, icons[1]);
|
||||
setIcon(vh.textViews[1], icons[1]);
|
||||
} else {
|
||||
setIcon(vh.screenname, null);
|
||||
setIcon(vh.textViews[1], null);
|
||||
}
|
||||
if (settings.getImageLoad() && user.hasProfileImage()) {
|
||||
String pbLink = user.getImageLink();
|
||||
@ -280,18 +277,28 @@ public class UserAdapter extends Adapter<ViewHolder> {
|
||||
* Holder for an user view item
|
||||
*/
|
||||
private final class ItemHolder extends ViewHolder {
|
||||
|
||||
final TextView[] textViews = new TextView[4];
|
||||
final ImageView profileImg;
|
||||
final TextView username, screenname, following, follower;
|
||||
final ImageButton delete;
|
||||
|
||||
ItemHolder(View v) {
|
||||
ItemHolder(View v, GlobalSettings settings) {
|
||||
super(v);
|
||||
username = v.findViewById(R.id.username_detail);
|
||||
screenname = v.findViewById(R.id.screenname_detail);
|
||||
CardView background = (CardView) v;
|
||||
textViews[0] = v.findViewById(R.id.username_detail);
|
||||
textViews[1] = v.findViewById(R.id.screenname_detail);
|
||||
textViews[2] = v.findViewById(R.id.item_user_friends);
|
||||
textViews[3] = v.findViewById(R.id.item_user_follower);
|
||||
profileImg = v.findViewById(R.id.user_profileimg);
|
||||
delete = v.findViewById(R.id.useritem_del_user);
|
||||
following = v.findViewById(R.id.item_user_friends);
|
||||
follower = v.findViewById(R.id.item_user_follower);
|
||||
|
||||
for (TextView tv : textViews) {
|
||||
tv.setTextColor(settings.getFontColor());
|
||||
tv.setTypeface(settings.getFontFace());
|
||||
}
|
||||
background.setCardBackgroundColor(settings.getCardColor());
|
||||
textViews[2].setCompoundDrawablesWithIntrinsicBounds(icons[2], null, null, null);
|
||||
textViews[3].setCompoundDrawablesWithIntrinsicBounds(icons[3], null, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
@ -302,10 +309,14 @@ public class UserAdapter extends Adapter<ViewHolder> {
|
||||
final ProgressBar loadCircle;
|
||||
final Button loadBtn;
|
||||
|
||||
PlaceHolder(@NonNull View v) {
|
||||
PlaceHolder(@NonNull View v, GlobalSettings settings) {
|
||||
super(v);
|
||||
CardView background = (CardView) v;
|
||||
loadCircle = v.findViewById(R.id.placeholder_loading);
|
||||
loadBtn = v.findViewById(R.id.placeholder_button);
|
||||
|
||||
background.setCardBackgroundColor(settings.getCardColor());
|
||||
loadCircle.getIndeterminateDrawable().mutate().setColorFilter(new PorterDuffColorFilter(settings.getHighlightColor(), SRC_ATOP));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -7,6 +7,7 @@
|
||||
android:orientation="vertical">
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/imageitem_progress"
|
||||
style="?android:attr/progressBarStyle"
|
||||
android:layout_width="@dimen/item_imageload_progress_size"
|
||||
android:layout_height="@dimen/item_imageload_progress_size"
|
||||
|
Loading…
x
Reference in New Issue
Block a user