Hide feed section if tracker is disabled

This commit is contained in:
Koitharu
2022-05-12 12:27:27 +03:00
parent 48e232e04e
commit 46df41504c
2 changed files with 24 additions and 4 deletions

View File

@@ -20,7 +20,6 @@ import androidx.fragment.app.FragmentTransaction
import androidx.fragment.app.commit
import androidx.lifecycle.lifecycleScope
import androidx.transition.TransitionManager
import com.google.android.material.R as materialR
import com.google.android.material.appbar.AppBarLayout
import com.google.android.material.appbar.AppBarLayout.LayoutParams.*
import com.google.android.material.dialog.MaterialAlertDialogBuilder
@@ -61,6 +60,7 @@ import org.koitharu.kotatsu.tracker.ui.FeedFragment
import org.koitharu.kotatsu.tracker.work.TrackWorker
import org.koitharu.kotatsu.utils.VoiceInputContract
import org.koitharu.kotatsu.utils.ext.*
import com.google.android.material.R as materialR
private const val TAG_PRIMARY = "primary"
private const val TAG_SEARCH = "search"
@@ -141,6 +141,7 @@ class MainActivity :
viewModel.isResumeEnabled.observe(this, this::onResumeEnabledChanged)
viewModel.remoteSources.observe(this, this::updateSideMenu)
viewModel.isSuggestionsEnabled.observe(this, this::setSuggestionsEnabled)
viewModel.isTrackerEnabled.observe(this, this::setTrackerEnabled)
}
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
@@ -359,6 +360,14 @@ class MainActivity :
item.isVisible = isEnabled
}
private fun setTrackerEnabled(isEnabled: Boolean) {
val item = binding.navigationView.menu.findItem(R.id.nav_feed) ?: return
if (!isEnabled && item.isChecked) {
binding.navigationView.setCheckedItem(R.id.nav_history)
}
item.isVisible = isEnabled
}
private fun openDefaultSection() {
when (viewModel.defaultSection) {
AppSection.LOCAL -> {

View File

@@ -7,6 +7,7 @@ import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.onStart
import org.koitharu.kotatsu.base.ui.BaseViewModel
import org.koitharu.kotatsu.core.exceptions.EmptyHistoryException
import org.koitharu.kotatsu.core.prefs.AppSection
import org.koitharu.kotatsu.core.prefs.AppSettings
import org.koitharu.kotatsu.core.prefs.observeAsLiveData
import org.koitharu.kotatsu.history.domain.HistoryRepository
@@ -16,16 +17,26 @@ import org.koitharu.kotatsu.utils.ext.asLiveDataDistinct
class MainViewModel(
private val historyRepository: HistoryRepository,
settings: AppSettings
private val settings: AppSettings,
) : BaseViewModel() {
val onOpenReader = SingleLiveEvent<Manga>()
var defaultSection by settings::defaultSection
var defaultSection: AppSection
get() = settings.defaultSection
set(value) {
settings.defaultSection = value
}
val isSuggestionsEnabled = settings.observeAsLiveData(
context = viewModelScope.coroutineContext + Dispatchers.Default,
key = AppSettings.KEY_SUGGESTIONS,
valueProducer = { isSuggestionsEnabled }
valueProducer = { isSuggestionsEnabled },
)
val isTrackerEnabled = settings.observeAsLiveData(
context = viewModelScope.coroutineContext + Dispatchers.Default,
key = AppSettings.KEY_TRACKER_ENABLED,
valueProducer = { isTrackerEnabled },
)
val isResumeEnabled = historyRepository