From 2f57ee4c838eb3c804fae7b36b2865159e9536b8 Mon Sep 17 00:00:00 2001 From: tom5079 Date: Wed, 17 Feb 2021 19:25:45 +0900 Subject: [PATCH] Handle backpress --- .../java/xyz/quaver/pupil/sources/History.kt | 1 - .../java/xyz/quaver/pupil/ui/MainActivity.kt | 18 +++++------------- .../quaver/pupil/ui/viewmodel/MainViewModel.kt | 15 ++++++++++++--- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/xyz/quaver/pupil/sources/History.kt b/app/src/main/java/xyz/quaver/pupil/sources/History.kt index 29b68b7d..c4004df6 100644 --- a/app/src/main/java/xyz/quaver/pupil/sources/History.kt +++ b/app/src/main/java/xyz/quaver/pupil/sources/History.kt @@ -47,7 +47,6 @@ class History(override val di: DI, source: String) : Source() CoroutineScope(Dispatchers.IO).launch { - Logger.d(histories.map) histories.map[source.name]?.forEach { channel.send(source.info(it)) } diff --git a/app/src/main/java/xyz/quaver/pupil/ui/MainActivity.kt b/app/src/main/java/xyz/quaver/pupil/ui/MainActivity.kt index 0e49815e..8a9f0f68 100644 --- a/app/src/main/java/xyz/quaver/pupil/ui/MainActivity.kt +++ b/app/src/main/java/xyz/quaver/pupil/ui/MainActivity.kt @@ -33,6 +33,7 @@ import android.widget.ImageView import android.widget.TextView import androidx.activity.viewModels import androidx.appcompat.app.AlertDialog +import androidx.core.view.GravityCompat import androidx.core.view.ViewCompat import androidx.core.view.children import androidx.core.widget.ImageViewCompat @@ -171,19 +172,10 @@ class MainActivity : @OptIn(ExperimentalStdlibApi::class) override fun onBackPressed() { - - // TODO model.onBackPressed() - /* - when { - binding.drawer.isDrawerOpen(GravityCompat.START) -> binding.drawer.closeDrawer(GravityCompat.START) - queryStack.removeLastOrNull() != null && queryStack.isNotEmpty() -> runOnUiThread { - model.query.value = queryStack.last() - - model.query() - } - else -> super.onBackPressed() - } - */ + if (binding.drawer.isDrawerOpen(GravityCompat.START)) + binding.drawer.closeDrawer(GravityCompat.START) + else if (!model.onBackPressed()) + super.onBackPressed() } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/xyz/quaver/pupil/ui/viewmodel/MainViewModel.kt b/app/src/main/java/xyz/quaver/pupil/ui/viewmodel/MainViewModel.kt index 53a497f7..958facfc 100644 --- a/app/src/main/java/xyz/quaver/pupil/ui/viewmodel/MainViewModel.kt +++ b/app/src/main/java/xyz/quaver/pupil/ui/viewmodel/MainViewModel.kt @@ -21,7 +21,6 @@ package xyz.quaver.pupil.ui.viewmodel import android.annotation.SuppressLint import android.app.Application import androidx.lifecycle.* -import com.orhanobut.logger.Logger import kotlinx.coroutines.* import org.kodein.di.DIAware import org.kodein.di.android.x.di @@ -87,13 +86,12 @@ class MainViewModel(app: Application) : AndroidViewModel(app), DIAware { sortMode.value = it.availableSortMode.first() } - Logger.i("SOURCE SET TO $sourceName") - setQueryAndSearch() } fun setQueryAndSearch(query: String = "") { this.query.value = query + queryStack.add(query) setPage(1) query() @@ -172,4 +170,15 @@ class MainViewModel(app: Application) : AndroidViewModel(app), DIAware { } } + /** + * @return true if backpress is consumed, false otherwise + */ + fun onBackPressed(): Boolean { + if (queryStack.removeLastOrNull() == null || queryStack.isEmpty()) + return false + + setQueryAndSearch(queryStack.removeLast()) + return true + } + } \ No newline at end of file