• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.globalactions;
16 
17 import static android.app.StatusBarManager.DISABLE2_GLOBAL_ACTIONS;
18 
19 import android.content.Context;
20 
21 import com.android.systemui.plugins.GlobalActions;
22 import com.android.systemui.statusbar.BlurUtils;
23 import com.android.systemui.statusbar.CommandQueue;
24 import com.android.systemui.statusbar.policy.DeviceProvisionedController;
25 import com.android.systemui.statusbar.policy.KeyguardStateController;
26 
27 import javax.inject.Inject;
28 
29 public class GlobalActionsImpl implements GlobalActions, CommandQueue.Callbacks {
30 
31     private final Context mContext;
32     private final KeyguardStateController mKeyguardStateController;
33     private final DeviceProvisionedController mDeviceProvisionedController;
34     private final BlurUtils mBlurUtils;
35     private final CommandQueue mCommandQueue;
36     private final GlobalActionsDialogLite mGlobalActionsDialog;
37     private boolean mDisabled;
38     private ShutdownUi mShutdownUi;
39 
40     @Inject
GlobalActionsImpl(Context context, CommandQueue commandQueue, GlobalActionsDialogLite globalActionsDialog, BlurUtils blurUtils, KeyguardStateController keyguardStateController, DeviceProvisionedController deviceProvisionedController, ShutdownUi shutdownUi)41     public GlobalActionsImpl(Context context, CommandQueue commandQueue,
42             GlobalActionsDialogLite globalActionsDialog, BlurUtils blurUtils,
43             KeyguardStateController keyguardStateController,
44             DeviceProvisionedController deviceProvisionedController,
45             ShutdownUi shutdownUi) {
46         mContext = context;
47         mGlobalActionsDialog = globalActionsDialog;
48         mKeyguardStateController = keyguardStateController;
49         mDeviceProvisionedController = deviceProvisionedController;
50         mCommandQueue = commandQueue;
51         mBlurUtils = blurUtils;
52         mCommandQueue.addCallback(this);
53         mShutdownUi = shutdownUi;
54     }
55 
56     @Override
destroy()57     public void destroy() {
58         mCommandQueue.removeCallback(this);
59         mGlobalActionsDialog.destroy();
60     }
61 
62     @Override
showGlobalActions(GlobalActionsManager manager)63     public void showGlobalActions(GlobalActionsManager manager) {
64         if (mDisabled) return;
65         mGlobalActionsDialog.showOrHideDialog(mKeyguardStateController.isShowing(),
66                 mDeviceProvisionedController.isDeviceProvisioned(), null /* view */);
67     }
68 
69     @Override
showShutdownUi(boolean isReboot, String reason)70     public void showShutdownUi(boolean isReboot, String reason) {
71         mShutdownUi.showShutdownUi(isReboot, reason);
72     }
73     @Override
disable(int displayId, int state1, int state2, boolean animate)74     public void disable(int displayId, int state1, int state2, boolean animate) {
75         final boolean disabled = (state2 & DISABLE2_GLOBAL_ACTIONS) != 0;
76         if (displayId != mContext.getDisplayId() || disabled == mDisabled) return;
77         mDisabled = disabled;
78         if (disabled) {
79             mGlobalActionsDialog.dismissDialog();
80         }
81     }
82 }
83