17d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon/* 27d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * Copyright (C) 2009 The Android Open Source Project 37d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * 47d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * Licensed under the Apache License, Version 2.0 (the "License"); 57d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * you may not use this file except in compliance with the License. 67d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * You may obtain a copy of the License at 77d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * 87d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * http://www.apache.org/licenses/LICENSE-2.0 97d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * 107d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * Unless required by applicable law or agreed to in writing, software 117d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * distributed under the License is distributed on an "AS IS" BASIS, 127d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * See the License for the specific language governing permissions and 147d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * limitations under the License. 157d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon */ 167d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 177d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 187d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonpackage com.android.phone; 197d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 207d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.os.Bundle; 217d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.preference.CheckBoxPreference; 227d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.preference.ListPreference; 237d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.preference.Preference; 247d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.preference.PreferenceScreen; 257d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.preference.PreferenceActivity; 267d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport com.android.internal.telephony.Phone; 277d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport com.android.internal.telephony.RILConstants; 287d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 297d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.os.AsyncResult; 307d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.os.Handler; 317d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.os.Message; 327d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonimport android.util.Log; 337d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 347d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 357d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon/** 367d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * List of Phone-specific settings screens. 377d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon */ 387d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordonpublic class CellBroadcastSms extends PreferenceActivity 397d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon implements Preference.OnPreferenceChangeListener{ 407d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // debug data 417d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String LOG_TAG = "CellBroadcastSms"; 427d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final boolean DBG = false; 437d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 447d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //String keys for preference lookup 457d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_ENABLE_DISABLE_BC_SMS_KEY = 467d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_enable_disable_cell_bc_sms"; 477d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String LIST_LANGUAGE_KEY = 487d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "list_language"; 497d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_EMERGENCY_BROADCAST_KEY = 507d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_emergency_broadcast"; 517d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_ADMINISTRATIVE_KEY = 527d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_administrative"; 537d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_MAINTENANCE_KEY = 547d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_maintenance"; 557d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_LOCAL_WEATHER_KEY = 567d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_local_weather"; 577d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_ATR_KEY = 587d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_atr"; 597d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_LAFS_KEY = 607d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_lafs"; 617d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_RESTAURANTS_KEY = 627d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_restaurants"; 637d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_LODGINGS_KEY = 647d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_lodgings"; 657d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_RETAIL_DIRECTORY_KEY = 667d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_retail_directory"; 677d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_ADVERTISEMENTS_KEY = 687d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_advertisements"; 697d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_STOCK_QUOTES_KEY = 707d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_stock_quotes"; 717d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_EO_KEY = 727d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_eo"; 737d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_MHH_KEY = 747d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_mhh"; 757d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_TECHNOLOGY_NEWS_KEY = 767d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_technology_news"; 777d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_MULTI_CATEGORY_KEY = 787d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_multi_category"; 797d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 807d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_LOCAL_GENERAL_NEWS_KEY = 817d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_local_general_news"; 827d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_REGIONAL_GENERAL_NEWS_KEY = 837d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_regional_general_news"; 847d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_NATIONAL_GENERAL_NEWS_KEY = 857d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_national_general_news"; 867d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_INTERNATIONAL_GENERAL_NEWS_KEY = 877d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_international_general_news"; 887d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 897d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_LOCAL_BF_NEWS_KEY = 907d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_local_bf_news"; 917d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_REGIONAL_BF_NEWS_KEY = 927d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_regional_bf_news"; 937d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_NATIONAL_BF_NEWS_KEY = 947d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_national_bf_news"; 957d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_INTERNATIONAL_BF_NEWS_KEY = 967d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_international_bf_news"; 977d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 987d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_LOCAL_SPORTS_NEWS_KEY = 997d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_local_sports_news"; 1007d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_REGIONAL_SPORTS_NEWS_KEY = 1017d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_regional_sports_news"; 1027d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_NATIONAL_SPORTS_NEWS_KEY = 1037d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_national_sports_news"; 1047d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_INTERNATIONAL_SPORTS_NEWS_KEY = 1057d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_international_sports_news"; 1067d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 1077d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_LOCAL_ENTERTAINMENT_NEWS_KEY = 1087d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_local_entertainment_news"; 1097d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_REGIONAL_ENTERTAINMENT_NEWS_KEY = 1107d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_regional_entertainment_news"; 1117d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_NATIONAL_ENTERTAINMENT_NEWS_KEY = 1127d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_national_entertainment_news"; 1137d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final String BUTTON_INTERNATIONAL_ENTERTAINMENT_NEWS_KEY = 1147d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon "button_international_entertainment_news"; 1157d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 1167d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //Class constants 1177d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //These values are related to the C structs. See the comments in method 1187d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //setCbSmsConfig for more information. 1197d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final int NO_OF_SERVICE_CATEGORIES = 31; 1207d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final int NO_OF_INTS_STRUCT_1 = 3; 1217d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final int MAX_LENGTH_RESULT = NO_OF_SERVICE_CATEGORIES * NO_OF_INTS_STRUCT_1 + 1; 1227d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //Handler keys 1237d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final int MESSAGE_ACTIVATE_CB_SMS = 1; 1247d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final int MESSAGE_GET_CB_SMS_CONFIG = 2; 1257d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final int MESSAGE_SET_CB_SMS_CONFIG = 3; 1267d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 1277d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //UI objects 1287d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonBcSms; 1297d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 1307d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private ListPreference mListLanguage; 1317d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 1327d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonEmergencyBroadcast; 1337d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonAdministrative; 1347d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonMaintenance; 1357d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonLocalWeather; 1367d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonAtr; 1377d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonLafs; 1387d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonRestaurants; 1397d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonLodgings; 1407d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonRetailDirectory; 1417d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonAdvertisements; 1427d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonStockQuotes; 1437d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonEo; 1447d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonMhh; 1457d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonTechnologyNews; 1467d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonMultiCategory; 1477d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 1487d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonLocal1; 1497d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonRegional1; 1507d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonNational1; 1517d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonInternational1; 1527d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 1537d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonLocal2; 1547d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonRegional2; 1557d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonNational2; 1567d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonInternational2; 1577d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 1587d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonLocal3; 1597d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonRegional3; 1607d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonNational3; 1617d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonInternational3; 1627d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 1637d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonLocal4; 1647d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonRegional4; 1657d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonNational4; 1667d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private CheckBoxPreference mButtonInternational4; 1677d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 1687d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 1697d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //Member variables 1707d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private Phone mPhone; 1717d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private MyHandler mHandler; 1727d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 1737d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon /** 1747d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * Invoked on each preference click in this hierarchy, overrides 1757d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * PreferenceActivity's implementation. Used to make sure we track the 1767d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon * preference click events. 1777d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon */ 1787d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon @Override 1797d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, 1807d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon Preference preference) { 1817d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon if (preference == mButtonBcSms) { 1827d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon if (DBG) Log.d(LOG_TAG, "onPreferenceTreeClick: preference == mButtonBcSms."); 1837d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon if(mButtonBcSms.isChecked()) { 1847d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mPhone.activateCellBroadcastSms(RILConstants.CDMA_CELL_BROADCAST_SMS_ENABLED, 1857d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon Message.obtain(mHandler, MESSAGE_ACTIVATE_CB_SMS)); 1867d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon android.provider.Settings.Global.putInt(mPhone.getContext().getContentResolver(), 1877d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon android.provider.Settings.Global.CDMA_CELL_BROADCAST_SMS, 1887d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon RILConstants.CDMA_CELL_BROADCAST_SMS_ENABLED); 1897d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon enableDisableAllCbConfigButtons(true); 1907d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else { 1917d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mPhone.activateCellBroadcastSms(RILConstants.CDMA_CELL_BROADCAST_SMS_DISABLED, 1927d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon Message.obtain(mHandler, MESSAGE_ACTIVATE_CB_SMS)); 1937d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon android.provider.Settings.Global.putInt(mPhone.getContext().getContentResolver(), 1947d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon android.provider.Settings.Global.CDMA_CELL_BROADCAST_SMS, 1957d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon RILConstants.CDMA_CELL_BROADCAST_SMS_DISABLED); 1967d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon enableDisableAllCbConfigButtons(false); 1977d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 1987d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mListLanguage) { 1997d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //Do nothing here, because this click will be handled in onPreferenceChange 2007d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonEmergencyBroadcast) { 2017d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2027d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonEmergencyBroadcast.isChecked(), 1); 2037d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue( 2047d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonEmergencyBroadcast.isChecked(), 1); 2057d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonAdministrative) { 2067d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2077d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonAdministrative.isChecked(), 2); 2087d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonAdministrative.isChecked(), 2); 2097d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonMaintenance) { 2107d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2117d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonMaintenance.isChecked(), 3); 2127d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonMaintenance.isChecked(), 3); 2137d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonLocalWeather) { 2147d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2157d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLocalWeather.isChecked(), 20); 2167d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLocalWeather.isChecked(), 20); 2177d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonAtr) { 2187d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonAtr.isChecked(), 21); 2197d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonAtr.isChecked(), 21); 2207d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonLafs) { 2217d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLafs.isChecked(), 22); 2227d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLafs.isChecked(), 22); 2237d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonRestaurants) { 2247d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2257d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRestaurants.isChecked(), 23); 2267d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRestaurants.isChecked(), 23); 2277d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonLodgings) { 2287d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLodgings.isChecked(), 24); 2297d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLodgings.isChecked(), 24); 2307d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonRetailDirectory) { 2317d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2327d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRetailDirectory.isChecked(), 25); 2337d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRetailDirectory.isChecked(), 25); 2347d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonAdvertisements) { 2357d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2367d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonAdvertisements.isChecked(), 26); 2377d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonAdvertisements.isChecked(), 26); 2387d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonStockQuotes) { 2397d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2407d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonStockQuotes.isChecked(), 27); 2417d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonStockQuotes.isChecked(), 27); 2427d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonEo) { 2437d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonEo.isChecked(), 28); 2447d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonEo.isChecked(), 28); 2457d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonMhh) { 2467d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonMhh.isChecked(), 29); 2477d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonMhh.isChecked(), 29); 2487d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonTechnologyNews) { 2497d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2507d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonTechnologyNews.isChecked(), 30); 2517d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonTechnologyNews.isChecked(), 30); 2527d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonMultiCategory) { 2537d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2547d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonMultiCategory.isChecked(), 31); 2557d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonMultiCategory.isChecked(), 31); 2567d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonLocal1) { 2577d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLocal1.isChecked(), 4); 2587d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLocal1.isChecked(), 4); 2597d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonRegional1) { 2607d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2617d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRegional1.isChecked(), 5); 2627d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRegional1.isChecked(), 5); 2637d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonNational1) { 2647d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2657d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonNational1.isChecked(), 6); 2667d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonNational1.isChecked(), 6); 2677d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonInternational1) { 2687d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2697d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonInternational1.isChecked(), 7); 2707d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonInternational1.isChecked(), 7); 2717d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonLocal2) { 2727d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLocal2.isChecked(), 8); 2737d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLocal2.isChecked(), 8); 2747d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonRegional2) { 2757d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2767d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRegional2.isChecked(), 9); 2777d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRegional2.isChecked(), 9); 2787d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonNational2) { 2797d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2807d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonNational2.isChecked(), 10); 2817d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonNational2.isChecked(), 10); 2827d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonInternational2) { 2837d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2847d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonInternational2.isChecked(), 11); 2857d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonInternational2.isChecked(), 11); 2867d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonLocal3) { 2877d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLocal3.isChecked(), 12); 2887d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLocal3.isChecked(), 12); 2897d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonRegional3) { 2907d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2917d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRegional3.isChecked(), 13); 2927d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRegional3.isChecked(), 13); 2937d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonNational3) { 2947d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2957d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonNational3.isChecked(), 14); 2967d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonNational3.isChecked(), 14); 2977d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonInternational3) { 2987d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 2997d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonInternational3.isChecked(), 15); 3007d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonInternational3.isChecked(), 15); 3017d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonLocal4) { 3027d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLocal4.isChecked(), 16); 3037d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLocal4.isChecked(), 16); 3047d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonRegional4) { 3057d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 3067d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRegional4.isChecked(), 17); 3077d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRegional4.isChecked(), 17); 3087d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonNational4) { 3097d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 3107d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonNational4.isChecked(), 18); 3117d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonNational4.isChecked(), 18); 3127d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else if (preference == mButtonInternational4) { 3137d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteBSelected( 3147d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonInternational4.isChecked(), 19); 3157d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonInternational4.isChecked(), 19); 3167d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else { 3177d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon preferenceScreen.setEnabled(false); 3187d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon return false; 3197d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 3207d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 3217d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon return true; 3227d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 3237d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 3247d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon public boolean onPreferenceChange(Preference preference, Object objValue) { 3257d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon if (preference == mListLanguage) { 3267d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // set the new language to the array which will be transmitted later 3277d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setConfigDataCompleteLanguage( 3287d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mListLanguage.findIndexOfValue((String) objValue) + 1); 3297d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 3307d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 3317d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // always let the preference setting proceed. 3327d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon return true; 3337d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 3347d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 3357d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon public void onCreate(Bundle icicle) { 3367d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon super.onCreate(icicle); 3377d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 3387d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon addPreferencesFromResource(R.xml.cell_broadcast_sms); 3397d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 3407d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mPhone = PhoneGlobals.getPhone(); 3417d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mHandler = new MyHandler(); 3427d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 3437d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon PreferenceScreen prefSet = getPreferenceScreen(); 3447d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 3457d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonBcSms = (CheckBoxPreference) prefSet.findPreference( 3467d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_ENABLE_DISABLE_BC_SMS_KEY); 3477d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mListLanguage = (ListPreference) prefSet.findPreference( 3487d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon LIST_LANGUAGE_KEY); 3497d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // set the listener for the language list preference 3507d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mListLanguage.setOnPreferenceChangeListener(this); 3517d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonEmergencyBroadcast = (CheckBoxPreference) prefSet.findPreference( 3527d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_EMERGENCY_BROADCAST_KEY); 3537d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonAdministrative = (CheckBoxPreference) prefSet.findPreference( 3547d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_ADMINISTRATIVE_KEY); 3557d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonMaintenance = (CheckBoxPreference) prefSet.findPreference( 3567d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_MAINTENANCE_KEY); 3577d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLocalWeather = (CheckBoxPreference) prefSet.findPreference( 3587d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_LOCAL_WEATHER_KEY); 3597d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonAtr = (CheckBoxPreference) prefSet.findPreference( 3607d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_ATR_KEY); 3617d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLafs = (CheckBoxPreference) prefSet.findPreference( 3627d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_LAFS_KEY); 3637d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRestaurants = (CheckBoxPreference) prefSet.findPreference( 3647d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_RESTAURANTS_KEY); 3657d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLodgings = (CheckBoxPreference) prefSet.findPreference( 3667d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_LODGINGS_KEY); 3677d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRetailDirectory = (CheckBoxPreference) prefSet.findPreference( 3687d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_RETAIL_DIRECTORY_KEY); 3697d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonAdvertisements = (CheckBoxPreference) prefSet.findPreference( 3707d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_ADVERTISEMENTS_KEY); 3717d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonStockQuotes = (CheckBoxPreference) prefSet.findPreference( 3727d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_STOCK_QUOTES_KEY); 3737d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonEo = (CheckBoxPreference) prefSet.findPreference( 3747d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_EO_KEY); 3757d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonMhh = (CheckBoxPreference) prefSet.findPreference( 3767d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_MHH_KEY); 3777d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonTechnologyNews = (CheckBoxPreference) prefSet.findPreference( 3787d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_TECHNOLOGY_NEWS_KEY); 3797d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonMultiCategory = (CheckBoxPreference) prefSet.findPreference( 3807d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_MULTI_CATEGORY_KEY); 3817d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 3827d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLocal1 = (CheckBoxPreference) prefSet.findPreference( 3837d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_LOCAL_GENERAL_NEWS_KEY); 3847d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRegional1 = (CheckBoxPreference) prefSet.findPreference( 3857d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_REGIONAL_GENERAL_NEWS_KEY); 3867d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonNational1 = (CheckBoxPreference) prefSet.findPreference( 3877d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_NATIONAL_GENERAL_NEWS_KEY); 3887d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonInternational1 = (CheckBoxPreference) prefSet.findPreference( 3897d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_INTERNATIONAL_GENERAL_NEWS_KEY); 3907d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 3917d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLocal2 = (CheckBoxPreference) prefSet.findPreference( 3927d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_LOCAL_BF_NEWS_KEY); 3937d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRegional2 = (CheckBoxPreference) prefSet.findPreference( 3947d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_REGIONAL_BF_NEWS_KEY); 3957d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonNational2 = (CheckBoxPreference) prefSet.findPreference( 3967d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_NATIONAL_BF_NEWS_KEY); 3977d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonInternational2 = (CheckBoxPreference) prefSet.findPreference( 3987d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_INTERNATIONAL_BF_NEWS_KEY); 3997d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 4007d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLocal3 = (CheckBoxPreference) prefSet.findPreference( 4017d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_LOCAL_SPORTS_NEWS_KEY); 4027d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRegional3 = (CheckBoxPreference) prefSet.findPreference( 4037d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_REGIONAL_SPORTS_NEWS_KEY); 4047d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonNational3 = (CheckBoxPreference) prefSet.findPreference( 4057d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_NATIONAL_SPORTS_NEWS_KEY); 4067d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonInternational3 = (CheckBoxPreference) prefSet.findPreference( 4077d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_INTERNATIONAL_SPORTS_NEWS_KEY); 4087d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 4097d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLocal4 = (CheckBoxPreference) prefSet.findPreference( 4107d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_LOCAL_ENTERTAINMENT_NEWS_KEY); 4117d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRegional4 = (CheckBoxPreference) prefSet.findPreference( 4127d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_REGIONAL_ENTERTAINMENT_NEWS_KEY); 4137d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonNational4 = (CheckBoxPreference) prefSet.findPreference( 4147d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_NATIONAL_ENTERTAINMENT_NEWS_KEY); 4157d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonInternational4 = (CheckBoxPreference) prefSet.findPreference( 4167d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon BUTTON_INTERNATIONAL_ENTERTAINMENT_NEWS_KEY); 4177d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 4187d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 4197d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon @Override 4207d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon protected void onResume() { 4217d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon super.onResume(); 4227d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 4237d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon getPreferenceScreen().setEnabled(true); 4247d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 4257d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon int settingCbSms = android.provider.Settings.Global.getInt( 4267d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mPhone.getContext().getContentResolver(), 4277d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon android.provider.Settings.Global.CDMA_CELL_BROADCAST_SMS, 4287d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon RILConstants.CDMA_CELL_BROADCAST_SMS_DISABLED); 4297d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonBcSms.setChecked(settingCbSms == RILConstants.CDMA_CELL_BROADCAST_SMS_ENABLED); 4307d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 4317d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon if(mButtonBcSms.isChecked()) { 4327d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon enableDisableAllCbConfigButtons(true); 4337d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else { 4347d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon enableDisableAllCbConfigButtons(false); 4357d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 4367d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 4377d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mPhone.getCellBroadcastSmsConfig(Message.obtain(mHandler, MESSAGE_GET_CB_SMS_CONFIG)); 4387d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 4397d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 4407d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon @Override 4417d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon protected void onPause() { 4427d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon super.onPause(); 4437d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 4447d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsNoOfStructs(NO_OF_SERVICE_CATEGORIES); 4457d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 4467d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mPhone.setCellBroadcastSmsConfig(CellBroadcastSmsConfig.getCbSmsAllValues(), 4477d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon Message.obtain(mHandler, MESSAGE_SET_CB_SMS_CONFIG)); 4487d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 4497d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 4507d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private void enableDisableAllCbConfigButtons(boolean enable) { 4517d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonEmergencyBroadcast.setEnabled(enable); 4527d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mListLanguage.setEnabled(enable); 4537d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonAdministrative.setEnabled(enable); 4547d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonMaintenance.setEnabled(enable); 4557d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLocalWeather.setEnabled(enable); 4567d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonAtr.setEnabled(enable); 4577d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLafs.setEnabled(enable); 4587d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRestaurants.setEnabled(enable); 4597d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLodgings.setEnabled(enable); 4607d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRetailDirectory.setEnabled(enable); 4617d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonAdvertisements.setEnabled(enable); 4627d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonStockQuotes.setEnabled(enable); 4637d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonEo.setEnabled(enable); 4647d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonMhh.setEnabled(enable); 4657d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonTechnologyNews.setEnabled(enable); 4667d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonMultiCategory.setEnabled(enable); 4677d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 4687d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLocal1.setEnabled(enable); 4697d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRegional1.setEnabled(enable); 4707d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonNational1.setEnabled(enable); 4717d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonInternational1.setEnabled(enable); 4727d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 4737d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLocal2.setEnabled(enable); 4747d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRegional2.setEnabled(enable); 4757d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonNational2.setEnabled(enable); 4767d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonInternational2.setEnabled(enable); 4777d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 4787d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLocal3.setEnabled(enable); 4797d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRegional3.setEnabled(enable); 4807d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonNational3.setEnabled(enable); 4817d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonInternational3.setEnabled(enable); 4827d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 4837d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLocal4.setEnabled(enable); 4847d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRegional4.setEnabled(enable); 4857d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonNational4.setEnabled(enable); 4867d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonInternational4.setEnabled(enable); 4877d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 4887d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 4897d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private void setAllCbConfigButtons(int[] configArray) { 4907d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //These buttons are in a well defined sequence. If you want to change it, 4917d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //be sure to map the buttons to their corresponding slot in the configArray ! 4927d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonEmergencyBroadcast.setChecked(configArray[1] != 0); 4937d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //subtract 1, because the values are handled in an array which starts with 0 and not with 1 4947d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mListLanguage.setValueIndex(CellBroadcastSmsConfig.getConfigDataLanguage() - 1); 4957d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonAdministrative.setChecked(configArray[2] != 0); 4967d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonMaintenance.setChecked(configArray[3] != 0); 4977d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLocalWeather.setChecked(configArray[20] != 0); 4987d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonAtr.setChecked(configArray[21] != 0); 4997d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLafs.setChecked(configArray[22] != 0); 5007d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRestaurants.setChecked(configArray[23] != 0); 5017d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLodgings.setChecked(configArray[24] != 0); 5027d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRetailDirectory.setChecked(configArray[25] != 0); 5037d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonAdvertisements.setChecked(configArray[26] != 0); 5047d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonStockQuotes.setChecked(configArray[27] != 0); 5057d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonEo.setChecked(configArray[28] != 0); 5067d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonMhh.setChecked(configArray[29] != 0); 5077d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonTechnologyNews.setChecked(configArray[30] != 0); 5087d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonMultiCategory.setChecked(configArray[31] != 0); 5097d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 5107d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLocal1.setChecked(configArray[4] != 0); 5117d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRegional1.setChecked(configArray[5] != 0); 5127d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonNational1.setChecked(configArray[6] != 0); 5137d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonInternational1.setChecked(configArray[7] != 0); 5147d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 5157d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLocal2.setChecked(configArray[8] != 0); 5167d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRegional2.setChecked(configArray[9] != 0); 5177d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonNational2.setChecked(configArray[10] != 0); 5187d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonInternational2.setChecked(configArray[11] != 0); 5197d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 5207d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLocal3.setChecked(configArray[12] != 0); 5217d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRegional3.setChecked(configArray[13] != 0); 5227d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonNational3.setChecked(configArray[14] != 0); 5237d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonInternational3.setChecked(configArray[15] != 0); 5247d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 5257d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonLocal4.setChecked(configArray[16] != 0); 5267d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonRegional4.setChecked(configArray[17] != 0); 5277d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonNational4.setChecked(configArray[18] != 0); 5287d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonInternational4.setChecked(configArray[19] != 0); 5297d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 5307d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 5317d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private class MyHandler extends Handler { 5327d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 5337d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon @Override 5347d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon public void handleMessage(Message msg) { 5357d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon switch (msg.what) { 5367d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon case MESSAGE_ACTIVATE_CB_SMS: 5377d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //Only a log message here, because the received response is always null 5387d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon if (DBG) Log.d(LOG_TAG, "Cell Broadcast SMS enabled/disabled."); 5397d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon break; 5407d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon case MESSAGE_GET_CB_SMS_CONFIG: 5417d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon int result[] = (int[])((AsyncResult)msg.obj).result; 5427d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 5437d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // check if the actual service categoties table size on the NV is '0' 5447d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon if (result[0] == 0) { 5457d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon result[0] = NO_OF_SERVICE_CATEGORIES; 5467d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 5477d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mButtonBcSms.setChecked(false); 5487d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mPhone.activateCellBroadcastSms(RILConstants.CDMA_CELL_BROADCAST_SMS_DISABLED, 5497d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon Message.obtain(mHandler, MESSAGE_ACTIVATE_CB_SMS)); 5507d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon android.provider.Settings.Global.putInt(mPhone.getContext().getContentResolver(), 5517d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon android.provider.Settings.Global.CDMA_CELL_BROADCAST_SMS, 5527d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon RILConstants.CDMA_CELL_BROADCAST_SMS_DISABLED); 5537d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon enableDisableAllCbConfigButtons(false); 5547d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 5557d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 5567d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon CellBroadcastSmsConfig.setCbSmsConfig(result); 5577d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon setAllCbConfigButtons(CellBroadcastSmsConfig.getCbSmsBselectedValues()); 5587d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 5597d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon break; 5607d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon case MESSAGE_SET_CB_SMS_CONFIG: 5617d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //Only a log message here, because the received response is always null 5627d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon if (DBG) Log.d(LOG_TAG, "Set Cell Broadcast SMS values."); 5637d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon break; 5647d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon default: 5657d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon Log.e(LOG_TAG, "Error! Unhandled message in CellBroadcastSms.java. Message: " 5667d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon + msg.what); 5677d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon break; 5687d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 5697d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 5707d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 5717d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 5727d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static final class CellBroadcastSmsConfig { 5737d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 5747d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //The values in this array are stored in a particular order. This order 5757d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //is calculated in the setCbSmsConfig method of this class. 5767d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //For more information see comments below... 5777d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //NO_OF_SERVICE_CATEGORIES +1 is used, because we will leave the first array entry 0 5787d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static int mBSelected[] = new int[NO_OF_SERVICE_CATEGORIES + 1]; 5797d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static int mConfigDataComplete[] = new int[MAX_LENGTH_RESULT]; 5807d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 5817d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static void setCbSmsConfig(int[] configData) { 5827d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon if(configData == null) { 5837d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon Log.e(LOG_TAG, "Error! No cell broadcast service categories returned."); 5847d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon return; 5857d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 5867d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 5877d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon if(configData[0] > MAX_LENGTH_RESULT) { 5887d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon Log.e(LOG_TAG, "Error! Wrong number of service categories returned from RIL"); 5897d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon return; 5907d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 5917d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 5927d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //The required config values for broadcast SMS are stored in a C struct: 5937d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // 5947d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // typedef struct { 5957d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // int size; 5967d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // RIL_CDMA_BcServiceInfo *entries; 5977d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // } RIL_CDMA_BcSMSConfig; 5987d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // 5997d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // typedef struct { 6007d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // int uServiceCategory; 6017d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // int uLanguage; 6027d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // unsigned char bSelected; 6037d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // } RIL_CDMA_BcServiceInfo; 6047d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // 6057d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // This means, that we have to ignore the first value and check every 6067d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // 3rd value starting with the 2nd of all. This value indicates, where we 6077d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // will store the appropriate bSelected value, which is 2 values behind it. 6087d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon for(int i = 1; i < configData.length; i += NO_OF_INTS_STRUCT_1) { 6097d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mBSelected[configData[i]] = configData[i +2]; 6107d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 6117d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 6127d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //Store all values in an extra array 6137d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mConfigDataComplete = configData; 6147d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 6157d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 6167d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static void setCbSmsBSelectedValue(boolean value, int pos) { 6177d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon if(pos < mBSelected.length) { 6187d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mBSelected[pos] = (value == true ? 1 : 0); 6197d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } else { 6207d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon Log.e(LOG_TAG,"Error! Invalid value position."); 6217d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 6227d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 6237d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 6247d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static int[] getCbSmsBselectedValues() { 6257d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon return(mBSelected); 6267d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 6277d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 6287d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon // TODO: Change the return value to a RIL_BroadcastSMSConfig 6297d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static int[] getCbSmsAllValues() { 6307d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon return(mConfigDataComplete); 6317d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 6327d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 6337d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static void setCbSmsNoOfStructs(int value) { 6347d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //Sets the size parameter, which contains the number of structs 6357d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //that will be transmitted 6367d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mConfigDataComplete[0] = value; 6377d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 6387d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 6397d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static void setConfigDataCompleteBSelected(boolean value, int serviceCategory) { 6407d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //Sets the bSelected value for a specific serviceCategory 6417d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon for(int i = 1; i < mConfigDataComplete.length; i += NO_OF_INTS_STRUCT_1) { 6427d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon if(mConfigDataComplete[i] == serviceCategory) { 6437d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mConfigDataComplete[i + 2] = value == true ? 1 : 0; 6447d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon break; 6457d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 6467d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 6477d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 6487d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 6497d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static void setConfigDataCompleteLanguage(int language) { 6507d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //It is only possible to set the same language for all entries 6517d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon for(int i = 2; i < mConfigDataComplete.length; i += NO_OF_INTS_STRUCT_1) { 6527d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon mConfigDataComplete[i] = language; 6537d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 6547d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 6557d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon 6567d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon private static int getConfigDataLanguage() { 6577d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon int language = mConfigDataComplete[2]; 6587d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //2 is the language value of the first entry 6597d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon //It is only possible to set the same language for all entries 6607d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon if (language < 1 || language > 7) { 6617d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon Log.e(LOG_TAG, "Error! Wrong language returned from RIL...defaulting to 1, english"); 6627d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon return 1; 6637d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 6647d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon else { 6657d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon return language; 6667d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 6677d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 6687d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon } 6697d4ddf6dc0d7c8158bac3a5dec7936e837e95bddSantos Cordon} 670