1369ded0cf1ef82828199220217fab872573b7c5cEvan Laird/* 2369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * Copyright (C) 2017 The Android Open Source Project 3369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * 4369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * Licensed under the Apache License, Version 2.0 (the "License"); 5369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * you may not use this file except in compliance with the License. 6369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * You may obtain a copy of the License at 7369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * 8369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * http://www.apache.org/licenses/LICENSE-2.0 9369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * 10369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * Unless required by applicable law or agreed to in writing, software 11369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * distributed under the License is distributed on an "AS IS" BASIS, 12369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * See the License for the specific language governing permissions and 14369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * limitations under the License. 15369ded0cf1ef82828199220217fab872573b7c5cEvan Laird */ 16369ded0cf1ef82828199220217fab872573b7c5cEvan Laird 17369ded0cf1ef82828199220217fab872573b7c5cEvan Lairdpackage com.android.systemui.qs; 18369ded0cf1ef82828199220217fab872573b7c5cEvan Laird 19369ded0cf1ef82828199220217fab872573b7c5cEvan Lairdimport android.content.Context; 20369ded0cf1ef82828199220217fab872573b7c5cEvan Lairdimport android.content.res.ColorStateList; 21369ded0cf1ef82828199220217fab872573b7c5cEvan Lairdimport android.graphics.drawable.Drawable; 22369ded0cf1ef82828199220217fab872573b7c5cEvan Lairdimport com.android.systemui.qs.tileimpl.SlashImageView; 23369ded0cf1ef82828199220217fab872573b7c5cEvan Laird 24369ded0cf1ef82828199220217fab872573b7c5cEvan Laird 25369ded0cf1ef82828199220217fab872573b7c5cEvan Laird/** 26369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * Creates AlphaControlledSlashImageView instead of SlashImageView 27369ded0cf1ef82828199220217fab872573b7c5cEvan Laird */ 28369ded0cf1ef82828199220217fab872573b7c5cEvan Lairdpublic class AlphaControlledSignalTileView extends SignalTileView { 29369ded0cf1ef82828199220217fab872573b7c5cEvan Laird public AlphaControlledSignalTileView(Context context) { 30369ded0cf1ef82828199220217fab872573b7c5cEvan Laird super(context); 31369ded0cf1ef82828199220217fab872573b7c5cEvan Laird } 32369ded0cf1ef82828199220217fab872573b7c5cEvan Laird 33369ded0cf1ef82828199220217fab872573b7c5cEvan Laird @Override 34369ded0cf1ef82828199220217fab872573b7c5cEvan Laird protected SlashImageView createSlashImageView(Context context) { 35369ded0cf1ef82828199220217fab872573b7c5cEvan Laird return new AlphaControlledSlashImageView(context); 36369ded0cf1ef82828199220217fab872573b7c5cEvan Laird } 37369ded0cf1ef82828199220217fab872573b7c5cEvan Laird 38369ded0cf1ef82828199220217fab872573b7c5cEvan Laird /** 39369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * Creates AlphaControlledSlashDrawable instead of regular SlashDrawables 40369ded0cf1ef82828199220217fab872573b7c5cEvan Laird */ 41369ded0cf1ef82828199220217fab872573b7c5cEvan Laird public static class AlphaControlledSlashImageView extends SlashImageView { 42369ded0cf1ef82828199220217fab872573b7c5cEvan Laird public AlphaControlledSlashImageView(Context context) { 43369ded0cf1ef82828199220217fab872573b7c5cEvan Laird super(context); 44369ded0cf1ef82828199220217fab872573b7c5cEvan Laird } 45369ded0cf1ef82828199220217fab872573b7c5cEvan Laird 46369ded0cf1ef82828199220217fab872573b7c5cEvan Laird public void setFinalImageTintList(ColorStateList tint) { 47369ded0cf1ef82828199220217fab872573b7c5cEvan Laird super.setImageTintList(tint); 48369ded0cf1ef82828199220217fab872573b7c5cEvan Laird final SlashDrawable slash = getSlash(); 49369ded0cf1ef82828199220217fab872573b7c5cEvan Laird if (slash != null) { 50369ded0cf1ef82828199220217fab872573b7c5cEvan Laird ((AlphaControlledSlashDrawable)slash).setFinalTintList(tint); 51369ded0cf1ef82828199220217fab872573b7c5cEvan Laird } 52369ded0cf1ef82828199220217fab872573b7c5cEvan Laird } 53369ded0cf1ef82828199220217fab872573b7c5cEvan Laird 54369ded0cf1ef82828199220217fab872573b7c5cEvan Laird @Override 55369ded0cf1ef82828199220217fab872573b7c5cEvan Laird protected void ensureSlashDrawable() { 56369ded0cf1ef82828199220217fab872573b7c5cEvan Laird if (getSlash() == null) { 57369ded0cf1ef82828199220217fab872573b7c5cEvan Laird final SlashDrawable slash = new AlphaControlledSlashDrawable(getDrawable()); 58369ded0cf1ef82828199220217fab872573b7c5cEvan Laird setSlash(slash); 59369ded0cf1ef82828199220217fab872573b7c5cEvan Laird slash.setAnimationEnabled(getAnimationEnabled()); 60369ded0cf1ef82828199220217fab872573b7c5cEvan Laird setImageViewDrawable(slash); 61369ded0cf1ef82828199220217fab872573b7c5cEvan Laird } 62369ded0cf1ef82828199220217fab872573b7c5cEvan Laird } 63369ded0cf1ef82828199220217fab872573b7c5cEvan Laird } 64369ded0cf1ef82828199220217fab872573b7c5cEvan Laird 65369ded0cf1ef82828199220217fab872573b7c5cEvan Laird /** 66369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * SlashDrawable that disobeys orders to change its drawable's tint except when you tell 67369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * it not to disobey. The slash still will animate its alpha. 68369ded0cf1ef82828199220217fab872573b7c5cEvan Laird */ 69369ded0cf1ef82828199220217fab872573b7c5cEvan Laird public static class AlphaControlledSlashDrawable extends SlashDrawable { 70369ded0cf1ef82828199220217fab872573b7c5cEvan Laird AlphaControlledSlashDrawable(Drawable d) { 71369ded0cf1ef82828199220217fab872573b7c5cEvan Laird super(d); 72369ded0cf1ef82828199220217fab872573b7c5cEvan Laird } 73369ded0cf1ef82828199220217fab872573b7c5cEvan Laird 74369ded0cf1ef82828199220217fab872573b7c5cEvan Laird @Override 75369ded0cf1ef82828199220217fab872573b7c5cEvan Laird protected void setDrawableTintList(ColorStateList tint) { 76369ded0cf1ef82828199220217fab872573b7c5cEvan Laird } 77369ded0cf1ef82828199220217fab872573b7c5cEvan Laird 78369ded0cf1ef82828199220217fab872573b7c5cEvan Laird /** 79369ded0cf1ef82828199220217fab872573b7c5cEvan Laird * Set a target tint list instead of 80369ded0cf1ef82828199220217fab872573b7c5cEvan Laird */ 81369ded0cf1ef82828199220217fab872573b7c5cEvan Laird public void setFinalTintList(ColorStateList tint) { 82369ded0cf1ef82828199220217fab872573b7c5cEvan Laird super.setDrawableTintList(tint); 83369ded0cf1ef82828199220217fab872573b7c5cEvan Laird } 84369ded0cf1ef82828199220217fab872573b7c5cEvan Laird } 85369ded0cf1ef82828199220217fab872573b7c5cEvan Laird} 86369ded0cf1ef82828199220217fab872573b7c5cEvan Laird 87