Handle backpress
This commit is contained in:
@@ -47,7 +47,6 @@ class History(override val di: DI, source: String) : Source<DefaultSortMode, Sea
|
||||
val channel = Channel<ItemInfo>()
|
||||
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
Logger.d(histories.map)
|
||||
histories.map[source.name]?.forEach {
|
||||
channel.send(source.info(it))
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user