• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2022 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.networkconnection;
18 
19 import static java.util.Objects.requireNonNull;
20 
21 import android.content.Context;
22 
23 import com.android.managedprovisioning.R;
24 import com.android.managedprovisioning.common.SettingsFacade;
25 import com.android.managedprovisioning.common.Utils;
26 import com.android.managedprovisioning.model.ProvisioningParams;
27 import com.android.managedprovisioning.provisioning.AbstractProvisioningController;
28 import com.android.managedprovisioning.provisioning.ProvisioningControllerCallback;
29 import com.android.managedprovisioning.task.AbstractProvisioningTask;
30 import com.android.managedprovisioning.task.AddWifiNetworkTask;
31 import com.android.managedprovisioning.task.TaskFactory;
32 
33 /**
34  * Controller which establishes network connection.
35  */
36 public final class EstablishNetworkConnectionController extends AbstractProvisioningController {
37 
38     private final Utils mUtils;
39     private final SettingsFacade mSettingsFacade;
40     private final TaskFactory mTaskFactory;
41 
42     /**
43      * Instantiates a new {@link EstablishNetworkConnectionController} instance and creates the
44      * relevant tasks.
45      *
46      * @return the newly created instance
47      */
createInstance( Context context, ProvisioningParams params, int userId, ProvisioningControllerCallback callback, Utils utils, SettingsFacade settingsFacade, TaskFactory taskFactory)48     public static EstablishNetworkConnectionController createInstance(
49             Context context,
50             ProvisioningParams params,
51             int userId,
52             ProvisioningControllerCallback callback,
53             Utils utils,
54             SettingsFacade settingsFacade,
55             TaskFactory taskFactory) {
56         EstablishNetworkConnectionController controller =
57                 new EstablishNetworkConnectionController(context, params, userId, callback,
58                         utils, settingsFacade, taskFactory);
59         controller.setUpTasks();
60         return controller;
61     }
62 
EstablishNetworkConnectionController(Context context, ProvisioningParams params, int userId, ProvisioningControllerCallback callback, Utils utils, SettingsFacade settingsFacade, TaskFactory taskFactory)63     private EstablishNetworkConnectionController(Context context,
64             ProvisioningParams params, int userId,
65             ProvisioningControllerCallback callback,
66             Utils utils,
67             SettingsFacade settingsFacade,
68             TaskFactory taskFactory) {
69         super(context, params, userId, callback);
70         mUtils = requireNonNull(utils);
71         mSettingsFacade = requireNonNull(settingsFacade);
72         mTaskFactory = requireNonNull(taskFactory);
73     }
74 
75     @Override
setUpTasks()76     protected void setUpTasks() {
77         if (mParams.wifiInfo != null) {
78             addTasks(mTaskFactory.createAddWifiNetworkTask(mContext, mParams, this));
79         } else if (mParams.useMobileData) {
80             addTasks(mTaskFactory.createConnectMobileNetworkTask(mContext, mParams, this));
81         }
82     }
83 
84     @Override
getErrorTitle()85     protected int getErrorTitle() {
86         return R.string.cant_set_up_device;
87     }
88 
89     @Override
getErrorMsgId(AbstractProvisioningTask task, int errorCode)90     protected String getErrorMsgId(AbstractProvisioningTask task, int errorCode) {
91         if (task instanceof AddWifiNetworkTask) {
92             return mContext.getString(R.string.error_wifi);
93         }
94         return mContext.getString(R.string.cant_set_up_device);
95     }
96 
97     @Override
getRequireFactoryReset(AbstractProvisioningTask task, int errorCode)98     protected boolean getRequireFactoryReset(AbstractProvisioningTask task, int errorCode) {
99         // No irreversible action was done since this controller only handles network connection.
100         // No need to factory reset.
101         return false;
102     }
103 }
104