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