From c7e1b42e81611dab858a3a93e8fc501667b863fa Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Thu, 6 Mar 2025 11:53:37 +0900 Subject: [PATCH] feat(YouTube - Settings): When the search bar in the RVX settings is activated, clicking the back button closes the search bar instead of leaving the RVX settings https://github.com/inotia00/ReVanced_Extended/issues/2723 --- .../VideoQualitySettingsActivity.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/extensions/shared/src/main/java/com/google/android/apps/youtube/app/settings/videoquality/VideoQualitySettingsActivity.java b/extensions/shared/src/main/java/com/google/android/apps/youtube/app/settings/videoquality/VideoQualitySettingsActivity.java index 64b06fcab..a969c6bd4 100644 --- a/extensions/shared/src/main/java/com/google/android/apps/youtube/app/settings/videoquality/VideoQualitySettingsActivity.java +++ b/extensions/shared/src/main/java/com/google/android/apps/youtube/app/settings/videoquality/VideoQualitySettingsActivity.java @@ -4,8 +4,10 @@ import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.util.TypedValue; +import android.view.View; import android.view.ViewGroup; import android.widget.EditText; +import android.widget.ImageView; import android.widget.SearchView; import android.widget.SearchView.OnQueryTextListener; import android.widget.TextView; @@ -26,6 +28,7 @@ public class VideoQualitySettingsActivity extends Activity { private static final String rvxSettingsLabel = ResourceUtils.getString("revanced_extended_settings_title"); private static final String searchLabel = ResourceUtils.getString("revanced_extended_settings_search_title"); private static WeakReference searchViewRef = new WeakReference<>(null); + private static WeakReference closeButtonRef = new WeakReference<>(null); private ReVancedPreferenceFragment fragment; private final OnQueryTextListener onQueryTextListener = new OnQueryTextListener() { @@ -175,6 +178,22 @@ public class VideoQualitySettingsActivity extends Activity { // Keep a weak reference to the SearchView searchViewRef = new WeakReference<>(searchView); + + ImageView closeButton = searchView.findViewById(ResourceUtils.getIdIdentifier("android:id/search_close_btn")); + closeButtonRef = new WeakReference<>(closeButton); + } + + @Override + public void onBackPressed() { + ImageView closeButton = closeButtonRef.get(); + if (closeButton != null && closeButton.getVisibility() == View.VISIBLE) { + // The click action of the close button in SearchView follows the Android Framework. + // Therefore, just click the close button programmatically. + closeButton.callOnClick(); + onWindowFocusChanged(false); + } else { + super.onBackPressed(); + } } @Override