diff --git a/app/src/main/java/com/denizd/textbasic/fragment/SettingsNewFragment.kt b/app/src/main/java/com/denizd/textbasic/fragment/SettingsNewFragment.kt
index f61b548..4cdf346 100644
--- a/app/src/main/java/com/denizd/textbasic/fragment/SettingsNewFragment.kt
+++ b/app/src/main/java/com/denizd/textbasic/fragment/SettingsNewFragment.kt
@@ -20,6 +20,7 @@ import com.denizd.textbasic.databinding.FragmentSettingsNewBinding
import com.denizd.textbasic.db.QuoteStorage
import com.denizd.textbasic.sheet.TextSheet
import com.denizd.textbasic.util.SettingsPreference
+import com.denizd.textbasic.util.getConstrast
import com.denizd.textbasic.util.viewBinding
import com.denizd.textbasic.widget.CanvasText
import com.google.android.material.button.MaterialButton
@@ -368,17 +369,27 @@ class SettingsNewFragment : BaseFragment(R.layout.fragment_settings_new) {
private fun setTextColour(colour: String) {
binding.textTextColourCode.text = "#$colour"
+ val newColour = Color.parseColor("#$colour")
+ val contrast = newColour.getConstrast()
+
binding.buttonTextColourDisplay.backgroundTintList = ColorStateList.valueOf(
- Color.parseColor("#$colour")
+ newColour
)
+
+ binding.buttonTextColourDisplay.setTextColor(contrast)
+ binding.buttonTextColourDisplay.iconTint = ColorStateList.valueOf(contrast)
}
private fun setHighlightColour(colour: String) {
binding.textHighlightColourCode.text = "#$colour"
- binding.buttonHighlightColourDisplay.backgroundTintList = ColorStateList.valueOf(
- Color.parseColor("#$colour")
- )
+ val newColour = 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!
@@ -390,10 +401,6 @@ class SettingsNewFragment : BaseFragment(R.layout.fragment_settings_new) {
// colour: String,
) {
ColorPickerDialog.Builder(context)
-// .setInitialColor(Color.parseColor("#$colour"))
-// .setPreferenceName(tag)
-// .setLifecycleOwner(this)
-// .build()
.setTitle(getString(title))
.setPositiveButton(getString(R.string.settings_colour_dialog_positive), object : ColorEnvelopeListener {
override fun onColorSelected(envelope: ColorEnvelope, fromUser: Boolean) {
diff --git a/app/src/main/java/com/denizd/textbasic/util/Extensions.kt b/app/src/main/java/com/denizd/textbasic/util/Extensions.kt
index fab2a07..fc0d76d 100644
--- a/app/src/main/java/com/denizd/textbasic/util/Extensions.kt
+++ b/app/src/main/java/com/denizd/textbasic/util/Extensions.kt
@@ -1,6 +1,7 @@
package com.denizd.textbasic.util
import android.content.res.Resources
+import android.graphics.Color
import android.util.TypedValue
import android.view.View
import androidx.annotation.AttrRes
@@ -53,4 +54,13 @@ fun Resources.Theme.showSnackBar(
// Set anchor view, if one has been passed
anchor?.let { a -> s.setAnchorView(a) }
s.show()
-}
\ No newline at end of file
+}
+
+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"
+})
\ No newline at end of file
diff --git a/app/src/main/res/drawable/color_lens.xml b/app/src/main/res/drawable/color_lens.xml
new file mode 100644
index 0000000..c3d2c7b
--- /dev/null
+++ b/app/src/main/res/drawable/color_lens.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/layout/fragment_settings_new.xml b/app/src/main/res/layout/fragment_settings_new.xml
index a0ed547..4ffe159 100644
--- a/app/src/main/res/layout/fragment_settings_new.xml
+++ b/app/src/main/res/layout/fragment_settings_new.xml
@@ -310,8 +310,10 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
+ app:icon="@drawable/color_lens"
app:strokeColor="@color/list_button_stroke"
app:strokeWidth="1dp"
+ android:text="@string/settings_text_colour_button_text"
android:layout_marginStart="8dp"/>
@@ -532,8 +534,10 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
+ app:icon="@drawable/color_lens"
app:strokeColor="@color/list_button_stroke"
app:strokeWidth="1dp"
+ android:text="@string/settings_highlight_colour_button_text"
android:layout_marginStart="8dp"/>
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index d2cc00c..518253a 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -37,6 +37,7 @@
Fett & Kursiv
Textgröße
Textfarbe
+ Wähle eine Farbe
Wähle eine Textfarbe
Textopazität
@@ -48,6 +49,7 @@
Schatten
Stärke
Highlight-Farbe
+ Wähle eine Farbe
Wähle eine Highlight-Farbe
Highlight-Opazität
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d449333..35a761f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -36,6 +36,7 @@
Bold & Italic
Text size
Text colour
+ Pick a colour
Pick a text colour
Text opacity
@@ -47,6 +48,7 @@
Shadow
Intensity
Highlight colour
+ Pick a colour
Pick a highlight colour
Opacity