diff --git a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt index 687fb8015..49bde074a 100644 --- a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt +++ b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainActivity.kt @@ -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 -> { diff --git a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainViewModel.kt index 17a2c25b2..c3a681343 100644 --- a/app/src/main/java/org/koitharu/kotatsu/main/ui/MainViewModel.kt +++ b/app/src/main/java/org/koitharu/kotatsu/main/ui/MainViewModel.kt @@ -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() - 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