1a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang/* 2a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang * Copyright (C) 2011 The Android Open Source Project 3a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang * 4a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang * Licensed under the Apache License, Version 2.0 (the "License"); 5a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang * you may not use this file except in compliance with the License. 6a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang * You may obtain a copy of the License at 7a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang * 8a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang * http://www.apache.org/licenses/LICENSE-2.0 9a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang * 10a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang * Unless required by applicable law or agreed to in writing, software 11a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang * distributed under the License is distributed on an "AS IS" BASIS, 12a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang * See the License for the specific language governing permissions and 14a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang * limitations under the License. 15a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang */ 16a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang 17a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wangpackage com.android.camera.ui; 18a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang 19a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wangimport android.content.Context; 20a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wangimport android.util.AttributeSet; 2126d88fce15a24362644123af5f0cce79ea572e7bChung-yih Wangimport android.view.accessibility.AccessibilityEvent; 2230ab66d7f035d57c76e6fa1d1c7faf820c21b9b7Doris Liuimport android.widget.CheckBox; 23a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wangimport android.widget.CompoundButton; 24a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wangimport android.widget.CompoundButton.OnCheckedChangeListener; 25af83b02b1d78576b685a116767d62df824fd285fPin Ting 26a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang 27892781804513066b68b4a2fa6f846e862dac252aOwen Linimport com.android.camera.ListPreference; 28892781804513066b68b4a2fa6f846e862dac252aOwen Linimport com.android.camera.R; 29892781804513066b68b4a2fa6f846e862dac252aOwen Lin 3030ab66d7f035d57c76e6fa1d1c7faf820c21b9b7Doris Liu/* A check box setting control which turns on/off the setting. */ 3130ab66d7f035d57c76e6fa1d1c7faf820c21b9b7Doris Liupublic class InLineSettingCheckBox extends InLineSettingItem { 3230ab66d7f035d57c76e6fa1d1c7faf820c21b9b7Doris Liu private CheckBox mCheckBox; 33a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang 34a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang OnCheckedChangeListener mCheckedChangeListener = new OnCheckedChangeListener() { 35913f3784d368a5e11fee5d5db2c355ef832685daWu-cheng Li @Override 36a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang public void onCheckedChanged(CompoundButton buttonView, boolean desiredState) { 37a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang changeIndex(desiredState ? 1 : 0); 38a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang } 39a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang }; 40a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang 4130ab66d7f035d57c76e6fa1d1c7faf820c21b9b7Doris Liu public InLineSettingCheckBox(Context context, AttributeSet attrs) { 42a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang super(context, attrs); 43a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang } 44a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang 45a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang @Override 46a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang protected void onFinishInflate() { 47a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang super.onFinishInflate(); 4830ab66d7f035d57c76e6fa1d1c7faf820c21b9b7Doris Liu mCheckBox = (CheckBox) findViewById(R.id.setting_check_box); 4930ab66d7f035d57c76e6fa1d1c7faf820c21b9b7Doris Liu mCheckBox.setOnCheckedChangeListener(mCheckedChangeListener); 50a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang } 51a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang 5226d88fce15a24362644123af5f0cce79ea572e7bChung-yih Wang @Override 5326d88fce15a24362644123af5f0cce79ea572e7bChung-yih Wang public void initialize(ListPreference preference) { 5426d88fce15a24362644123af5f0cce79ea572e7bChung-yih Wang super.initialize(preference); 5526d88fce15a24362644123af5f0cce79ea572e7bChung-yih Wang // Add content descriptions for the increment and decrement buttons. 5630ab66d7f035d57c76e6fa1d1c7faf820c21b9b7Doris Liu mCheckBox.setContentDescription(getContext().getResources().getString( 5730ab66d7f035d57c76e6fa1d1c7faf820c21b9b7Doris Liu R.string.accessibility_check_box, mPreference.getTitle())); 5826d88fce15a24362644123af5f0cce79ea572e7bChung-yih Wang } 5926d88fce15a24362644123af5f0cce79ea572e7bChung-yih Wang 604da02059e884dbef897f410861329acad96d46d4Wu-cheng Li @Override 61a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang protected void updateView() { 6230ab66d7f035d57c76e6fa1d1c7faf820c21b9b7Doris Liu mCheckBox.setOnCheckedChangeListener(null); 63a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang if (mOverrideValue == null) { 6430ab66d7f035d57c76e6fa1d1c7faf820c21b9b7Doris Liu mCheckBox.setChecked(mIndex == 1); 65a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang } else { 66a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang int index = mPreference.findIndexOfValue(mOverrideValue); 6730ab66d7f035d57c76e6fa1d1c7faf820c21b9b7Doris Liu mCheckBox.setChecked(index == 1); 68a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang } 6930ab66d7f035d57c76e6fa1d1c7faf820c21b9b7Doris Liu mCheckBox.setOnCheckedChangeListener(mCheckedChangeListener); 70a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang } 7126d88fce15a24362644123af5f0cce79ea572e7bChung-yih Wang 7226d88fce15a24362644123af5f0cce79ea572e7bChung-yih Wang @Override 7326d88fce15a24362644123af5f0cce79ea572e7bChung-yih Wang public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) { 7426d88fce15a24362644123af5f0cce79ea572e7bChung-yih Wang event.getText().add(mPreference.getTitle()); 75c347dd2cccb6cbad8caa8404eae1c0ae17204156Ahbong Chang return true; 7626d88fce15a24362644123af5f0cce79ea572e7bChung-yih Wang } 77ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu 78ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu @Override 79ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu public void setEnabled(boolean enable) { 80ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu if (mTitle != null) mTitle.setEnabled(enable); 8130ab66d7f035d57c76e6fa1d1c7faf820c21b9b7Doris Liu if (mCheckBox != null) mCheckBox.setEnabled(enable); 82ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu } 83a8b55a9628fa7c073d4f9c97c9a198275194f76aChung-yih Wang} 84