From 5b4d9ff1969f1feb4ef5151195ed5df79efe5ae9 Mon Sep 17 00:00:00 2001 From: Sarah Chin Date: Fri, 6 Dec 2019 10:23:26 -0800 Subject: [PATCH] Modify PhoneCapabilities for device capabilities Support IRadioConfig getPhoneCapabilities_1_3 Created ModemFeatures LongDef and SlotType IntDef Update old PhoneCapability methods to use new fields Test: atest FrameworksTelephonyTests Bug: 143238237 Bug: 143238191 Change-Id: Ic00bb3ba81d5460a04f08312fc9b90bf61cd4c6b Merged-In: Ic00bb3ba81d5460a04f08312fc9b90bf61cd4c6b --- Android.bp | 1 + .../telephony/CellularNetworkValidator.java | 2 +- .../telephony/PhoneConfigurationManager.java | 4 +- .../internal/telephony/RadioConfig.java | 68 +++++++++- .../telephony/RadioConfigResponse.java | 46 ++++--- .../CellularNetworkValidatorTest.java | 14 +- .../telephony/PhoneCapabilityTest.java | 127 +++++++++++++----- .../internal/telephony/PhoneSwitcherTest.java | 4 +- .../telephony/SimSlotCapabilityTest.java | 59 ++++++++ .../telephony/TelephonyRegistryTest.java | 9 +- 10 files changed, 257 insertions(+), 77 deletions(-) create mode 100644 tests/telephonytests/src/com/android/internal/telephony/SimSlotCapabilityTest.java diff --git a/Android.bp b/Android.bp index 1e3bc6d61a..125ba3ac2f 100644 --- a/Android.bp +++ b/Android.bp @@ -73,6 +73,7 @@ java_library { "android.hardware.radio.config-V1.0-java-shallow", "android.hardware.radio.config-V1.1-java-shallow", "android.hardware.radio.config-V1.2-java-shallow", + "android.hardware.radio.config-V1.3-java-shallow", "android.hardware.radio.deprecated-V1.0-java-shallow", "ecc-protos-lite", "libphonenumber-nogeocoder", diff --git a/src/java/com/android/internal/telephony/CellularNetworkValidator.java b/src/java/com/android/internal/telephony/CellularNetworkValidator.java index 0530312171..4b8e1025f6 100644 --- a/src/java/com/android/internal/telephony/CellularNetworkValidator.java +++ b/src/java/com/android/internal/telephony/CellularNetworkValidator.java @@ -102,7 +102,7 @@ public class CellularNetworkValidator { */ public boolean isValidationFeatureSupported() { return PhoneConfigurationManager.getInstance().getCurrentPhoneCapability() - .validationBeforeSwitchSupported; + .getPsDataConnectionLingerTimeMillis() > 0; } @VisibleForTesting diff --git a/src/java/com/android/internal/telephony/PhoneConfigurationManager.java b/src/java/com/android/internal/telephony/PhoneConfigurationManager.java index c8480ec7f9..e5ba4851f5 100644 --- a/src/java/com/android/internal/telephony/PhoneConfigurationManager.java +++ b/src/java/com/android/internal/telephony/PhoneConfigurationManager.java @@ -306,7 +306,7 @@ public class PhoneConfigurationManager { } public int getNumberOfModemsWithSimultaneousDataConnections() { - return mStaticCapability.maxActiveData; + return mStaticCapability.getMaxActivePsVoice(); } private void notifyCapabilityChanged() { @@ -321,7 +321,7 @@ public class PhoneConfigurationManager { */ public void switchMultiSimConfig(int numOfSims) { log("switchMultiSimConfig: with numOfSims = " + numOfSims); - if (getStaticPhoneCapability().logicalModemList.size() < numOfSims) { + if (getStaticPhoneCapability().getLogicalModemUuids().size() < numOfSims) { log("switchMultiSimConfig: Phone is not capable of enabling " + numOfSims + " sims, exiting!"); return; diff --git a/src/java/com/android/internal/telephony/RadioConfig.java b/src/java/com/android/internal/telephony/RadioConfig.java index a2d4e5bc8e..24d79f269e 100644 --- a/src/java/com/android/internal/telephony/RadioConfig.java +++ b/src/java/com/android/internal/telephony/RadioConfig.java @@ -38,15 +38,19 @@ import android.os.Message; import android.os.Registrant; import android.os.RemoteException; import android.os.WorkSource; +import android.telephony.PhoneCapability; import android.telephony.Rlog; +import android.telephony.SimSlotCapability; import android.util.SparseArray; import com.android.internal.telephony.uicc.IccSlotStatus; import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import java.util.NoSuchElementException; import java.util.concurrent.atomic.AtomicLong; +import java.util.stream.Collectors; /** * This class provides wrapper APIs for IRadioConfig interface. @@ -64,6 +68,8 @@ public class RadioConfig extends Handler { private static final HalVersion RADIO_CONFIG_HAL_VERSION_1_1 = new HalVersion(1, 1); + private static final HalVersion RADIO_CONFIG_HAL_VERSION_1_3 = new HalVersion(1, 3); + private final boolean mIsMobileNetworkSupported; private volatile IRadioConfig mRadioConfigProxy = null; // IRadioConfig version @@ -340,11 +346,20 @@ public class RadioConfig extends Handler { logd(rr.serialString() + "> " + requestToString(rr.mRequest)); } - try { - ((android.hardware.radio.config.V1_1.IRadioConfig) mRadioConfigProxy) - .getPhoneCapability(rr.mSerial); - } catch (RemoteException | RuntimeException e) { - resetProxyAndRequestList("getPhoneCapability", e); + if (mRadioConfigVersion.greaterOrEqual(RADIO_CONFIG_HAL_VERSION_1_3)) { + try { + ((android.hardware.radio.config.V1_3.IRadioConfig) mRadioConfigProxy) + .getPhoneCapability_1_3(rr.mSerial); + } catch (RemoteException | RuntimeException e) { + resetProxyAndRequestList("getPhoneCapability_1_3", e); + } + } else { + try { + ((android.hardware.radio.config.V1_1.IRadioConfig) mRadioConfigProxy) + .getPhoneCapability(rr.mSerial); + } catch (RemoteException | RuntimeException e) { + resetProxyAndRequestList("getPhoneCapability", e); + } } } @@ -487,6 +502,49 @@ public class RadioConfig extends Handler { return response; } + static PhoneCapability convertHalPhoneCapability( + android.hardware.radio.config.V1_1.PhoneCapability pc) { + long psDataConnectionLingerTimeMillis = pc.isInternetLingeringSupported ? 1 : 0; + + List logicalModemUuids = new ArrayList<>(); + for (android.hardware.radio.config.V1_1.ModemInfo modemInfo : pc.logicalModemList) { + logicalModemUuids.add("com.xxxx.lm" + modemInfo.modemId); + } + + List> features = new ArrayList<>(); + for (int i = 0; i < pc.maxActiveData; i++) { + List feature = new ArrayList<>(); + feature.add(PhoneCapability.MODEM_FEATURE_PS_VOICE_REG); + features.add(feature); + } + + return new PhoneCapability(0, 0, 0, 0, psDataConnectionLingerTimeMillis, 0, + null, null, null, null, logicalModemUuids, null, features); + } + + static PhoneCapability convertHalPhoneCapability_1_3( + android.hardware.radio.config.V1_3.PhoneCapability pc) { + List simSlotCapabilities = new ArrayList<>(); + for (android.hardware.radio.config.V1_3.SimSlotCapability sc : pc.simSlotCapabilities) { + simSlotCapabilities.add(new SimSlotCapability(sc.physicalSlotId, sc.slotType)); + } + + List> features = new ArrayList<>(); + for (android.hardware.radio.config.V1_3.ConcurrentModemFeatures cmf + : pc.concurrentFeatureSupport) { + features.add(cmf.modemFeatures + .stream() + .mapToLong(Integer::longValue) + .boxed() + .collect(Collectors.toList())); + } + + return new PhoneCapability(pc.utranUeCategoryDl, pc.utranUeCategoryUl, + pc.eutranUeCategoryDl, pc.eutranUeCategoryUl, pc.psDataConnectionLingerTimeMillis, + pc.supportedRats, pc.geranBands, pc.utranBands, pc.eutranBands, pc.ngranBands, + pc.logicalModemUuids, simSlotCapabilities, features); + } + private static void logd(String log) { Rlog.d(TAG, log); } diff --git a/src/java/com/android/internal/telephony/RadioConfigResponse.java b/src/java/com/android/internal/telephony/RadioConfigResponse.java index 475f866411..7ab8d44d0f 100644 --- a/src/java/com/android/internal/telephony/RadioConfigResponse.java +++ b/src/java/com/android/internal/telephony/RadioConfigResponse.java @@ -20,14 +20,12 @@ import android.hardware.radio.V1_0.RadioError; import android.hardware.radio.V1_0.RadioResponseInfo; import android.hardware.radio.config.V1_1.ModemsConfig; import android.hardware.radio.config.V1_2.IRadioConfigResponse; -import android.telephony.ModemInfo; import android.telephony.PhoneCapability; import android.telephony.Rlog; import com.android.internal.telephony.uicc.IccSlotStatus; import java.util.ArrayList; -import java.util.List; /** * This class is the implementation of IRadioConfigResponse interface. @@ -115,23 +113,6 @@ public class RadioConfigResponse extends IRadioConfigResponse.Stub { } } - private PhoneCapability convertHalPhoneCapability( - android.hardware.radio.config.V1_1.PhoneCapability phoneCapability) { - // TODO b/121394331: clean up V1_1.PhoneCapability fields. - int maxActiveVoiceCalls = 0; - int maxActiveData = phoneCapability.maxActiveData; - int max5G = 0; - boolean validationBeforeSwitchSupported = phoneCapability.isInternetLingeringSupported; - List logicalModemList = new ArrayList(); - - for (android.hardware.radio.config.V1_1.ModemInfo - modemInfo : phoneCapability.logicalModemList) { - logicalModemList.add(new ModemInfo(modemInfo.modemId)); - } - - return new PhoneCapability(maxActiveVoiceCalls, maxActiveData, max5G, logicalModemList, - validationBeforeSwitchSupported); - } /** * Response function for IRadioConfig.getPhoneCapability(). */ @@ -140,7 +121,7 @@ public class RadioConfigResponse extends IRadioConfigResponse.Stub { RILRequest rr = mRadioConfig.processResponse(responseInfo); if (rr != null) { - PhoneCapability ret = convertHalPhoneCapability(phoneCapability); + PhoneCapability ret = RadioConfig.convertHalPhoneCapability(phoneCapability); if (responseInfo.error == RadioError.NONE) { // send response RadioResponse.sendMessageResponse(rr.mResult, ret); @@ -157,6 +138,31 @@ public class RadioConfigResponse extends IRadioConfigResponse.Stub { } } + /** + * Response function for IRadioConfig.getPhoneCapability_1_3(). + */ + public void getPhoneCapabilityResponse_1_3(RadioResponseInfo responseInfo, + android.hardware.radio.config.V1_3.PhoneCapability phoneCapability) { + RILRequest rr = mRadioConfig.processResponse(responseInfo); + + if (rr != null) { + PhoneCapability ret = RadioConfig.convertHalPhoneCapability_1_3(phoneCapability); + if (responseInfo.error == RadioError.NONE) { + // send response + RadioResponse.sendMessageResponse(rr.mResult, ret); + Rlog.d(TAG, rr.serialString() + "< " + + mRadioConfig.requestToString(rr.mRequest) + " " + ret.toString()); + } else { + rr.onError(responseInfo.error, ret); + Rlog.e(TAG, rr.serialString() + "< " + + mRadioConfig.requestToString(rr.mRequest) + " error " + + responseInfo.error); + } + } else { + Rlog.e(TAG, "getPhoneCapabilityResponse_1_3: Error " + responseInfo.toString()); + } + } + /** * Response function for IRadioConfig.setPreferredDataModem(). */ diff --git a/tests/telephonytests/src/com/android/internal/telephony/CellularNetworkValidatorTest.java b/tests/telephonytests/src/com/android/internal/telephony/CellularNetworkValidatorTest.java index 155e3eaf66..e564da5722 100644 --- a/tests/telephonytests/src/com/android/internal/telephony/CellularNetworkValidatorTest.java +++ b/tests/telephonytests/src/com/android/internal/telephony/CellularNetworkValidatorTest.java @@ -46,9 +46,9 @@ public class CellularNetworkValidatorTest extends TelephonyTest { private CellularNetworkValidator mValidatorUT; private int mValidatedSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID; private static final PhoneCapability CAPABILITY_WITH_VALIDATION_SUPPORTED = - new PhoneCapability(1, 1, 0, null, true); + new PhoneCapability(0, 0, 0, 0, 1, 0, null, null, null, null, null, null, null); private static final PhoneCapability CAPABILITY_WITHOUT_VALIDATION_SUPPORTED = - new PhoneCapability(1, 1, 0, null, false); + new PhoneCapability(0, 0, 0, 0, 0, 0, null, null, null, null, null, null, null); CellularNetworkValidator.ValidationCallback mCallback = (validated, subId) -> { mValidated = validated; @@ -75,7 +75,7 @@ public class CellularNetworkValidatorTest extends TelephonyTest { */ @Test @SmallTest - public void testValidationSupported() throws Exception { + public void testValidationSupported() { doReturn(CAPABILITY_WITH_VALIDATION_SUPPORTED).when(mPhoneConfigurationManager) .getCurrentPhoneCapability(); assertTrue(mValidatorUT.isValidationFeatureSupported()); @@ -90,7 +90,7 @@ public class CellularNetworkValidatorTest extends TelephonyTest { */ @Test @SmallTest - public void testValidateSuccess() throws Exception { + public void testValidateSuccess() { int subId = 1; int timeout = 1000; NetworkRequest expectedRequest = new NetworkRequest.Builder() @@ -124,7 +124,7 @@ public class CellularNetworkValidatorTest extends TelephonyTest { */ @Test @SmallTest - public void testValidateTimeout() throws Exception { + public void testValidateTimeout() { int subId = 1; int timeout = 100; NetworkRequest expectedRequest = new NetworkRequest.Builder() @@ -159,7 +159,7 @@ public class CellularNetworkValidatorTest extends TelephonyTest { */ @Test @SmallTest - public void testValidateFailure() throws Exception { + public void testValidateFailure() { int subId = 1; int timeout = 100; NetworkRequest expectedRequest = new NetworkRequest.Builder() @@ -192,7 +192,7 @@ public class CellularNetworkValidatorTest extends TelephonyTest { */ @Test @SmallTest - public void testNetworkAvailableNotValidated() throws Exception { + public void testNetworkAvailableNotValidated() { int subId = 1; int timeout = 100; NetworkRequest expectedRequest = new NetworkRequest.Builder() diff --git a/tests/telephonytests/src/com/android/internal/telephony/PhoneCapabilityTest.java b/tests/telephonytests/src/com/android/internal/telephony/PhoneCapabilityTest.java index a504dc14df..53d80b2b22 100644 --- a/tests/telephonytests/src/com/android/internal/telephony/PhoneCapabilityTest.java +++ b/tests/telephonytests/src/com/android/internal/telephony/PhoneCapabilityTest.java @@ -20,9 +20,9 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import android.os.Parcel; -import android.telephony.ModemInfo; +import android.telephony.AccessNetworkConstants.AccessNetworkType; import android.telephony.PhoneCapability; -import android.test.suitebuilder.annotation.SmallTest; +import android.telephony.SimSlotCapability; import org.junit.Test; @@ -31,53 +31,108 @@ import java.util.List; public class PhoneCapabilityTest { @Test - @SmallTest - public void basicTests() throws Exception { - int maxActiveVoiceCalls = 1; - int maxActiveData = 2; - int max5G = 3; - ModemInfo modemInfo = new ModemInfo(1, 2, true, false); - List logicalModemList = new ArrayList<>(); - logicalModemList.add(modemInfo); + public void basicTests() { + int utranUeCategoryDl = 1; + int utranUeCategoryUl = 2; + int eutranUeCategoryDl = 3; + int eutranUeCategoryUl = 4; + long lingerTime = 5; + long supportedRats = 6; + List geranBands = new ArrayList<>(); + geranBands.add(1); + List utranBands = new ArrayList<>(); + utranBands.add(2); + List eutranBands = new ArrayList<>(); + eutranBands.add(3); + List ngranBands = new ArrayList<>(); + ngranBands.add(4); + List logicalModemUuids = new ArrayList<>(); + logicalModemUuids.add("com.google.android.lm0"); + List simSlotCapabilities = new ArrayList<>(); + simSlotCapabilities.add(new SimSlotCapability(1, 2)); + List> concurrentFeaturesSupport = new ArrayList<>(); + List feature = new ArrayList<>(); + feature.add(PhoneCapability.MODEM_FEATURE_CDMA2000_EHRPD_REG); + concurrentFeaturesSupport.add(feature); - PhoneCapability capability = new PhoneCapability(maxActiveVoiceCalls, maxActiveData, max5G, - logicalModemList, false); + PhoneCapability capability = new PhoneCapability(utranUeCategoryDl, utranUeCategoryUl, + eutranUeCategoryDl, eutranUeCategoryUl, lingerTime, + supportedRats, geranBands, utranBands, eutranBands, ngranBands, logicalModemUuids, + simSlotCapabilities, concurrentFeaturesSupport); - assertEquals(maxActiveVoiceCalls, capability.maxActiveVoiceCalls); - assertEquals(maxActiveData, capability.maxActiveData); - assertEquals(max5G, capability.max5G); - assertEquals(1, capability.logicalModemList.size()); - assertEquals(modemInfo, capability.logicalModemList.get(0)); - PhoneCapability toCompare = new PhoneCapability( - maxActiveVoiceCalls + 1, maxActiveData - 1, max5G, logicalModemList, false); - assertEquals(capability, new PhoneCapability( - maxActiveVoiceCalls, maxActiveData, max5G, logicalModemList, false)); + assertEquals(utranUeCategoryDl, capability.getUeCategory(false, AccessNetworkType.UTRAN)); + assertEquals(utranUeCategoryUl, capability.getUeCategory(true, AccessNetworkType.UTRAN)); + assertEquals(eutranUeCategoryDl, capability.getUeCategory(false, AccessNetworkType.EUTRAN)); + assertEquals(eutranUeCategoryUl, capability.getUeCategory(true, AccessNetworkType.EUTRAN)); + assertEquals(lingerTime, capability.getPsDataConnectionLingerTimeMillis()); + assertEquals(supportedRats, capability.getSupportedRats()); + assertEquals(geranBands, capability.getBands(AccessNetworkType.GERAN)); + assertEquals(utranBands, capability.getBands(AccessNetworkType.UTRAN)); + assertEquals(eutranBands, capability.getBands(AccessNetworkType.EUTRAN)); + assertEquals(ngranBands, capability.getBands(AccessNetworkType.NGRAN)); + assertEquals(logicalModemUuids, capability.getLogicalModemUuids()); + assertEquals(simSlotCapabilities, capability.getSimSlotCapabilities()); + assertEquals(concurrentFeaturesSupport, capability.getConcurrentFeaturesSupport()); + + PhoneCapability toCompare = new PhoneCapability(utranUeCategoryDl + 1, + utranUeCategoryUl + 1, eutranUeCategoryDl + 1, eutranUeCategoryUl + 1, + lingerTime + 1, supportedRats + 1, geranBands, utranBands, eutranBands, ngranBands, + logicalModemUuids, simSlotCapabilities, concurrentFeaturesSupport); + assertEquals(capability, new PhoneCapability(utranUeCategoryDl, utranUeCategoryUl, + eutranUeCategoryDl, eutranUeCategoryUl, lingerTime, + supportedRats, geranBands, utranBands, eutranBands, ngranBands, logicalModemUuids, + simSlotCapabilities, concurrentFeaturesSupport)); assertNotEquals(capability, toCompare); } @Test - @SmallTest - public void parcelReadWrite() throws Exception { - int maxActiveVoiceCalls = 1; - int maxActiveData = 2; - int max5G = 3; - ModemInfo modemInfo = new ModemInfo(1, 2, true, false); - List logicalModemList = new ArrayList<>(); - logicalModemList.add(modemInfo); + public void parcelReadWrite() { + int utranUeCategoryDl = 1; + int utranUeCategoryUl = 2; + int eutranUeCategoryDl = 3; + int eutranUeCategoryUl = 4; + long lingerTime = 5; + long supportedRats = 6; + List geranBands = new ArrayList<>(); + geranBands.add(1); + List utranBands = new ArrayList<>(); + utranBands.add(2); + List eutranBands = new ArrayList<>(); + eutranBands.add(3); + List ngranBands = new ArrayList<>(); + ngranBands.add(4); + List logicalModemUuids = new ArrayList<>(); + logicalModemUuids.add("com.google.android.lm0"); + List simSlotCapabilities = new ArrayList<>(); + simSlotCapabilities.add(new SimSlotCapability(1, 2)); + List> concurrentFeaturesSupport = new ArrayList<>(); + List feature = new ArrayList<>(); + feature.add(PhoneCapability.MODEM_FEATURE_NETWORK_SCAN); + concurrentFeaturesSupport.add(feature); - PhoneCapability capability = new PhoneCapability(maxActiveVoiceCalls, maxActiveData, max5G, - logicalModemList, false); + PhoneCapability capability = new PhoneCapability(utranUeCategoryDl, utranUeCategoryUl, + eutranUeCategoryDl, eutranUeCategoryUl, lingerTime, + supportedRats, geranBands, utranBands, eutranBands, ngranBands, logicalModemUuids, + simSlotCapabilities, concurrentFeaturesSupport); Parcel parcel = Parcel.obtain(); capability.writeToParcel(parcel, 0); parcel.setDataPosition(0); PhoneCapability toCompare = PhoneCapability.CREATOR.createFromParcel(parcel); - assertEquals(maxActiveVoiceCalls, toCompare.maxActiveVoiceCalls); - assertEquals(maxActiveData, toCompare.maxActiveData); - assertEquals(max5G, toCompare.max5G); - assertEquals(1, toCompare.logicalModemList.size()); - assertEquals(modemInfo, toCompare.logicalModemList.get(0)); + assertEquals(utranUeCategoryDl, capability.getUeCategory(false, AccessNetworkType.UTRAN)); + assertEquals(utranUeCategoryUl, capability.getUeCategory(true, AccessNetworkType.UTRAN)); + assertEquals(eutranUeCategoryDl, capability.getUeCategory(false, AccessNetworkType.EUTRAN)); + assertEquals(eutranUeCategoryUl, capability.getUeCategory(true, AccessNetworkType.EUTRAN)); + assertEquals(lingerTime, capability.getPsDataConnectionLingerTimeMillis()); + assertEquals(supportedRats, capability.getSupportedRats()); + assertEquals(geranBands, capability.getBands(AccessNetworkType.GERAN)); + assertEquals(utranBands, capability.getBands(AccessNetworkType.UTRAN)); + assertEquals(eutranBands, capability.getBands(AccessNetworkType.EUTRAN)); + assertEquals(ngranBands, capability.getBands(AccessNetworkType.NGRAN)); + assertEquals(logicalModemUuids, capability.getLogicalModemUuids()); + assertEquals(simSlotCapabilities, capability.getSimSlotCapabilities()); + assertEquals(concurrentFeaturesSupport, capability.getConcurrentFeaturesSupport()); assertEquals(capability, toCompare); } } diff --git a/tests/telephonytests/src/com/android/internal/telephony/PhoneSwitcherTest.java b/tests/telephonytests/src/com/android/internal/telephony/PhoneSwitcherTest.java index eef76e89b5..f0056d90d3 100644 --- a/tests/telephonytests/src/com/android/internal/telephony/PhoneSwitcherTest.java +++ b/tests/telephonytests/src/com/android/internal/telephony/PhoneSwitcherTest.java @@ -123,8 +123,8 @@ public class PhoneSwitcherTest extends TelephonyTest { @Before public void setUp() throws Exception { super.setUp(getClass().getSimpleName()); - - PhoneCapability phoneCapability = new PhoneCapability(1, 1, 0, null, false); + PhoneCapability phoneCapability = new PhoneCapability(0, 0, 0, 0, 0, 0, + null, null, null, null, null, null, null); doReturn(phoneCapability).when(mPhoneConfigurationManager).getCurrentPhoneCapability(); doReturn(Call.State.ACTIVE).when(mActiveCall).getState(); diff --git a/tests/telephonytests/src/com/android/internal/telephony/SimSlotCapabilityTest.java b/tests/telephonytests/src/com/android/internal/telephony/SimSlotCapabilityTest.java new file mode 100644 index 0000000000..8763c824a4 --- /dev/null +++ b/tests/telephonytests/src/com/android/internal/telephony/SimSlotCapabilityTest.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * 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. + */ + +package com.android.internal.telephony; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; + +import android.os.Parcel; +import android.telephony.SimSlotCapability; + +import org.junit.Test; + +public class SimSlotCapabilityTest { + @Test + public void basicTests() { + int physicalSlotId = 0; + int slotType = SimSlotCapability.SLOT_TYPE_UICC; + + SimSlotCapability capability = new SimSlotCapability(physicalSlotId, slotType); + assertEquals(physicalSlotId, capability.getPhysicalSlotIndex()); + assertEquals(slotType, capability.getSlotType()); + + SimSlotCapability toCompare = new SimSlotCapability(physicalSlotId + 1, + SimSlotCapability.SLOT_TYPE_IUICC); + assertEquals(capability, new SimSlotCapability(physicalSlotId, slotType)); + assertNotEquals(capability, toCompare); + } + + @Test + public void parcelReadWrite() { + int physicalSlotId = 0; + int slotType = SimSlotCapability.SLOT_TYPE_EUICC; + + SimSlotCapability capability = new SimSlotCapability(physicalSlotId, slotType); + + Parcel parcel = Parcel.obtain(); + capability.writeToParcel(parcel, 0); + parcel.setDataPosition(0); + SimSlotCapability toCompare = SimSlotCapability.CREATOR.createFromParcel(parcel); + + assertEquals(physicalSlotId, capability.getPhysicalSlotIndex()); + assertEquals(slotType, capability.getSlotType()); + assertEquals(capability, toCompare); + } +} diff --git a/tests/telephonytests/src/com/android/internal/telephony/TelephonyRegistryTest.java b/tests/telephonytests/src/com/android/internal/telephony/TelephonyRegistryTest.java index 5720a6bdd0..d4946c634b 100644 --- a/tests/telephonytests/src/com/android/internal/telephony/TelephonyRegistryTest.java +++ b/tests/telephonytests/src/com/android/internal/telephony/TelephonyRegistryTest.java @@ -125,16 +125,17 @@ public class TelephonyRegistryTest extends TelephonyTest { doReturn(mMockSubInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(anyInt()); doReturn(0/*slotIndex*/).when(mMockSubInfo).getSimSlotIndex(); // mTelephonyRegistry.listen with notifyNow = true should trigger callback immediately. - PhoneCapability phoneCapability = new PhoneCapability(1, 2, 3, null, false); + PhoneCapability phoneCapability = new PhoneCapability(1, 2, 3, 4, 5, 6, + null, null, null, null, null, null, null); mTelephonyRegistry.notifyPhoneCapabilityChanged(phoneCapability); mTelephonyRegistry.listenWithFeature(mContext.getOpPackageName(), null, - mPhoneStateListener.callback, - LISTEN_PHONE_CAPABILITY_CHANGE, true); + mPhoneStateListener.callback, LISTEN_PHONE_CAPABILITY_CHANGE, true); processAllMessages(); assertEquals(phoneCapability, mPhoneCapability); // notifyPhoneCapabilityChanged with a new capability. Callback should be triggered. - phoneCapability = new PhoneCapability(3, 2, 2, null, false); + phoneCapability = new PhoneCapability(6, 5, 4, 3, 2, 1, + null, null, null, null, null, null, null); mTelephonyRegistry.notifyPhoneCapabilityChanged(phoneCapability); processAllMessages(); assertEquals(phoneCapability, mPhoneCapability); -- GitLab