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