[Android] Add an option Show/Hide Undo bar when tab[s] closed.

This commit is contained in:
Jagadesh P
2024-10-21 00:00:34 -07:00
committed by Brian Clifton
parent 38b470fc73
commit 1773dacfbd
10 changed files with 104 additions and 0 deletions
@@ -79,6 +79,8 @@ public final class BravePreferenceKeys {
public static final String DAY_ZERO_EXPT_FLAG = "day_zero_expt_flag";
public static final String SHOW_UNDO_ON_TAB_CLOSED = "show_undo_on_tab_closed";
/*
* Checks if preference key is used in Brave.
* It's no op currently. We might reconsider
@@ -50,6 +50,7 @@ public class AppearancePreferences extends BravePreferenceFragment
public static final String PREF_BRAVE_ENABLE_TAB_GROUPS = "brave_enable_tab_groups";
public static final String PREF_BRAVE_ENABLE_SPEEDREADER = "brave_enable_speedreader";
public static final String PREF_ENABLE_MULTI_WINDOWS = "enable_multi_windows";
public static final String PREF_SHOW_UNDO_ON_TAB_CLOSED = "show_undo_on_tab_closed";
private BraveRewardsNativeWorker mBraveRewardsNativeWorker;
@@ -172,6 +173,17 @@ public class AppearancePreferences extends BravePreferenceFragment
.setChecked(BraveMultiWindowUtils.shouldEnableMultiWindows());
}
}
ChromeSwitchPreference showUndoButtonOnTabClosed =
(ChromeSwitchPreference) findPreference(PREF_SHOW_UNDO_ON_TAB_CLOSED);
if (showUndoButtonOnTabClosed != null) {
showUndoButtonOnTabClosed.setOnPreferenceChangeListener(this);
((ChromeSwitchPreference) showUndoButtonOnTabClosed)
.setChecked(
ChromeSharedPreferences.getInstance()
.readBoolean(
BravePreferenceKeys.SHOW_UNDO_ON_TAB_CLOSED, true));
}
}
@Override
@@ -257,6 +269,9 @@ public class AppearancePreferences extends BravePreferenceFragment
}
}
BraveMultiWindowUtils.updateEnableMultiWindows((boolean) newValue);
} else if (PREF_SHOW_UNDO_ON_TAB_CLOSED.equals(key)) {
ChromeSharedPreferences.getInstance()
.writeBoolean(BravePreferenceKeys.SHOW_UNDO_ON_TAB_CLOSED, (boolean) newValue);
}
if (shouldRelaunch) {
BraveRelaunchUtils.askForRelaunch(getActivity());
@@ -0,0 +1,40 @@
/* Copyright (c) 2024 The Brave Authors. All rights reserved.
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at https://mozilla.org/MPL/2.0/. */
package org.chromium.chrome.browser.undo_tab_close_snackbar;
import android.content.Context;
import androidx.annotation.Nullable;
import org.chromium.base.BravePreferenceKeys;
import org.chromium.base.supplier.Supplier;
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
import java.util.List;
public class BraveUndoBarController extends UndoBarController {
public BraveUndoBarController(
Context context,
TabModelSelector selector,
SnackbarManageable snackbarManageable,
@Nullable Supplier<Boolean> dialogVisibilitySupplier) {
super(context, selector, snackbarManageable, dialogVisibilitySupplier);
}
@Override
protected void showUndoBar(List<Tab> closedTabs, boolean isAllTabs) {
boolean should_show_undo_bar =
ChromeSharedPreferences.getInstance()
.readBoolean(BravePreferenceKeys.SHOW_UNDO_ON_TAB_CLOSED, true);
if (!should_show_undo_bar) {
return;
}
super.showUndoBar(closedTabs, isAllTabs);
}
}
@@ -49,6 +49,12 @@
android:title="@string/enable_multi_windows_title"
android:summary="@string/enable_multi_windows_summary" />
<org.chromium.components.browser_ui.settings.ChromeSwitchPreference
android:key="show_undo_on_tab_closed"
android:title="@string/show_undo_on_tab_closed"
android:summaryOn="@string/text_on"
android:summaryOff="@string/text_off" />
<Preference
android:fragment="org.chromium.chrome.browser.night_mode.settings.BraveThemePreferences"
android:key="ui_theme"