From 494412bc2ddbe4699b7f5a6fe16975a6d7e62c0e Mon Sep 17 00:00:00 2001 From: LiuYi0526 <50787709+LiuYi0526@users.noreply.github.com> Date: Fri, 22 Nov 2024 00:01:56 +0800 Subject: [PATCH] Reapply "style: limit max account count" This reverts commit a574e2a075208f26a0976a792b6a803d6b34e02e. --- .../org/telegram/messenger/UserConfig.java | 4 ++-- .../java/org/telegram/ui/LaunchActivity.java | 18 +++++++++++++----- .../java/org/telegram/ui/LogoutActivity.java | 9 ++++++++- .../java/org/telegram/ui/ProfileActivity.java | 6 +++++- 4 files changed, 28 insertions(+), 9 deletions(-) diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/UserConfig.java b/TMessagesProj/src/main/java/org/telegram/messenger/UserConfig.java index de747b7010..731ecbb6bf 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/UserConfig.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/UserConfig.java @@ -31,8 +31,8 @@ public class UserConfig extends BaseController { public static int selectedAccount; - //public final static int MAX_ACCOUNT_DEFAULT_COUNT = 16; - //public final static int MAX_ACCOUNT_COUNT = 4; + public final static int MAX_ACCOUNT_DEFAULT_COUNT = 8; + public final static int MAX_ACCOUNT_COUNT = 10; private final Object sync = new Object(); private volatile boolean configLoaded; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java index 43c4aa9393..838a1f7cdc 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java @@ -598,19 +598,27 @@ public boolean drawChild(Canvas canvas, View child, long drawingTime) { drawerLayoutContainer.closeDrawer(false); } else if (view instanceof DrawerAddCell) { int freeAccount; + int freeAccounts = UserConfig.MAX_ACCOUNT_COUNT - SharedConfig.activeAccounts.size(); for (int account = 0; ; account++) { if (!SharedConfig.activeAccounts.contains(account)) { freeAccount = account; break; } } -// if (!UserConfig.hasPremiumOnAccounts()) { -// freeAccounts -= (UserConfig.MAX_ACCOUNT_COUNT - UserConfig.MAX_ACCOUNT_DEFAULT_COUNT); -// } - if (freeAccount >= 0) { + if (!UserConfig.hasPremiumOnAccounts()) { + freeAccounts -= (UserConfig.MAX_ACCOUNT_COUNT - UserConfig.MAX_ACCOUNT_DEFAULT_COUNT); + } + if (freeAccounts > 0 && freeAccount >= 0) { presentFragment(new LoginActivity(freeAccount)); + drawerLayoutContainer.closeDrawer(false); + } else if (!UserConfig.hasPremiumOnAccounts()) { + if (actionBarLayout.getFragmentStack().size() > 0) { + BaseFragment fragment = actionBarLayout.getFragmentStack().get(0); + LimitReachedBottomSheet limitReachedBottomSheet = new LimitReachedBottomSheet(fragment, this, TYPE_ACCOUNTS, currentAccount, null); + fragment.showDialog(limitReachedBottomSheet); + limitReachedBottomSheet.onShowPremiumScreenRunnable = () -> drawerLayoutContainer.closeDrawer(false); + } } - drawerLayoutContainer.closeDrawer(false); } else if (view instanceof DrawerActionCheckCell) { int id = drawerLayoutAdapter.getId(position); // DrawerLayoutAdapter.CheckItem item = drawerLayoutAdapter.getItem(position); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LogoutActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LogoutActivity.java index bcae119d73..9d6b5878f3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LogoutActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LogoutActivity.java @@ -118,14 +118,21 @@ public void onItemClick(int id) { listView.setOnItemClickListener((view, position, x, y) -> { if (position == addAccountRow) { int freeAccount; + int freeAccounts = UserConfig.MAX_ACCOUNT_COUNT - SharedConfig.activeAccounts.size(); for (int account = 0;; account++) { if (!SharedConfig.activeAccounts.contains(account)) { freeAccount = account; break; } } - if (freeAccount >= 0) { + if (!UserConfig.hasPremiumOnAccounts()) { + freeAccounts -= (UserConfig.MAX_ACCOUNT_COUNT - UserConfig.MAX_ACCOUNT_DEFAULT_COUNT); + } + if (freeAccounts > 0 && freeAccount >= 0) { presentFragment(new LoginActivity(freeAccount)); + } else if (!UserConfig.hasPremiumOnAccounts()) { + LimitReachedBottomSheet limitReachedBottomSheet = new LimitReachedBottomSheet(this, getContext(), TYPE_ACCOUNTS, currentAccount, null); + showDialog(limitReachedBottomSheet); } } else if (position == passcodeRow) { presentFragment(PasscodeActivity.determineOpenFragment()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java index 67eaafb2fb..cf073c57f4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java @@ -12793,13 +12793,17 @@ private SearchResult[] onCreateSearchArray() { new SearchResult(501, LocaleController.getString(R.string.ChangePhoneNumber), 0, () -> presentFragment(new ActionIntroActivity(ActionIntroActivity.ACTION_TYPE_CHANGE_PHONE_NUMBER))), new SearchResult(502, LocaleController.getString(R.string.AddAnotherAccount), 0, () -> { int freeAccount; + int freeAccounts = UserConfig.MAX_ACCOUNT_COUNT - SharedConfig.activeAccounts.size(); for (int account = 0; ; account++) { if (!SharedConfig.activeAccounts.contains(account)) { freeAccount = account; break; } } - if (freeAccount >= 0) { + if (!UserConfig.hasPremiumOnAccounts()) { + freeAccounts -= (UserConfig.MAX_ACCOUNT_COUNT - UserConfig.MAX_ACCOUNT_DEFAULT_COUNT); + } + if (freeAccounts > 0 && freeAccount >= 0) { presentFragment(new LoginActivity(freeAccount)); } }),