SwitchPreference.java revision 671d9d6db5c64e6c8392e56fb84a181ca0550469
16904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler/*
26904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler* Copyright (C) 2015 The Android Open Source Project
36904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler*
46904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler* Licensed under the Apache License, Version 2.0 (the "License");
56904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler* you may not use this file except in compliance with the License.
66904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler* You may obtain a copy of the License at
76904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler*
86904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler*      http://www.apache.org/licenses/LICENSE-2.0
96904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler*
106904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler* Unless required by applicable law or agreed to in writing, software
116904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler* distributed under the License is distributed on an "AS IS" BASIS,
126904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler* See the License for the specific language governing permissions and
146904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler* limitations under the License
156904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler*/
166904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
176904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerpackage android.support.v14.preference;
186904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
196904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerimport android.content.Context;
206904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerimport android.content.res.TypedArray;
2184765eaea7da18d0576db557959129e9d0db8e8cTony Mantlerimport android.support.v4.content.res.TypedArrayUtils;
226904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerimport android.support.v7.preference.PreferenceViewHolder;
236904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerimport android.support.v7.preference.TwoStatePreference;
246904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerimport android.util.AttributeSet;
256904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerimport android.view.View;
266904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerimport android.widget.Checkable;
276904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerimport android.widget.CompoundButton;
286904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerimport android.widget.Switch;
296904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
306904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler/**
316904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * A {@link android.support.v7.preference.Preference} that provides a two-state toggleable option.
326904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * <p>
336904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * This preference will store a boolean into the SharedPreferences.
346904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler *
356904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @attr ref android.R.styleable#SwitchPreference_summaryOff
366904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @attr ref android.R.styleable#SwitchPreference_summaryOn
376904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @attr ref android.R.styleable#SwitchPreference_switchTextOff
386904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @attr ref android.R.styleable#SwitchPreference_switchTextOn
396904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler * @attr ref android.R.styleable#SwitchPreference_disableDependentsState
406904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler */
416904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantlerpublic class SwitchPreference extends TwoStatePreference {
426904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    private final Listener mListener = new Listener();
436904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
446904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    // Switch text for on and off states
456904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    private CharSequence mSwitchOn;
466904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    private CharSequence mSwitchOff;
476904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
486904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    private class Listener implements CompoundButton.OnCheckedChangeListener {
496904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        @Override
506904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
516904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler            if (!callChangeListener(isChecked)) {
526904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler                // Listener didn't like it, change it back.
536904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler                // CompoundButton will make sure we don't recurse.
546904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler                buttonView.setChecked(!isChecked);
556904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler                return;
566904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler            }
576904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
586904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler            SwitchPreference.this.setChecked(isChecked);
596904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        }
606904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    }
616904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
626904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    /**
636904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * Construct a new SwitchPreference with the given style options.
646904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     *
656904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * @param context The Context that will style this preference
666904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * @param attrs Style attributes that differ from the default
676904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * @param defStyleAttr An attribute in the current theme that contains a
686904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     *        reference to a style resource that supplies default values for
696904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     *        the view. Can be 0 to not look for defaults.
706904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * @param defStyleRes A resource identifier of a style resource that
716904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     *        supplies default values for the view, used only if
726904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     *        defStyleAttr is 0 or can not be found in the theme. Can be 0
736904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     *        to not look for defaults.
746904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     */
756904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    public SwitchPreference(Context context, AttributeSet attrs, int defStyleAttr,
766904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler            int defStyleRes) {
776904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        super(context, attrs, defStyleAttr, defStyleRes);
786904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
796904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        TypedArray a = context.obtainStyledAttributes(attrs,
806904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler                R.styleable.SwitchPreference, defStyleAttr, defStyleRes);
8184765eaea7da18d0576db557959129e9d0db8e8cTony Mantler
8284765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        setSummaryOn(TypedArrayUtils.getString(a, R.styleable.SwitchPreference_summaryOn,
8384765eaea7da18d0576db557959129e9d0db8e8cTony Mantler                R.styleable.SwitchPreference_android_summaryOn));
8484765eaea7da18d0576db557959129e9d0db8e8cTony Mantler
8584765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        setSummaryOff(TypedArrayUtils.getString(a, R.styleable.SwitchPreference_summaryOff,
8684765eaea7da18d0576db557959129e9d0db8e8cTony Mantler                R.styleable.SwitchPreference_android_summaryOff));
8784765eaea7da18d0576db557959129e9d0db8e8cTony Mantler
8884765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        setSwitchTextOn(TypedArrayUtils.getString(a,
8984765eaea7da18d0576db557959129e9d0db8e8cTony Mantler                R.styleable.SwitchPreference_switchTextOn,
9084765eaea7da18d0576db557959129e9d0db8e8cTony Mantler                R.styleable.SwitchPreference_android_switchTextOn));
9184765eaea7da18d0576db557959129e9d0db8e8cTony Mantler
9284765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        setSwitchTextOff(TypedArrayUtils.getString(a,
9384765eaea7da18d0576db557959129e9d0db8e8cTony Mantler                R.styleable.SwitchPreference_switchTextOff,
9484765eaea7da18d0576db557959129e9d0db8e8cTony Mantler                R.styleable.SwitchPreference_android_switchTextOff));
9584765eaea7da18d0576db557959129e9d0db8e8cTony Mantler
9684765eaea7da18d0576db557959129e9d0db8e8cTony Mantler        setDisableDependentsState(TypedArrayUtils.getBoolean(a,
9784765eaea7da18d0576db557959129e9d0db8e8cTony Mantler                R.styleable.SwitchPreference_disableDependentsState,
9884765eaea7da18d0576db557959129e9d0db8e8cTony Mantler                R.styleable.SwitchPreference_android_disableDependentsState, false));
9984765eaea7da18d0576db557959129e9d0db8e8cTony Mantler
1006904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        a.recycle();
1016904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    }
1026904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
1036904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    /**
1046904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * Construct a new SwitchPreference with the given style options.
1056904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     *
1066904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * @param context The Context that will style this preference
1076904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * @param attrs Style attributes that differ from the default
1086904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * @param defStyleAttr An attribute in the current theme that contains a
1096904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     *        reference to a style resource that supplies default values for
1106904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     *        the view. Can be 0 to not look for defaults.
1116904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     */
1126904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    public SwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) {
1136904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        this(context, attrs, defStyleAttr, 0);
1146904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    }
1156904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
1166904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    /**
1176904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * Construct a new SwitchPreference with the given style options.
1186904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     *
1196904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * @param context The Context that will style this preference
1206904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * @param attrs Style attributes that differ from the default
1216904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     */
1226904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    public SwitchPreference(Context context, AttributeSet attrs) {
1236904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        this(context, attrs, R.attr.switchPreferenceStyle);
1246904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    }
1256904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
1266904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    /**
1276904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * Construct a new SwitchPreference with default style options.
1286904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     *
1296904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * @param context The Context that will style this preference
1306904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     */
1316904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    public SwitchPreference(Context context) {
1326904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        this(context, null);
1336904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    }
1346904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
1356904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    @Override
136671d9d6db5c64e6c8392e56fb84a181ca0550469Tony Mantler    public void onBindViewHolder(PreferenceViewHolder holder) {
1376904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        super.onBindViewHolder(holder);
1386904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
1396904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        View checkableView = holder.findViewById(R.id.switchWidget);
1406904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        if (checkableView != null && checkableView instanceof Checkable) {
1416904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler            if (checkableView instanceof Switch) {
1426904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler                final Switch switchView = (Switch) checkableView;
1436904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler                switchView.setOnCheckedChangeListener(null);
1446904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler            }
1456904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
1466904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler            ((Checkable) checkableView).setChecked(mChecked);
1476904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
1486904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler            if (checkableView instanceof Switch) {
1496904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler                final Switch switchView = (Switch) checkableView;
1506904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler                switchView.setTextOn(mSwitchOn);
1516904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler                switchView.setTextOff(mSwitchOff);
1526904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler                switchView.setOnCheckedChangeListener(mListener);
1536904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler            }
1546904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        }
1556904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
1566904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        syncSummaryView(holder);
1576904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    }
1586904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
1596904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    /**
1606904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * Set the text displayed on the switch widget in the on state.
1616904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * This should be a very short string; one word if possible.
1626904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     *
1636904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * @param onText Text to display in the on state
1646904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     */
1656904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    public void setSwitchTextOn(CharSequence onText) {
1666904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        mSwitchOn = onText;
1676904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        notifyChanged();
1686904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    }
1696904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
1706904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    /**
1716904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * Set the text displayed on the switch widget in the off state.
1726904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * This should be a very short string; one word if possible.
1736904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     *
1746904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * @param offText Text to display in the off state
1756904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     */
1766904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    public void setSwitchTextOff(CharSequence offText) {
1776904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        mSwitchOff = offText;
1786904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        notifyChanged();
1796904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    }
1806904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
1816904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    /**
1826904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * Set the text displayed on the switch widget in the on state.
1836904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * This should be a very short string; one word if possible.
1846904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     *
1856904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * @param resId The text as a string resource ID
1866904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     */
1876904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    public void setSwitchTextOn(int resId) {
1886904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        setSwitchTextOn(getContext().getString(resId));
1896904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    }
1906904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
1916904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    /**
1926904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * Set the text displayed on the switch widget in the off state.
1936904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * This should be a very short string; one word if possible.
1946904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     *
1956904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * @param resId The text as a string resource ID
1966904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     */
1976904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    public void setSwitchTextOff(int resId) {
1986904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        setSwitchTextOff(getContext().getString(resId));
1996904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    }
2006904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
2016904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    /**
2026904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * @return The text that will be displayed on the switch widget in the on state
2036904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     */
2046904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    public CharSequence getSwitchTextOn() {
2056904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        return mSwitchOn;
2066904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    }
2076904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler
2086904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    /**
2096904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     * @return The text that will be displayed on the switch widget in the off state
2106904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler     */
2116904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    public CharSequence getSwitchTextOff() {
2126904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler        return mSwitchOff;
2136904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler    }
2146904f67c96a28a0e5966b4fb6d37a0ad5f136858Tony Mantler}
215