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

Commit 267561da authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 11151698 from 730feab8 to 24Q1-release

Change-Id: I1b5c7752b4c93a379824a049c415289e3aa351dd
parents 75a681de 730feab8
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -63,3 +63,10 @@ flag {
  bug:"286171724"
}

flag {
 name: "notify_data_activity_changed_with_slot"
  namespace: "telephony"
  description: "notify data activity changed for slot id"
  bug: "309896936"
}
+16 −4
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import android.telephony.ims.ImsCallSession;
import android.telephony.ims.ImsReasonInfo;
import android.telephony.ims.MediaQualityStatus;

import com.android.internal.telephony.flags.FeatureFlags;
import com.android.telephony.Rlog;

import java.util.List;
@@ -55,10 +56,15 @@ public class DefaultPhoneNotifier implements PhoneNotifier {

    private TelephonyRegistryManager mTelephonyRegistryMgr;

    /** Feature flags */
    @NonNull
    private final FeatureFlags mFeatureFlags;

    public DefaultPhoneNotifier(Context context) {

    public DefaultPhoneNotifier(Context context, @NonNull FeatureFlags featureFlags) {
        mTelephonyRegistryMgr = (TelephonyRegistryManager) context.getSystemService(
            Context.TELEPHONY_REGISTRY_SERVICE);
        mFeatureFlags = featureFlags;
    }

    @Override
@@ -125,10 +131,16 @@ public class DefaultPhoneNotifier implements PhoneNotifier {

    @Override
    public void notifyDataActivity(Phone sender) {
        int phoneId = sender.getPhoneId();

        int subId = sender.getSubId();

        if (mFeatureFlags.notifyDataActivityChangedWithSlot()) {
            int phoneId = sender.getPhoneId();
            mTelephonyRegistryMgr.notifyDataActivityChanged(phoneId, subId,
                    sender.getDataActivityState());
        } else {
            mTelephonyRegistryMgr.notifyDataActivityChanged(subId, sender.getDataActivityState());
        }
    }

    @Override
+12 −4
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.internal.telephony;
import static android.telephony.TelephonyManager.ACTION_MULTI_SIM_CONFIG_CHANGED;
import static android.telephony.TelephonyManager.EXTRA_ACTIVE_SIM_SUPPORTED_COUNT;

import android.annotation.NonNull;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncResult;
@@ -37,6 +38,7 @@ import android.text.TextUtils;
import android.util.Log;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.flags.FeatureFlags;
import com.android.internal.telephony.subscription.SubscriptionManagerService;
import com.android.telephony.Rlog;

@@ -75,6 +77,10 @@ public class PhoneConfigurationManager {
    private final Map<Integer, Boolean> mPhoneStatusMap;
    private MockableInterface mMi = new MockableInterface();
    private TelephonyManager mTelephonyManager;

    /** Feature flags */
    @NonNull
    private final FeatureFlags mFeatureFlags;
    /**
     * True if 'Virtual DSDA' i.e., in-call IMS connectivity on both subs with only single logical
     * modem, is enabled.
@@ -88,10 +94,11 @@ public class PhoneConfigurationManager {
     * Init method to instantiate the object
     * Should only be called once.
     */
    public static PhoneConfigurationManager init(Context context) {
    public static PhoneConfigurationManager init(Context context,
            @NonNull FeatureFlags featureFlags) {
        synchronized (PhoneConfigurationManager.class) {
            if (sInstance == null) {
                sInstance = new PhoneConfigurationManager(context);
                sInstance = new PhoneConfigurationManager(context, featureFlags);
            } else {
                Log.wtf(LOG_TAG, "init() called multiple times!  sInstance = " + sInstance);
            }
@@ -103,8 +110,9 @@ public class PhoneConfigurationManager {
     * Constructor.
     * @param context context needed to send broadcast.
     */
    private PhoneConfigurationManager(Context context) {
    private PhoneConfigurationManager(Context context, @NonNull FeatureFlags featureFlags) {
        mContext = context;
        mFeatureFlags = featureFlags;
        // TODO: send commands to modem once interface is ready.
        mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
        //initialize with default, it'll get updated when RADIO is ON/AVAILABLE
@@ -360,7 +368,7 @@ public class PhoneConfigurationManager {
    }

    private void notifyCapabilityChanged() {
        PhoneNotifier notifier = new DefaultPhoneNotifier(mContext);
        PhoneNotifier notifier = new DefaultPhoneNotifier(mContext, mFeatureFlags);

        notifier.notifyPhoneCapabilityChanged(mStaticCapability);
    }
+2 −2
Original line number Diff line number Diff line
@@ -163,7 +163,7 @@ public class PhoneFactory {
                // register statsd pullers.
                sMetricsCollector = new MetricsCollector(context);

                sPhoneNotifier = new DefaultPhoneNotifier(context);
                sPhoneNotifier = new DefaultPhoneNotifier(context, featureFlags);

                int cdmaSubscription = CdmaSubscriptionSourceManager.getDefault(context);
                Rlog.i(LOG_TAG, "Cdma Subscription set to " + cdmaSubscription);
@@ -256,7 +256,7 @@ public class PhoneFactory {
                    Rlog.i(LOG_TAG, "IMS is not supported on this device, skipping ImsResolver.");
                }

                sPhoneConfigurationManager = PhoneConfigurationManager.init(sContext);
                sPhoneConfigurationManager = PhoneConfigurationManager.init(sContext, featureFlags);

                sCellularNetworkValidator = CellularNetworkValidator.make(sContext);

+23 −1
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.telephony.CellIdentityGsm;
import android.telephony.CellInfo;
@@ -34,12 +35,14 @@ import android.telephony.TelephonyManager;
import android.telephony.ims.ImsCallProfile;
import android.test.suitebuilder.annotation.SmallTest;

import com.android.internal.telephony.flags.FeatureFlags;
import com.android.internal.telephony.imsphone.ImsPhoneCall;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Mockito;

import java.util.ArrayList;
import java.util.Collections;
@@ -51,6 +54,8 @@ public class DefaultPhoneNotifierTest extends TelephonyTest {

    private DefaultPhoneNotifier mDefaultPhoneNotifierUT;

    private FeatureFlags mFeatureFlags;

    // Mocked classes
    SignalStrength mSignalStrength;
    CellInfo mCellInfo;
@@ -66,13 +71,14 @@ public class DefaultPhoneNotifierTest extends TelephonyTest {
        super.setUp(getClass().getSimpleName());
        mSignalStrength = mock(SignalStrength.class);
        mCellInfo = mock(CellInfo.class);
        mFeatureFlags = Mockito.mock(FeatureFlags.class);
        mForeGroundCall = mock(GsmCdmaCall.class);
        mBackGroundCall = mock(GsmCdmaCall.class);
        mRingingCall = mock(GsmCdmaCall.class);
        mImsForeGroundCall = mock(ImsPhoneCall.class);
        mImsBackGroundCall = mock(ImsPhoneCall.class);
        mImsRingingCall = mock(ImsPhoneCall.class);
        mDefaultPhoneNotifierUT = new DefaultPhoneNotifier(mContext);
        mDefaultPhoneNotifierUT = new DefaultPhoneNotifier(mContext, mFeatureFlags);
    }

    @After
@@ -94,6 +100,22 @@ public class DefaultPhoneNotifierTest extends TelephonyTest {

    @Test @SmallTest
    public void testNotifyDataActivity() throws Exception {
        when(mFeatureFlags.notifyDataActivityChangedWithSlot()).thenReturn(false);
        //mock data activity state
        doReturn(TelephonyManager.DATA_ACTIVITY_NONE).when(mPhone).getDataActivityState();
        mDefaultPhoneNotifierUT.notifyDataActivity(mPhone);
        verify(mTelephonyRegistryManager).notifyDataActivityChanged(eq(0),
                eq(TelephonyManager.DATA_ACTIVITY_NONE));

        doReturn(1).when(mPhone).getSubId();
        doReturn(TelephonyManager.DATA_ACTIVITY_IN).when(mPhone).getDataActivityState();
        mDefaultPhoneNotifierUT.notifyDataActivity(mPhone);
        verify(mTelephonyRegistryManager).notifyDataActivityChanged(eq(1),
                eq(TelephonyManager.DATA_ACTIVITY_IN));
    }
    @Test @SmallTest
    public void testNotifyDataActivityWithSlot() throws Exception {
        when(mFeatureFlags.notifyDataActivityChangedWithSlot()).thenReturn(true);
        //mock data activity state
        doReturn(TelephonyManager.DATA_ACTIVITY_NONE).when(mPhone).getDataActivityState();
        doReturn(PHONE_ID).when(mPhone).getPhoneId();
Loading