Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 328cc2de authored by Edgar Wang's avatar Edgar Wang
Browse files

[Expressive design] Update dropdown item color

Bug: 416818825
Bug: 417587081
Test: visual
Flag: EXEMPT library update
Change-Id: If41a5587aa6adb6c44042679a83c6c8291497b8d
parent 750ed031
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -24,5 +24,5 @@ android_library {
    ],

    sdk_version: "system_current",
    min_sdk_version: "21",
    min_sdk_version: "23",
}
+1 −1
Original line number Diff line number Diff line
@@ -18,6 +18,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.android.settingslib.widget.spinner">

    <uses-sdk android:minSdkVersion="21" />
    <uses-sdk android:minSdkVersion="23" />

</manifest>
+13 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settingslib.widget;

import android.content.Context;
import android.content.res.ColorStateList;
import android.os.Build;
import android.view.LayoutInflater;
import android.view.View;
@@ -45,6 +46,12 @@ public class SettingsSpinnerAdapter<T> extends ArrayAdapter<T> {
            R.layout.settings_expressive_spinner_dropdown_view;
    private final LayoutInflater mDefaultInflater;
    private int mSelectedPosition = -1;
    private static final int DEFAULT_DROPDOWN_COLOR =
            com.android.settingslib.widget.theme.R.color.settingslib_materialColorOnSurface;
    private static final int DEFAULT_DROPDOWN_SELECTED_COLOR =
            com.android.settingslib.widget.theme.R.color.settingslib_materialColorOnPrimaryContainer;
    private ColorStateList mDropdownColor;
    private ColorStateList mDropdownSelectedColor;

    /**
     * Constructs a new SettingsSpinnerAdapter with the given context.
@@ -58,6 +65,9 @@ public class SettingsSpinnerAdapter<T> extends ArrayAdapter<T> {

        setDropDownViewResource(getDropdownResource(context));
        mDefaultInflater = LayoutInflater.from(context);

        mDropdownColor = context.getColorStateList(DEFAULT_DROPDOWN_COLOR);
        mDropdownSelectedColor = context.getColorStateList(DEFAULT_DROPDOWN_SELECTED_COLOR);
    }

    @Override
@@ -74,10 +84,13 @@ public class SettingsSpinnerAdapter<T> extends ArrayAdapter<T> {
        TextView textView = view.findViewById(android.R.id.text1);
        ImageView iconView = view.findViewById(android.R.id.icon);
        if (iconView != null) {
            iconView.setImageTintList(mDropdownSelectedColor);
            iconView.setVisibility((position == mSelectedPosition) ? View.VISIBLE : View.GONE);
        }
        T item = getItem(position);
        textView.setText(item == null ? "" : item.toString());
        textView.setTextColor(
                (position == mSelectedPosition) ? mDropdownSelectedColor : mDropdownColor);
        return view;
    }