Fixed app crashing on invoking MainViewModel.sourceName.value
This commit is contained in:
@@ -38,7 +38,7 @@ android {
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 30
|
||||
versionCode 64
|
||||
versionName "6.0.0-alpha1"
|
||||
versionName "6.0.0-alpha2"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables.useSupportLibrary = true
|
||||
}
|
||||
|
||||
@@ -33,7 +33,6 @@ 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
|
||||
@@ -50,7 +49,6 @@ import xyz.quaver.floatingsearchview.FloatingSearchView
|
||||
import xyz.quaver.pupil.*
|
||||
import xyz.quaver.pupil.adapters.SearchResultsAdapter
|
||||
import xyz.quaver.pupil.databinding.MainActivityBinding
|
||||
import xyz.quaver.pupil.sources.ItemInfo
|
||||
import xyz.quaver.pupil.types.*
|
||||
import xyz.quaver.pupil.ui.dialog.DownloadLocationDialogFragment
|
||||
import xyz.quaver.pupil.ui.dialog.GalleryDialogFragment
|
||||
@@ -69,9 +67,6 @@ class MainActivity :
|
||||
{
|
||||
override val di by di()
|
||||
|
||||
private val searchResults = mutableListOf<ItemInfo>()
|
||||
private var queryStack = mutableListOf<String>()
|
||||
|
||||
private lateinit var binding: MainActivityBinding
|
||||
private val model: MainViewModel by viewModels()
|
||||
|
||||
@@ -176,6 +171,9 @@ 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 {
|
||||
@@ -185,6 +183,7 @@ class MainActivity :
|
||||
}
|
||||
else -> super.onBackPressed()
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
|
||||
@@ -273,7 +272,7 @@ class MainActivity :
|
||||
|
||||
model.random { runOnUiThread {
|
||||
setImageResource(R.drawable.shuffle_variant)
|
||||
GalleryDialogFragment(model.sourceName.value!!, it.id).apply {
|
||||
GalleryDialogFragment(model.source.value!!.name, it.id).apply {
|
||||
onChipClickedHandler.add {
|
||||
model.setQueryAndSearch(it.toQuery())
|
||||
dismiss()
|
||||
@@ -297,7 +296,7 @@ class MainActivity :
|
||||
setPositiveButton(android.R.string.ok) { _, _ ->
|
||||
val galleryID = editText.text.toString()
|
||||
|
||||
GalleryDialogFragment(model.sourceName.value!!, galleryID).apply {
|
||||
GalleryDialogFragment(model.source.value!!.name, galleryID).apply {
|
||||
onChipClickedHandler.add {
|
||||
model.setQueryAndSearch(it.toQuery())
|
||||
dismiss()
|
||||
@@ -363,8 +362,8 @@ class MainActivity :
|
||||
return@listener
|
||||
|
||||
val intent = Intent(this@MainActivity, ReaderActivity::class.java).apply {
|
||||
putExtra("source", model.sourceName.value!!)
|
||||
putExtra("id", searchResults[position].id)
|
||||
putExtra("source", model.source.value!!.name)
|
||||
putExtra("id", model.searchResults.value!![position].id)
|
||||
}
|
||||
|
||||
//TODO: Maybe sprinkling some transitions will be nice :D
|
||||
@@ -375,9 +374,9 @@ class MainActivity :
|
||||
if (v !is ProgressCardView)
|
||||
return@listener false
|
||||
|
||||
val result = searchResults.getOrNull(position) ?: return@listener true
|
||||
val result = model.searchResults.value!!.getOrNull(position) ?: return@listener true
|
||||
|
||||
GalleryDialogFragment(model.sourceName.value!!, result.id).apply {
|
||||
GalleryDialogFragment(model.source.value!!.name, result.id).apply {
|
||||
onChipClickedHandler.add {
|
||||
model.setQueryAndSearch(it.toQuery())
|
||||
dismiss()
|
||||
|
||||
@@ -18,8 +18,10 @@
|
||||
|
||||
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
|
||||
@@ -62,10 +64,6 @@ class MainViewModel(app: Application) : AndroidViewModel(app), DIAware {
|
||||
it.iconResID
|
||||
}
|
||||
|
||||
val sourceName = Transformations.map(_source) {
|
||||
it.name
|
||||
}
|
||||
|
||||
private val _currentPage = MutableLiveData<Int>()
|
||||
val currentPage: LiveData<Int> = _currentPage
|
||||
|
||||
@@ -89,6 +87,8 @@ class MainViewModel(app: Application) : AndroidViewModel(app), DIAware {
|
||||
sortMode.value = it.availableSortMode.first()
|
||||
}
|
||||
|
||||
Logger.i("SOURCE SET TO $sourceName")
|
||||
|
||||
setQueryAndSearch()
|
||||
}
|
||||
|
||||
@@ -163,11 +163,12 @@ class MainViewModel(app: Application) : AndroidViewModel(app), DIAware {
|
||||
_suggestions.value = mutableListOf()
|
||||
|
||||
suggestionJob = viewModelScope.launch {
|
||||
@SuppressLint("NullSafeMutableLiveData")
|
||||
_suggestions.value = withContext(Dispatchers.IO) {
|
||||
kotlin.runCatching {
|
||||
_source.value!!.suggestion(query.value!!)
|
||||
}.getOrElse { emptyList() }
|
||||
}!!
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user