156e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler/*
256e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler * Copyright (C) 2008 The Android Open Source Project
356e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler *
456e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler * Licensed under the Apache License, Version 2.0 (the "License");
556e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler * you may not use this file except in compliance with the License.
656e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler * You may obtain a copy of the License at
756e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler *
856e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler *      http://www.apache.org/licenses/LICENSE-2.0
956e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler *
1056e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler * Unless required by applicable law or agreed to in writing, software
1156e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler * distributed under the License is distributed on an "AS IS" BASIS,
1256e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1356e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler * See the License for the specific language governing permissions and
1456e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler * limitations under the License.
1556e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler */
1656e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler
1756e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandlerpackage com.android.systemui.statusbar.policy;
1856e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler
1956e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandlerimport android.app.ActivityManager;
2056e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandlerimport android.content.Context;
2156e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandlerimport android.content.res.TypedArray;
2256e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandlerimport android.os.RemoteException;
2356e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandlerimport android.util.AttributeSet;
2456e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandlerimport android.util.Slog;
2556e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandlerimport android.view.View;
2656e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandlerimport android.widget.ImageView;
2756e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler
2856e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandlerimport com.android.systemui.R;
2956e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler
303b0543acf11ac4638ec5452acc4c1c6716c26880Daniel Sandlerpublic class CompatModeButton extends ImageView {
313b0543acf11ac4638ec5452acc4c1c6716c26880Daniel Sandler    private static final boolean DEBUG = false;
3256e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler    private static final String TAG = "StatusBar.CompatModeButton";
3356e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler
3456e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler    private ActivityManager mAM;
3556e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler
3656e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler    public CompatModeButton(Context context, AttributeSet attrs) {
3756e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler        this(context, attrs, 0);
3856e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler    }
3956e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler
4056e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler    public CompatModeButton(Context context, AttributeSet attrs, int defStyle) {
4156e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler        super(context, attrs);
4256e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler
4356e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler        setClickable(true);
4456e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler
4556e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler        mAM = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
4656e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler
4756e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler        refresh();
4856e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler    }
4956e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler
5056e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler    public void refresh() {
5148a7651823030ed3c0f4c084b423430044425feaDianne Hackborn        int mode = mAM.getFrontActivityScreenCompatMode();
52e0f085d4b8f313179825f2b051cb403736a7d01aDianne Hackborn        if (mode == ActivityManager.COMPAT_MODE_UNKNOWN) {
53e0f085d4b8f313179825f2b051cb403736a7d01aDianne Hackborn            // If in an unknown state, don't change.
54e0f085d4b8f313179825f2b051cb403736a7d01aDianne Hackborn            return;
55e0f085d4b8f313179825f2b051cb403736a7d01aDianne Hackborn        }
563b0543acf11ac4638ec5452acc4c1c6716c26880Daniel Sandler        final boolean vis = (mode != ActivityManager.COMPAT_MODE_NEVER
573b0543acf11ac4638ec5452acc4c1c6716c26880Daniel Sandler                          && mode != ActivityManager.COMPAT_MODE_ALWAYS);
583b0543acf11ac4638ec5452acc4c1c6716c26880Daniel Sandler        if (DEBUG) Slog.d(TAG, "compat mode is " + mode + "; icon will " + (vis ? "show" : "hide"));
593b0543acf11ac4638ec5452acc4c1c6716c26880Daniel Sandler        setVisibility(vis ? View.VISIBLE : View.GONE);
6056e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler    }
6156e6dbd8b16f5bb0b58bad6dee824034783f4ddfDaniel Sandler}
62