diff --git a/app/css/app.css b/app/css/app.css
index 7bc84f59..fce1cadc 100644
--- a/app/css/app.css
+++ b/app/css/app.css
@@ -2469,10 +2469,6 @@ a.contacts_modal_contact:hover .contacts_modal_contact_status {
.im_page_peer_not_selected .im_dialog_message {
display: block;
}
-
- .im_emoji_btn {
- display: none;
- }
}
diff --git a/app/js/services.js b/app/js/services.js
index d46eee4b..91f9fbfc 100644
--- a/app/js/services.js
+++ b/app/js/services.js
@@ -920,26 +920,25 @@ angular.module('myApp.services', [])
historyStorage = historiesStorage[peerID],
foundDialog = getDialogByPeerID(peerID);
- if (!historyStorage ||
- !historyStorage.history.length ||
- foundDialog[0] && !foundDialog[0].unread_count) {
- // console.log('bad1', historyStorage, foundDialog[0]);
- return false;
- }
+ if (!foundDialog[0] || !foundDialog[0].unread_count) {
- var messageID,
- message;
- // console.log(historyStorage);
- for (i = 0; i < historyStorage.history.length; i++) {
- messageID = historyStorage.history[i];
- message = messagesStorage[messageID];
- // console.log('ms', message);
- if (message && !message.out) {
- if (message.unread) {
- // console.log('unread');
+ if (!historyStorage && !historyStorage.history.length) {
+ return false;
+ }
+
+ var messageID,
+ message,
+ foundUnread = false;
+ for (i = historyStorage.history.length; i >= 0; i--) {
+ messageID = historyStorage.history[i];
+ message = messagesStorage[messageID];
+ // console.log('ms', message);
+ if (message && !message.out && message.unread) {
+ foundUnread = true;
break;
}
- // console.log('bad2', message);
+ }
+ if (!foundUnread) {
return false;
}
}
@@ -959,17 +958,19 @@ angular.module('myApp.services', [])
});
- var messageID, message, i, peerID, foundDialog, dialog;
- for (i = 0; i < historyStorage.history.length; i++) {
- messageID = historyStorage.history[i];
- message = messagesStorage[messageID];
- if (message && !message.out) {
- message.unread = false;
- if (messagesForHistory[messageID]) {
- messagesForHistory[messageID].unread = false;
- }
- if (messagesForDialogs[messageID]) {
- messagesForDialogs[messageID].unread = false;
+ if (historyStorage && historyStorage.history.length) {
+ var messageID, message, i, peerID, foundDialog, dialog;
+ for (i = 0; i < historyStorage.history.length; i++) {
+ messageID = historyStorage.history[i];
+ message = messagesStorage[messageID];
+ if (message && !message.out) {
+ message.unread = false;
+ if (messagesForHistory[messageID]) {
+ messagesForHistory[messageID].unread = false;
+ }
+ if (messagesForDialogs[messageID]) {
+ messagesForDialogs[messageID].unread = false;
+ }
}
}
}
@@ -2364,6 +2365,7 @@ angular.module('myApp.services', [])
return { category: cat, row: row, column: column };
}
}
+ console.error('emoji not found in spritesheet', emojiCode);
return null;
}
@@ -2420,10 +2422,11 @@ angular.module('myApp.services', [])
}
else if (match[6]) {
- if (emojiCode = emojiMap[match[6]]) {
- emojiFound = true;
+ if ((emojiCode = emojiMap[match[6]]) &&
+ (emojiCoords = getEmojiSpritesheetCoords(emojiCode))) {
+
emojiTitle = encodeEntities(emojiData[emojiCode][1][0]);
- emojiCoords = getEmojiSpritesheetCoords(emojiCode);
+ emojiFound = true;
html.push(
'
-
+
Clear History
+
+ Delete Chat
+
Cancel