Ask user before close all tabs

This commit is contained in:
Carmelo Messina 2021-11-20 18:56:58 +01:00
parent 785af3a5b2
commit 87c9811b0f
No known key found for this signature in database
GPG key ID: 968894BE688289FD

View file

@ -0,0 +1,62 @@
From: uazo <uazo@users.noreply.github.com>
Date: Sat, 20 Nov 2021 17:42:41 +0000
Subject: Ask user before close all tabs
---
.../chrome/browser/ChromeTabbedActivity.java | 20 +++++++++++++++++--
.../strings/android_chrome_strings.grd | 3 +++
2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -33,6 +33,7 @@ import androidx.annotation.VisibleForTesting;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.LifecycleRegistry;
+import androidx.appcompat.app.AlertDialog;
import org.chromium.base.CallbackController;
import org.chromium.base.CommandLine;
@@ -2040,8 +2041,23 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
ApplicationLifetime.terminate(false);
} else if (id == R.id.close_all_tabs_menu_id) {
// Close both incognito and normal tabs
- getTabModelSelector().closeAllTabs();
- RecordUserAction.record("MobileMenuCloseAllTabs");
+ AlertDialog.Builder alert =
+ new AlertDialog.Builder(ChromeTabbedActivity.this);
+ AlertDialog alertDialog =
+ alert.setTitle(R.string.menu_close_all_tabs)
+ .setMessage(R.string.menu_ask_to_close_all_tabs)
+ .setPositiveButton(android.R.string.ok,
+ (dialog, which) -> {
+ getTabModelSelector().closeAllTabs();
+ dialog.dismiss();
+ })
+ .setNegativeButton(android.R.string.cancel,
+ (dialog, which) -> {
+ dialog.dismiss();
+ })
+ .create();
+ alertDialog.getDelegate().setHandleNativeActionModesEnabled(false);
+ alertDialog.show();
} else if (id == R.id.bookmark_all_tabs_menu_id) {
bookmarkAllTabs();
} else if (id == R.id.close_all_incognito_tabs_menu_id) {
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
@@ -3333,6 +3333,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
<message name="IDS_MENU_CLOSE_ALL_TABS" desc="Menu item for closing all open tabs. [CHAR_LIMIT=27]">
Close all tabs
</message>
+ <message name="IDS_MENU_ASK_TO_CLOSE_ALL_TABS" desc="Label for the notice of closing all open tabs. [CHAR_LIMIT=27]">
+ Do you want to close all tabs?
+ </message>
<message name="IDS_MENU_CLOSE_ALL_INCOGNITO_TABS" desc="Menu item for closing all open Incognito tabs. [CHAR_LIMIT=27]">
Close Incognito tabs
</message>
--
2.20.1