• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2018 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.car.settings.users;
18 
19 import android.car.user.CarUserManagerHelper;
20 import android.content.pm.UserInfo;
21 import android.os.AsyncTask;
22 
23 /**
24  * Task to add a new user to the device
25  */
26 public class AddNewUserTask extends AsyncTask<String, Void, UserInfo> {
27     private final CarUserManagerHelper mCarUserManagerHelper;
28     private final AddNewUserListener mAddNewUserListener;
29 
AddNewUserTask(CarUserManagerHelper helper, AddNewUserListener addNewUserListener)30     public AddNewUserTask(CarUserManagerHelper helper, AddNewUserListener addNewUserListener) {
31         mCarUserManagerHelper = helper;
32         mAddNewUserListener = addNewUserListener;
33     }
34 
35     @Override
doInBackground(String... userNames)36     protected UserInfo doInBackground(String... userNames) {
37         // Default to create a non admin user for now. Need to add logic
38         // for user to choose whether they want to create an admin or non-admin
39         // user later.
40         return mCarUserManagerHelper.createNewNonAdminUser(userNames[0]);
41     }
42 
43     @Override
onPreExecute()44     protected void onPreExecute() {
45     }
46 
47     @Override
onPostExecute(UserInfo user)48     protected void onPostExecute(UserInfo user) {
49         mAddNewUserListener.onUserAdded();
50         if (user != null) {
51             mCarUserManagerHelper.switchToUser(user);
52         }
53     }
54 
55     /**
56      * Interface for getting notified when AddNewUserTask has been completed.
57      */
58     public interface AddNewUserListener {
59         /**
60          * Invoked in AddNewUserTask.onPostExecute after the task has been completed.
61          */
onUserAdded()62         void onUserAdded();
63     }
64 }
65