mirror of
https://github.com/MatomoCamp/matomocamp-companion-android.git
synced 2024-09-19 16:13:46 +02:00
Remove SavedStateHandle implementation
Restore ViewModel state manually from View state instead + upgrade various libraries.
This commit is contained in:
parent
ace3e53bf4
commit
a6e65aee19
4 changed files with 17 additions and 18 deletions
|
@ -100,7 +100,7 @@ afterEvaluate {
|
|||
|
||||
dependencies {
|
||||
def lifecycle_version = "2.4.0"
|
||||
def room_version = "2.4.0"
|
||||
def room_version = "2.4.1"
|
||||
def okhttp_version = "3.12.13"
|
||||
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
|
||||
|
@ -110,10 +110,11 @@ dependencies {
|
|||
kapt "com.google.dagger:hilt-compiler:$hilt_version"
|
||||
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0'
|
||||
implementation 'androidx.core:core-ktx:1.7.0'
|
||||
implementation 'androidx.activity:activity-ktx:1.4.0'
|
||||
implementation 'androidx.fragment:fragment-ktx:1.4.0'
|
||||
implementation 'androidx.appcompat:appcompat:1.4.0'
|
||||
implementation 'androidx.appcompat:appcompat:1.4.1'
|
||||
implementation 'com.google.android.material:material:1.4.0'
|
||||
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.1.0'
|
||||
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.2.0'
|
||||
implementation 'androidx.recyclerview:recyclerview:1.2.1'
|
||||
implementation 'androidx.viewpager2:viewpager2:1.1.0-beta01'
|
||||
implementation 'androidx.drawerlayout:drawerlayout:1.1.1'
|
||||
|
|
|
@ -51,7 +51,7 @@ class SearchResultActivity : AppCompatActivity(R.layout.search_result) {
|
|||
.sample(SEARCH_INPUT_SAMPLE_MILLIS)
|
||||
.onEach {
|
||||
// only update the results every SEARCH_INPUT_SAMPLE_MILLIS
|
||||
viewModel.query = it?.toString().orEmpty()
|
||||
viewModel.setQuery(it?.toString().orEmpty())
|
||||
}
|
||||
.launchIn(lifecycleScope)
|
||||
|
||||
|
@ -63,11 +63,14 @@ class SearchResultActivity : AppCompatActivity(R.layout.search_result) {
|
|||
supportFragmentManager.commit { add<SearchResultListFragment>(R.id.content) }
|
||||
handleIntent(intent)
|
||||
searchEditText.requestFocus()
|
||||
} else {
|
||||
searchEditText.setText(viewModel.query)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onRestoreInstanceState(savedInstanceState: Bundle) {
|
||||
super.onRestoreInstanceState(savedInstanceState)
|
||||
viewModel.setQuery(searchEditText.text?.toString().orEmpty())
|
||||
}
|
||||
|
||||
override fun onNewIntent(intent: Intent) {
|
||||
super.onNewIntent(intent)
|
||||
handleIntent(intent)
|
||||
|
@ -79,7 +82,7 @@ class SearchResultActivity : AppCompatActivity(R.layout.search_result) {
|
|||
?.trimNonAlpha().orEmpty()
|
||||
else -> ""
|
||||
}
|
||||
viewModel.query = query
|
||||
viewModel.setQuery(query)
|
||||
searchEditText.setText(query)
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@ package be.digitalia.fosdem.viewmodels
|
|||
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.SavedStateHandle
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.map
|
||||
import androidx.lifecycle.switchMap
|
||||
|
@ -14,9 +13,9 @@ import dagger.hilt.android.lifecycle.HiltViewModel
|
|||
import javax.inject.Inject
|
||||
|
||||
@HiltViewModel
|
||||
class SearchViewModel @Inject constructor(scheduleDao: ScheduleDao, private val state: SavedStateHandle) : ViewModel() {
|
||||
class SearchViewModel @Inject constructor(scheduleDao: ScheduleDao) : ViewModel() {
|
||||
|
||||
private val queryLiveData: LiveData<String> = state.getLiveData(STATE_QUERY)
|
||||
private val queryLiveData = MutableLiveData<String>()
|
||||
|
||||
sealed class Result {
|
||||
object QueryTooShort : Result()
|
||||
|
@ -33,16 +32,13 @@ class SearchViewModel @Inject constructor(scheduleDao: ScheduleDao, private val
|
|||
}
|
||||
}
|
||||
|
||||
var query: String
|
||||
get() = queryLiveData.value.orEmpty()
|
||||
set(value) {
|
||||
if (value != queryLiveData.value) {
|
||||
state[STATE_QUERY] = value
|
||||
}
|
||||
fun setQuery(query: String) {
|
||||
if (query != queryLiveData.value) {
|
||||
queryLiveData.value = query
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val SEARCH_QUERY_MIN_LENGTH = 3
|
||||
private const val STATE_QUERY = "query"
|
||||
}
|
||||
}
|
|
@ -28,7 +28,6 @@
|
|||
android:hint="@string/search_hint"
|
||||
android:imeOptions="actionSearch"
|
||||
android:inputType="text"
|
||||
android:saveEnabled="false"
|
||||
android:singleLine="true" />
|
||||
|
||||
<ImageView
|
||||
|
|
Loading…
Reference in a new issue