Replace findPreference(getString(resId) with its null safe shortcut

This commit is contained in:
Yevhen Babiichuk (DustDFG) 2025-12-30 13:30:37 +02:00
parent 6d2755f8eb
commit 5ab51c371e
7 changed files with 24 additions and 34 deletions

View file

@ -98,10 +98,9 @@ public class BackupRestoreSettingsFragment extends BasePreferenceFragment {
return true; 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 // 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 // A dialogue will pop up to confirm if user intends to reset all settings
assert resetSettings != null;
resetSettings.setOnPreferenceClickListener(preference -> { resetSettings.setOnPreferenceClickListener(preference -> {
// Show Alert Dialogue // Show Alert Dialogue
final AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());

View file

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

View file

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

View file

@ -25,7 +25,7 @@ public class MainSettingsFragment extends BasePreferenceFragment {
// Check if the app is updatable // Check if the app is updatable
if (!ReleaseVersionUtil.INSTANCE.isReleaseApk()) { if (!ReleaseVersionUtil.INSTANCE.isReleaseApk()) {
getPreferenceScreen().removePreference( 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(); 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 // Hide debug preferences in RELEASE build variant
if (!DEBUG) { if (!DEBUG) {
getPreferenceScreen().removePreference( 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?) { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.notifications_settings) addPreferencesFromResource(R.xml.notifications_settings)
streamsNotificationsPreference = streamsNotificationsPreference = requirePreference(R.string.enable_streams_notifications)
findPreference(getString(R.string.enable_streams_notifications))
// main check is done in onResume, but also do it here to prevent flickering // main check is done in onResume, but also do it here to prevent flickering
updateEnabledState(NotificationHelper.areNotificationsEnabledOnDevice(requireContext())) updateEnabledState(NotificationHelper.areNotificationsEnabledOnDevice(requireContext()))
@ -125,8 +124,8 @@ class NotificationsSettingsFragment : BasePreferenceFragment(), OnSharedPreferen
private fun updateSubscriptions(subscriptions: List<SubscriptionEntity>) { private fun updateSubscriptions(subscriptions: List<SubscriptionEntity>) {
val notified = subscriptions.count { it.notificationMode != NotificationMode.DISABLED } val notified = subscriptions.count { it.notificationMode != NotificationMode.DISABLED }
val preference = findPreference<Preference>(getString(R.string.streams_notifications_channels_key)) val preference = requirePreference<Preference>(R.string.streams_notifications_channels_key)
preference?.apply { summary = "$notified/${subscriptions.size}" } preference.summary = "$notified/${subscriptions.size}"
} }
private fun onError(e: Throwable) { 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) { public void onCreatePreferences(final Bundle savedInstanceState, final String rootKey) {
addPreferencesFromResourceRegistry(); addPreferencesFromResourceRegistry();
findPreference(getString(R.string.update_app_key)) requirePreference(R.string.update_app_key)
.setOnPreferenceChangeListener(updatePreferenceChange); .setOnPreferenceChangeListener(updatePreferenceChange);
findPreference(getString(R.string.manual_update_key)) requirePreference(R.string.manual_update_key)
.setOnPreferenceClickListener(manualUpdateClick); .setOnPreferenceClickListener(manualUpdateClick);
} }

View file

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