@@ -8,18 +8,22 @@ import android.view.ViewGroup
88import androidx.appcompat.app.AppCompatActivity
99import androidx.appcompat.app.AppCompatDialogFragment
1010import androidx.fragment.app.commit
11+ import androidx.lifecycle.lifecycleScope
1112import com.example.util.simpletimetracker.core.dialog.DateTimeDialogListener
1213import com.example.util.simpletimetracker.core.extension.getAllFragments
1314import com.example.util.simpletimetracker.feature_views.extension.onTabSelected
1415import com.example.util.simpletimetracker.feature_views.extension.visible
1516import com.example.util.simpletimetracker.core.mapper.TimeMapper
17+ import com.example.util.simpletimetracker.core.repo.ResourceRepo
1618import com.example.util.simpletimetracker.core.utils.fragmentArgumentDelegate
19+ import com.example.util.simpletimetracker.domain.prefs.interactor.PrefsInteractor
1720import com.example.util.simpletimetracker.feature_dialogs.R
1821import com.example.util.simpletimetracker.feature_dialogs.databinding.DateTimeDialogFragmentBinding
1922import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogParams
2023import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogType
2124import com.google.android.material.tabs.TabLayout
2225import dagger.hilt.android.AndroidEntryPoint
26+ import kotlinx.coroutines.launch
2327import java.util.Calendar
2428import javax.inject.Inject
2529
@@ -32,6 +36,12 @@ class DateTimeDialogFragment :
3236 @Inject
3337 lateinit var timeMapper: TimeMapper
3438
39+ @Inject
40+ lateinit var resourceRepo: ResourceRepo
41+
42+ @Inject
43+ lateinit var prefsInteractor: PrefsInteractor
44+
3545 private val binding: DateTimeDialogFragmentBinding get() = _binding !!
3646 private var _binding : DateTimeDialogFragmentBinding ? = null
3747
@@ -103,6 +113,7 @@ class DateTimeDialogFragment :
103113 private fun initUi () {
104114 initFragments()
105115 initTabs()
116+ initBackground()
106117 }
107118
108119 private fun initUx () {
@@ -179,6 +190,20 @@ class DateTimeDialogFragment :
179190 }
180191 }
181192
193+ private fun initBackground () {
194+ // getThemedAttr doesn't work for some reason, resource not found,
195+ // retrieve manually without attr.
196+ lifecycleScope.launch {
197+ val isDarkTheme = prefsInteractor.getDarkMode()
198+ val resId = if (isDarkTheme) {
199+ R .drawable.bg_rounded_dialog_dark
200+ } else {
201+ R .drawable.bg_rounded_dialog
202+ }
203+ dialog?.window?.setBackgroundDrawableResource(resId)
204+ }
205+ }
206+
182207 private fun setDateTabOnly () = with (binding) {
183208 tabsDateTimeDialog.visible = false
184209 datePickerContainer.visible = true
0 commit comments