1e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey/* 2e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey * Copyright (C) 2013 The Android Open Source Project 3e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey * 4e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey * Licensed under the Apache License, Version 2.0 (the "License"); 5e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey * you may not use this file except in compliance with the License. 6e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey * You may obtain a copy of the License at 7e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey * 8e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey * http://www.apache.org/licenses/LICENSE-2.0 9e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey * 10e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey * Unless required by applicable law or agreed to in writing, software 11e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey * distributed under the License is distributed on an "AS IS" BASIS, 12e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey * See the License for the specific language governing permissions and 14e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey * limitations under the License. 15e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey */ 16e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey 17e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkeypackage com.android.documentsui; 18e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey 19e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkeyimport android.content.Context; 20e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkeyimport android.graphics.Canvas; 21e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkeyimport android.util.AttributeSet; 22e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkeyimport android.view.View; 23e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkeyimport android.widget.FrameLayout; 24e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey 25e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkeyimport java.util.ArrayList; 26e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey 27e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkeypublic class DirectoryContainerView extends FrameLayout { 28e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey private boolean mDisappearingFirst = false; 29e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey 30e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey public DirectoryContainerView(Context context) { 31e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey super(context); 32e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey } 33e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey 34e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey public DirectoryContainerView(Context context, AttributeSet attrs) { 35e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey super(context, attrs); 366963148e226dfadc48c36da7db14ee4587a62f6aJeff Sharkey } 376963148e226dfadc48c36da7db14ee4587a62f6aJeff Sharkey 386963148e226dfadc48c36da7db14ee4587a62f6aJeff Sharkey @Override 39e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey protected void dispatchDraw(Canvas canvas) { 40e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey final ArrayList<View> disappearing = mDisappearingChildren; 41e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey if (mDisappearingFirst && disappearing != null) { 42e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey for (int i = 0; i < disappearing.size(); i++) { 43e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey super.drawChild(canvas, disappearing.get(i), getDrawingTime()); 44e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey } 45e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey } 46e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey super.dispatchDraw(canvas); 47e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey } 48e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey 49e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey @Override 50e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey protected boolean drawChild(Canvas canvas, View child, long drawingTime) { 51e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey if (mDisappearingFirst && mDisappearingChildren != null 52e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey && mDisappearingChildren.contains(child)) { 53e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey return false; 54e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey } 55e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey return super.drawChild(canvas, child, drawingTime); 56e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey } 57e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey 58e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey public void setDrawDisappearingFirst(boolean disappearingFirst) { 59e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey mDisappearingFirst = disappearingFirst; 60e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey } 61e20a3acdc2d52c7eeb76940206145b3c419394a6Jeff Sharkey} 62