diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/FollowRequestsListFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/FollowRequestsListFragment.java index d5cdf7cc3..87e9d28d8 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/FollowRequestsListFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/FollowRequestsListFragment.java @@ -201,7 +201,7 @@ public class FollowRequestsListFragment extends MastodonRecyclerFragment implements ImageLoaderViewHolder, UsableRecyclerView.Clickable{ + private class AccountViewHolder extends BindableViewHolder implements ImageLoaderViewHolder, UsableRecyclerView.DisableableClickable{ private final ImageView cover, avatar; private final TextView name, username, bio, followersCount, followingCount, postsCount, followersLabel, followingLabel, postsLabel; private final ProgressBarButton actionButton, acceptButton, rejectButton; @@ -233,15 +233,24 @@ public class FollowRequestsListFragment extends MastodonRecyclerFragmentthis.onClick()); + } + + @Override + public boolean isEnabled(){ + return false; } @Override @@ -254,26 +263,23 @@ public class FollowRequestsListFragment extends MastodonRecyclerFragment implements ImageLoaderViewHolder, UsableRecyclerView.Clickable{ + private class AccountViewHolder extends BindableViewHolder implements ImageLoaderViewHolder, UsableRecyclerView.DisableableClickable{ private final ImageView cover, avatar; private final TextView name, username, bio, followersCount, followingCount, postsCount, followersLabel, followingLabel, postsLabel; private final ProgressBarButton actionButton; @@ -223,13 +223,22 @@ public class DiscoverAccountsFragment extends MastodonRecyclerFragmentthis.onClick()); + } + + @Override + public boolean isEnabled(){ + return false; } @Override @@ -242,12 +251,14 @@ public class DiscoverAccountsFragment extends MastodonRecyclerFragmentonClick()); + } + + @Override + public boolean isEnabled(){ + return false; } @Override @@ -132,18 +141,19 @@ public class AccountCardStatusDisplayItem extends StatusDisplayItem{ postsCount.setText(UiUtils.abbreviateNumber(item.account.statusesCount)); followersLabel.setText(item.parentFragment.getResources().getQuantityString(R.plurals.followers, (int)Math.min(999, item.account.followersCount))); followingLabel.setText(item.parentFragment.getResources().getQuantityString(R.plurals.following, (int)Math.min(999, item.account.followingCount))); - postsLabel.setText(item.parentFragment.getResources().getQuantityString(R.plurals.x_posts, (int)(item.account.statusesCount%1000), item.account.statusesCount)); + postsLabel.setText(item.parentFragment.getResources().getQuantityString(R.plurals.sk_posts_count_label, (int)(item.account.statusesCount%1000), item.account.statusesCount)); followersCount.setVisibility(item.account.followersCount < 0 ? View.GONE : View.VISIBLE); followersLabel.setVisibility(item.account.followersCount < 0 ? View.GONE : View.VISIBLE); followingCount.setVisibility(item.account.followingCount < 0 ? View.GONE : View.VISIBLE); followingLabel.setVisibility(item.account.followingCount < 0 ? View.GONE : View.VISIBLE); relationship=item.parentFragment.getRelationship(item.account.id); - if(item.notification.type == Notification.Type.FOLLOW_REQUEST && (relationship == null || !relationship.followedBy)){ + UiUtils.setExtraTextInfo(item.parentFragment.getContext(), null, findViewById(R.id.pronouns), true, false, false, item.account); + + if(item.notification.type==Notification.Type.FOLLOW_REQUEST && (relationship==null || !relationship.followedBy)){ actionWrap.setVisibility(View.GONE); acceptWrap.setVisibility(View.VISIBLE); rejectWrap.setVisibility(View.VISIBLE); - // i hate that i wasn't able to do this in xml acceptButton.setCompoundDrawableTintList(acceptButton.getTextColors()); acceptProgress.setIndeterminateTintList(acceptButton.getTextColors()); rejectButton.setCompoundDrawableTintList(rejectButton.getTextColors()); @@ -163,7 +173,7 @@ public class AccountCardStatusDisplayItem extends StatusDisplayItem{ private void onFollowRequestButtonClick(View v) { itemView.setHasTransientState(true); UiUtils.handleFollowRequest((Activity) v.getContext(), item.account, item.parentFragment.getAccountID(), null, v == acceptButton, relationship, rel -> { - if(v.getContext()==null) return; + if(v.getContext()==null || rel==null) return; itemView.setHasTransientState(false); item.parentFragment.putRelationship(item.account.id, rel); RecyclerView.Adapter adapter = getBindingAdapter(); diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/InsetStatusItemDecoration.java b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/InsetStatusItemDecoration.java index 7fd28344c..1c1e77ae6 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/InsetStatusItemDecoration.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/InsetStatusItemDecoration.java @@ -8,8 +8,6 @@ import android.view.View; import org.joinmastodon.android.R; import org.joinmastodon.android.fragments.BaseStatusListFragment; -import org.joinmastodon.android.ui.displayitems.LinkCardStatusDisplayItem; -import org.joinmastodon.android.ui.displayitems.MediaGridStatusDisplayItem; import org.joinmastodon.android.ui.displayitems.StatusDisplayItem; import java.util.List; @@ -89,10 +87,10 @@ public class InsetStatusItemDecoration extends RecyclerView.ItemDecoration{ pad=V.dp(16); // else // pad=V.dp(12); - boolean insetLeft=true, insetRight=true; - if(insetLeft) + boolean insetPadding=((StatusDisplayItem.Holder) holder).getItem().insetPadding; + if(insetPadding) outRect.left=pad; - if(insetRight) + if(insetPadding) outRect.right=pad; // had to comment this out because animations with offsets aren't handled properly. diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java index 96e3fe390..bc508e2d0 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java @@ -1073,8 +1073,8 @@ public class UiUtils { return back; } - public static boolean setExtraTextInfo(Context ctx, TextView extraText, TextView pronouns, boolean displayPronouns, boolean mentionedOnly, boolean localOnly, @Nullable Account account) { - List extraParts = new ArrayList<>(); + public static boolean setExtraTextInfo(Context ctx, @Nullable TextView extraText, @Nullable TextView pronouns, boolean displayPronouns, boolean mentionedOnly, boolean localOnly, @Nullable Account account) { + List extraParts = extraText!=null && (localOnly || mentionedOnly) ? new ArrayList<>() : null; Optional p=pronouns==null || !displayPronouns ? Optional.empty() : extractPronouns(ctx, account); if(p.isPresent()) { HtmlParser.setTextWithCustomEmoji(pronouns, p.get(), account.emojis); @@ -1086,7 +1086,7 @@ public class UiUtils { extraParts.add(ctx.getString(R.string.sk_inline_local_only)); if(mentionedOnly) extraParts.add(ctx.getString(R.string.sk_inline_direct)); - if(!extraParts.isEmpty()) { + if(extraText!=null && extraParts!=null && !extraParts.isEmpty()) { String sepp = ctx.getString(R.string.sk_separator); String text = String.join(" " + sepp + " ", extraParts); if(account == null) extraText.setText(text); @@ -1094,7 +1094,7 @@ public class UiUtils { extraText.setVisibility(View.VISIBLE); return true; }else{ - extraText.setVisibility(View.GONE); + if(extraText!=null) extraText.setVisibility(View.GONE); return false; } } diff --git a/mastodon/src/main/res/drawable/bg_filled_card.xml b/mastodon/src/main/res/drawable/bg_filled_card.xml new file mode 100644 index 000000000..9a2aedab1 --- /dev/null +++ b/mastodon/src/main/res/drawable/bg_filled_card.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mastodon/src/main/res/drawable/profile_ava_bg.xml b/mastodon/src/main/res/drawable/profile_ava_bg.xml deleted file mode 100644 index a8ae1c611..000000000 --- a/mastodon/src/main/res/drawable/profile_ava_bg.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/mastodon/src/main/res/layout/item_discover_account.xml b/mastodon/src/main/res/layout/item_discover_account.xml index abb31b5b0..75762cdea 100644 --- a/mastodon/src/main/res/layout/item_discover_account.xml +++ b/mastodon/src/main/res/layout/item_discover_account.xml @@ -3,74 +3,114 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="?colorM3SurfaceVariant" - android:elevation="2dp" - android:paddingBottom="0dp"> + android:background="@drawable/bg_filled_card"> - + android:layout_marginTop="-12dp" + android:layout_marginStart="13dp" + android:layout_marginEnd="12dp"> - + - + + + + + + android:layout_above="@+id/username"> + + + + + + + + @android:color/system_neutral2_100 @android:color/system_neutral2_50 @android:color/system_neutral2_50 - @android:color/system_neutral2_10 + @android:color/system_neutral2_10 @android:color/system_accent2_10 @android:color/system_accent2_50 diff --git a/mastodon/src/main/res/values/attrs.xml b/mastodon/src/main/res/values/attrs.xml index 5cfd12712..9a030c3a9 100644 --- a/mastodon/src/main/res/values/attrs.xml +++ b/mastodon/src/main/res/values/attrs.xml @@ -35,6 +35,7 @@ + diff --git a/mastodon/src/main/res/values/colors.xml b/mastodon/src/main/res/values/colors.xml index a9836e7b8..234fa1927 100644 --- a/mastodon/src/main/res/values/colors.xml +++ b/mastodon/src/main/res/values/colors.xml @@ -125,7 +125,7 @@ @color/gray_100 @color/gray_50t @color/gray_50 - @color/gray_25 + @color/gray_25 @color/primary_25 @color/primary_50 diff --git a/mastodon/src/main/res/values/palettes.xml b/mastodon/src/main/res/values/palettes.xml index 8d485efd4..bdc5d716c 100644 --- a/mastodon/src/main/res/values/palettes.xml +++ b/mastodon/src/main/res/values/palettes.xml @@ -28,6 +28,7 @@