Merge "Convert dataDuringCall to autoDataSWitch"
This commit is contained in:
@@ -192,11 +192,22 @@ public class InternetPreferenceController extends AbstractPreferenceController i
|
||||
if (subscriptionManager == null) {
|
||||
return;
|
||||
}
|
||||
SubscriptionInfo subInfo = subscriptionManager.getDefaultDataSubscriptionInfo();
|
||||
SubscriptionInfo subInfo = subscriptionManager.getActiveSubscriptionInfo(
|
||||
SubscriptionManager.getActiveDataSubscriptionId());
|
||||
SubscriptionInfo defaultSubInfo = subscriptionManager.getDefaultDataSubscriptionInfo();
|
||||
subInfo = subscriptionManager.isSubscriptionVisible(subInfo) ? subInfo : defaultSubInfo;
|
||||
if (subInfo == null) {
|
||||
return;
|
||||
}
|
||||
mPreference.setSummary(SubscriptionUtil.getUniqueSubscriptionDisplayName(
|
||||
subInfo, mContext));
|
||||
CharSequence summary;
|
||||
if (subInfo.equals(defaultSubInfo)) {
|
||||
// DDS is active
|
||||
summary = SubscriptionUtil.getUniqueSubscriptionDisplayName(subInfo, mContext);
|
||||
} else {
|
||||
summary = mContext.getString(
|
||||
R.string.mobile_data_temp_using,
|
||||
SubscriptionUtil.getUniqueSubscriptionDisplayName(subInfo, mContext));
|
||||
}
|
||||
mPreference.setSummary(summary);
|
||||
}
|
||||
}
|
||||
|
@@ -220,7 +220,11 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
|
||||
return;
|
||||
}
|
||||
|
||||
SubscriptionInfo subInfo = mSubscriptionManager.getDefaultDataSubscriptionInfo();
|
||||
// Prefer using the currently active sub
|
||||
SubscriptionInfo subInfoCandidate = mSubscriptionManager.getActiveSubscriptionInfo(
|
||||
SubscriptionManager.getActiveDataSubscriptionId());
|
||||
SubscriptionInfo subInfo = mSubscriptionManager.isSubscriptionVisible(subInfoCandidate)
|
||||
? subInfoCandidate : mSubscriptionManager.getDefaultDataSubscriptionInfo();
|
||||
if (subInfo == null) {
|
||||
mPreferenceGroup.removeAll();
|
||||
return;
|
||||
@@ -255,9 +259,17 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
|
||||
mUpdateListener.onChildrenUpdated();
|
||||
}
|
||||
|
||||
/**@return {@code true} if subId is the default data sub. **/
|
||||
private boolean isDds(int subId) {
|
||||
return mSubscriptionManager.getDefaultDataSubscriptionInfo() != null
|
||||
&& mSubscriptionManager.getDefaultDataSubscriptionInfo().getSubscriptionId()
|
||||
== subId;
|
||||
}
|
||||
|
||||
private CharSequence getMobilePreferenceSummary(int subId) {
|
||||
final TelephonyManager tmForSubId = mTelephonyManager.createForSubscriptionId(subId);
|
||||
if (!tmForSubId.isDataEnabled()) {
|
||||
boolean isDds = isDds(subId);
|
||||
if (!tmForSubId.isDataEnabled() && isDds) {
|
||||
return mContext.getString(R.string.mobile_data_off_summary);
|
||||
}
|
||||
final ServiceState serviceState = tmForSubId.getServiceState();
|
||||
@@ -275,10 +287,12 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
|
||||
mContext, mConfig, mTelephonyDisplayInfo, subId, isCarrierNetworkActive);
|
||||
if (mSubsPrefCtrlInjector.isActiveCellularNetwork(mContext) || isCarrierNetworkActive) {
|
||||
if (result.isEmpty()) {
|
||||
result = mContext.getString(R.string.mobile_data_connection_active);
|
||||
result = mContext.getString(isDds ? R.string.mobile_data_connection_active
|
||||
: R.string.mobile_data_temp_connection_active);
|
||||
} else {
|
||||
result = mContext.getString(R.string.preference_summary_default_combination,
|
||||
mContext.getString(R.string.mobile_data_connection_active), result);
|
||||
mContext.getString(isDds ? R.string.mobile_data_connection_active
|
||||
: R.string.mobile_data_temp_connection_active), result);
|
||||
}
|
||||
} else if (!isDataInService) {
|
||||
result = mContext.getString(R.string.mobile_data_no_connection);
|
||||
@@ -316,9 +330,12 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
|
||||
final boolean isVoiceInService = (serviceState == null)
|
||||
? false
|
||||
: (serviceState.getState() == ServiceState.STATE_IN_SERVICE);
|
||||
final boolean isDataEnabled = tmForSubId.isDataEnabled()
|
||||
// non-Dds but auto data switch feature is enabled
|
||||
|| (!isDds(subId) && tmForSubId.isMobileDataPolicyEnabled(
|
||||
TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH));
|
||||
if (isDataInService || isVoiceInService || isCarrierNetworkActive) {
|
||||
icon = mSubsPrefCtrlInjector.getIcon(mContext, level, numLevels,
|
||||
!tmForSubId.isDataEnabled());
|
||||
icon = mSubsPrefCtrlInjector.getIcon(mContext, level, numLevels, !isDataEnabled);
|
||||
}
|
||||
|
||||
final boolean isActiveCellularNetwork =
|
||||
|
@@ -11,7 +11,7 @@
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.settings.network.telephony;
|
||||
@@ -36,7 +36,17 @@ import com.android.settings.datausage.DataUsageUtils;
|
||||
import com.android.settings.network.MobileDataContentObserver;
|
||||
import com.android.settings.network.SubscriptionsChangeListener;
|
||||
|
||||
public class DataDuringCallsPreferenceController extends TelephonyTogglePreferenceController
|
||||
/**
|
||||
* Controls whether switch mobile data to the non-default SIM if the non-default SIM has better
|
||||
* availability.
|
||||
*
|
||||
* This is used for temporarily allowing data on the non-default data SIM when on-default SIM
|
||||
* has better availability on DSDS devices, where better availability means strong
|
||||
* signal/connectivity.
|
||||
* If this feature is enabled, data will be temporarily enabled on the non-default data SIM,
|
||||
* including during any voice calls.
|
||||
*/
|
||||
public class AutoDataSwitchPreferenceController extends TelephonyTogglePreferenceController
|
||||
implements LifecycleObserver,
|
||||
SubscriptionsChangeListener.SubscriptionsChangeListenerClient {
|
||||
|
||||
@@ -46,7 +56,7 @@ public class DataDuringCallsPreferenceController extends TelephonyTogglePreferen
|
||||
private MobileDataContentObserver mMobileDataContentObserver;
|
||||
private PreferenceScreen mScreen;
|
||||
|
||||
public DataDuringCallsPreferenceController(Context context,
|
||||
public AutoDataSwitchPreferenceController(Context context,
|
||||
String preferenceKey) {
|
||||
super(context, preferenceKey);
|
||||
}
|
||||
@@ -90,13 +100,13 @@ public class DataDuringCallsPreferenceController extends TelephonyTogglePreferen
|
||||
@Override
|
||||
public boolean isChecked() {
|
||||
return mManager.isMobileDataPolicyEnabled(
|
||||
TelephonyManager.MOBILE_DATA_POLICY_DATA_ON_NON_DEFAULT_DURING_VOICE_CALL);
|
||||
TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setChecked(boolean isChecked) {
|
||||
mManager.setMobileDataPolicyEnabled(
|
||||
TelephonyManager.MOBILE_DATA_POLICY_DATA_ON_NON_DEFAULT_DURING_VOICE_CALL,
|
||||
TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH,
|
||||
isChecked);
|
||||
return true;
|
||||
}
|
@@ -184,7 +184,7 @@ public class MobileNetworkSettings extends AbstractMobileNetworkSettings {
|
||||
use(CarrierSettingsVersionPreferenceController.class).init(mSubId);
|
||||
use(BillingCyclePreferenceController.class).init(mSubId);
|
||||
use(MmsMessagePreferenceController.class).init(mSubId);
|
||||
use(DataDuringCallsPreferenceController.class).init(mSubId);
|
||||
use(AutoDataSwitchPreferenceController.class).init(mSubId);
|
||||
use(DisabledSubscriptionController.class).init(mSubId);
|
||||
use(DeleteSimProfilePreferenceController.class).init(mSubId, this,
|
||||
REQUEST_CODE_DELETE_SUBSCRIPTION);
|
||||
|
Reference in New Issue
Block a user