refactor(YouTube - Settings): Back button/gesture closes search instead of exiting (#5439)

This commit is contained in:
MarcaD
2025-07-16 22:26:20 +03:00
committed by GitHub
parent 44da5a71c5
commit 86ec08993c
4 changed files with 45 additions and 29 deletions

View File

@@ -5,6 +5,7 @@ import static app.revanced.extension.shared.Utils.getResourceIdentifier;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.preference.PreferenceFragment;
import android.util.TypedValue;
import android.view.ViewGroup;
@@ -171,4 +172,10 @@ public class LicenseActivityHook extends Activity {
Utils.setIsDarkModeEnabled(themeOrdinal == 1);
}
}
public static void handleConfigurationChanged(Activity activity, Configuration newConfig) {
if (searchViewController != null) {
searchViewController.handleOrientationChange(newConfig.orientation);
}
}
}

View File

@@ -95,6 +95,7 @@ public class SearchViewController {
this.originalTitle = toolbar.getTitle();
this.showSettingsSearchHistory = Settings.SETTINGS_SEARCH_HISTORY.get();
this.searchHistory = new LinkedList<>();
this.currentOrientation = activity.getResources().getConfiguration().orientation;
StringSetting searchEntries = Settings.SETTINGS_SEARCH_ENTRIES;
if (showSettingsSearchHistory) {
String entries = searchEntries.get();
@@ -208,8 +209,6 @@ public class SearchViewController {
Logger.printException(() -> "navigation click failure", ex);
}
});
monitorOrientationChanges();
}
/**
@@ -292,19 +291,14 @@ public class SearchViewController {
}
}
private void monitorOrientationChanges() {
currentOrientation = activity.getResources().getConfiguration().orientation;
searchView.getViewTreeObserver().addOnGlobalLayoutListener(() -> {
int newOrientation = activity.getResources().getConfiguration().orientation;
if (newOrientation != currentOrientation) {
currentOrientation = newOrientation;
if (autoCompleteTextView != null) {
autoCompleteTextView.dismissDropDown();
Logger.printDebug(() -> "Orientation changed, search history dismissed");
}
public void handleOrientationChange(int newOrientation) {
if (newOrientation != currentOrientation) {
currentOrientation = newOrientation;
if (autoCompleteTextView != null) {
autoCompleteTextView.dismissDropDown();
Logger.printDebug(() -> "Orientation changed, search history dismissed");
}
});
}
}
/**
@@ -350,14 +344,14 @@ public class SearchViewController {
public static boolean handleBackPress() {
if (LicenseActivityHook.searchViewController != null
&& LicenseActivityHook.searchViewController.isSearchExpanded()) {
&& LicenseActivityHook.searchViewController.isSearchActive()) {
LicenseActivityHook.searchViewController.closeSearch();
return true;
}
return false;
}
public boolean isSearchExpanded() {
public boolean isSearchActive() {
return isSearchActive;
}

View File

@@ -280,7 +280,7 @@ public class ReVancedPreferenceFragment extends AbstractPreferenceFragment {
LicenseActivityHook.setToolbarLayoutParams(toolbar);
if (LicenseActivityHook.searchViewController != null
&& LicenseActivityHook.searchViewController.isSearchExpanded()) {
&& LicenseActivityHook.searchViewController.isSearchActive()) {
toolbar.post(() -> LicenseActivityHook.searchViewController.closeSearch());
}