Bugfixes
This commit is contained in:
parent
dd6b631868
commit
55b3a02da5
@ -3,16 +3,29 @@ package com.tommasoberlose.anotherwidget.components
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.res.ColorStateList
|
import android.content.res.ColorStateList
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
|
import android.text.Editable
|
||||||
|
import android.text.TextWatcher
|
||||||
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.GridLayout
|
import android.widget.GridLayout
|
||||||
import androidx.annotation.ColorInt
|
import androidx.annotation.ColorInt
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
|
import androidx.core.widget.addTextChangedListener
|
||||||
|
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||||
import com.tommasoberlose.anotherwidget.R
|
import com.tommasoberlose.anotherwidget.R
|
||||||
|
import com.tommasoberlose.anotherwidget.helpers.ColorHelper
|
||||||
import com.tommasoberlose.anotherwidget.helpers.ColorHelper.isColorDark
|
import com.tommasoberlose.anotherwidget.helpers.ColorHelper.isColorDark
|
||||||
|
import com.tommasoberlose.anotherwidget.utils.expand
|
||||||
|
import com.tommasoberlose.anotherwidget.utils.reveal
|
||||||
|
import kotlinx.android.synthetic.main.bottom_sheet_menu_hor.*
|
||||||
import kotlinx.android.synthetic.main.bottom_sheet_menu_hor.view.*
|
import kotlinx.android.synthetic.main.bottom_sheet_menu_hor.view.*
|
||||||
|
import kotlinx.android.synthetic.main.bottom_sheet_menu_hor.view.color_loader
|
||||||
import kotlinx.android.synthetic.main.color_picker_menu_item.view.*
|
import kotlinx.android.synthetic.main.color_picker_menu_item.view.*
|
||||||
|
import kotlinx.coroutines.*
|
||||||
|
import java.lang.Exception
|
||||||
|
import java.util.prefs.Preferences
|
||||||
|
|
||||||
class BottomSheetColorPicker(
|
class BottomSheetColorPicker(
|
||||||
context: Context,
|
context: Context,
|
||||||
@ -22,6 +35,8 @@ class BottomSheetColorPicker(
|
|||||||
private val onColorSelected: ((selectedValue: Int) -> Unit)? = null
|
private val onColorSelected: ((selectedValue: Int) -> Unit)? = null
|
||||||
) : BottomSheetDialog(context, R.style.BottomSheetDialogTheme) {
|
) : BottomSheetDialog(context, R.style.BottomSheetDialogTheme) {
|
||||||
|
|
||||||
|
private val loadingJob: Job? = null
|
||||||
|
|
||||||
override fun show() {
|
override fun show() {
|
||||||
val view = View.inflate(context, R.layout.bottom_sheet_menu_hor, null)
|
val view = View.inflate(context, R.layout.bottom_sheet_menu_hor, null)
|
||||||
|
|
||||||
@ -29,27 +44,45 @@ class BottomSheetColorPicker(
|
|||||||
view.header.isVisible = header != null
|
view.header.isVisible = header != null
|
||||||
view.header_text.text = header ?: ""
|
view.header_text.text = header ?: ""
|
||||||
|
|
||||||
// Menu
|
val itemViews: ArrayList<View> = ArrayList()
|
||||||
for (@ColorInt color: Int in colors) {
|
|
||||||
val itemView = View.inflate(context, R.layout.color_picker_menu_item, null)
|
GlobalScope.launch(Dispatchers.IO) {
|
||||||
itemView.color.setCardBackgroundColor(ColorStateList.valueOf(color))
|
for (@ColorInt color: Int in colors) {
|
||||||
itemView.check.setColorFilter(ContextCompat.getColor(context,
|
val itemView = View.inflate(context, R.layout.color_picker_menu_item, null)
|
||||||
if (color.isColorDark()) android.R.color.white else android.R.color.black
|
itemView.color.setCardBackgroundColor(ColorStateList.valueOf(color))
|
||||||
), android.graphics.PorterDuff.Mode.MULTIPLY)
|
itemView.check.setColorFilter(ContextCompat.getColor(context,
|
||||||
itemView.check.isVisible = selected == color
|
if (color.isColorDark()) android.R.color.white else android.R.color.black
|
||||||
itemView.color.setOnClickListener {
|
), android.graphics.PorterDuff.Mode.MULTIPLY)
|
||||||
onColorSelected?.invoke(color)
|
itemView.check.isVisible = selected == color
|
||||||
this.dismiss()
|
itemView.color.setOnClickListener {
|
||||||
|
onColorSelected?.invoke(color)
|
||||||
|
this@BottomSheetColorPicker.dismiss()
|
||||||
|
}
|
||||||
|
itemViews.add(itemView)
|
||||||
|
}
|
||||||
|
|
||||||
|
withContext(Dispatchers.Main) {
|
||||||
|
itemViews.forEach {
|
||||||
|
view.menu.addView(it, GridLayout.LayoutParams(
|
||||||
|
GridLayout.spec(GridLayout.UNDEFINED, 1f),
|
||||||
|
GridLayout.spec(GridLayout.UNDEFINED, 1f)
|
||||||
|
))
|
||||||
|
}
|
||||||
|
color_loader.isVisible = false
|
||||||
|
view.menu.isVisible = true
|
||||||
|
this@BottomSheetColorPicker.behavior.state = BottomSheetBehavior.STATE_EXPANDED
|
||||||
}
|
}
|
||||||
view.menu.addView(itemView, GridLayout.LayoutParams(
|
|
||||||
GridLayout.spec(GridLayout.UNDEFINED, 1f),
|
|
||||||
GridLayout.spec(GridLayout.UNDEFINED, 1f)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Menu
|
||||||
|
|
||||||
setContentView(view)
|
setContentView(view)
|
||||||
super.show()
|
super.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onStop() {
|
||||||
|
loadingJob?.cancel()
|
||||||
|
super.onStop()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -7,12 +7,13 @@ import java.util.*
|
|||||||
|
|
||||||
object AlarmHelper {
|
object AlarmHelper {
|
||||||
fun getNextAlarm(context: Context): String = with(context.getSystemService(Context.ALARM_SERVICE) as AlarmManager) {
|
fun getNextAlarm(context: Context): String = with(context.getSystemService(Context.ALARM_SERVICE) as AlarmManager) {
|
||||||
|
val alarm = nextAlarmClock
|
||||||
return if (
|
return if (
|
||||||
nextAlarmClock != null
|
alarm != null
|
||||||
&& nextAlarmClock.triggerTime - Calendar.getInstance().timeInMillis > 2 * 60 * 1000
|
&& alarm.triggerTime - Calendar.getInstance().timeInMillis > 2 * 60 * 1000
|
||||||
&& nextAlarmClock.triggerTime - Calendar.getInstance().timeInMillis < 24 * 60 * 60 * 1000
|
&& alarm.triggerTime - Calendar.getInstance().timeInMillis < 24 * 60 * 60 * 1000
|
||||||
) {
|
) {
|
||||||
DateFormat.getTimeFormat(context).format(Date(nextAlarmClock.triggerTime))
|
DateFormat.getTimeFormat(context).format(Date(alarm.triggerTime))
|
||||||
} else {
|
} else {
|
||||||
""
|
""
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,7 @@ import com.tommasoberlose.anotherwidget.ui.activities.SupportDevActivity
|
|||||||
import com.tommasoberlose.anotherwidget.ui.viewmodels.MainViewModel
|
import com.tommasoberlose.anotherwidget.ui.viewmodels.MainViewModel
|
||||||
import com.tommasoberlose.anotherwidget.helpers.CalendarHelper
|
import com.tommasoberlose.anotherwidget.helpers.CalendarHelper
|
||||||
import com.tommasoberlose.anotherwidget.ui.widgets.MainWidget
|
import com.tommasoberlose.anotherwidget.ui.widgets.MainWidget
|
||||||
|
import com.tommasoberlose.anotherwidget.utils.checkGrantedPermission
|
||||||
import com.tommasoberlose.anotherwidget.utils.openURI
|
import com.tommasoberlose.anotherwidget.utils.openURI
|
||||||
import kotlinx.android.synthetic.main.fragment_advanced_settings.*
|
import kotlinx.android.synthetic.main.fragment_advanced_settings.*
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
@ -86,7 +87,7 @@ class AdvancedSettingsFragment : Fragment() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
viewModel.showWallpaper.observe(viewLifecycleOwner, Observer {
|
viewModel.showWallpaper.observe(viewLifecycleOwner, Observer {
|
||||||
show_wallpaper_label.text = if (it && requireActivity().checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) getString(R.string.settings_visible) else getString(R.string.settings_not_visible)
|
show_wallpaper_label.text = if (it && activity?.checkGrantedPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == true) getString(R.string.settings_visible) else getString(R.string.settings_not_visible)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,15 +137,15 @@ class AdvancedSettingsFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
action_translate.setOnClickListener {
|
action_translate.setOnClickListener {
|
||||||
requireActivity().openURI("https://github.com/tommasoberlose/another-widget/blob/master/app/src/main/res/values/strings.xml")
|
activity?.openURI("https://github.com/tommasoberlose/another-widget/blob/master/app/src/main/res/values/strings.xml")
|
||||||
}
|
}
|
||||||
|
|
||||||
action_website.setOnClickListener {
|
action_website.setOnClickListener {
|
||||||
requireActivity().openURI("http://tommasoberlose.com/")
|
activity?.openURI("http://tommasoberlose.com/")
|
||||||
}
|
}
|
||||||
|
|
||||||
action_feedback.setOnClickListener {
|
action_feedback.setOnClickListener {
|
||||||
requireActivity().openURI("https://github.com/tommasoberlose/another-widget/issues")
|
activity?.openURI("https://github.com/tommasoberlose/another-widget/issues")
|
||||||
}
|
}
|
||||||
|
|
||||||
action_help_dev.setOnClickListener {
|
action_help_dev.setOnClickListener {
|
||||||
|
@ -208,7 +208,7 @@ class CalendarSettingsFragment : Fragment() {
|
|||||||
checkReadEventsPermission()
|
checkReadEventsPermission()
|
||||||
}.show()
|
}.show()
|
||||||
} else {
|
} else {
|
||||||
requireActivity().toast(getString(R.string.calendar_settings_list_error))
|
activity?.toast(getString(R.string.calendar_settings_list_error))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -293,7 +293,7 @@ class CalendarSettingsFragment : Fragment() {
|
|||||||
|
|
||||||
dialog.addOnSelectItemListener { value ->
|
dialog.addOnSelectItemListener { value ->
|
||||||
if (value == "-") {
|
if (value == "-") {
|
||||||
startActivity(Intent(requireActivity(), CustomDateActivity::class.java))
|
startActivity(Intent(requireContext(), CustomDateActivity::class.java))
|
||||||
} else {
|
} else {
|
||||||
Preferences.dateFormat = value
|
Preferences.dateFormat = value
|
||||||
}
|
}
|
||||||
@ -311,7 +311,7 @@ class CalendarSettingsFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun checkReadEventsPermission(showEvents: Boolean = Preferences.showEvents) {
|
private fun checkReadEventsPermission(showEvents: Boolean = Preferences.showEvents) {
|
||||||
if (requireActivity().checkGrantedPermission(Manifest.permission.READ_CALENDAR)) {
|
if (activity?.checkGrantedPermission(Manifest.permission.READ_CALENDAR) == true) {
|
||||||
show_events_label.text = if (showEvents) getString(R.string.show_events_visible) else getString(R.string.show_events_not_visible)
|
show_events_label.text = if (showEvents) getString(R.string.show_events_visible) else getString(R.string.show_events_not_visible)
|
||||||
read_calendar_permission_alert_icon.isVisible = false
|
read_calendar_permission_alert_icon.isVisible = false
|
||||||
CalendarHelper.updateEventList(requireContext())
|
CalendarHelper.updateEventList(requireContext())
|
||||||
@ -325,7 +325,7 @@ class CalendarSettingsFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun requirePermission() {
|
private fun requirePermission() {
|
||||||
Dexter.withContext(requireActivity())
|
Dexter.withContext(requireContext())
|
||||||
.withPermissions(
|
.withPermissions(
|
||||||
Manifest.permission.READ_CALENDAR
|
Manifest.permission.READ_CALENDAR
|
||||||
).withListener(object: MultiplePermissionsListener {
|
).withListener(object: MultiplePermissionsListener {
|
||||||
|
@ -127,7 +127,7 @@ class ClockSettingsFragment : Fragment() {
|
|||||||
|
|
||||||
action_clock_app.setOnClickListener {
|
action_clock_app.setOnClickListener {
|
||||||
if (Preferences.showClock) {
|
if (Preferences.showClock) {
|
||||||
startActivityForResult(Intent(requireActivity(), ChooseApplicationActivity::class.java),
|
startActivityForResult(Intent(requireContext(), ChooseApplicationActivity::class.java),
|
||||||
RequestCode.CLOCK_APP_REQUEST_CODE.code
|
RequestCode.CLOCK_APP_REQUEST_CODE.code
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -22,8 +22,10 @@ import com.tommasoberlose.anotherwidget.helpers.SettingsStringHelper
|
|||||||
import com.tommasoberlose.anotherwidget.ui.activities.MainActivity
|
import com.tommasoberlose.anotherwidget.ui.activities.MainActivity
|
||||||
import com.tommasoberlose.anotherwidget.ui.viewmodels.MainViewModel
|
import com.tommasoberlose.anotherwidget.ui.viewmodels.MainViewModel
|
||||||
import kotlinx.android.synthetic.main.fragment_general_settings.*
|
import kotlinx.android.synthetic.main.fragment_general_settings.*
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
|
|
||||||
|
|
||||||
class GeneralSettingsFragment : Fragment() {
|
class GeneralSettingsFragment : Fragment() {
|
||||||
@ -33,6 +35,7 @@ class GeneralSettingsFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private lateinit var viewModel: MainViewModel
|
private lateinit var viewModel: MainViewModel
|
||||||
|
private lateinit var colors: IntArray
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
@ -59,6 +62,12 @@ class GeneralSettingsFragment : Fragment() {
|
|||||||
super.onActivityCreated(savedInstanceState)
|
super.onActivityCreated(savedInstanceState)
|
||||||
|
|
||||||
setupListener()
|
setupListener()
|
||||||
|
lifecycleScope.launch(Dispatchers.IO) {
|
||||||
|
val lazyColors = requireContext().resources.getIntArray(R.array.material_colors)
|
||||||
|
withContext(Dispatchers.Main) {
|
||||||
|
colors = lazyColors
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -140,7 +149,7 @@ class GeneralSettingsFragment : Fragment() {
|
|||||||
Color.parseColor(Preferences.textGlobalColor)
|
Color.parseColor(Preferences.textGlobalColor)
|
||||||
}
|
}
|
||||||
BottomSheetColorPicker(requireContext(),
|
BottomSheetColorPicker(requireContext(),
|
||||||
colors = requireActivity().resources.getIntArray(R.array.grey),
|
colors = colors,
|
||||||
header = getString(R.string.settings_font_color_title),
|
header = getString(R.string.settings_font_color_title),
|
||||||
selected = textColor,
|
selected = textColor,
|
||||||
onColorSelected = { color: Int ->
|
onColorSelected = { color: Int ->
|
||||||
|
@ -132,7 +132,7 @@ class WeatherSettingsFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun checkLocationPermission() {
|
private fun checkLocationPermission() {
|
||||||
if (requireActivity().checkGrantedPermission(Manifest.permission.ACCESS_FINE_LOCATION)) {
|
if (activity?.checkGrantedPermission(Manifest.permission.ACCESS_FINE_LOCATION) == true) {
|
||||||
location_permission_alert_icon.isVisible = false
|
location_permission_alert_icon.isVisible = false
|
||||||
WeatherReceiver.setUpdates(requireContext())
|
WeatherReceiver.setUpdates(requireContext())
|
||||||
} else if (Preferences.showWeather && Preferences.customLocationAdd == "") {
|
} else if (Preferences.showWeather && Preferences.customLocationAdd == "") {
|
||||||
@ -228,7 +228,7 @@ class WeatherSettingsFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun requirePermission() {
|
private fun requirePermission() {
|
||||||
Dexter.withContext(requireActivity())
|
Dexter.withContext(requireContext())
|
||||||
.withPermissions(
|
.withPermissions(
|
||||||
Manifest.permission.ACCESS_FINE_LOCATION
|
Manifest.permission.ACCESS_FINE_LOCATION
|
||||||
).withListener(object: MultiplePermissionsListener {
|
).withListener(object: MultiplePermissionsListener {
|
||||||
|
@ -49,13 +49,14 @@ class SupportDevViewModel : ViewModel() {
|
|||||||
fun handlePurchase(purchase: Purchase) {
|
fun handlePurchase(purchase: Purchase) {
|
||||||
if (!purchase.isAcknowledged) {
|
if (!purchase.isAcknowledged) {
|
||||||
viewModelScope.launch(Dispatchers.IO) {
|
viewModelScope.launch(Dispatchers.IO) {
|
||||||
|
val token = purchase.purchaseToken
|
||||||
val acknowledgePurchaseParams = AcknowledgePurchaseParams.newBuilder()
|
val acknowledgePurchaseParams = AcknowledgePurchaseParams.newBuilder()
|
||||||
.setPurchaseToken(purchase.purchaseToken)
|
.setPurchaseToken(token)
|
||||||
billingClient.acknowledgePurchase(acknowledgePurchaseParams.build())
|
billingClient.acknowledgePurchase(acknowledgePurchaseParams.build())
|
||||||
|
|
||||||
val consumeParams =
|
val consumeParams =
|
||||||
ConsumeParams.newBuilder()
|
ConsumeParams.newBuilder()
|
||||||
.setPurchaseToken(purchase.purchaseToken)
|
.setPurchaseToken(token)
|
||||||
.build()
|
.build()
|
||||||
billingClient.consumePurchase(consumeParams)
|
billingClient.consumePurchase(consumeParams)
|
||||||
}
|
}
|
||||||
|
@ -69,6 +69,8 @@
|
|||||||
android:paddingLeft="16dp"
|
android:paddingLeft="16dp"
|
||||||
android:paddingRight="16dp"
|
android:paddingRight="16dp"
|
||||||
android:inputType="textCapWords"
|
android:inputType="textCapWords"
|
||||||
|
android:textColor="@color/colorPrimaryText"
|
||||||
|
android:textColorHint="@color/colorSecondaryText"
|
||||||
android:textAlignment="viewStart"
|
android:textAlignment="viewStart"
|
||||||
android:id="@+id/search"
|
android:id="@+id/search"
|
||||||
android:gravity="center_vertical|start"
|
android:gravity="center_vertical|start"
|
||||||
|
@ -30,10 +30,27 @@
|
|||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
android:background="@color/disabledButtonBackground" />
|
android:background="@color/disabledButtonBackground" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<GridLayout
|
<androidx.core.widget.NestedScrollView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content">
|
||||||
android:id="@+id/menu"
|
<RelativeLayout
|
||||||
android:layout_margin="16dp"
|
android:layout_width="match_parent"
|
||||||
android:columnCount="6"/>
|
android:layout_height="wrap_content">
|
||||||
|
<GridLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:id="@+id/menu"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:layout_margin="16dp"
|
||||||
|
android:columnCount="6"/>
|
||||||
|
<ProgressBar
|
||||||
|
android:layout_width="32dp"
|
||||||
|
android:layout_height="32dp"
|
||||||
|
android:indeterminateTint="@color/colorPrimaryText"
|
||||||
|
android:indeterminate="true"
|
||||||
|
android:layout_margin="32dp"
|
||||||
|
android:layout_centerInParent="true"
|
||||||
|
android:id="@+id/color_loader" />
|
||||||
|
</RelativeLayout>
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@ -1,6 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<array name="grey">
|
<array name="material_colors">
|
||||||
|
<!-- Grey -->
|
||||||
<item name="grey_0">#FFFFFF</item>
|
<item name="grey_0">#FFFFFF</item>
|
||||||
<item name="grey_50">#FAFAFA</item>
|
<item name="grey_50">#FAFAFA</item>
|
||||||
<item name="grey_100">#F5F5F5</item>
|
<item name="grey_100">#F5F5F5</item>
|
||||||
@ -13,5 +14,304 @@
|
|||||||
<item name="grey_800">#424242</item>
|
<item name="grey_800">#424242</item>
|
||||||
<item name="grey_900">#212121</item>
|
<item name="grey_900">#212121</item>
|
||||||
<item name="grey_1000">#000000</item>
|
<item name="grey_1000">#000000</item>
|
||||||
|
<!-- Grey -->
|
||||||
|
|
||||||
|
<!-- Red -->
|
||||||
|
<item name="red_50">#FFEBEE</item>
|
||||||
|
<item name="red_100">#FFCDD2</item>
|
||||||
|
<item name="red_200">#EF9A9A</item>
|
||||||
|
<item name="red_300">#E57373</item>
|
||||||
|
<item name="red_400">#EF5350</item>
|
||||||
|
<item name="red_500">#F44336</item>
|
||||||
|
<item name="red_600">#E53935</item>
|
||||||
|
<item name="red_700">#D32F2F</item>
|
||||||
|
<item name="red_800">#C62828</item>
|
||||||
|
<item name="red_900">#B71C1C</item>
|
||||||
|
<item name="red_A100">#FF8A80</item>
|
||||||
|
<item name="red_A200">#FF5252</item>
|
||||||
|
<item name="red_A400">#FF1744</item>
|
||||||
|
<item name="red_A700">#D50000</item>
|
||||||
|
<!-- Red -->
|
||||||
|
|
||||||
|
<!-- Pink -->
|
||||||
|
<item name="pink_50">#FCE4EC</item>
|
||||||
|
<item name="pink_100">#F8BBD0</item>
|
||||||
|
<item name="pink_200">#F48FB1</item>
|
||||||
|
<item name="pink_300">#F06292</item>
|
||||||
|
<item name="pink_400">#EC407A</item>
|
||||||
|
<item name="pink_500">#E91E63</item>
|
||||||
|
<item name="pink_600">#D81B60</item>
|
||||||
|
<item name="pink_700">#C2185B</item>
|
||||||
|
<item name="pink_800">#AD1457</item>
|
||||||
|
<item name="pink_900">#880E4F</item>
|
||||||
|
<item name="pink_A100">#FF80AB</item>
|
||||||
|
<item name="pink_A200">#FF4081</item>
|
||||||
|
<item name="pink_A400">#F50057</item>
|
||||||
|
<item name="pink_A700">#C51162</item>
|
||||||
|
<!-- Pink -->
|
||||||
|
|
||||||
|
<!-- Purple -->
|
||||||
|
<item name="purple_50">#F3E5F5</item>
|
||||||
|
<item name="purple_100">#E1BEE7</item>
|
||||||
|
<item name="purple_200">#CE93D8</item>
|
||||||
|
<item name="purple_300">#BA68C8</item>
|
||||||
|
<item name="purple_400">#AB47BC</item>
|
||||||
|
<item name="purple_500">#9C27B0</item>
|
||||||
|
<item name="purple_600">#8E24AA</item>
|
||||||
|
<item name="purple_700">#7B1FA2</item>
|
||||||
|
<item name="purple_800">#6A1B9A</item>
|
||||||
|
<item name="purple_900">#4A148C</item>
|
||||||
|
<item name="purple_A100">#EA80FC</item>
|
||||||
|
<item name="purple_A200">#E040FB</item>
|
||||||
|
<item name="purple_A400">#D500F9</item>
|
||||||
|
<item name="purple_A700">#AA00FF</item>
|
||||||
|
<!-- Purple -->
|
||||||
|
|
||||||
|
<!-- Deep Purple -->
|
||||||
|
<item name="dark_purple_50">#EDE7F6</item>
|
||||||
|
<item name="dark_purple_100">#D1C4E9</item>
|
||||||
|
<item name="dark_purple_200">#B39DDB</item>
|
||||||
|
<item name="dark_purple_300">#9575CD</item>
|
||||||
|
<item name="dark_purple_400">#7E57C2</item>
|
||||||
|
<item name="dark_purple_500">#673AB7</item>
|
||||||
|
<item name="dark_purple_600">#5E35B1</item>
|
||||||
|
<item name="dark_purple_700">#512DA8</item>
|
||||||
|
<item name="dark_purple_800">#4527A0</item>
|
||||||
|
<item name="dark_purple_900">#311B92</item>
|
||||||
|
<item name="dark_purple_A100">#B388FF</item>
|
||||||
|
<item name="dark_purple_A200">#7C4DFF</item>
|
||||||
|
<item name="dark_purple_A400">#651FFF</item>
|
||||||
|
<item name="dark_purple_A700">#6200EA</item>
|
||||||
|
<!-- Deep Purple -->
|
||||||
|
|
||||||
|
<!-- Indigo -->
|
||||||
|
<item name="indigo_50">#E8EAF6</item>
|
||||||
|
<item name="indigo_100">#C5CAE9</item>
|
||||||
|
<item name="indigo_200">#9FA8DA</item>
|
||||||
|
<item name="indigo_300">#7986CB</item>
|
||||||
|
<item name="indigo_400">#5C6BC0</item>
|
||||||
|
<item name="indigo_500">#3F51B5</item>
|
||||||
|
<item name="indigo_600">#3949AB</item>
|
||||||
|
<item name="indigo_700">#303F9F</item>
|
||||||
|
<item name="indigo_800">#283593</item>
|
||||||
|
<item name="indigo_900">#1A237E</item>
|
||||||
|
<item name="indigo_A100">#8C9EFF</item>
|
||||||
|
<item name="indigo_A200">#536DFE</item>
|
||||||
|
<item name="indigo_A400">#3D5AFE</item>
|
||||||
|
<item name="indigo_A700">#304FFE</item>
|
||||||
|
<!-- Indigo -->
|
||||||
|
|
||||||
|
<!-- Blue -->
|
||||||
|
<item name="blue_50">#E3F2FD</item>
|
||||||
|
<item name="blue_100">#BBDEFB</item>
|
||||||
|
<item name="blue_200">#90CAF9</item>
|
||||||
|
<item name="blue_300">#64B5F6</item>
|
||||||
|
<item name="blue_400">#42A5F5</item>
|
||||||
|
<item name="blue_500">#2196F3</item>
|
||||||
|
<item name="blue_600">#1E88E5</item>
|
||||||
|
<item name="blue_700">#1976D2</item>
|
||||||
|
<item name="blue_800">#1565C0</item>
|
||||||
|
<item name="blue_900">#0D47A1</item>
|
||||||
|
<item name="blue_A100">#82B1FF</item>
|
||||||
|
<item name="blue_A200">#448AFF</item>
|
||||||
|
<item name="blue_A400">#2979FF</item>
|
||||||
|
<item name="blue_A700">#2962FF</item>
|
||||||
|
<!-- Blue -->
|
||||||
|
|
||||||
|
<!-- Light Blue -->
|
||||||
|
<item name="light_blue_50">#E1F5FE</item>
|
||||||
|
<item name="light_blue_100">#B3E5FC</item>
|
||||||
|
<item name="light_blue_200">#81D4FA</item>
|
||||||
|
<item name="light_blue_300">#4FC3F7</item>
|
||||||
|
<item name="light_blue_400">#29B6F6</item>
|
||||||
|
<item name="light_blue_500">#03A9F4</item>
|
||||||
|
<item name="light_blue_600">#039BE5</item>
|
||||||
|
<item name="light_blue_700">#0288D1</item>
|
||||||
|
<item name="light_blue_800">#0277BD</item>
|
||||||
|
<item name="light_blue_900">#01579B</item>
|
||||||
|
<item name="light_blue_A100">#80D8FF</item>
|
||||||
|
<item name="light_blue_A200">#40C4FF</item>
|
||||||
|
<item name="light_blue_A400">#00B0FF</item>
|
||||||
|
<item name="light_blue_A700">#0091EA</item>
|
||||||
|
<!-- Light Blue -->
|
||||||
|
|
||||||
|
<!-- Cyan -->
|
||||||
|
<item name="cyan_50">#E0F7FA</item>
|
||||||
|
<item name="cyan_100">#B2EBF2</item>
|
||||||
|
<item name="cyan_200">#80DEEA</item>
|
||||||
|
<item name="cyan_300">#4DD0E1</item>
|
||||||
|
<item name="cyan_400">#26C6DA</item>
|
||||||
|
<item name="cyan_500">#00BCD4</item>
|
||||||
|
<item name="cyan_600">#00ACC1</item>
|
||||||
|
<item name="cyan_700">#0097A7</item>
|
||||||
|
<item name="cyan_800">#00838F</item>
|
||||||
|
<item name="cyan_900">#006064</item>
|
||||||
|
<item name="cyan_A100">#84FFFF</item>
|
||||||
|
<item name="cyan_A200">#18FFFF</item>
|
||||||
|
<item name="cyan_A400">#00E5FF</item>
|
||||||
|
<item name="cyan_A700">#00B8D4</item>
|
||||||
|
<!-- Cyan -->
|
||||||
|
|
||||||
|
<!-- Teal -->
|
||||||
|
<item name="teal_50">#E0F2F1</item>
|
||||||
|
<item name="teal_100">#B2DFDB</item>
|
||||||
|
<item name="teal_200">#80CBC4</item>
|
||||||
|
<item name="teal_300">#4DB6AC</item>
|
||||||
|
<item name="teal_400">#26A69A</item>
|
||||||
|
<item name="teal_500">#009688</item>
|
||||||
|
<item name="teal_600">#00897B</item>
|
||||||
|
<item name="teal_700">#00796B</item>
|
||||||
|
<item name="teal_800">#00695C</item>
|
||||||
|
<item name="teal_900">#004D40</item>
|
||||||
|
<item name="teal_A100">#A7FFEB</item>
|
||||||
|
<item name="teal_A200">#64FFDA</item>
|
||||||
|
<item name="teal_A400">#1DE9B6</item>
|
||||||
|
<item name="teal_A700">#00BFA5</item>
|
||||||
|
<!-- Teal -->
|
||||||
|
|
||||||
|
<!-- Green -->
|
||||||
|
<item name="green_50">#E8F5E9</item>
|
||||||
|
<item name="green_100">#C8E6C9</item>
|
||||||
|
<item name="green_200">#A5D6A7</item>
|
||||||
|
<item name="green_300">#81C784</item>
|
||||||
|
<item name="green_400">#66BB6A</item>
|
||||||
|
<item name="green_500">#4CAF50</item>
|
||||||
|
<item name="green_600">#43A047</item>
|
||||||
|
<item name="green_700">#388E3C</item>
|
||||||
|
<item name="green_800">#2E7D32</item>
|
||||||
|
<item name="green_900">#1B5E20</item>
|
||||||
|
<item name="green_A100">#B9F6CA</item>
|
||||||
|
<item name="green_A200">#69F0AE</item>
|
||||||
|
<item name="green_A400">#00E676</item>
|
||||||
|
<item name="green_A700">#00C853</item>
|
||||||
|
<!-- Green -->
|
||||||
|
|
||||||
|
<!-- Light Green -->
|
||||||
|
<item name="light_green_50">#F1F8E9</item>
|
||||||
|
<item name="light_green_100">#DCEDC8</item>
|
||||||
|
<item name="light_green_200">#C5E1A5</item>
|
||||||
|
<item name="light_green_300">#AED581</item>
|
||||||
|
<item name="light_green_400">#9CCC65</item>
|
||||||
|
<item name="light_green_500">#8BC34A</item>
|
||||||
|
<item name="light_green_600">#7CB342</item>
|
||||||
|
<item name="light_green_700">#689F38</item>
|
||||||
|
<item name="light_green_800">#558B2F</item>
|
||||||
|
<item name="light_green_900">#33691E</item>
|
||||||
|
<item name="light_green_A100">#CCFF90</item>
|
||||||
|
<item name="light_green_A200">#B2FF59</item>
|
||||||
|
<item name="light_green_A400">#76FF03</item>
|
||||||
|
<item name="light_green_A700">#64DD17</item>
|
||||||
|
<!-- Light Green -->
|
||||||
|
|
||||||
|
<!-- Lime -->
|
||||||
|
<item name="lime_50">#F9FBE7</item>
|
||||||
|
<item name="lime_100">#F0F4C3</item>
|
||||||
|
<item name="lime_200">#E6EE9C</item>
|
||||||
|
<item name="lime_300">#DCE775</item>
|
||||||
|
<item name="lime_400">#D4E157</item>
|
||||||
|
<item name="lime_500">#CDDC39</item>
|
||||||
|
<item name="lime_600">#C0CA33</item>
|
||||||
|
<item name="lime_700">#AFB42B</item>
|
||||||
|
<item name="lime_800">#9E9D24</item>
|
||||||
|
<item name="lime_900">#827717</item>
|
||||||
|
<item name="lime_A100">#F4FF81</item>
|
||||||
|
<item name="lime_A200">#EEFF41</item>
|
||||||
|
<item name="lime_A400">#C6FF00</item>
|
||||||
|
<item name="lime_A700">#AEEA00</item>
|
||||||
|
<!-- Lime -->
|
||||||
|
|
||||||
|
<!-- Yellow -->
|
||||||
|
<item name="yellow_50">#FFFDE7</item>
|
||||||
|
<item name="yellow_100">#FFF9C4</item>
|
||||||
|
<item name="yellow_200">#FFF59D</item>
|
||||||
|
<item name="yellow_300">#FFF176</item>
|
||||||
|
<item name="yellow_400">#FFEE58</item>
|
||||||
|
<item name="yellow_500">#FFEB3B</item>
|
||||||
|
<item name="yellow_600">#FDD835</item>
|
||||||
|
<item name="yellow_700">#FBC02D</item>
|
||||||
|
<item name="yellow_800">#F9A825</item>
|
||||||
|
<item name="yellow_900">#F57F17</item>
|
||||||
|
<item name="yellow_A100">#FFFF8D</item>
|
||||||
|
<item name="yellow_A200">#FFFF00</item>
|
||||||
|
<item name="yellow_A400">#FFEA00</item>
|
||||||
|
<item name="yellow_A700">#FFD600</item>
|
||||||
|
<!-- Yellow -->
|
||||||
|
|
||||||
|
<!-- Amber -->
|
||||||
|
<item name="amber_50">#FFF8E1</item>
|
||||||
|
<item name="amber_100">#FFECB3</item>
|
||||||
|
<item name="amber_200">#FFE082</item>
|
||||||
|
<item name="amber_300">#FFD54F</item>
|
||||||
|
<item name="amber_400">#FFCA28</item>
|
||||||
|
<item name="amber_500">#FFC107</item>
|
||||||
|
<item name="amber_600">#FFB300</item>
|
||||||
|
<item name="amber_700">#FFA000</item>
|
||||||
|
<item name="amber_800">#FF8F00</item>
|
||||||
|
<item name="amber_900">#FF6F00</item>
|
||||||
|
<item name="amber_A100">#FFE57F</item>
|
||||||
|
<item name="amber_A200">#FFD740</item>
|
||||||
|
<item name="amber_A400">#FFC400</item>
|
||||||
|
<item name="amber_A700">#FFAB00</item>
|
||||||
|
<!-- Amber -->
|
||||||
|
|
||||||
|
<!-- Orange -->
|
||||||
|
<item name="orange_50">#FFF3E0</item>
|
||||||
|
<item name="orange_100">#FFE0B2</item>
|
||||||
|
<item name="orange_200">#FFCC80</item>
|
||||||
|
<item name="orange_300">#FFB74D</item>
|
||||||
|
<item name="orange_400">#FFA726</item>
|
||||||
|
<item name="orange_500">#FF9800</item>
|
||||||
|
<item name="orange_600">#FB8C00</item>
|
||||||
|
<item name="orange_700">#F57C00</item>
|
||||||
|
<item name="orange_800">#EF6C00</item>
|
||||||
|
<item name="orange_900">#E65100</item>
|
||||||
|
<item name="orange_A100">#FFD180</item>
|
||||||
|
<item name="orange_A200">#FFAB40</item>
|
||||||
|
<item name="orange_A400">#FF9100</item>
|
||||||
|
<item name="orange_A700">#FF6D00</item>
|
||||||
|
<!-- Orange -->
|
||||||
|
|
||||||
|
<!-- Deep Orange -->
|
||||||
|
<item name="deep_orange_50">#FBE9E7</item>
|
||||||
|
<item name="deep_orange_100">#FFCCBC</item>
|
||||||
|
<item name="deep_orange_200">#FFAB91</item>
|
||||||
|
<item name="deep_orange_300">#FF8A65</item>
|
||||||
|
<item name="deep_orange_400">#FF7043</item>
|
||||||
|
<item name="deep_orange_500">#FF5722</item>
|
||||||
|
<item name="deep_orange_600">#F4511E</item>
|
||||||
|
<item name="deep_orange_700">#E64A19</item>
|
||||||
|
<item name="deep_orange_800">#D84315</item>
|
||||||
|
<item name="deep_orange_900">#BF360C</item>
|
||||||
|
<item name="deep_orange_A100">#FF9E80</item>
|
||||||
|
<item name="deep_orange_A200">#FF6E40</item>
|
||||||
|
<item name="deep_orange_A400">#FF3D00</item>
|
||||||
|
<item name="deep_orange_A700">#DD2C00</item>
|
||||||
|
<!-- Deep Orange -->
|
||||||
|
|
||||||
|
<!-- Brown -->
|
||||||
|
<item name="brown_50">#EFEBE9</item>
|
||||||
|
<item name="brown_100">#D7CCC8</item>
|
||||||
|
<item name="brown_200">#BCAAA4</item>
|
||||||
|
<item name="brown_300">#A1887F</item>
|
||||||
|
<item name="brown_400">#8D6E63</item>
|
||||||
|
<item name="brown_500">#795548</item>
|
||||||
|
<item name="brown_600">#6D4C41</item>
|
||||||
|
<item name="brown_700">#5D4037</item>
|
||||||
|
<item name="brown_800">#4E342E</item>
|
||||||
|
<item name="brown_900">#3E2723</item>
|
||||||
|
<!-- Brown -->
|
||||||
|
|
||||||
|
<!-- Blue Grey -->
|
||||||
|
<item name="blue_grey_50">#ECEFF1</item>
|
||||||
|
<item name="blue_grey_100">#CFD8DC</item>
|
||||||
|
<item name="blue_grey_200">#B0BEC5</item>
|
||||||
|
<item name="blue_grey_300">#90A4AE</item>
|
||||||
|
<item name="blue_grey_400">#78909C</item>
|
||||||
|
<item name="blue_grey_500">#607D8B</item>
|
||||||
|
<item name="blue_grey_600">#546E7A</item>
|
||||||
|
<item name="blue_grey_700">#455A64</item>
|
||||||
|
<item name="blue_grey_800">#37474F</item>
|
||||||
|
<item name="blue_grey_900">#263238</item>
|
||||||
|
<!-- Blue Grey -->
|
||||||
</array>
|
</array>
|
||||||
</resources>
|
</resources>
|
Loading…
x
Reference in New Issue
Block a user