Skip to content

Commit 07fb319

Browse files
committed
Applied code changes for preference search framework
1 parent 12a78a8 commit 07fb319

11 files changed

Lines changed: 408 additions & 17 deletions

app/src/main/java/org/schabi/newpipe/settings/AppearanceSettingsFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class AppearanceSettingsFragment extends BasePreferenceFragment {
1717

1818
@Override
1919
public void onCreatePreferences(final Bundle savedInstanceState, final String rootKey) {
20-
addPreferencesFromResource(R.xml.appearance_settings);
20+
addPreferencesFromResourceRegistry();
2121

2222
final String themeKey = getString(R.string.theme_key);
2323
// the key of the active theme when settings were opened (or recreated after theme change)

app/src/main/java/org/schabi/newpipe/settings/BasePreferenceFragment.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ public void onCreate(@Nullable final Bundle savedInstanceState) {
2828
super.onCreate(savedInstanceState);
2929
}
3030

31+
protected void addPreferencesFromResourceRegistry() {
32+
addPreferencesFromResource(
33+
SettingsResourceRegistry.getInstance().getPreferencesResId(this.getClass()));
34+
}
35+
3136
@Override
3237
public void onViewCreated(@NonNull final View rootView,
3338
@Nullable final Bundle savedInstanceState) {

app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package org.schabi.newpipe.settings;
22

3+
import static org.schabi.newpipe.extractor.utils.Utils.isBlank;
4+
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
5+
36
import android.app.Activity;
47
import android.content.Context;
58
import android.content.Intent;
@@ -38,9 +41,6 @@
3841
import java.util.Locale;
3942
import java.util.Objects;
4043

41-
import static org.schabi.newpipe.extractor.utils.Utils.isBlank;
42-
import static org.schabi.newpipe.util.Localization.assureCorrectAppLanguage;
43-
4444
public class ContentSettingsFragment extends BasePreferenceFragment {
4545
private static final String ZIP_MIME_TYPE = "application/zip";
4646

@@ -70,7 +70,7 @@ public void onCreatePreferences(final Bundle savedInstanceState, final String ro
7070
importExportDataPathKey = getString(R.string.import_export_data_path);
7171
youtubeRestrictedModeEnabledKey = getString(R.string.youtube_restricted_mode_enabled);
7272

73-
addPreferencesFromResource(R.xml.content_settings);
73+
addPreferencesFromResourceRegistry();
7474

7575
final Preference importDataPreference = requirePreference(R.string.import_data);
7676
importDataPreference.setOnPreferenceClickListener((Preference p) -> {

app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public class DownloadSettingsFragment extends BasePreferenceFragment {
5454

5555
@Override
5656
public void onCreatePreferences(final Bundle savedInstanceState, final String rootKey) {
57-
addPreferencesFromResource(R.xml.download_settings);
57+
addPreferencesFromResourceRegistry();
5858

5959
downloadPathVideoPreference = getString(R.string.download_path_video_key);
6060
downloadPathAudioPreference = getString(R.string.download_path_audio_key);

app/src/main/java/org/schabi/newpipe/settings/HistorySettingsFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class HistorySettingsFragment extends BasePreferenceFragment {
2929

3030
@Override
3131
public void onCreatePreferences(final Bundle savedInstanceState, final String rootKey) {
32-
addPreferencesFromResource(R.xml.history_settings);
32+
addPreferencesFromResourceRegistry();
3333

3434
cacheWipeKey = getString(R.string.metadata_cache_wipe_key);
3535
viewsHistoryClearKey = getString(R.string.clear_views_history_key);

app/src/main/java/org/schabi/newpipe/settings/MainSettingsFragment.java

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
package org.schabi.newpipe.settings;
22

33
import android.os.Bundle;
4+
import android.view.Menu;
5+
import android.view.MenuInflater;
6+
import android.view.MenuItem;
47

8+
import androidx.annotation.NonNull;
59
import androidx.preference.Preference;
610

711
import org.schabi.newpipe.App;
@@ -12,10 +16,15 @@
1216
public class MainSettingsFragment extends BasePreferenceFragment {
1317
public static final boolean DEBUG = MainActivity.DEBUG;
1418

19+
private SettingsActivity settingsActivity;
20+
1521
@Override
1622
public void onCreatePreferences(final Bundle savedInstanceState, final String rootKey) {
17-
addPreferencesFromResource(R.xml.main_settings);
23+
addPreferencesFromResourceRegistry();
24+
25+
setHasOptionsMenu(true); // Otherwise onCreateOptionsMenu is not called
1826

27+
// Check if the app is updatable
1928
if (!CheckForNewAppVersion.isReleaseApk(App.getApp())) {
2029
final Preference update
2130
= findPreference(getString(R.string.update_pref_screen_key));
@@ -24,4 +33,36 @@ public void onCreatePreferences(final Bundle savedInstanceState, final String ro
2433
defaultPreferences.edit().putBoolean(getString(R.string.update_app_key), false).apply();
2534
}
2635
}
36+
37+
@Override
38+
public void onCreateOptionsMenu(
39+
@NonNull final Menu menu,
40+
@NonNull final MenuInflater inflater
41+
) {
42+
super.onCreateOptionsMenu(menu, inflater);
43+
44+
// -- Link settings activity and register menu --
45+
settingsActivity = (SettingsActivity) getActivity();
46+
47+
inflater.inflate(R.menu.menu_settings_main_fragment, menu);
48+
49+
final MenuItem menuSearchItem = menu.getItem(0);
50+
51+
settingsActivity.setMenuSearchItem(menuSearchItem);
52+
53+
menuSearchItem.setOnMenuItemClickListener(ev -> {
54+
settingsActivity.setSearchActive(true);
55+
return true;
56+
});
57+
}
58+
59+
@Override
60+
public void onDestroy() {
61+
// Unlink activity so that we don't get memory problems
62+
if (settingsActivity != null) {
63+
settingsActivity.setMenuSearchItem(null);
64+
settingsActivity = null;
65+
}
66+
super.onDestroy();
67+
}
2768
}

app/src/main/java/org/schabi/newpipe/settings/NotificationSettingsFragment.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import org.schabi.newpipe.R
77

88
class NotificationSettingsFragment : BasePreferenceFragment() {
99
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
10-
addPreferencesFromResource(R.xml.notification_settings)
10+
addPreferencesFromResourceRegistry()
1111

1212
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
1313
val colorizePref: Preference? = findPreference(getString(R.string.notification_colorize_key))

0 commit comments

Comments
 (0)