Add null-safe SharedPreferences.getStringSafe

Null-safe alternative to SharedPreferences.getString that guarantees the return value is non-null when defValue is non-null.
This commit is contained in:
TwoAi 2024-08-30 12:23:51 -04:00 committed by Tobi
parent 94f992a2e2
commit 734b6e2b67
2 changed files with 12 additions and 6 deletions

View file

@ -0,0 +1,7 @@
package org.schabi.newpipe.ktx
import android.content.SharedPreferences
fun SharedPreferences.getStringSafe(key: String, defValue: String): String {
return getString(key, null) ?: defValue
}

View file

@ -19,6 +19,7 @@ import org.schabi.newpipe.extractor.Info
import org.schabi.newpipe.extractor.NewPipe import org.schabi.newpipe.extractor.NewPipe
import org.schabi.newpipe.extractor.feed.FeedInfo import org.schabi.newpipe.extractor.feed.FeedInfo
import org.schabi.newpipe.extractor.stream.StreamInfoItem import org.schabi.newpipe.extractor.stream.StreamInfoItem
import org.schabi.newpipe.ktx.getStringSafe
import org.schabi.newpipe.local.feed.FeedDatabaseManager import org.schabi.newpipe.local.feed.FeedDatabaseManager
import org.schabi.newpipe.local.subscription.SubscriptionManager import org.schabi.newpipe.local.subscription.SubscriptionManager
import org.schabi.newpipe.util.ChannelTabHelper import org.schabi.newpipe.util.ChannelTabHelper
@ -69,12 +70,10 @@ class FeedLoadManager(private val context: Context) {
val outdatedThreshold = if (ignoreOutdatedThreshold) { val outdatedThreshold = if (ignoreOutdatedThreshold) {
OffsetDateTime.now(ZoneOffset.UTC) OffsetDateTime.now(ZoneOffset.UTC)
} else { } else {
val thresholdOutdatedSeconds = ( val thresholdOutdatedSeconds = defaultSharedPreferences.getStringSafe(
defaultSharedPreferences.getString( context.getString(R.string.feed_update_threshold_key),
context.getString(R.string.feed_update_threshold_key), context.getString(R.string.feed_update_threshold_default_value)
context.getString(R.string.feed_update_threshold_default_value) ).toInt()
) ?: context.getString(R.string.feed_update_threshold_default_value)
).toInt()
OffsetDateTime.now(ZoneOffset.UTC).minusSeconds(thresholdOutdatedSeconds.toLong()) OffsetDateTime.now(ZoneOffset.UTC).minusSeconds(thresholdOutdatedSeconds.toLong())
} }