1 package com.android.onboarding.contracts.provisioning 2 3 import android.app.admin.DevicePolicyManager 4 import android.os.Build 5 import androidx.annotation.RequiresApi 6 7 @RequiresApi(Build.VERSION_CODES.Q) 8 enum class ProvisioningMode(val id: Int) { 9 FullyManagedDevice(DevicePolicyManager.PROVISIONING_MODE_FULLY_MANAGED_DEVICE), 10 11 ManagedProfile(DevicePolicyManager.PROVISIONING_MODE_MANAGED_PROFILE), 12 13 ManagedProfileOnPersonalDevice( 14 DevicePolicyManager.PROVISIONING_MODE_MANAGED_PROFILE_ON_PERSONAL_DEVICE 15 ); 16 17 companion object { invokenull18 operator fun invoke(id: Int): ProvisioningMode = 19 when (id) { 20 FullyManagedDevice.id -> FullyManagedDevice 21 ManagedProfile.id -> ManagedProfile 22 ManagedProfileOnPersonalDevice.id -> ManagedProfileOnPersonalDevice 23 else -> error("Unknown ProvisioningMode(id=$id)") 24 } 25 } 26 } 27