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