88 */
99package com.nextcloud.android.common.sample
1010
11- import android.graphics.Color
1211import android.os.Bundle
1312import android.widget.Toast
13+ import androidx.appcompat.app.AlertDialog
1414import androidx.appcompat.app.AppCompatActivity
15+ import androidx.core.graphics.toColorInt
1516import androidx.lifecycle.ViewModelProvider
17+ import com.google.android.material.button.MaterialButton
18+ import com.google.android.material.dialog.MaterialAlertDialogBuilder
1619import com.nextcloud.android.common.sample.databinding.ActivityMainBinding
1720import com.nextcloud.android.common.ui.color.ColorUtil
1821import com.nextcloud.android.common.ui.theme.MaterialSchemes
1922import com.nextcloud.android.common.ui.theme.utils.AndroidViewThemeUtils
2023import com.nextcloud.android.common.ui.theme.utils.ColorRole
24+ import com.nextcloud.android.common.ui.theme.utils.DialogViewThemeUtils
2125import com.nextcloud.android.common.ui.theme.utils.MaterialViewThemeUtils
2226
2327class MainActivity : AppCompatActivity () {
@@ -34,7 +38,7 @@ class MainActivity : AppCompatActivity() {
3438 // Color should be fetched from the server capabilities or another proper source
3539 binding.btn.setOnClickListener { _ ->
3640 try {
37- mainViewModel.color.value = Color .parseColor( " #${binding.color.text} " )
41+ mainViewModel.color.value = " #${binding.color.text} " .toColorInt( )
3842 } catch (_: java.lang.IllegalArgumentException ) {
3943 Toast
4044 .makeText(
@@ -45,10 +49,39 @@ class MainActivity : AppCompatActivity() {
4549 }
4650 }
4751
52+ binding.dialogBtn.setOnClickListener { _ ->
53+ // launch MaterialDialog
54+ val builder =
55+ MaterialAlertDialogBuilder (this )
56+ .setPositiveButton(R .string.ok) { dialog, _ -> dialog.dismiss() }
57+ .setNeutralButton(R .string.dismiss) { dialog, _ -> dialog.dismiss() }
58+ .setNegativeButton(R .string.cancel) { dialog, _ -> dialog.dismiss() }
59+ .setTitle(R .string.dialog_title)
60+ .setMessage(getString(R .string.dialog_message))
61+ val schemes = MaterialSchemes .Companion .fromColor(" #${binding.color.text} " .toColorInt())
62+ val colorUtil = ColorUtil (this )
63+ val dialogViewThemeUtils = DialogViewThemeUtils (schemes)
64+ val material = MaterialViewThemeUtils (schemes, colorUtil)
65+
66+ dialogViewThemeUtils.colorMaterialAlertDialogBackground(this , builder)
67+
68+ val dialog = builder.create()
69+ dialog.show()
70+
71+ val positiveButton = dialog.getButton(AlertDialog .BUTTON_POSITIVE ) as MaterialButton
72+ material.colorMaterialButtonPrimaryTonal(positiveButton)
73+
74+ val neutralButton = dialog.getButton(AlertDialog .BUTTON_NEUTRAL ) as MaterialButton
75+ material.colorMaterialButtonPrimaryOutlined(neutralButton)
76+
77+ val negativeButton = dialog.getButton(AlertDialog .BUTTON_NEGATIVE ) as MaterialButton
78+ material.colorMaterialButtonPrimaryBorderless(negativeButton)
79+ }
80+
4881 setSupportActionBar(binding.toolbar)
4982 supportActionBar?.setDisplayHomeAsUpEnabled(true )
5083 mainViewModel.color.observe(this ) { applyTheme(it) }
51- applyTheme(Color .parseColor( " #${binding.color.text} " ))
84+ applyTheme(" #${binding.color.text} " .toColorInt( ))
5285 }
5386
5487 private fun applyTheme (color : Int ) {
@@ -76,5 +109,6 @@ class MainActivity : AppCompatActivity() {
76109 material.themeChipInput(binding.inputChip)
77110 material.themeChipSuggestion(binding.suggestionChip)
78111 material.themeChipFilter(binding.filterChip)
112+ material.colorMaterialButtonPrimaryFilled(binding.dialogBtn)
79113 }
80114}
0 commit comments