Loading src/java/com/android/internal/telephony/data/DataSettingsManager.java +41 −78 Original line number Diff line number Diff line Loading @@ -65,28 +65,18 @@ public class DataSettingsManager extends Handler { private static final int EVENT_SUBSCRIPTIONS_CHANGED = 4; /** Event for set data enabled for reason. */ private static final int EVENT_SET_DATA_ENABLED_FOR_REASON = 5; /** Event for set user data enabled. */ private static final int EVENT_SET_USER_DATA_ENABLED = 6; /** Event for set policy data enabled. */ private static final int EVENT_SET_POLICY_DATA_ENABLED = 7; /** Event for set carrier data enabled. */ private static final int EVENT_SET_CARRIER_DATA_ENABLED = 8; /** Event for set thermal data enabled. */ private static final int EVENT_SET_THERMAL_DATA_ENABLED = 9; /** Event for set data roaming enabled. */ private static final int EVENT_SET_DATA_ROAMING_ENABLED = 10; private static final int EVENT_SET_DATA_ROAMING_ENABLED = 6; /** Event for set always allow MMS data. */ private static final int EVENT_SET_ALWAYS_ALLOW_MMS_DATA = 11; private static final int EVENT_SET_ALWAYS_ALLOW_MMS_DATA = 7; /** Event for set allow data during voice call. */ private static final int EVENT_SET_ALLOW_DATA_DURING_VOICE_CALL = 12; /** Event for update data enabled. */ private static final int EVENT_UPDATE_DATA_ENABLED = 13; private static final int EVENT_SET_ALLOW_DATA_DURING_VOICE_CALL = 8; /** Event for device provisioned changed. */ private static final int EVENT_PROVISIONED_CHANGED = 14; private static final int EVENT_PROVISIONED_CHANGED = 9; /** Event for provisioning data enabled setting changed. */ private static final int EVENT_PROVISIONING_DATA_ENABLED_CHANGED = 15; private static final int EVENT_PROVISIONING_DATA_ENABLED_CHANGED = 10; /** Event for registering all events. */ private static final int EVENT_REGISTER_ALL_EVENTS = 16; private static final int EVENT_REGISTER_ALL_EVENTS = 11; private final Phone mPhone; private final ContentResolver mResolver; Loading Loading @@ -217,54 +207,6 @@ public class DataSettingsManager extends Handler { } break; } case EVENT_SET_USER_DATA_ENABLED: { boolean enabled = (boolean) msg.obj; // Can't disable data for stand alone opportunistic subscription. if (isStandAloneOpportunistic(mSubId, mPhone.getContext()) && !enabled) return; boolean changed = GlobalSettingsHelper.setInt(mPhone.getContext(), Settings.Global.MOBILE_DATA, mSubId, (enabled ? 1 : 0)); log("Set user data enabled to " + enabled + ", changed=" + changed); if (changed) { logl("UserDataEnabled changed to " + enabled); mPhone.notifyUserMobileDataStateChanged(enabled); updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_USER); // TODO: MultiSimSettingController should register the callback instead of let // DataSettingsManager directly feed information to it. // Also revisit if sub id is really needed. MultiSimSettingController.getInstance().notifyUserDataEnabled(mSubId, enabled); } break; } case EVENT_SET_POLICY_DATA_ENABLED: { boolean enabled = (boolean) msg.obj; if (mDataEnabledSettings.get(TelephonyManager.DATA_ENABLED_REASON_POLICY) != enabled) { logl("PolicyDataEnabled changed to " + enabled); mDataEnabledSettings.put(TelephonyManager.DATA_ENABLED_REASON_POLICY, enabled); updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_POLICY); } break; } case EVENT_SET_CARRIER_DATA_ENABLED: { boolean enabled = (boolean) msg.obj; if (mDataEnabledSettings.get(TelephonyManager.DATA_ENABLED_REASON_CARRIER) != enabled) { logl("CarrierDataEnabled changed to " + enabled); mDataEnabledSettings.put(TelephonyManager.DATA_ENABLED_REASON_CARRIER, enabled); updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_CARRIER); } break; } case EVENT_SET_THERMAL_DATA_ENABLED: { boolean enabled = (boolean) msg.obj; if (mDataEnabledSettings.get(TelephonyManager.DATA_ENABLED_REASON_THERMAL) != enabled) { logl("ThermalDataEnabled changed to " + enabled); mDataEnabledSettings.put(TelephonyManager.DATA_ENABLED_REASON_THERMAL, enabled); updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_THERMAL); } break; } case EVENT_SET_DATA_ROAMING_ENABLED: { boolean enabled = (boolean) msg.obj; // Will trigger handleDataOnRoamingChange() through observer Loading Loading @@ -305,15 +247,6 @@ public class DataSettingsManager extends Handler { } break; } case EVENT_UPDATE_DATA_ENABLED: { boolean prevDataEnabled = mIsDataEnabled; mIsDataEnabled = isDataEnabled(ApnSetting.TYPE_ALL); log("mIsDataEnabled=" + mIsDataEnabled + ", prevDataEnabled=" + prevDataEnabled); if (prevDataEnabled != mIsDataEnabled) { notifyDataEnabledChanged(mIsDataEnabled, (int) msg.obj); } break; } case EVENT_PROVISIONED_CHANGED: { updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_UNKNOWN); break; Loading Loading @@ -384,7 +317,12 @@ public class DataSettingsManager extends Handler { } private void updateDataEnabledAndNotify(@TelephonyManager.DataEnabledChangedReason int reason) { obtainMessage(EVENT_UPDATE_DATA_ENABLED, reason).sendToTarget(); boolean prevDataEnabled = mIsDataEnabled; mIsDataEnabled = isDataEnabled(ApnSetting.TYPE_ALL); log("mIsDataEnabled=" + mIsDataEnabled + ", prevDataEnabled=" + prevDataEnabled); if (prevDataEnabled != mIsDataEnabled) { notifyDataEnabledChanged(mIsDataEnabled, reason); } } /** Loading Loading @@ -448,7 +386,20 @@ public class DataSettingsManager extends Handler { * @param enabled {@code true} to enable user data and {@code false} to disable. */ private void setUserDataEnabled(boolean enabled) { obtainMessage(EVENT_SET_USER_DATA_ENABLED, enabled).sendToTarget(); // Can't disable data for stand alone opportunistic subscription. if (isStandAloneOpportunistic(mSubId, mPhone.getContext()) && !enabled) return; boolean changed = GlobalSettingsHelper.setInt(mPhone.getContext(), Settings.Global.MOBILE_DATA, mSubId, (enabled ? 1 : 0)); log("Set user data enabled to " + enabled + ", changed=" + changed); if (changed) { logl("UserDataEnabled changed to " + enabled); mPhone.notifyUserMobileDataStateChanged(enabled); updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_USER); // TODO: MultiSimSettingController should register the callback instead of let // DataSettingsManager directly feed information to it. // Also revisit if sub id is really needed. MultiSimSettingController.getInstance().notifyUserDataEnabled(mSubId, enabled); } } /** Loading @@ -474,7 +425,11 @@ public class DataSettingsManager extends Handler { * @param enabled {@code true} to enable policy data and {@code false} to disable. */ private void setPolicyDataEnabled(boolean enabled) { obtainMessage(EVENT_SET_POLICY_DATA_ENABLED, enabled).sendToTarget(); if (mDataEnabledSettings.get(TelephonyManager.DATA_ENABLED_REASON_POLICY) != enabled) { logl("PolicyDataEnabled changed to " + enabled); mDataEnabledSettings.put(TelephonyManager.DATA_ENABLED_REASON_POLICY, enabled); updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_POLICY); } } /** Loading @@ -482,7 +437,11 @@ public class DataSettingsManager extends Handler { * @param enabled {@code true} to enable carrier data and {@code false} to disable. */ private void setCarrierDataEnabled(boolean enabled) { obtainMessage(EVENT_SET_CARRIER_DATA_ENABLED, enabled).sendToTarget(); if (mDataEnabledSettings.get(TelephonyManager.DATA_ENABLED_REASON_CARRIER) != enabled) { logl("CarrierDataEnabled changed to " + enabled); mDataEnabledSettings.put(TelephonyManager.DATA_ENABLED_REASON_CARRIER, enabled); updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_CARRIER); } } /** Loading @@ -490,7 +449,11 @@ public class DataSettingsManager extends Handler { * @param enabled {@code true} to enable thermal data and {@code false} to disable. */ private void setThermalDataEnabled(boolean enabled) { obtainMessage(EVENT_SET_THERMAL_DATA_ENABLED, enabled).sendToTarget(); if (mDataEnabledSettings.get(TelephonyManager.DATA_ENABLED_REASON_THERMAL) != enabled) { logl("ThermalDataEnabled changed to " + enabled); mDataEnabledSettings.put(TelephonyManager.DATA_ENABLED_REASON_THERMAL, enabled); updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_THERMAL); } } /** Loading Loading
src/java/com/android/internal/telephony/data/DataSettingsManager.java +41 −78 Original line number Diff line number Diff line Loading @@ -65,28 +65,18 @@ public class DataSettingsManager extends Handler { private static final int EVENT_SUBSCRIPTIONS_CHANGED = 4; /** Event for set data enabled for reason. */ private static final int EVENT_SET_DATA_ENABLED_FOR_REASON = 5; /** Event for set user data enabled. */ private static final int EVENT_SET_USER_DATA_ENABLED = 6; /** Event for set policy data enabled. */ private static final int EVENT_SET_POLICY_DATA_ENABLED = 7; /** Event for set carrier data enabled. */ private static final int EVENT_SET_CARRIER_DATA_ENABLED = 8; /** Event for set thermal data enabled. */ private static final int EVENT_SET_THERMAL_DATA_ENABLED = 9; /** Event for set data roaming enabled. */ private static final int EVENT_SET_DATA_ROAMING_ENABLED = 10; private static final int EVENT_SET_DATA_ROAMING_ENABLED = 6; /** Event for set always allow MMS data. */ private static final int EVENT_SET_ALWAYS_ALLOW_MMS_DATA = 11; private static final int EVENT_SET_ALWAYS_ALLOW_MMS_DATA = 7; /** Event for set allow data during voice call. */ private static final int EVENT_SET_ALLOW_DATA_DURING_VOICE_CALL = 12; /** Event for update data enabled. */ private static final int EVENT_UPDATE_DATA_ENABLED = 13; private static final int EVENT_SET_ALLOW_DATA_DURING_VOICE_CALL = 8; /** Event for device provisioned changed. */ private static final int EVENT_PROVISIONED_CHANGED = 14; private static final int EVENT_PROVISIONED_CHANGED = 9; /** Event for provisioning data enabled setting changed. */ private static final int EVENT_PROVISIONING_DATA_ENABLED_CHANGED = 15; private static final int EVENT_PROVISIONING_DATA_ENABLED_CHANGED = 10; /** Event for registering all events. */ private static final int EVENT_REGISTER_ALL_EVENTS = 16; private static final int EVENT_REGISTER_ALL_EVENTS = 11; private final Phone mPhone; private final ContentResolver mResolver; Loading Loading @@ -217,54 +207,6 @@ public class DataSettingsManager extends Handler { } break; } case EVENT_SET_USER_DATA_ENABLED: { boolean enabled = (boolean) msg.obj; // Can't disable data for stand alone opportunistic subscription. if (isStandAloneOpportunistic(mSubId, mPhone.getContext()) && !enabled) return; boolean changed = GlobalSettingsHelper.setInt(mPhone.getContext(), Settings.Global.MOBILE_DATA, mSubId, (enabled ? 1 : 0)); log("Set user data enabled to " + enabled + ", changed=" + changed); if (changed) { logl("UserDataEnabled changed to " + enabled); mPhone.notifyUserMobileDataStateChanged(enabled); updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_USER); // TODO: MultiSimSettingController should register the callback instead of let // DataSettingsManager directly feed information to it. // Also revisit if sub id is really needed. MultiSimSettingController.getInstance().notifyUserDataEnabled(mSubId, enabled); } break; } case EVENT_SET_POLICY_DATA_ENABLED: { boolean enabled = (boolean) msg.obj; if (mDataEnabledSettings.get(TelephonyManager.DATA_ENABLED_REASON_POLICY) != enabled) { logl("PolicyDataEnabled changed to " + enabled); mDataEnabledSettings.put(TelephonyManager.DATA_ENABLED_REASON_POLICY, enabled); updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_POLICY); } break; } case EVENT_SET_CARRIER_DATA_ENABLED: { boolean enabled = (boolean) msg.obj; if (mDataEnabledSettings.get(TelephonyManager.DATA_ENABLED_REASON_CARRIER) != enabled) { logl("CarrierDataEnabled changed to " + enabled); mDataEnabledSettings.put(TelephonyManager.DATA_ENABLED_REASON_CARRIER, enabled); updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_CARRIER); } break; } case EVENT_SET_THERMAL_DATA_ENABLED: { boolean enabled = (boolean) msg.obj; if (mDataEnabledSettings.get(TelephonyManager.DATA_ENABLED_REASON_THERMAL) != enabled) { logl("ThermalDataEnabled changed to " + enabled); mDataEnabledSettings.put(TelephonyManager.DATA_ENABLED_REASON_THERMAL, enabled); updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_THERMAL); } break; } case EVENT_SET_DATA_ROAMING_ENABLED: { boolean enabled = (boolean) msg.obj; // Will trigger handleDataOnRoamingChange() through observer Loading Loading @@ -305,15 +247,6 @@ public class DataSettingsManager extends Handler { } break; } case EVENT_UPDATE_DATA_ENABLED: { boolean prevDataEnabled = mIsDataEnabled; mIsDataEnabled = isDataEnabled(ApnSetting.TYPE_ALL); log("mIsDataEnabled=" + mIsDataEnabled + ", prevDataEnabled=" + prevDataEnabled); if (prevDataEnabled != mIsDataEnabled) { notifyDataEnabledChanged(mIsDataEnabled, (int) msg.obj); } break; } case EVENT_PROVISIONED_CHANGED: { updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_UNKNOWN); break; Loading Loading @@ -384,7 +317,12 @@ public class DataSettingsManager extends Handler { } private void updateDataEnabledAndNotify(@TelephonyManager.DataEnabledChangedReason int reason) { obtainMessage(EVENT_UPDATE_DATA_ENABLED, reason).sendToTarget(); boolean prevDataEnabled = mIsDataEnabled; mIsDataEnabled = isDataEnabled(ApnSetting.TYPE_ALL); log("mIsDataEnabled=" + mIsDataEnabled + ", prevDataEnabled=" + prevDataEnabled); if (prevDataEnabled != mIsDataEnabled) { notifyDataEnabledChanged(mIsDataEnabled, reason); } } /** Loading Loading @@ -448,7 +386,20 @@ public class DataSettingsManager extends Handler { * @param enabled {@code true} to enable user data and {@code false} to disable. */ private void setUserDataEnabled(boolean enabled) { obtainMessage(EVENT_SET_USER_DATA_ENABLED, enabled).sendToTarget(); // Can't disable data for stand alone opportunistic subscription. if (isStandAloneOpportunistic(mSubId, mPhone.getContext()) && !enabled) return; boolean changed = GlobalSettingsHelper.setInt(mPhone.getContext(), Settings.Global.MOBILE_DATA, mSubId, (enabled ? 1 : 0)); log("Set user data enabled to " + enabled + ", changed=" + changed); if (changed) { logl("UserDataEnabled changed to " + enabled); mPhone.notifyUserMobileDataStateChanged(enabled); updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_USER); // TODO: MultiSimSettingController should register the callback instead of let // DataSettingsManager directly feed information to it. // Also revisit if sub id is really needed. MultiSimSettingController.getInstance().notifyUserDataEnabled(mSubId, enabled); } } /** Loading @@ -474,7 +425,11 @@ public class DataSettingsManager extends Handler { * @param enabled {@code true} to enable policy data and {@code false} to disable. */ private void setPolicyDataEnabled(boolean enabled) { obtainMessage(EVENT_SET_POLICY_DATA_ENABLED, enabled).sendToTarget(); if (mDataEnabledSettings.get(TelephonyManager.DATA_ENABLED_REASON_POLICY) != enabled) { logl("PolicyDataEnabled changed to " + enabled); mDataEnabledSettings.put(TelephonyManager.DATA_ENABLED_REASON_POLICY, enabled); updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_POLICY); } } /** Loading @@ -482,7 +437,11 @@ public class DataSettingsManager extends Handler { * @param enabled {@code true} to enable carrier data and {@code false} to disable. */ private void setCarrierDataEnabled(boolean enabled) { obtainMessage(EVENT_SET_CARRIER_DATA_ENABLED, enabled).sendToTarget(); if (mDataEnabledSettings.get(TelephonyManager.DATA_ENABLED_REASON_CARRIER) != enabled) { logl("CarrierDataEnabled changed to " + enabled); mDataEnabledSettings.put(TelephonyManager.DATA_ENABLED_REASON_CARRIER, enabled); updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_CARRIER); } } /** Loading @@ -490,7 +449,11 @@ public class DataSettingsManager extends Handler { * @param enabled {@code true} to enable thermal data and {@code false} to disable. */ private void setThermalDataEnabled(boolean enabled) { obtainMessage(EVENT_SET_THERMAL_DATA_ENABLED, enabled).sendToTarget(); if (mDataEnabledSettings.get(TelephonyManager.DATA_ENABLED_REASON_THERMAL) != enabled) { logl("ThermalDataEnabled changed to " + enabled); mDataEnabledSettings.put(TelephonyManager.DATA_ENABLED_REASON_THERMAL, enabled); updateDataEnabledAndNotify(TelephonyManager.DATA_ENABLED_REASON_THERMAL); } } /** Loading