Stop abusing "hide nicklist" setting to show/hide sidebar on mobile

This commit is contained in:
Lorenz Hübschle-Schneider 2017-04-17 18:04:21 +02:00 committed by Lorenz Hübschle-Schneider
parent f44b67489d
commit f3e0e3e047
1 changed files with 15 additions and 30 deletions

View File

@ -334,13 +334,14 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout',
if ($scope.swipeStatus === 1) {
/* do nothing */
} else if ($scope.swipeStatus === 0) {
$scope.showSidebar();
$scope.showSidebar(); // updates swipe status to 1
} else if ($scope.swipeStatus === -1) {
if (!settings.alwaysnicklist) $scope.closeNick();
$scope.swipeStatus = 0;
$scope.showNicklist = $scope.updateShowNicklist();
} else {
console.log("Weird swipe status:", $scope.swipeStatus);
$scope.swipeStatus = 0; // restore sanity
$scope.closeNick();
$scope.showNicklist = $scope.updateShowNicklist();
$scope.hideSidebar();
}
};
@ -348,15 +349,16 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout',
$rootScope.swipeLeft = function() {
// Depending on swipe state, ...
if ($scope.swipeStatus === 1) {
$scope.hideSidebar();
$scope.hideSidebar(); // updates swipe status to 0
} else if ($scope.swipeStatus === 0) {
$scope.openNick();
$scope.swipeStatus = -1;
$scope.showNicklist = $scope.updateShowNicklist();
} else if ($scope.swipeStatus === -1) {
/* do nothing */
} else {
console.log("Weird swipe status:", $scope.swipeStatus);
$scope.swipeStatus = 0; // restore sanity
$scope.closeNick();
$scope.showNicklist = $scope.updateShowNicklist();
$scope.hideSidebar();
}
};
@ -369,8 +371,6 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout',
_.each(document.getElementsByTagName('textarea'), function(elem) {
$timeout(function(){elem.blur();});
});
// hide nicklist
settings.nonicklist = true;
}
$scope.swipeStatus = 1;
};
@ -378,14 +378,11 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout',
$rootScope.hideSidebar = function() {
if (utils.isMobileUi()) {
// make sure nicklist is hidden
settings.nonicklist = true;
document.getElementById('sidebar').setAttribute('data-state', 'hidden');
document.getElementById('content').setAttribute('sidebar-state', 'hidden');
}
$scope.swipeStatus = 0;
};
// fugly hack
$scope.hideSidebar = function() { $rootScope.hideSidebar(); };
settings.addCallback('autoconnect', function(autoconnect) {
if (autoconnect && !$rootScope.connected && !$rootScope.sslError && !$rootScope.securityError && !$rootScope.errorMessage) {
@ -404,23 +401,6 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout',
}
};
// Open and close panels while on mobile devices through swiping
$scope.openNick = function() {
if (utils.isMobileUi()) {
if (settings.nonicklist) {
settings.nonicklist = false;
}
}
};
$scope.closeNick = function() {
if (utils.isMobileUi()) {
if (!settings.nonicklist) {
settings.nonicklist = true;
}
}
};
// Watch model and update channel sorting when it changes
var set_filter_predicate = function(orderbyserver) {
if ($rootScope.showJumpKeys) {
@ -588,6 +568,7 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout',
// Wrap in a condition so we save ourselves the $apply if nothing changes (50ms or more)
if ($scope.wasMobileUi && !utils.isMobileUi()) {
$scope.showSidebar();
$scope.showNicklist = $scope.updateShowNicklist();
}
$scope.wasMobileUi = utils.isMobileUi();
$scope.calculateNumLines();
@ -784,14 +765,18 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout',
if (!ab) {
return false;
}
// Check if option no nicklist is set
if (settings.nonicklist && !settings.alwaysnicklist) {
// Check if option no nicklist is set (ignored on mobile)
if (!utils.isMobileUi() && settings.nonicklist && !settings.alwaysnicklist) {
return false;
}
// Check if nicklist is empty
if (ab.isNicklistEmpty()) {
return false;
}
// Check whether to show nicklist on mobile
if (utils.isMobileUi() && !settings.alwaysnicklist && $scope.swipeStatus !== -1) {
return false;
}
return true;
};