Update to 4.1.1

This commit is contained in:
DrKLO 2017-07-08 19:32:04 +03:00
parent 6a1cf64f6f
commit dd679bd7d1
649 changed files with 47670 additions and 11248 deletions

View file

@ -65,7 +65,7 @@ public class SecretChatHelper {
}
}
public static final int CURRENT_SECRET_CHAT_LAYER = 46;
public static final int CURRENT_SECRET_CHAT_LAYER = 66;
private ArrayList<Integer> sendingNotifyLayer = new ArrayList<>();
private HashMap<Integer, ArrayList<TL_decryptedMessageHolder>> secretHolesQueue = new HashMap<>();
@ -192,13 +192,12 @@ public class SecretChatHelper {
dialog.unread_count = 0;
dialog.top_message = 0;
dialog.last_message_date = update.date;
MessagesController.getInstance().putEncryptedChat(newChat, false);
AndroidUtilities.runOnUIThread(new Runnable() {
@Override
public void run() {
MessagesController.getInstance().dialogs_dict.put(dialog.id, dialog);
MessagesController.getInstance().dialogs.add(dialog);
MessagesController.getInstance().putEncryptedChat(newChat, false);
MessagesController.getInstance().sortDialogs(null);
NotificationCenter.getInstance().postNotificationName(NotificationCenter.dialogsNeedReload);
}
@ -519,22 +518,9 @@ public class SecretChatHelper {
}
}
/*String fileName = audio.dc_id + "_" + audio.id + ".ogg"; TODO check
String fileName2 = newMsg.media.audio.dc_id + "_" + newMsg.media.audio.id + ".ogg";
if (!fileName.equals(fileName2)) {
File cacheFile = new File(FileLoader.getInstance().getDirectory(FileLoader.MEDIA_DIR_CACHE), fileName);
File cacheFile2 = FileLoader.getPathToAttach(newMsg.media.audio);
if (cacheFile.renameTo(cacheFile2)) {
newMsg.attachPath = "";
}
}*/
ArrayList<TLRPC.Message> arr = new ArrayList<>();
arr.add(newMsg);
MessagesStorage.getInstance().putMessages(arr, false, true, false, 0);
//MessagesStorage.getInstance().putSentFile(originalPath, newMsg.media.document, 4); document
//MessagesStorage.getInstance().putSentFile(originalPath, newMsg.media.video, 5); video
}
}
}
@ -569,13 +555,14 @@ public class SecretChatHelper {
if (chat.seq_in == 0 && chat.seq_out == 0) {
if (chat.admin_id == UserConfig.getClientUserId()) {
chat.seq_out = 1;
chat.seq_in = -2;
} else {
chat.seq_in = 1;
chat.seq_in = -1;
}
}
if (newMsgObj.seq_in == 0 && newMsgObj.seq_out == 0) {
layer.in_seq_no = chat.seq_in;
layer.in_seq_no = chat.seq_in > 0 ? chat.seq_in : chat.seq_in + 2;
layer.out_seq_no = chat.seq_out;
chat.seq_out += 2;
if (AndroidUtilities.getPeerLayerVersion(chat.layer) >= 20) {
@ -719,7 +706,7 @@ public class SecretChatHelper {
newMsgObj.send_state = MessageObject.MESSAGE_SEND_STATE_SENT;
NotificationCenter.getInstance().postNotificationName(NotificationCenter.messageReceivedByServer, newMsgObj.id, newMsgObj.id, newMsgObj, newMsgObj.dialog_id);
SendMessagesHelper.getInstance().processSentMessage(newMsgObj.id);
if (MessageObject.isVideoMessage(newMsgObj) || MessageObject.isNewGifMessage(newMsgObj)) {
if (MessageObject.isVideoMessage(newMsgObj) || MessageObject.isNewGifMessage(newMsgObj) || MessageObject.isRoundVideoMessage(newMsgObj)) {
SendMessagesHelper.getInstance().stopVideoService(attachPath);
}
SendMessagesHelper.getInstance().removeFromSendingMessages(newMsgObj.id);
@ -735,7 +722,7 @@ public class SecretChatHelper {
newMsgObj.send_state = MessageObject.MESSAGE_SEND_STATE_SEND_ERROR;
NotificationCenter.getInstance().postNotificationName(NotificationCenter.messageSendError, newMsgObj.id);
SendMessagesHelper.getInstance().processSentMessage(newMsgObj.id);
if (MessageObject.isVideoMessage(newMsgObj) || MessageObject.isNewGifMessage(newMsgObj)) {
if (MessageObject.isVideoMessage(newMsgObj) || MessageObject.isNewGifMessage(newMsgObj) || MessageObject.isRoundVideoMessage(newMsgObj)) {
SendMessagesHelper.getInstance().stopVideoService(newMsgObj.attachPath);
}
SendMessagesHelper.getInstance().removeFromSendingMessages(newMsgObj.id);
@ -964,7 +951,7 @@ public class SecretChatHelper {
newMessage.media.document.thumb.type = "s";
}
newMessage.media.document.dc_id = file.dc_id;
if (MessageObject.isVoiceMessage(newMessage)) {
if (MessageObject.isVoiceMessage(newMessage) || MessageObject.isRoundVideoMessage(newMessage)) {
newMessage.media_unread = true;
}
} else if (decryptedMessage.media instanceof TLRPC.TL_decryptedMessageMediaExternalDocument) {
@ -1456,8 +1443,9 @@ public class SecretChatHelper {
if (chat.seq_in == 0 && chat.seq_out == 0) {
if (chat.admin_id == UserConfig.getClientUserId()) {
chat.seq_out = 1;
chat.seq_in = -2;
} else {
chat.seq_in = 1;
chat.seq_in = -1;
}
}
if (layer.random_bytes.length < 15) {
@ -1466,7 +1454,7 @@ public class SecretChatHelper {
}
FileLog.e("current chat in_seq = " + chat.seq_in + " out_seq = " + chat.seq_out);
FileLog.e("got message with in_seq = " + layer.in_seq_no + " out_seq = " + layer.out_seq_no);
if (layer.out_seq_no < chat.seq_in) {
if (layer.out_seq_no <= chat.seq_in) {
return null;
}
if (chat.seq_in != layer.out_seq_no && chat.seq_in != layer.out_seq_no - 2) {
@ -1590,13 +1578,13 @@ public class SecretChatHelper {
if (encryptedChat.key_fingerprint == fingerprint) {
encryptedChat.auth_key = authKey;
encryptedChat.key_create_date = ConnectionsManager.getInstance().getCurrentTime();
encryptedChat.seq_in = 0;
encryptedChat.seq_in = -2;
encryptedChat.seq_out = 1;
MessagesStorage.getInstance().updateEncryptedChat(encryptedChat);
MessagesController.getInstance().putEncryptedChat(encryptedChat, false);
AndroidUtilities.runOnUIThread(new Runnable() {
@Override
public void run() {
MessagesController.getInstance().putEncryptedChat(encryptedChat, false);
NotificationCenter.getInstance().postNotificationName(NotificationCenter.encryptedChatUpdated, encryptedChat);
sendNotifyLayerMessage(encryptedChat, null);
}
@ -1665,7 +1653,7 @@ public class SecretChatHelper {
salt[a] = (byte) ((byte) (Utilities.random.nextDouble() * 256) ^ res.random[a]);
}
encryptedChat.a_or_b = salt;
encryptedChat.seq_in = 1;
encryptedChat.seq_in = -1;
encryptedChat.seq_out = 0;
BigInteger p = new BigInteger(1, MessagesStorage.secretPBytes);
BigInteger g_b = BigInteger.valueOf(MessagesStorage.secretG);
@ -1726,10 +1714,10 @@ public class SecretChatHelper {
newChat.key_use_count_in = encryptedChat.key_use_count_in;
newChat.key_use_count_out = encryptedChat.key_use_count_out;
MessagesStorage.getInstance().updateEncryptedChat(newChat);
MessagesController.getInstance().putEncryptedChat(newChat, false);
AndroidUtilities.runOnUIThread(new Runnable() {
@Override
public void run() {
MessagesController.getInstance().putEncryptedChat(newChat, false);
NotificationCenter.getInstance().postNotificationName(NotificationCenter.encryptedChatUpdated, newChat);
sendNotifyLayerMessage(newChat, null);
}
@ -1817,7 +1805,7 @@ public class SecretChatHelper {
}
TLRPC.EncryptedChat chat = (TLRPC.EncryptedChat) response;
chat.user_id = chat.participant_id;
chat.seq_in = 0;
chat.seq_in = -2;
chat.seq_out = 1;
chat.a_or_b = salt;
MessagesController.getInstance().putEncryptedChat(chat, false);