From a27047b6f88038896db8e7ce54186e9546e3c5d9 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Sun, 20 Mar 2022 10:29:34 -0500 Subject: [PATCH] Update widget preferences screen * Add widget color indicator * Add submenu arrow indicator --- .../tasks/injection/InjectingPreferenceFragment.kt | 6 ++++-- .../java/org/tasks/preferences/fragments/Widgets.kt | 12 ++++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/tasks/injection/InjectingPreferenceFragment.kt b/app/src/main/java/org/tasks/injection/InjectingPreferenceFragment.kt index 15ddf2178..84e01d4e1 100644 --- a/app/src/main/java/org/tasks/injection/InjectingPreferenceFragment.kt +++ b/app/src/main/java/org/tasks/injection/InjectingPreferenceFragment.kt @@ -61,8 +61,10 @@ abstract class InjectingPreferenceFragment : PreferenceFragmentCompat() { kotlin.system.exitProcess(0) } - protected fun tintColorPreference(resId: Int, tint: Int) { - val pref = findPreference(resId) + protected fun tintColorPreference(resId: Int, tint: Int) = + tintColorPreference(findPreference(resId), tint) + + protected fun tintColorPreference(pref: Preference, tint: Int) { pref.icon = DrawableUtil.getWrapped(requireContext(), R.drawable.color_picker) DrawableUtil.setTint(pref.icon, tint) } diff --git a/app/src/main/java/org/tasks/preferences/fragments/Widgets.kt b/app/src/main/java/org/tasks/preferences/fragments/Widgets.kt index 30f505f1d..6931df03d 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/Widgets.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/Widgets.kt @@ -2,13 +2,14 @@ package org.tasks.preferences.fragments import android.content.Intent import android.os.Bundle +import androidx.appcompat.content.res.AppCompatResources import androidx.lifecycle.lifecycleScope -import androidx.preference.Preference import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch import org.tasks.R import org.tasks.injection.InjectingPreferenceFragment import org.tasks.preferences.DefaultFilterProvider +import org.tasks.preferences.IconPreference import org.tasks.preferences.Preferences import org.tasks.widget.AppWidgetManager import org.tasks.widget.WidgetConfigActivity @@ -33,7 +34,14 @@ class Widgets : InjectingPreferenceFragment() { preferenceScreen.removeAll() appWidgetManager.widgetIds.forEach { val widgetPrefs = WidgetPreferences(context, preferences, it) - val pref = Preference(context) + val pref = IconPreference(context) + tintColorPreference(pref, widgetPrefs.color) + pref.drawable = AppCompatResources.getDrawable( + requireContext(), + R.drawable.ic_keyboard_arrow_right_24px + )?.mutate() + pref.tint = context?.getColor(R.color.icon_tint_with_alpha) + pref.iconVisible = true val filter = defaultFilterProvider.getFilterFromPreference(widgetPrefs.filterId) pref.title = filter.listingTitle pref.summary = getString(R.string.widget_id, it)