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>()
|
val channel = Channel<ItemInfo>()
|
||||||
|
|
||||||
CoroutineScope(Dispatchers.IO).launch {
|
CoroutineScope(Dispatchers.IO).launch {
|
||||||
Logger.d(histories.map)
|
|
||||||
histories.map[source.name]?.forEach {
|
histories.map[source.name]?.forEach {
|
||||||
channel.send(source.info(it))
|
channel.send(source.info(it))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import android.widget.ImageView
|
|||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.activity.viewModels
|
import androidx.activity.viewModels
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
|
import androidx.core.view.GravityCompat
|
||||||
import androidx.core.view.ViewCompat
|
import androidx.core.view.ViewCompat
|
||||||
import androidx.core.view.children
|
import androidx.core.view.children
|
||||||
import androidx.core.widget.ImageViewCompat
|
import androidx.core.widget.ImageViewCompat
|
||||||
@@ -171,19 +172,10 @@ class MainActivity :
|
|||||||
|
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
override fun onBackPressed() {
|
override fun onBackPressed() {
|
||||||
|
if (binding.drawer.isDrawerOpen(GravityCompat.START))
|
||||||
// TODO model.onBackPressed()
|
binding.drawer.closeDrawer(GravityCompat.START)
|
||||||
/*
|
else if (!model.onBackPressed())
|
||||||
when {
|
super.onBackPressed()
|
||||||
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()
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
|
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ package xyz.quaver.pupil.ui.viewmodel
|
|||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import androidx.lifecycle.*
|
import androidx.lifecycle.*
|
||||||
import com.orhanobut.logger.Logger
|
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import org.kodein.di.DIAware
|
import org.kodein.di.DIAware
|
||||||
import org.kodein.di.android.x.di
|
import org.kodein.di.android.x.di
|
||||||
@@ -87,13 +86,12 @@ class MainViewModel(app: Application) : AndroidViewModel(app), DIAware {
|
|||||||
sortMode.value = it.availableSortMode.first()
|
sortMode.value = it.availableSortMode.first()
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger.i("SOURCE SET TO $sourceName")
|
|
||||||
|
|
||||||
setQueryAndSearch()
|
setQueryAndSearch()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setQueryAndSearch(query: String = "") {
|
fun setQueryAndSearch(query: String = "") {
|
||||||
this.query.value = query
|
this.query.value = query
|
||||||
|
queryStack.add(query)
|
||||||
setPage(1)
|
setPage(1)
|
||||||
|
|
||||||
query()
|
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