1 /* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file 5 * except in compliance with the License. You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software distributed under the 10 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 * KIND, either express or implied. See the License for the specific language governing 12 * permissions and limitations under the License. 13 */ 14 15 package com.android.systemui.statusbar.policy; 16 17 import android.provider.Settings; 18 19 import com.android.systemui.statusbar.policy.DeviceProvisionedController.DeviceProvisionedListener; 20 21 /** 22 * Controller to cache in process the state of the device provisioning. 23 * <p> 24 * This controller keeps track of the values of device provisioning and user setup complete 25 */ 26 public interface DeviceProvisionedController extends CallbackController<DeviceProvisionedListener> { 27 28 /** 29 * @return whether the device is provisioned 30 * @see Settings.Global#DEVICE_PROVISIONED 31 */ isDeviceProvisioned()32 boolean isDeviceProvisioned(); 33 34 /** 35 * @deprecated use {@link com.android.systemui.settings.UserTracker} 36 */ 37 @Deprecated getCurrentUser()38 int getCurrentUser(); 39 40 /** 41 * @param user the user to query 42 * @return whether that user has completed the user setup 43 * @see Settings.Secure#USER_SETUP_COMPLETE 44 */ isUserSetup(int user)45 boolean isUserSetup(int user); 46 47 /** 48 * @see DeviceProvisionedController#isUserSetup 49 */ isCurrentUserSetup()50 boolean isCurrentUserSetup(); 51 52 /** 53 * Interface to provide calls when the values tracked change 54 */ 55 interface DeviceProvisionedListener { 56 /** 57 * Call when the device changes from not provisioned to provisioned 58 */ onDeviceProvisionedChanged()59 default void onDeviceProvisionedChanged() { } 60 61 /** 62 * Call on user switched 63 */ onUserSwitched()64 default void onUserSwitched() { 65 onUserSetupChanged(); 66 } 67 68 /** 69 * Call when some user changes from not provisioned to provisioned 70 */ onUserSetupChanged()71 default void onUserSetupChanged() { } 72 } 73 } 74