@@ -16,7 +16,12 @@ import org.fossify.clock.models.TimerEvent
1616import org.fossify.clock.models.TimerState
1717import org.fossify.commons.adapters.MyRecyclerViewListAdapter
1818import org.fossify.commons.dialogs.PermissionRequiredDialog
19- import org.fossify.commons.extensions.*
19+ import org.fossify.commons.extensions.adjustAlpha
20+ import org.fossify.commons.extensions.applyColorFilter
21+ import org.fossify.commons.extensions.beInvisibleIf
22+ import org.fossify.commons.extensions.getColoredDrawableWithColor
23+ import org.fossify.commons.extensions.getFormattedDuration
24+ import org.fossify.commons.extensions.openNotificationSettings
2025import org.fossify.commons.views.MyRecyclerView
2126import org.greenrobot.eventbus.EventBus
2227
@@ -41,6 +46,24 @@ class TimerAdapter(
4146
4247 init {
4348 setupDragListener(true )
49+ setHasStableIds(true )
50+ }
51+
52+ override fun getItemId (position : Int ): Long {
53+ return getItem(position).id!! .toLong()
54+ }
55+
56+ override fun submitList (list : MutableList <Timer >? , commitCallback : Runnable ? ) {
57+ val layoutManager = recyclerView.layoutManager!!
58+ val recyclerViewState = layoutManager.onSaveInstanceState()
59+ super .submitList(list) {
60+ layoutManager.onRestoreInstanceState(recyclerViewState)
61+ commitCallback?.run ()
62+ }
63+ }
64+
65+ override fun submitList (list : MutableList <Timer >? ) {
66+ submitList(list, null )
4467 }
4568
4669 override fun getActionMenuId () = R .menu.cab_alarms
0 commit comments