bug fix, layout fix for mastodon userlist

This commit is contained in:
nuclearfog 2022-12-26 11:07:55 +01:00
parent 513deead7b
commit 47dbcc266a
No known key found for this signature in database
GPG Key ID: 03488A185C476379
7 changed files with 42 additions and 35 deletions

View File

@ -98,7 +98,6 @@ public class FragmentAdapter extends FragmentStatePagerAdapter {
/** /**
* setup adapter for the home activity * setup adapter for the home activity
*
*/ */
public void setupForHomePage() { public void setupForHomePage() {
Bundle paramHomeTl = new Bundle(); Bundle paramHomeTl = new Bundle();

View File

@ -38,14 +38,14 @@ public class UserlistHolder extends ViewHolder implements OnClickListener {
private static final NumberFormat NUM_FORMAT = NumberFormat.getIntegerInstance(); private static final NumberFormat NUM_FORMAT = NumberFormat.getIntegerInstance();
private ImageView profileImage, userVerified, userLocked, privateIcon, followIcon, dateIcon, memberIcon, subscriberIcon; private ImageView profileImage, userVerified, userLocked, privateIcon, followIcon;
private TextView title, description, username, screenname, date, member, subscriber, followList; private TextView title, description, username, screenname, date, member, subscriber, followList;
private GlobalSettings settings;
private Picasso picasso; private Picasso picasso;
private OnHolderClickListener listener; private OnHolderClickListener listener;
private boolean enableExtras, enableImages;
/** /**
* @param parent Parent view from adapter * @param parent Parent view from adapter
*/ */
@ -53,14 +53,14 @@ public class UserlistHolder extends ViewHolder implements OnClickListener {
super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false)); super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list, parent, false));
CardView background = (CardView) itemView; CardView background = (CardView) itemView;
ViewGroup container = itemView.findViewById(R.id.item_list_container); ViewGroup container = itemView.findViewById(R.id.item_list_container);
View dateIcon = itemView.findViewById(R.id.item_list_date_icon);
View memberIcon = itemView.findViewById(R.id.item_list_member_icon);
View subscriberIcon = itemView.findViewById(R.id.item_list_subscriber_icon);
profileImage = itemView.findViewById(R.id.item_list_profile); profileImage = itemView.findViewById(R.id.item_list_profile);
userVerified = itemView.findViewById(R.id.item_list_user_verified); userVerified = itemView.findViewById(R.id.item_list_user_verified);
userLocked = itemView.findViewById(R.id.item_list_user_locked); userLocked = itemView.findViewById(R.id.item_list_user_locked);
privateIcon = itemView.findViewById(R.id.item_list_private); privateIcon = itemView.findViewById(R.id.item_list_private);
followIcon = itemView.findViewById(R.id.item_list_follow_icon); followIcon = itemView.findViewById(R.id.item_list_follow_icon);
dateIcon = itemView.findViewById(R.id.item_list_date_icon);
memberIcon = itemView.findViewById(R.id.item_list_member_icon);
subscriberIcon = itemView.findViewById(R.id.item_list_subscriber_icon);
title = itemView.findViewById(R.id.item_list_title); title = itemView.findViewById(R.id.item_list_title);
description = itemView.findViewById(R.id.item_list_description); description = itemView.findViewById(R.id.item_list_description);
username = itemView.findViewById(R.id.item_list_username); username = itemView.findViewById(R.id.item_list_username);
@ -69,14 +69,29 @@ public class UserlistHolder extends ViewHolder implements OnClickListener {
member = itemView.findViewById(R.id.item_list_member); member = itemView.findViewById(R.id.item_list_member);
subscriber = itemView.findViewById(R.id.item_list_subscriber); subscriber = itemView.findViewById(R.id.item_list_subscriber);
followList = itemView.findViewById(R.id.item_list_following_indicator); followList = itemView.findViewById(R.id.item_list_following_indicator);
this.settings = settings;
this.picasso = picasso;
this.listener = listener;
enableExtras = settings.getLogin().getApiType() == Account.API_TWITTER;
enableImages = settings.imagesEnabled();
if (!enableExtras) {
// disable extra views
date.setVisibility(View.GONE);
dateIcon.setVisibility(View.GONE);
member.setVisibility(View.GONE);
subscriber.setVisibility(View.GONE);
description.setVisibility(View.GONE);
memberIcon.setVisibility(View.GONE);
subscriberIcon.setVisibility(View.GONE);
// add title icon
privateIcon.setImageResource(R.drawable.list);
}
AppStyles.setTheme(container, Color.TRANSPARENT); AppStyles.setTheme(container, Color.TRANSPARENT);
background.setCardBackgroundColor(settings.getCardColor()); background.setCardBackgroundColor(settings.getCardColor());
itemView.setOnClickListener(this); itemView.setOnClickListener(this);
profileImage.setOnClickListener(this); profileImage.setOnClickListener(this);
this.picasso = picasso;
this.listener = listener;
} }
@ -98,24 +113,17 @@ public class UserlistHolder extends ViewHolder implements OnClickListener {
public void setContent(UserList userlist) { public void setContent(UserList userlist) {
User owner = userlist.getListOwner(); User owner = userlist.getListOwner();
title.setText(userlist.getTitle()); title.setText(userlist.getTitle());
if (enableExtras) {
description.setText(userlist.getDescription()); description.setText(userlist.getDescription());
if (settings.getLogin().getApiType() == Account.API_TWITTER) {
date.setText(StringTools.formatCreationTime(itemView.getResources(), userlist.getTimestamp())); date.setText(StringTools.formatCreationTime(itemView.getResources(), userlist.getTimestamp()));
member.setText(NUM_FORMAT.format(userlist.getMemberCount())); member.setText(NUM_FORMAT.format(userlist.getMemberCount()));
subscriber.setText(NUM_FORMAT.format(userlist.getSubscriberCount())); subscriber.setText(NUM_FORMAT.format(userlist.getSubscriberCount()));
} else {
date.setVisibility(View.GONE);
dateIcon.setVisibility(View.GONE);
member.setVisibility(View.GONE);
subscriber.setVisibility(View.GONE);
memberIcon.setVisibility(View.GONE);
subscriberIcon.setVisibility(View.GONE);
} }
if (owner != null) { if (owner != null) {
username.setText(owner.getUsername()); username.setText(owner.getUsername());
screenname.setText(owner.getScreenname()); screenname.setText(owner.getScreenname());
String profileImageUrl = owner.getProfileImageThumbnailUrl(); String profileImageUrl = owner.getProfileImageThumbnailUrl();
if (settings.imagesEnabled() && !profileImageUrl.isEmpty()) { if (enableImages && !profileImageUrl.isEmpty()) {
Transformation roundCorner = new RoundedCornersTransformation(3, 0); Transformation roundCorner = new RoundedCornersTransformation(3, 0);
picasso.load(profileImageUrl).transform(roundCorner).error(R.drawable.no_image).into(profileImage); picasso.load(profileImageUrl).transform(roundCorner).error(R.drawable.no_image).into(profileImage);
} else { } else {
@ -147,7 +155,7 @@ public class UserlistHolder extends ViewHolder implements OnClickListener {
username.setVisibility(View.GONE); username.setVisibility(View.GONE);
screenname.setVisibility(View.GONE); screenname.setVisibility(View.GONE);
} }
if (userlist.isPrivate()) { if (userlist.isPrivate() || !enableExtras) {
privateIcon.setVisibility(View.VISIBLE); privateIcon.setVisibility(View.VISIBLE);
} else { } else {
privateIcon.setVisibility(View.GONE); privateIcon.setVisibility(View.GONE);

View File

@ -42,7 +42,7 @@ public class MastodonException extends ConnectionException {
/** /**
* *
*/ */
public MastodonException(Exception e) { MastodonException(Exception e) {
super(e); super(e);
if (e instanceof UnknownHostException) { if (e instanceof UnknownHostException) {
errorCode = ERROR_NETWORK; errorCode = ERROR_NETWORK;
@ -52,7 +52,7 @@ public class MastodonException extends ConnectionException {
/** /**
* @param response response containing error information * @param response response containing error information
*/ */
public MastodonException(Response response) { MastodonException(Response response) {
super(response.message()); super(response.message());
errorCode = response.code(); errorCode = response.code();
ResponseBody body = response.body(); ResponseBody body = response.body();
@ -75,7 +75,7 @@ public class MastodonException extends ConnectionException {
/** /**
* @param message error message * @param message error message
*/ */
public MastodonException(String message) { MastodonException(String message) {
super(message); super(message);
errorMessage = message; errorMessage = message;
} }