diff --git a/app/src/main/java/org/schabi/newpipe/settings/BackupRestoreSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/BackupRestoreSettingsFragment.java index 2900dee9035..baaa93e4445 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/BackupRestoreSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/BackupRestoreSettingsFragment.java @@ -98,10 +98,9 @@ ZIP_MIME_TYPE, getImportExportDataUri()), 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()); diff --git a/app/src/main/java/org/schabi/newpipe/settings/BasePreferenceFragment.java b/app/src/main/java/org/schabi/newpipe/settings/BasePreferenceFragment.java index 619579f3a73..21cba3daa16 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/BasePreferenceFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/BasePreferenceFragment.java @@ -48,8 +48,8 @@ public void onResume() { } @NonNull - public final Preference requirePreference(@StringRes final int resId) { - final Preference preference = findPreference(getString(resId)); + public final T requirePreference(@StringRes final int resId) { + final T preference = findPreference(getString(resId)); Objects.requireNonNull(preference); return preference; } diff --git a/app/src/main/java/org/schabi/newpipe/settings/DebugSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/DebugSettingsFragment.java index d78ade49df6..82f2f5bb632 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/DebugSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/DebugSettingsFragment.java @@ -22,27 +22,20 @@ public void onCreatePreferences(final Bundle savedInstanceState, final String ro 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)); - - assert allowHeapDumpingPreference != null; - assert showMemoryLeaksPreference != null; - assert showImageIndicatorsPreference != null; - assert checkNewStreamsPreference != null; - assert crashTheAppPreference != null; - assert showErrorSnackbarPreference != null; - assert createErrorNotificationPreference != null; + requirePreference(R.string.create_error_notification_key); + final Optional optBVLeakCanary = getBVDLeakCanary(); diff --git a/app/src/main/java/org/schabi/newpipe/settings/MainSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/MainSettingsFragment.java index 32e33d55bf6..cb3de39a0f4 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/MainSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/MainSettingsFragment.java @@ -25,7 +25,7 @@ public void onCreatePreferences(final Bundle savedInstanceState, final String ro // 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 void onCreatePreferences(final Bundle savedInstanceState, final String ro // 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)); } } diff --git a/app/src/main/java/org/schabi/newpipe/settings/NotificationsSettingsFragment.kt b/app/src/main/java/org/schabi/newpipe/settings/NotificationsSettingsFragment.kt index 2d3344c09f3..d6b0a84daf1 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/NotificationsSettingsFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/settings/NotificationsSettingsFragment.kt @@ -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) { val notified = subscriptions.count { it.notificationMode != NotificationMode.DISABLED } - val preference = findPreference(getString(R.string.streams_notifications_channels_key)) - preference?.apply { summary = "$notified/${subscriptions.size}" } + val preference = requirePreference(R.string.streams_notifications_channels_key) + preference.summary = "$notified/${subscriptions.size}" } private fun onError(e: Throwable) { diff --git a/app/src/main/java/org/schabi/newpipe/settings/UpdateSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/UpdateSettingsFragment.java index b8d0aa556d3..8923972b004 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/UpdateSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/UpdateSettingsFragment.java @@ -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); } diff --git a/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java index a1f563724ee..c5c4c480c2d 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/VideoAudioSettingsFragment.java @@ -90,12 +90,12 @@ private void updateResolutionOptions() { 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 @@ private void updateSeekOptions() { } } - 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());