FinalizationActivity executed without work profile
Introduces better null handling for now to make it easier to debug. Does not fix the underlying issue.
Test: N/A
Bug: b/252983857
Change-Id: I2c093b84d8151a0a5db26ed698f3849949c94390
diff --git a/src/com/android/managedprovisioning/common/Utils.java b/src/com/android/managedprovisioning/common/Utils.java
index b579aa2..86e1ab0 100644
--- a/src/com/android/managedprovisioning/common/Utils.java
+++ b/src/com/android/managedprovisioning/common/Utils.java
@@ -26,6 +26,8 @@
import static java.util.Objects.requireNonNull;
+import static java.util.Objects.requireNonNull;
+
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.StringRes;
@@ -357,9 +359,12 @@
* <p>Note that we currently only support one managed profile per device.
*/
// TODO: Add unit tests
+ @Nullable
public UserHandle getManagedProfile(Context context) {
DevicePolicyManager devicePolicyManager =
- context.getSystemService(DevicePolicyManager.class);
+ requireNonNull(
+ /* obj= */ context.getSystemService(DevicePolicyManager.class),
+ /* message= */ "Unable to obtain DevicePolicyManager");
int currentUserId = UserHandle.myUserId();
List<UserHandle> managedProfiles =
devicePolicyManager.getPolicyManagedProfiles(UserHandle.of(currentUserId));
diff --git a/src/com/android/managedprovisioning/finalization/FinalizationController.java b/src/com/android/managedprovisioning/finalization/FinalizationController.java
index 7af64e8..1abfa84 100644
--- a/src/com/android/managedprovisioning/finalization/FinalizationController.java
+++ b/src/com/android/managedprovisioning/finalization/FinalizationController.java
@@ -21,6 +21,8 @@
import static com.android.internal.util.Preconditions.checkNotNull;
+import static java.util.Objects.requireNonNull;
+
import android.annotation.IntDef;
import android.app.NotificationManager;
import android.content.Context;
@@ -164,8 +166,11 @@
mProvisioningFinalizedResult = PROVISIONING_FINALIZED_RESULT_NO_CHILD_ACTIVITY_LAUNCHED;
if (params.provisioningAction.equals(ACTION_PROVISION_MANAGED_PROFILE)) {
- UserManager userManager = mContext.getSystemService(UserManager.class);
- if (!userManager.isUserUnlocked(mUtils.getManagedProfile(mContext))) {
+ var userManager = requireNonNull(
+ /* obj= */ mContext.getSystemService(UserManager.class),
+ /* message= */ "Unable to obtain UserManager");
+ var userHandle = mUtils.getManagedProfile(mContext);
+ if (!userManager.isUserUnlocked(userHandle)) {
mProvisioningFinalizedResult =
PROVISIONING_FINALIZED_RESULT_WAIT_FOR_WORK_PROFILE_AVAILABLE;
} else {
@@ -183,7 +188,8 @@
/**
* @throws IllegalStateException if {@link #provisioningFinalized()} was not called before.
*/
- @ProvisioningFinalizedResult int getProvisioningFinalizedResult() {
+ @ProvisioningFinalizedResult
+ int getProvisioningFinalizedResult() {
if (mProvisioningFinalizedResult == 0) {
throw new IllegalStateException("provisioningFinalized() has not been called.");
}