• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.DownloadPackageTask;
27 import com.android.managedprovisioning.task.InstallPackageTask;
28 import com.android.managedprovisioning.task.SetDevicePolicyTask;
29 import com.android.managedprovisioning.task.VerifyPackageTask;
30 
31 /**
32  * Controller for financed device provisioning.
33  */
34 public final class FinancedDeviceProvisioningController extends AbstractProvisioningController  {
35 
FinancedDeviceProvisioningController( Context context, ProvisioningParams params, int userId, ProvisioningControllerCallback callback)36     public FinancedDeviceProvisioningController(
37             Context context,
38             ProvisioningParams params,
39             int userId,
40             ProvisioningControllerCallback callback) {
41         super(context, params, userId, callback);
42     }
43 
44     @Override
setUpTasks()45     protected void setUpTasks() {
46         addTasks(new DeviceOwnerInitializeProvisioningTask(mContext, mParams, this));
47 
48         if (mParams.deviceAdminDownloadInfo != null) {
49             DownloadPackageTask downloadTask = new DownloadPackageTask(mContext, mParams, this);
50             addTasks(downloadTask,
51                     new VerifyPackageTask(downloadTask, mContext, mParams, this),
52                     new InstallPackageTask(downloadTask, mContext, mParams, this));
53         }
54         addTasks(
55                 new SetDevicePolicyTask(mContext, mParams, this),
56                 new DisallowAddUserTask(mContext, mParams, this));
57     }
58 
59     @Override
performCleanup()60     protected void performCleanup() {
61         // do nothing here because factory reset will be enforced
62     }
63 
64     @Override
getErrorTitle()65     protected int getErrorTitle() {
66         return R.string.something_went_wrong;
67     }
68 
69     @Override
getErrorMsgId(AbstractProvisioningTask task, int errorCode)70     protected int getErrorMsgId(AbstractProvisioningTask task, int errorCode) {
71         return R.string.reset_device;
72     }
73 
74     @Override
getRequireFactoryReset(AbstractProvisioningTask task, int errorCode)75     protected boolean getRequireFactoryReset(AbstractProvisioningTask task, int errorCode) {
76         return true;
77     }
78 }
79