1910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas/*
2910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas * Copyright (C) 2016 The Android Open Source Project
3910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas *
4910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas * Licensed under the Apache License, Version 2.0 (the "License");
5910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas * you may not use this file except in compliance with the License.
6910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas * You may obtain a copy of the License at
7910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas *
8910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas *      http://www.apache.org/licenses/LICENSE-2.0
9910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas *
10910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas * Unless required by applicable law or agreed to in writing, software
11910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas * distributed under the License is distributed on an "AS IS" BASIS,
12910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas * See the License for the specific language governing permissions and
14910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas * limitations under the License.
15910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas */
16910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas
17910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikaspackage android.support.design.testutils;
18910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas
19910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikasimport android.graphics.drawable.GradientDrawable;
20910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikasimport android.support.annotation.ColorInt;
21910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas
22910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas/**
23910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas * Custom drawable class that provides a reliable way for testing various tinting scenarios
24910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas * across a range of platform versions. ColorDrawable doesn't support tinting on Kitkat and
25910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas * below, and BitmapDrawable (PNG sources) appears to slightly alter green and blue channels
26910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas * by a few units on some of the older platform versions (Gingerbread). Using GradientDrawable
27910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas * allows doing reliable tests at the level of individual channels (alpha / red / green / blue)
28910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas * for tinted and untinted icons in the testIconTinting method.
29910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas */
30910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikaspublic class TestDrawable extends GradientDrawable {
31910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas    private int mWidth;
32910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas    private int mHeight;
33910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas
34910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas    public TestDrawable(@ColorInt int color, int width, int height) {
35910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas        super(Orientation.TOP_BOTTOM, new int[] { color, color });
36910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas        mWidth = width;
37910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas        mHeight = height;
38910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas    }
39910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas
40910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas    @Override
41910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas    public int getIntrinsicWidth() {
42910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas        return mWidth;
43910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas    }
44910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas
45910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas    @Override
46910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas    public int getIntrinsicHeight() {
47910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas        return mHeight;
48910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas    }
49910de28f0a195668fad38ad2367c1f7237a7af98Aurimas Liutikas}
50