diff --git a/mastodon/src/main/java/org/joinmastodon/android/api/session/AccountLocalPreferences.java b/mastodon/src/main/java/org/joinmastodon/android/api/session/AccountLocalPreferences.java index eb2ffdebf..9f419f228 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/api/session/AccountLocalPreferences.java +++ b/mastodon/src/main/java/org/joinmastodon/android/api/session/AccountLocalPreferences.java @@ -142,7 +142,9 @@ public class AccountLocalPreferences{ BLUE, BROWN, RED, - YELLOW; + YELLOW, + NORD, + WHITE; public @StringRes int getName() { return switch(this){ @@ -154,6 +156,8 @@ public class AccountLocalPreferences{ case BROWN -> R.string.sk_color_palette_brown; case RED -> R.string.sk_color_palette_red; case YELLOW -> R.string.sk_color_palette_yellow; + case NORD -> R.string.mo_color_palette_nord; + case WHITE -> R.string.mo_color_palette_black_and_white; }; } } diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java index b3917c769..eb8536a33 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ProfileFragment.java @@ -138,7 +138,6 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList private ImageView avatar; private CoverImageView cover; private View avatarBorder; - private View usernameWrap; private TextView name, username, bio, followersCount, followersLabel, followingCount, followingLabel; private ImageView lockIcon, botIcon; private ProgressBarButton actionButton, notifyButton; diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsAboutAppFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsAboutAppFragment.java index 0bfd2b582..80c84ed4b 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsAboutAppFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsAboutAppFragment.java @@ -16,6 +16,7 @@ import org.joinmastodon.android.fragments.HasAccountID; import org.joinmastodon.android.model.viewmodel.ListItem; import org.joinmastodon.android.ui.utils.UiUtils; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -79,7 +80,7 @@ public class SettingsAboutAppFragment extends BaseSettingsFragment impleme } private void onClearRecentEmojisClick(){ - getLocalPrefs().recentEmojis=new HashMap<>(); + getLocalPrefs().recentCustomEmoji=new ArrayList<>(); getLocalPrefs().save(); Toast.makeText(getContext(), R.string.mo_recent_emoji_cleared, Toast.LENGTH_SHORT).show(); } diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsDisplayFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsDisplayFragment.java index 4fd7b3098..9ab227b73 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsDisplayFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsDisplayFragment.java @@ -109,10 +109,9 @@ public class SettingsDisplayFragment extends BaseSettingsFragment{ boolean restartPlease= GlobalUserPreferences.disableM3PillActiveIndicator!=disablePillItem.checked || GlobalUserPreferences.showNavigationLabels!=showNavigationLabelsItem.checked || - lp.likeIcon!=likeIconItem.checked; - GlobalUserPreferences.showNavigationLabels!=showNavigationLabelsItem.checked || GlobalUserPreferences.showMediaPreview !=showMediaPreviewItem.checked || - GlobalUserPreferences.showDividers!=showPostDividersItem.checked; + GlobalUserPreferences.showDividers!=showPostDividersItem.checked || + lp.likeIcon!=likeIconItem.checked; lp.revealCWs=revealCWsItem.checked; lp.hideSensitiveMedia=hideSensitiveMediaItem.checked; diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/EmojiReactionsStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/EmojiReactionsStatusDisplayItem.java index e360d803b..d874df595 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/EmojiReactionsStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/EmojiReactionsStatusDisplayItem.java @@ -179,7 +179,7 @@ public class EmojiReactionsStatusDisplayItem extends StatusDisplayItem { (Activity) item.parentFragment.getContext(), item.accountID, AccountSessionManager.getInstance().getCustomEmojis(session.domain), - session.domain, true, item.accountID); + session.domain, true); emojiKeyboard.setListener(this); space.setVisibility(View.GONE); root.addView(emojiKeyboard.getView()); diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java index ecb1741e9..621447f5a 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java @@ -65,7 +65,6 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{ private final TextView replies, boosts, favorites; private final View reply, boost, favorite, share, bookmark; private final ImageView favIcon; - private static final Animation opacityOut, opacityIn; private static AnimationSet animSet; @@ -124,6 +123,27 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{ share.setAccessibilityDelegate(buttonAccessibilityDelegate); } + private static final float ALPHA_PRESSED=0.55f; + + static { + AlphaAnimation opacityOut = new AlphaAnimation(1, ALPHA_PRESSED); + opacityOut.setDuration(300); + opacityOut.setInterpolator(CubicBezierInterpolator.DEFAULT); + opacityOut.setFillAfter(true); + AlphaAnimation opacityIn = new AlphaAnimation(ALPHA_PRESSED, 1); + opacityIn.setDuration(400); + opacityIn.setInterpolator(CubicBezierInterpolator.DEFAULT); + Animation spin = new RotateAnimation(0, 360, + Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, + 0.5f); + + animSet = new AnimationSet(true); + animSet.setInterpolator(CubicBezierInterpolator.DEFAULT); + animSet.addAnimation(spin); + animSet.addAnimation(opacityIn); + animSet.setDuration(400); + } + @Override public void onBind(FooterStatusDisplayItem item){ bindText(replies, item.status.repliesCount); @@ -200,7 +220,7 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{ UiUtils.lookupStatus(v.getContext(), item.status, item.accountID, null, status -> { - v.startAnimation(opacityIn); + UiUtils.opacityIn(v); Bundle args=new Bundle(); args.putString("account", item.accountID); args.putParcelable("replyTo", Parcels.wrap(status)); @@ -365,10 +385,10 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{ favorite.setSelected(!status.favourited); vibrateForAction(favorite, !status.favourited); AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setFavorited(status, !status.favourited, r->{ - if (status.favourited) { - v.startAnimation(GlobalUserPreferences.reduceMotion ? opacityIn : animSet); + if (status.favourited && !GlobalUserPreferences.reduceMotion) { + v.startAnimation(animSet); } else { - v.startAnimation(opacityIn); + UiUtils.opacityIn(v); } bindText(favorites, r.favouritesCount); }); @@ -379,10 +399,10 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{ favorite.setSelected(!item.status.favourited); vibrateForAction(favorite, !item.status.favourited); AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setFavorited(item.status, !item.status.favourited, r->{ - if (item.status.favourited) { - v.startAnimation(GlobalUserPreferences.reduceMotion ? opacityIn : animSet); + if (item.status.favourited && !GlobalUserPreferences.reduceMotion) { + v.startAnimation(animSet); } else { - v.startAnimation(opacityIn); + UiUtils.opacityIn(v); } bindText(favorites, r.favouritesCount); }); @@ -413,7 +433,7 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{ bookmark.setSelected(!status.bookmarked); vibrateForAction(bookmark, !status.bookmarked); AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setBookmarked(status, !status.bookmarked, r->{ - v.startAnimation(opacityIn); + UiUtils.opacityIn(v); }); } ); @@ -430,7 +450,7 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{ if (AccountSessionManager.getInstance().getLoggedInAccounts().size() < 2) return false; UiUtils.pickInteractAs(v.getContext(), item.accountID, item.status, - s -> s.bookmarked,w + s -> s.bookmarked, (ic, status, consumer) -> ic.setBookmarked(status, true, consumer), R.string.sk_bookmark_as, R.string.sk_bookmarked_as, diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/NotificationHeaderStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/NotificationHeaderStatusDisplayItem.java index 6586ea103..dff55373f 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/NotificationHeaderStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/NotificationHeaderStatusDisplayItem.java @@ -117,7 +117,6 @@ public class NotificationHeaderStatusDisplayItem extends StatusDisplayItem{ public static class Holder extends StatusDisplayItem.Holder implements ImageLoaderViewHolder{ private final ImageView icon, avatar, deleteNotification; private final TextView text, timestamp; - private final int selectableItemBackground; public Holder(Activity activity, ViewGroup parent){ super(activity, R.layout.display_item_notification_header, parent); diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java index 9c7188c3e..0ddf6a9b9 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java @@ -278,14 +278,14 @@ public abstract class StatusDisplayItem{ contentItems.add(new AudioStatusDisplayItem(parentID, fragment, statusForContent, att)); } if(att.type==Attachment.Type.UNKNOWN){ - contentItems.add(new FileStatusDisplayItem(parentID, fragment, att)); + contentItems.add(new FileStatusDisplayItem(parentID, fragment, att, statusForContent)); } } if(statusForContent.poll!=null){ - buildPollItems(parentID, fragment, statusForContent.poll, contentItems); + buildPollItems(parentID, fragment, statusForContent.poll, contentItems, statusForContent); } if(statusForContent.card!=null && statusForContent.mediaAttachments.isEmpty()){ - contentItems.add(new LinkCardStatusDisplayItem(parentID, fragment, statusForContent)); + contentItems.add(new LinkCardStatusDisplayItem(parentID, fragment, statusForContent, (flags & FLAG_NO_MEDIA_PREVIEW)==0)); } if(contentItems!=items && statusForContent.spoilerRevealed){ items.addAll(contentItems); diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/ColorPalette.java b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/ColorPalette.java index 3b5562f01..dca5ad8ed 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/ColorPalette.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/ColorPalette.java @@ -25,7 +25,7 @@ public class ColorPalette { BLUE, new ColorPalette(R.style.ColorPalette_Blue), BROWN, new ColorPalette(R.style.ColorPalette_Brown), RED, new ColorPalette(R.style.ColorPalette_Red), - YELLOW, new ColorPalette(R.style.ColorPalette_Yellow) + YELLOW, new ColorPalette(R.style.ColorPalette_Yellow), NORD, new ColorPalette(R.style.ColorPalette_Nord), WHITE, new ColorPalette(R.style.ColorPalette_White) diff --git a/mastodon/src/main/res/values/palettes.xml b/mastodon/src/main/res/values/palettes.xml index 7c1cbbbe1..ae249ba3f 100644 --- a/mastodon/src/main/res/values/palettes.xml +++ b/mastodon/src/main/res/values/palettes.xml @@ -68,7 +68,7 @@ ?colorGray100 ?colorPrimary200 - @color/favorite_selected + @color/warning_500 @color/like_selected ?colorM3Primary @color/bookmark_selected