Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1cbf8c78 authored by Ling Ma's avatar Ling Ma Committed by Android (Google) Code Review
Browse files

Merge "Convert dataDuringCall to autoDataSWitch"

parents f15f443c 4e7f7839
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -6842,12 +6842,12 @@
    <!-- Title of a preference for whether to allow data during calls that is shown when mobile
         data is turned off. This is needed for some multi-SIM scenarios, because the SIM that is
         default for data might not be available during a phone call. [CHAR LIMIT=60] -->
    <string name="data_during_calls_title">Data during calls</string>
    <string name="auto_data_switch_title">Switch mobile data automatically</string>
    <!-- Title of a preference for whether to allow data during calls that is shown when mobile
         data is turned off. This is needed for some multi-SIM scenarios, because the SIM that is
         default for data might not be available during a phone call. [CHAR LIMIT=NONE] -->
    <string name="data_during_calls_summary">
        Allow this SIM to be used for mobile data only during calls
    <string name="auto_data_switch_summary">
        Temporarily use this network when it has better availability for calls and internet
    </string>
    <!-- Work SIM title.  [CHAR LIMIT=50] -->
@@ -11395,6 +11395,12 @@
    <!-- Provider Model:
         Summary indicating that a SIM has an active mobile data connection [CHAR LIMIT=50] -->
    <string name="mobile_data_connection_active">Connected</string>
    <!-- Provider Model:
     Summary indicating that a SIM has an active mobile data connection [CHAR LIMIT=50] -->
    <string name="mobile_data_temp_connection_active">Temporarily connected</string>
    <!-- Provider Model:
     Summary indicating that a SIM is temporarily connected to mobile data [CHAR LIMIT=50] -->
    <string name="mobile_data_temp_using">Temporarily using <xliff:g id="subName" example="Google Fi">%1$s</xliff:g></string>
    <!-- Provider Model:
         Summary indicating that a active SIM and no network available [CHAR LIMIT=50] -->
    <string name="mobile_data_no_connection">No connection</string>
+6 −6
Original line number Diff line number Diff line
@@ -59,6 +59,12 @@
            settings:controller="com.android.settings.network.telephony.MobileDataPreferenceController"
            settings:allowDividerAbove="true"/>

        <SwitchPreference
            android:key="auto_data_switch"
            android:title="@string/auto_data_switch_title"
            android:summary="@string/auto_data_switch_summary"
            settings:controller="com.android.settings.network.telephony.AutoDataSwitchPreferenceController"/>

        <com.android.settingslib.RestrictedSwitchPreference
            android:key="button_roaming_key"
            android:title="@string/roaming"
@@ -96,12 +102,6 @@
            android:summary="@string/mms_message_summary"
            settings:controller="com.android.settings.network.telephony.MmsMessagePreferenceController"/>

        <SwitchPreference
            android:key="data_during_calls"
            android:title="@string/data_during_calls_title"
            android:summary="@string/data_during_calls_summary"
            settings:controller="com.android.settings.network.telephony.DataDuringCallsPreferenceController"/>

        <SwitchPreference
            android:key="enhanced_4g_lte"
            android:title="@string/enhanced_4g_lte_mode_title"
+14 −3
Original line number Diff line number Diff line
@@ -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);
    }
}
+23 −6
Original line number Diff line number Diff line
@@ -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 =
+15 −5
Original line number Diff line number Diff line
@@ -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;
    }
Loading