1 /*
2  * Copyright (C) 2014 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.systemui.volume;
18 
19 import android.content.Context;
20 import android.content.res.Configuration;
21 import android.os.Handler;
22 import android.util.Log;
23 
24 import com.android.systemui.R;
25 import com.android.systemui.SystemUI;
26 import com.android.systemui.dagger.SysUISingleton;
27 import com.android.systemui.qs.tiles.DndTile;
28 
29 import java.io.FileDescriptor;
30 import java.io.PrintWriter;
31 
32 import javax.inject.Inject;
33 
34 @SysUISingleton
35 public class VolumeUI extends SystemUI {
36     private static final String TAG = "VolumeUI";
37     private static boolean LOGD = Log.isLoggable(TAG, Log.DEBUG);
38 
39     private final Handler mHandler = new Handler();
40 
41     private boolean mEnabled;
42     private VolumeDialogComponent mVolumeComponent;
43 
44     @Inject
VolumeUI(Context context, VolumeDialogComponent volumeDialogComponent)45     public VolumeUI(Context context, VolumeDialogComponent volumeDialogComponent) {
46         super(context);
47         mVolumeComponent = volumeDialogComponent;
48     }
49 
50     @Override
start()51     public void start() {
52         boolean enableVolumeUi = mContext.getResources().getBoolean(R.bool.enable_volume_ui);
53         boolean enableSafetyWarning =
54             mContext.getResources().getBoolean(R.bool.enable_safety_warning);
55         mEnabled = enableVolumeUi || enableSafetyWarning;
56         if (!mEnabled) return;
57 
58         mVolumeComponent.setEnableDialogs(enableVolumeUi, enableSafetyWarning);
59         setDefaultVolumeController();
60     }
61 
62     @Override
onConfigurationChanged(Configuration newConfig)63     protected void onConfigurationChanged(Configuration newConfig) {
64         super.onConfigurationChanged(newConfig);
65         if (!mEnabled) return;
66         mVolumeComponent.onConfigurationChanged(newConfig);
67     }
68 
69     @Override
dump(FileDescriptor fd, PrintWriter pw, String[] args)70     public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
71         pw.print("mEnabled="); pw.println(mEnabled);
72         if (!mEnabled) return;
73         mVolumeComponent.dump(fd, pw, args);
74     }
75 
setDefaultVolumeController()76     private void setDefaultVolumeController() {
77         DndTile.setVisible(mContext, true);
78         if (LOGD) Log.d(TAG, "Registering default volume controller");
79         mVolumeComponent.register();
80     }
81 }
82