• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.android.phone;
2 
3 import java.util.ArrayList;
4 
5 import android.os.Bundle;
6 import android.preference.Preference;
7 import android.preference.PreferenceScreen;
8 import android.util.Log;
9 
10 public class GsmUmtsAdditionalCallOptions extends
11         TimeConsumingPreferenceActivity {
12     private static final String LOG_TAG = "GsmUmtsAdditionalCallOptions";
13     private final boolean DBG = (PhoneApp.DBG_LEVEL >= 2);
14 
15     private static final String BUTTON_CLIR_KEY  = "button_clir_key";
16     private static final String BUTTON_CW_KEY    = "button_cw_key";
17 
18     private CLIRListPreference mCLIRButton;
19     private CallWaitingCheckBoxPreference mCWButton;
20 
21     private ArrayList<Preference> mPreferences = new ArrayList<Preference> ();
22     private int mInitIndex= 0;
23 
24     @Override
onCreate(Bundle icicle)25     protected void onCreate(Bundle icicle) {
26         super.onCreate(icicle);
27 
28         addPreferencesFromResource(R.xml.gsm_umts_additional_options);
29 
30         PreferenceScreen prefSet = getPreferenceScreen();
31         mCLIRButton = (CLIRListPreference) prefSet.findPreference(BUTTON_CLIR_KEY);
32         mCWButton = (CallWaitingCheckBoxPreference) prefSet.findPreference(BUTTON_CW_KEY);
33 
34         mPreferences.add(mCLIRButton);
35         mPreferences.add(mCWButton);
36 
37         if (icicle == null) {
38             if (DBG) Log.d(LOG_TAG, "start to init ");
39             mCLIRButton.init(this, false);
40         } else {
41             if (DBG) Log.d(LOG_TAG, "restore stored states");
42             mInitIndex = mPreferences.size();
43             mCLIRButton.init(this, true);
44             mCWButton.init(this, true);
45             int[] clirArray = icicle.getIntArray(mCLIRButton.getKey());
46             if (clirArray != null) {
47                 if (DBG) Log.d(LOG_TAG, "onCreate:  clirArray[0]="
48                         + clirArray[0] + ", clirArray[1]=" + clirArray[1]);
49                 mCLIRButton.handleGetCLIRResult(clirArray);
50             } else {
51                 mCLIRButton.init(this, false);
52             }
53         }
54     }
55 
56     @Override
onSaveInstanceState(Bundle outState)57     protected void onSaveInstanceState(Bundle outState) {
58         super.onSaveInstanceState(outState);
59 
60         if (mCLIRButton.clirArray != null) {
61             outState.putIntArray(mCLIRButton.getKey(), mCLIRButton.clirArray);
62         }
63     }
64 
65     @Override
onFinished(Preference preference, boolean reading)66     public void onFinished(Preference preference, boolean reading) {
67         if (mInitIndex < mPreferences.size()-1 && !isFinishing()) {
68             mInitIndex++;
69             Preference pref = mPreferences.get(mInitIndex);
70             if (pref instanceof CallWaitingCheckBoxPreference) {
71                 ((CallWaitingCheckBoxPreference) pref).init(this, false);
72             }
73         }
74         super.onFinished(preference, reading);
75     }
76 
77 }
78