@Override protected void onPause() { super.onPause(); CellBroadcastSmsConfig.setCbSmsNoOfStructs(NO_OF_SERVICE_CATEGORIES); mPhone.setCellBroadcastSmsConfig( CellBroadcastSmsConfig.getCbSmsAllValues(), Message.obtain(mHandler, MESSAGE_SET_CB_SMS_CONFIG)); }
public boolean onPreferenceChange(Preference preference, Object objValue) { if (preference == mListLanguage) { // set the new language to the array which will be transmitted later CellBroadcastSmsConfig.setConfigDataCompleteLanguage( mListLanguage.findIndexOfValue((String) objValue) + 1); } // always let the preference setting proceed. return true; }
@Override public void handleMessage(Message msg) { switch (msg.what) { case MESSAGE_ACTIVATE_CB_SMS: // Only a log message here, because the received response is always null if (DBG) Log.d(LOG_TAG, "Cell Broadcast SMS enabled/disabled."); break; case MESSAGE_GET_CB_SMS_CONFIG: int result[] = (int[]) ((AsyncResult) msg.obj).result; // check if the actual service categoties table size on the NV is '0' if (result[0] == 0) { result[0] = NO_OF_SERVICE_CATEGORIES; mButtonBcSms.setChecked(false); mPhone.activateCellBroadcastSms( RILConstants.CDMA_CELL_BROADCAST_SMS_DISABLED, Message.obtain(mHandler, MESSAGE_ACTIVATE_CB_SMS)); android.provider.Settings.Secure.putInt( mPhone.getContext().getContentResolver(), android.provider.Settings.Secure.CDMA_CELL_BROADCAST_SMS, RILConstants.CDMA_CELL_BROADCAST_SMS_DISABLED); enableDisableAllCbConfigButtons(false); } CellBroadcastSmsConfig.setCbSmsConfig(result); setAllCbConfigButtons(CellBroadcastSmsConfig.getCbSmsBselectedValues()); break; case MESSAGE_SET_CB_SMS_CONFIG: // Only a log message here, because the received response is always null if (DBG) Log.d(LOG_TAG, "Set Cell Broadcast SMS values."); break; default: Log.e(LOG_TAG, "Error! Unhandled message in CellBroadcastSms.java. Message: " + msg.what); break; } }
private void setAllCbConfigButtons(int[] configArray) { // These buttons are in a well defined sequence. If you want to change it, // be sure to map the buttons to their corresponding slot in the configArray ! mButtonEmergencyBroadcast.setChecked(configArray[1] != 0); // subtract 1, because the values are handled in an array which starts with 0 and not with 1 mListLanguage.setValueIndex(CellBroadcastSmsConfig.getConfigDataLanguage() - 1); mButtonAdministrative.setChecked(configArray[2] != 0); mButtonMaintenance.setChecked(configArray[3] != 0); mButtonLocalWeather.setChecked(configArray[20] != 0); mButtonAtr.setChecked(configArray[21] != 0); mButtonLafs.setChecked(configArray[22] != 0); mButtonRestaurants.setChecked(configArray[23] != 0); mButtonLodgings.setChecked(configArray[24] != 0); mButtonRetailDirectory.setChecked(configArray[25] != 0); mButtonAdvertisements.setChecked(configArray[26] != 0); mButtonStockQuotes.setChecked(configArray[27] != 0); mButtonEo.setChecked(configArray[28] != 0); mButtonMhh.setChecked(configArray[29] != 0); mButtonTechnologyNews.setChecked(configArray[30] != 0); mButtonMultiCategory.setChecked(configArray[31] != 0); mButtonLocal1.setChecked(configArray[4] != 0); mButtonRegional1.setChecked(configArray[5] != 0); mButtonNational1.setChecked(configArray[6] != 0); mButtonInternational1.setChecked(configArray[7] != 0); mButtonLocal2.setChecked(configArray[8] != 0); mButtonRegional2.setChecked(configArray[9] != 0); mButtonNational2.setChecked(configArray[10] != 0); mButtonInternational2.setChecked(configArray[11] != 0); mButtonLocal3.setChecked(configArray[12] != 0); mButtonRegional3.setChecked(configArray[13] != 0); mButtonNational3.setChecked(configArray[14] != 0); mButtonInternational3.setChecked(configArray[15] != 0); mButtonLocal4.setChecked(configArray[16] != 0); mButtonRegional4.setChecked(configArray[17] != 0); mButtonNational4.setChecked(configArray[18] != 0); mButtonInternational4.setChecked(configArray[19] != 0); }
/** * Invoked on each preference click in this hierarchy, overrides PreferenceActivity's * implementation. Used to make sure we track the preference click events. */ @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { if (preference == mButtonBcSms) { if (DBG) Log.d(LOG_TAG, "onPreferenceTreeClick: preference == mButtonBcSms."); if (mButtonBcSms.isChecked()) { mPhone.activateCellBroadcastSms( RILConstants.CDMA_CELL_BROADCAST_SMS_ENABLED, Message.obtain(mHandler, MESSAGE_ACTIVATE_CB_SMS)); android.provider.Settings.Secure.putInt( mPhone.getContext().getContentResolver(), android.provider.Settings.Secure.CDMA_CELL_BROADCAST_SMS, RILConstants.CDMA_CELL_BROADCAST_SMS_ENABLED); enableDisableAllCbConfigButtons(true); } else { mPhone.activateCellBroadcastSms( RILConstants.CDMA_CELL_BROADCAST_SMS_DISABLED, Message.obtain(mHandler, MESSAGE_ACTIVATE_CB_SMS)); android.provider.Settings.Secure.putInt( mPhone.getContext().getContentResolver(), android.provider.Settings.Secure.CDMA_CELL_BROADCAST_SMS, RILConstants.CDMA_CELL_BROADCAST_SMS_DISABLED); enableDisableAllCbConfigButtons(false); } } else if (preference == mListLanguage) { // Do nothing here, because this click will be handled in onPreferenceChange } else if (preference == mButtonEmergencyBroadcast) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected( mButtonEmergencyBroadcast.isChecked(), 1); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonEmergencyBroadcast.isChecked(), 1); } else if (preference == mButtonAdministrative) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonAdministrative.isChecked(), 2); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonAdministrative.isChecked(), 2); } else if (preference == mButtonMaintenance) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonMaintenance.isChecked(), 3); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonMaintenance.isChecked(), 3); } else if (preference == mButtonLocalWeather) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLocalWeather.isChecked(), 20); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLocalWeather.isChecked(), 20); } else if (preference == mButtonAtr) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonAtr.isChecked(), 21); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonAtr.isChecked(), 21); } else if (preference == mButtonLafs) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLafs.isChecked(), 22); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLafs.isChecked(), 22); } else if (preference == mButtonRestaurants) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonRestaurants.isChecked(), 23); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRestaurants.isChecked(), 23); } else if (preference == mButtonLodgings) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLodgings.isChecked(), 24); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLodgings.isChecked(), 24); } else if (preference == mButtonRetailDirectory) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonRetailDirectory.isChecked(), 25); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRetailDirectory.isChecked(), 25); } else if (preference == mButtonAdvertisements) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonAdvertisements.isChecked(), 26); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonAdvertisements.isChecked(), 26); } else if (preference == mButtonStockQuotes) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonStockQuotes.isChecked(), 27); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonStockQuotes.isChecked(), 27); } else if (preference == mButtonEo) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonEo.isChecked(), 28); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonEo.isChecked(), 28); } else if (preference == mButtonMhh) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonMhh.isChecked(), 29); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonMhh.isChecked(), 29); } else if (preference == mButtonTechnologyNews) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonTechnologyNews.isChecked(), 30); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonTechnologyNews.isChecked(), 30); } else if (preference == mButtonMultiCategory) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonMultiCategory.isChecked(), 31); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonMultiCategory.isChecked(), 31); } else if (preference == mButtonLocal1) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLocal1.isChecked(), 4); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLocal1.isChecked(), 4); } else if (preference == mButtonRegional1) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonRegional1.isChecked(), 5); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRegional1.isChecked(), 5); } else if (preference == mButtonNational1) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonNational1.isChecked(), 6); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonNational1.isChecked(), 6); } else if (preference == mButtonInternational1) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonInternational1.isChecked(), 7); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonInternational1.isChecked(), 7); } else if (preference == mButtonLocal2) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLocal2.isChecked(), 8); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLocal2.isChecked(), 8); } else if (preference == mButtonRegional2) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonRegional2.isChecked(), 9); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRegional2.isChecked(), 9); } else if (preference == mButtonNational2) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonNational2.isChecked(), 10); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonNational2.isChecked(), 10); } else if (preference == mButtonInternational2) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonInternational2.isChecked(), 11); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonInternational2.isChecked(), 11); } else if (preference == mButtonLocal3) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLocal3.isChecked(), 12); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLocal3.isChecked(), 12); } else if (preference == mButtonRegional3) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonRegional3.isChecked(), 13); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRegional3.isChecked(), 13); } else if (preference == mButtonNational3) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonNational3.isChecked(), 14); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonNational3.isChecked(), 14); } else if (preference == mButtonInternational3) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonInternational3.isChecked(), 15); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonInternational3.isChecked(), 15); } else if (preference == mButtonLocal4) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonLocal4.isChecked(), 16); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonLocal4.isChecked(), 16); } else if (preference == mButtonRegional4) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonRegional4.isChecked(), 17); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonRegional4.isChecked(), 17); } else if (preference == mButtonNational4) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonNational4.isChecked(), 18); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonNational4.isChecked(), 18); } else if (preference == mButtonInternational4) { CellBroadcastSmsConfig.setConfigDataCompleteBSelected(mButtonInternational4.isChecked(), 19); CellBroadcastSmsConfig.setCbSmsBSelectedValue(mButtonInternational4.isChecked(), 19); } else { preferenceScreen.setEnabled(false); return false; } return true; }