diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml new file mode 100644 index 0000000..850fecb --- /dev/null +++ b/.idea/deploymentTargetDropDown.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file 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 c490004..9597a95 100644 --- a/app/src/main/java/com/denizd/textbasic/fragment/SettingsNewFragment.kt +++ b/app/src/main/java/com/denizd/textbasic/fragment/SettingsNewFragment.kt @@ -2,8 +2,11 @@ package com.denizd.textbasic.fragment import android.annotation.SuppressLint import android.os.Bundle +import android.util.TypedValue import android.view.View +import android.widget.ImageButton import android.widget.TextView +import androidx.annotation.ColorInt import com.denizd.textbasic.BuildConfig import com.denizd.textbasic.R import com.denizd.textbasic.databinding.FragmentSettingsNewBinding @@ -233,6 +236,23 @@ class SettingsNewFragment : BaseFragment(R.layout.fragment_settings_new) { } } + // --- widget position (gravity) --- // + val gravityButtons = listOf( + binding.buttonTopLeft, binding.buttonTopMiddle, binding.buttonTopRight, + binding.buttonMiddleLeft, binding.buttonMiddleMiddle, binding.buttonMiddleRight, + binding.buttonBottomLeft, binding.buttonBottomMiddle, binding.buttonBottomRight + ) + + setGravityButtons(gravityButtons, storage.getWidgetGravity()) + + gravityButtons.forEachIndexed { index, button -> + button.setOnClickListener { + storage.setWidgetGravity(index) + setGravityButtons(gravityButtons, index) + updatePreview() + } + } + /* * Display the app's version as set in the build.gradle. Also display if the app is a * development version, and if so, display build timestamp. @@ -244,6 +264,20 @@ class SettingsNewFragment : BaseFragment(R.layout.fragment_settings_new) { updatePreview() } + private fun setGravityButtons(buttons: List, gravity: Int) { + val transparent = context.getColor(android.R.color.transparent) + + buttons.forEach { button -> + button.setBackgroundColor(transparent) + } + + val typedValue = TypedValue() + context.theme.resolveAttribute(R.attr.colorSecContainer, typedValue, true) + @ColorInt val colorTertiary = typedValue.data + + buttons[gravity].setBackgroundColor(colorTertiary) + } + /** * Retrieves which button to check for the highlight, and sets the visibility of the intensity * modifying layout accordingly. diff --git a/app/src/main/res/layout/fragment_settings_new.xml b/app/src/main/res/layout/fragment_settings_new.xml index 7378a86..65dab02 100644 --- a/app/src/main/res/layout/fragment_settings_new.xml +++ b/app/src/main/res/layout/fragment_settings_new.xml @@ -675,6 +675,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +