mobile: improve Android back key behavior

There are two places where we try to prevemt unintended app exits.
Once, in the onBackRequested signal handler on the dive list. This was
missing special handling for the situation where one of the drawers was
open.
The second place is the onClosing signal handler in main.qml. Naively I
thought that this was enough to catch all cases where we were about to
exit the app, but apparently an explicit manager.quit() is a bit too
forceful and doesn't get to that signal handler.

With this commit we check for open drawers in both places. Belts and
suspenders, I guess.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2020-03-30 09:43:18 -07:00
parent 716c3c3ed5
commit 085b5ff0db
2 changed files with 10 additions and 1 deletions

View file

@ -491,7 +491,15 @@ Kirigami.ScrollablePage {
event.accepted = true;
}
if (!startPage.visible) {
if (Qt.platform.os != "ios") {
if (globalDrawer.visible) {
globalDrawer.close()
event.accepted = true
}
if (contextDrawer.visible) {
contextDrawer.close()
event.accepted = true
}
if (event.accepted === false && Qt.platform.os !== "ios") {
manager.quit()
}
// let's make sure Kirigami doesn't quit on our behalf

View file

@ -881,6 +881,7 @@ if you have network connectivity and want to sync your data to cloud storage."),
manager.appInitialized()
}
onClosing: {
// this duplicates the check that is already in the onBackRequested signal handler of the DiveList
if (globalDrawer.visible) {
globalDrawer.close()
close.accepted = false