Add stroke around color indicators

pull/935/head
Alex Baker 6 years ago
parent 9ea0ef7820
commit 78deb5c0d6

@ -6,6 +6,7 @@ import static org.tasks.themes.ThemeColor.newThemeColor;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
@ -167,10 +168,8 @@ public abstract class BaseListSettingsActivity extends ThemedInjectingAppCompatA
color.setVisibility(View.GONE);
} else {
themeColor = newThemeColor(this, selectedColor);
Drawable colorIcon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_lens_24px);
Drawable wrappedColorIcon = DrawableCompat.wrap(colorIcon.mutate());
DrawableCompat.setTint(wrappedColorIcon, themeColor.getPrimaryColor());
color.setImageDrawable(wrappedColorIcon);
Drawable drawable = color.getDrawable();
DrawableCompat.setTint(((LayerDrawable) drawable).getDrawable(0), themeColor.getPrimaryColor());
color.setVisibility(View.VISIBLE);
}
themeColor.apply(toolbar);

@ -4,6 +4,7 @@ import android.app.Activity
import android.content.DialogInterface
import android.content.Intent
import android.graphics.drawable.Drawable
import android.graphics.drawable.LayerDrawable
import android.os.Bundle
import androidx.annotation.StringRes
import androidx.core.content.ContextCompat
@ -72,6 +73,13 @@ abstract class InjectingPreferenceFragment : PreferenceFragmentCompat() {
.show()
}
protected fun tintIcon(resId: Int, tint: Int) {
val pref = findPreference(resId)
val icon = DrawableCompat.wrap(pref.icon.mutate())
DrawableCompat.setTint(if (icon is LayerDrawable) icon.getDrawable(0) else icon, tint)
pref.icon = icon
}
protected fun requires(@StringRes prefGroup: Int, check: Boolean, vararg resIds: Int) {
if (!check) {
remove(findPreference(prefGroup) as PreferenceGroup, resIds)

@ -365,11 +365,8 @@ class LookAndFeel : InjectingPreferenceFragment(), Preference.OnPreferenceChange
palette: ColorPickerActivity.ColorPalette,
requestCode: Int
) {
val themePref: Preference = findPreference(prefId)
val original = ContextCompat.getDrawable(context!!, R.drawable.ic_baseline_lens_24px)
themePref.icon = DrawableCompat.wrap(original!!.mutate())
DrawableCompat.setTint(themePref.icon, color)
themePref.setOnPreferenceClickListener {
tintIcon(prefId, color)
findPreference(prefId).setOnPreferenceClickListener {
val intent = Intent(context, ColorPickerActivity::class.java)
intent.putExtra(ColorPickerActivity.EXTRA_PALETTE, palette)
startActivityForResult(intent, requestCode)

@ -161,7 +161,8 @@ object CustomIcons {
1124 to R.drawable.ic_outline_edit_24px,
1125 to R.drawable.ic_outline_info_24px,
1126 to R.drawable.ic_outline_palette_24px,
1127 to R.drawable.ic_outline_sd_storage_24px
1127 to R.drawable.ic_outline_sd_storage_24px,
1128 to R.drawable.ic_baseline_lens_24px
)
@kotlin.jvm.JvmStatic

@ -70,7 +70,7 @@ public class ShortcutConfigActivity extends InjectingAppCompatActivity {
if (icicle == null) {
selectedFilter = defaultFilterProvider.getDefaultFilter();
selectedTheme = -1;
selectedTheme = 7;
} else {
selectedFilter = icicle.getParcelable(EXTRA_FILTER);
selectedTheme = icicle.getInt(EXTRA_THEME);
@ -158,17 +158,7 @@ public class ShortcutConfigActivity extends InjectingAppCompatActivity {
}
private int getThemeIndex() {
if (selectedTheme >= 0) {
return selectedTheme;
}
int index =
selectedFilter == null || selectedFilter.tint == 0
? themeColor.getIndex()
: selectedFilter.tint;
if (index >= ThemeColor.ICONS.length - 1) {
return 7; // use blue theme until white icon is available
}
return index;
return selectedTheme >= 0 && selectedTheme < ThemeColor.ICONS.length - 1 ? selectedTheme : 7;
}
private String getShortcutName() {

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<size
android:height="24dp"
android:width="24dp" />
<solid android:color="#FF000000" />
</shape>
</item>
<item>
<shape android:shape="oval">
<size
android:height="25dp"
android:width="25dp" />
<solid android:color="@android:color/transparent" />
<stroke
android:color="@color/text_tertiary"
android:width="1dp" />
</shape>
</item>
</layer-list>

@ -13,7 +13,7 @@
android:layout_alignParentRight="true"
android:alpha="@dimen/alpha_secondary"
android:contentDescription="@string/color"
android:src="@drawable/ic_baseline_lens_24px"/>
android:src="@drawable/color_picker"/>
<TextView
android:layout_width="match_parent"

@ -9,14 +9,17 @@
<Preference
android:key="@string/p_theme_color"
android:icon="@drawable/color_picker"
android:title="@string/color" />
<Preference
android:key="@string/p_theme_accent"
android:icon="@drawable/color_picker"
android:title="@string/accent" />
<Preference
android:key="@string/p_theme_launcher"
android:icon="@drawable/color_picker"
android:title="@string/launcher_icon" />
<PreferenceCategory

Loading…
Cancel
Save