diff --git a/app/build.gradle b/app/build.gradle index a2932e1..af5894e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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' diff --git a/app/src/main/java/be/digitalia/fosdem/activities/SearchResultActivity.kt b/app/src/main/java/be/digitalia/fosdem/activities/SearchResultActivity.kt index 9cf6d7b..fd74ac0 100644 --- a/app/src/main/java/be/digitalia/fosdem/activities/SearchResultActivity.kt +++ b/app/src/main/java/be/digitalia/fosdem/activities/SearchResultActivity.kt @@ -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(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) } diff --git a/app/src/main/java/be/digitalia/fosdem/viewmodels/SearchViewModel.kt b/app/src/main/java/be/digitalia/fosdem/viewmodels/SearchViewModel.kt index 21592a1..8780725 100644 --- a/app/src/main/java/be/digitalia/fosdem/viewmodels/SearchViewModel.kt +++ b/app/src/main/java/be/digitalia/fosdem/viewmodels/SearchViewModel.kt @@ -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 = state.getLiveData(STATE_QUERY) + private val queryLiveData = MutableLiveData() 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" } } \ No newline at end of file diff --git a/app/src/main/res/layout/search_result.xml b/app/src/main/res/layout/search_result.xml index 7189ff0..2a89eaa 100644 --- a/app/src/main/res/layout/search_result.xml +++ b/app/src/main/res/layout/search_result.xml @@ -28,7 +28,6 @@ android:hint="@string/search_hint" android:imeOptions="actionSearch" android:inputType="text" - android:saveEnabled="false" android:singleLine="true" />