mirror of
https://github.com/DrKLO/Telegram.git
synced 2024-12-22 06:25:14 +01:00
Update to 7.1.3 (2103)
This commit is contained in:
parent
d3ad1316c4
commit
19599e6ea4
17 changed files with 125 additions and 55 deletions
|
@ -33,8 +33,8 @@ dependencies {
|
||||||
implementation 'com.google.android.gms:play-services-vision:16.2.0'
|
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-wearable:17.0.0'
|
||||||
implementation 'com.google.android.gms:play-services-location:17.1.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-distribute:3.3.1"
|
||||||
implementation "com.microsoft.appcenter:appcenter-crashes:3.2.2"
|
implementation "com.microsoft.appcenter:appcenter-crashes:3.3.1"
|
||||||
implementation 'com.googlecode.mp4parser:isoparser:1.0.6'
|
implementation 'com.googlecode.mp4parser:isoparser:1.0.6'
|
||||||
implementation 'com.stripe:stripe-android:2.0.2'
|
implementation 'com.stripe:stripe-android:2.0.2'
|
||||||
implementation files('libs/libgsaverification-client.aar')
|
implementation files('libs/libgsaverification-client.aar')
|
||||||
|
@ -284,7 +284,7 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
defaultConfig.versionCode = 2100
|
defaultConfig.versionCode = 2103
|
||||||
|
|
||||||
applicationVariants.all { variant ->
|
applicationVariants.all { variant ->
|
||||||
variant.outputs.all { output ->
|
variant.outputs.all { output ->
|
||||||
|
|
|
@ -2255,7 +2255,7 @@ public class AndroidUtilities {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CharSequence generateSearchName(String name, String name2, String q) {
|
public static CharSequence generateSearchName(String name, String name2, String q) {
|
||||||
if (name == null && name2 == null) {
|
if (name == null && name2 == null || TextUtils.isEmpty(q)) {
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
SpannableStringBuilder builder = new SpannableStringBuilder();
|
SpannableStringBuilder builder = new SpannableStringBuilder();
|
||||||
|
@ -2288,7 +2288,7 @@ public class AndroidUtilities {
|
||||||
|
|
||||||
int start = builder.length();
|
int start = builder.length();
|
||||||
builder.append(query);
|
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;
|
lastIndex = end;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ public class BuildVars {
|
||||||
public static boolean LOGS_ENABLED = false;
|
public static boolean LOGS_ENABLED = false;
|
||||||
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 int BUILD_VERSION = 2100;
|
public static int BUILD_VERSION = 2103;
|
||||||
public static String BUILD_VERSION_STRING = "7.1.0";
|
public static String BUILD_VERSION_STRING = "7.1.0";
|
||||||
public static int APP_ID = 4;
|
public static int APP_ID = 4;
|
||||||
public static String APP_HASH = "014b35b6184100b085b0d0572f9b5103";
|
public static String APP_HASH = "014b35b6184100b085b0d0572f9b5103";
|
||||||
|
|
|
@ -10932,7 +10932,7 @@ public class MessagesController extends BaseController implements NotificationCe
|
||||||
messages.put(message.dialog_id, arr);
|
messages.put(message.dialog_id, arr);
|
||||||
}
|
}
|
||||||
arr.add(obj);
|
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) {
|
if (pushMessages == null) {
|
||||||
pushMessages = new ArrayList<>();
|
pushMessages = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1533,7 +1533,11 @@ public class MessagesStorage extends BaseController {
|
||||||
}
|
}
|
||||||
if (message.replyMessage == null) {
|
if (message.replyMessage == null) {
|
||||||
long messageId = message.reply_to.reply_to_msg_id;
|
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;
|
messageId |= ((long) message.peer_id.channel_id) << 32;
|
||||||
}
|
}
|
||||||
if (!replyMessages.contains(messageId)) {
|
if (!replyMessages.contains(messageId)) {
|
||||||
|
@ -2670,7 +2674,11 @@ public class MessagesStorage extends BaseController {
|
||||||
}
|
}
|
||||||
if (message.replyMessage == null) {
|
if (message.replyMessage == null) {
|
||||||
long messageId = message.reply_to.reply_to_msg_id;
|
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;
|
messageId |= ((long) message.peer_id.channel_id) << 32;
|
||||||
}
|
}
|
||||||
if (!replyMessages.contains(messageId)) {
|
if (!replyMessages.contains(messageId)) {
|
||||||
|
@ -5857,7 +5865,11 @@ public class MessagesStorage extends BaseController {
|
||||||
if (message.replyMessage == null) {
|
if (message.replyMessage == null) {
|
||||||
if (message.reply_to.reply_to_msg_id != 0) {
|
if (message.reply_to.reply_to_msg_id != 0) {
|
||||||
long messageId = message.reply_to.reply_to_msg_id;
|
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;
|
messageId |= ((long) message.peer_id.channel_id) << 32;
|
||||||
}
|
}
|
||||||
if (!replyMessages.contains(messageId)) {
|
if (!replyMessages.contains(messageId)) {
|
||||||
|
@ -6318,7 +6330,11 @@ public class MessagesStorage extends BaseController {
|
||||||
if (message.replyMessage == null) {
|
if (message.replyMessage == null) {
|
||||||
if (message.reply_to.reply_to_msg_id != 0) {
|
if (message.reply_to.reply_to_msg_id != 0) {
|
||||||
long messageId = message.reply_to.reply_to_msg_id;
|
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;
|
messageId |= ((long) message.peer_id.channel_id) << 32;
|
||||||
}
|
}
|
||||||
if (!replyMessages.contains(messageId)) {
|
if (!replyMessages.contains(messageId)) {
|
||||||
|
@ -10046,7 +10062,11 @@ public class MessagesStorage extends BaseController {
|
||||||
}
|
}
|
||||||
if (message.replyMessage == null) {
|
if (message.replyMessage == null) {
|
||||||
long messageId = message.reply_to.reply_to_msg_id;
|
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;
|
messageId |= ((long) message.peer_id.channel_id) << 32;
|
||||||
}
|
}
|
||||||
if (!replyMessages.contains(messageId)) {
|
if (!replyMessages.contains(messageId)) {
|
||||||
|
|
|
@ -2576,8 +2576,10 @@ public class Theme {
|
||||||
public static final String key_chat_inAudioSelectedProgress = "chat_inAudioSelectedProgress";
|
public static final String key_chat_inAudioSelectedProgress = "chat_inAudioSelectedProgress";
|
||||||
public static final String key_chat_outAudioSelectedProgress = "chat_outAudioSelectedProgress";
|
public static final String key_chat_outAudioSelectedProgress = "chat_outAudioSelectedProgress";
|
||||||
public static final String key_chat_mediaTimeText = "chat_mediaTimeText";
|
public static final String key_chat_mediaTimeText = "chat_mediaTimeText";
|
||||||
public static final String key_chat_adminText = "chat_adminText";
|
public static final String key_chat_inAdminText = "chat_adminText";
|
||||||
public static final String key_chat_adminSelectedText = "chat_adminSelectedText";
|
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_inTimeText = "chat_inTimeText";
|
||||||
public static final String key_chat_outTimeText = "chat_outTimeText";
|
public static final String key_chat_outTimeText = "chat_outTimeText";
|
||||||
public static final String key_chat_inTimeSelectedText = "chat_inTimeSelectedText";
|
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_inAudioSelectedProgress, 0xffeff8fe);
|
||||||
defaultColors.put(key_chat_outAudioSelectedProgress, 0xffe1f8cf);
|
defaultColors.put(key_chat_outAudioSelectedProgress, 0xffe1f8cf);
|
||||||
defaultColors.put(key_chat_mediaTimeText, 0xffffffff);
|
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_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_inTimeSelectedText, 0xff89b4c1);
|
||||||
|
defaultColors.put(key_chat_outTimeText, 0xff70b15c);
|
||||||
defaultColors.put(key_chat_outTimeSelectedText, 0xff70b15c);
|
defaultColors.put(key_chat_outTimeSelectedText, 0xff70b15c);
|
||||||
defaultColors.put(key_chat_inAudioPerformerText, 0xff2f3438);
|
defaultColors.put(key_chat_inAudioPerformerText, 0xff2f3438);
|
||||||
defaultColors.put(key_chat_inAudioPerformerSelectedText, 0xff2f3438);
|
defaultColors.put(key_chat_inAudioPerformerSelectedText, 0xff2f3438);
|
||||||
|
@ -3618,8 +3622,8 @@ public class Theme {
|
||||||
defaultColors.put(key_statisticChartLineEmpty, 0xFFEEEEEE);
|
defaultColors.put(key_statisticChartLineEmpty, 0xFFEEEEEE);
|
||||||
defaultColors.put(key_actionBarTipBackground, 0xFF446F94);
|
defaultColors.put(key_actionBarTipBackground, 0xFF446F94);
|
||||||
|
|
||||||
fallbackKeys.put(key_chat_adminText, key_chat_inTimeText);
|
fallbackKeys.put(key_chat_inAdminText, key_chat_inTimeText);
|
||||||
fallbackKeys.put(key_chat_adminSelectedText, key_chat_inTimeSelectedText);
|
fallbackKeys.put(key_chat_inAdminSelectedText, key_chat_inTimeSelectedText);
|
||||||
fallbackKeys.put(key_player_progressCachedBackground, key_player_progressBackground);
|
fallbackKeys.put(key_player_progressCachedBackground, key_player_progressBackground);
|
||||||
fallbackKeys.put(key_chat_inAudioCacheSeekbar, key_chat_inAudioSeekbar);
|
fallbackKeys.put(key_chat_inAudioCacheSeekbar, key_chat_inAudioSeekbar);
|
||||||
fallbackKeys.put(key_chat_outAudioCacheSeekbar, key_chat_outAudioSeekbar);
|
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_inPsaNameText, key_avatar_nameInMessageGreen);
|
||||||
fallbackKeys.put(key_chat_outPsaNameText, 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_background));
|
||||||
themeAccentExclusionKeys.addAll(Arrays.asList(keys_avatar_nameInMessage));
|
themeAccentExclusionKeys.addAll(Arrays.asList(keys_avatar_nameInMessage));
|
||||||
themeAccentExclusionKeys.add(key_chat_attachFileBackground);
|
themeAccentExclusionKeys.add(key_chat_attachFileBackground);
|
||||||
|
|
|
@ -77,10 +77,10 @@ public class ContactsAdapter extends RecyclerListView.SectionsAdapter {
|
||||||
disableSections = value;
|
disableSections = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSortType(int value) {
|
public void setSortType(int value, boolean force) {
|
||||||
sortType = value;
|
sortType = value;
|
||||||
if (sortType == 2) {
|
if (sortType == 2) {
|
||||||
if (onlineContacts == null) {
|
if (onlineContacts == null || force) {
|
||||||
onlineContacts = new ArrayList<>(ContactsController.getInstance(currentAccount).contacts);
|
onlineContacts = new ArrayList<>(ContactsController.getInstance(currentAccount).contacts);
|
||||||
int selfId = UserConfig.getInstance(currentAccount).clientUserId;
|
int selfId = UserConfig.getInstance(currentAccount).clientUserId;
|
||||||
for (int a = 0, N = onlineContacts.size(); a < N; a++) {
|
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 ContactsController.getInstance(currentAccount).phoneBookContacts.get(position);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -10067,7 +10067,12 @@ public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate
|
||||||
nameLayout.draw(canvas);
|
nameLayout.draw(canvas);
|
||||||
canvas.restore();
|
canvas.restore();
|
||||||
if (adminLayout != null) {
|
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);
|
Theme.chat_adminPaint.setColor(color);
|
||||||
canvas.save();
|
canvas.save();
|
||||||
float ax;
|
float ax;
|
||||||
|
|
|
@ -54,7 +54,7 @@ public class SharingLiveLocationCell extends FrameLayout {
|
||||||
private LocationActivity.LiveLocation liveLocation;
|
private LocationActivity.LiveLocation liveLocation;
|
||||||
private Location location = new Location("network");
|
private Location location = new Location("network");
|
||||||
|
|
||||||
private int currentAccount;
|
private int currentAccount = UserConfig.selectedAccount;
|
||||||
|
|
||||||
private Runnable invalidateRunnable = new Runnable() {
|
private Runnable invalidateRunnable = new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -2095,6 +2095,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
}
|
}
|
||||||
updateChatListViewTopPadding();
|
updateChatListViewTopPadding();
|
||||||
chatListView.setItemAnimator(null);
|
chatListView.setItemAnimator(null);
|
||||||
|
chatListView.invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -2309,6 +2310,9 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
int chatListViewTop = (int) chatListView.getY();
|
int chatListViewTop = (int) chatListView.getY();
|
||||||
int chatListViewBottom = chatListViewTop + chatListView.getMeasuredHeight();
|
int chatListViewBottom = chatListViewTop + chatListView.getMeasuredHeight();
|
||||||
float listTop = chatListView.getTop() + chatListView.getPaddingTop() - AndroidUtilities.dp(4);
|
float listTop = chatListView.getTop() + chatListView.getPaddingTop() - AndroidUtilities.dp(4);
|
||||||
|
if (threadMessageId != 0 && !replyMessageVisible) {
|
||||||
|
listTop += AndroidUtilities.dp(48);
|
||||||
|
}
|
||||||
MessageObject.GroupedMessages scrimGroup;
|
MessageObject.GroupedMessages scrimGroup;
|
||||||
if (scrimView instanceof ChatMessageCell) {
|
if (scrimView instanceof ChatMessageCell) {
|
||||||
scrimGroup = ((ChatMessageCell) scrimView).getCurrentMessagesGroup();
|
scrimGroup = ((ChatMessageCell) scrimView).getCurrentMessagesGroup();
|
||||||
|
@ -2865,6 +2869,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
private boolean wasTrackingVibrate;
|
private boolean wasTrackingVibrate;
|
||||||
private float replyButtonProgress;
|
private float replyButtonProgress;
|
||||||
private long lastReplyButtonAnimationTime;
|
private long lastReplyButtonAnimationTime;
|
||||||
|
private float cilpTop;
|
||||||
|
|
||||||
private boolean ignoreLayout;
|
private boolean ignoreLayout;
|
||||||
|
|
||||||
|
@ -2884,6 +2889,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
if (emptyViewContainer != null) {
|
if (emptyViewContainer != null) {
|
||||||
emptyViewContainer.setTranslationY(translationY / 2f);
|
emptyViewContainer.setTranslationY(translationY / 2f);
|
||||||
}
|
}
|
||||||
|
invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3177,7 +3183,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ArrayList<MessageObject.GroupedMessages> drawingGroups = new ArrayList<>(10);
|
ArrayList<MessageObject.GroupedMessages> drawingGroups = new ArrayList<>(10);
|
||||||
|
|
||||||
@Override
|
@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);
|
super.dispatchDraw(canvas);
|
||||||
|
canvas.restore();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -3391,7 +3402,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
boolean skipDraw = child == scrimView;
|
boolean skipDraw = child == scrimView;
|
||||||
ChatMessageCell cell;
|
ChatMessageCell cell;
|
||||||
|
|
||||||
if (child.getY() > getMeasuredHeight() || child.getY() + child.getMeasuredHeight() < 0) {
|
if (child.getY() > getMeasuredHeight() || child.getY() + child.getMeasuredHeight() < cilpTop) {
|
||||||
skipDraw = true;
|
skipDraw = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11365,20 +11376,6 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
boolean updateChat = false;
|
boolean updateChat = false;
|
||||||
boolean hasFromMe = false;
|
boolean hasFromMe = false;
|
||||||
ArrayList<MessageObject> arr = (ArrayList<MessageObject>) args[1];
|
ArrayList<MessageObject> arr = (ArrayList<MessageObject>) 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) {
|
if (chatListItemAniamtor != null) {
|
||||||
chatListItemAniamtor.setShouldAnimateEnterFromBottom(true);
|
chatListItemAniamtor.setShouldAnimateEnterFromBottom(true);
|
||||||
|
@ -14452,6 +14449,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
animator.addUpdateListener(animation -> {
|
animator.addUpdateListener(animation -> {
|
||||||
pinnedMessageEnterOffset = (float) animation.getAnimatedValue();
|
pinnedMessageEnterOffset = (float) animation.getAnimatedValue();
|
||||||
invalidateChatListViewTopPadding();
|
invalidateChatListViewTopPadding();
|
||||||
|
chatListView.invalidate();
|
||||||
});
|
});
|
||||||
pinnedMessageViewAnimator.playTogether(animator);
|
pinnedMessageViewAnimator.playTogether(animator);
|
||||||
pinnedMessageViewAnimator.setDuration(200);
|
pinnedMessageViewAnimator.setDuration(200);
|
||||||
|
@ -14475,6 +14473,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
} else {
|
} else {
|
||||||
pinnedMessageEnterOffset = -AndroidUtilities.dp(50);
|
pinnedMessageEnterOffset = -AndroidUtilities.dp(50);
|
||||||
pinnedMessageView.setVisibility(View.GONE);
|
pinnedMessageView.setVisibility(View.GONE);
|
||||||
|
chatListView.invalidate();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -14548,6 +14547,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
}
|
}
|
||||||
pinnedMessageEnterOffset = translationY;
|
pinnedMessageEnterOffset = translationY;
|
||||||
invalidateChatListViewTopPadding();
|
invalidateChatListViewTopPadding();
|
||||||
|
chatListView.invalidate();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
pinnedMessageView.setVisibility(View.VISIBLE);
|
pinnedMessageView.setVisibility(View.VISIBLE);
|
||||||
|
@ -14573,6 +14573,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
} else {
|
} else {
|
||||||
pinnedMessageEnterOffset = 0;
|
pinnedMessageEnterOffset = 0;
|
||||||
invalidateChatListViewTopPadding();
|
invalidateChatListViewTopPadding();
|
||||||
|
chatListView.invalidate();
|
||||||
if (firstLoading) {
|
if (firstLoading) {
|
||||||
updateChatListViewTopPadding();
|
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_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_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_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_inAdminText));
|
||||||
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_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_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_inAudioPerformerText));
|
||||||
themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[]{ChatMessageCell.class}, null, null, null, Theme.key_chat_inAudioPerformerSelectedText));
|
themeDescriptions.add(new ThemeDescription(chatListView, 0, new Class[]{ChatMessageCell.class}, null, null, null, Theme.key_chat_inAudioPerformerSelectedText));
|
||||||
|
|
|
@ -3045,6 +3045,8 @@ public class AlertsCreator {
|
||||||
if (!(participant.participant instanceof TLRPC.TL_channelParticipantAdmin || participant.participant instanceof TLRPC.TL_channelParticipantCreator)) {
|
if (!(participant.participant instanceof TLRPC.TL_channelParticipantAdmin || participant.participant instanceof TLRPC.TL_channelParticipantCreator)) {
|
||||||
loadType = 0;
|
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);
|
createDeleteMessagesAlert(fragment, user, chat, encryptedChat, chatInfo, mergeDialogId, selectedMessage, selectedMessages, selectedGroup, scheduled, loadType, onDelete);
|
||||||
}));
|
}));
|
||||||
|
|
|
@ -1850,7 +1850,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe
|
||||||
public ChatActivityEnterView(Activity context, SizeNotifierFrameLayout parent, ChatActivity fragment, final boolean isChat) {
|
public ChatActivityEnterView(Activity context, SizeNotifierFrameLayout parent, ChatActivity fragment, final boolean isChat) {
|
||||||
super(context);
|
super(context);
|
||||||
|
|
||||||
smoothKeyboard = isChat && SharedConfig.smoothKeyboard;
|
smoothKeyboard = isChat && SharedConfig.smoothKeyboard && !AndroidUtilities.isInMultiwindow && (fragment == null || !fragment.isInBubbleMode());
|
||||||
dotPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
dotPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||||
dotPaint.setColor(Theme.getColor(Theme.key_chat_emojiPanelNewTrending));
|
dotPaint.setColor(Theme.getColor(Theme.key_chat_emojiPanelNewTrending));
|
||||||
setFocusable(true);
|
setFocusable(true);
|
||||||
|
@ -3278,7 +3278,7 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe
|
||||||
sizeNotifierLayout.removeView(emojiView);
|
sizeNotifierLayout.removeView(emojiView);
|
||||||
emojiView = null;
|
emojiView = null;
|
||||||
} else {
|
} else {
|
||||||
if (emojiViewVisible && (!waitingForKeyboardOpen)) {
|
if (emojiViewVisible && !waitingForKeyboardOpen) {
|
||||||
removeEmojiViewAfterAnimation = true;
|
removeEmojiViewAfterAnimation = true;
|
||||||
hidePopup(false);
|
hidePopup(false);
|
||||||
} else {
|
} else {
|
||||||
|
@ -3289,8 +3289,6 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe
|
||||||
emojiView = null;
|
emojiView = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
allowStickers = value;
|
allowStickers = value;
|
||||||
allowGifs = value2;
|
allowGifs = value2;
|
||||||
|
@ -6845,12 +6843,12 @@ public class ChatActivityEnterView extends FrameLayout implements NotificationCe
|
||||||
}
|
}
|
||||||
|
|
||||||
private void openKeyboardInternal() {
|
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();
|
messageEditText.requestFocus();
|
||||||
AndroidUtilities.showKeyboard(messageEditText);
|
AndroidUtilities.showKeyboard(messageEditText);
|
||||||
if (isPaused) {
|
if (isPaused) {
|
||||||
showKeyboardOnResume = true;
|
showKeyboardOnResume = true;
|
||||||
} else if (!AndroidUtilities.usingHardwareInput && !keyboardVisible && !AndroidUtilities.isInMultiwindow) {
|
} else if (!AndroidUtilities.usingHardwareInput && !keyboardVisible && !AndroidUtilities.isInMultiwindow && (parentFragment == null || !parentFragment.isInBubbleMode())) {
|
||||||
waitingForKeyboardOpen = true;
|
waitingForKeyboardOpen = true;
|
||||||
AndroidUtilities.cancelRunOnUIThread(openKeyboardRunnable);
|
AndroidUtilities.cancelRunOnUIThread(openKeyboardRunnable);
|
||||||
AndroidUtilities.runOnUIThread(openKeyboardRunnable, 100);
|
AndroidUtilities.runOnUIThread(openKeyboardRunnable, 100);
|
||||||
|
|
|
@ -3210,7 +3210,7 @@ public class EmojiView extends FrameLayout implements NotificationCenter.Notific
|
||||||
setBackgroundResource(R.drawable.smiles_popup);
|
setBackgroundResource(R.drawable.smiles_popup);
|
||||||
getBackground().setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelBackground), PorterDuff.Mode.MULTIPLY));
|
getBackground().setColorFilter(new PorterDuffColorFilter(Theme.getColor(Theme.key_chat_emojiPanelBackground), PorterDuff.Mode.MULTIPLY));
|
||||||
if (needEmojiSearch) {
|
if (needEmojiSearch) {
|
||||||
bottomTabContainerBackground.setBackgroundDrawable(null);
|
bottomTabContainerBackground.setBackgroundColor(Theme.getColor(Theme.key_chat_emojiPanelBackground));
|
||||||
}
|
}
|
||||||
currentBackgroundType = 1;
|
currentBackgroundType = 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -228,7 +228,7 @@ public class ContactsActivity extends BaseFragment implements NotificationCenter
|
||||||
} else if (id == sort_button) {
|
} else if (id == sort_button) {
|
||||||
SharedConfig.toggleSortContactsByName();
|
SharedConfig.toggleSortContactsByName();
|
||||||
sortByName = SharedConfig.sortContactsByName;
|
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);
|
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);
|
listViewAdapter.setDisableSections(disableSections);
|
||||||
|
|
||||||
fragmentView = new FrameLayout(context) {
|
fragmentView = new FrameLayout(context) {
|
||||||
|
@ -852,6 +852,9 @@ public class ContactsActivity extends BaseFragment implements NotificationCenter
|
||||||
public void didReceivedNotification(int id, int account, Object... args) {
|
public void didReceivedNotification(int id, int account, Object... args) {
|
||||||
if (id == NotificationCenter.contactsDidLoad) {
|
if (id == NotificationCenter.contactsDidLoad) {
|
||||||
if (listViewAdapter != null) {
|
if (listViewAdapter != null) {
|
||||||
|
if (!sortByName) {
|
||||||
|
listViewAdapter.setSortType(2, true);
|
||||||
|
}
|
||||||
listViewAdapter.notifyDataSetChanged();
|
listViewAdapter.notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
} else if (id == NotificationCenter.updateInterfaces) {
|
} else if (id == NotificationCenter.updateInterfaces) {
|
||||||
|
|
|
@ -2163,7 +2163,7 @@ public class LaunchActivity extends Activity implements ActionBarLayout.ActionBa
|
||||||
final BaseFragment lastFragment = actionBarLayout.getLastFragment();
|
final BaseFragment lastFragment = actionBarLayout.getLastFragment();
|
||||||
if (lastFragment != null && lastFragment.getParentActivity() != null) {
|
if (lastFragment != null && lastFragment.getParentActivity() != null) {
|
||||||
final String finalNewContactName = newContactName;
|
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())
|
final AlertDialog newContactAlertDialog = new AlertDialog.Builder(lastFragment.getParentActivity())
|
||||||
.setTitle(LocaleController.getString("NewContactAlertTitle", R.string.NewContactAlertTitle))
|
.setTitle(LocaleController.getString("NewContactAlertTitle", R.string.NewContactAlertTitle))
|
||||||
.setMessage(AndroidUtilities.replaceTags(LocaleController.formatString("NewContactAlertMessage", R.string.NewContactAlertMessage, PhoneFormat.getInstance().format(finalNewContactPhone))))
|
.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);
|
chatActivity.setThreadMessages(arrayList, chat, req.msg_id, res.read_inbox_max_id, res.read_outbox_max_id);
|
||||||
if (commentId != null) {
|
if (commentId != null) {
|
||||||
chatActivity.setHighlightMessageId(commentId);
|
chatActivity.setHighlightMessageId(commentId);
|
||||||
|
} else if (threadId != null) {
|
||||||
|
chatActivity.setHighlightMessageId(messageId);
|
||||||
}
|
}
|
||||||
presentFragment(chatActivity);
|
presentFragment(chatActivity);
|
||||||
chatOpened = true;
|
chatOpened = true;
|
||||||
|
|
|
@ -524,7 +524,7 @@ public class NewContactActivity extends BaseFragment implements AdapterView.OnIt
|
||||||
}
|
}
|
||||||
phoneField.setText(builder);
|
phoneField.setText(builder);
|
||||||
if (start >= 0) {
|
if (start >= 0) {
|
||||||
phoneField.setSelection(start <= phoneField.length() ? start : phoneField.length());
|
phoneField.setSelection(Math.min(start, phoneField.length()));
|
||||||
}
|
}
|
||||||
phoneField.onTextChange();
|
phoneField.onTextChange();
|
||||||
ignoreOnPhoneChange = false;
|
ignoreOnPhoneChange = false;
|
||||||
|
@ -618,6 +618,36 @@ public class NewContactActivity extends BaseFragment implements AdapterView.OnIt
|
||||||
return fragmentView;
|
return fragmentView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getPhoneNumber(Context context, TLRPC.User user, String number, boolean withCoutryCode) {
|
||||||
|
HashMap<String, String> 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() {
|
private void invalidateAvatar() {
|
||||||
avatarDrawable.setInfo(5, firstNameField.getText().toString(), lastNameField.getText().toString());
|
avatarDrawable.setInfo(5, firstNameField.getText().toString(), lastNameField.getText().toString());
|
||||||
avatarImage.invalidate();
|
avatarImage.invalidate();
|
||||||
|
|
|
@ -1217,7 +1217,7 @@
|
||||||
<string name="NoContactsYetLine2">Find people nearby to chat with</string>
|
<string name="NoContactsYetLine2">Find people nearby to chat with</string>
|
||||||
<string name="NoContactsYetLine3">Search people by username</string>
|
<string name="NoContactsYetLine3">Search people by username</string>
|
||||||
<string name="NewContactAlertTitle">New contact</string>
|
<string name="NewContactAlertTitle">New contact</string>
|
||||||
<string name="NewContactAlertMessage">Phone number **%1$s** is not in your contact list. Do you want to add it?</string>
|
<string name="NewContactAlertMessage">Phone number **%1$s** is not in your contacts list. Do you want to add it?</string>
|
||||||
<string name="NewContactAlertButton">Add contact</string>
|
<string name="NewContactAlertButton">Add contact</string>
|
||||||
<!--group create view-->
|
<!--group create view-->
|
||||||
<string name="SendMessageTo">Add people...</string>
|
<string name="SendMessageTo">Add people...</string>
|
||||||
|
|
Loading…
Reference in a new issue