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

Commit 186d7911 authored by Gary Mai's avatar Gary Mai
Browse files

Add highlight to selected item in editor dropdowns

Using the same selector background as in the nav drawer.

Bug: 28945806
Change-Id: I6711cf16c99f0f257b32c10d6a43eb1e9e7b1401
parent b0550f02
Loading
Loading
Loading
Loading
+15 −3
Original line number Original line Diff line number Diff line
@@ -37,6 +37,7 @@ import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Button;
import android.widget.CheckedTextView;
import android.widget.EditText;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout;
@@ -44,10 +45,10 @@ import android.widget.Spinner;
import android.widget.TextView;
import android.widget.TextView;


import com.android.contacts.R;
import com.android.contacts.R;
import com.android.contacts.common.model.RawContactDelta;
import com.android.contacts.common.ContactsUtils;
import com.android.contacts.common.ContactsUtils;
import com.android.contacts.common.model.ValuesDelta;
import com.android.contacts.common.model.RawContactDelta;
import com.android.contacts.common.model.RawContactModifier;
import com.android.contacts.common.model.RawContactModifier;
import com.android.contacts.common.model.ValuesDelta;
import com.android.contacts.common.model.account.AccountType.EditType;
import com.android.contacts.common.model.account.AccountType.EditType;
import com.android.contacts.common.model.dataitem.DataKind;
import com.android.contacts.common.model.dataitem.DataKind;
import com.android.contacts.util.DialogManager;
import com.android.contacts.util.DialogManager;
@@ -86,6 +87,7 @@ public abstract class LabeledEditorView extends LinearLayout implements Editor,
    private DialogManager mDialogManager = null;
    private DialogManager mDialogManager = null;
    private EditorListener mListener;
    private EditorListener mListener;
    protected int mMinLineItemHeight;
    protected int mMinLineItemHeight;
    private int mSelectedLabelIndex;


    /**
    /**
     * A marker in the spinner adapter of the currently selected custom type.
     * A marker in the spinner adapter of the currently selected custom type.
@@ -292,6 +294,7 @@ public abstract class LabeledEditorView extends LinearLayout implements Editor,
     */
     */
    public void rebuildLabel() {
    public void rebuildLabel() {
        mEditTypeAdapter = new EditTypeAdapter(getContext());
        mEditTypeAdapter = new EditTypeAdapter(getContext());
        mEditTypeAdapter.setSelectedIndex(mSelectedLabelIndex);
        mLabel.setAdapter(mEditTypeAdapter);
        mLabel.setAdapter(mEditTypeAdapter);
        if (mEditTypeAdapter.hasCustomSelection()) {
        if (mEditTypeAdapter.hasCustomSelection()) {
            mLabel.setSelection(mEditTypeAdapter.getPosition(CUSTOM_SELECTION));
            mLabel.setSelection(mEditTypeAdapter.getPosition(CUSTOM_SELECTION));
@@ -518,6 +521,7 @@ public abstract class LabeledEditorView extends LinearLayout implements Editor,
            // User picked type, and we're sure it's ok to actually write the entry.
            // User picked type, and we're sure it's ok to actually write the entry.
            mType = selected;
            mType = selected;
            mEntry.put(mKind.typeColumn, mType.rawValue);
            mEntry.put(mKind.typeColumn, mType.rawValue);
            mSelectedLabelIndex = position;
            rebuildLabel();
            rebuildLabel();
            requestFocusForFirstEditField();
            requestFocusForFirstEditField();
            onLabelRebuilt();
            onLabelRebuilt();
@@ -563,6 +567,7 @@ public abstract class LabeledEditorView extends LinearLayout implements Editor,
        private boolean mHasCustomSelection;
        private boolean mHasCustomSelection;
        private int mTextColorHintUnfocused;
        private int mTextColorHintUnfocused;
        private int mTextColorDark;
        private int mTextColorDark;
        private int mSelectedIndex;


        public EditTypeAdapter(Context context) {
        public EditTypeAdapter(Context context) {
            super(context, 0);
            super(context, 0);
@@ -609,8 +614,11 @@ public abstract class LabeledEditorView extends LinearLayout implements Editor,


        @Override
        @Override
        public View getDropDownView(int position, View convertView, ViewGroup parent) {
        public View getDropDownView(int position, View convertView, ViewGroup parent) {
            return createViewFromResource(
            final CheckedTextView dropDownView = (CheckedTextView) createViewFromResource(
                    position, convertView, parent, android.R.layout.simple_spinner_dropdown_item);
                    position, convertView, parent, android.R.layout.simple_spinner_dropdown_item);
            dropDownView.setBackground(getContext().getDrawable(R.drawable.drawer_item_background));
            dropDownView.setChecked(position == mSelectedIndex);
            return dropDownView;
        }
        }


        private TextView createViewFromResource(int position, View convertView, ViewGroup parent,
        private TextView createViewFromResource(int position, View convertView, ViewGroup parent,
@@ -636,5 +644,9 @@ public abstract class LabeledEditorView extends LinearLayout implements Editor,
            textView.setText(text);
            textView.setText(text);
            return textView;
            return textView;
        }
        }

        public void setSelectedIndex(int selectedIndex) {
            mSelectedIndex = selectedIndex;
        }
    }
    }
}
}