Skip to content

Commit 6075116

Browse files
committed
rounded date time dialog
1 parent 8149918 commit 6075116

5 files changed

Lines changed: 40 additions & 0 deletions

File tree

features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/dateTime/DateTimeDialogFragment.kt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,22 @@ import android.view.ViewGroup
88
import androidx.appcompat.app.AppCompatActivity
99
import androidx.appcompat.app.AppCompatDialogFragment
1010
import androidx.fragment.app.commit
11+
import androidx.lifecycle.lifecycleScope
1112
import com.example.util.simpletimetracker.core.dialog.DateTimeDialogListener
1213
import com.example.util.simpletimetracker.core.extension.getAllFragments
1314
import com.example.util.simpletimetracker.feature_views.extension.onTabSelected
1415
import com.example.util.simpletimetracker.feature_views.extension.visible
1516
import com.example.util.simpletimetracker.core.mapper.TimeMapper
17+
import com.example.util.simpletimetracker.core.repo.ResourceRepo
1618
import com.example.util.simpletimetracker.core.utils.fragmentArgumentDelegate
19+
import com.example.util.simpletimetracker.domain.prefs.interactor.PrefsInteractor
1720
import com.example.util.simpletimetracker.feature_dialogs.R
1821
import com.example.util.simpletimetracker.feature_dialogs.databinding.DateTimeDialogFragmentBinding
1922
import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogParams
2023
import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogType
2124
import com.google.android.material.tabs.TabLayout
2225
import dagger.hilt.android.AndroidEntryPoint
26+
import kotlinx.coroutines.launch
2327
import java.util.Calendar
2428
import 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
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<shape xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:shape="rectangle">
4+
<solid android:color="@color/colorDialogBackground" />
5+
<corners android:radius="16dp" />
6+
</shape>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<shape xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:shape="rectangle">
4+
<solid android:color="@color/colorDialogBackgroundDark" />
5+
<corners android:radius="16dp" />
6+
</shape>

features/feature_views/src/main/res/values/attrs.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<attr name="appBackgroundColor" format="reference" />
77
<attr name="appBackgroundDialogColor" format="reference" />
88
<attr name="appDialogBackground" format="reference" />
9+
<attr name="appDialogDateBackground" format="reference" />
910
<attr name="appTextHintColor" format="reference" />
1011
<attr name="appArrow" format="reference" />
1112
<attr name="appDividerColor" format="reference" />

features/feature_views/src/main/res/values/styles.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
<item name="appBackgroundColor">@color/colorBackground</item>
2424
<item name="appBackgroundDialogColor">@color/colorDialogBackground</item>
2525
<item name="appDialogBackground">@drawable/bg_rounded_bottom_sheet</item>
26+
<item name="appDialogDateBackground">@drawable/bg_rounded_dialog</item>
2627
<item name="appTextHintColor">@color/textHint</item>
2728
<item name="appArrow">@drawable/arrow</item>
2829
<item name="appDividerColor">@color/colorDivider</item>
@@ -71,6 +72,7 @@
7172
<item name="appBackgroundColor">@color/colorBackgroundDark</item>
7273
<item name="appBackgroundDialogColor">@color/colorDialogBackgroundDark</item>
7374
<item name="appDialogBackground">@drawable/bg_rounded_bottom_sheet_dark</item>
75+
<item name="appDialogDateBackground">@drawable/bg_rounded_dialog_dark</item>
7476
<item name="appTextHintColor">@color/textHintDark</item>
7577
<item name="appArrow">@drawable/arrow_dark</item>
7678
<item name="appDividerColor">@color/colorDividerDark</item>

0 commit comments

Comments
 (0)