Loading res/xml/sim_settings.xml +8 −4 Original line number Diff line number Diff line Loading @@ -20,6 +20,14 @@ android:key="sim_enablers" android:title="@string/sim_enabler_title"/> <PreferenceCategory android:key="sim_data_category" android:title="@string/data_size_label"> <SwitchPreference android:key="sim_data" android:title="@string/toggleData" /> </PreferenceCategory> <PreferenceCategory android:key="sim_activities" android:title="@string/sim_pref_divider"> Loading @@ -31,10 +39,6 @@ <intent android:action="codeaurora.intent.action.ACTION_LTE_CONFIGURE" /> </Preference> <com.android.settings.notification.DropDownPreference android:key="sim_cellular_data" android:title="@string/cellular_data_title" /> <com.android.settings.notification.DropDownPreference android:key="sim_calls" android:title="@string/calls_title" /> Loading src/com/android/settings/DataUsageSummary.java +1 −12 Original line number Diff line number Diff line Loading @@ -772,13 +772,8 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable TelephonyManager.MultiSimVariants.DSDS || TelephonyManager.getDefault().getMultiSimConfiguration() == TelephonyManager.MultiSimVariants.TSTS) { // only one of the SIMs can have Data enabled, so... if (SubscriptionManager.getDefaultDataPhoneId() == i) { mDataEnabledView.setVisibility(View.VISIBLE); } else { mDataEnabledView.setVisibility(View.GONE); } } setPreferenceTitle(mDataEnabledView, R.string.data_usage_enable_mobile); setPreferenceTitle(mDisableAtLimitView, Loading Loading @@ -1035,13 +1030,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable boolean dataEnabledVisible = mDataEnabledSupported; boolean disableAtLimitVisible = mDisableAtLimitSupported; if (dataEnabledVisible && (TelephonyManager.getDefault().getMultiSimConfiguration() == TelephonyManager.MultiSimVariants.DSDS || TelephonyManager.getDefault().getMultiSimConfiguration() == TelephonyManager.MultiSimVariants.TSTS) && (!mTabHost.getCurrentTabTag().equals(getSubTag(SubscriptionManager.getDefaultDataPhoneId()+1))) ) { if (dataEnabledVisible && TelephonyManager.getDefault().isMultiSimEnabled()) { dataEnabledVisible = false; } Loading src/com/android/settings/sim/SimSettings.java +95 −4 Original line number Diff line number Diff line Loading @@ -27,8 +27,12 @@ import android.os.SystemProperties; import android.preference.Preference; import android.preference.PreferenceCategory; import android.preference.PreferenceScreen; import android.preference.SwitchPreference; import android.provider.SearchIndexableResource; import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; import android.telephony.SubInfoRecord; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; Loading Loading @@ -61,6 +65,8 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable private static final String KEY_SMS = "sim_sms"; private static final String KEY_ACTIVITIES = "activities"; private static final String KEY_PRIMARY_SUB_SELECT = "select_primary_sub"; private static final String SIM_DATA_CATEGORY = "sim_data_category"; private static final String SIM_DATA_KEY = "sim_data"; private static final int EVT_UPDATE = 1; private static int mNumSlots = 0; Loading @@ -81,6 +87,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable private SubInfoRecord mSMS = null; private int mNumSims; private TelephonyManager mTelephonyManager; public SimSettings() { super(DISALLOW_CONFIG_SIM); Loading @@ -90,14 +97,14 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable public void onCreate(final Bundle bundle) { super.onCreate(bundle); Log.d(TAG,"on onCreate"); final TelephonyManager tm = (TelephonyManager) getActivity().getSystemService(Context.TELEPHONY_SERVICE); mTelephonyManager = (TelephonyManager) getActivity() .getSystemService(Context.TELEPHONY_SERVICE); if (mSubInfoList == null) { mSubInfoList = SubscriptionManager.getActiveSubInfoList(); } mNumSlots = tm.getSimCount(); mNumSlots = mTelephonyManager.getSimCount(); createPreferences(); updateAllOptions(); Loading Loading @@ -137,12 +144,90 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable // Refresh UI whenever subinfo record gets changed updateAllOptions(); } SwitchPreference dataToggle = (SwitchPreference) findPreference(SIM_DATA_KEY); if (dataToggle != null) { dataToggle.setChecked(isMobileDataEnabled(-1)); } } }; private void updateDSDAPreferences() { PreferenceCategory category = (PreferenceCategory) findPreference(SIM_DATA_CATEGORY); // Remove global data toggle category.removeAll(); // More than one active data sim for (int i = 0; i < mNumSlots; ++i) { final SubInfoRecord sir = findRecordBySlotId(i); if (sir != null && sir.mStatus == SubscriptionManager.ACTIVE) { final SwitchPreference preference = new SwitchPreference(getActivity()); preference.setChecked(isMobileDataEnabled(sir.slotId)); preference.setTitle(R.string.cellular_data_title); preference.setSummary(sir.displayName + " - " + Integer.toString(i + 1) + " " + sir.number); preference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference2) { int value = !preference.isChecked() ? 0 : 1; Settings.Global.putInt(getActivity().getContentResolver(), android.provider.Settings.Global.MOBILE_DATA + sir.slotId, value); return true; } }); category.addPreference(preference); } } } private void addDataPreferences() { if (isDSDA()) { updateDSDAPreferences(); } else { PreferenceCategory category = (PreferenceCategory) findPreference(SIM_DATA_CATEGORY); // Only one active data sim DropDownPreference preference = new DropDownPreference(getActivity()); preference.setKey(KEY_CELLULAR_DATA); preference.setTitle(R.string.cellular_data_title); category.addPreference(preference); SwitchPreference dataToggle = (SwitchPreference) findPreference(SIM_DATA_KEY); dataToggle.setDependency(KEY_CELLULAR_DATA); dataToggle.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { final boolean dataEnabled = (Boolean) newValue; mTelephonyManager.setDataEnabled(dataEnabled); return true; } }); } } private boolean isMobileDataEnabled(int id) { if (isDSDA()) { try { return TelephonyManager.getIntAtIndex(getActivity().getContentResolver(), Settings.Global.MOBILE_DATA, id) != 0; } catch (SettingNotFoundException e) { return false; } } else { return mTelephonyManager.getDataEnabled(); } } private boolean isDSDA() { TelephonyManager.MultiSimVariants configuration = TelephonyManager.getDefault() .getMultiSimConfiguration(); return configuration == TelephonyManager.MultiSimVariants.DSDA; } private void createPreferences() { addPreferencesFromResource(R.xml.sim_settings); addDataPreferences(); mPrimarySubSelect = (Preference) findPreference(KEY_PRIMARY_SUB_SELECT); final PreferenceCategory simEnablers = (PreferenceCategory)findPreference(SIM_ENABLER_CATEGORY); Loading Loading @@ -174,7 +259,9 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable } private void updateActivitesCategory() { if (!isDSDA()) { createDropDown((DropDownPreference) findPreference(KEY_CELLULAR_DATA)); } createDropDown((DropDownPreference) findPreference(KEY_CALLS)); createDropDown((DropDownPreference) findPreference(KEY_SMS)); updateCellularDataValues(); Loading Loading @@ -230,6 +317,10 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable } private void updateCellularDataValues() { if (isDSDA()) { updateDSDAPreferences(); return; } final DropDownPreference simPref = (DropDownPreference) findPreference(KEY_CELLULAR_DATA); final SubInfoRecord sir = findRecordBySubId(SubscriptionManager.getDefaultDataSubId()); if (sir != null) { Loading Loading
res/xml/sim_settings.xml +8 −4 Original line number Diff line number Diff line Loading @@ -20,6 +20,14 @@ android:key="sim_enablers" android:title="@string/sim_enabler_title"/> <PreferenceCategory android:key="sim_data_category" android:title="@string/data_size_label"> <SwitchPreference android:key="sim_data" android:title="@string/toggleData" /> </PreferenceCategory> <PreferenceCategory android:key="sim_activities" android:title="@string/sim_pref_divider"> Loading @@ -31,10 +39,6 @@ <intent android:action="codeaurora.intent.action.ACTION_LTE_CONFIGURE" /> </Preference> <com.android.settings.notification.DropDownPreference android:key="sim_cellular_data" android:title="@string/cellular_data_title" /> <com.android.settings.notification.DropDownPreference android:key="sim_calls" android:title="@string/calls_title" /> Loading
src/com/android/settings/DataUsageSummary.java +1 −12 Original line number Diff line number Diff line Loading @@ -772,13 +772,8 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable TelephonyManager.MultiSimVariants.DSDS || TelephonyManager.getDefault().getMultiSimConfiguration() == TelephonyManager.MultiSimVariants.TSTS) { // only one of the SIMs can have Data enabled, so... if (SubscriptionManager.getDefaultDataPhoneId() == i) { mDataEnabledView.setVisibility(View.VISIBLE); } else { mDataEnabledView.setVisibility(View.GONE); } } setPreferenceTitle(mDataEnabledView, R.string.data_usage_enable_mobile); setPreferenceTitle(mDisableAtLimitView, Loading Loading @@ -1035,13 +1030,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable boolean dataEnabledVisible = mDataEnabledSupported; boolean disableAtLimitVisible = mDisableAtLimitSupported; if (dataEnabledVisible && (TelephonyManager.getDefault().getMultiSimConfiguration() == TelephonyManager.MultiSimVariants.DSDS || TelephonyManager.getDefault().getMultiSimConfiguration() == TelephonyManager.MultiSimVariants.TSTS) && (!mTabHost.getCurrentTabTag().equals(getSubTag(SubscriptionManager.getDefaultDataPhoneId()+1))) ) { if (dataEnabledVisible && TelephonyManager.getDefault().isMultiSimEnabled()) { dataEnabledVisible = false; } Loading
src/com/android/settings/sim/SimSettings.java +95 −4 Original line number Diff line number Diff line Loading @@ -27,8 +27,12 @@ import android.os.SystemProperties; import android.preference.Preference; import android.preference.PreferenceCategory; import android.preference.PreferenceScreen; import android.preference.SwitchPreference; import android.provider.SearchIndexableResource; import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; import android.telephony.SubInfoRecord; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; Loading Loading @@ -61,6 +65,8 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable private static final String KEY_SMS = "sim_sms"; private static final String KEY_ACTIVITIES = "activities"; private static final String KEY_PRIMARY_SUB_SELECT = "select_primary_sub"; private static final String SIM_DATA_CATEGORY = "sim_data_category"; private static final String SIM_DATA_KEY = "sim_data"; private static final int EVT_UPDATE = 1; private static int mNumSlots = 0; Loading @@ -81,6 +87,7 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable private SubInfoRecord mSMS = null; private int mNumSims; private TelephonyManager mTelephonyManager; public SimSettings() { super(DISALLOW_CONFIG_SIM); Loading @@ -90,14 +97,14 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable public void onCreate(final Bundle bundle) { super.onCreate(bundle); Log.d(TAG,"on onCreate"); final TelephonyManager tm = (TelephonyManager) getActivity().getSystemService(Context.TELEPHONY_SERVICE); mTelephonyManager = (TelephonyManager) getActivity() .getSystemService(Context.TELEPHONY_SERVICE); if (mSubInfoList == null) { mSubInfoList = SubscriptionManager.getActiveSubInfoList(); } mNumSlots = tm.getSimCount(); mNumSlots = mTelephonyManager.getSimCount(); createPreferences(); updateAllOptions(); Loading Loading @@ -137,12 +144,90 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable // Refresh UI whenever subinfo record gets changed updateAllOptions(); } SwitchPreference dataToggle = (SwitchPreference) findPreference(SIM_DATA_KEY); if (dataToggle != null) { dataToggle.setChecked(isMobileDataEnabled(-1)); } } }; private void updateDSDAPreferences() { PreferenceCategory category = (PreferenceCategory) findPreference(SIM_DATA_CATEGORY); // Remove global data toggle category.removeAll(); // More than one active data sim for (int i = 0; i < mNumSlots; ++i) { final SubInfoRecord sir = findRecordBySlotId(i); if (sir != null && sir.mStatus == SubscriptionManager.ACTIVE) { final SwitchPreference preference = new SwitchPreference(getActivity()); preference.setChecked(isMobileDataEnabled(sir.slotId)); preference.setTitle(R.string.cellular_data_title); preference.setSummary(sir.displayName + " - " + Integer.toString(i + 1) + " " + sir.number); preference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference2) { int value = !preference.isChecked() ? 0 : 1; Settings.Global.putInt(getActivity().getContentResolver(), android.provider.Settings.Global.MOBILE_DATA + sir.slotId, value); return true; } }); category.addPreference(preference); } } } private void addDataPreferences() { if (isDSDA()) { updateDSDAPreferences(); } else { PreferenceCategory category = (PreferenceCategory) findPreference(SIM_DATA_CATEGORY); // Only one active data sim DropDownPreference preference = new DropDownPreference(getActivity()); preference.setKey(KEY_CELLULAR_DATA); preference.setTitle(R.string.cellular_data_title); category.addPreference(preference); SwitchPreference dataToggle = (SwitchPreference) findPreference(SIM_DATA_KEY); dataToggle.setDependency(KEY_CELLULAR_DATA); dataToggle.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { final boolean dataEnabled = (Boolean) newValue; mTelephonyManager.setDataEnabled(dataEnabled); return true; } }); } } private boolean isMobileDataEnabled(int id) { if (isDSDA()) { try { return TelephonyManager.getIntAtIndex(getActivity().getContentResolver(), Settings.Global.MOBILE_DATA, id) != 0; } catch (SettingNotFoundException e) { return false; } } else { return mTelephonyManager.getDataEnabled(); } } private boolean isDSDA() { TelephonyManager.MultiSimVariants configuration = TelephonyManager.getDefault() .getMultiSimConfiguration(); return configuration == TelephonyManager.MultiSimVariants.DSDA; } private void createPreferences() { addPreferencesFromResource(R.xml.sim_settings); addDataPreferences(); mPrimarySubSelect = (Preference) findPreference(KEY_PRIMARY_SUB_SELECT); final PreferenceCategory simEnablers = (PreferenceCategory)findPreference(SIM_ENABLER_CATEGORY); Loading Loading @@ -174,7 +259,9 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable } private void updateActivitesCategory() { if (!isDSDA()) { createDropDown((DropDownPreference) findPreference(KEY_CELLULAR_DATA)); } createDropDown((DropDownPreference) findPreference(KEY_CALLS)); createDropDown((DropDownPreference) findPreference(KEY_SMS)); updateCellularDataValues(); Loading Loading @@ -230,6 +317,10 @@ public class SimSettings extends RestrictedSettingsFragment implements Indexable } private void updateCellularDataValues() { if (isDSDA()) { updateDSDAPreferences(); return; } final DropDownPreference simPref = (DropDownPreference) findPreference(KEY_CELLULAR_DATA); final SubInfoRecord sir = findRecordBySubId(SubscriptionManager.getDefaultDataSubId()); if (sir != null) { Loading