From c7891521220e85b91620403a7303914ad74324cc Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 5 May 2021 09:02:28 +0200 Subject: [PATCH] Exit the app when there is only this EOL account Signed-off-by: Joas Schilling --- .../talk/controllers/ConversationsListController.java | 7 ++++++- .../com/nextcloud/talk/utils/database/user/UserUtils.java | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java b/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java index 9a6fefeae..a5b564c64 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java @@ -301,7 +301,12 @@ public class ConversationsListController extends BaseController implements Searc .setNegativeButton(R.string.nc_cancel, new View.OnClickListener() { @Override public void onClick(View v) { - getRouter().pushController(RouterTransaction.with(new SwitchAccountController())); + if (userUtils.hasMultipleUsers()) { + getRouter().pushController(RouterTransaction.with(new SwitchAccountController())); + } else { + getActivity().finishAffinity(); + getActivity().finish(); + } } }) .setInstanceStateHandler(ID_DELETE_CONVERSATION_DIALOG, saveStateHandler) diff --git a/app/src/main/java/com/nextcloud/talk/utils/database/user/UserUtils.java b/app/src/main/java/com/nextcloud/talk/utils/database/user/UserUtils.java index 6871a740a..cf3458353 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/database/user/UserUtils.java +++ b/app/src/main/java/com/nextcloud/talk/utils/database/user/UserUtils.java @@ -48,6 +48,11 @@ public class UserUtils { .limit(1).get().value() > 0); } + public boolean hasMultipleUsers() { + return (dataStore.count(User.class).where(UserEntity.SCHEDULED_FOR_DELETION.notEqual(Boolean.TRUE)) + .get().value() > 1); + } + public List getUsers() { Result findUsersQueryResult = dataStore.select(User.class).where (UserEntity.SCHEDULED_FOR_DELETION.notEqual(true)).get();