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

Loading…
Cancel
Save