Merge remote-tracking branch 'megalodon_main/main'
# Conflicts: # mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java # mastodon/src/main/java/org/joinmastodon/android/ui/viewcontrollers/ComposePollViewController.java # metadata/uk/changelogs/56.txt
This commit is contained in:
@@ -566,7 +566,8 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
|
||||
follow.setIcon(following ? R.drawable.ic_fluent_person_delete_24_regular : R.drawable.ic_fluent_person_add_24_regular);
|
||||
manageUserLists.setVisible(relationship != null && relationship.following);
|
||||
manageUserLists.setTitle(item.parentFragment.getString(R.string.sk_lists_with_user, username));
|
||||
UiUtils.insetPopupMenuIcon(item.parentFragment.getContext(), follow);
|
||||
// ic_fluent_person_add_24_regular actually has a width of 25dp -.-
|
||||
UiUtils.insetPopupMenuIcon(item.parentFragment.getContext(), follow, following ? 0 : V.dp(-1));
|
||||
}
|
||||
|
||||
workaroundChangingMenuItemWidths(menu, username);
|
||||
|
||||
@@ -6,6 +6,7 @@ import static org.joinmastodon.android.ui.utils.UiUtils.generateFormattedString;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.graphics.drawable.Animatable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableStringBuilder;
|
||||
@@ -143,6 +144,8 @@ public class NotificationHeaderStatusDisplayItem extends StatusDisplayItem{
|
||||
item.emojiHelper.setImageDrawable(index-1, image);
|
||||
text.invalidate();
|
||||
}
|
||||
if(image instanceof Animatable)
|
||||
((Animatable) image).start();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -814,8 +814,8 @@ public class UiUtils {
|
||||
button.setText(relationship.followedBy ? R.string.follow_back : R.string.button_follow);
|
||||
styleRes=R.style.Widget_Mastodon_M3_Button_Filled;
|
||||
}else{
|
||||
button.setText(R.string.button_following);
|
||||
styleRes=R.style.Widget_Mastodon_M3_Button_Tonal;
|
||||
button.setText(relationship.followedBy ? R.string.sk_button_mutuals : R.string.button_following);
|
||||
styleRes=relationship.followedBy ? R.style.Widget_Mastodon_M3_Button_Tonal_Outlined : R.style.Widget_Mastodon_M3_Button_Tonal;
|
||||
}
|
||||
|
||||
TypedArray ta=button.getContext().obtainStyledAttributes(styleRes, new int[]{android.R.attr.background});
|
||||
@@ -941,17 +941,26 @@ public class UiUtils {
|
||||
}
|
||||
|
||||
public static void insetPopupMenuIcon(Context context, MenuItem item) {
|
||||
ColorStateList iconTint = ColorStateList.valueOf(UiUtils.getThemeColor(context, android.R.attr.textColorSecondary));
|
||||
insetPopupMenuIcon(item, iconTint);
|
||||
insetPopupMenuIcon(context, item, 0);
|
||||
}
|
||||
|
||||
public static void insetPopupMenuIcon(MenuItem item, ColorStateList iconTint) {
|
||||
Drawable icon = item.getIcon().mutate();
|
||||
if (Build.VERSION.SDK_INT >= 26) item.setIconTintList(iconTint);
|
||||
public static void insetPopupMenuIcon(Context context, MenuItem item, int addWidth) {
|
||||
ColorStateList iconTint = ColorStateList.valueOf(UiUtils.getThemeColor(context, android.R.attr.textColorSecondary));
|
||||
insetPopupMenuIcon(item, iconTint, addWidth);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param addWidth set if icon is too wide/narrow. if icon is 25dp in width, set to -1dp
|
||||
*/
|
||||
public static void insetPopupMenuIcon(MenuItem item, ColorStateList iconTint, int addWidth) {
|
||||
Drawable icon=item.getIcon().mutate();
|
||||
if(Build.VERSION.SDK_INT>=26) item.setIconTintList(iconTint);
|
||||
else icon.setTintList(iconTint);
|
||||
icon = new InsetDrawable(icon, V.dp(8), 0, V.dp(8), 0);
|
||||
int pad=V.dp(8);
|
||||
boolean rtl=icon.getLayoutDirection()==View.LAYOUT_DIRECTION_RTL;
|
||||
icon=new InsetDrawable(icon, rtl ? pad+addWidth : pad, 0, rtl ? pad : addWidth+pad, 0);
|
||||
item.setIcon(icon);
|
||||
SpannableStringBuilder ssb = new SpannableStringBuilder(item.getTitle());
|
||||
SpannableStringBuilder ssb = new SpannableStringBuilder(item.getTitle());
|
||||
item.setTitle(ssb);
|
||||
}
|
||||
|
||||
@@ -985,7 +994,7 @@ public class UiUtils {
|
||||
if (subMenu != null) enableMenuIcons(context, subMenu, exclude);
|
||||
if (item.getIcon() == null || Arrays.stream(exclude).anyMatch(id -> id == item.getItemId()))
|
||||
continue;
|
||||
insetPopupMenuIcon(item, iconTint);
|
||||
insetPopupMenuIcon(item, iconTint, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -134,7 +134,9 @@ public class ComposePollViewController{
|
||||
DraftPollOption opt=createDraftPollOption(false);
|
||||
opt.edit.setText(eopt.title);
|
||||
}
|
||||
if(fragment.editingStatus.poll.expiresAt!=null)
|
||||
if(fragment.scheduledStatus!=null && fragment.scheduledStatus.params.poll!=null)
|
||||
pollDuration=Integer.parseInt(fragment.scheduledStatus.params.poll.expiresIn);
|
||||
else if(fragment.editingStatus.poll.expiresAt!=null)
|
||||
pollDuration=(int)fragment.editingStatus.poll.expiresAt.minus(fragment.editingStatus.createdAt.toEpochMilli(), ChronoUnit.MILLIS).getEpochSecond();
|
||||
updatePollOptionHints();
|
||||
pollDurationValue.setText(UiUtils.formatDuration(fragment.getContext(), pollDuration));
|
||||
|
||||
Reference in New Issue
Block a user