• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2010 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.statusbar.tablet;
18 
19 import android.app.StatusBarManager;
20 import android.content.Context;
21 import android.content.Intent;
22 import android.os.UserHandle;
23 import android.provider.Settings;
24 import android.util.AttributeSet;
25 import android.util.Slog;
26 import android.widget.LinearLayout;
27 import android.view.View;
28 import android.widget.CompoundButton;
29 import android.widget.ImageView;
30 import android.widget.TextView;
31 
32 import com.android.systemui.R;
33 import com.android.systemui.settings.BrightnessController;
34 import com.android.systemui.settings.ToggleSlider;
35 import com.android.systemui.statusbar.policy.AirplaneModeController;
36 import com.android.systemui.statusbar.policy.AutoRotateController;
37 import com.android.systemui.statusbar.policy.DoNotDisturbController;
38 import com.android.systemui.statusbar.policy.VolumeController;
39 
40 public class SettingsView extends LinearLayout implements View.OnClickListener {
41     static final String TAG = "SettingsView";
42 
43     AirplaneModeController mAirplane;
44     AutoRotateController mRotate;
45     BrightnessController mBrightness;
46     DoNotDisturbController mDoNotDisturb;
47     View mRotationLockContainer;
48     View mRotationLockSeparator;
49 
SettingsView(Context context, AttributeSet attrs)50     public SettingsView(Context context, AttributeSet attrs) {
51         this(context, attrs, 0);
52     }
53 
SettingsView(Context context, AttributeSet attrs, int defStyle)54     public SettingsView(Context context, AttributeSet attrs, int defStyle) {
55         super(context, attrs, defStyle);
56     }
57 
58     @Override
onFinishInflate()59     protected void onFinishInflate() {
60         super.onFinishInflate();
61 
62         final Context context = getContext();
63 
64         mAirplane = new AirplaneModeController(context,
65                 (CompoundButton)findViewById(R.id.airplane_checkbox));
66         findViewById(R.id.network).setOnClickListener(this);
67 
68         mRotationLockContainer = findViewById(R.id.rotate);
69         mRotationLockSeparator = findViewById(R.id.rotate_separator);
70         mRotate = new AutoRotateController(context,
71                 (CompoundButton)findViewById(R.id.rotate_checkbox),
72                 new AutoRotateController.RotationLockCallbacks() {
73                     @Override
74                     public void setRotationLockControlVisibility(boolean show) {
75                         mRotationLockContainer.setVisibility(show ? View.VISIBLE : View.GONE);
76                         mRotationLockSeparator.setVisibility(show ? View.VISIBLE : View.GONE);
77                     }
78                 });
79 
80         mBrightness = new BrightnessController(context,
81                 (ImageView)findViewById(R.id.brightness_icon),
82                 (ToggleSlider)findViewById(R.id.brightness));
83         mDoNotDisturb = new DoNotDisturbController(context,
84                 (CompoundButton)findViewById(R.id.do_not_disturb_checkbox));
85         findViewById(R.id.settings).setOnClickListener(this);
86     }
87 
88     @Override
onDetachedFromWindow()89     protected void onDetachedFromWindow() {
90         super.onDetachedFromWindow();
91         mAirplane.release();
92         mDoNotDisturb.release();
93         mRotate.release();
94     }
95 
onClick(View v)96     public void onClick(View v) {
97         switch (v.getId()) {
98             case R.id.network:
99                 onClickNetwork();
100                 break;
101             case R.id.settings:
102                 onClickSettings();
103                 break;
104         }
105     }
106 
getStatusBarManager()107     private StatusBarManager getStatusBarManager() {
108         return (StatusBarManager)getContext().getSystemService(Context.STATUS_BAR_SERVICE);
109     }
110 
111     // Network
112     // ----------------------------
onClickNetwork()113     private void onClickNetwork() {
114         getContext().startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)
115                 .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
116         getStatusBarManager().collapsePanels();
117     }
118 
119     // Settings
120     // ----------------------------
onClickSettings()121     private void onClickSettings() {
122         getContext().startActivityAsUser(new Intent(Settings.ACTION_SETTINGS)
123                 .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK),
124                 new UserHandle(UserHandle.USER_CURRENT));
125         getStatusBarManager().collapsePanels();
126     }
127 }
128 
129