Allow choosing which types of search suggestions to show
local, remote, both, none Replacing the old on-off setting
This commit is contained in:
parent
2027b743b4
commit
1d33e7ab49
9 changed files with 159 additions and 98 deletions
|
|
@ -92,8 +92,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
|||
.getPreferredLocalization(requireContext());
|
||||
initialSelectedContentCountry = org.schabi.newpipe.util.Localization
|
||||
.getPreferredContentCountry(requireContext());
|
||||
initialLanguage = PreferenceManager
|
||||
.getDefaultSharedPreferences(requireContext()).getString("app_language_key", "en");
|
||||
initialLanguage = defaultPreferences.getString(getString(R.string.app_language_key), "en");
|
||||
|
||||
final Preference clearCookiePref = requirePreference(R.string.clear_cookie_key);
|
||||
clearCookiePref.setOnPreferenceClickListener(preference -> {
|
||||
|
|
@ -147,8 +146,8 @@ public class ContentSettingsFragment extends BasePreferenceFragment {
|
|||
.getPreferredLocalization(requireContext());
|
||||
final ContentCountry selectedContentCountry = org.schabi.newpipe.util.Localization
|
||||
.getPreferredContentCountry(requireContext());
|
||||
final String selectedLanguage = PreferenceManager
|
||||
.getDefaultSharedPreferences(requireContext()).getString("app_language_key", "en");
|
||||
final String selectedLanguage =
|
||||
defaultPreferences.getString(getString(R.string.app_language_key), "en");
|
||||
|
||||
if (!selectedLocalization.equals(initialSelectedLocalization)
|
||||
|| !selectedContentCountry.equals(initialSelectedContentCountry)
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import android.os.Build;
|
|||
import android.os.Environment;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.preference.PreferenceManager;
|
||||
|
||||
import org.schabi.newpipe.R;
|
||||
|
|
@ -124,4 +125,29 @@ public final class NewPipeSettings {
|
|||
|
||||
return prefs.getBoolean(key, true);
|
||||
}
|
||||
|
||||
private static boolean showSearchSuggestions(final Context context,
|
||||
final SharedPreferences sharedPreferences,
|
||||
@StringRes final int key) {
|
||||
final Set<String> enabledSearchSuggestions = sharedPreferences.getStringSet(
|
||||
context.getString(R.string.show_search_suggestions_key), null);
|
||||
|
||||
if (enabledSearchSuggestions == null) {
|
||||
return true; // defaults to true
|
||||
} else {
|
||||
return enabledSearchSuggestions.contains(context.getString(key));
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean showLocalSearchSuggestions(final Context context,
|
||||
final SharedPreferences sharedPreferences) {
|
||||
return showSearchSuggestions(context, sharedPreferences,
|
||||
R.string.show_local_search_suggestions_key);
|
||||
}
|
||||
|
||||
public static boolean showRemoteSearchSuggestions(final Context context,
|
||||
final SharedPreferences sharedPreferences) {
|
||||
return showSearchSuggestions(context, sharedPreferences,
|
||||
R.string.show_remote_search_suggestions_key);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,10 @@ import org.schabi.newpipe.error.ErrorInfo;
|
|||
import org.schabi.newpipe.error.UserAction;
|
||||
import org.schabi.newpipe.util.DeviceUtils;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.schabi.newpipe.MainActivity.DEBUG;
|
||||
|
||||
public final class SettingMigrations {
|
||||
|
|
@ -72,6 +76,26 @@ public final class SettingMigrations {
|
|||
}
|
||||
};
|
||||
|
||||
public static final Migration MIGRATION_3_4 = new Migration(3, 4) {
|
||||
@Override
|
||||
protected void migrate(final Context context) {
|
||||
// Pull request #3546 added support for choosing the type of search suggestions to
|
||||
// show, replacing the on-off switch used before, so migrate the previous user choice
|
||||
|
||||
final String showSearchSuggestionsKey =
|
||||
context.getString(R.string.show_search_suggestions_key);
|
||||
final Set<String> showSearchSuggestionsValueList = new HashSet<>();
|
||||
if (sp.getBoolean(showSearchSuggestionsKey, true)) {
|
||||
// if the preference was true, all suggestions will be shown, otherwise none
|
||||
Collections.addAll(showSearchSuggestionsValueList, context.getResources()
|
||||
.getStringArray(R.array.show_search_suggestions_value_list));
|
||||
}
|
||||
|
||||
sp.edit().putStringSet(
|
||||
showSearchSuggestionsKey, showSearchSuggestionsValueList).apply();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* List of all implemented migrations.
|
||||
* <p>
|
||||
|
|
@ -81,7 +105,8 @@ public final class SettingMigrations {
|
|||
private static final Migration[] SETTING_MIGRATIONS = {
|
||||
MIGRATION_0_1,
|
||||
MIGRATION_1_2,
|
||||
MIGRATION_2_3
|
||||
MIGRATION_2_3,
|
||||
MIGRATION_3_4,
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue