moved LayoutInflater into ViewHolder, fixed possible bugs, added comments

This commit is contained in:
nuclearfog 2021-02-26 17:49:22 +01:00
parent 34a822733d
commit e74e65a876
No known key found for this signature in database
GPG Key ID: D5490E4A81F97B14
16 changed files with 163 additions and 164 deletions

View File

@ -91,11 +91,6 @@ public class MediaViewer extends MediaActivity implements OnImageClickListener,
*/
public static final int MEDIAVIEWER_ANGIF = 4;
/**
* transparency color mask for control panel
*/
private static final int PANEL_TRANSPARENCY = 0x7fffffff;
/**
* refresh time for video progress update
*/
@ -155,17 +150,17 @@ public class MediaViewer extends MediaActivity implements OnImageClickListener,
ImageButton forward = controlPanel.findViewById(R.id.controller_forward);
ImageButton backward = controlPanel.findViewById(R.id.controller_backward);
ImageButton share = controlPanel.findViewById(R.id.controller_share);
GlobalSettings settings = GlobalSettings.getInstance(this);
adapter = new ImageAdapter(settings, this);
share.setImageResource(R.drawable.share);
forward.setImageResource(R.drawable.forward);
backward.setImageResource(R.drawable.backward);
play.setImageResource(R.drawable.play);
pause.setImageResource(R.drawable.pause);
adapter = new ImageAdapter(this);
GlobalSettings settings = GlobalSettings.getInstance(this);
AppStyles.setProgressColor(loadingCircle, settings.getHighlightColor());
controlPanel.setBackgroundColor(settings.getCardColor());
AppStyles.setTheme(settings, controlPanel, settings.getBackgroundColor() & PANEL_TRANSPARENCY);
AppStyles.setTheme(settings, controlPanel, settings.getCardColor());
// get intent data and type
mediaLinks = getIntent().getStringArrayExtra(KEY_MEDIA_LINK);

View File

@ -1,7 +1,6 @@
package org.nuclearfog.twidda.adapter;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
@ -11,11 +10,9 @@ import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView.Adapter;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.adapter.holder.Footer;
import org.nuclearfog.twidda.adapter.holder.ImageItem;
import org.nuclearfog.twidda.backend.holder.ImageHolder;
import org.nuclearfog.twidda.database.GlobalSettings;
import java.util.LinkedList;
import java.util.List;
@ -41,19 +38,16 @@ 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;
private boolean saveImg = true;
/**
* @param settings App settings to set theme
* @param itemClickListener click listener
*/
public ImageAdapter(GlobalSettings settings, OnImageClickListener itemClickListener) {
public ImageAdapter(OnImageClickListener itemClickListener) {
this.itemClickListener = itemClickListener;
this.settings = settings;
}
/**
@ -116,10 +110,8 @@ public class ImageAdapter extends Adapter<ViewHolder> {
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull final ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
if (viewType == PICTURE) {
View view = inflater.inflate(R.layout.item_image, parent, false);
final ImageItem item = new ImageItem(view, settings);
final ImageItem item = new ImageItem(parent);
item.preview.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@ -145,8 +137,7 @@ public class ImageAdapter extends Adapter<ViewHolder> {
}
return item;
} else {
View view = inflater.inflate(R.layout.item_placeholder, parent, false);
return new Footer(view, settings, true);
return new Footer(parent, true);
}
}

View File

@ -1,6 +1,5 @@
package org.nuclearfog.twidda.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
@ -148,8 +147,7 @@ public class ListAdapter extends Adapter<ViewHolder> {
@Override
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 itemHolder = new ListHolder(v, settings);
final ListHolder itemHolder = new ListHolder(parent);
itemHolder.profile_img.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
@ -162,7 +160,7 @@ public class ListAdapter extends Adapter<ViewHolder> {
}
}
});
v.setOnClickListener(new OnClickListener() {
itemHolder.itemView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int position = itemHolder.getLayoutPosition();
@ -174,8 +172,7 @@ public class ListAdapter extends Adapter<ViewHolder> {
});
return itemHolder;
} else {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_placeholder, parent, false);
final Footer footer = new Footer(v, settings, false);
final Footer footer = new Footer(parent, false);
footer.loadBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {

View File

@ -1,7 +1,6 @@
package org.nuclearfog.twidda.adapter;
import android.text.Spanned;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -131,8 +130,7 @@ public class MessageAdapter extends Adapter<ViewHolder> {
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
if (viewType == TYPE_MESSAGE) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_dm, parent, false);
final MessageHolder vh = new MessageHolder(view, settings);
final MessageHolder vh = new MessageHolder(parent);
vh.buttons[0].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@ -162,8 +160,7 @@ public class MessageAdapter extends Adapter<ViewHolder> {
});
return vh;
} else {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_placeholder, parent, false);
final Footer footer = new Footer(v, settings, false);
final Footer footer = new Footer(parent, false);
footer.loadBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

View File

@ -1,7 +1,6 @@
package org.nuclearfog.twidda.adapter;
import android.content.res.Resources;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
@ -14,7 +13,6 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.adapter.holder.TrendHolder;
import org.nuclearfog.twidda.backend.items.Trend;
import org.nuclearfog.twidda.database.GlobalSettings;
import java.text.NumberFormat;
import java.util.ArrayList;
@ -33,15 +31,13 @@ import static androidx.recyclerview.widget.RecyclerView.NO_POSITION;
public class TrendAdapter extends Adapter<ViewHolder> {
private TrendClickListener itemClickListener;
private GlobalSettings settings;
private NumberFormat formatter = NumberFormat.getIntegerInstance();
private List<Trend> trends = new ArrayList<>();
public TrendAdapter(GlobalSettings settings, TrendClickListener itemClickListener) {
public TrendAdapter(TrendClickListener itemClickListener) {
this.itemClickListener = itemClickListener;
this.settings = settings;
}
/**
@ -84,9 +80,8 @@ public class TrendAdapter extends Adapter<ViewHolder> {
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_trend, parent, false);
final TrendHolder vh = new TrendHolder(v, settings);
v.setOnClickListener(new OnClickListener() {
final TrendHolder vh = new TrendHolder(parent);
vh.itemView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int position = vh.getLayoutPosition();

View File

@ -2,7 +2,6 @@ package org.nuclearfog.twidda.adapter;
import android.graphics.Color;
import android.text.Spanned;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
@ -208,9 +207,8 @@ public class TweetAdapter extends Adapter<ViewHolder> {
@Override
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, settings);
v.setOnClickListener(new OnClickListener() {
final TweetHolder vh = new TweetHolder(parent);
vh.itemView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int position = vh.getLayoutPosition();
@ -222,8 +220,7 @@ public class TweetAdapter extends Adapter<ViewHolder> {
});
return vh;
} else {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_placeholder, parent, false);
final Footer footer = new Footer(v, settings, false);
final Footer footer = new Footer(parent, false);
footer.loadBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {

View File

@ -1,6 +1,5 @@
package org.nuclearfog.twidda.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
@ -160,9 +159,8 @@ public class UserAdapter extends Adapter<ViewHolder> {
@Override
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 UserHolder vh = new UserHolder(v, settings);
v.setOnClickListener(new OnClickListener() {
final UserHolder vh = new UserHolder(parent);
vh.itemView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int position = vh.getLayoutPosition();
@ -189,8 +187,7 @@ public class UserAdapter extends Adapter<ViewHolder> {
}
return vh;
} else {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_placeholder, parent, false);
final Footer vh = new Footer(v, settings, false);
final Footer vh = new Footer(parent, false);
vh.loadBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {

View File

@ -1,12 +1,12 @@
package org.nuclearfog.twidda.adapter.holder;
import android.view.View;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ProgressBar;
import androidx.annotation.NonNull;
import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.backend.utils.AppStyles;
@ -22,22 +22,22 @@ import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
*
* @author nuclearfog
*/
public class Footer extends RecyclerView.ViewHolder {
public class Footer extends ViewHolder {
public final ProgressBar loadCircle;
public final Button loadBtn;
/**
* @param v inflated view R.layout.item_placeholder
* @param settings settings for theme
* @param horizontal true if footer is in a horizontal list
* @param parent Parent view from adapter
* @param horizontal true if footer orientation is horizontal
*/
public Footer(@NonNull View v, GlobalSettings settings, boolean horizontal) {
super(v);
CardView background = (CardView) v;
loadCircle = v.findViewById(R.id.placeholder_loading);
loadBtn = v.findViewById(R.id.placeholder_button);
public Footer(ViewGroup parent, boolean horizontal) {
super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_placeholder, parent, false));
CardView background = (CardView) itemView;
loadCircle = itemView.findViewById(R.id.placeholder_loading);
loadBtn = itemView.findViewById(R.id.placeholder_button);
GlobalSettings settings = GlobalSettings.getInstance(parent.getContext());
background.setCardBackgroundColor(settings.getCardColor());
loadBtn.setTextColor(settings.getFontColor());
loadBtn.setTypeface(settings.getTypeFace());

View File

@ -1,11 +1,12 @@
package org.nuclearfog.twidda.adapter.holder;
import android.view.View;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.backend.utils.AppStyles;
@ -17,17 +18,22 @@ import org.nuclearfog.twidda.database.GlobalSettings;
* @author nuclearfog
* @see org.nuclearfog.twidda.adapter.ImageAdapter
*/
public final class ImageItem extends RecyclerView.ViewHolder {
public class ImageItem extends ViewHolder {
public final ImageView preview;
public final ImageButton saveButton;
public ImageItem(View view, GlobalSettings settings) {
super(view);
CardView cardBackground = (CardView) view;
preview = view.findViewById(R.id.item_image_preview);
saveButton = view.findViewById(R.id.item_image_save);
/**
* @param parent Parent view from adapter
*/
public ImageItem(ViewGroup parent) {
super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_image, parent, false));
CardView cardBackground = (CardView) itemView;
preview = itemView.findViewById(R.id.item_image_preview);
saveButton = itemView.findViewById(R.id.item_image_save);
saveButton.setImageResource(R.drawable.save);
GlobalSettings settings = GlobalSettings.getInstance(parent.getContext());
cardBackground.setCardBackgroundColor(settings.getCardColor());
AppStyles.setButtonColor(saveButton, settings.getFontColor());
AppStyles.setDrawableColor(saveButton, settings.getIconColor());

View File

@ -1,11 +1,12 @@
package org.nuclearfog.twidda.adapter.holder;
import android.view.View;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.database.GlobalSettings;
@ -18,32 +19,34 @@ import static android.graphics.PorterDuff.Mode.SRC_IN;
* @author nuclearfog
* @see android.widget.ListAdapter
*/
public class ListHolder extends RecyclerView.ViewHolder {
public class ListHolder extends ViewHolder {
public final ImageView[] icons = new ImageView[7];
public final TextView[] textViews = new TextView[8];
public final ImageView profile_img;
public ListHolder(View v, GlobalSettings settings) {
super(v);
CardView background = (CardView) v;
profile_img = v.findViewById(R.id.list_owner_profile);
icons[0] = v.findViewById(R.id.list_user_verified);
icons[1] = v.findViewById(R.id.list_user_locked);
icons[2] = v.findViewById(R.id.list_member_icon);
icons[3] = v.findViewById(R.id.list_subscriber_icon);
icons[4] = v.findViewById(R.id.list_date_icon);
icons[5] = v.findViewById(R.id.list_private);
icons[6] = v.findViewById(R.id.list_follow_icon);
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);
/**
* @param parent Parent view from adapter
*/
public ListHolder(ViewGroup parent) {
super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false));
CardView background = (CardView) itemView;
profile_img = itemView.findViewById(R.id.list_owner_profile);
icons[0] = itemView.findViewById(R.id.list_user_verified);
icons[1] = itemView.findViewById(R.id.list_user_locked);
icons[2] = itemView.findViewById(R.id.list_member_icon);
icons[3] = itemView.findViewById(R.id.list_subscriber_icon);
icons[4] = itemView.findViewById(R.id.list_date_icon);
icons[5] = itemView.findViewById(R.id.list_private);
icons[6] = itemView.findViewById(R.id.list_follow_icon);
textViews[0] = itemView.findViewById(R.id.list_title);
textViews[1] = itemView.findViewById(R.id.list_description);
textViews[2] = itemView.findViewById(R.id.list_ownername);
textViews[3] = itemView.findViewById(R.id.list_screenname);
textViews[4] = itemView.findViewById(R.id.list_createdat);
textViews[5] = itemView.findViewById(R.id.list_member);
textViews[6] = itemView.findViewById(R.id.list_subscriber);
textViews[7] = itemView.findViewById(R.id.list_action);
icons[0].setImageResource(R.drawable.verify);
icons[1].setImageResource(R.drawable.lock);
@ -53,6 +56,7 @@ public class ListHolder extends RecyclerView.ViewHolder {
icons[5].setImageResource(R.drawable.lock);
icons[6].setImageResource(R.drawable.followback);
GlobalSettings settings = GlobalSettings.getInstance(parent.getContext());
for (TextView tv : textViews) {
tv.setTextColor(settings.getFontColor());
tv.setTypeface(settings.getTypeFace());

View File

@ -1,13 +1,14 @@
package org.nuclearfog.twidda.adapter.holder;
import android.text.method.LinkMovementMethod;
import android.view.View;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.backend.utils.AppStyles;
@ -21,27 +22,35 @@ import static android.graphics.PorterDuff.Mode.SRC_IN;
* @author nuclearfog
* @see org.nuclearfog.twidda.adapter.MessageAdapter
*/
public class MessageHolder extends RecyclerView.ViewHolder {
public class MessageHolder extends ViewHolder {
public final TextView[] textViews = new TextView[5];
public final Button[] buttons = new Button[2];
public final ImageView profile_img, verifiedIcon, lockedIcon;
public MessageHolder(View v, GlobalSettings settings) {
super(v);
CardView background = (CardView) v;
ImageView receiver_icon = v.findViewById(R.id.dm_receiver_icon);
profile_img = v.findViewById(R.id.dm_profile_img);
verifiedIcon = v.findViewById(R.id.dm_user_verified);
lockedIcon = v.findViewById(R.id.dm_user_locked);
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);
/**
* @param parent Parent view from adapter
*/
public MessageHolder(ViewGroup parent) {
super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_dm, parent, false));
CardView background = (CardView) itemView;
ImageView receiver_icon = itemView.findViewById(R.id.dm_receiver_icon);
profile_img = itemView.findViewById(R.id.dm_profile_img);
verifiedIcon = itemView.findViewById(R.id.dm_user_verified);
lockedIcon = itemView.findViewById(R.id.dm_user_locked);
textViews[0] = itemView.findViewById(R.id.dm_username);
textViews[1] = itemView.findViewById(R.id.dm_screenname);
textViews[2] = itemView.findViewById(R.id.dm_receiver);
textViews[3] = itemView.findViewById(R.id.dm_time);
textViews[4] = itemView.findViewById(R.id.dm_message);
buttons[0] = itemView.findViewById(R.id.dm_answer);
buttons[1] = itemView.findViewById(R.id.dm_delete);
receiver_icon.setImageResource(R.drawable.right);
verifiedIcon.setImageResource(R.drawable.verify);
lockedIcon.setImageResource(R.drawable.lock);
GlobalSettings settings = GlobalSettings.getInstance(parent.getContext());
for (TextView tv : textViews) {
tv.setTextColor(settings.getFontColor());
tv.setTypeface(settings.getTypeFace());
@ -51,9 +60,6 @@ public class MessageHolder extends RecyclerView.ViewHolder {
button.setTypeface(settings.getTypeFace());
AppStyles.setButtonColor(button, settings.getFontColor());
}
receiver_icon.setImageResource(R.drawable.right);
verifiedIcon.setImageResource(R.drawable.verify);
lockedIcon.setImageResource(R.drawable.lock);
verifiedIcon.setColorFilter(settings.getIconColor(), SRC_IN);
lockedIcon.setColorFilter(settings.getIconColor(), SRC_IN);
receiver_icon.setColorFilter(settings.getIconColor(), SRC_IN);

View File

@ -1,10 +1,11 @@
package org.nuclearfog.twidda.adapter.holder;
import android.view.View;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.database.GlobalSettings;
@ -15,17 +16,21 @@ import org.nuclearfog.twidda.database.GlobalSettings;
* @author nuclearfog
* @see org.nuclearfog.twidda.adapter.TrendAdapter
*/
public class TrendHolder extends RecyclerView.ViewHolder {
public class TrendHolder extends ViewHolder {
public final TextView[] textViews = new TextView[3];
public TrendHolder(View v, GlobalSettings settings) {
super(v);
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);
/**
* @param parent Parent view from adapter
*/
public TrendHolder(ViewGroup parent) {
super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_trend, parent, false));
CardView background = (CardView) itemView;
textViews[0] = itemView.findViewById(R.id.trendpos);
textViews[1] = itemView.findViewById(R.id.trendname);
textViews[2] = itemView.findViewById(R.id.trendvol);
GlobalSettings settings = GlobalSettings.getInstance(parent.getContext());
background.setCardBackgroundColor(settings.getCardColor());
for (TextView tv : textViews) {
tv.setTextColor(settings.getFontColor());

View File

@ -1,12 +1,12 @@
package org.nuclearfog.twidda.adapter.holder;
import android.view.View;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.database.GlobalSettings;
@ -19,37 +19,42 @@ import static android.graphics.PorterDuff.Mode.SRC_IN;
* @author nuclearfog
* @see org.nuclearfog.twidda.adapter.TweetAdapter
*/
public class TweetHolder extends RecyclerView.ViewHolder {
public class TweetHolder extends ViewHolder {
public final TextView[] textViews = new TextView[7];
public final ImageView profile, rtUser, verifiedIcon, lockedIcon, rtIcon, favIcon;
public TweetHolder(@NonNull View v, GlobalSettings settings) {
super(v);
CardView background = (CardView) v;
profile = v.findViewById(R.id.tweetPb);
verifiedIcon = v.findViewById(R.id.verified_icon);
lockedIcon = v.findViewById(R.id.locked_icon);
rtUser = v.findViewById(R.id.rt_user_icon);
rtIcon = v.findViewById(R.id.rt_icon);
favIcon = v.findViewById(R.id.fav_icon);
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);
/**
* @param parent Parent view from adapter
*/
public TweetHolder(ViewGroup parent) {
super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_tweet, parent, false));
CardView background = (CardView) itemView;
profile = itemView.findViewById(R.id.tweetPb);
verifiedIcon = itemView.findViewById(R.id.verified_icon);
lockedIcon = itemView.findViewById(R.id.locked_icon);
rtUser = itemView.findViewById(R.id.rt_user_icon);
rtIcon = itemView.findViewById(R.id.rt_icon);
favIcon = itemView.findViewById(R.id.fav_icon);
textViews[0] = itemView.findViewById(R.id.username);
textViews[1] = itemView.findViewById(R.id.screenname);
textViews[2] = itemView.findViewById(R.id.tweettext);
textViews[3] = itemView.findViewById(R.id.retweet_number);
textViews[4] = itemView.findViewById(R.id.favorite_number);
textViews[5] = itemView.findViewById(R.id.retweeter);
textViews[6] = itemView.findViewById(R.id.time);
verifiedIcon.setImageResource(R.drawable.verify);
lockedIcon.setImageResource(R.drawable.lock);
rtUser.setImageResource(R.drawable.retweet);
rtIcon.setImageResource(R.drawable.retweet);
favIcon.setImageResource(R.drawable.favorite);
GlobalSettings settings = GlobalSettings.getInstance(parent.getContext());
verifiedIcon.setColorFilter(settings.getIconColor(), SRC_IN);
lockedIcon.setColorFilter(settings.getIconColor(), SRC_IN);
rtUser.setColorFilter(settings.getIconColor(), SRC_IN);
background.setCardBackgroundColor(settings.getCardColor());
for (TextView tv : textViews) {
tv.setTextColor(settings.getFontColor());
tv.setTypeface(settings.getTypeFace());

View File

@ -1,12 +1,13 @@
package org.nuclearfog.twidda.adapter.holder;
import android.view.View;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.RecyclerView.ViewHolder;
import org.nuclearfog.twidda.R;
import org.nuclearfog.twidda.backend.utils.AppStyles;
@ -20,25 +21,28 @@ import static android.graphics.PorterDuff.Mode.SRC_IN;
* @author nuclearfog
* @see org.nuclearfog.twidda.adapter.UserAdapter
*/
public class UserHolder extends RecyclerView.ViewHolder {
public class UserHolder extends ViewHolder {
public final TextView[] textViews = new TextView[4];
public final ImageView profileImg, verifyIcon, lockedIcon;
public final ImageButton delete;
public UserHolder(View v, GlobalSettings settings) {
super(v);
CardView background = (CardView) v;
ImageView followingIcon = v.findViewById(R.id.following_icon);
ImageView followerIcon = v.findViewById(R.id.follower_icon);
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);
verifyIcon = v.findViewById(R.id.useritem_verified);
lockedIcon = v.findViewById(R.id.useritem_locked);
delete = v.findViewById(R.id.useritem_del_user);
/**
* @param parent Parent view from adapter
*/
public UserHolder(ViewGroup parent) {
super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_user, parent, false));
CardView background = (CardView) itemView;
ImageView followingIcon = itemView.findViewById(R.id.following_icon);
ImageView followerIcon = itemView.findViewById(R.id.follower_icon);
textViews[0] = itemView.findViewById(R.id.username_detail);
textViews[1] = itemView.findViewById(R.id.screenname_detail);
textViews[2] = itemView.findViewById(R.id.item_user_friends);
textViews[3] = itemView.findViewById(R.id.item_user_follower);
profileImg = itemView.findViewById(R.id.user_profileimg);
verifyIcon = itemView.findViewById(R.id.useritem_verified);
lockedIcon = itemView.findViewById(R.id.useritem_locked);
delete = itemView.findViewById(R.id.useritem_del_user);
followerIcon.setImageResource(R.drawable.follower);
followingIcon.setImageResource(R.drawable.following);
@ -46,13 +50,13 @@ public class UserHolder extends RecyclerView.ViewHolder {
lockedIcon.setImageResource(R.drawable.lock);
delete.setImageResource(R.drawable.cross);
GlobalSettings settings = GlobalSettings.getInstance(parent.getContext());
background.setCardBackgroundColor(settings.getCardColor());
followerIcon.setColorFilter(settings.getIconColor(), SRC_IN);
followingIcon.setColorFilter(settings.getIconColor(), SRC_IN);
verifyIcon.setColorFilter(settings.getIconColor(), SRC_IN);
lockedIcon.setColorFilter(settings.getIconColor(), SRC_IN);
delete.setColorFilter(settings.getIconColor(), SRC_IN);
AppStyles.setButtonColor(delete, settings.getFontColor());
for (TextView tv : textViews) {
tv.setTextColor(settings.getFontColor());

View File

@ -141,7 +141,7 @@ public class GlobalSettings {
*/
public static GlobalSettings getInstance(@NonNull Context context) {
if (ourInstance.settings == null) {
ourInstance.settings = context.getSharedPreferences(APP_SETTINGS, MODE_PRIVATE);
ourInstance.settings = context.getApplicationContext().getSharedPreferences(APP_SETTINGS, MODE_PRIVATE);
ourInstance.initialize();
}
return ourInstance;

View File

@ -59,7 +59,7 @@ public class TrendFragment extends ListFragment implements TrendClickListener {
@Override
protected TrendAdapter initAdapter() {
adapter = new TrendAdapter(settings, this);
adapter = new TrendAdapter(this);
return adapter;
}