198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams/*
298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * Copyright (C) 2012 The Android Open Source Project
398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams *
498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * Licensed under the Apache License, Version 2.0 (the "License");
598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * you may not use this file except in compliance with the License.
698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * You may obtain a copy of the License at
798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams *
898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams *      http://www.apache.org/licenses/LICENSE-2.0
998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams *
1098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * Unless required by applicable law or agreed to in writing, software
1198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * distributed under the License is distributed on an "AS IS" BASIS,
1298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * See the License for the specific language governing permissions and
1498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams * limitations under the License.
1598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams */
1698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams
1798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Samspackage com.android.systemui.statusbar;
1898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams
1998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Samsimport android.content.Context;
2098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Samsimport android.util.AttributeSet;
2198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Samsimport android.widget.CompoundButton;
2298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams
2398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Samsimport com.android.systemui.statusbar.policy.AutoRotateController;
2498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams
2598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Samspublic class RotationToggle extends CompoundButton
2698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams        implements AutoRotateController.RotationLockCallbacks {
2798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams    private AutoRotateController mRotater;
2898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams
2998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams    public RotationToggle(Context context) {
3098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams        super(context);
3198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams    }
3298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams
3398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams    public RotationToggle(Context context, AttributeSet attrs) {
3498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams        super(context, attrs);
3598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams    }
3698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams
3798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams    public RotationToggle(Context context, AttributeSet attrs, int defStyle) {
3898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams        super(context, attrs, defStyle);
3998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams    }
4098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams
4198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams    @Override
4298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams    protected void onAttachedToWindow() {
4398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams        super.onAttachedToWindow();
4498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams        mRotater = new AutoRotateController(getContext(), this, this);
4598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams    }
4698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams
4798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams    @Override
4898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams    protected void onDetachedFromWindow() {
4998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams        super.onDetachedFromWindow();
5098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams        if (mRotater != null) {
5198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams            mRotater.release();
5298a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams            mRotater = null;
5398a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams        }
5498a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams    }
5598a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams
5698a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams    @Override
5798a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams    public void setRotationLockControlVisibility(boolean show) {
5898a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams        setVisibility(show ? VISIBLE : GONE);
5998a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams    }
6098a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams}
6198a281354fe06d1f970d0521c9a08d9eb0aa1a45Jason Sams