請在MultiSimPreferenceActivity.java 作如下的修改, 驗證之後請反饋結果。
共修改2 處。
修改1: 函數 isChecked()
private boolean isChecked(String preference,int sim_id){
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if (mIntentPreference.equals(SmsPreferenceActivity.SMS_DELIVERY_REPORT_MODE)) {
return prefs.getBoolean(Long.toString((mListSimInfo.get(sim_id)).getSimId()) + "_" + SmsPreferenceActivity.SMS_DELIVERY_REPORT_MODE , false);
} else if (mIntentPreference.equals(MmsPreferenceActivity.MMS_DELIVERY_REPORT_MODE)) {
return prefs.getBoolean(Long.toString((mListSimInfo.get(sim_id)).getSimId()) + "_" + MmsPreferenceActivity.MMS_DELIVERY_REPORT_MODE, false);
} else if (mIntentPreference.equals(MmsPreferenceActivity.AUTO_RETRIEVAL)) {
return prefs.getBoolean(Long.toString((mListSimInfo.get(sim_id)).getSimId()) + "_" + MmsPreferenceActivity.AUTO_RETRIEVAL, true);
} else if (mIntentPreference.equals(MmsPreferenceActivity.READ_REPORT_MODE)) {
if (FeatureOption.EVDO_DT_SUPPORT && isUSimType((int)(mListSimInfo.get(sim_id)).getSlot())) {
(mSimPreferencesList.get((mListSimInfo.get(sim_id)).getSlot())).setEnabled(false);
return false;
}
return prefs.getBoolean(Long.toString((mListSimInfo.get(sim_id)).getSimId()) + "_" + MmsPreferenceActivity.READ_REPORT_MODE, false);
} else if (mIntentPreference.equals(MmsPreferenceActivity.RETRIEVAL_DURING_ROAMING)) {
if(prefs.getBoolean(Long.toString((mListSimInfo.get(sim_id)).getSimId()) + "_" + MmsPreferenceActivity.AUTO_RETRIEVAL, true) == false){
(mSimPreferencesList.get((mListSimInfo.get(sim_id)).getSlot())).setEnabled(false);
}
return prefs.getBoolean(Long.toString((mListSimInfo.get(sim_id)).getSimId()) + "_" + MmsPreferenceActivity.RETRIEVAL_DURING_ROAMING, false);
} else if (mIntentPreference.equals(MmsPreferenceActivity.READ_REPORT_AUTO_REPLY)) {
if (FeatureOption.EVDO_DT_SUPPORT && isUSimType((int)(mListSimInfo.get(sim_id)).getSlot())) {
(mSimPreferencesList.get((mListSimInfo.get(sim_id)).getSlot())).setEnabled(false);
return false;
}
return prefs.getBoolean(Long.toString((mListSimInfo.get(sim_id)).getSimId()) + "_" + MmsPreferenceActivity.READ_REPORT_AUTO_REPLY, false);
** 增加開始**
} else if (mIntentPreference.equals(MmsPreferenceActivity.MMS_ENABLE_TO_SEND_DELIVERY_REPORT)) {
return prefs.getBoolean(Long.toString((mListSimInfo.get(sim_id)).getSimId()) + "_" + MmsPreferenceActivity.MMS_ENABLE_TO_SEND_DELIVERY_REPORT, false);
** 增加結束**
}
return true;
}
修改2 :函數 onPreferenceTreeClick()
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
int i = 0;
int currentSlotId = -1;
long currentSimId = -1;
currentSlotId = mSimPreferencesList.indexOf(preference);
for (SIMInfo simInfo: mListSimInfo) {
if (simInfo.getSlot() == currentSlotId) {
currentSimId = simInfo.getSimId();
break;
}
}
Log.d(TAG, "onPreferenceTreeClick[SlotId]" +currentSlotId);
Log.d(TAG, "onPreferenceTreeClick[SimId]"+currentSimId);
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(this).edit();
if (mIntentPreference.equals(SmsPreferenceActivity.SMS_DELIVERY_REPORT_MODE)) {
editor.putBoolean(Long.toString(currentSimId) + "_" + SmsPreferenceActivity.SMS_DELIVERY_REPORT_MODE,
((AdvancedCheckBoxPreference) preference).isChecked());
} else if (mIntentPreference.equals(MmsPreferenceActivity.MMS_DELIVERY_REPORT_MODE)) {
editor.putBoolean(Long.toString(currentSimId) + "_" + MmsPreferenceActivity.MMS_DELIVERY_REPORT_MODE,
((AdvancedCheckBoxPreference) preference).isChecked());
} else if (mIntentPreference.equals(MmsPreferenceActivity.AUTO_RETRIEVAL)) {
editor.putBoolean(Long.toString(currentSimId) + "_" + MmsPreferenceActivity.AUTO_RETRIEVAL,
((AdvancedCheckBoxPreference) preference).isChecked());
} else if (mIntentPreference.equals(MmsPreferenceActivity.READ_REPORT_MODE)) {
editor.putBoolean(Long.toString(currentSimId) + "_" + MmsPreferenceActivity.READ_REPORT_MODE,
((AdvancedCheckBoxPreference) preference).isChecked());
} else if (mIntentPreference.equals(MmsPreferenceActivity.RETRIEVAL_DURING_ROAMING)) {
editor.putBoolean(Long.toString(currentSimId) + "_" + MmsPreferenceActivity.RETRIEVAL_DURING_ROAMING,
((AdvancedCheckBoxPreference) preference).isChecked());
} else if (mIntentPreference.equals(MmsPreferenceActivity.READ_REPORT_AUTO_REPLY)) {
editor.putBoolean(Long.toString(currentSimId) + "_" + MmsPreferenceActivity.READ_REPORT_AUTO_REPLY,
((AdvancedCheckBoxPreference) preference).isChecked());
** 增加開始**
} else if (mIntentPreference.equals(MmsPreferenceActivity.MMS_ENABLE_TO_SEND_DELIVERY_REPORT)) {
editor.putBoolean(Long.toString(currentSimId) + "_" + MmsPreferenceActivity.MMS_ENABLE_TO_SEND_DELIVERY_REPORT,
((AdvancedCheckBoxPreference) preference).isChecked());
** 增加結束**
}
editor.apply();
return super.onPreferenceTreeClick(preferenceScreen, preference);
}