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