@@ -14,19 +14,24 @@ import com.example.util.simpletimetracker.core.extension.setOnClick
1414import com.example.util.simpletimetracker.core.extension.visible
1515import com.example.util.simpletimetracker.core.utils.BuildVersions
1616import com.example.util.simpletimetracker.core.view.TransitionNames
17- import com.example.util.simpletimetracker.domain.extension.orZero
1817import com.example.util.simpletimetracker.feature_change_running_record.R
1918import com.example.util.simpletimetracker.feature_change_running_record.adapter.ChangeRunningRecordAdapter
2019import com.example.util.simpletimetracker.feature_change_running_record.di.ChangeRunningRecordComponentProvider
21- import com.example.util.simpletimetracker.feature_change_running_record.extra.ChangeRunningRecordExtra
2220import com.example.util.simpletimetracker.feature_change_running_record.viewData.ChangeRunningRecordViewData
2321import com.example.util.simpletimetracker.feature_change_running_record.viewModel.ChangeRunningRecordViewModel
2422import com.example.util.simpletimetracker.navigation.params.ChangeRunningRecordParams
2523import com.google.android.flexbox.FlexDirection
2624import com.google.android.flexbox.FlexWrap
2725import com.google.android.flexbox.FlexboxLayoutManager
2826import com.google.android.flexbox.JustifyContent
29- import kotlinx.android.synthetic.main.change_running_record_fragment.*
27+ import kotlinx.android.synthetic.main.change_running_record_fragment.arrowChangeRunningRecordType
28+ import kotlinx.android.synthetic.main.change_running_record_fragment.btnChangeRunningRecordDelete
29+ import kotlinx.android.synthetic.main.change_running_record_fragment.btnChangeRunningRecordSave
30+ import kotlinx.android.synthetic.main.change_running_record_fragment.fieldChangeRunningRecordTimeStarted
31+ import kotlinx.android.synthetic.main.change_running_record_fragment.fieldChangeRunningRecordType
32+ import kotlinx.android.synthetic.main.change_running_record_fragment.previewChangeRunningRecord
33+ import kotlinx.android.synthetic.main.change_running_record_fragment.rvChangeRunningRecordType
34+ import kotlinx.android.synthetic.main.change_running_record_fragment.tvChangeRunningRecordTimeStarted
3035import javax.inject.Inject
3136
3237class ChangeRunningRecordFragment : BaseFragment (R .layout.change_running_record_fragment),
@@ -41,7 +46,9 @@ class ChangeRunningRecordFragment : BaseFragment(R.layout.change_running_record_
4146 private val typesAdapter: ChangeRunningRecordAdapter by lazy {
4247 ChangeRunningRecordAdapter (viewModel::onTypeClick)
4348 }
44- private val recordId: Long by lazy { arguments?.getLong(ARGS_RUNNING_RECORD_ID ).orZero() }
49+ private val params: ChangeRunningRecordParams by lazy {
50+ arguments?.getParcelable(ARGS_PARAMS ) ? : ChangeRunningRecordParams ()
51+ }
4552
4653 override fun initDi () {
4754 (activity?.application as ChangeRunningRecordComponentProvider )
@@ -50,14 +57,16 @@ class ChangeRunningRecordFragment : BaseFragment(R.layout.change_running_record_
5057 }
5158
5259 override fun initUi () {
60+ setPreview()
61+
5362 if (BuildVersions .isLollipopOrHigher()) {
5463 sharedElementEnterTransition = TransitionInflater .from(context)
5564 .inflateTransition(android.R .transition.move)
5665 }
5766
5867 ViewCompat .setTransitionName(
5968 previewChangeRunningRecord,
60- TransitionNames .RECORD_RUNNING + recordId
69+ TransitionNames .RECORD_RUNNING + params.id
6170 )
6271
6372 rvChangeRunningRecordType.apply {
@@ -79,7 +88,7 @@ class ChangeRunningRecordFragment : BaseFragment(R.layout.change_running_record_
7988
8089 override fun initViewModel () {
8190 with (viewModel) {
82- extra = ChangeRunningRecordExtra (id = recordId)
91+ extra = params
8392 record.observe(viewLifecycleOwner, ::updatePreview)
8493 types.observe(viewLifecycleOwner, typesAdapter::replace)
8594 deleteButtonEnabled.observe(
@@ -111,6 +120,18 @@ class ChangeRunningRecordFragment : BaseFragment(R.layout.change_running_record_
111120 viewModel.onDateTimeSet(timestamp, tag)
112121 }
113122
123+ private fun setPreview () = params.preview?.run {
124+ ChangeRunningRecordViewData (
125+ name = name,
126+ timeStarted = timeStarted,
127+ dateTimeStarted = " " ,
128+ duration = duration,
129+ goalTime = goalTime,
130+ iconId = iconId,
131+ color = color
132+ ).let (::updatePreview)
133+ }
134+
114135 private fun updatePreview (item : ChangeRunningRecordViewData ) {
115136 with (previewChangeRunningRecord) {
116137 itemName = item.name
@@ -124,13 +145,11 @@ class ChangeRunningRecordFragment : BaseFragment(R.layout.change_running_record_
124145 }
125146
126147 companion object {
127- private const val ARGS_RUNNING_RECORD_ID = " args_running_record_id "
148+ private const val ARGS_PARAMS = " args_running_record_params "
128149
129150 fun createBundle (data : Any? ): Bundle = Bundle ().apply {
130151 when (data) {
131- is ChangeRunningRecordParams -> {
132- putLong(ARGS_RUNNING_RECORD_ID , data.id)
133- }
152+ is ChangeRunningRecordParams -> putParcelable(ARGS_PARAMS , data)
134153 }
135154 }
136155 }
0 commit comments