Home | History | Annotate | Download | only in tablet
      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 
     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