18da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov/*
28da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * Copyright (C) 2016 The Android Open Source Project
38da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov *
48da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * Licensed under the Apache License, Version 2.0 (the "License");
58da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * you may not use this file except in compliance with the License.
68da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * You may obtain a copy of the License at
78da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov *
88da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov *      http://www.apache.org/licenses/LICENSE-2.0
98da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov *
108da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * Unless required by applicable law or agreed to in writing, software
118da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * distributed under the License is distributed on an "AS IS" BASIS,
128da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
138da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * See the License for the specific language governing permissions and
148da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * limitations under the License.
158da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov */
168da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikovpackage com.example.android.support.design.widget;
178da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
188da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikovimport android.content.Context;
198da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikovimport android.util.AttributeSet;
208da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikovimport android.widget.RelativeLayout;
218da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
228da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikovimport com.example.android.support.design.R;
238da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
248da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov/**
258da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * Layout for the custom snackbar that shows two separate text views and two images
268da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * in the main content area.
278da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov */
288da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikovpublic class CustomSnackbarMainContent extends RelativeLayout {
298da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    private final int mMaxWidth;
308da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
318da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    public CustomSnackbarMainContent(Context context) {
328da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov        this(context, null);
338da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    }
348da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
358da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    public CustomSnackbarMainContent(Context context, AttributeSet attrs) {
368da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov        this(context, attrs, 0);
378da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    }
388da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
398da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    public CustomSnackbarMainContent(Context context, AttributeSet attrs,
408da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov            int defStyleAttr) {
418da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov        super(context, attrs, defStyleAttr);
428da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
438da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov        mMaxWidth = context.getResources().getDimensionPixelSize(R.dimen.custom_snackbar_max_width);
448da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    }
458da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
468da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    @Override
478da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
488da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
498da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
508da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov        if ((mMaxWidth > 0) && (getMeasuredWidth() > mMaxWidth)) {
518da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov            super.onMeasure(MeasureSpec.makeMeasureSpec(mMaxWidth, MeasureSpec.EXACTLY),
528da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov                    heightMeasureSpec);
538da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov        }
548da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    }
558da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov}
56