Archived
Button for opening colour picker now tints properly, including its text and icon
This commit is contained in:
@@ -20,6 +20,7 @@ import com.denizd.textbasic.databinding.FragmentSettingsNewBinding
|
|||||||
import com.denizd.textbasic.db.QuoteStorage
|
import com.denizd.textbasic.db.QuoteStorage
|
||||||
import com.denizd.textbasic.sheet.TextSheet
|
import com.denizd.textbasic.sheet.TextSheet
|
||||||
import com.denizd.textbasic.util.SettingsPreference
|
import com.denizd.textbasic.util.SettingsPreference
|
||||||
|
import com.denizd.textbasic.util.getConstrast
|
||||||
import com.denizd.textbasic.util.viewBinding
|
import com.denizd.textbasic.util.viewBinding
|
||||||
import com.denizd.textbasic.widget.CanvasText
|
import com.denizd.textbasic.widget.CanvasText
|
||||||
import com.google.android.material.button.MaterialButton
|
import com.google.android.material.button.MaterialButton
|
||||||
@@ -368,17 +369,27 @@ class SettingsNewFragment : BaseFragment(R.layout.fragment_settings_new) {
|
|||||||
private fun setTextColour(colour: String) {
|
private fun setTextColour(colour: String) {
|
||||||
binding.textTextColourCode.text = "#$colour"
|
binding.textTextColourCode.text = "#$colour"
|
||||||
|
|
||||||
|
val newColour = Color.parseColor("#$colour")
|
||||||
|
val contrast = newColour.getConstrast()
|
||||||
|
|
||||||
binding.buttonTextColourDisplay.backgroundTintList = ColorStateList.valueOf(
|
binding.buttonTextColourDisplay.backgroundTintList = ColorStateList.valueOf(
|
||||||
Color.parseColor("#$colour")
|
newColour
|
||||||
)
|
)
|
||||||
|
|
||||||
|
binding.buttonTextColourDisplay.setTextColor(contrast)
|
||||||
|
binding.buttonTextColourDisplay.iconTint = ColorStateList.valueOf(contrast)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setHighlightColour(colour: String) {
|
private fun setHighlightColour(colour: String) {
|
||||||
binding.textHighlightColourCode.text = "#$colour"
|
binding.textHighlightColourCode.text = "#$colour"
|
||||||
|
|
||||||
binding.buttonHighlightColourDisplay.backgroundTintList = ColorStateList.valueOf(
|
val newColour = Color.parseColor("#$colour")
|
||||||
Color.parseColor("#$colour")
|
val contrast = newColour.getConstrast()
|
||||||
)
|
|
||||||
|
binding.buttonHighlightColourDisplay.backgroundTintList = ColorStateList.valueOf(newColour)
|
||||||
|
|
||||||
|
binding.buttonHighlightColourDisplay.setTextColor(contrast)
|
||||||
|
binding.buttonHighlightColourDisplay.iconTint = ColorStateList.valueOf(contrast)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO this should start with the current colour of the attribute that's to be changed!
|
// TODO this should start with the current colour of the attribute that's to be changed!
|
||||||
@@ -390,10 +401,6 @@ class SettingsNewFragment : BaseFragment(R.layout.fragment_settings_new) {
|
|||||||
// colour: String,
|
// colour: String,
|
||||||
) {
|
) {
|
||||||
ColorPickerDialog.Builder(context)
|
ColorPickerDialog.Builder(context)
|
||||||
// .setInitialColor(Color.parseColor("#$colour"))
|
|
||||||
// .setPreferenceName(tag)
|
|
||||||
// .setLifecycleOwner(this)
|
|
||||||
// .build()
|
|
||||||
.setTitle(getString(title))
|
.setTitle(getString(title))
|
||||||
.setPositiveButton(getString(R.string.settings_colour_dialog_positive), object : ColorEnvelopeListener {
|
.setPositiveButton(getString(R.string.settings_colour_dialog_positive), object : ColorEnvelopeListener {
|
||||||
override fun onColorSelected(envelope: ColorEnvelope, fromUser: Boolean) {
|
override fun onColorSelected(envelope: ColorEnvelope, fromUser: Boolean) {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.denizd.textbasic.util
|
package com.denizd.textbasic.util
|
||||||
|
|
||||||
import android.content.res.Resources
|
import android.content.res.Resources
|
||||||
|
import android.graphics.Color
|
||||||
import android.util.TypedValue
|
import android.util.TypedValue
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import androidx.annotation.AttrRes
|
import androidx.annotation.AttrRes
|
||||||
@@ -54,3 +55,12 @@ fun Resources.Theme.showSnackBar(
|
|||||||
anchor?.let { a -> s.setAnchorView(a) }
|
anchor?.let { a -> s.setAnchorView(a) }
|
||||||
s.show()
|
s.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Int.getConstrast(): Int = Color.parseColor(if ((
|
||||||
|
Color.red(this) * 0.299 +
|
||||||
|
Color.green(this) * 0.587 +
|
||||||
|
Color.blue(this) * 0.114) > 186) {
|
||||||
|
"#000000"
|
||||||
|
} else {
|
||||||
|
"#ffffff"
|
||||||
|
})
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<vector android:height="24dp" android:tint="#000000"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M12,3c-4.97,0 -9,4.03 -9,9s4.03,9 9,9c0.83,0 1.5,-0.67 1.5,-1.5 0,-0.39 -0.15,-0.74 -0.39,-1.01 -0.23,-0.26 -0.38,-0.61 -0.38,-0.99 0,-0.83 0.67,-1.5 1.5,-1.5L16,16c2.76,0 5,-2.24 5,-5 0,-4.42 -4.03,-8 -9,-8zM6.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S5.67,9 6.5,9 8,9.67 8,10.5 7.33,12 6.5,12zM9.5,8C8.67,8 8,7.33 8,6.5S8.67,5 9.5,5s1.5,0.67 1.5,1.5S10.33,8 9.5,8zM14.5,8c-0.83,0 -1.5,-0.67 -1.5,-1.5S13.67,5 14.5,5s1.5,0.67 1.5,1.5S15.33,8 14.5,8zM17.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S16.67,9 17.5,9s1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5z"/>
|
||||||
|
</vector>
|
||||||
@@ -310,8 +310,10 @@
|
|||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
|
app:icon="@drawable/color_lens"
|
||||||
app:strokeColor="@color/list_button_stroke"
|
app:strokeColor="@color/list_button_stroke"
|
||||||
app:strokeWidth="1dp"
|
app:strokeWidth="1dp"
|
||||||
|
android:text="@string/settings_text_colour_button_text"
|
||||||
android:layout_marginStart="8dp"/>
|
android:layout_marginStart="8dp"/>
|
||||||
|
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
@@ -532,8 +534,10 @@
|
|||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
|
app:icon="@drawable/color_lens"
|
||||||
app:strokeColor="@color/list_button_stroke"
|
app:strokeColor="@color/list_button_stroke"
|
||||||
app:strokeWidth="1dp"
|
app:strokeWidth="1dp"
|
||||||
|
android:text="@string/settings_highlight_colour_button_text"
|
||||||
android:layout_marginStart="8dp"/>
|
android:layout_marginStart="8dp"/>
|
||||||
|
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|||||||
@@ -37,6 +37,7 @@
|
|||||||
<string name="settings_text_style_button_bolditalic">Fett & Kursiv</string>
|
<string name="settings_text_style_button_bolditalic">Fett & Kursiv</string>
|
||||||
<string name="settings_text_size_header">Textgröße</string>
|
<string name="settings_text_size_header">Textgröße</string>
|
||||||
<string name="settings_text_colour_header">Textfarbe</string>
|
<string name="settings_text_colour_header">Textfarbe</string>
|
||||||
|
<string name="settings_text_colour_button_text">Wähle eine Farbe</string>
|
||||||
<string name="settings_text_colour_dialog_title">Wähle eine Textfarbe</string>
|
<string name="settings_text_colour_dialog_title">Wähle eine Textfarbe</string>
|
||||||
<string name="settings_text_transparency_header">Textopazität</string>
|
<string name="settings_text_transparency_header">Textopazität</string>
|
||||||
|
|
||||||
@@ -48,6 +49,7 @@
|
|||||||
<string name="settings_highlight_style_button_shadow">Schatten</string>
|
<string name="settings_highlight_style_button_shadow">Schatten</string>
|
||||||
<string name="settings_highlight_intensity_header">Stärke</string>
|
<string name="settings_highlight_intensity_header">Stärke</string>
|
||||||
<string name="settings_highlight_colour_header">Highlight-Farbe</string>
|
<string name="settings_highlight_colour_header">Highlight-Farbe</string>
|
||||||
|
<string name="settings_highlight_colour_button_text">Wähle eine Farbe</string>
|
||||||
<string name="settings_highlight_colour_dialog_title">Wähle eine Highlight-Farbe</string>
|
<string name="settings_highlight_colour_dialog_title">Wähle eine Highlight-Farbe</string>
|
||||||
<string name="settings_highlight_transparency_header">Highlight-Opazität</string>
|
<string name="settings_highlight_transparency_header">Highlight-Opazität</string>
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
<string name="settings_text_style_button_bolditalic">Bold & Italic</string>
|
<string name="settings_text_style_button_bolditalic">Bold & Italic</string>
|
||||||
<string name="settings_text_size_header">Text size</string>
|
<string name="settings_text_size_header">Text size</string>
|
||||||
<string name="settings_text_colour_header">Text colour</string>
|
<string name="settings_text_colour_header">Text colour</string>
|
||||||
|
<string name="settings_text_colour_button_text">Pick a colour</string>
|
||||||
<string name="settings_text_colour_dialog_title">Pick a text colour</string>
|
<string name="settings_text_colour_dialog_title">Pick a text colour</string>
|
||||||
<string name="settings_text_transparency_header">Text opacity</string>
|
<string name="settings_text_transparency_header">Text opacity</string>
|
||||||
|
|
||||||
@@ -47,6 +48,7 @@
|
|||||||
<string name="settings_highlight_style_button_shadow">Shadow</string>
|
<string name="settings_highlight_style_button_shadow">Shadow</string>
|
||||||
<string name="settings_highlight_intensity_header">Intensity</string>
|
<string name="settings_highlight_intensity_header">Intensity</string>
|
||||||
<string name="settings_highlight_colour_header">Highlight colour</string>
|
<string name="settings_highlight_colour_header">Highlight colour</string>
|
||||||
|
<string name="settings_highlight_colour_button_text">Pick a colour</string>
|
||||||
<string name="settings_highlight_colour_dialog_title">Pick a highlight colour</string>
|
<string name="settings_highlight_colour_dialog_title">Pick a highlight colour</string>
|
||||||
<string name="settings_highlight_transparency_header">Opacity</string>
|
<string name="settings_highlight_transparency_header">Opacity</string>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user