Update to 8.4.2

This commit is contained in:
xaxtix 2021-12-30 21:54:06 +03:00
parent 9e740dfd4d
commit c1c2ebaf46
15 changed files with 157 additions and 72 deletions

View File

@ -20,8 +20,8 @@ public class BuildVars {
public static boolean USE_CLOUD_STRINGS = true; public static boolean USE_CLOUD_STRINGS = true;
public static boolean CHECK_UPDATES = true; public static boolean CHECK_UPDATES = true;
public static boolean NO_SCOPED_STORAGE = Build.VERSION.SDK_INT <= 29; public static boolean NO_SCOPED_STORAGE = Build.VERSION.SDK_INT <= 29;
public static int BUILD_VERSION = 2522; public static int BUILD_VERSION = 2526;
public static String BUILD_VERSION_STRING = "8.4.1"; public static String BUILD_VERSION_STRING = "8.4.2";
public static int APP_ID = 4; public static int APP_ID = 4;
public static String APP_HASH = "014b35b6184100b085b0d0572f9b5103"; public static String APP_HASH = "014b35b6184100b085b0d0572f9b5103";

View File

@ -1766,13 +1766,13 @@ public class NotificationsController extends BaseController {
} else { } else {
if (messageObject.isMediaEmpty()) { if (messageObject.isMediaEmpty()) {
if (!TextUtils.isEmpty(messageObject.messageOwner.message)) { if (!TextUtils.isEmpty(messageObject.messageOwner.message)) {
return messageObject.messageOwner.message; return replaceSpoilers(messageObject);
} else { } else {
return LocaleController.getString("Message", R.string.Message); return LocaleController.getString("Message", R.string.Message);
} }
} else if (messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaPhoto) { } else if (messageObject.messageOwner.media instanceof TLRPC.TL_messageMediaPhoto) {
if (Build.VERSION.SDK_INT >= 19 && !TextUtils.isEmpty(messageObject.messageOwner.message)) { if (Build.VERSION.SDK_INT >= 19 && !TextUtils.isEmpty(messageObject.messageOwner.message)) {
return "\uD83D\uDDBC " + messageObject.messageOwner.message; return "\uD83D\uDDBC " + replaceSpoilers(messageObject);
} else if (messageObject.messageOwner.media.ttl_seconds != 0) { } else if (messageObject.messageOwner.media.ttl_seconds != 0) {
return LocaleController.getString("AttachDestructingPhoto", R.string.AttachDestructingPhoto); return LocaleController.getString("AttachDestructingPhoto", R.string.AttachDestructingPhoto);
} else { } else {
@ -1780,7 +1780,7 @@ public class NotificationsController extends BaseController {
} }
} else if (messageObject.isVideo()) { } else if (messageObject.isVideo()) {
if (Build.VERSION.SDK_INT >= 19 && !TextUtils.isEmpty(messageObject.messageOwner.message)) { if (Build.VERSION.SDK_INT >= 19 && !TextUtils.isEmpty(messageObject.messageOwner.message)) {
return "\uD83D\uDCF9 " + messageObject.messageOwner.message; return "\uD83D\uDCF9 " + replaceSpoilers(messageObject);
} else if (messageObject.messageOwner.media.ttl_seconds != 0) { } else if (messageObject.messageOwner.media.ttl_seconds != 0) {
return LocaleController.getString("AttachDestructingVideo", R.string.AttachDestructingVideo); return LocaleController.getString("AttachDestructingVideo", R.string.AttachDestructingVideo);
} else { } else {
@ -1816,19 +1816,19 @@ public class NotificationsController extends BaseController {
} }
} else if (messageObject.isGif()) { } else if (messageObject.isGif()) {
if (Build.VERSION.SDK_INT >= 19 && !TextUtils.isEmpty(messageObject.messageOwner.message)) { if (Build.VERSION.SDK_INT >= 19 && !TextUtils.isEmpty(messageObject.messageOwner.message)) {
return "\uD83C\uDFAC " + messageObject.messageOwner.message; return "\uD83C\uDFAC " + replaceSpoilers(messageObject);
} else { } else {
return LocaleController.getString("AttachGif", R.string.AttachGif); return LocaleController.getString("AttachGif", R.string.AttachGif);
} }
} else { } else {
if (Build.VERSION.SDK_INT >= 19 && !TextUtils.isEmpty(messageObject.messageOwner.message)) { if (Build.VERSION.SDK_INT >= 19 && !TextUtils.isEmpty(messageObject.messageOwner.message)) {
return "\uD83D\uDCCE " + messageObject.messageOwner.message; return "\uD83D\uDCCE " + replaceSpoilers(messageObject);
} else { } else {
return LocaleController.getString("AttachDocument", R.string.AttachDocument); return LocaleController.getString("AttachDocument", R.string.AttachDocument);
} }
} }
} else if (!TextUtils.isEmpty(messageObject.messageText)) { } else if (!TextUtils.isEmpty(messageObject.messageText)) {
return messageObject.messageText.toString(); return replaceSpoilers(messageObject);
} else { } else {
return LocaleController.getString("Message", R.string.Message); return LocaleController.getString("Message", R.string.Message);
} }

View File

@ -186,22 +186,18 @@ public class EmojiThemes {
return themeItem; return themeItem;
} }
public static EmojiThemes createHome() { public static EmojiThemes createHomeQrTheme() {
EmojiThemes themeItem = new EmojiThemes(); EmojiThemes themeItem = new EmojiThemes();
themeItem.emoji = "\uD83C\uDFE0"; themeItem.emoji = "\uD83C\uDFE0";
ThemeItem blue = new ThemeItem(); ThemeItem blue = new ThemeItem();
blue.themeInfo = getDefaultThemeInfo(false); blue.themeInfo = Theme.getTheme("Blue");
if (blue.themeInfo.getKey().equals("Blue")) { blue.accentId = 99;
blue.accentId = 99;
}
themeItem.items.add(blue); themeItem.items.add(blue);
ThemeItem nightBlue = new ThemeItem(); ThemeItem nightBlue = new ThemeItem();
nightBlue.themeInfo = getDefaultThemeInfo(true); nightBlue.themeInfo = Theme.getTheme("Dark Blue");
if (nightBlue.themeInfo.getKey().equals("Night")) { nightBlue.accentId = 0;
nightBlue.accentId = 0;
}
themeItem.items.add(nightBlue); themeItem.items.add(nightBlue);
return themeItem; return themeItem;

View File

@ -3679,6 +3679,8 @@ public class Theme {
public static final String key_chat_inReactionButtonBackground = "chat_inReactionButtonBackground"; public static final String key_chat_inReactionButtonBackground = "chat_inReactionButtonBackground";
public static final String key_chat_outReactionButtonText = "chat_outReactionButtonText"; public static final String key_chat_outReactionButtonText = "chat_outReactionButtonText";
public static final String key_chat_inReactionButtonText = "chat_inReactionButtonText"; public static final String key_chat_inReactionButtonText = "chat_inReactionButtonText";
public static final String key_chat_inReactionButtonTextSelected = "chat_inReactionButtonTextSelected";
public static final String key_chat_outReactionButtonTextSelected = "chat_outReactionButtonTextSelected";
public static final String key_drawable_botInline = "drawableBotInline"; public static final String key_drawable_botInline = "drawableBotInline";
@ -4537,8 +4539,10 @@ public class Theme {
defaultColors.put(key_chat_outReactionButtonBackground, 0xff78c272); defaultColors.put(key_chat_outReactionButtonBackground, 0xff78c272);
defaultColors.put(key_chat_inReactionButtonBackground, 0xff72b5e8); defaultColors.put(key_chat_inReactionButtonBackground, 0xff72b5e8);
defaultColors.put(key_chat_inReactionButtonText, 0xffffffff); defaultColors.put(key_chat_inReactionButtonText, 0xff3a8ccf);
defaultColors.put(key_chat_outReactionButtonText, 0xffffffff); defaultColors.put(key_chat_outReactionButtonText, 0xff55ab4f);
defaultColors.put(key_chat_inReactionButtonTextSelected, 0xffffffff);
defaultColors.put(key_chat_outReactionButtonTextSelected, 0xffffffff);
fallbackKeys.put(key_chat_inAdminText, key_chat_inTimeText); fallbackKeys.put(key_chat_inAdminText, key_chat_inTimeText);
@ -4680,6 +4684,8 @@ public class Theme {
fallbackKeys.put(key_chat_outReactionButtonBackground, key_chat_outLoader); fallbackKeys.put(key_chat_outReactionButtonBackground, key_chat_outLoader);
fallbackKeys.put(key_chat_inReactionButtonText, key_chat_inPreviewInstantText); fallbackKeys.put(key_chat_inReactionButtonText, key_chat_inPreviewInstantText);
fallbackKeys.put(key_chat_outReactionButtonText, key_chat_outPreviewInstantText); fallbackKeys.put(key_chat_outReactionButtonText, key_chat_outPreviewInstantText);
fallbackKeys.put(key_chat_inReactionButtonTextSelected, key_windowBackgroundWhite);
fallbackKeys.put(key_chat_outReactionButtonTextSelected, key_windowBackgroundWhite);
themeAccentExclusionKeys.addAll(Arrays.asList(keys_avatar_background)); themeAccentExclusionKeys.addAll(Arrays.asList(keys_avatar_background));
themeAccentExclusionKeys.addAll(Arrays.asList(keys_avatar_nameInMessage)); themeAccentExclusionKeys.addAll(Arrays.asList(keys_avatar_nameInMessage));
@ -5495,7 +5501,7 @@ public class Theme {
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH); int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
int minutes = calendar.get(Calendar.MINUTE); int minutes = calendar.get(Calendar.MINUTE);
int hour = calendar.get(Calendar.HOUR_OF_DAY); int hour = calendar.get(Calendar.HOUR_OF_DAY);
if (monthOfYear == 0 && dayOfMonth == 1 && minutes <= 10 && hour == 0) { if (monthOfYear == 0 && dayOfMonth == 1 && hour <= 23) {
canStartHolidayAnimation = true; canStartHolidayAnimation = true;
} else { } else {
canStartHolidayAnimation = false; canStartHolidayAnimation = false;

View File

@ -5285,10 +5285,11 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
} }
} }
if (!reactionsLayoutInBubble.isSmall && !reactionsLayoutInBubble.isEmpty) { if (!reactionsLayoutInBubble.isSmall && !reactionsLayoutInBubble.isEmpty) {
reactionsLayoutInBubble.positionOffsetY += AndroidUtilities.dp(12); // reactionsLayoutInBubble.positionOffsetY += AndroidUtilities.dp(12);
reactionsLayoutInBubble.totalHeight = reactionsLayoutInBubble.height + AndroidUtilities.dp(8); reactionsLayoutInBubble.totalHeight = reactionsLayoutInBubble.height + AndroidUtilities.dp(8);
measureTime(messageObject); measureTime(messageObject);
int timeLeft = backgroundWidth - reactionsLayoutInBubble.lastLineX - AndroidUtilities.dp(24); int timeLeft = backgroundWidth - reactionsLayoutInBubble.lastLineX - AndroidUtilities.dp(24);
if (timeLeft < timeWidth) { if (timeLeft < timeWidth) {
reactionsLayoutInBubble.totalHeight += AndroidUtilities.dp(12); reactionsLayoutInBubble.totalHeight += AndroidUtilities.dp(12);
reactionsLayoutInBubble.positionOffsetY -= AndroidUtilities.dp(12); reactionsLayoutInBubble.positionOffsetY -= AndroidUtilities.dp(12);
@ -8377,6 +8378,9 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
if (captionLayout != null) { if (captionLayout != null) {
reactionsLayoutInBubble.y -= AndroidUtilities.dp(14); reactionsLayoutInBubble.y -= AndroidUtilities.dp(14);
} }
if (!botButtons.isEmpty() && currentMessageObject.type == 9) {
reactionsLayoutInBubble.y += AndroidUtilities.dp(10);
}
reactionsLayoutInBubble.y = reactionsLayoutInBubble.y + reactionsLayoutInBubble.positionOffsetY; reactionsLayoutInBubble.y = reactionsLayoutInBubble.y + reactionsLayoutInBubble.positionOffsetY;
} }
if (reactionsLayoutInBubble.isSmall && !reactionsLayoutInBubble.isEmpty) { if (reactionsLayoutInBubble.isSmall && !reactionsLayoutInBubble.isEmpty) {
@ -10482,7 +10486,9 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
mess = mess.replace('\n', ' '); mess = mess.replace('\n', ' ');
stringFinalText = Emoji.replaceEmoji(mess, Theme.chat_replyTextPaint.getFontMetricsInt(), AndroidUtilities.dp(14), false); stringFinalText = Emoji.replaceEmoji(mess, Theme.chat_replyTextPaint.getFontMetricsInt(), AndroidUtilities.dp(14), false);
stringFinalText = TextUtils.ellipsize(stringFinalText, Theme.chat_replyTextPaint, maxWidth, TextUtils.TruncateAt.END); stringFinalText = TextUtils.ellipsize(stringFinalText, Theme.chat_replyTextPaint, maxWidth, TextUtils.TruncateAt.END);
MediaDataController.addTextStyleRuns(messageObject.replyMessageObject.messageOwner.entities, messageObject.replyMessageObject.caption, (Spannable) stringFinalText); if (stringFinalText instanceof Spannable) {
MediaDataController.addTextStyleRuns(messageObject.replyMessageObject.messageOwner.entities, messageObject.replyMessageObject.caption, (Spannable) stringFinalText);
}
} else if (messageObject.replyMessageObject.messageText != null && messageObject.replyMessageObject.messageText.length() > 0) { } else if (messageObject.replyMessageObject.messageText != null && messageObject.replyMessageObject.messageText.length() > 0) {
String mess = messageObject.replyMessageObject.messageText.toString(); String mess = messageObject.replyMessageObject.messageText.toString();
if (mess.length() > 150) { if (mess.length() > 150) {
@ -12498,7 +12504,6 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
} }
if (reactionsLayoutInBubble.isSmall) { if (reactionsLayoutInBubble.isSmall) {
Log.d("kek", transitionParams.shouldAnimateTimeX + " " + transitionParams.animateBackgroundBoundsInner + " " + transitionParams.animateFromTimeX + " " + this.timeX);
if (transitionParams.animateBackgroundBoundsInner && transitionParams.deltaRight != 0) { if (transitionParams.animateBackgroundBoundsInner && transitionParams.deltaRight != 0) {
timeTitleTimeX += reactionsLayoutInBubble.getCurrentWidth(1f); timeTitleTimeX += reactionsLayoutInBubble.getCurrentWidth(1f);
} else { } else {

View File

@ -83,6 +83,13 @@ public class TextDetailCell extends FrameLayout {
} else { } else {
imageView.setBackground(Theme.createSimpleSelectorCircleDrawable(AndroidUtilities.dp(48), Color.TRANSPARENT, Theme.getColor(Theme.key_listSelector))); imageView.setBackground(Theme.createSimpleSelectorCircleDrawable(AndroidUtilities.dp(48), Color.TRANSPARENT, Theme.getColor(Theme.key_listSelector)));
} }
int margin = AndroidUtilities.dp(23) + (drawable == null ? 0 : AndroidUtilities.dp(48));
if (LocaleController.isRTL) {
((MarginLayoutParams) textView.getLayoutParams()).leftMargin = margin;
} else {
((MarginLayoutParams) textView.getLayoutParams()).rightMargin = margin;
}
textView.requestLayout();
} }
public void setImageClickListener(View.OnClickListener clickListener) { public void setImageClickListener(View.OnClickListener clickListener) {

View File

@ -20904,10 +20904,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
} }
); );
cell.setOnClickListener(e -> { cell.setOnClickListener(e -> {
if (selectedObject == null || i >= options.size()) { if (selectedObject == null || i >= options.size() || getParentActivity() == null) {
return; return;
} }
TranslateAlert.showAlert(getParentActivity(), this, fromLang[0], toLang, finalMessageText, currentChat.noforwards); boolean noForwards = currentChat != null && currentChat.noforwards;
TranslateAlert.showAlert(getParentActivity(), this, fromLang[0], toLang, finalMessageText, noForwards);
scrimView = null; scrimView = null;
contentView.invalidate(); contentView.invalidate();
chatListView.invalidate(); chatListView.invalidate();
@ -20923,10 +20924,11 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
}, 250); }, 250);
} else { } else {
cell.setOnClickListener(e -> { cell.setOnClickListener(e -> {
if (selectedObject == null || i >= options.size()) { if (selectedObject == null || i >= options.size() || getParentActivity() == null) {
return; return;
} }
TranslateAlert.showAlert(getParentActivity(), this, "und", toLang, finalMessageText, currentChat.noforwards); boolean noForwards = currentChat != null && currentChat.noforwards;
TranslateAlert.showAlert(getParentActivity(), this, "und", toLang, finalMessageText, noForwards);
scrimView = null; scrimView = null;
contentView.invalidate(); contentView.invalidate();
chatListView.invalidate(); chatListView.invalidate();
@ -23847,6 +23849,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
@Override @Override
public void didPressReaction(ChatMessageCell cell, TLRPC.TL_reactionCount reaction, boolean longpress) { public void didPressReaction(ChatMessageCell cell, TLRPC.TL_reactionCount reaction, boolean longpress) {
if (getParentActivity() == null) {
return;
}
if (longpress) { if (longpress) {
if (!ChatObject.isChannelAndNotMegaGroup(currentChat)) { if (!ChatObject.isChannelAndNotMegaGroup(currentChat)) {
cell.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); cell.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
@ -26045,6 +26050,8 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_inReactionButtonBackground)); themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_inReactionButtonBackground));
themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_inReactionButtonText)); themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_inReactionButtonText));
themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_outReactionButtonText)); themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_outReactionButtonText));
themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_inReactionButtonTextSelected));
themeDescriptions.add(new ThemeDescription(null, 0, null, null, null, null, Theme.key_chat_inReactionButtonTextSelected));
if (chatActivityEnterView != null) { if (chatActivityEnterView != null) {
themeDescriptions.add(new ThemeDescription(chatActivityEnterView.botCommandsMenuContainer.listView, ThemeDescription.FLAG_TEXTCOLOR, new Class[]{BotCommandsMenuView.BotCommandView.class}, new String[]{"description"}, null, null, null, Theme.key_windowBackgroundWhiteBlackText)); themeDescriptions.add(new ThemeDescription(chatActivityEnterView.botCommandsMenuContainer.listView, ThemeDescription.FLAG_TEXTCOLOR, new Class[]{BotCommandsMenuView.BotCommandView.class}, new String[]{"description"}, null, null, null, Theme.key_windowBackgroundWhiteBlackText));

View File

@ -375,11 +375,12 @@ public class ReactionsLayoutInBubble {
counterDrawable.updateVisibility = false; counterDrawable.updateVisibility = false;
if (reactionCount.chosen) { if (reactionCount.chosen) {
backgroundColor = Theme.getColor(messageObject.isOutOwner() ? Theme.key_chat_outReactionButtonBackground : Theme.key_chat_inReactionButtonBackground, resourcesProvider); backgroundColor = Theme.getColor(messageObject.isOutOwner() ? Theme.key_chat_outReactionButtonBackground : Theme.key_chat_inReactionButtonBackground, resourcesProvider);
textColor = Theme.getColor(messageObject.isOutOwner() ? Theme.key_chat_outReactionButtonText : Theme.key_chat_inReactionButtonText, resourcesProvider); textColor = Theme.getColor(messageObject.isOutOwner() ? Theme.key_chat_outReactionButtonTextSelected : Theme.key_chat_inReactionButtonTextSelected, resourcesProvider);
serviceTextColor = Theme.getColor(messageObject.isOutOwner() ? Theme.key_chat_outReactionButtonBackground : Theme.key_chat_inReactionButtonBackground, resourcesProvider); serviceTextColor = Theme.getColor(messageObject.isOutOwner() ? Theme.key_chat_outReactionButtonBackground : Theme.key_chat_inReactionButtonBackground, resourcesProvider);
serviceBackgroundColor = Theme.getColor(messageObject.isOutOwner() ? Theme.key_chat_outBubble : Theme.key_chat_inBubble); serviceBackgroundColor = Theme.getColor(messageObject.isOutOwner() ? Theme.key_chat_outBubble : Theme.key_chat_inBubble);
} else { } else {
textColor = backgroundColor = Theme.getColor(messageObject.isOutOwner() ? Theme.key_chat_outReactionButtonBackground : Theme.key_chat_inReactionButtonBackground, resourcesProvider); textColor = Theme.getColor(messageObject.isOutOwner() ? Theme.key_chat_outReactionButtonText : Theme.key_chat_inReactionButtonText, resourcesProvider);
backgroundColor = Theme.getColor(messageObject.isOutOwner() ? Theme.key_chat_outReactionButtonBackground : Theme.key_chat_inReactionButtonBackground, resourcesProvider);
backgroundColor = ColorUtils.setAlphaComponent(backgroundColor, (int) (Color.alpha(backgroundColor) * 0.156f)); backgroundColor = ColorUtils.setAlphaComponent(backgroundColor, (int) (Color.alpha(backgroundColor) * 0.156f));
serviceTextColor = Theme.getColor(Theme.key_chat_serviceText, resourcesProvider); serviceTextColor = Theme.getColor(Theme.key_chat_serviceText, resourcesProvider);
serviceBackgroundColor = Color.TRANSPARENT; serviceBackgroundColor = Color.TRANSPARENT;

View File

@ -387,7 +387,7 @@ public class ReactionsContainerLayout extends FrameLayout {
Runnable playRunnable = new Runnable() { Runnable playRunnable = new Runnable() {
@Override @Override
public void run() { public void run() {
if (backupImageView.getImageReceiver().getLottieAnimation() != null) { if (backupImageView.getImageReceiver().getLottieAnimation() != null && !backupImageView.getImageReceiver().getLottieAnimation().isRunning()) {
backupImageView.getImageReceiver().getLottieAnimation().start(); backupImageView.getImageReceiver().getLottieAnimation().start();
} }
} }
@ -410,11 +410,12 @@ public class ReactionsContainerLayout extends FrameLayout {
public void play(int delay) { public void play(int delay) {
AndroidUtilities.cancelRunOnUIThread(playRunnable); AndroidUtilities.cancelRunOnUIThread(playRunnable);
if (backupImageView.getImageReceiver().getLottieAnimation() != null) { if (backupImageView.getImageReceiver().getLottieAnimation() != null) {
backupImageView.getImageReceiver().getLottieAnimation().setCurrentFrame(0); backupImageView.getImageReceiver().getLottieAnimation().setCurrentFrame(0, false);
if (delay == 0) { if (delay == 0) {
playRunnable.run(); playRunnable.run();
} else { } else {
backupImageView.getImageReceiver().getLottieAnimation().stop(); backupImageView.getImageReceiver().getLottieAnimation().stop();
backupImageView.getImageReceiver().getLottieAnimation().setCurrentFrame(0, false);
AndroidUtilities.runOnUIThread(playRunnable, delay); AndroidUtilities.runOnUIThread(playRunnable, delay);
} }

View File

@ -19,6 +19,8 @@ import android.widget.FrameLayout;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.core.widget.NestedScrollView;
import org.telegram.messenger.AndroidUtilities; import org.telegram.messenger.AndroidUtilities;
import org.telegram.messenger.DocumentObject; import org.telegram.messenger.DocumentObject;
import org.telegram.messenger.FileLoader; import org.telegram.messenger.FileLoader;
@ -31,8 +33,6 @@ import org.telegram.tgnet.TLRPC;
import org.telegram.ui.ActionBar.BottomSheet; import org.telegram.ui.ActionBar.BottomSheet;
import org.telegram.ui.ActionBar.Theme; import org.telegram.ui.ActionBar.Theme;
import androidx.core.widget.NestedScrollView;
public class UpdateAppAlertDialog extends BottomSheet { public class UpdateAppAlertDialog extends BottomSheet {
private TLRPC.TL_help_appUpdate appUpdate; private TLRPC.TL_help_appUpdate appUpdate;
@ -239,9 +239,9 @@ public class UpdateAppAlertDialog extends BottomSheet {
ImageLocation imageLocation = ImageLocation.getForDocument(thumb, appUpdate.sticker); ImageLocation imageLocation = ImageLocation.getForDocument(thumb, appUpdate.sticker);
if (svgThumb != null) { if (svgThumb != null) {
imageView.setImage(ImageLocation.getForDocument(appUpdate.sticker), "160_160", svgThumb, 0, "update"); imageView.setImage(ImageLocation.getForDocument(appUpdate.sticker), "250_250", svgThumb, 0, "update");
} else { } else {
imageView.setImage(ImageLocation.getForDocument(appUpdate.sticker), "160_160", imageLocation, null, 0, "update"); imageView.setImage(ImageLocation.getForDocument(appUpdate.sticker), "250_250", imageLocation, null, 0, "update");
} }
linearLayout.addView(imageView, LayoutHelper.createLinear(160, 160, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 17, 8, 17, 0)); linearLayout.addView(imageView, LayoutHelper.createLinear(160, 160, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 17, 8, 17, 0));
} }

View File

@ -2,7 +2,10 @@ package org.telegram.ui.Components.spoilers;
import android.content.Context; import android.content.Context;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path; import android.graphics.Path;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect; import android.graphics.Rect;
import android.graphics.Region; import android.graphics.Region;
import android.text.Layout; import android.text.Layout;
@ -22,6 +25,7 @@ public class SpoilersTextView extends TextView {
private Stack<SpoilerEffect> spoilersPool = new Stack<>(); private Stack<SpoilerEffect> spoilersPool = new Stack<>();
private boolean isSpoilersRevealed; private boolean isSpoilersRevealed;
private Path path = new Path(); private Path path = new Path();
private Paint xRefPaint;
public SpoilersTextView(Context context) { public SpoilersTextView(Context context) {
super(context); super(context);
@ -82,19 +86,38 @@ public class SpoilersTextView extends TextView {
canvas.save(); canvas.save();
canvas.clipPath(path); canvas.clipPath(path);
path.rewind(); path.rewind();
if (!spoilers.isEmpty()) if (!spoilers.isEmpty()) {
spoilers.get(0).getRipplePath(path); spoilers.get(0).getRipplePath(path);
}
canvas.clipPath(path); canvas.clipPath(path);
super.onDraw(canvas); super.onDraw(canvas);
canvas.restore(); canvas.restore();
canvas.save(); if (!spoilers.isEmpty()) {
canvas.translate(getPaddingLeft(), getPaddingTop() + AndroidUtilities.dp(2)); boolean useAlphaLayer = spoilers.get(0).getRippleProgress() != -1;
for (SpoilerEffect eff : spoilers) { if (useAlphaLayer) {
eff.setColor(getPaint().getColor()); canvas.saveLayer(0, 0, getMeasuredWidth(), getMeasuredHeight(), null, canvas.ALL_SAVE_FLAG);
eff.draw(canvas); } else {
canvas.save();
}
canvas.translate(getPaddingLeft(), getPaddingTop() + AndroidUtilities.dp(2));
for (SpoilerEffect eff : spoilers) {
eff.setColor(getPaint().getColor());
eff.draw(canvas);
}
if (useAlphaLayer) {
path.rewind();
spoilers.get(0).getRipplePath(path);
if (xRefPaint == null) {
xRefPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
xRefPaint.setColor(0xff000000);
xRefPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
}
canvas.drawPath(path, xRefPaint);
}
canvas.restore();
} }
canvas.restore();
} }
private void invalidateSpoilers() { private void invalidateSpoilers() {

View File

@ -1,6 +1,7 @@
package org.telegram.ui; package org.telegram.ui;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.text.TextUtils;
import android.view.HapticFeedbackConstants; import android.view.HapticFeedbackConstants;
import android.view.View; import android.view.View;
import android.widget.FrameLayout; import android.widget.FrameLayout;
@ -319,8 +320,10 @@ public class EmojiAnimationsOverlay implements NotificationCenter.NotificationCe
return false; return false;
} }
emoji = unwrapEmoji(emoji);
if (supportedEmoji.contains(emoji)) { if (supportedEmoji.contains(emoji)) {
ArrayList<TLRPC.Document> arrayList = emojiInteractionsStickersMap.get(view.getMessageObject().getStickerEmoji()); ArrayList<TLRPC.Document> arrayList = emojiInteractionsStickersMap.get(emoji);
if (arrayList != null && !arrayList.isEmpty()) { if (arrayList != null && !arrayList.isEmpty()) {
int sameAnimationsCount = 0; int sameAnimationsCount = 0;
for (int i = 0; i < drawingObjects.size(); i++) { for (int i = 0; i < drawingObjects.size(); i++) {
@ -404,6 +407,23 @@ public class EmojiAnimationsOverlay implements NotificationCenter.NotificationCe
return false; return false;
} }
private String unwrapEmoji(String emoji) {
CharSequence fixedEmoji = emoji;
int length = emoji.length();
for (int a = 0; a < length; a++) {
if (a < length - 1 && (fixedEmoji.charAt(a) == 0xD83C && fixedEmoji.charAt(a + 1) >= 0xDFFB && fixedEmoji.charAt(a + 1) <= 0xDFFF || fixedEmoji.charAt(a) == 0x200D && (fixedEmoji.charAt(a + 1) == 0x2640 || fixedEmoji.charAt(a + 1) == 0x2642))) {
fixedEmoji = TextUtils.concat(fixedEmoji.subSequence(0, a), fixedEmoji.subSequence(a + 2, fixedEmoji.length()));
length -= 2;
a--;
} else if (fixedEmoji.charAt(a) == 0xfe0f) {
fixedEmoji = TextUtils.concat(fixedEmoji.subSequence(0, a), fixedEmoji.subSequence(a + 1, fixedEmoji.length()));
length--;
a--;
}
}
return fixedEmoji.toString();
}
private void sendCurrentTaps() { private void sendCurrentTaps() {
if (lastTappedMsgId == 0) { if (lastTappedMsgId == 0) {
return; return;

View File

@ -1926,8 +1926,9 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
ActionBarMenu menu = actionBar.createMenu(); ActionBarMenu menu = actionBar.createMenu();
if (userId == getUserConfig().clientUserId && !TextUtils.isEmpty(getUserConfig().getCurrentUser().username)) { if (userId == getUserConfig().clientUserId) {
qrItem = menu.addItem(qr_button, R.drawable.msg_qr_mini, getResourceProvider()); qrItem = menu.addItem(qr_button, R.drawable.msg_qr_mini, getResourceProvider());
qrItem.setVisibility(isQrNeedVisible() ? View.VISIBLE : View.GONE);
qrItem.setContentDescription(LocaleController.getString("AuthAnotherClientScan", R.string.AuthAnotherClientScan)); qrItem.setContentDescription(LocaleController.getString("AuthAnotherClientScan", R.string.AuthAnotherClientScan));
} }
if (imageUpdater != null) { if (imageUpdater != null) {
@ -3231,6 +3232,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
avatarImage.setRoundRadius((int) AndroidUtilities.lerp(AndroidUtilities.dpf2(21f), 0f, value)); avatarImage.setRoundRadius((int) AndroidUtilities.lerp(AndroidUtilities.dpf2(21f), 0f, value));
if (searchItem != null) { if (searchItem != null) {
searchItem.setAlpha(1.0f - value); searchItem.setAlpha(1.0f - value);
searchItem.setScaleY(1.0f - value);
searchItem.setVisibility(searchItem.getAlpha() == 0f ? View.GONE : View.VISIBLE); searchItem.setVisibility(searchItem.getAlpha() == 0f ? View.GONE : View.VISIBLE);
if (qrItem != null && searchItem.getVisibility() == View.VISIBLE) { if (qrItem != null && searchItem.getVisibility() == View.VISIBLE) {
float translation = AndroidUtilities.dp(48) * value; float translation = AndroidUtilities.dp(48) * value;
@ -4297,14 +4299,14 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
qrItemAnimation.setInterpolator(new DecelerateInterpolator()); qrItemAnimation.setInterpolator(new DecelerateInterpolator());
qrItemAnimation.playTogether( qrItemAnimation.playTogether(
ObjectAnimator.ofFloat(qrItem, View.ALPHA, 1.0f), ObjectAnimator.ofFloat(qrItem, View.ALPHA, 1.0f),
ObjectAnimator.ofFloat(qrItem, View.TRANSLATION_X, 0), ObjectAnimator.ofFloat(qrItem, View.SCALE_Y, 1f),
ObjectAnimator.ofFloat(avatarsViewPagerIndicatorView, View.TRANSLATION_X, -AndroidUtilities.dp(48)) ObjectAnimator.ofFloat(avatarsViewPagerIndicatorView, View.TRANSLATION_X, -AndroidUtilities.dp(48))
); );
} else { } else {
qrItemAnimation.setInterpolator(new AccelerateInterpolator()); qrItemAnimation.setInterpolator(new AccelerateInterpolator());
qrItemAnimation.playTogether( qrItemAnimation.playTogether(
ObjectAnimator.ofFloat(qrItem, View.ALPHA, 0.0f), ObjectAnimator.ofFloat(qrItem, View.ALPHA, 0.0f),
ObjectAnimator.ofFloat(qrItem, View.TRANSLATION_X, AndroidUtilities.dp(48)), ObjectAnimator.ofFloat(qrItem, View.SCALE_Y, 0f),
ObjectAnimator.ofFloat(avatarsViewPagerIndicatorView, View.TRANSLATION_X, 0) ObjectAnimator.ofFloat(avatarsViewPagerIndicatorView, View.TRANSLATION_X, 0)
); );
} }
@ -6085,6 +6087,10 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
} }
avatarImage.getImageReceiver().setVisible(!PhotoViewer.isShowingImage(photoBig), false); avatarImage.getImageReceiver().setVisible(!PhotoViewer.isShowingImage(photoBig), false);
} }
if (qrItem != null) {
qrItem.setVisibility(isQrNeedVisible() ? View.VISIBLE : View.GONE);
}
} }
private void createActionBarMenu(boolean animated) { private void createActionBarMenu(boolean animated) {
@ -6408,7 +6414,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
otherItem.setVisibility(itemVisibility); otherItem.setVisibility(itemVisibility);
} }
if (qrItem != null) { if (qrItem != null) {
qrItem.setVisibility(itemVisibility); qrItem.setVisibility(isQrNeedVisible() && searchTransitionProgress > 0.5f ? View.VISIBLE : View.GONE);
} }
searchItem.setVisibility(itemVisibility); searchItem.setVisibility(itemVisibility);
@ -6461,7 +6467,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
} }
if (qrItem != null) { if (qrItem != null) {
qrItem.setAlpha(progressHalf); qrItem.setAlpha(progressHalf);
qrItem.setVisibility(visibility); qrItem.setVisibility(searchTransitionProgress > 0.5f && isQrNeedVisible() ? View.VISIBLE : View.GONE);
} }
searchItem.setVisibility(visibility); searchItem.setVisibility(visibility);
@ -6527,7 +6533,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
} }
if (qrItem != null) { if (qrItem != null) {
qrItem.setAlpha(1f); qrItem.setAlpha(1f);
qrItem.setVisibility(hide); qrItem.setVisibility(enter || !isQrNeedVisible() ? View.GONE : View.VISIBLE);
} }
searchItem.setVisibility(hide); searchItem.setVisibility(hide);
@ -8236,6 +8242,10 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
} }
} }
private boolean isQrNeedVisible() {
return !TextUtils.isEmpty(getUserConfig().getCurrentUser().username);
}
private class DiffCallback extends DiffUtil.Callback { private class DiffCallback extends DiffUtil.Callback {
int oldRowCount; int oldRowCount;

View File

@ -31,6 +31,7 @@ import android.text.TextPaint;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.TypedValue; import android.util.TypedValue;
import android.view.Gravity; import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.Window; import android.view.Window;
@ -114,7 +115,7 @@ public class QrActivity extends BaseFragment {
} }
private final ThemeResourcesProvider resourcesProvider = new ThemeResourcesProvider(); private final ThemeResourcesProvider resourcesProvider = new ThemeResourcesProvider();
private final EmojiThemes homeTheme = EmojiThemes.createHome(); private final EmojiThemes homeTheme = EmojiThemes.createHomeQrTheme();
private final Rect logoRect = new Rect(); private final Rect logoRect = new Rect();
private final ArrayMap<String, Bitmap> emojiThemeDarkIcons = new ArrayMap<>(); private final ArrayMap<String, Bitmap> emojiThemeDarkIcons = new ArrayMap<>();
private final int[] prevQrColors = new int[4]; private final int[] prevQrColors = new int[4];
@ -126,6 +127,7 @@ public class QrActivity extends BaseFragment {
private ValueAnimator patternAlphaAnimator; private ValueAnimator patternAlphaAnimator;
private ValueAnimator patternIntensityAnimator; private ValueAnimator patternIntensityAnimator;
private View backgroundView;
private FrameLayout themeLayout; private FrameLayout themeLayout;
private BackupImageView avatarImageView; private BackupImageView avatarImageView;
private QrView qrView; private QrView qrView;
@ -142,7 +144,6 @@ public class QrActivity extends BaseFragment {
public QrActivity(Bundle args) { public QrActivity(Bundle args) {
super(args); super(args);
homeTheme.loadPreviewColors(currentAccount);
} }
@Override @Override
@ -152,16 +153,24 @@ public class QrActivity extends BaseFragment {
return super.onFragmentCreate(); return super.onFragmentCreate();
} }
@SuppressLint("SourceLockedOrientationActivity")
@Override @Override
public View createView(Context context) { public View createView(Context context) {
homeTheme.loadPreviewColors(currentAccount);
isCurrentThemeDark = Theme.getActiveTheme().isDark(); isCurrentThemeDark = Theme.getActiveTheme().isDark();
actionBar.setAddToContainer(false); actionBar.setAddToContainer(false);
actionBar.setBackground(null); actionBar.setBackground(null);
actionBar.setItemsColor(0xffffffff, false); actionBar.setItemsColor(0xffffffff, false);
FrameLayout rootLayout = new FrameLayout(context) { FrameLayout rootLayout = new FrameLayout(context) {
private boolean prevIsPortrait; private boolean prevIsPortrait;
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
super.dispatchTouchEvent(ev);
return true;
}
@Override @Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int width = MeasureSpec.getSize(widthMeasureSpec); int width = MeasureSpec.getSize(widthMeasureSpec);
@ -181,10 +190,13 @@ public class QrActivity extends BaseFragment {
} }
prevIsPortrait = isPortrait; prevIsPortrait = isPortrait;
} }
@Override @Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) { protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
boolean isPortrait = getWidth() < getHeight(); boolean isPortrait = getWidth() < getHeight();
backgroundView.layout(0, 0, getWidth(), getHeight());
int themeLayoutHeight = 0; int themeLayoutHeight = 0;
if (themeLayout.getVisibility() == View.VISIBLE) { if (themeLayout.getVisibility() == View.VISIBLE) {
themeLayoutHeight = themeLayout.getMeasuredHeight(); themeLayoutHeight = themeLayout.getMeasuredHeight();
@ -220,21 +232,21 @@ public class QrActivity extends BaseFragment {
int closeTop = AndroidUtilities.statusBarHeight + (isPortrait ? AndroidUtilities.dp(10) : AndroidUtilities.dp(5)); int closeTop = AndroidUtilities.statusBarHeight + (isPortrait ? AndroidUtilities.dp(10) : AndroidUtilities.dp(5));
closeImageView.layout(closeLeft, closeTop, closeLeft + closeImageView.getMeasuredWidth(), closeTop + closeImageView.getMeasuredHeight()); closeImageView.layout(closeLeft, closeTop, closeLeft + closeImageView.getMeasuredWidth(), closeTop + closeImageView.getMeasuredHeight());
} }
};
backgroundView = new View(context) {
@Override @Override
protected void dispatchDraw(Canvas canvas) { protected void onDraw(Canvas canvas) {
if (prevMotionDrawable != null) { if (prevMotionDrawable != null) {
prevMotionDrawable.setBounds(0, 0, getWidth(), getHeight()); prevMotionDrawable.setBounds(0, 0, getWidth(), getHeight());
prevMotionDrawable.draw(canvas); prevMotionDrawable.draw(canvas);
} }
currMotionDrawable.setBounds(0, 0, getWidth(), getHeight()); currMotionDrawable.setBounds(0, 0, getWidth(), getHeight());
currMotionDrawable.draw(canvas); currMotionDrawable.draw(canvas);
super.dispatchDraw(canvas); super.onDraw(canvas);
}
@Override
protected boolean verifyDrawable(@NonNull Drawable who) {
return super.verifyDrawable(who) || who == currMotionDrawable || who == prevMotionDrawable;
} }
}; };
rootLayout.addView(backgroundView);
AvatarDrawable avatarDrawable = null; AvatarDrawable avatarDrawable = null;
String username = null; String username = null;
@ -480,9 +492,9 @@ public class QrActivity extends BaseFragment {
prevMotionDrawable.setIndeterminateAnimation(false); prevMotionDrawable.setIndeterminateAnimation(false);
currMotionDrawable = new MotionBackgroundDrawable(); currMotionDrawable = new MotionBackgroundDrawable();
currMotionDrawable.setCallback(fragmentView); currMotionDrawable.setCallback(backgroundView);
currMotionDrawable.setColors(themeItem.patternBgColor, themeItem.patternBgGradientColor1, themeItem.patternBgGradientColor2, themeItem.patternBgGradientColor3); currMotionDrawable.setColors(themeItem.patternBgColor, themeItem.patternBgGradientColor1, themeItem.patternBgGradientColor2, themeItem.patternBgGradientColor3);
currMotionDrawable.setParentView(fragmentView); currMotionDrawable.setParentView(backgroundView);
currMotionDrawable.setPatternAlpha(1f); currMotionDrawable.setPatternAlpha(1f);
currMotionDrawable.setIndeterminateAnimation(true); currMotionDrawable.setIndeterminateAnimation(true);
currMotionDrawable.posAnimationProgress = prevMotionDrawable.posAnimationProgress; currMotionDrawable.posAnimationProgress = prevMotionDrawable.posAnimationProgress;
@ -501,7 +513,7 @@ public class QrActivity extends BaseFragment {
} }
}); });
} else { } else {
currMotionDrawable.setPatternBitmap(34, SvgHelper.getBitmap(R.raw.default_pattern, fragmentView.getWidth(), fragmentView.getHeight(), Color.BLACK)); currMotionDrawable.setPatternBitmap(34, SvgHelper.getBitmap(R.raw.default_pattern, backgroundView.getWidth(), backgroundView.getHeight(), Color.BLACK));
} }
currMotionDrawable.setPatternColorFilter(currMotionDrawable.getPatternColor()); currMotionDrawable.setPatternColorFilter(currMotionDrawable.getPatternColor());
@ -528,7 +540,7 @@ public class QrActivity extends BaseFragment {
int color4 = ColorUtils.blendARGB(prevQrColors[3], newQrColors[3], progress); int color4 = ColorUtils.blendARGB(prevQrColors[3], newQrColors[3], progress);
qrView.setColors(color1, color2, color3, color4); qrView.setColors(color1, color2, color3, color4);
} }
fragmentView.invalidate(); backgroundView.invalidate();
}); });
patternAlphaAnimator.addListener(new AnimatorListenerAdapter() { patternAlphaAnimator.addListener(new AnimatorListenerAdapter() {
@Override @Override
@ -549,7 +561,7 @@ public class QrActivity extends BaseFragment {
System.arraycopy(newQrColors, 0, prevQrColors, 0, 4); System.arraycopy(newQrColors, 0, prevQrColors, 0, 4);
} }
prevMotionDrawable = null; prevMotionDrawable = null;
fragmentView.invalidate(); backgroundView.invalidate();
} }
Theme.ThemeInfo currentThemeInfo = isCurrentThemeDark ? Theme.getCurrentNightTheme() : Theme.getCurrentTheme(); Theme.ThemeInfo currentThemeInfo = isCurrentThemeDark ? Theme.getCurrentNightTheme() : Theme.getCurrentTheme();
@ -595,8 +607,8 @@ public class QrActivity extends BaseFragment {
drawable.setCurrentFrame(currentFrame, false); drawable.setCurrentFrame(currentFrame, false);
logoImageView.playAnimation(); logoImageView.playAnimation();
fragmentView.layout(fragmentView.getLeft() - 1, fragmentView.getTop(), fragmentView.getRight(), fragmentView.getBottom()); ViewGroup parent = (ViewGroup) fragmentView.getParent();
fragmentView.layout(fragmentView.getLeft() + 1, fragmentView.getTop(), fragmentView.getRight(), fragmentView.getBottom()); fragmentView.layout(0, 0, parent.getWidth(), parent.getHeight());
Uri uri = AndroidUtilities.getBitmapShareUri(bitmap, "qr_tmp.jpg", Bitmap.CompressFormat.JPEG); Uri uri = AndroidUtilities.getBitmapShareUri(bitmap, "qr_tmp.jpg", Bitmap.CompressFormat.JPEG);
if (uri != null) { if (uri != null) {
@ -766,13 +778,13 @@ public class QrActivity extends BaseFragment {
int linesCount = textWidth > textMaxWidth ? 2 : 1; int linesCount = textWidth > textMaxWidth ? 2 : 1;
int layoutWidth = textMaxWidth; int layoutWidth = textMaxWidth;
if (linesCount > 1) { if (linesCount > 1) {
layoutWidth = (int)(textWidth + drawable.getBounds().width()) / 2 + AndroidUtilities.dp(1); layoutWidth = (int)(textWidth + drawable.getBounds().width()) / 2 + AndroidUtilities.dp(2);
} }
if (layoutWidth > textMaxWidth) { if (layoutWidth > textMaxWidth) {
linesCount = 3; linesCount = 3;
layoutWidth = (int)(textWidth + drawable.getBounds().width()) / 3 + AndroidUtilities.dp(2); layoutWidth = (int)(textWidth + drawable.getBounds().width()) / 3 + AndroidUtilities.dp(4);
} }
staticLayout = StaticLayoutEx.createStaticLayout(string, textPaint, layoutWidth, Layout.Alignment.ALIGN_CENTER, 1f, 0f, false, null, contentBitmap.getWidth(), linesCount); staticLayout = StaticLayoutEx.createStaticLayout(string, textPaint, layoutWidth, Layout.Alignment.ALIGN_CENTER, 1f, 0f, false, null, Math.min(layoutWidth + AndroidUtilities.dp(10), contentBitmap.getWidth()), linesCount);
break; break;
} }

View File

@ -29,13 +29,10 @@ import org.telegram.ui.Components.RecyclerListView;
import org.telegram.ui.Components.SimpleThemeDescription; import org.telegram.ui.Components.SimpleThemeDescription;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
public class ReactionsDoubleTapManageActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate { public class ReactionsDoubleTapManageActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate {
private List<String> chatReactions = Collections.emptyList();
private LinearLayout contentView; private LinearLayout contentView;
private RecyclerListView listView; private RecyclerListView listView;
private RecyclerView.Adapter listAdapter; private RecyclerView.Adapter listAdapter;
@ -159,7 +156,7 @@ public class ReactionsDoubleTapManageActivity extends BaseFragment implements No
} }
private List<TLRPC.TL_availableReaction> getAvailableReactions() { private List<TLRPC.TL_availableReaction> getAvailableReactions() {
return getMediaDataController().getReactionsList(); return getMediaDataController().getEnabledReactionsList();
} }
@Override @Override