aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoonhun Shin <joonhunshin@google.com>2022-05-04 02:09:14 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-05-04 02:09:14 +0000
commitd5b08f9b046c432bcfaca6f81dcf42d32f7b54ea (patch)
tree538649dcb1f0a62b4ad68bbd68e963482d7ebaed
parente088187de67352341095d71911ba8b3add4b27a2 (diff)
parentdacf53ff8cab302c763b94e7cce1894984ffa217 (diff)
downloadims-d5b08f9b046c432bcfaca6f81dcf42d32f7b54ea.tar.gz
Merge "ImsProvisioningController returns provisioned when provisoning has not completed" into tm-dev am: a19e683c8b am: dacf53ff8c
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/opt/net/ims/+/18032083 Change-Id: I1df9e59c9f2245a6f01cecad9f0b060e6ebf246b Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--src/java/com/android/ims/ImsManager.java38
-rw-r--r--tests/src/com/android/ims/ImsManagerTest.java171
2 files changed, 18 insertions, 191 deletions
diff --git a/src/java/com/android/ims/ImsManager.java b/src/java/com/android/ims/ImsManager.java
index e212ee0b..257aef91 100644
--- a/src/java/com/android/ims/ImsManager.java
+++ b/src/java/com/android/ims/ImsManager.java
@@ -849,12 +849,7 @@ public class ImsManager implements FeatureUpdates {
* Indicates whether VoLTE is provisioned on this slot.
*/
public boolean isVolteProvisionedOnDevice() {
- // check new carrier config first KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
- // if that returns false, check deprecated carrier config
- // KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
- if (isMmTelProvisioningRequired(CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE) ||
- getBooleanCarrierConfig(
- CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL)) {
+ if (isMmTelProvisioningRequired(CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_LTE)) {
return isVolteProvisioned();
}
@@ -865,12 +860,7 @@ public class ImsManager implements FeatureUpdates {
* Indicates whether EAB is provisioned on this slot.
*/
public boolean isEabProvisionedOnDevice() {
- // check new carrier config first KEY_RCS_REQUIRES_PROVISIONING_BUNDLE
- // if that returns false, check deprecated carrier config
- // KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL
- if (isRcsProvisioningRequired(CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_LTE) ||
- getBooleanCarrierConfig(
- CarrierConfigManager.KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL)) {
+ if (isRcsProvisioningRequired(CAPABILITY_TYPE_PRESENCE_UCE, REGISTRATION_TECH_LTE)) {
return isEabProvisioned();
}
@@ -910,12 +900,7 @@ public class ImsManager implements FeatureUpdates {
}
}
- // check new carrier config first KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
- // if that returns false, check deprecated carrier config
- // KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
- if (isMmTelProvisioningRequired(CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_IWLAN)
- || getBooleanCarrierConfig(
- CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL)) {
+ if (isMmTelProvisioningRequired(CAPABILITY_TYPE_VOICE, REGISTRATION_TECH_IWLAN)) {
return isWfcProvisioned();
}
@@ -942,12 +927,7 @@ public class ImsManager implements FeatureUpdates {
* Indicates whether VT is provisioned on slot.
*/
public boolean isVtProvisionedOnDevice() {
- // check new carrier config first KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
- // if that returns false, check deprecated carrier config
- // KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
- if (isMmTelProvisioningRequired(CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_LTE) ||
- getBooleanCarrierConfig(
- CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL)) {
+ if (isMmTelProvisioningRequired(CAPABILITY_TYPE_VIDEO, REGISTRATION_TECH_LTE)) {
return isVtProvisioned();
}
@@ -1653,7 +1633,7 @@ public class ImsManager implements FeatureUpdates {
}
try {
- return iTelephony.getImsProvisioningStatusForCapability(subId, capability, tech);
+ return iTelephony.getImsProvisioningStatusForCapability(subId, capability, tech);
} catch (RemoteException e) {
logw("getImsProvisionedBoolNoException: operation failed for capability=" + capability
+ ". Exception:" + e.getMessage() + ". Returning false.");
@@ -1679,7 +1659,7 @@ public class ImsManager implements FeatureUpdates {
}
try {
- return iTelephony.getRcsProvisioningStatusForCapability(subId, capability, tech);
+ return iTelephony.getRcsProvisioningStatusForCapability(subId, capability, tech);
} catch (RemoteException e) {
logw("getRcsProvisionedBoolNoException: operation failed for capability=" + capability
+ ". Exception:" + e.getMessage() + ". Returning false.");
@@ -3175,8 +3155,8 @@ public class ImsManager implements FeatureUpdates {
boolean required = false;
try {
- required |= iTelephony.isProvisioningRequiredForCapability(subId, capability,
- tech);
+ required = iTelephony.isProvisioningRequiredForCapability(subId, capability,
+ tech);
} catch (RemoteException e) {
logw("isMmTelProvisioningRequired couldn't reach telephony!");
}
@@ -3200,7 +3180,7 @@ public class ImsManager implements FeatureUpdates {
boolean required = false;
try {
- required |= iTelephony.isRcsProvisioningRequiredForCapability(subId, capability,
+ required = iTelephony.isRcsProvisioningRequiredForCapability(subId, capability,
tech);
} catch (RemoteException e) {
logw("isRcsProvisioningRequired couldn't reach telephony!");
diff --git a/tests/src/com/android/ims/ImsManagerTest.java b/tests/src/com/android/ims/ImsManagerTest.java
index aaa332c6..42f110dc 100644
--- a/tests/src/com/android/ims/ImsManagerTest.java
+++ b/tests/src/com/android/ims/ImsManagerTest.java
@@ -308,106 +308,23 @@ public class ImsManagerTest extends ImsTestBase {
}
@Test
- public void testGetProvisionedValues() throws Exception {
- ImsManager imsManager = getImsManagerAndInitProvisionedValues();
-
- assertEquals(true, imsManager.isWfcProvisionedOnDevice());
- verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
- anyInt(),
- eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN));
- clearInvocations(mITelephony);
-
- assertEquals(true, imsManager.isVtProvisionedOnDevice());
- verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
- anyInt(),
- eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
- clearInvocations(mITelephony);
-
- assertEquals(true, imsManager.isVolteProvisionedOnDevice());
- verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
- anyInt(),
- eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
- clearInvocations(mITelephony);
-
- // If we call get again, times should still be one because the value should be fetched
- // from cache.
- assertEquals(true, imsManager.isWfcProvisionedOnDevice());
- verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
- anyInt(),
- eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN));
- clearInvocations(mITelephony);
-
- assertEquals(true, imsManager.isVtProvisionedOnDevice());
- verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
- anyInt(),
- eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
- clearInvocations(mITelephony);
-
- assertEquals(true, imsManager.isVolteProvisionedOnDevice());
- verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
- anyInt(),
- eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
- clearInvocations(mITelephony);
-
- assertEquals(true, imsManager.isEabProvisionedOnDevice());
- verify(mITelephony, times(1)).getRcsProvisioningStatusForCapability(
- anyInt(),
- eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
- }
-
- @Test
public void testGetProvisionedValuesForWfc() throws Exception {
ImsManager imsManager = getImsManagerAndInitProvisionedValues();
- // defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
- // not defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
mMmTelProvisioningRequired = true;
- mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
- false);
assertEquals(true, imsManager.isWfcProvisionedOnDevice());
- verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
- anyInt(),
- eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN));
verify(mITelephony, times(1)).
isProvisioningRequiredForCapability(anyInt(),
eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
eq(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN));
- clearInvocations(mITelephony);
-
- // defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
- // not defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
- mMmTelProvisioningRequired = false;
- mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
- true);
- assertEquals(true, imsManager.isWfcProvisionedOnDevice());
verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
anyInt(),
eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
eq(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN));
- verify(mITelephony, times(1)).
- isProvisioningRequiredForCapability(anyInt(),
- eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN));
clearInvocations(mITelephony);
- // defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
- // not defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
mMmTelProvisioningRequired = false;
- mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
- false);
assertEquals(true, imsManager.isWfcProvisionedOnDevice());
- verify(mITelephony, never()).getImsProvisioningStatusForCapability(
- anyInt(),
- eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN));
verify(mITelephony, times(1)).
isProvisioningRequiredForCapability(anyInt(),
eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
@@ -419,46 +336,19 @@ public class ImsManagerTest extends ImsTestBase {
public void testGetProvisionedValuesForVt() throws Exception {
ImsManager imsManager = getImsManagerAndInitProvisionedValues();
- // defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
- // not defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
mMmTelProvisioningRequired = true;
- mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
- false);
assertEquals(true, imsManager.isVtProvisionedOnDevice());
- verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
- anyInt(),
- eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
verify(mITelephony, times(1)).isProvisioningRequiredForCapability(anyInt(),
eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO),
eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
- clearInvocations(mITelephony);
-
- // not defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
- // defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
- mMmTelProvisioningRequired = false;
- mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
- true);
- assertEquals(true, imsManager.isVtProvisionedOnDevice());
verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
anyInt(),
eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO),
eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
- verify(mITelephony, times(1)).isProvisioningRequiredForCapability(anyInt(),
- eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
clearInvocations(mITelephony);
- // not defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
- // not defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
mMmTelProvisioningRequired = false;
- mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
- false);
assertEquals(true, imsManager.isVtProvisionedOnDevice());
- verify(mITelephony, never()).getImsProvisioningStatusForCapability(
- anyInt(),
- eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
verify(mITelephony, times(1)).isProvisioningRequiredForCapability(anyInt(),
eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VIDEO),
eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
@@ -469,46 +359,19 @@ public class ImsManagerTest extends ImsTestBase {
public void testGetProvisionedValuesForVolte() throws Exception {
ImsManager imsManager = getImsManagerAndInitProvisionedValues();
- // defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
- // not defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
mMmTelProvisioningRequired = true;
- mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
- false);
assertEquals(true, imsManager.isVolteProvisionedOnDevice());
- verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
- anyInt(),
- eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
verify(mITelephony, times(1)).isProvisioningRequiredForCapability(anyInt(),
eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
- clearInvocations(mITelephony);
-
- // not defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
- // defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
- mMmTelProvisioningRequired = false;
- mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
- true);
- assertEquals(true, imsManager.isVolteProvisionedOnDevice());
verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
anyInt(),
eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
- verify(mITelephony, times(1)).isProvisioningRequiredForCapability(anyInt(),
- eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
clearInvocations(mITelephony);
- // not defined : KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
- // not defined : KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL
mMmTelProvisioningRequired = false;
- mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL,
- false);
assertEquals(true, imsManager.isVolteProvisionedOnDevice());
- verify(mITelephony, never()).getImsProvisioningStatusForCapability(
- anyInt(),
- eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
verify(mITelephony, times(1)).isProvisioningRequiredForCapability(anyInt(),
eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
@@ -519,43 +382,19 @@ public class ImsManagerTest extends ImsTestBase {
public void testGetProvisionedValuesForEab() throws Exception {
ImsManager imsManager = getImsManagerAndInitProvisionedValues();
- // defined : KEY_RCS_REQUIRES_PROVISIONING_BUNDLE
- // not defined : KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL
mRcsProvisioningRequired = true;
- mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL, false);
assertEquals(true, imsManager.isEabProvisionedOnDevice());
- verify(mITelephony, times(1)).getRcsProvisioningStatusForCapability(
- anyInt(),
- eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
verify(mITelephony, times(1)).isRcsProvisioningRequiredForCapability(anyInt(),
eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),
eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
- clearInvocations(mITelephony);
-
- // not defined : KEY_RCS_REQUIRES_PROVISIONING_BUNDLE
- // defined : KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL
- mRcsProvisioningRequired = false;
- mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL, true);
- assertEquals(true, imsManager.isEabProvisionedOnDevice());
verify(mITelephony, times(1)).getRcsProvisioningStatusForCapability(
anyInt(),
eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),
eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
- verify(mITelephony, times(1)).isRcsProvisioningRequiredForCapability(anyInt(),
- eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
clearInvocations(mITelephony);
- // not defined : KEY_RCS_REQUIRES_PROVISIONING_BUNDLE
- // not defined : KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL
mRcsProvisioningRequired = false;
- mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL, false);
assertEquals(true, imsManager.isEabProvisionedOnDevice());
- verify(mITelephony, never()).getRcsProvisioningStatusForCapability(
- anyInt(),
- eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),
- eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
verify(mITelephony, times(1)).isRcsProvisioningRequiredForCapability(anyInt(),
eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),
eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
@@ -566,8 +405,12 @@ public class ImsManagerTest extends ImsTestBase {
public void testSetProvisionedValues() throws Exception {
ImsManager imsManager = getImsManagerAndInitProvisionedValues();
+ mMmTelProvisioningRequired = true;
assertEquals(true, imsManager.isWfcProvisionedOnDevice());
-
+ verify(mITelephony, times(1)).
+ isProvisioningRequiredForCapability(anyInt(),
+ eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
+ eq(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN));
verify(mITelephony, times(1)).getImsProvisioningStatusForCapability(
anyInt(),
eq(MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_VOICE),
@@ -597,8 +440,12 @@ public class ImsManagerTest extends ImsTestBase {
public void testEabSetProvisionedValues() throws Exception {
ImsManager imsManager = getImsManagerAndInitProvisionedValues();
+ mRcsProvisioningRequired = true;
assertEquals(true, imsManager.isEabProvisionedOnDevice());
+ verify(mITelephony, times(1)).isRcsProvisioningRequiredForCapability(anyInt(),
+ eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),
+ eq(ImsRegistrationImplBase.REGISTRATION_TECH_LTE));
verify(mITelephony, times(1)).getRcsProvisioningStatusForCapability(
anyInt(),
eq(RcsFeature.RcsImsCapabilities.CAPABILITY_TYPE_PRESENCE_UCE),