blob: e0dcbcd28ee2510887dbd0a4fa5049287aec980f [file] [log] [blame]
Joe Onorato8a576712010-11-15 16:50:34 -08001/*
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
17package com.android.systemui.statusbar.tablet;
18
Joe Onoratoa8e34182010-11-26 13:19:58 -080019import android.app.StatusBarManager;
Joe Onorato8a576712010-11-15 16:50:34 -080020import android.content.Context;
Joe Onoratoa8e34182010-11-26 13:19:58 -080021import android.content.Intent;
Dianne Hackbornf02b60a2012-08-16 10:48:27 -070022import android.os.UserHandle;
Joe Onoratoa8e34182010-11-26 13:19:58 -080023import android.provider.Settings;
Joe Onorato8a576712010-11-15 16:50:34 -080024import android.util.AttributeSet;
25import android.util.Slog;
26import android.widget.LinearLayout;
27import android.view.View;
Joe Onoratoa8e34182010-11-26 13:19:58 -080028import android.widget.CompoundButton;
29import android.widget.ImageView;
30import android.widget.TextView;
Joe Onorato8a576712010-11-15 16:50:34 -080031
32import com.android.systemui.R;
Michael Wright0087a142013-02-05 16:29:39 -080033import com.android.systemui.settings.BrightnessController;
34import com.android.systemui.settings.ToggleSlider;
Joe Onoratoa8e34182010-11-26 13:19:58 -080035import com.android.systemui.statusbar.policy.AirplaneModeController;
36import com.android.systemui.statusbar.policy.AutoRotateController;
Joe Onorato2039e482010-11-29 14:54:24 -080037import com.android.systemui.statusbar.policy.DoNotDisturbController;
Joe Onorato1e28f412010-12-01 09:33:36 -080038import com.android.systemui.statusbar.policy.VolumeController;
Joe Onorato8a576712010-11-15 16:50:34 -080039
Joe Onorato755cc742010-11-27 15:45:35 -080040public class SettingsView extends LinearLayout implements View.OnClickListener {
41 static final String TAG = "SettingsView";
Joe Onorato8a576712010-11-15 16:50:34 -080042
Joe Onoratoa8e34182010-11-26 13:19:58 -080043 AirplaneModeController mAirplane;
44 AutoRotateController mRotate;
Joe Onorato1e28f412010-12-01 09:33:36 -080045 BrightnessController mBrightness;
Joe Onorato2039e482010-11-29 14:54:24 -080046 DoNotDisturbController mDoNotDisturb;
Jeff Brown207673cd2012-06-05 17:47:11 -070047 View mRotationLockContainer;
48 View mRotationLockSeparator;
Joe Onoratoa8e34182010-11-26 13:19:58 -080049
Joe Onorato755cc742010-11-27 15:45:35 -080050 public SettingsView(Context context, AttributeSet attrs) {
Joe Onorato8a576712010-11-15 16:50:34 -080051 this(context, attrs, 0);
52 }
53
Joe Onorato755cc742010-11-27 15:45:35 -080054 public SettingsView(Context context, AttributeSet attrs, int defStyle) {
Joe Onorato8a576712010-11-15 16:50:34 -080055 super(context, attrs, defStyle);
56 }
Joe Onoratoa8e34182010-11-26 13:19:58 -080057
58 @Override
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);
Jeff Brown207673cd2012-06-05 17:47:11 -070067
68 mRotationLockContainer = findViewById(R.id.rotate);
69 mRotationLockSeparator = findViewById(R.id.rotate_separator);
Joe Onoratoa8e34182010-11-26 13:19:58 -080070 mRotate = new AutoRotateController(context,
Jeff Brown207673cd2012-06-05 17:47:11 -070071 (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
Joe Onorato1e28f412010-12-01 09:33:36 -080080 mBrightness = new BrightnessController(context,
John Spurlockf5bc42d2012-10-12 15:24:36 -040081 (ImageView)findViewById(R.id.brightness_icon),
Joe Onorato1e28f412010-12-01 09:33:36 -080082 (ToggleSlider)findViewById(R.id.brightness));
Joe Onorato2039e482010-11-29 14:54:24 -080083 mDoNotDisturb = new DoNotDisturbController(context,
84 (CompoundButton)findViewById(R.id.do_not_disturb_checkbox));
Joe Onoratoa8e34182010-11-26 13:19:58 -080085 findViewById(R.id.settings).setOnClickListener(this);
86 }
87
88 @Override
89 protected void onDetachedFromWindow() {
90 super.onDetachedFromWindow();
91 mAirplane.release();
Joe Onorato2039e482010-11-29 14:54:24 -080092 mDoNotDisturb.release();
John Spurlock781f0f42012-05-22 10:12:09 -040093 mRotate.release();
Joe Onoratoa8e34182010-11-26 13:19:58 -080094 }
95
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
107 private StatusBarManager getStatusBarManager() {
108 return (StatusBarManager)getContext().getSystemService(Context.STATUS_BAR_SERVICE);
109 }
110
111 // Network
112 // ----------------------------
113 private void onClickNetwork() {
Joe Onorato64eb5d22010-12-08 15:46:59 -0800114 getContext().startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)
115 .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
Daniel Sandler11cf1782012-09-27 14:03:08 -0400116 getStatusBarManager().collapsePanels();
Joe Onoratoa8e34182010-11-26 13:19:58 -0800117 }
118
119 // Settings
120 // ----------------------------
121 private void onClickSettings() {
Amith Yamasani82644082012-08-03 13:09:11 -0700122 getContext().startActivityAsUser(new Intent(Settings.ACTION_SETTINGS)
Dianne Hackborn79af1dd2012-08-16 16:42:52 -0700123 .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK),
124 new UserHandle(UserHandle.USER_CURRENT));
Daniel Sandler11cf1782012-09-27 14:03:08 -0400125 getStatusBarManager().collapsePanels();
Joe Onoratoa8e34182010-11-26 13:19:58 -0800126 }
Joe Onorato8a576712010-11-15 16:50:34 -0800127}
128