Browse Source

Improved PUSH-notification when the app is launched

Possbly fixes #1301
master
Igor Zhukov 7 years ago
parent
commit
35f065dee1
  1. 53
      app/js/messages_manager.js

53
app/js/messages_manager.js

@ -35,11 +35,12 @@ angular.module('myApp.services')
var incrementMessageViewsTimeout = false var incrementMessageViewsTimeout = false
var maxSeenID = false var maxSeenID = false
if (Config.Modes.packed) { Storage.get('max_seen_msg').then(function (maxID) {
Storage.get('max_seen_msg').then(function (maxID) { if (maxID &&
maxSeenID = maxID || 0 !AppMessagesIDsManager.getMessageIDInfo(maxID)[1]) {
}) maxSeenID = maxID
} }
})
var dateOrTimeFilter = $filter('dateOrTime') var dateOrTimeFilter = $filter('dateOrTime')
var fwdMessagesPluralize = _.pluralize('conversation_forwarded_X_messages') var fwdMessagesPluralize = _.pluralize('conversation_forwarded_X_messages')
@ -190,21 +191,21 @@ angular.module('myApp.services')
} }
if ( if (
Config.Modes.packed &&
!channelID && !channelID &&
dialog.unread_count > 0 && dialog.unread_count > 0 &&
maxSeenID && maxSeenID &&
dialog.top_message > maxSeenID dialog.top_message > maxSeenID &&
message.pFlags.unread &&
!message.pFlags.out &&
!message.pFlags.silent
) { ) {
var notifyPeer = message.flags & 16 ? message.from_id : peerID var notifyPeer = message.flags & 16 ? message.from_id : peerID
if (message.pFlags.unread && NotificationsManager.getPeerMuted(notifyPeer).then(function (muted) {
!message.pFlags.out && if (!muted) {
!message.pFlags.silent) { notifyAboutMessage(message)
NotificationsManager.getPeerMuted(notifyPeer).then(function (muted) { }
if (!muted) { })
notifyAboutMessage(message)
}
})
}
} }
} }
@ -245,7 +246,7 @@ angular.module('myApp.services')
} }
if (!maxSeenIdIncremented && if (!maxSeenIdIncremented &&
!AppPeersManager.isChannel(AppPeersManager.getPeerID(dialog.peer))) { !AppPeersManager.isChannel(AppPeersManager.getPeerID(dialog.peer))) {
incrementMaxSeenID(dialog.top_message) incrementMaxSeenID(dialog.top_message)
maxSeenIdIncremented = true maxSeenIdIncremented = true
} }
@ -2595,11 +2596,15 @@ angular.module('myApp.services')
} }
function incrementMaxSeenID (maxID) { function incrementMaxSeenID (maxID) {
if (maxSeenID !== false && maxID && maxID > maxSeenID) { if (!maxID || !(!maxSeenID || maxID > maxSeenID)) {
Storage.set({ return false
max_seen_msg: maxID
})
} }
Storage.set({
max_seen_msg: maxID
})
MtpApiManager.invokeApi('messages.receivedMessages', {
max_id: maxID
})
} }
function notifyAboutMessage (message, options) { function notifyAboutMessage (message, options) {
@ -2945,8 +2950,8 @@ angular.module('myApp.services')
} }
if (inboxUnread && if (inboxUnread &&
($rootScope.selectedPeerID != peerID || $rootScope.idle.isIDLE) && ($rootScope.selectedPeerID != peerID || $rootScope.idle.isIDLE) &&
!message.pFlags.silent) { !message.pFlags.silent) {
var notifyPeer = message.flags & 16 ? message.from_id : peerID var notifyPeer = message.flags & 16 ? message.from_id : peerID
var notifyPeerToHandle = notificationsToHandle[notifyPeer] var notifyPeerToHandle = notificationsToHandle[notifyPeer]
if (notifyPeerToHandle === undefined) { if (notifyPeerToHandle === undefined) {
@ -2972,7 +2977,9 @@ angular.module('myApp.services')
} }
} }
incrementMaxSeenID(message.id) if (!AppPeersManager.isChannel(peerID)) {
incrementMaxSeenID(message.id)
}
break break
case 'updateEditMessage': case 'updateEditMessage':

Loading…
Cancel
Save