mirror of
https://github.com/Ashinch/ReadYou.git
synced 2025-02-07 14:43:50 +01:00
feat(ui): option for not grey out all articles
This commit is contained in:
parent
5bf274d986
commit
d4541dd026
@ -16,14 +16,15 @@ import me.ash.reader.ui.ext.put
|
||||
val LocalFlowArticleListReadIndicator =
|
||||
compositionLocalOf<FlowArticleReadIndicatorPreference> { FlowArticleReadIndicatorPreference.default }
|
||||
|
||||
sealed class FlowArticleReadIndicatorPreference(val value: Boolean) : Preference() {
|
||||
object ExcludingStarred : FlowArticleReadIndicatorPreference(true)
|
||||
object AllRead : FlowArticleReadIndicatorPreference(false)
|
||||
sealed class FlowArticleReadIndicatorPreference(val value: Int) : Preference() {
|
||||
data object ExcludingStarred : FlowArticleReadIndicatorPreference(0)
|
||||
data object AllRead : FlowArticleReadIndicatorPreference(1)
|
||||
data object None : FlowArticleReadIndicatorPreference(2)
|
||||
|
||||
override fun put(context: Context, scope: CoroutineScope) {
|
||||
scope.launch {
|
||||
context.dataStore.put(
|
||||
DataStoreKey.flowArticleListReadIndicator,
|
||||
flowArticleListReadIndicator,
|
||||
value
|
||||
)
|
||||
}
|
||||
@ -34,26 +35,22 @@ sealed class FlowArticleReadIndicatorPreference(val value: Boolean) : Preference
|
||||
return when (this) {
|
||||
AllRead -> stringResource(id = R.string.all_read)
|
||||
ExcludingStarred -> stringResource(id = R.string.read_excluding_starred)
|
||||
None -> stringResource(id = R.string.none)
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
val default = ExcludingStarred
|
||||
val values = listOf(ExcludingStarred, AllRead)
|
||||
val values = listOf(ExcludingStarred, AllRead, None)
|
||||
|
||||
fun fromPreferences(preferences: Preferences) =
|
||||
when (preferences[DataStoreKey.keys[flowArticleListReadIndicator]?.key as Preferences.Key<Boolean>]) {
|
||||
true -> ExcludingStarred
|
||||
false -> AllRead
|
||||
when (preferences[DataStoreKey.keys[flowArticleListReadIndicator]?.key as Preferences.Key<Int>]) {
|
||||
0 -> ExcludingStarred
|
||||
1 -> AllRead
|
||||
2 -> None
|
||||
else -> default
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
operator fun FlowArticleReadIndicatorPreference.not(): FlowArticleReadIndicatorPreference =
|
||||
when (value) {
|
||||
true -> FlowArticleReadIndicatorPreference.AllRead
|
||||
false -> FlowArticleReadIndicatorPreference.ExcludingStarred
|
||||
}
|
||||
}
|
@ -131,7 +131,7 @@ data class DataStoreKey<T>(
|
||||
const val flowArticleListTime = "flowArticleListTime"
|
||||
const val flowArticleListDateStickyHeader = "flowArticleListDateStickyHeader"
|
||||
const val flowArticleListTonalElevation = "flowArticleListTonalElevation"
|
||||
const val flowArticleListReadIndicator = "flowArticleListReadIndicator"
|
||||
const val flowArticleListReadIndicator = "flowArticleListReadStatusIndicator"
|
||||
|
||||
// Reading page
|
||||
const val readingRenderer = "readingRender"
|
||||
@ -207,7 +207,7 @@ data class DataStoreKey<T>(
|
||||
flowArticleListTime to DataStoreKey(booleanPreferencesKey(flowArticleListTime), Boolean::class.java),
|
||||
flowArticleListDateStickyHeader to DataStoreKey(booleanPreferencesKey(flowArticleListDateStickyHeader), Boolean::class.java),
|
||||
flowArticleListTonalElevation to DataStoreKey(intPreferencesKey(flowArticleListTonalElevation), Int::class.java),
|
||||
flowArticleListReadIndicator to DataStoreKey(booleanPreferencesKey(flowArticleListReadIndicator), Boolean::class.java),
|
||||
flowArticleListReadIndicator to DataStoreKey(intPreferencesKey(flowArticleListReadIndicator), Int::class.java),
|
||||
// Reading page
|
||||
readingRenderer to DataStoreKey(intPreferencesKey(readingRenderer), Int::class.java),
|
||||
readingBionicReading to DataStoreKey(booleanPreferencesKey(readingBionicReading), Boolean::class.java),
|
||||
|
@ -145,6 +145,8 @@ fun ArticleItem(
|
||||
.padding(horizontal = 12.dp, vertical = 12.dp)
|
||||
.alpha(
|
||||
when (articleListReadIndicator) {
|
||||
FlowArticleReadIndicatorPreference.None -> 1f
|
||||
|
||||
FlowArticleReadIndicatorPreference.AllRead -> {
|
||||
if (isUnread) 1f else 0.5f
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user