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 17package com.android.systemui.statusbar.tablet; 18 19import android.app.StatusBarManager; 20import android.content.Context; 21import android.content.Intent; 22import android.os.UserHandle; 23import android.provider.Settings; 24import android.util.AttributeSet; 25import android.util.Slog; 26import android.widget.LinearLayout; 27import android.view.View; 28import android.widget.CompoundButton; 29import android.widget.ImageView; 30import android.widget.TextView; 31 32import com.android.systemui.R; 33import com.android.systemui.statusbar.policy.AirplaneModeController; 34import com.android.systemui.statusbar.policy.AutoRotateController; 35import com.android.systemui.statusbar.policy.BrightnessController; 36import com.android.systemui.statusbar.policy.DoNotDisturbController; 37import com.android.systemui.statusbar.policy.ToggleSlider; 38import com.android.systemui.statusbar.policy.VolumeController; 39 40public 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 50 public SettingsView(Context context, AttributeSet attrs) { 51 this(context, attrs, 0); 52 } 53 54 public SettingsView(Context context, AttributeSet attrs, int defStyle) { 55 super(context, attrs, defStyle); 56 } 57 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); 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 89 protected void onDetachedFromWindow() { 90 super.onDetachedFromWindow(); 91 mAirplane.release(); 92 mDoNotDisturb.release(); 93 mRotate.release(); 94 } 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() { 114 getContext().startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS) 115 .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); 116 getStatusBarManager().collapsePanels(); 117 } 118 119 // Settings 120 // ---------------------------- 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