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

Commit 67a66e26 authored by Brad Ebinger's avatar Brad Ebinger Committed by Gerrit Code Review
Browse files

Merge "Callbacks into phone for IMS feature state should be on main thread"

parents aa670690 f91a894c
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -113,6 +113,7 @@ import java.util.List;
import java.util.Map;
import java.util.Queue;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executor;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Pattern;
@@ -499,8 +500,12 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {


    //***** Constructors

    public ImsPhoneCallTracker(ImsPhone phone) {
        this(phone, phone.getContext().getMainExecutor());
    }

    @VisibleForTesting
    public ImsPhoneCallTracker(ImsPhone phone, Executor executor) {
        this.mPhone = phone;

        mMetrics = TelephonyMetrics.getInstance();
@@ -523,6 +528,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
        mVtDataUsageSnapshot = new NetworkStats(currentTime, 1);
        mVtDataUsageUidSnapshot = new NetworkStats(currentTime, 1);

        // Allow the executor to be specified for testing.
        mImsManagerConnector = new ImsManager.Connector(phone.getContext(), phone.getPhoneId(),
                new ImsManager.Connector.Listener() {
                    @Override
@@ -535,7 +541,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
                    public void connectionUnavailable() {
                        stopListeningForCalls();
                    }
                });
                }, executor);
        mImsManagerConnector.connect();
    }

+7 −1
Original line number Diff line number Diff line
@@ -34,7 +34,9 @@ import android.telephony.SubscriptionManager;
import android.telephony.ims.ImsMmTelManager;
import android.telephony.ims.ProvisioningManager;
import android.telephony.ims.stub.ImsConfigImplBase;
import android.test.suitebuilder.annotation.SmallTest;

import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4;

import com.android.ims.ImsConfig;
import com.android.ims.ImsManager;
@@ -44,10 +46,12 @@ import com.android.internal.telephony.TelephonyTest;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;

import java.util.Hashtable;

@RunWith(AndroidJUnit4.class)
public class ImsManagerTest extends TelephonyTest {
    private static final String UNSET_PROVISIONED_STRING = "unset";
    private static final boolean ENHANCED_4G_MODE_DEFAULT_VAL = true;
@@ -78,6 +82,8 @@ public class ImsManagerTest extends TelephonyTest {
        super.setUp("ImsManagerTest");
        mPhoneId = mPhone.getPhoneId();
        mBundle = mContextFixture.getCarrierConfigBundle();
        // Force MmTelFeatureConnection to create an executor using Looper.myLooper().
        doReturn(null).when(mContext).getMainLooper();

        doReturn(mSubId).when(mSubscriptionController).getSubId(mPhoneId);

+1 −1
Original line number Diff line number Diff line
@@ -110,7 +110,7 @@ public class ImsPhoneCallTrackerTest extends TelephonyTest {
        }
        @Override
        public void onLooperPrepared() {
            mCTUT = new ImsPhoneCallTracker(mImsPhone);
            mCTUT = new ImsPhoneCallTracker(mImsPhone, Runnable::run);
            mCTUT.addReasonCodeRemapping(null, "Wifi signal lost.", ImsReasonInfo.CODE_WIFI_LOST);
            mCTUT.addReasonCodeRemapping(501, "Call answered elsewhere.",
                    ImsReasonInfo.CODE_ANSWERED_ELSEWHERE);