Skip to content

Commit b9378a7

Browse files
committed
Fix NPEs after OnSharedPreferenceChangeListener changes
Apps targeting {@link android.os.Build.VERSION_CODES#R} on devices running OS versions {@link android.os.Build.VERSION_CODES#R Android R} or later, will receive a {@code null} value when preferences are cleared.
1 parent e4641cd commit b9378a7

6 files changed

Lines changed: 14 additions & 16 deletions

File tree

app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,13 +172,13 @@ public final class VideoDetailFragment
172172

173173
private final SharedPreferences.OnSharedPreferenceChangeListener preferenceChangeListener =
174174
(sharedPreferences, key) -> {
175-
if (key.equals(getString(R.string.show_comments_key))) {
175+
if (getString(R.string.show_comments_key).equals(key)) {
176176
showComments = sharedPreferences.getBoolean(key, true);
177177
tabSettingsChanged = true;
178-
} else if (key.equals(getString(R.string.show_next_video_key))) {
178+
} else if (getString(R.string.show_next_video_key).equals(key)) {
179179
showRelatedItems = sharedPreferences.getBoolean(key, true);
180180
tabSettingsChanged = true;
181-
} else if (key.equals(getString(R.string.show_description_key))) {
181+
} else if (getString(R.string.show_description_key).equals(key)) {
182182
showDescription = sharedPreferences.getBoolean(key, true);
183183
tabSettingsChanged = true;
184184
}

app/src/main/java/org/schabi/newpipe/fragments/list/BaseListFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ public void handleError() {
474474
@Override
475475
public void onSharedPreferenceChanged(final SharedPreferences sharedPreferences,
476476
final String key) {
477-
if (key.equals(getString(R.string.list_view_mode_key))) {
477+
if (getString(R.string.list_view_mode_key).equals(key)) {
478478
updateFlags |= LIST_MODE_UPDATE_FLAG;
479479
}
480480
}

app/src/main/java/org/schabi/newpipe/fragments/list/videos/RelatedItemsFragment.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,9 @@ protected void onRestoreInstanceState(@NonNull final Bundle savedState) {
159159

160160
@Override
161161
public void onSharedPreferenceChanged(final SharedPreferences sharedPreferences,
162-
final String s) {
163-
if (headerBinding != null) {
164-
headerBinding.autoplaySwitch.setChecked(
165-
sharedPreferences.getBoolean(
166-
getString(R.string.auto_queue_key), false));
162+
final String key) {
163+
if (headerBinding != null && getString(R.string.auto_queue_key).equals(key)) {
164+
headerBinding.autoplaySwitch.setChecked(sharedPreferences.getBoolean(key, false));
167165
}
168166
}
169167

app/src/main/java/org/schabi/newpipe/local/BaseLocalListFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ public void handleError() {
261261
@Override
262262
public void onSharedPreferenceChanged(final SharedPreferences sharedPreferences,
263263
final String key) {
264-
if (key.equals(getString(R.string.list_view_mode_key))) {
264+
if (getString(R.string.list_view_mode_key).equals(key)) {
265265
updateFlags |= LIST_MODE_UPDATE_FLAG;
266266
}
267267
}

app/src/main/java/org/schabi/newpipe/settings/tabs/TabsManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public void unsetSavedTabsListener() {
7373

7474
private SharedPreferences.OnSharedPreferenceChangeListener getPreferenceChangeListener() {
7575
return (sp, key) -> {
76-
if (key.equals(savedTabsKey)) {
76+
if (savedTabsKey.equals(key)) {
7777
if (savedTabsChangeListener != null) {
7878
savedTabsChangeListener.onTabsChanged();
7979
}

app/src/main/java/us/shandian/giga/service/DownloadManagerService.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -310,21 +310,21 @@ private void handleConnectivityState(boolean updateOnly) {
310310
}
311311

312312
private void handlePreferenceChange(SharedPreferences prefs, @NonNull String key) {
313-
if (key.equals(getString(R.string.downloads_maximum_retry))) {
313+
if (getString(R.string.downloads_maximum_retry).equals(key)) {
314314
try {
315315
String value = prefs.getString(key, getString(R.string.downloads_maximum_retry_default));
316316
mManager.mPrefMaxRetry = value == null ? 0 : Integer.parseInt(value);
317317
} catch (Exception e) {
318318
mManager.mPrefMaxRetry = 0;
319319
}
320320
mManager.updateMaximumAttempts();
321-
} else if (key.equals(getString(R.string.downloads_cross_network))) {
321+
} else if (getString(R.string.downloads_cross_network).equals(key)) {
322322
mManager.mPrefMeteredDownloads = prefs.getBoolean(key, false);
323-
} else if (key.equals(getString(R.string.downloads_queue_limit))) {
323+
} else if (getString(R.string.downloads_queue_limit).equals(key)) {
324324
mManager.mPrefQueueLimit = prefs.getBoolean(key, true);
325-
} else if (key.equals(getString(R.string.download_path_video_key))) {
325+
} else if (getString(R.string.download_path_video_key).equals(key)) {
326326
mManager.mMainStorageVideo = loadMainVideoStorage();
327-
} else if (key.equals(getString(R.string.download_path_audio_key))) {
327+
} else if (getString(R.string.download_path_audio_key).equals(key)) {
328328
mManager.mMainStorageAudio = loadMainAudioStorage();
329329
}
330330
}

0 commit comments

Comments
 (0)