1b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb/* 2b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb * Copyright (C) 2012 The Android Open Source Project 3b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb * 4b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb * Licensed under the Apache License, Version 2.0 (the "License"); 5b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb * you may not use this file except in compliance with the License. 6b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb * You may obtain a copy of the License at 7b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb * 8b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb * http://www.apache.org/licenses/LICENSE-2.0 9b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb * 10b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb * Unless required by applicable law or agreed to in writing, software 11b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb * distributed under the License is distributed on an "AS IS" BASIS, 12b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb * See the License for the specific language governing permissions and 14b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb * limitations under the License. 15b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb */ 16b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb 17b5b59b88683823d70faac7b3454519d53c51180bMichael Kolbpackage com.android.camera; 18b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb 192d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolbimport android.content.Context; 20ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Liimport android.hardware.Camera.Parameters; 212d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolbimport android.view.LayoutInflater; 22b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb 23f04692066fc7087560248b003c49e0377c056edfDoris Liuimport com.android.camera.ui.AbstractSettingPopup; 24f04692066fc7087560248b003c49e0377c056edfDoris Liuimport com.android.camera.ui.ListPrefSettingPopup; 25f04692066fc7087560248b003c49e0377c056edfDoris Liuimport com.android.camera.ui.MoreSettingPopup; 26b5b59b88683823d70faac7b3454519d53c51180bMichael Kolbimport com.android.camera.ui.PieItem; 273ed120d2204c73ab20d6093f112367de60129eb3John Reckimport com.android.camera.ui.PieItem.OnClickListener; 28b5b59b88683823d70faac7b3454519d53c51180bMichael Kolbimport com.android.camera.ui.PieRenderer; 2954d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liuimport com.android.camera.ui.TimerSettingPopup; 30b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb 312d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolbpublic class PhotoController extends PieController 32f04692066fc7087560248b003c49e0377c056edfDoris Liu implements MoreSettingPopup.Listener, 3354d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu TimerSettingPopup.Listener, 34f04692066fc7087560248b003c49e0377c056edfDoris Liu ListPrefSettingPopup.Listener { 35b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb private static String TAG = "CAM_photocontrol"; 36b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb private static float FLOAT_PI_DIVIDED_BY_TWO = (float) Math.PI / 2; 37ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li private final String mSettingOff; 38b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb 392d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb private PhotoModule mModule; 40b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb private String[] mOtherKeys; 41ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu // First level popup 42ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu private MoreSettingPopup mPopup; 43ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu // Second level popup 44ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu private AbstractSettingPopup mSecondPopup; 45b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb 462d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb public PhotoController(CameraActivity activity, PhotoModule module, PieRenderer pie) { 47b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb super(activity, pie); 482d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb mModule = module; 49ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li mSettingOff = activity.getString(R.string.setting_off_value); 50b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb } 51b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb 52b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb public void initialize(PreferenceGroup group) { 53b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb super.initialize(group); 54aaf27677831ac31d7a55e6faf173a64d6e0c3021Michael Kolb mPopup = null; 55ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu mSecondPopup = null; 56b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb float sweep = FLOAT_PI_DIVIDED_BY_TWO / 2; 57b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb addItem(CameraSettings.KEY_FLASH_MODE, FLOAT_PI_DIVIDED_BY_TWO - sweep, sweep); 58449badb77342ee5d0ee2852b3cdd5386e456e461Michael Kolb addItem(CameraSettings.KEY_EXPOSURE, 3 * FLOAT_PI_DIVIDED_BY_TWO - sweep, sweep); 59449badb77342ee5d0ee2852b3cdd5386e456e461Michael Kolb addItem(CameraSettings.KEY_WHITE_BALANCE, 3 * FLOAT_PI_DIVIDED_BY_TWO + sweep, sweep); 605ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb if (group.findPreference(CameraSettings.KEY_CAMERA_ID) != null) { 615ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb PieItem item = makeItem(R.drawable.ic_switch_photo_facing_holo_light); 625ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb item.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO + sweep, sweep); 635ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb item.setOnClickListener(new OnClickListener() { 645ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb @Override 655ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb public void onClick(PieItem item) { 665ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb // Find the index of next camera. 675ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb ListPreference camPref = mPreferenceGroup 685ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb .findPreference(CameraSettings.KEY_CAMERA_ID); 695ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb if (camPref != null) { 705ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb int index = camPref.findIndexOfValue(camPref.getValue()); 715ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb CharSequence[] values = camPref.getEntryValues(); 725ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb index = (index + 1) % values.length; 735ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb int newCameraId = Integer 745ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb .parseInt((String) values[index]); 755ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb mListener.onCameraPickerClicked(newCameraId); 765ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb } 779667bf4a16d01c58a5b91eebede8df13e95f592dMichael Kolb } 785ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb }); 795ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb mRenderer.addItem(item); 805ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb } 818e6490c77d7f6b581dce3a12b60438a0d629d6ebMichael Kolb if (group.findPreference(CameraSettings.KEY_CAMERA_HDR) != null) { 828e6490c77d7f6b581dce3a12b60438a0d629d6ebMichael Kolb PieItem hdr = makeItem(R.drawable.ic_hdr); 838e6490c77d7f6b581dce3a12b60438a0d629d6ebMichael Kolb hdr.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO, sweep); 843ed120d2204c73ab20d6093f112367de60129eb3John Reck hdr.setOnClickListener(new OnClickListener() { 858e6490c77d7f6b581dce3a12b60438a0d629d6ebMichael Kolb @Override 863ed120d2204c73ab20d6093f112367de60129eb3John Reck public void onClick(PieItem item) { 878e6490c77d7f6b581dce3a12b60438a0d629d6ebMichael Kolb // Find the index of next camera. 888e6490c77d7f6b581dce3a12b60438a0d629d6ebMichael Kolb ListPreference pref = mPreferenceGroup 898e6490c77d7f6b581dce3a12b60438a0d629d6ebMichael Kolb .findPreference(CameraSettings.KEY_CAMERA_HDR); 908e6490c77d7f6b581dce3a12b60438a0d629d6ebMichael Kolb if (pref != null) { 918e6490c77d7f6b581dce3a12b60438a0d629d6ebMichael Kolb // toggle hdr value 928e6490c77d7f6b581dce3a12b60438a0d629d6ebMichael Kolb int index = (pref.findIndexOfValue(pref.getValue()) + 1) % 2; 938e6490c77d7f6b581dce3a12b60438a0d629d6ebMichael Kolb pref.setValueIndex(index); 948e6490c77d7f6b581dce3a12b60438a0d629d6ebMichael Kolb onSettingChanged(pref); 958e6490c77d7f6b581dce3a12b60438a0d629d6ebMichael Kolb } 96e1fa2543424be206ed29efa5f0ebcaff3766ed99Michael Kolb } 978e6490c77d7f6b581dce3a12b60438a0d629d6ebMichael Kolb }); 988e6490c77d7f6b581dce3a12b60438a0d629d6ebMichael Kolb mRenderer.addItem(hdr); 998e6490c77d7f6b581dce3a12b60438a0d629d6ebMichael Kolb } 100b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb mOtherKeys = new String[] { 1012d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb CameraSettings.KEY_SCENE_MODE, 102b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb CameraSettings.KEY_RECORD_LOCATION, 103b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb CameraSettings.KEY_PICTURE_SIZE, 10454d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu CameraSettings.KEY_FOCUS_MODE, 10554d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu CameraSettings.KEY_TIMER, 1068e3b1df4fcc770965d0796ac2046ef9e265d4bdbDoris Liu CameraSettings.KEY_TIMER_SOUND_EFFECTS, 10754d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu }; 1085ee84981bf79e2e86fe050f88c426734fb687eafMichael Kolb PieItem item = makeItem(R.drawable.ic_settings_holo_light); 109b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb item.setFixedSlice(FLOAT_PI_DIVIDED_BY_TWO * 3, sweep); 1103ed120d2204c73ab20d6093f112367de60129eb3John Reck item.setOnClickListener(new OnClickListener() { 111b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb @Override 1123ed120d2204c73ab20d6093f112367de60129eb3John Reck public void onClick(PieItem item) { 113ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu if (mPopup == null) { 1142d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb initializePopup(); 1152d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb } 1162d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb mModule.showPopup(mPopup); 117b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb } 118b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb }); 119b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb mRenderer.addItem(item); 120b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb } 121b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb 122b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb protected void setCameraId(int cameraId) { 123b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb ListPreference pref = mPreferenceGroup.findPreference(CameraSettings.KEY_CAMERA_ID); 124b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb pref.setValue("" + cameraId); 125b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb } 126b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb 1272d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb @Override 1289d8583fc0e14477466ed0e9f69f40ea2863c393fMichael Kolb public void reloadPreferences() { 1299d8583fc0e14477466ed0e9f69f40ea2863c393fMichael Kolb super.reloadPreferences(); 1309d8583fc0e14477466ed0e9f69f40ea2863c393fMichael Kolb if (mPopup != null) { 1319d8583fc0e14477466ed0e9f69f40ea2863c393fMichael Kolb mPopup.reloadPreference(); 1329d8583fc0e14477466ed0e9f69f40ea2863c393fMichael Kolb } 1339d8583fc0e14477466ed0e9f69f40ea2863c393fMichael Kolb } 1349d8583fc0e14477466ed0e9f69f40ea2863c393fMichael Kolb 1359d8583fc0e14477466ed0e9f69f40ea2863c393fMichael Kolb @Override 136f04692066fc7087560248b003c49e0377c056edfDoris Liu // Hit when an item in the second-level popup gets selected 137f04692066fc7087560248b003c49e0377c056edfDoris Liu public void onListPrefChanged(ListPreference pref) { 138ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu if (mPopup != null && mSecondPopup != null) { 139f04692066fc7087560248b003c49e0377c056edfDoris Liu mModule.dismissPopup(true); 140ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu mPopup.reloadPreference(); 141f04692066fc7087560248b003c49e0377c056edfDoris Liu } 142f04692066fc7087560248b003c49e0377c056edfDoris Liu onSettingChanged(pref); 143f04692066fc7087560248b003c49e0377c056edfDoris Liu } 144f04692066fc7087560248b003c49e0377c056edfDoris Liu 145f04692066fc7087560248b003c49e0377c056edfDoris Liu @Override 1462d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb public void overrideSettings(final String ... keyvalues) { 1472d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb super.overrideSettings(keyvalues); 148ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu if (mPopup == null) initializePopup(); 149ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu mPopup.overrideSettings(keyvalues); 1502d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb } 1512d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb 1522d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb protected void initializePopup() { 1532d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb LayoutInflater inflater = (LayoutInflater) mActivity.getSystemService( 1542d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb Context.LAYOUT_INFLATER_SERVICE); 1552d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb 156f04692066fc7087560248b003c49e0377c056edfDoris Liu MoreSettingPopup popup = (MoreSettingPopup) inflater.inflate( 157f04692066fc7087560248b003c49e0377c056edfDoris Liu R.layout.more_setting_popup, null, false); 1582d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb popup.setSettingChangedListener(this); 1592d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb popup.initialize(mPreferenceGroup, mOtherKeys); 16002fdcaef920cd764cc7c0ab937367475835e9c9bDoris Liu if (mActivity.isSecureCamera()) { 16102fdcaef920cd764cc7c0ab937367475835e9c9bDoris Liu // Prevent location preference from getting changed in secure camera mode 16202fdcaef920cd764cc7c0ab937367475835e9c9bDoris Liu popup.setPreferenceEnabled(CameraSettings.KEY_RECORD_LOCATION, false); 16302fdcaef920cd764cc7c0ab937367475835e9c9bDoris Liu } 1642d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb mPopup = popup; 1652d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb } 1662d3af28f91481d7f3887cb0bb9c5d06375baf787Michael Kolb 167ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu public void popupDismissed(boolean topPopupOnly) { 168ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu // if the 2nd level popup gets dismissed 169ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu if (mSecondPopup != null) { 170ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu mSecondPopup = null; 171f04692066fc7087560248b003c49e0377c056edfDoris Liu if (topPopupOnly) mModule.showPopup(mPopup); 172f04692066fc7087560248b003c49e0377c056edfDoris Liu } 173f04692066fc7087560248b003c49e0377c056edfDoris Liu } 174f04692066fc7087560248b003c49e0377c056edfDoris Liu 175ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li // Return true if the preference has the specified key but not the value. 176ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li private static boolean notSame(ListPreference pref, String key, String value) { 177ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li return (key.equals(pref.getKey()) && !value.equals(pref.getValue())); 178ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li } 179ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li 180ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li private void setPreference(String key, String value) { 181ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li ListPreference pref = mPreferenceGroup.findPreference(key); 182ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li if (pref != null && !value.equals(pref.getValue())) { 183ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li pref.setValue(value); 184ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li reloadPreferences(); 185ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li } 186ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li } 187ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li 188ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li @Override 189ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li public void onSettingChanged(ListPreference pref) { 190ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li // Reset the scene mode if HDR is set to on. Reset HDR if scene mode is 191ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li // set to non-auto. 192ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li if (notSame(pref, CameraSettings.KEY_CAMERA_HDR, mSettingOff)) { 193ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li setPreference(CameraSettings.KEY_SCENE_MODE, Parameters.SCENE_MODE_AUTO); 194ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li } else if (notSame(pref, CameraSettings.KEY_SCENE_MODE, Parameters.SCENE_MODE_AUTO)) { 195ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li setPreference(CameraSettings.KEY_CAMERA_HDR, mSettingOff); 196ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li } 197ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li super.onSettingChanged(pref); 198ad30bda0d0103bd8a93eb834c234341b1ab1e77fWu-cheng Li } 199f04692066fc7087560248b003c49e0377c056edfDoris Liu 200f04692066fc7087560248b003c49e0377c056edfDoris Liu @Override 201f04692066fc7087560248b003c49e0377c056edfDoris Liu // Hit when an item in the first-level popup gets selected, then bring up 202f04692066fc7087560248b003c49e0377c056edfDoris Liu // the second-level popup 203ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu public void onPreferenceClicked(ListPreference pref) { 204ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu if (mSecondPopup != null) return; 205f04692066fc7087560248b003c49e0377c056edfDoris Liu 206f04692066fc7087560248b003c49e0377c056edfDoris Liu LayoutInflater inflater = (LayoutInflater) mActivity.getSystemService( 207f04692066fc7087560248b003c49e0377c056edfDoris Liu Context.LAYOUT_INFLATER_SERVICE); 20854d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu if (CameraSettings.KEY_TIMER.equals(pref.getKey())) { 20954d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu TimerSettingPopup timerPopup = (TimerSettingPopup) inflater.inflate( 21054d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu R.layout.timer_setting_popup, null, false); 21154d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu timerPopup.initialize(pref); 21254d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu timerPopup.setSettingChangedListener(this); 21354d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu mModule.dismissPopup(true); 21454d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu mSecondPopup = timerPopup; 21554d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu } else { 21654d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu ListPrefSettingPopup basic = (ListPrefSettingPopup) inflater.inflate( 21754d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu R.layout.list_pref_setting_popup, null, false); 21854d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu basic.initialize(pref); 21954d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu basic.setSettingChangedListener(this); 22054d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu mModule.dismissPopup(true); 22154d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu mSecondPopup = basic; 22254d2fafcbb85025ea737c56af6df2afbf4bfda96Doris Liu } 223ccd32dfd9fe67daff7a428c4fc8fb5e67cfef906Doris Liu mModule.showPopup(mSecondPopup); 224f04692066fc7087560248b003c49e0377c056edfDoris Liu } 225b5b59b88683823d70faac7b3454519d53c51180bMichael Kolb} 226