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.CoreStartable;
25 import com.android.systemui.R;
26 import com.android.systemui.dagger.SysUISingleton;
27 import com.android.systemui.qs.tiles.DndTile;
28 
29 import java.io.PrintWriter;
30 
31 import javax.inject.Inject;
32 
33 @SysUISingleton
34 public class VolumeUI implements CoreStartable {
35     private static final String TAG = "VolumeUI";
36     private static boolean LOGD = Log.isLoggable(TAG, Log.DEBUG);
37 
38     private final Handler mHandler = new Handler();
39 
40     private boolean mEnabled;
41     private final Context mContext;
42     private VolumeDialogComponent mVolumeComponent;
43 
44     @Inject
VolumeUI(Context context, VolumeDialogComponent volumeDialogComponent)45     public VolumeUI(Context context, VolumeDialogComponent volumeDialogComponent) {
46         mContext = 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     public void onConfigurationChanged(Configuration newConfig) {
64         if (!mEnabled) return;
65         mVolumeComponent.onConfigurationChanged(newConfig);
66     }
67 
68     @Override
dump(PrintWriter pw, String[] args)69     public void dump(PrintWriter pw, String[] args) {
70         pw.print("mEnabled="); pw.println(mEnabled);
71         if (!mEnabled) return;
72         mVolumeComponent.dump(pw, args);
73     }
74 
setDefaultVolumeController()75     private void setDefaultVolumeController() {
76         DndTile.setVisible(mContext, true);
77         if (LOGD) Log.d(TAG, "Registering default volume controller");
78         mVolumeComponent.register();
79     }
80 }
81