From 3f8aa744e74cc4984dc2996fb8aca1e8a7517019 Mon Sep 17 00:00:00 2001 From: tom5079 Date: Wed, 17 Feb 2021 19:12:42 +0900 Subject: [PATCH] Fixed app crashing on invoking MainViewModel.sourceName.value --- app/build.gradle | 2 +- .../java/xyz/quaver/pupil/ui/MainActivity.kt | 21 +++++++++---------- .../pupil/ui/viewmodel/MainViewModel.kt | 11 +++++----- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 9fb08f08..1486e20d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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 } 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 43f2c7b7..0e49815e 100644 --- a/app/src/main/java/xyz/quaver/pupil/ui/MainActivity.kt +++ b/app/src/main/java/xyz/quaver/pupil/ui/MainActivity.kt @@ -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() - private var queryStack = mutableListOf() - 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() 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 0d839b35..53a497f7 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 @@ -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() val currentPage: LiveData = _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() } - }!! + } } }