16e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam/*
26e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam * Copyright (C) 2015 The Android Open Source Project
36e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam *
46e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam * Licensed under the Apache License, Version 2.0 (the "License");
56e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam * you may not use this file except in compliance with the License.
66e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam * You may obtain a copy of the License at
76e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam *
86e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam *      http://www.apache.org/licenses/LICENSE-2.0
96e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam *
106e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam * Unless required by applicable law or agreed to in writing, software
116e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam * distributed under the License is distributed on an "AS IS" BASIS,
126e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam * See the License for the specific language governing permissions and
146e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam * limitations under the License.
156e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam */
166e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
17d60659421446329c7a7af2a009a51413d5388254Maurice Lampackage com.android.setupwizardlib.items;
186e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
19d60659421446329c7a7af2a009a51413d5388254Maurice Lamimport static org.junit.Assert.assertEquals;
202614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lamimport static org.junit.Assert.assertFalse;
212614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lamimport static org.junit.Assert.assertTrue;
22d60659421446329c7a7af2a009a51413d5388254Maurice Lamimport static org.robolectric.RuntimeEnvironment.application;
232614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam
24d60659421446329c7a7af2a009a51413d5388254Maurice Lamimport android.annotation.TargetApi;
25d60659421446329c7a7af2a009a51413d5388254Maurice Lamimport android.os.Build.VERSION_CODES;
266e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lamimport android.support.v7.widget.SwitchCompat;
27d60659421446329c7a7af2a009a51413d5388254Maurice Lamimport android.view.LayoutInflater;
286e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lamimport android.view.View;
296e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lamimport android.view.ViewGroup;
306e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lamimport android.widget.FrameLayout;
316e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lamimport android.widget.ImageView;
326e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lamimport android.widget.TextView;
336e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
34d60659421446329c7a7af2a009a51413d5388254Maurice Lamimport com.android.setupwizardlib.BuildConfig;
356e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lamimport com.android.setupwizardlib.R;
36d60659421446329c7a7af2a009a51413d5388254Maurice Lamimport com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
376e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
382614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lamimport org.junit.Test;
392614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lamimport org.junit.runner.RunWith;
40d60659421446329c7a7af2a009a51413d5388254Maurice Lamimport org.robolectric.annotation.Config;
412614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam
42d60659421446329c7a7af2a009a51413d5388254Maurice Lam@RunWith(SuwLibRobolectricTestRunner.class)
43d60659421446329c7a7af2a009a51413d5388254Maurice Lam@Config(constants = BuildConfig.class, sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
442614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lampublic class SwitchItemTest {
456e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
466e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam    private SwitchCompat mSwitch;
476e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
482614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam    @Test
496e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam    public void testChecked() {
506e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        SwitchItem item = new SwitchItem();
516e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setTitle("TestTitle");
526e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setSummary("TestSummary");
536e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        View view = createLayout();
546e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
556e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setChecked(true);
566e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
576e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.onBindView(view);
586e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
596e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        assertTrue("Switch should be checked", mSwitch.isChecked());
606e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam    }
616e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
622614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam    @Test
636e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam    public void testNotChecked() {
646e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        SwitchItem item = new SwitchItem();
656e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setTitle("TestTitle");
666e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setSummary("TestSummary");
676e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        View view = createLayout();
686e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
696e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setChecked(false);
706e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
716e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.onBindView(view);
726e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
736e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        assertFalse("Switch should be unchecked", mSwitch.isChecked());
746e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam    }
756e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
762614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam    @Test
776e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam    public void testListener() {
786e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        SwitchItem item = new SwitchItem();
796e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setTitle("TestTitle");
806e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setSummary("TestSummary");
816e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        View view = createLayout();
826e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
836e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setChecked(true);
846e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
856e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        final TestOnCheckedChangeListener listener = new TestOnCheckedChangeListener();
866e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setOnCheckedChangeListener(listener);
876e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
886e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.onBindView(view);
896e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
906e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        assertTrue("Switch should be checked", mSwitch.isChecked());
916e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        mSwitch.setChecked(false);
926e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
93d60659421446329c7a7af2a009a51413d5388254Maurice Lam        assertTrue("Listener should be called", listener.mCalled);
94d60659421446329c7a7af2a009a51413d5388254Maurice Lam        assertFalse("Listener should not be checked", listener.mChecked);
956e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
966e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        mSwitch.setChecked(true);
976e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
98d60659421446329c7a7af2a009a51413d5388254Maurice Lam        assertTrue("Listener should be called", listener.mCalled);
99d60659421446329c7a7af2a009a51413d5388254Maurice Lam        assertTrue("Listener should be checked", listener.mChecked);
1006e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam    }
1016e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
1022614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam    @Test
103b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam    public void testRebind() {
104b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        SwitchItem item1 = new SwitchItem();
105b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        item1.setTitle("TestTitle1");
106b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        item1.setSummary("TestSummary1");
107b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        item1.setChecked(false);
108b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam
109b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        SwitchItem item2 = new SwitchItem();
110b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        item2.setTitle("TestTitle2");
111b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        item2.setSummary("TestSummary2");
112b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        item2.setChecked(true);
113b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam
114b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        View view = createLayout();
115b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam
116b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        item1.onBindView(view);
117b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        item2.onBindView(view);
118b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam
119b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        // Switch should be bound to item2, and therefore checked
120b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        assertTrue("Switch should be checked", mSwitch.isChecked());
121b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam
122b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        // Switching the switch to false should change the checked state of item 2 only
123b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        mSwitch.setChecked(false);
124b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        assertFalse("Item1 should still be unchecked", item1.isChecked());
125b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        assertFalse("Item2 should not be checked", item2.isChecked());
126b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam
127b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        // Switching the switch to true should change the checked state of item 2 only
128b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        mSwitch.setChecked(true);
129b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        assertFalse("Item1 should still be unchecked", item1.isChecked());
130b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam        assertTrue("Item2 should be checked", item2.isChecked());
131b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam    }
132b3d973f58b14b66c20d1032518dfd1969b2932feMaurice Lam
1332614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam    @Test
1346e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam    public void testListenerSetChecked() {
1356e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        // Check that calling setChecked on the item will also call the listener.
1366e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
1376e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        SwitchItem item = new SwitchItem();
1386e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setTitle("TestTitle");
1396e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setSummary("TestSummary");
1406e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        View view = createLayout();
1416e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
1426e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setChecked(true);
1436e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
1446e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        final TestOnCheckedChangeListener listener = new TestOnCheckedChangeListener();
1456e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setOnCheckedChangeListener(listener);
1466e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
1476e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.onBindView(view);
1486e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
1496e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        assertTrue("Switch should be checked", mSwitch.isChecked());
1506e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setChecked(false);
1516e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
152d60659421446329c7a7af2a009a51413d5388254Maurice Lam        assertTrue("Listener should be called", listener.mCalled);
153d60659421446329c7a7af2a009a51413d5388254Maurice Lam        assertFalse("Listener should not be checked", listener.mChecked);
1546e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
1556e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setChecked(true);
1566e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
157d60659421446329c7a7af2a009a51413d5388254Maurice Lam        assertTrue("Listener should be called", listener.mCalled);
158d60659421446329c7a7af2a009a51413d5388254Maurice Lam        assertTrue("Listener should be checked", listener.mChecked);
1596e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam    }
1606e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
1612614260933341bd4ea7bb37a3435f46f82cacef7Maurice Lam    @Test
1626e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam    public void testToggle() {
1636e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        SwitchItem item = new SwitchItem();
1646e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setTitle("TestTitle");
1656e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setSummary("TestSummary");
1666e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        View view = createLayout();
1676e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
1686e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.setChecked(true);
1696e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.onBindView(view);
1706e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
1716e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        assertTrue("Switch should be checked", mSwitch.isChecked());
1726e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
1736e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        item.toggle(view);
1746e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
1756e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        assertFalse("Switch should be unchecked", mSwitch.isChecked());
1766e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam    }
1776e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
178d60659421446329c7a7af2a009a51413d5388254Maurice Lam    @TargetApi(VERSION_CODES.JELLY_BEAN_MR1)
179d60659421446329c7a7af2a009a51413d5388254Maurice Lam    @Config(minSdk = VERSION_CODES.JELLY_BEAN_MR1)
180d60659421446329c7a7af2a009a51413d5388254Maurice Lam    @Test
181d60659421446329c7a7af2a009a51413d5388254Maurice Lam    public void testAccessibility() {
182d60659421446329c7a7af2a009a51413d5388254Maurice Lam        SwitchItem item = new SwitchItem();
183d60659421446329c7a7af2a009a51413d5388254Maurice Lam        item.setTitle("TestTitle");
184d60659421446329c7a7af2a009a51413d5388254Maurice Lam        item.setSummary("TestSummary");
185d60659421446329c7a7af2a009a51413d5388254Maurice Lam
186d60659421446329c7a7af2a009a51413d5388254Maurice Lam        View view = LayoutInflater.from(application).inflate(R.layout.suw_items_switch, null);
187d60659421446329c7a7af2a009a51413d5388254Maurice Lam        item.onBindView(view);
188d60659421446329c7a7af2a009a51413d5388254Maurice Lam
189d60659421446329c7a7af2a009a51413d5388254Maurice Lam        final View titleView = view.findViewById(R.id.suw_items_title);
190d60659421446329c7a7af2a009a51413d5388254Maurice Lam        assertEquals("Title view should label for switch",
191d60659421446329c7a7af2a009a51413d5388254Maurice Lam                R.id.suw_items_switch, titleView.getLabelFor());
192d60659421446329c7a7af2a009a51413d5388254Maurice Lam    }
193d60659421446329c7a7af2a009a51413d5388254Maurice Lam
1946e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam    private ViewGroup createLayout() {
195d60659421446329c7a7af2a009a51413d5388254Maurice Lam        ViewGroup root = new FrameLayout(application);
1966e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
197d60659421446329c7a7af2a009a51413d5388254Maurice Lam        TextView titleView = new TextView(application);
1986e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        titleView.setId(R.id.suw_items_title);
1996e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        root.addView(titleView);
2006e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
201d60659421446329c7a7af2a009a51413d5388254Maurice Lam        TextView summaryView = new TextView(application);
2026e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        summaryView.setId(R.id.suw_items_summary);
2036e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        root.addView(summaryView);
2046e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
205d60659421446329c7a7af2a009a51413d5388254Maurice Lam        FrameLayout iconContainer = new FrameLayout(application);
2066e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        iconContainer.setId(R.id.suw_items_icon_container);
2076e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        root.addView(iconContainer);
2086e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
209d60659421446329c7a7af2a009a51413d5388254Maurice Lam        ImageView iconView = new ImageView(application);
2106e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        iconView.setId(R.id.suw_items_icon);
2116e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        iconContainer.addView(iconView);
2126e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
213d60659421446329c7a7af2a009a51413d5388254Maurice Lam        mSwitch = new SwitchCompat(application);
2146e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        mSwitch.setId(R.id.suw_items_switch);
2156e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        root.addView(mSwitch);
2166e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
2176e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        return root;
2186e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam    }
2196e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
2206e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam    private static class TestOnCheckedChangeListener implements SwitchItem.OnCheckedChangeListener {
2216e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
222d60659421446329c7a7af2a009a51413d5388254Maurice Lam        boolean mCalled = false;
223d60659421446329c7a7af2a009a51413d5388254Maurice Lam        boolean mChecked = false;
2246e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam
2256e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        @Override
2266e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        public void onCheckedChange(SwitchItem item, boolean isChecked) {
227d60659421446329c7a7af2a009a51413d5388254Maurice Lam            mCalled = true;
228d60659421446329c7a7af2a009a51413d5388254Maurice Lam            mChecked = isChecked;
2296e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam        }
2306e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam    }
2316e55f30c31f1ac3b35d60f306cf6cef084b1a845Maurice Lam}
232