Skip to content

Commit 63291f8

Browse files
committed
added show watched items toggle preference
default sharedpreference is used to persist and retrieve show watched menu option toggle state
1 parent b5ad24e commit 63291f8

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

app/src/main/java/org/schabi/newpipe/local/feed/FeedFragment.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ class FeedFragment : BaseStateFragment<FeedState>() {
128128

129129
val factory = FeedViewModel.Factory(requireContext(), groupId, showPlayedItems)
130130
viewModel = ViewModelProvider(this, factory).get(FeedViewModel::class.java)
131+
showPlayedItems = viewModel.getSavedPlayedItemsToggle()
131132
viewModel.stateLiveData.observe(viewLifecycleOwner, { it?.let(::handleResult) })
132133

133134
groupAdapter = GroupieAdapter().apply {
@@ -158,7 +159,7 @@ class FeedFragment : BaseStateFragment<FeedState>() {
158159
}
159160
}
160161

161-
fun setupListViewMode() {
162+
private fun setupListViewMode() {
162163
// does everything needed to setup the layouts for grid or list modes
163164
groupAdapter.spanCount = if (shouldUseGridLayout(context)) getGridSpanCountStreams(context) else 1
164165
feedBinding.itemsList.layoutManager = GridLayoutManager(requireContext(), groupAdapter.spanCount).apply {
@@ -213,6 +214,7 @@ class FeedFragment : BaseStateFragment<FeedState>() {
213214
showPlayedItems = !item.isChecked
214215
updateTogglePlayedItemsButton(item)
215216
viewModel.togglePlayedItems(showPlayedItems)
217+
viewModel.savePlayedItemsToggle(showPlayedItems)
216218
}
217219

218220
return super.onOptionsItemSelected(item)

app/src/main/java/org/schabi/newpipe/local/feed/FeedViewModel.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package org.schabi.newpipe.local.feed
22

33
import android.content.Context
4+
import androidx.core.content.edit
45
import androidx.lifecycle.LiveData
56
import androidx.lifecycle.MutableLiveData
67
import androidx.lifecycle.ViewModel
78
import androidx.lifecycle.ViewModelProvider
9+
import androidx.preference.PreferenceManager
810
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
911
import io.reactivex.rxjava3.core.Flowable
1012
import io.reactivex.rxjava3.functions.Function4
@@ -28,6 +30,10 @@ class FeedViewModel(
2830
initialShowPlayedItems: Boolean = true
2931
) : ViewModel() {
3032
private var feedDatabaseManager: FeedDatabaseManager = FeedDatabaseManager(applicationContext)
33+
private var sharedPreferences = PreferenceManager.getDefaultSharedPreferences(applicationContext)
34+
companion object {
35+
const val SHOW_PLAYED_ITEMS_PREFERENCE = "show_played_items_preference_tag"
36+
}
3137

3238
private val toggleShowPlayedItems = BehaviorProcessor.create<Boolean>()
3339
private val streamItems = toggleShowPlayedItems
@@ -81,6 +87,13 @@ class FeedViewModel(
8187
toggleShowPlayedItems.onNext(showPlayedItems)
8288
}
8389

90+
fun savePlayedItemsToggle(showPlayedItems: Boolean) = sharedPreferences.edit {
91+
this.putBoolean(SHOW_PLAYED_ITEMS_PREFERENCE, showPlayedItems)
92+
this.apply()
93+
}
94+
95+
fun getSavedPlayedItemsToggle() = sharedPreferences.getBoolean(SHOW_PLAYED_ITEMS_PREFERENCE, true)
96+
8497
class Factory(
8598
private val context: Context,
8699
private val groupId: Long = FeedGroupEntity.GROUP_ALL_ID,

0 commit comments

Comments
 (0)