17b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin/*
27b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin * Copyright (C) 2016 The Android Open Source Project
37b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin *
47b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin * Licensed under the Apache License, Version 2.0 (the "License");
57b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin * you may not use this file except in compliance with the License.
67b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin * You may obtain a copy of the License at
77b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin *
87b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin *      http://www.apache.org/licenses/LICENSE-2.0
97b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin *
107b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin * Unless required by applicable law or agreed to in writing, software
117b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin * distributed under the License is distributed on an "AS IS" BASIS,
127b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin * See the License for the specific language governing permissions and
147b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin * limitations under the License.
157b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin */
167b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin
177b38f3465c3779384a17e84cc04609d9d68b56f4Ben Linpackage com.android.documentsui.dirlist;
187b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin
19b62d4e5804d807703697ad7eeb85131a35ce4ab4Ben Lin
207b38f3465c3779384a17e84cc04609d9d68b56f4Ben Linimport android.content.Context;
217b38f3465c3779384a17e84cc04609d9d68b56f4Ben Linimport android.database.Cursor;
227b38f3465c3779384a17e84cc04609d9d68b56f4Ben Linimport android.widget.Space;
237b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin
247b38f3465c3779384a17e84cc04609d9d68b56f4Ben Linimport com.android.documentsui.R;
257b38f3465c3779384a17e84cc04609d9d68b56f4Ben Linimport com.android.documentsui.base.State;
267b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin
277b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin/**
287b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin * The most elegant transparent blank box that spans N rows ever conceived.
297b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin * Used by {@link DirectoryAddonsAdapter}.
307b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin */
31b62d4e5804d807703697ad7eeb85131a35ce4ab4Ben Linfinal class TransparentDividerDocumentHolder extends MessageHolder {
327b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin    private final int mVisibleHeight;
337b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin    private State mState;
347b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin
357b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin    public TransparentDividerDocumentHolder(Context context) {
367b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin        super(context, new Space(context));
377b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin
387b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin        mVisibleHeight = context.getResources().getDimensionPixelSize(
397b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin                R.dimen.grid_section_separator_height);
407b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin    }
417b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin
427b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin    public void bind(State state) {
437b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin        mState = state;
447b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin        bind(null, null);
457b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin    }
467b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin
477b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin    @Override
487b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin    public void bind(Cursor cursor, String modelId) {
497b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin        if (mState.derivedMode == State.MODE_GRID) {
507b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin            itemView.setMinimumHeight(mVisibleHeight);
517b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin        } else {
527b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin            itemView.setMinimumHeight(0);
537b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin        }
547b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin        return;
557b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin    }
567b38f3465c3779384a17e84cc04609d9d68b56f4Ben Lin}