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

Commit fc3536f1 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fixed data icon disappeared issue" into sc-v2-dev am: 5c278223

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/opt/telephony/+/16193028

Change-Id: I5e6e748e8e73eba6afab3d4672c62bb86db324ca
parents 29ae954a 5c278223
Loading
Loading
Loading
Loading
+288 −0
Original line number Diff line number Diff line
@@ -91,6 +91,8 @@ public class TelephonyRegistryTest extends TelephonyTest {
    private TelephonyDisplayInfo mTelephonyDisplayInfo;
    private int mSrvccState = -1;
    private int mRadioPowerState = RADIO_POWER_UNAVAILABLE;
    private int mDataConnectionState = TelephonyManager.DATA_UNKNOWN;
    private int mNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN;
    private List<PhysicalChannelConfig> mPhysicalChannelConfigs;
    private TelephonyRegistry.ConfigurationProvider mMockConfigurationProvider;
    private CellLocation mCellLocation;
@@ -155,6 +157,7 @@ public class TelephonyRegistryTest extends TelephonyTest {
            TelephonyCallback.ActiveDataSubscriptionIdListener,
            TelephonyCallback.RadioPowerStateListener,
            TelephonyCallback.PreciseDataConnectionStateListener,
            TelephonyCallback.DataConnectionStateListener,
            TelephonyCallback.DisplayInfoListener,
            TelephonyCallback.LinkCapacityEstimateChangedListener,
            TelephonyCallback.PhysicalChannelConfigListener,
@@ -189,6 +192,12 @@ public class TelephonyRegistryTest extends TelephonyTest {
            invocationCount.incrementAndGet();
        }
        @Override
        public void onDataConnectionStateChanged(int state, int networkType) {
            invocationCount.incrementAndGet();
            mDataConnectionState = state;
            mNetworkType = networkType;
        }
        @Override
        public void onDisplayInfoChanged(TelephonyDisplayInfo displayInfo) {
            mTelephonyDisplayInfo = displayInfo;
        }
@@ -373,6 +382,285 @@ public class TelephonyRegistryTest extends TelephonyTest {
        assertEquals(RADIO_POWER_OFF, mRadioPowerState);
    }

    /**
     * Test {@link TelephonyCallback.DataConnectionStateListener}
     */
    @Test
    public void testDataConnectionStateChanged() {
        final int subId = 1;
        int[] events = {TelephonyCallback.EVENT_DATA_CONNECTION_STATE_CHANGED};
        doReturn(mMockSubInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(anyInt());
        doReturn(0/*slotIndex*/).when(mMockSubInfo).getSimSlotIndex();

        assertEquals(TelephonyManager.DATA_UNKNOWN, mDataConnectionState);
        assertEquals(TelephonyManager.NETWORK_TYPE_UNKNOWN, mNetworkType);

        mTelephonyRegistry.notifyDataConnectionForSubscriber(
                /*phoneId*/ 0, subId,
                new PreciseDataConnectionState.Builder()
                        .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
                        .setId(1)
                        .setState(TelephonyManager.DATA_CONNECTED)
                        .setNetworkType(TelephonyManager.NETWORK_TYPE_LTE)
                        .setApnSetting(new ApnSetting.Builder()
                                .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT)
                                .setApnName("default")
                                .setEntryName("default")
                                .build())
                        .setLinkProperties(new LinkProperties())
                        .setFailCause(0)
                        .build());
        mTelephonyRegistry.listenWithEventList(subId, mContext.getOpPackageName(),
                mContext.getAttributionTag(), mTelephonyCallback.callback, events, true);

        assertEquals(TelephonyManager.DATA_CONNECTED, mDataConnectionState);
        assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mNetworkType);

        mTelephonyRegistry.notifyDataConnectionForSubscriber(
                /*phoneId*/ 0, subId,
                new PreciseDataConnectionState.Builder()
                        .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
                        .setId(1)
                        .setState(TelephonyManager.DATA_DISCONNECTING)
                        .setNetworkType(TelephonyManager.NETWORK_TYPE_LTE)
                        .setApnSetting(new ApnSetting.Builder()
                                .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT)
                                .setApnName("default")
                                .setEntryName("default")
                                .build())
                        .setLinkProperties(new LinkProperties())
                        .setFailCause(0)
                        .build());

        assertEquals(TelephonyManager.DATA_DISCONNECTING, mDataConnectionState);
        assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mNetworkType);

        mTelephonyRegistry.notifyDataConnectionForSubscriber(
                /*phoneId*/ 0, subId,
                new PreciseDataConnectionState.Builder()
                        .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
                        .setId(1)
                        .setState(TelephonyManager.DATA_DISCONNECTED)
                        .setNetworkType(TelephonyManager.NETWORK_TYPE_LTE)
                        .setApnSetting(new ApnSetting.Builder()
                                .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT)
                                .setApnName("default")
                                .setEntryName("default")
                                .build())
                        .setLinkProperties(new LinkProperties())
                        .setFailCause(0)
                        .build());

        assertEquals(TelephonyManager.DATA_DISCONNECTED, mDataConnectionState);
        assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mNetworkType);
    }

    /**
     * Test the scenario that multiple PDNs support default type APN scenario. Make sure it reports
     * aggregate data connection state.
     */
    @Test
    public void testDataConnectionStateChangedMultipleInternet() {
        final int subId = 1;
        int[] events = {TelephonyCallback.EVENT_DATA_CONNECTION_STATE_CHANGED};
        doReturn(mMockSubInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(anyInt());
        doReturn(0/*slotIndex*/).when(mMockSubInfo).getSimSlotIndex();

        assertEquals(TelephonyManager.DATA_UNKNOWN, mDataConnectionState);
        assertEquals(TelephonyManager.NETWORK_TYPE_UNKNOWN, mNetworkType);

        mTelephonyRegistry.listenWithEventList(subId, mContext.getOpPackageName(),
                mContext.getAttributionTag(), mTelephonyCallback.callback, events, true);

        mTelephonyRegistry.notifyDataConnectionForSubscriber(
                /*phoneId*/ 0, subId,
                new PreciseDataConnectionState.Builder()
                        .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
                        .setId(1)
                        .setState(TelephonyManager.DATA_CONNECTED)
                        .setNetworkType(TelephonyManager.NETWORK_TYPE_LTE)
                        .setApnSetting(new ApnSetting.Builder()
                                .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT)
                                .setApnName("default")
                                .setEntryName("default")
                                .build())
                        .setLinkProperties(new LinkProperties())
                        .setFailCause(0)
                        .build());

        assertEquals(TelephonyManager.DATA_CONNECTED, mDataConnectionState);
        assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mNetworkType);

        mTelephonyRegistry.notifyDataConnectionForSubscriber(
                /*phoneId*/ 0, subId,
                new PreciseDataConnectionState.Builder()
                        .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
                        .setId(1)
                        .setState(TelephonyManager.DATA_CONNECTING)
                        .setNetworkType(TelephonyManager.NETWORK_TYPE_LTE)
                        .setApnSetting(new ApnSetting.Builder()
                                .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT | ApnSetting.TYPE_MMS)
                                .setApnName("default+mms")
                                .setEntryName("default+mms")
                                .build())
                        .setLinkProperties(new LinkProperties())
                        .setFailCause(0)
                        .build());

        assertEquals(TelephonyManager.DATA_CONNECTED, mDataConnectionState);
        assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mNetworkType);

        mTelephonyRegistry.notifyDataConnectionForSubscriber(
                /*phoneId*/ 0, subId,
                new PreciseDataConnectionState.Builder()
                        .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
                        .setId(1)
                        .setState(TelephonyManager.DATA_DISCONNECTING)
                        .setNetworkType(TelephonyManager.NETWORK_TYPE_LTE)
                        .setApnSetting(new ApnSetting.Builder()
                                .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT | ApnSetting.TYPE_MMS)
                                .setApnName("default+mms")
                                .setEntryName("default+mms")
                                .build())
                        .setLinkProperties(new LinkProperties())
                        .setFailCause(0)
                        .build());
        assertEquals(TelephonyManager.DATA_CONNECTED, mDataConnectionState);
        assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mNetworkType);

        mTelephonyRegistry.notifyDataConnectionForSubscriber(
                /*phoneId*/ 0, subId,
                new PreciseDataConnectionState.Builder()
                        .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
                        .setId(1)
                        .setState(TelephonyManager.DATA_DISCONNECTED)
                        .setNetworkType(TelephonyManager.NETWORK_TYPE_LTE)
                        .setApnSetting(new ApnSetting.Builder()
                                .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT | ApnSetting.TYPE_MMS)
                                .setApnName("default+mms")
                                .setEntryName("default+mms")
                                .build())
                        .setLinkProperties(new LinkProperties())
                        .setFailCause(0)
                        .build());
        assertEquals(TelephonyManager.DATA_CONNECTED, mDataConnectionState);
        assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mNetworkType);

        mTelephonyRegistry.notifyDataConnectionForSubscriber(
                /*phoneId*/ 0, subId,
                new PreciseDataConnectionState.Builder()
                        .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
                        .setId(1)
                        .setState(TelephonyManager.DATA_CONNECTING)
                        .setNetworkType(TelephonyManager.NETWORK_TYPE_LTE)
                        .setApnSetting(new ApnSetting.Builder()
                                .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT | ApnSetting.TYPE_MMS)
                                .setApnName("default+mms")
                                .setEntryName("default+mms")
                                .build())
                        .setLinkProperties(new LinkProperties())
                        .setFailCause(0)
                        .build());

        assertEquals(TelephonyManager.DATA_CONNECTED, mDataConnectionState);
        assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mNetworkType);

        mTelephonyRegistry.notifyDataConnectionForSubscriber(
                /*phoneId*/ 0, subId,
                new PreciseDataConnectionState.Builder()
                        .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
                        .setId(1)
                        .setState(TelephonyManager.DATA_CONNECTED)
                        .setNetworkType(TelephonyManager.NETWORK_TYPE_LTE)
                        .setApnSetting(new ApnSetting.Builder()
                                .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT | ApnSetting.TYPE_MMS)
                                .setApnName("default+mms")
                                .setEntryName("default+mms")
                                .build())
                        .setLinkProperties(new LinkProperties())
                        .setFailCause(0)
                        .build());

        assertEquals(TelephonyManager.DATA_CONNECTED, mDataConnectionState);
        assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mNetworkType);

        mTelephonyRegistry.notifyDataConnectionForSubscriber(
                /*phoneId*/ 0, subId,
                new PreciseDataConnectionState.Builder()
                        .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
                        .setId(1)
                        .setState(TelephonyManager.DATA_DISCONNECTING)
                        .setNetworkType(TelephonyManager.NETWORK_TYPE_LTE)
                        .setApnSetting(new ApnSetting.Builder()
                                .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT)
                                .setApnName("default")
                                .setEntryName("default")
                                .build())
                        .setLinkProperties(new LinkProperties())
                        .setFailCause(0)
                        .build());

        assertEquals(TelephonyManager.DATA_CONNECTED, mDataConnectionState);
        assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mNetworkType);

        mTelephonyRegistry.notifyDataConnectionForSubscriber(
                /*phoneId*/ 0, subId,
                new PreciseDataConnectionState.Builder()
                        .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
                        .setId(1)
                        .setState(TelephonyManager.DATA_DISCONNECTING)
                        .setNetworkType(TelephonyManager.NETWORK_TYPE_LTE)
                        .setApnSetting(new ApnSetting.Builder()
                                .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT | ApnSetting.TYPE_MMS)
                                .setApnName("default+mms")
                                .setEntryName("default+mms")
                                .build())
                        .setLinkProperties(new LinkProperties())
                        .setFailCause(0)
                        .build());

        assertEquals(TelephonyManager.DATA_DISCONNECTING, mDataConnectionState);
        assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mNetworkType);

        mTelephonyRegistry.notifyDataConnectionForSubscriber(
                /*phoneId*/ 0, subId,
                new PreciseDataConnectionState.Builder()
                        .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
                        .setId(1)
                        .setState(TelephonyManager.DATA_DISCONNECTED)
                        .setNetworkType(TelephonyManager.NETWORK_TYPE_LTE)
                        .setApnSetting(new ApnSetting.Builder()
                                .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT)
                                .setApnName("default")
                                .setEntryName("default")
                                .build())
                        .setLinkProperties(new LinkProperties())
                        .setFailCause(0)
                        .build());

        assertEquals(TelephonyManager.DATA_DISCONNECTING, mDataConnectionState);
        assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mNetworkType);

        mTelephonyRegistry.notifyDataConnectionForSubscriber(
                /*phoneId*/ 0, subId,
                new PreciseDataConnectionState.Builder()
                        .setTransportType(AccessNetworkConstants.TRANSPORT_TYPE_WWAN)
                        .setId(1)
                        .setState(TelephonyManager.DATA_DISCONNECTED)
                        .setNetworkType(TelephonyManager.NETWORK_TYPE_LTE)
                        .setApnSetting(new ApnSetting.Builder()
                                .setApnTypeBitmask(ApnSetting.TYPE_DEFAULT | ApnSetting.TYPE_MMS)
                                .setApnName("default+mms")
                                .setEntryName("default+mms")
                                .build())
                        .setLinkProperties(new LinkProperties())
                        .setFailCause(0)
                        .build());

        assertEquals(TelephonyManager.DATA_DISCONNECTED, mDataConnectionState);
        assertEquals(TelephonyManager.NETWORK_TYPE_LTE, mNetworkType);
    }

    /**
     * Test multi sim config change.
     */