From 19599e6ea41a4db70b032be8151ea0d84d19caf4 Mon Sep 17 00:00:00 2001 From: DrKLO Date: Thu, 15 Oct 2020 03:39:36 +0300 Subject: [PATCH] Update to 7.1.3 (2103) --- TMessagesProj/build.gradle | 6 +-- .../telegram/messenger/AndroidUtilities.java | 4 +- .../org/telegram/messenger/BuildVars.java | 2 +- .../messenger/MessagesController.java | 2 +- .../telegram/messenger/MessagesStorage.java | 30 +++++++++++--- .../java/org/telegram/ui/ActionBar/Theme.java | 21 ++++++---- .../telegram/ui/Adapters/ContactsAdapter.java | 6 +-- .../telegram/ui/Cells/ChatMessageCell.java | 7 +++- .../ui/Cells/SharingLiveLocationCell.java | 2 +- .../java/org/telegram/ui/ChatActivity.java | 41 ++++++++++--------- .../telegram/ui/Components/AlertsCreator.java | 2 + .../ui/Components/ChatActivityEnterView.java | 10 ++--- .../org/telegram/ui/Components/EmojiView.java | 2 +- .../org/telegram/ui/ContactsActivity.java | 7 +++- .../java/org/telegram/ui/LaunchActivity.java | 4 +- .../org/telegram/ui/NewContactActivity.java | 32 ++++++++++++++- TMessagesProj/src/main/res/values/strings.xml | 2 +- 17 files changed, 125 insertions(+), 55 deletions(-) diff --git a/TMessagesProj/build.gradle b/TMessagesProj/build.gradle index 6d4849140..56a6b3811 100644 --- a/TMessagesProj/build.gradle +++ b/TMessagesProj/build.gradle @@ -33,8 +33,8 @@ dependencies { implementation 'com.google.android.gms:play-services-vision:16.2.0' implementation 'com.google.android.gms:play-services-wearable:17.0.0' implementation 'com.google.android.gms:play-services-location:17.1.0' - implementation "com.microsoft.appcenter:appcenter-distribute:3.2.2" - implementation "com.microsoft.appcenter:appcenter-crashes:3.2.2" + implementation "com.microsoft.appcenter:appcenter-distribute:3.3.1" + implementation "com.microsoft.appcenter:appcenter-crashes:3.3.1" implementation 'com.googlecode.mp4parser:isoparser:1.0.6' implementation 'com.stripe:stripe-android:2.0.2' implementation files('libs/libgsaverification-client.aar') @@ -284,7 +284,7 @@ android { } } - defaultConfig.versionCode = 2100 + defaultConfig.versionCode = 2103 applicationVariants.all { variant -> variant.outputs.all { output -> diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java b/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java index cd2f14666..ea7fdf5dc 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java @@ -2255,7 +2255,7 @@ public class AndroidUtilities { } public static CharSequence generateSearchName(String name, String name2, String q) { - if (name == null && name2 == null) { + if (name == null && name2 == null || TextUtils.isEmpty(q)) { return ""; } SpannableStringBuilder builder = new SpannableStringBuilder(); @@ -2288,7 +2288,7 @@ public class AndroidUtilities { int start = builder.length(); builder.append(query); - builder.setSpan(new ForegroundColorSpan(Theme.getColor(Theme.key_windowBackgroundWhiteBlueText4)), start, start + query.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + builder.setSpan(new ForegroundColorSpanThemable(Theme.key_windowBackgroundWhiteBlueText4), start, start + query.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); lastIndex = end; } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java b/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java index b8c8d4c22..71b8b1c80 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java @@ -18,7 +18,7 @@ public class BuildVars { public static boolean LOGS_ENABLED = false; public static boolean USE_CLOUD_STRINGS = true; public static boolean CHECK_UPDATES = true; - public static int BUILD_VERSION = 2100; + public static int BUILD_VERSION = 2103; public static String BUILD_VERSION_STRING = "7.1.0"; public static int APP_ID = 4; public static String APP_HASH = "014b35b6184100b085b0d0572f9b5103"; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java index b2406325f..eefc0c89d 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java @@ -10932,7 +10932,7 @@ public class MessagesController extends BaseController implements NotificationCe messages.put(message.dialog_id, arr); } arr.add(obj); - if ((!obj.isOut() || obj.messageOwner.from_scheduled) && obj.isUnread() && !ChatObject.isNotInChat(chat) && chat.min) { + if ((!obj.isOut() || obj.messageOwner.from_scheduled) && obj.isUnread() && (chat == null || !ChatObject.isNotInChat(chat) && !chat.min)) { if (pushMessages == null) { pushMessages = new ArrayList<>(); } diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java index 36895942e..a276c3ce2 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java @@ -1533,7 +1533,11 @@ public class MessagesStorage extends BaseController { } if (message.replyMessage == null) { long messageId = message.reply_to.reply_to_msg_id; - if (message.peer_id.channel_id != 0) { + if (message.reply_to.reply_to_peer_id != null) { + if (message.reply_to.reply_to_peer_id.channel_id != 0) { + messageId |= ((long) message.reply_to.reply_to_peer_id.channel_id) << 32; + } + } else if (message.peer_id.channel_id != 0) { messageId |= ((long) message.peer_id.channel_id) << 32; } if (!replyMessages.contains(messageId)) { @@ -2670,7 +2674,11 @@ public class MessagesStorage extends BaseController { } if (message.replyMessage == null) { long messageId = message.reply_to.reply_to_msg_id; - if (message.peer_id.channel_id != 0) { + if (message.reply_to.reply_to_peer_id != null) { + if (message.reply_to.reply_to_peer_id.channel_id != 0) { + messageId |= ((long) message.reply_to.reply_to_peer_id.channel_id) << 32; + } + } else if (message.peer_id.channel_id != 0) { messageId |= ((long) message.peer_id.channel_id) << 32; } if (!replyMessages.contains(messageId)) { @@ -5857,7 +5865,11 @@ public class MessagesStorage extends BaseController { if (message.replyMessage == null) { if (message.reply_to.reply_to_msg_id != 0) { long messageId = message.reply_to.reply_to_msg_id; - if (message.peer_id.channel_id != 0) { + if (message.reply_to.reply_to_peer_id != null) { + if (message.reply_to.reply_to_peer_id.channel_id != 0) { + messageId |= ((long) message.reply_to.reply_to_peer_id.channel_id) << 32; + } + } else if (message.peer_id.channel_id != 0) { messageId |= ((long) message.peer_id.channel_id) << 32; } if (!replyMessages.contains(messageId)) { @@ -6318,7 +6330,11 @@ public class MessagesStorage extends BaseController { if (message.replyMessage == null) { if (message.reply_to.reply_to_msg_id != 0) { long messageId = message.reply_to.reply_to_msg_id; - if (message.peer_id.channel_id != 0) { + if (message.reply_to.reply_to_peer_id != null) { + if (message.reply_to.reply_to_peer_id.channel_id != 0) { + messageId |= ((long) message.reply_to.reply_to_peer_id.channel_id) << 32; + } + } else if (message.peer_id.channel_id != 0) { messageId |= ((long) message.peer_id.channel_id) << 32; } if (!replyMessages.contains(messageId)) { @@ -10046,7 +10062,11 @@ public class MessagesStorage extends BaseController { } if (message.replyMessage == null) { long messageId = message.reply_to.reply_to_msg_id; - if (message.peer_id.channel_id != 0) { + if (message.reply_to.reply_to_peer_id != null) { + if (message.reply_to.reply_to_peer_id.channel_id != 0) { + messageId |= ((long) message.reply_to.reply_to_peer_id.channel_id) << 32; + } + } else if (message.peer_id.channel_id != 0) { messageId |= ((long) message.peer_id.channel_id) << 32; } if (!replyMessages.contains(messageId)) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java index 969e81f57..f248c80b3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java @@ -2576,8 +2576,10 @@ public class Theme { public static final String key_chat_inAudioSelectedProgress = "chat_inAudioSelectedProgress"; public static final String key_chat_outAudioSelectedProgress = "chat_outAudioSelectedProgress"; public static final String key_chat_mediaTimeText = "chat_mediaTimeText"; - public static final String key_chat_adminText = "chat_adminText"; - public static final String key_chat_adminSelectedText = "chat_adminSelectedText"; + public static final String key_chat_inAdminText = "chat_adminText"; + public static final String key_chat_inAdminSelectedText = "chat_adminSelectedText"; + public static final String key_chat_outAdminText = "chat_outAdminText"; + public static final String key_chat_outAdminSelectedText = "chat_outAdminSelectedText"; public static final String key_chat_inTimeText = "chat_inTimeText"; public static final String key_chat_outTimeText = "chat_outTimeText"; public static final String key_chat_inTimeSelectedText = "chat_inTimeSelectedText"; @@ -3287,11 +3289,13 @@ public class Theme { defaultColors.put(key_chat_inAudioSelectedProgress, 0xffeff8fe); defaultColors.put(key_chat_outAudioSelectedProgress, 0xffe1f8cf); defaultColors.put(key_chat_mediaTimeText, 0xffffffff); + defaultColors.put(key_chat_inAdminText, 0xffc0c6cb); + defaultColors.put(key_chat_inAdminSelectedText, 0xff89b4c1); + defaultColors.put(key_chat_outAdminText, 0xff70b15c); + defaultColors.put(key_chat_outAdminSelectedText, 0xff70b15c); defaultColors.put(key_chat_inTimeText, 0xffa1aab3); - defaultColors.put(key_chat_outTimeText, 0xff70b15c); - defaultColors.put(key_chat_adminText, 0xffc0c6cb); - defaultColors.put(key_chat_adminSelectedText, 0xff89b4c1); defaultColors.put(key_chat_inTimeSelectedText, 0xff89b4c1); + defaultColors.put(key_chat_outTimeText, 0xff70b15c); defaultColors.put(key_chat_outTimeSelectedText, 0xff70b15c); defaultColors.put(key_chat_inAudioPerformerText, 0xff2f3438); defaultColors.put(key_chat_inAudioPerformerSelectedText, 0xff2f3438); @@ -3618,8 +3622,8 @@ public class Theme { defaultColors.put(key_statisticChartLineEmpty, 0xFFEEEEEE); defaultColors.put(key_actionBarTipBackground, 0xFF446F94); - fallbackKeys.put(key_chat_adminText, key_chat_inTimeText); - fallbackKeys.put(key_chat_adminSelectedText, key_chat_inTimeSelectedText); + fallbackKeys.put(key_chat_inAdminText, key_chat_inTimeText); + fallbackKeys.put(key_chat_inAdminSelectedText, key_chat_inTimeSelectedText); fallbackKeys.put(key_player_progressCachedBackground, key_player_progressBackground); fallbackKeys.put(key_chat_inAudioCacheSeekbar, key_chat_inAudioSeekbar); fallbackKeys.put(key_chat_outAudioCacheSeekbar, key_chat_outAudioSeekbar); @@ -3747,6 +3751,9 @@ public class Theme { fallbackKeys.put(key_chat_inPsaNameText, key_avatar_nameInMessageGreen); fallbackKeys.put(key_chat_outPsaNameText, key_avatar_nameInMessageGreen); + fallbackKeys.put(key_chat_outAdminText, key_chat_outTimeText); + fallbackKeys.put(key_chat_outAdminSelectedText, key_chat_outTimeSelectedText); + themeAccentExclusionKeys.addAll(Arrays.asList(keys_avatar_background)); themeAccentExclusionKeys.addAll(Arrays.asList(keys_avatar_nameInMessage)); themeAccentExclusionKeys.add(key_chat_attachFileBackground); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/ContactsAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/ContactsAdapter.java index aef8907f3..46ecf6092 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/ContactsAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/ContactsAdapter.java @@ -77,10 +77,10 @@ public class ContactsAdapter extends RecyclerListView.SectionsAdapter { disableSections = value; } - public void setSortType(int value) { + public void setSortType(int value, boolean force) { sortType = value; if (sortType == 2) { - if (onlineContacts == null) { + if (onlineContacts == null || force) { onlineContacts = new ArrayList<>(ContactsController.getInstance(currentAccount).contacts); int selfId = UserConfig.getInstance(currentAccount).clientUserId; for (int a = 0, N = onlineContacts.size(); a < N; a++) { @@ -191,7 +191,7 @@ public class ContactsAdapter extends RecyclerListView.SectionsAdapter { } } } - if (needPhonebook) { + if (needPhonebook && position >= 0 && position < ContactsController.getInstance(currentAccount).phoneBookContacts.size()) { return ContactsController.getInstance(currentAccount).phoneBookContacts.get(position); } return null; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java index dfbc2dae8..6e334e9b4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java @@ -10067,7 +10067,12 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate nameLayout.draw(canvas); canvas.restore(); if (adminLayout != null) { - int color = Theme.getColor(isDrawSelectionBackground() ? Theme.key_chat_adminSelectedText : Theme.key_chat_adminText); + int color; + if (currentMessageObject.isOutOwner()) { + color = Theme.getColor(isDrawSelectionBackground() ? Theme.key_chat_outAdminSelectedText : Theme.key_chat_outAdminText); + } else { + color = Theme.getColor(isDrawSelectionBackground() ? Theme.key_chat_inAdminSelectedText : Theme.key_chat_inAdminText); + } Theme.chat_adminPaint.setColor(color); canvas.save(); float ax; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharingLiveLocationCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharingLiveLocationCell.java index b5263d1c4..3c0fdb171 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharingLiveLocationCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharingLiveLocationCell.java @@ -54,7 +54,7 @@ public class SharingLiveLocationCell extends FrameLayout { private LocationActivity.LiveLocation liveLocation; private Location location = new Location("network"); - private int currentAccount; + private int currentAccount = UserConfig.selectedAccount; private Runnable invalidateRunnable = new Runnable() { @Override diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java index eeb3097a7..d71d58c2f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java @@ -2095,6 +2095,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } updateChatListViewTopPadding(); chatListView.setItemAnimator(null); + chatListView.invalidate(); } @Override @@ -2309,6 +2310,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not int chatListViewTop = (int) chatListView.getY(); int chatListViewBottom = chatListViewTop + chatListView.getMeasuredHeight(); float listTop = chatListView.getTop() + chatListView.getPaddingTop() - AndroidUtilities.dp(4); + if (threadMessageId != 0 && !replyMessageVisible) { + listTop += AndroidUtilities.dp(48); + } MessageObject.GroupedMessages scrimGroup; if (scrimView instanceof ChatMessageCell) { scrimGroup = ((ChatMessageCell) scrimView).getCurrentMessagesGroup(); @@ -2865,6 +2869,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not private boolean wasTrackingVibrate; private float replyButtonProgress; private long lastReplyButtonAnimationTime; + private float cilpTop; private boolean ignoreLayout; @@ -2884,6 +2889,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not if (emptyViewContainer != null) { emptyViewContainer.setTranslationY(translationY / 2f); } + invalidate(); } @@ -3177,7 +3183,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } - ArrayList drawingGroups = new ArrayList<>(10); @Override @@ -3380,8 +3385,14 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } } } - + canvas.save(); + cilpTop = actionBar.getY() + actionBar.getMeasuredHeight() - getY(); + if (pinnedMessageView != null) { + cilpTop += Math.max(0, AndroidUtilities.dp(48) + pinnedMessageEnterOffset); + } + canvas.clipRect(0, cilpTop, getMeasuredWidth(), getMeasuredHeight()); super.dispatchDraw(canvas); + canvas.restore(); } @Override @@ -3391,7 +3402,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not boolean skipDraw = child == scrimView; ChatMessageCell cell; - if (child.getY() > getMeasuredHeight() || child.getY() + child.getMeasuredHeight() < 0) { + if (child.getY() > getMeasuredHeight() || child.getY() + child.getMeasuredHeight() < cilpTop) { skipDraw = true; } @@ -11365,20 +11376,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not boolean updateChat = false; boolean hasFromMe = false; ArrayList arr = (ArrayList) args[1]; - if (currentEncryptedChat != null && arr.size() == 1) { - MessageObject obj = arr.get(0); - - if (currentEncryptedChat != null && obj.isOut() && obj.messageOwner.action instanceof TLRPC.TL_messageEncryptedAction && - obj.messageOwner.action.encryptedAction instanceof TLRPC.TL_decryptedMessageActionSetMessageTTL && getParentActivity() != null) { - if (AndroidUtilities.getPeerLayerVersion(currentEncryptedChat.layer) < 17 && currentEncryptedChat.ttl > 0 && currentEncryptedChat.ttl <= 60) { - AlertDialog.Builder builder = new AlertDialog.Builder(getParentActivity()); - builder.setTitle(LocaleController.getString("AppName", R.string.AppName)); - builder.setPositiveButton(LocaleController.getString("OK", R.string.OK), null); - builder.setMessage(LocaleController.formatString("CompatibilityChat", R.string.CompatibilityChat, currentUser.first_name, currentUser.first_name)); - showDialog(builder.create()); - } - } - } if (chatListItemAniamtor != null) { chatListItemAniamtor.setShouldAnimateEnterFromBottom(true); @@ -14452,6 +14449,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not animator.addUpdateListener(animation -> { pinnedMessageEnterOffset = (float) animation.getAnimatedValue(); invalidateChatListViewTopPadding(); + chatListView.invalidate(); }); pinnedMessageViewAnimator.playTogether(animator); pinnedMessageViewAnimator.setDuration(200); @@ -14475,6 +14473,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } else { pinnedMessageEnterOffset = -AndroidUtilities.dp(50); pinnedMessageView.setVisibility(View.GONE); + chatListView.invalidate(); } return true; } @@ -14548,6 +14547,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } pinnedMessageEnterOffset = translationY; invalidateChatListViewTopPadding(); + chatListView.invalidate(); } }); pinnedMessageView.setVisibility(View.VISIBLE); @@ -14573,6 +14573,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not } else { pinnedMessageEnterOffset = 0; invalidateChatListViewTopPadding(); + chatListView.invalidate(); if (firstLoading) { updateChatListViewTopPadding(); } @@ -19730,8 +19731,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[]{ChatMessageCell.class}, null, null, null, Theme.key_chat_inTimeText)); themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[]{ChatMessageCell.class}, null, null, null, Theme.key_chat_outTimeText)); themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[]{ChatMessageCell.class}, null, null, null, Theme.key_chat_inTimeSelectedText)); - themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[]{ChatMessageCell.class}, null, null, null, Theme.key_chat_adminText)); - themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[]{ChatMessageCell.class}, null, null, null, Theme.key_chat_adminSelectedText)); + themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[]{ChatMessageCell.class}, null, null, null, Theme.key_chat_inAdminText)); + themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[]{ChatMessageCell.class}, null, null, null, Theme.key_chat_inAdminSelectedText)); + themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[]{ChatMessageCell.class}, null, null, null, Theme.key_chat_outAdminText)); + themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[]{ChatMessageCell.class}, null, null, null, Theme.key_chat_outAdminSelectedText)); themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[]{ChatMessageCell.class}, null, null, null, Theme.key_chat_outTimeSelectedText)); themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[]{ChatMessageCell.class}, null, null, null, Theme.key_chat_inAudioPerformerText)); themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[]{ChatMessageCell.class}, null, null, null, Theme.key_chat_inAudioPerformerSelectedText)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java index 206731af6..0db4dd6cc 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java @@ -3045,6 +3045,8 @@ public class AlertsCreator { if (!(participant.participant instanceof TLRPC.TL_channelParticipantAdmin || participant.participant instanceof TLRPC.TL_channelParticipantCreator)) { loadType = 0; } + } else if (error != null && "USER_NOT_PARTICIPANT".equals(error.text)) { + loadType = 0; } createDeleteMessagesAlert(fragment, user, chat, encryptedChat, chatInfo, mergeDialogId, selectedMessage, selectedMessages, selectedGroup, scheduled, loadType, onDelete); })); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java index 9f354cee1..533bef170 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java @@ -1850,7 +1850,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe public ChatActivityEnterView(Activity context, SizeNotifierFrameLayout parent, ChatActivity fragment, final boolean isChat) { super(context); - smoothKeyboard = isChat && SharedConfig.smoothKeyboard; + smoothKeyboard = isChat && SharedConfig.smoothKeyboard && !AndroidUtilities.isInMultiwindow && (fragment == null || !fragment.isInBubbleMode()); dotPaint = new Paint(Paint.ANTI_ALIAS_FLAG); dotPaint.setColor(Theme.getColor(Theme.key_chat_emojiPanelNewTrending)); setFocusable(true); @@ -3278,7 +3278,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe sizeNotifierLayout.removeView(emojiView); emojiView = null; } else { - if (emojiViewVisible && (!waitingForKeyboardOpen)) { + if (emojiViewVisible && !waitingForKeyboardOpen) { removeEmojiViewAfterAnimation = true; hidePopup(false); } else { @@ -3289,8 +3289,6 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe emojiView = null; } } - - } allowStickers = value; allowGifs = value2; @@ -6845,12 +6843,12 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe } private void openKeyboardInternal() { - showPopup(AndroidUtilities.usingHardwareInput || isPaused ? 0 : 2, 0); + showPopup(AndroidUtilities.usingHardwareInput || AndroidUtilities.isInMultiwindow || parentFragment != null && parentFragment.isInBubbleMode() || isPaused ? 0 : 2, 0); messageEditText.requestFocus(); AndroidUtilities.showKeyboard(messageEditText); if (isPaused) { showKeyboardOnResume = true; - } else if (!AndroidUtilities.usingHardwareInput && !keyboardVisible && !AndroidUtilities.isInMultiwindow) { + } else if (!AndroidUtilities.usingHardwareInput && !keyboardVisible && !AndroidUtilities.isInMultiwindow && (parentFragment == null || !parentFragment.isInBubbleMode())) { waitingForKeyboardOpen = true; AndroidUtilities.cancelRunOnUIThread(openKeyboardRunnable); AndroidUtilities.runOnUIThread(openKeyboardRunnable, 100); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java index 92b54ff44..3d1a17330 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java @@ -3210,7 +3210,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific setBackgroundResource(R.drawable.smiles_popup); getBackground().setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelBackground), PorterDuff.Mode.MULTIPLY)); if (needEmojiSearch) { - bottomTabContainerBackground.setBackgroundDrawable(null); + bottomTabContainerBackground.setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground)); } currentBackgroundType = 1; } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ContactsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ContactsActivity.java index 3ff05746e..64499fce6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ContactsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ContactsActivity.java @@ -228,7 +228,7 @@ public class ContactsActivity extends BaseFragment implements NotificationCenter } else if (id == sort_button) { SharedConfig.toggleSortContactsByName(); sortByName = SharedConfig.sortContactsByName; - listViewAdapter.setSortType(sortByName ? 1 : 2); + listViewAdapter.setSortType(sortByName ? 1 : 2, false); sortItem.setIcon(sortByName ? R.drawable.contacts_sort_time : R.drawable.contacts_sort_name); } } @@ -332,7 +332,7 @@ public class ContactsActivity extends BaseFragment implements NotificationCenter } } }; - listViewAdapter.setSortType(sortItem != null ? (sortByName ? 1 : 2) : 0); + listViewAdapter.setSortType(sortItem != null ? (sortByName ? 1 : 2) : 0, false); listViewAdapter.setDisableSections(disableSections); fragmentView = new FrameLayout(context) { @@ -852,6 +852,9 @@ public class ContactsActivity extends BaseFragment implements NotificationCenter public void didReceivedNotification(int id, int account, Object... args) { if (id == NotificationCenter.contactsDidLoad) { if (listViewAdapter != null) { + if (!sortByName) { + listViewAdapter.setSortType(2, true); + } listViewAdapter.notifyDataSetChanged(); } } else if (id == NotificationCenter.updateInterfaces) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java index 5c1f692ee..c582c3ce1 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java @@ -2163,7 +2163,7 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa final BaseFragment lastFragment = actionBarLayout.getLastFragment(); if (lastFragment != null && lastFragment.getParentActivity() != null) { final String finalNewContactName = newContactName; - final String finalNewContactPhone = "+" + PhoneFormat.stripExceptNumbers(newContactPhone); + final String finalNewContactPhone = NewContactActivity.getPhoneNumber(this, UserConfig.getInstance(currentAccount).getCurrentUser(), newContactPhone, false); final AlertDialog newContactAlertDialog = new AlertDialog.Builder(lastFragment.getParentActivity()) .setTitle(LocaleController.getString("NewContactAlertTitle", R.string.NewContactAlertTitle)) .setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("NewContactAlertMessage", R.string.NewContactAlertMessage, PhoneFormat.getInstance().format(finalNewContactPhone)))) @@ -2268,6 +2268,8 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa chatActivity.setThreadMessages(arrayList, chat, req.msg_id, res.read_inbox_max_id, res.read_outbox_max_id); if (commentId != null) { chatActivity.setHighlightMessageId(commentId); + } else if (threadId != null) { + chatActivity.setHighlightMessageId(messageId); } presentFragment(chatActivity); chatOpened = true; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/NewContactActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/NewContactActivity.java index 1681d7570..4d758d8b8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/NewContactActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/NewContactActivity.java @@ -524,7 +524,7 @@ public class NewContactActivity extends BaseFragment implements AdapterView.OnIt } phoneField.setText(builder); if (start >= 0) { - phoneField.setSelection(start <= phoneField.length() ? start : phoneField.length()); + phoneField.setSelection(Math.min(start, phoneField.length())); } phoneField.onTextChange(); ignoreOnPhoneChange = false; @@ -618,6 +618,36 @@ public class NewContactActivity extends BaseFragment implements AdapterView.OnIt return fragmentView; } + public static String getPhoneNumber(Context context, TLRPC.User user, String number, boolean withCoutryCode) { + HashMap codesMap = new HashMap<>(); + try { + BufferedReader reader = new BufferedReader(new InputStreamReader(context.getResources().getAssets().open("countries.txt"))); + String line; + while ((line = reader.readLine()) != null) { + String[] args = line.split(";"); + codesMap.put(args[0], args[2]); + } + reader.close(); + } catch (Exception e) { + FileLog.e(e); + } + if (number.startsWith("+")) { + return number; + } else if (withCoutryCode || user == null || TextUtils.isEmpty(user.phone)) { + return "+" + number; + } else { + String phone = user.phone; + for (int a = 4; a >= 1; a--) { + String sub = phone.substring(0, a); + String country = codesMap.get(sub); + if (country != null) { + return "+" + sub + number; + } + } + return number; + } + } + private void invalidateAvatar() { avatarDrawable.setInfo(5, firstNameField.getText().toString(), lastNameField.getText().toString()); avatarImage.invalidate(); diff --git a/TMessagesProj/src/main/res/values/strings.xml b/TMessagesProj/src/main/res/values/strings.xml index 85cf7839e..c171d42c2 100644 --- a/TMessagesProj/src/main/res/values/strings.xml +++ b/TMessagesProj/src/main/res/values/strings.xml @@ -1217,7 +1217,7 @@ Find people nearby to chat with Search people by username New contact - Phone number **%1$s** is not in your contact list. Do you want to add it? + Phone number **%1$s** is not in your contacts list. Do you want to add it? Add contact Add people...