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