1b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi/*
2b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi * Copyright (C) 2014 The Android Open Source Project
3b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi *
4b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi * Licensed under the Apache License, Version 2.0 (the "License");
5b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi * you may not use this file except in compliance with the License.
6b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi * You may obtain a copy of the License at
7b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi *
8b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi *      http://www.apache.org/licenses/LICENSE-2.0
9b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi *
10b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi * Unless required by applicable law or agreed to in writing, software
11b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi * distributed under the License is distributed on an "AS IS" BASIS,
12b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi * See the License for the specific language governing permissions and
14b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi * limitations under the License
15b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi */
16b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi
17b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggipackage com.android.systemui.statusbar.phone;
18b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi
19b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggiimport android.content.Context;
20b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggiimport android.graphics.Canvas;
21b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggiimport android.graphics.Color;
22b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggiimport android.graphics.ColorFilter;
23b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggiimport android.graphics.drawable.Drawable;
24b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggiimport android.util.AttributeSet;
25b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggiimport android.view.WindowInsets;
26b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggiimport android.widget.FrameLayout;
27b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi
28b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi/**
29b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi * A view group which contains the preview of phone/camera and draws a black bar at the bottom as
30b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi * the fake navigation bar.
31b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi */
32b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggipublic class KeyguardPreviewContainer extends FrameLayout {
33b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi
34b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi    private Drawable mBlackBarDrawable = new Drawable() {
35b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi        @Override
36b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi        public void draw(Canvas canvas) {
37b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi            canvas.save();
38b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi            canvas.clipRect(0, getHeight() - getPaddingBottom(), getWidth(), getHeight());
39b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi            canvas.drawColor(Color.BLACK);
40b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi            canvas.restore();
41b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi        }
42b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi
43b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi        @Override
44b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi        public void setAlpha(int alpha) {
45b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi            // noop
46b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi        }
47b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi
48b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi        @Override
49bd3bfc5285dcacff0a69fecf3baeeeb90d887a58Chris Craik        public void setColorFilter(ColorFilter colorFilter) {
50b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi            // noop
51b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi        }
52b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi
53b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi        @Override
54b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi        public int getOpacity() {
55b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi            return android.graphics.PixelFormat.OPAQUE;
56b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi        }
57b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi    };
58b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi
59b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi    public KeyguardPreviewContainer(Context context, AttributeSet attrs) {
60b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi        super(context, attrs);
61b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi        setBackground(mBlackBarDrawable);
62b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi    }
63b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi
64b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi    @Override
65b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi    public WindowInsets onApplyWindowInsets(WindowInsets insets) {
66b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi        setPadding(0, 0, 0, insets.getStableInsetBottom());
67b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi        return super.onApplyWindowInsets(insets);
68b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi    }
69b6cdcbc66b4b862f83afde85b8e7109b6450b15eJorim Jaggi}
70