@@ -22,15 +22,24 @@ import com.example.util.simpletimetracker.domain.extension.orZero
2222import com.example.util.simpletimetracker.feature_change_record.R
2323import com.example.util.simpletimetracker.feature_change_record.adapter.ChangeRecordAdapter
2424import com.example.util.simpletimetracker.feature_change_record.di.ChangeRecordComponentProvider
25- import com.example.util.simpletimetracker.feature_change_record.extra.ChangeRecordExtra
2625import com.example.util.simpletimetracker.feature_change_record.viewData.ChangeRecordViewData
2726import com.example.util.simpletimetracker.feature_change_record.viewModel.ChangeRecordViewModel
2827import com.example.util.simpletimetracker.navigation.params.ChangeRecordParams
2928import com.google.android.flexbox.FlexDirection
3029import com.google.android.flexbox.FlexWrap
3130import com.google.android.flexbox.FlexboxLayoutManager
3231import com.google.android.flexbox.JustifyContent
33- import kotlinx.android.synthetic.main.change_record_fragment.*
32+ import kotlinx.android.synthetic.main.change_record_fragment.arrowChangeRecordType
33+ import kotlinx.android.synthetic.main.change_record_fragment.btnChangeRecordDelete
34+ import kotlinx.android.synthetic.main.change_record_fragment.btnChangeRecordSave
35+ import kotlinx.android.synthetic.main.change_record_fragment.etChangeRecordComment
36+ import kotlinx.android.synthetic.main.change_record_fragment.fieldChangeRecordTimeEnded
37+ import kotlinx.android.synthetic.main.change_record_fragment.fieldChangeRecordTimeStarted
38+ import kotlinx.android.synthetic.main.change_record_fragment.fieldChangeRecordType
39+ import kotlinx.android.synthetic.main.change_record_fragment.previewChangeRecord
40+ import kotlinx.android.synthetic.main.change_record_fragment.rvChangeRecordType
41+ import kotlinx.android.synthetic.main.change_record_fragment.tvChangeRecordTimeEnded
42+ import kotlinx.android.synthetic.main.change_record_fragment.tvChangeRecordTimeStarted
3443import javax.inject.Inject
3544
3645class ChangeRecordFragment : BaseFragment (R .layout.change_record_fragment),
@@ -52,8 +61,8 @@ class ChangeRecordFragment : BaseFragment(R.layout.change_record_fragment),
5261 private val typesAdapter: ChangeRecordAdapter by lazy {
5362 ChangeRecordAdapter (viewModel::onTypeClick)
5463 }
55- private val extra: ChangeRecordExtra by lazy {
56- arguments?.getParcelable<ChangeRecordExtra >( ARGS_EXTRA ) ? : ChangeRecordExtra .New ()
64+ private val extra: ChangeRecordParams by lazy {
65+ arguments?.getParcelable<ChangeRecordParams >( ARGS_PARAMS ) ? : ChangeRecordParams .New ()
5766 }
5867
5968 override fun initDi () {
@@ -63,14 +72,16 @@ class ChangeRecordFragment : BaseFragment(R.layout.change_record_fragment),
6372 }
6473
6574 override fun initUi () {
75+ setPreview()
76+
6677 if (BuildVersions .isLollipopOrHigher()) {
6778 sharedElementEnterTransition = TransitionInflater .from(context)
6879 .inflateTransition(android.R .transition.move)
6980 }
7081
7182 val transitionName: String = when (extra) {
72- is ChangeRecordExtra .Tracked -> (extra as ? ChangeRecordExtra .Tracked )?.transitionName.orEmpty()
73- is ChangeRecordExtra .Untracked -> (extra as ? ChangeRecordExtra .Untracked )?.transitionName.orEmpty()
83+ is ChangeRecordParams .Tracked -> (extra as ? ChangeRecordParams .Tracked )?.transitionName.orEmpty()
84+ is ChangeRecordParams .Untracked -> (extra as ? ChangeRecordParams .Untracked )?.transitionName.orEmpty()
7485 else -> " "
7586 }
7687 ViewCompat .setTransitionName(previewChangeRecord, transitionName)
@@ -112,7 +123,7 @@ class ChangeRecordFragment : BaseFragment(R.layout.change_record_fragment),
112123 }
113124 }
114125 with (removeRecordViewModel) {
115- prepare((extra as ? ChangeRecordExtra .Tracked )?.id.orZero())
126+ prepare((extra as ? ChangeRecordParams .Tracked )?.id.orZero())
116127 deleteButtonEnabled.observe(viewLifecycleOwner, btnChangeRecordDelete::setEnabled)
117128 deleteIconVisibility.observe(viewLifecycleOwner, btnChangeRecordDelete::visible::set)
118129 }
@@ -127,6 +138,24 @@ class ChangeRecordFragment : BaseFragment(R.layout.change_record_fragment),
127138 etChangeRecordComment.setSelection(item.comment.length)
128139 }
129140
141+ private fun setPreview () = when (extra) {
142+ is ChangeRecordParams .Tracked -> (extra as ? ChangeRecordParams .Tracked )?.preview
143+ is ChangeRecordParams .Untracked -> (extra as ? ChangeRecordParams .Untracked )?.preview
144+ else -> null
145+ }?.let { preview ->
146+ ChangeRecordViewData (
147+ name = preview.name,
148+ timeStarted = preview.timeStarted,
149+ timeFinished = preview.timeFinished,
150+ dateTimeStarted = " " ,
151+ dateTimeFinished = " " ,
152+ duration = preview.duration,
153+ iconId = preview.iconId,
154+ color = preview.color,
155+ comment = preview.comment
156+ ).let (::updatePreview)
157+ }
158+
130159 private fun updatePreview (item : ChangeRecordViewData ) {
131160 with (previewChangeRecord) {
132161 itemName = item.name
@@ -142,31 +171,11 @@ class ChangeRecordFragment : BaseFragment(R.layout.change_record_fragment),
142171 }
143172
144173 companion object {
145- private const val ARGS_EXTRA = " args_extra "
174+ private const val ARGS_PARAMS = " args_change_record_params "
146175
147176 fun createBundle (data : Any? ): Bundle = Bundle ().apply {
148177 when (data) {
149- is ChangeRecordParams -> {
150- val extra = when (data) {
151- is ChangeRecordParams .Tracked -> {
152- ChangeRecordExtra .Tracked (
153- transitionName = data.transitionName,
154- id = data.id
155- )
156- }
157- is ChangeRecordParams .Untracked -> {
158- ChangeRecordExtra .Untracked (
159- transitionName = data.transitionName,
160- timeStarted = data.timeStarted,
161- timeEnded = data.timeEnded
162- )
163- }
164- is ChangeRecordParams .New -> {
165- ChangeRecordExtra .New (data.daysFromToday)
166- }
167- }
168- putParcelable(ARGS_EXTRA , extra)
169- }
178+ is ChangeRecordParams -> putParcelable(ARGS_PARAMS , data)
170179 }
171180 }
172181 }
0 commit comments