Improve animations

This commit is contained in:
andrew 2023-08-22 10:58:06 +09:30
parent 6818be21a1
commit 621c74c1d6
2 changed files with 6 additions and 5 deletions

View File

@ -5,14 +5,13 @@ import android.os.Parcelable
import android.util.SparseArray import android.util.SparseArray
import android.widget.Toast import android.widget.Toast
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.core.content.ContextCompat
import androidx.core.text.HtmlCompat import androidx.core.text.HtmlCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.lifecycle.Lifecycle import androidx.lifecycle.Lifecycle
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle import androidx.lifecycle.repeatOnLifecycle
import androidx.recyclerview.widget.DividerItemDecoration
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.SimpleItemAnimator
import com.google.android.material.divider.MaterialDividerItemDecoration import com.google.android.material.divider.MaterialDividerItemDecoration
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -92,6 +91,7 @@ class ExpirationSettingsActivity: PassphraseRequiredActionBarActivity() {
viewModel.onExpirationTypeSelected(it) viewModel.onExpirationTypeSelected(it)
} }
binding.recyclerViewDeleteTypes.apply { binding.recyclerViewDeleteTypes.apply {
(itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false
adapter = deleteTypeOptionAdapter adapter = deleteTypeOptionAdapter
addDividers() addDividers()
setHasFixedSize(true) setHasFixedSize(true)
@ -102,6 +102,7 @@ class ExpirationSettingsActivity: PassphraseRequiredActionBarActivity() {
viewModel.onExpirationTimerSelected(it) viewModel.onExpirationTimerSelected(it)
} }
binding.recyclerViewTimerOptions.apply { binding.recyclerViewTimerOptions.apply {
(itemAnimator as SimpleItemAnimator).supportsChangeAnimations = false
adapter = timerOptionAdapter adapter = timerOptionAdapter
addDividers() addDividers()
} }

View File

@ -35,14 +35,14 @@ class RadioOptionAdapter<T>(
isSelected = position == selectedOptionPosition isSelected = position == selectedOptionPosition
) { ) {
onClickListener(it) onClickListener(it)
selectedOptionPosition = position setSelectedPosition(position)
notifyItemRangeChanged(0, itemCount)
} }
} }
fun setSelectedPosition(selectedPosition: Int) { fun setSelectedPosition(selectedPosition: Int) {
notifyItemChanged(selectedOptionPosition)
selectedOptionPosition = selectedPosition selectedOptionPosition = selectedPosition
notifyDataSetChanged() notifyItemChanged(selectedOptionPosition)
} }
class ViewHolder<T>(itemView: View): RecyclerView.ViewHolder(itemView) { class ViewHolder<T>(itemView: View): RecyclerView.ViewHolder(itemView) {