1
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2026-03-19 14:19:45 +00:00

Merge pull request #12973 from dustdfg/require_preference

Replace findPreference(getString(resId) with its null safe shortcut
This commit is contained in:
Aayush Gupta
2026-01-01 13:36:26 +08:00
committed by GitHub
7 changed files with 24 additions and 34 deletions

View File

@@ -98,10 +98,9 @@ public class BackupRestoreSettingsFragment extends BasePreferenceFragment {
return true;
});
final Preference resetSettings = findPreference(getString(R.string.reset_settings));
final Preference resetSettings = requirePreference(R.string.reset_settings);
// Resets all settings by deleting shared preference and restarting the app
// A dialogue will pop up to confirm if user intends to reset all settings
assert resetSettings != null;
resetSettings.setOnPreferenceClickListener(preference -> {
// Show Alert Dialogue
final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());

View File

@@ -48,8 +48,8 @@ public abstract class BasePreferenceFragment extends PreferenceFragmentCompat {
}
@NonNull
public final Preference requirePreference(@StringRes final int resId) {
final Preference preference = findPreference(getString(resId));
public final <T extends Preference> T requirePreference(@StringRes final int resId) {
final T preference = findPreference(getString(resId));
Objects.requireNonNull(preference);
return preference;
}

View File

@@ -22,27 +22,20 @@ public class DebugSettingsFragment extends BasePreferenceFragment {
addPreferencesFromResourceRegistry();
final Preference allowHeapDumpingPreference =
findPreference(getString(R.string.allow_heap_dumping_key));
requirePreference(R.string.allow_heap_dumping_key);
final Preference showMemoryLeaksPreference =
findPreference(getString(R.string.show_memory_leaks_key));
requirePreference(R.string.show_memory_leaks_key);
final Preference showImageIndicatorsPreference =
findPreference(getString(R.string.show_image_indicators_key));
requirePreference(R.string.show_image_indicators_key);
final Preference checkNewStreamsPreference =
findPreference(getString(R.string.check_new_streams_key));
requirePreference(R.string.check_new_streams_key);
final Preference crashTheAppPreference =
findPreference(getString(R.string.crash_the_app_key));
requirePreference(R.string.crash_the_app_key);
final Preference showErrorSnackbarPreference =
findPreference(getString(R.string.show_error_snackbar_key));
requirePreference(R.string.show_error_snackbar_key);
final Preference createErrorNotificationPreference =
findPreference(getString(R.string.create_error_notification_key));
requirePreference(R.string.create_error_notification_key);
assert allowHeapDumpingPreference != null;
assert showMemoryLeaksPreference != null;
assert showImageIndicatorsPreference != null;
assert checkNewStreamsPreference != null;
assert crashTheAppPreference != null;
assert showErrorSnackbarPreference != null;
assert createErrorNotificationPreference != null;
final Optional<DebugSettingsBVDLeakCanaryAPI> optBVLeakCanary = getBVDLeakCanary();

View File

@@ -25,7 +25,7 @@ public class MainSettingsFragment extends BasePreferenceFragment {
// Check if the app is updatable
if (!ReleaseVersionUtil.INSTANCE.isReleaseApk()) {
getPreferenceScreen().removePreference(
findPreference(getString(R.string.update_pref_screen_key)));
requirePreference(R.string.update_pref_screen_key));
defaultPreferences.edit().putBoolean(getString(R.string.update_app_key), false).apply();
}
@@ -33,7 +33,7 @@ public class MainSettingsFragment extends BasePreferenceFragment {
// Hide debug preferences in RELEASE build variant
if (!DEBUG) {
getPreferenceScreen().removePreference(
findPreference(getString(R.string.debug_pref_screen_key)));
requirePreference(R.string.debug_pref_screen_key));
}
}

View File

@@ -29,8 +29,7 @@ class NotificationsSettingsFragment : BasePreferenceFragment(), OnSharedPreferen
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.notifications_settings)
streamsNotificationsPreference =
findPreference(getString(R.string.enable_streams_notifications))
streamsNotificationsPreference = requirePreference(R.string.enable_streams_notifications)
// main check is done in onResume, but also do it here to prevent flickering
updateEnabledState(NotificationHelper.areNotificationsEnabledOnDevice(requireContext()))
@@ -125,8 +124,8 @@ class NotificationsSettingsFragment : BasePreferenceFragment(), OnSharedPreferen
private fun updateSubscriptions(subscriptions: List<SubscriptionEntity>) {
val notified = subscriptions.count { it.notificationMode != NotificationMode.DISABLED }
val preference = findPreference<Preference>(getString(R.string.streams_notifications_channels_key))
preference?.apply { summary = "$notified/${subscriptions.size}" }
val preference = requirePreference<Preference>(R.string.streams_notifications_channels_key)
preference.summary = "$notified/${subscriptions.size}"
}
private fun onError(e: Throwable) {

View File

@@ -34,9 +34,9 @@ public class UpdateSettingsFragment extends BasePreferenceFragment {
public void onCreatePreferences(final Bundle savedInstanceState, final String rootKey) {
addPreferencesFromResourceRegistry();
findPreference(getString(R.string.update_app_key))
requirePreference(R.string.update_app_key)
.setOnPreferenceChangeListener(updatePreferenceChange);
findPreference(getString(R.string.manual_update_key))
requirePreference(R.string.manual_update_key)
.setOnPreferenceClickListener(manualUpdateClick);
}

View File

@@ -90,12 +90,12 @@ public class VideoAudioSettingsFragment extends BasePreferenceFragment {
showHigherResolutions);
// get resolution preferences
final ListPreference defaultResolution = findPreference(
getString(R.string.default_resolution_key));
final ListPreference defaultPopupResolution = findPreference(
getString(R.string.default_popup_resolution_key));
final ListPreference mobileDataResolution = findPreference(
getString(R.string.limit_mobile_data_usage_key));
final ListPreference defaultResolution = requirePreference(
R.string.default_resolution_key);
final ListPreference defaultPopupResolution = requirePreference(
R.string.default_popup_resolution_key);
final ListPreference mobileDataResolution = requirePreference(
R.string.limit_mobile_data_usage_key);
// update resolution preferences with new resolutions, entries & values for each
defaultResolution.setEntries(resolutionListDescriptions.toArray(new String[0]));
@@ -161,8 +161,7 @@ public class VideoAudioSettingsFragment extends BasePreferenceFragment {
}
}
final ListPreference durations = findPreference(
getString(R.string.seek_duration_key));
final ListPreference durations = requirePreference(R.string.seek_duration_key);
durations.setEntryValues(displayedDurationValues.toArray(new CharSequence[0]));
durations.setEntries(displayedDescriptionValues.toArray(new CharSequence[0]));
final int selectedDuration = Integer.parseInt(durations.getValue());