1 /* 2 * Copyright 2019, The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.managedprovisioning.provisioning; 18 19 import android.content.Context; 20 21 import com.android.managedprovisioning.R; 22 import com.android.managedprovisioning.model.ProvisioningParams; 23 import com.android.managedprovisioning.task.AbstractProvisioningTask; 24 import com.android.managedprovisioning.task.DeviceOwnerInitializeProvisioningTask; 25 import com.android.managedprovisioning.task.DisallowAddUserTask; 26 import com.android.managedprovisioning.task.SetDeviceOwnerPolicyTask; 27 28 /** 29 * Controller for financed device provisioning. 30 */ 31 // TODO(b/178711424): move any business logic from here into the framework. 32 public final class FinancedDeviceProvisioningController extends AbstractProvisioningController { 33 34 /** 35 * Instantiates a new {@link FinancedDeviceProvisioningController} instance and creates the 36 * relevant tasks. 37 * 38 * @return the newly created instance 39 */ createInstance( Context context, ProvisioningParams params, int userId, ProvisioningControllerCallback callback)40 static FinancedDeviceProvisioningController createInstance( 41 Context context, 42 ProvisioningParams params, 43 int userId, 44 ProvisioningControllerCallback callback) { 45 FinancedDeviceProvisioningController controller = 46 new FinancedDeviceProvisioningController(context, params, userId, callback); 47 controller.setUpTasks(); 48 return controller; 49 } 50 FinancedDeviceProvisioningController( Context context, ProvisioningParams params, int userId, ProvisioningControllerCallback callback)51 private FinancedDeviceProvisioningController( 52 Context context, 53 ProvisioningParams params, 54 int userId, 55 ProvisioningControllerCallback callback) { 56 super(context, params, userId, callback); 57 } 58 59 @Override setUpTasks()60 protected void setUpTasks() { 61 addTasks(new DeviceOwnerInitializeProvisioningTask(mContext, mParams, this)); 62 63 addDownloadAndInstallDeviceOwnerPackageTasks(); 64 65 addTasks( 66 new SetDeviceOwnerPolicyTask(mContext, mParams, this), 67 new DisallowAddUserTask(mContext, mParams, this)); 68 } 69 70 @Override getErrorTitle()71 protected int getErrorTitle() { 72 return R.string.something_went_wrong; 73 } 74 75 @Override getErrorMsgId(AbstractProvisioningTask task, int errorCode)76 protected int getErrorMsgId(AbstractProvisioningTask task, int errorCode) { 77 return R.string.reset_device; 78 } 79 80 @Override getRequireFactoryReset(AbstractProvisioningTask task, int errorCode)81 protected boolean getRequireFactoryReset(AbstractProvisioningTask task, int errorCode) { 82 return true; 83 } 84 } 85