Bug fixes

This commit is contained in:
DrKLO 2014-07-15 01:27:26 +04:00
parent 1a9632e042
commit a2a1868048
3 changed files with 21 additions and 0 deletions

View file

@ -527,6 +527,7 @@ public class MessagesController implements NotificationCenter.NotificationCenter
public void processLoadedUserPhotos(final TLRPC.photos_Photos res, final int uid, final int offset, final int count, final long max_id, final boolean fromCache, final int classGuid) { public void processLoadedUserPhotos(final TLRPC.photos_Photos res, final int uid, final int offset, final int count, final long max_id, final boolean fromCache, final int classGuid) {
if (!fromCache) { if (!fromCache) {
MessagesStorage.getInstance().putUsersAndChats(res.users, null, true, true);
MessagesStorage.getInstance().putUserPhotos(uid, res); MessagesStorage.getInstance().putUserPhotos(uid, res);
} else if (res == null || res.photos.isEmpty()) { } else if (res == null || res.photos.isEmpty()) {
loadUserPhotos(uid, offset, count, max_id, false, classGuid); loadUserPhotos(uid, offset, count, max_id, false, classGuid);
@ -535,6 +536,16 @@ public class MessagesController implements NotificationCenter.NotificationCenter
Utilities.RunOnUIThread(new Runnable() { Utilities.RunOnUIThread(new Runnable() {
@Override @Override
public void run() { public void run() {
for (TLRPC.User user : res.users) {
if (fromCache) {
users.putIfAbsent(user.id, user);
} else {
users.put(user.id, user);
if (user.id == UserConfig.getClientUserId()) {
UserConfig.setCurrentUser(user);
}
}
}
NotificationCenter.getInstance().postNotificationName(userPhotosLoaded, uid, offset, count, fromCache, classGuid, res.photos); NotificationCenter.getInstance().postNotificationName(userPhotosLoaded, uid, offset, count, fromCache, classGuid, res.photos);
} }
}); });

View file

@ -115,6 +115,8 @@ public class ChatBaseCell extends BaseCell {
private CheckForLongPress pendingCheckForLongPress = null; private CheckForLongPress pendingCheckForLongPress = null;
private CheckForTap pendingCheckForTap = null; private CheckForTap pendingCheckForTap = null;
private int last_send_state = 0;
private final class CheckForTap implements Runnable { private final class CheckForTap implements Runnable {
public void run() { public void run() {
if (pendingCheckForLongPress == null) { if (pendingCheckForLongPress == null) {
@ -212,6 +214,10 @@ public class ChatBaseCell extends BaseCell {
if (currentMessageObject == null || currentUser == null) { if (currentMessageObject == null || currentUser == null) {
return false; return false;
} }
if (last_send_state != currentMessageObject.messageOwner.send_state) {
return true;
}
TLRPC.User newUser = MessagesController.getInstance().users.get(currentMessageObject.messageOwner.from_id); TLRPC.User newUser = MessagesController.getInstance().users.get(currentMessageObject.messageOwner.from_id);
TLRPC.FileLocation newPhoto = null; TLRPC.FileLocation newPhoto = null;
@ -242,6 +248,7 @@ public class ChatBaseCell extends BaseCell {
public void setMessageObject(MessageObject messageObject) { public void setMessageObject(MessageObject messageObject) {
currentMessageObject = messageObject; currentMessageObject = messageObject;
last_send_state = messageObject.messageOwner.send_state;
isPressed = false; isPressed = false;
isCheckPressed = true; isCheckPressed = true;
isAvatarVisible = false; isAvatarVisible = false;

View file

@ -2836,10 +2836,13 @@ public class ChatActivity extends BaseFragment implements NotificationCenter.Not
if (messageObject.messageOwner.media.photo instanceof TLRPC.TL_photo) { if (messageObject.messageOwner.media.photo instanceof TLRPC.TL_photo) {
MessagesController.getInstance().sendMessage((TLRPC.TL_photo)messageObject.messageOwner.media.photo, null, did); MessagesController.getInstance().sendMessage((TLRPC.TL_photo)messageObject.messageOwner.media.photo, null, did);
} else if (messageObject.messageOwner.media.audio instanceof TLRPC.TL_audio) { } else if (messageObject.messageOwner.media.audio instanceof TLRPC.TL_audio) {
messageObject.messageOwner.media.audio.path = messageObject.messageOwner.attachPath;
MessagesController.getInstance().sendMessage((TLRPC.TL_audio)messageObject.messageOwner.media.audio, did); MessagesController.getInstance().sendMessage((TLRPC.TL_audio)messageObject.messageOwner.media.audio, did);
} else if (messageObject.messageOwner.media.video instanceof TLRPC.TL_video) { } else if (messageObject.messageOwner.media.video instanceof TLRPC.TL_video) {
messageObject.messageOwner.media.video.path = messageObject.messageOwner.attachPath;
MessagesController.getInstance().sendMessage((TLRPC.TL_video)messageObject.messageOwner.media.video, null, did); MessagesController.getInstance().sendMessage((TLRPC.TL_video)messageObject.messageOwner.media.video, null, did);
} else if (messageObject.messageOwner.media.document instanceof TLRPC.TL_document) { } else if (messageObject.messageOwner.media.document instanceof TLRPC.TL_document) {
messageObject.messageOwner.media.document.path = messageObject.messageOwner.attachPath;
MessagesController.getInstance().sendMessage((TLRPC.TL_document)messageObject.messageOwner.media.document, null, did); MessagesController.getInstance().sendMessage((TLRPC.TL_document)messageObject.messageOwner.media.document, null, did);
} else if (messageObject.messageOwner.media.geo instanceof TLRPC.TL_geoPoint) { } else if (messageObject.messageOwner.media.geo instanceof TLRPC.TL_geoPoint) {
MessagesController.getInstance().sendMessage(messageObject.messageOwner.media.geo.lat, messageObject.messageOwner.media.geo._long, did); MessagesController.getInstance().sendMessage(messageObject.messageOwner.media.geo.lat, messageObject.messageOwner.media.geo._long, did);