• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*******************************************************************************
2  *      Copyright (C) 2014 Google Inc.
3  *      Licensed to The Android Open Source Project.
4  *
5  *      Licensed under the Apache License, Version 2.0 (the "License");
6  *      you may not use this file except in compliance with the License.
7  *      You may obtain a copy of the License at
8  *
9  *           http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *      Unless required by applicable law or agreed to in writing, software
12  *      distributed under the License is distributed on an "AS IS" BASIS,
13  *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *      See the License for the specific language governing permissions and
15  *      limitations under the License.
16  *******************************************************************************/
17 
18 package com.android.mail.ui.settings;
19 
20 import android.content.Context;
21 import android.content.res.TypedArray;
22 import android.preference.ListPreference;
23 import android.util.AttributeSet;
24 
25 import com.android.mail.R;
26 
27 /**
28  * A fancy ListPreference that displays its summary from among the entries in the "entrySummaries"
29  * array attribute.
30  *
31  */
32 public class FancySummaryListPreference extends ListPreference {
33 
34     private CharSequence[] mEntrySummaries;
35 
FancySummaryListPreference(Context context)36     public FancySummaryListPreference(Context context) {
37         this(context, null);
38     }
39 
FancySummaryListPreference(Context context, AttributeSet attrs)40     public FancySummaryListPreference(Context context, AttributeSet attrs) {
41         super(context, attrs);
42 
43         TypedArray a = context.obtainStyledAttributes(attrs,
44                 R.styleable.FancySummaryListPreference, 0, 0);
45         mEntrySummaries = a.getTextArray(R.styleable.FancySummaryListPreference_entrySummaries);
46     }
47 
setEntrySummaries(CharSequence[] summaries)48     public void setEntrySummaries(CharSequence[] summaries) {
49         mEntrySummaries = summaries;
50         setSummary(getSummaryForValue(getValue()));
51     }
52 
setEntrySummaries(int summariesResId)53     public void setEntrySummaries(int summariesResId) {
54         setEntrySummaries(getContext().getResources().getTextArray(summariesResId));
55     }
56 
getEntrySummaries()57     public CharSequence[] getEntrySummaries() {
58         return mEntrySummaries;
59     }
60 
61     @Override
setValue(String value)62     public void setValue(String value) {
63         super.setValue(value);
64         setSummary(getSummaryForValue(value));
65     }
66 
getSummaryForValue(String value)67     private CharSequence getSummaryForValue(String value) {
68         int i = findIndexOfValue(value);
69         return (i >= 0 && i < mEntrySummaries.length) ? mEntrySummaries[i] : null;
70     }
71 
72 }
73