Improved unread after idle logic

This commit is contained in:
Igor Zhukov 2015-02-14 23:17:20 +03:00
parent 49f95ef6d2
commit 5a405d10f9
2 changed files with 13 additions and 2 deletions

View File

@ -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'])
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'])
!(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'])
if (!newVal && $scope.curDialog && $scope.curDialog.peerID && !$scope.historyFilter.mediaType && !$scope.skippedHistory) {
AppMessagesManager.readHistory($scope.curDialog.inputPeer);
}
if (!newVal) {
unreadAfterIdle = false;
}
});
})

View File

@ -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 &&