diff options
Diffstat (limited to 'android/support/car/widget/ColumnCardView.java')
-rw-r--r-- | android/support/car/widget/ColumnCardView.java | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/android/support/car/widget/ColumnCardView.java b/android/support/car/widget/ColumnCardView.java deleted file mode 100644 index 06f85536..00000000 --- a/android/support/car/widget/ColumnCardView.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.support.car.widget; - -import android.content.Context; -import android.content.res.TypedArray; -import android.support.car.R; -import android.support.car.utils.ColumnCalculator; -import android.support.v7.widget.CardView; -import android.util.AttributeSet; -import android.util.Log; - -/** - * A {@link CardView} whose width can be specified by the number of columns that it will span. - * - * <p>The {@code ColumnCardView} works similarly to a regular {@link CardView}, except that - * its {@code layout_width} attribute is always ignored. Instead, its width is automatically - * calculated based on a specified {@code columnSpan} attribute. Alternatively, a user can call - * {@link #setColumnSpan(int)}. If no column span is given, the {@code ColumnCardView} will have - * a default span value that it uses. - * - * <pre> - * <android.support.car.widget.ColumnCardView - * android:layout_width="wrap_content" - * android:layout_height="wrap_content" - * app:columnSpan="4" /> - * </pre> - * - * @see ColumnCalculator - */ -public final class ColumnCardView extends CardView { - private static final String TAG = "ColumnCardView"; - - private ColumnCalculator mColumnCalculator; - private int mColumnSpan; - - public ColumnCardView(Context context) { - super(context); - init(context, null, 0 /* defStyleAttrs */); - } - - public ColumnCardView(Context context, AttributeSet attrs) { - super(context, attrs); - init(context, attrs, 0 /* defStyleAttrs */); - } - - public ColumnCardView(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - init(context, attrs, defStyleAttr); - } - - private void init(Context context, AttributeSet attrs, int defStyleAttrs) { - mColumnCalculator = ColumnCalculator.getInstance(context); - - int defaultColumnSpan = getResources().getInteger( - R.integer.column_card_default_column_span); - - TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.ColumnCardView, - defStyleAttrs, 0 /* defStyleRes */); - mColumnSpan = ta.getInteger(R.styleable.ColumnCardView_columnSpan, defaultColumnSpan); - ta.recycle(); - - if (Log.isLoggable(TAG, Log.DEBUG)) { - Log.d(TAG, "Column span: " + mColumnSpan); - } - } - - @Override - public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - // Override any specified width so that the width is one that is calculated based on - // column and gutter span. - int width = mColumnCalculator.getSizeForColumnSpan(mColumnSpan); - super.onMeasure( - MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), - heightMeasureSpec); - } - - /** - * Sets the number of columns that this {@code ColumnCardView} will span. The given span is - * ignored if it is less than 0 or greater than the number of columns that fit on screen. - * - * @param columnSpan The number of columns this {@code ColumnCardView} will span across. - */ - public void setColumnSpan(int columnSpan) { - if (columnSpan <= 0 || columnSpan > mColumnCalculator.getNumOfColumns()) { - return; - } - - mColumnSpan = columnSpan; - requestLayout(); - } - - /** - * Returns the currently number of columns that this {@code ColumnCardView} spans. - * - * @return The number of columns this {@code ColumnCardView} spans across. - */ - public int getColumnSpan() { - return mColumnSpan; - } -} |