From 25e1a526b309d5508724c5e38daac72db514898c Mon Sep 17 00:00:00 2001 From: xtaodada Date: Mon, 26 Feb 2024 16:52:05 +0800 Subject: [PATCH] chore: add back delete unavailable proxy --- .../org/telegram/ui/ProxyListActivity.java | 38 ++++++++++++++++--- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProxyListActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ProxyListActivity.java index 57e4b84493..ba80f37005 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProxyListActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProxyListActivity.java @@ -67,9 +67,7 @@ import java.util.ArrayList; import java.util.Collections; -import java.util.LinkedList; import java.util.List; -import java.util.TreeSet; import tw.nekomimi.nekogram.utils.AlertUtil; import tw.nekomimi.nekogram.utils.ProxyUtil; @@ -366,6 +364,7 @@ public void onFragmentDestroy() { private final static int na_menu_add_import_from_clipboard = 1003; private final static int na_menu_retest_ping = 1004; private final static int na_menu_delete_all = 1005; + private final static int na_menu_delete_unavailable = 1006; @Override public View createView(Context context) { @@ -401,13 +400,42 @@ public void onItemClick(int id) { } } }); - otherItem.addSubItem(na_menu_delete_all, LocaleController.getString("DeleteAllServer", R.string.DeleteAllServer)).setOnClickListener((v) -> { + otherItem.addSubItem(na_menu_delete_all, LocaleController.getString("DeleteAllServer", R.string.DeleteAllServer)).setOnClickListener((v) -> AlertUtil.showConfirm(getParentActivity(), + LocaleController.getString("DeleteAllServer", R.string.DeleteAllServer), + R.drawable.baseline_delete_24, LocaleController.getString("Delete", R.string.Delete), + true, () -> { + SharedConfig.deleteAllProxy(); + updateRows(true); + }) + ); + otherItem.addSubItem(na_menu_delete_unavailable, LocaleController.getString("DeleteUnavailableServer", R.string.DeleteUnavailableServer)).setOnClickListener((v) -> { AlertUtil.showConfirm(getParentActivity(), - LocaleController.getString("DeleteAllServer", R.string.DeleteAllServer), + LocaleController.getString("DeleteUnavailableServer", R.string.DeleteUnavailableServer), R.drawable.baseline_delete_24, LocaleController.getString("Delete", R.string.Delete), true, () -> { - SharedConfig.deleteAllProxy(); + for (SharedConfig.ProxyInfo info : SharedConfig.getProxyList()) { + if (info.checking) { + continue; + } + if (!info.available) { + SharedConfig.deleteProxy(info); + } + } + if (SharedConfig.currentProxy == null) { + useProxyForCalls = false; + useProxySettings = false; + } + NotificationCenter.getGlobalInstance().removeObserver(ProxyListActivity.this, NotificationCenter.proxySettingsChanged); + NotificationCenter.getGlobalInstance().postNotificationName(NotificationCenter.proxySettingsChanged); + NotificationCenter.getGlobalInstance().addObserver(ProxyListActivity.this, NotificationCenter.proxySettingsChanged); updateRows(true); + if (listAdapter != null) { + if (SharedConfig.currentProxy == null) { + listAdapter.notifyItemChanged(useProxyRow, ListAdapter.PAYLOAD_CHECKED_CHANGED); + listAdapter.notifyItemChanged(callsRow, ListAdapter.PAYLOAD_CHECKED_CHANGED); + } + listAdapter.clearSelected(); + } }); });