DLC: Fix inverted logic for outgoing calls.
The controller uses a "disable outgoing calls" for its storage,
however server passes a "enable outgoing calls" as part of the
configuration.
Currently, the value passed by the server during provisioning
is saved as is by the controller, resulting in an inverted
logic (enabling outgoing calls on the server results in calls
being disabled on the device and vice versa).
Bug: 316418162
Test: atest DeviceLockControllerRoboTests
Change-Id: I77d024d02d030806cc74bd07eae49b474a1835e1
diff --git a/DeviceLockController/src/com/android/devicelockcontroller/provision/grpc/ProvisioningConfiguration.java b/DeviceLockController/src/com/android/devicelockcontroller/provision/grpc/ProvisioningConfiguration.java
index 37698ca..27a981c 100644
--- a/DeviceLockController/src/com/android/devicelockcontroller/provision/grpc/ProvisioningConfiguration.java
+++ b/DeviceLockController/src/com/android/devicelockcontroller/provision/grpc/ProvisioningConfiguration.java
@@ -83,7 +83,7 @@
public Bundle toBundle() {
final Bundle bundle = new Bundle();
bundle.putString(EXTRA_KIOSK_PACKAGE, mKioskAppPackageName);
- bundle.putBoolean(EXTRA_KIOSK_DISABLE_OUTGOING_CALLS, mKioskAppEnableOutgoingCalls);
+ bundle.putBoolean(EXTRA_KIOSK_DISABLE_OUTGOING_CALLS, !mKioskAppEnableOutgoingCalls);
bundle.putBoolean(EXTRA_KIOSK_ENABLE_NOTIFICATIONS_IN_LOCK_TASK_MODE,
mKioskAppEnableEnableNotifications);
bundle.putStringArrayList(EXTRA_KIOSK_ALLOWLIST,
diff --git a/DeviceLockController/tests/robolectric/src/com/android/devicelockcontroller/provision/grpc/ProvisioningConfigurationTest.java b/DeviceLockController/tests/robolectric/src/com/android/devicelockcontroller/provision/grpc/ProvisioningConfigurationTest.java
new file mode 100644
index 0000000..1c9e8f2
--- /dev/null
+++ b/DeviceLockController/tests/robolectric/src/com/android/devicelockcontroller/provision/grpc/ProvisioningConfigurationTest.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2023 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.devicelockcontroller.provision.grpc;
+
+import static com.android.devicelockcontroller.common.DeviceLockConstants.EXTRA_KIOSK_DISABLE_OUTGOING_CALLS;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.os.Bundle;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+import java.util.List;
+
+@RunWith(RobolectricTestRunner.class)
+public final class ProvisioningConfigurationTest {
+ @Test
+ public void configurationToBundle_withOutgoingCallsDisabled_shouldStoreCorrectState() {
+ final Bundle configurationBundle =
+ createProvisioningConfiguration(/* enableOutgoingCalls= */ false).toBundle();
+ assertThat(configurationBundle.getBoolean(EXTRA_KIOSK_DISABLE_OUTGOING_CALLS)).isTrue();
+ }
+
+ @Test
+ public void configurationToBundle_withOutgoingCallsEnabled_shouldStoreCorrectState() {
+ final Bundle configurationBundle =
+ createProvisioningConfiguration(/* enableOutgoingCalls= */ true).toBundle();
+ assertThat(configurationBundle.getBoolean(EXTRA_KIOSK_DISABLE_OUTGOING_CALLS)).isFalse();
+ }
+
+ private static ProvisioningConfiguration createProvisioningConfiguration(
+ boolean enableOutgoingCalls) {
+ return new ProvisioningConfiguration(
+ /* kioskAppProviderName= */ "test_provider",
+ /* kioskAppPackageName= */ "test_package",
+ /* kioskAppAllowlistPackages= */ List.of("test_allowed_app1", "test_allowed_app2"),
+ enableOutgoingCalls,
+ /* kioskAppEnableEnableNotifications= */ true,
+ /* disallowInstallingFromUnknownSources= */ false,
+ /* termsAndConditionsUrl= */ "test_terms_and_configurations_url",
+ /* supportUrl= */ "test_support_url"
+ );
+ }
+}