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