mirror of
https://github.com/DrKLO/Telegram.git
synced 2025-03-29 17:40:27 +01:00
Bug fixes
This commit is contained in:
parent
f00aef78bd
commit
1122ab85d1
3 changed files with 50 additions and 45 deletions
|
@ -1548,14 +1548,14 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
dialog.unread_count = 0;
|
dialog.unread_count = 0;
|
||||||
NotificationCenter.getInstance().postNotificationName(dialogsNeedReload);
|
NotificationCenter.getInstance().postNotificationName(dialogsNeedReload);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
HashMap<Long, Integer> dialogsToUpdate = new HashMap<Long, Integer>();
|
HashMap<Long, Integer> dialogsToUpdate = new HashMap<Long, Integer>();
|
||||||
dialogsToUpdate.put(dialog_id, 0);
|
dialogsToUpdate.put(dialog_id, 0);
|
||||||
NotificationsController.getInstance().processDialogsUpdateRead(dialogsToUpdate, true);
|
NotificationsController.getInstance().processDialogsUpdateRead(dialogsToUpdate, true);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
if (req.max_id != Integer.MAX_VALUE) {
|
if (req.max_id != Integer.MAX_VALUE) {
|
||||||
ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() {
|
ConnectionsManager.getInstance().performRpc(req, new RPCRequest.RPCRequestDelegate() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -1634,14 +1634,13 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
dialog.unread_count = 0;
|
dialog.unread_count = 0;
|
||||||
NotificationCenter.getInstance().postNotificationName(dialogsNeedReload);
|
NotificationCenter.getInstance().postNotificationName(dialogsNeedReload);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
HashMap<Long, Integer> dialogsToUpdate = new HashMap<Long, Integer>();
|
HashMap<Long, Integer> dialogsToUpdate = new HashMap<Long, Integer>();
|
||||||
dialogsToUpdate.put(dialog_id, 0);
|
dialogsToUpdate.put(dialog_id, 0);
|
||||||
NotificationsController.getInstance().processDialogsUpdateRead(dialogsToUpdate, true);
|
NotificationsController.getInstance().processDialogsUpdateRead(dialogsToUpdate, true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (chat.ttl > 0 && was) {
|
if (chat.ttl > 0 && was) {
|
||||||
int serverTime = Math.max(ConnectionsManager.getInstance().getCurrentTime(), max_date);
|
int serverTime = Math.max(ConnectionsManager.getInstance().getCurrentTime(), max_date);
|
||||||
|
@ -2488,15 +2487,15 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
public void run(TLObject response, TLRPC.TL_error error) {
|
public void run(TLObject response, TLRPC.TL_error error) {
|
||||||
if (newMsgObj != null) {
|
if (newMsgObj != null) {
|
||||||
if (error == null) {
|
if (error == null) {
|
||||||
TLRPC.messages_SentEncryptedMessage res = (TLRPC.messages_SentEncryptedMessage) response;
|
final TLRPC.messages_SentEncryptedMessage res = (TLRPC.messages_SentEncryptedMessage) response;
|
||||||
newMsgObj.messageOwner.date = res.date;
|
newMsgObj.messageOwner.date = res.date;
|
||||||
if (res.file instanceof TLRPC.TL_encryptedFile) {
|
if (res.file instanceof TLRPC.TL_encryptedFile) {
|
||||||
processSentMessage(newMsgObj.messageOwner, null, res.file, req, originalPath);
|
processSentMessage(newMsgObj.messageOwner, null, res.file, req, originalPath);
|
||||||
}
|
}
|
||||||
MessagesStorage.getInstance().updateMessageStateAndId(newMsgObj.messageOwner.random_id, newMsgObj.messageOwner.id, newMsgObj.messageOwner.id, res.date, true);
|
|
||||||
MessagesStorage.getInstance().storageQueue.postRunnable(new Runnable() {
|
MessagesStorage.getInstance().storageQueue.postRunnable(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
MessagesStorage.getInstance().updateMessageStateAndId(newMsgObj.messageOwner.random_id, newMsgObj.messageOwner.id, newMsgObj.messageOwner.id, res.date, false);
|
||||||
Utilities.RunOnUIThread(new Runnable() {
|
Utilities.RunOnUIThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
@ -2528,7 +2527,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
public void run(TLObject response, TLRPC.TL_error error) {
|
public void run(TLObject response, TLRPC.TL_error error) {
|
||||||
if (error == null) {
|
if (error == null) {
|
||||||
final int oldId = newMsgObj.messageOwner.id;
|
final int oldId = newMsgObj.messageOwner.id;
|
||||||
ArrayList<TLRPC.Message> sentMessages = new ArrayList<TLRPC.Message>();
|
final ArrayList<TLRPC.Message> sentMessages = new ArrayList<TLRPC.Message>();
|
||||||
|
|
||||||
if (response instanceof TLRPC.TL_messages_sentMessage) {
|
if (response instanceof TLRPC.TL_messages_sentMessage) {
|
||||||
TLRPC.TL_messages_sentMessage res = (TLRPC.TL_messages_sentMessage) response;
|
TLRPC.TL_messages_sentMessage res = (TLRPC.TL_messages_sentMessage) response;
|
||||||
|
@ -2603,19 +2602,17 @@ public class MessagesController implements NotificationCenter.NotificationCenter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MessagesStorage.getInstance().updateMessageStateAndId(newMsgObj.messageOwner.random_id, oldId, newMsgObj.messageOwner.id, 0, true);
|
|
||||||
if (!sentMessages.isEmpty()) {
|
|
||||||
MessagesStorage.getInstance().putMessages(sentMessages, true, true);
|
|
||||||
}
|
|
||||||
MessagesStorage.getInstance().storageQueue.postRunnable(new Runnable() {
|
MessagesStorage.getInstance().storageQueue.postRunnable(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
MessagesStorage.getInstance().updateMessageStateAndId(newMsgObj.messageOwner.random_id, oldId, newMsgObj.messageOwner.id, 0, false);
|
||||||
|
MessagesStorage.getInstance().putMessages(sentMessages, true, false);
|
||||||
Utilities.RunOnUIThread(new Runnable() {
|
Utilities.RunOnUIThread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
newMsgObj.messageOwner.send_state = MESSAGE_SEND_STATE_SENT;
|
newMsgObj.messageOwner.send_state = MESSAGE_SEND_STATE_SENT;
|
||||||
NotificationCenter.getInstance().postNotificationName(messageReceivedByServer, oldId, newMsgObj.messageOwner.id, newMsgObj);
|
NotificationCenter.getInstance().postNotificationName(messageReceivedByServer, oldId, newMsgObj.messageOwner.id, newMsgObj);
|
||||||
sendingMessages.remove(oldId); //TODO CHECK THIS!!!
|
sendingMessages.remove(oldId);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -475,7 +475,7 @@ public class NotificationsController {
|
||||||
if (messageObjects.isEmpty()) {
|
if (messageObjects.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
notifyCheck = isLast;
|
boolean added = false;
|
||||||
|
|
||||||
int oldCount = popupMessages.size();
|
int oldCount = popupMessages.size();
|
||||||
HashMap<Long, Boolean> settingsCache = new HashMap<Long, Boolean>();
|
HashMap<Long, Boolean> settingsCache = new HashMap<Long, Boolean>();
|
||||||
|
@ -487,9 +487,10 @@ public class NotificationsController {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
long dialog_id = messageObject.getDialogId();
|
long dialog_id = messageObject.getDialogId();
|
||||||
if (dialog_id == openned_dialog_id) {
|
if (dialog_id == openned_dialog_id && ApplicationLoader.isScreenOn) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
added = true;
|
||||||
|
|
||||||
Boolean value = settingsCache.get(dialog_id);
|
Boolean value = settingsCache.get(dialog_id);
|
||||||
boolean isChat = (int)dialog_id < 0;
|
boolean isChat = (int)dialog_id < 0;
|
||||||
|
@ -508,6 +509,10 @@ public class NotificationsController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (added) {
|
||||||
|
notifyCheck = isLast;
|
||||||
|
}
|
||||||
|
|
||||||
if (!popupMessages.isEmpty() && oldCount != popupMessages.size()) {
|
if (!popupMessages.isEmpty() && oldCount != popupMessages.size()) {
|
||||||
if (ApplicationLoader.mainInterfacePaused || !ApplicationLoader.isScreenOn) {
|
if (ApplicationLoader.mainInterfacePaused || !ApplicationLoader.isScreenOn) {
|
||||||
MessageObject messageObject = messageObjects.get(0);
|
MessageObject messageObject = messageObjects.get(0);
|
||||||
|
|
|
@ -2860,12 +2860,10 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private void forwardSelectedMessages(long did, boolean fromMyName) {
|
||||||
public void didSelectDialog(MessagesActivity activity, long did, boolean param) {
|
|
||||||
if (dialog_id != 0 && (forwaringMessage != null || !selectedMessagesIds.isEmpty())) {
|
|
||||||
if (forwaringMessage != null) {
|
if (forwaringMessage != null) {
|
||||||
if (forwaringMessage.messageOwner.id > 0) {
|
if (forwaringMessage.messageOwner.id > 0) {
|
||||||
if (!param) {
|
if (!fromMyName) {
|
||||||
MessagesController.getInstance().sendMessage(forwaringMessage, did);
|
MessagesController.getInstance().sendMessage(forwaringMessage, did);
|
||||||
} else {
|
} else {
|
||||||
processForwardFromMe(forwaringMessage, did);
|
processForwardFromMe(forwaringMessage, did);
|
||||||
|
@ -2877,7 +2875,7 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
Collections.sort(ids);
|
Collections.sort(ids);
|
||||||
for (Integer id : ids) {
|
for (Integer id : ids) {
|
||||||
if (id > 0) {
|
if (id > 0) {
|
||||||
if (!param) {
|
if (!fromMyName) {
|
||||||
MessagesController.getInstance().sendMessage(selectedMessagesIds.get(id), did);
|
MessagesController.getInstance().sendMessage(selectedMessagesIds.get(id), did);
|
||||||
} else {
|
} else {
|
||||||
processForwardFromMe(selectedMessagesIds.get(id), did);
|
processForwardFromMe(selectedMessagesIds.get(id), did);
|
||||||
|
@ -2887,11 +2885,15 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
selectedMessagesCanCopyIds.clear();
|
selectedMessagesCanCopyIds.clear();
|
||||||
selectedMessagesIds.clear();
|
selectedMessagesIds.clear();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void didSelectDialog(MessagesActivity activity, long did, boolean param) {
|
||||||
|
if (dialog_id != 0 && (forwaringMessage != null || !selectedMessagesIds.isEmpty())) {
|
||||||
|
|
||||||
if (did != dialog_id) {
|
if (did != dialog_id) {
|
||||||
int lower_part = (int)did;
|
int lower_part = (int)did;
|
||||||
if (lower_part != 0) {
|
if (lower_part != 0) {
|
||||||
activity.removeSelfFromStack();
|
|
||||||
|
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
args.putBoolean("scrollToTopOnResume", scrollToTopOnResume);
|
args.putBoolean("scrollToTopOnResume", scrollToTopOnResume);
|
||||||
if (lower_part > 0) {
|
if (lower_part > 0) {
|
||||||
|
@ -2899,14 +2901,15 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
|
||||||
} else if (lower_part < 0) {
|
} else if (lower_part < 0) {
|
||||||
args.putInt("chat_id", -lower_part);
|
args.putInt("chat_id", -lower_part);
|
||||||
}
|
}
|
||||||
presentFragment(new ChatActivity(args));
|
presentFragment(new ChatActivity(args), true);
|
||||||
|
|
||||||
removeSelfFromStack();
|
removeSelfFromStack();
|
||||||
|
forwardSelectedMessages(did, param);
|
||||||
} else {
|
} else {
|
||||||
activity.finishFragment();
|
activity.finishFragment();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
activity.finishFragment();
|
activity.finishFragment();
|
||||||
|
forwardSelectedMessages(did, param);
|
||||||
chatListView.setSelectionFromTop(messages.size() - 1, -100000 - chatListView.getPaddingTop());
|
chatListView.setSelectionFromTop(messages.size() - 1, -100000 - chatListView.getPaddingTop());
|
||||||
scrollToTopOnResume = true;
|
scrollToTopOnResume = true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue