From: uazo Date: Mon, 17 May 2021 12:30:12 +0000 Subject: Add support for ISupportHelpAndFeedback Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../chrome/browser/settings/SettingsActivity.java | 9 +++++++-- .../components/browser_ui/settings/SettingsUtils.java | 4 ++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java @@ -56,6 +56,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory; import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController; +import org.chromium.components.browser_ui.settings.SettingsUtils; import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; import org.chromium.components.browser_ui.settings.SettingsFragment; @@ -466,8 +467,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity finishCurrentSettings(mainFragment); return true; } else if (item.getItemId() == R.id.menu_id_general_help) { - HelpAndFeedbackLauncherImpl.getForProfile(mProfile) - .show(this, getString(R.string.help_context_settings), null); + if (mainFragment instanceof SettingsUtils.ISupportHelpAndFeedback) { + ((SettingsUtils.ISupportHelpAndFeedback)mainFragment).onHelpAndFeebackPressed(); + } else { + HelpAndFeedbackLauncherImpl.getForProfile(mProfile) + .show(this, getString(R.string.help_context_settings), null); + } return true; } return super.onOptionsItemSelected(item); diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java --- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java +++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java @@ -28,6 +28,10 @@ import org.chromium.ui.drawable.StateListDrawableBuilder; /** A helper class for Settings. */ @NullMarked public class SettingsUtils { + public interface ISupportHelpAndFeedback { + void onHelpAndFeebackPressed(); + } + /** * A helper that is used to load preferences from XML resources without causing a * StrictModeViolation. See http://crbug.com/692125. --