Browse Source

Improved unread after idle logic

master
Igor Zhukov 10 years ago
parent
commit
5a405d10f9
  1. 10
      app/js/controllers.js
  2. 5
      app/js/directives.js

10
app/js/controllers.js

@ -890,6 +890,7 @@ angular.module('myApp.controllers', ['myApp.i18n']) @@ -890,6 +890,7 @@ angular.module('myApp.controllers', ['myApp.i18n'])
var peerID,
peerHistory = false,
unreadAfterIdle = false,
hasMore = false,
hasLess = false,
maxID = 0,
@ -1393,7 +1394,10 @@ angular.module('myApp.controllers', ['myApp.i18n']) @@ -1393,7 +1394,10 @@ angular.module('myApp.controllers', ['myApp.i18n'])
if (curPeer) {
$scope.historyState.typing.splice(0, $scope.historyState.typing.length);
$scope.$broadcast('ui_history_append_new', {my: addedMessage.my, idle: $rootScope.idle.isIDLE});
$scope.$broadcast('ui_history_append_new', {
my: addedMessage.my,
noScroll: unreadAfterIdle && !historyMessage.out && $rootScope.idle.isIDLE
});
if (addedMessage.my && $scope.historyUnreadAfter) {
delete $scope.historyUnreadAfter;
$scope.$broadcast('messages_unread_after');
@ -1406,6 +1410,7 @@ angular.module('myApp.controllers', ['myApp.i18n']) @@ -1406,6 +1410,7 @@ angular.module('myApp.controllers', ['myApp.i18n'])
!(history.messages[history.messages.length - 2] || {}).unread) {
$scope.historyUnreadAfter = historyMessage.id;
unreadAfterIdle = true;
$scope.$broadcast('messages_unread_after');
}
} else {
@ -1486,6 +1491,9 @@ angular.module('myApp.controllers', ['myApp.i18n']) @@ -1486,6 +1491,9 @@ angular.module('myApp.controllers', ['myApp.i18n'])
if (!newVal && $scope.curDialog && $scope.curDialog.peerID && !$scope.historyFilter.mediaType && !$scope.skippedHistory) {
AppMessagesManager.readHistory($scope.curDialog.inputPeer);
}
if (!newVal) {
unreadAfterIdle = false;
}
});
})

5
app/js/directives.js

@ -800,7 +800,10 @@ angular.module('myApp.directives', ['myApp.filters']) @@ -800,7 +800,10 @@ angular.module('myApp.directives', ['myApp.filters'])
curAnimation = false;
$scope.$on('ui_history_append_new', function (e, options) {
if ((!atBottom || options.idle) && !options.my) {
if (!atBottom && !options.my || options.noScroll) {
onContentLoaded(function () {
$(historyWrap).nanoScroller();
})
return;
}
var curAnimated = animated &&

Loading…
Cancel
Save