176471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei/* 276471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei * Copyright (C) 2016 The Android Open Source Project 376471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei * 476471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei * Licensed under the Apache License, Version 2.0 (the "License"); 576471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei * you may not use this file except in compliance with the License. 676471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei * You may obtain a copy of the License at 776471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei * 876471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei * http://www.apache.org/licenses/LICENSE-2.0 976471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei * 1076471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei * Unless required by applicable law or agreed to in writing, software 1176471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei * distributed under the License is distributed on an "AS IS" BASIS, 1276471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1376471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei * See the License for the specific language governing permissions and 1476471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei * limitations under the License 1576471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei */ 1676471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyuleipackage com.android.systemui.qs.external; 1776471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei 1876471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyuleiimport android.content.Context; 1976471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyuleiimport android.content.res.ColorStateList; 2076471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyuleiimport android.service.quicksettings.Tile; 2176471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyuleiimport android.support.annotation.VisibleForTesting; 2276471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyuleiimport com.android.systemui.R; 2376471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei 2476471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyuleipublic class TileColorPicker { 2576471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei @VisibleForTesting static final int[] DISABLE_STATE_SET = {-android.R.attr.state_enabled}; 2676471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei @VisibleForTesting static final int[] ENABLE_STATE_SET = {android.R.attr.state_enabled, 2776471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei android.R.attr.state_activated}; 2876471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei @VisibleForTesting static final int[] INACTIVE_STATE_SET = {-android.R.attr.state_activated}; 2976471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei private static TileColorPicker sInstance; 3076471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei 3176471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei private ColorStateList mColorStateList; 3276471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei 3376471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei private TileColorPicker(Context context) { 3476471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei mColorStateList = context.getResources(). 3576471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei getColorStateList(R.color.tint_color_selector, context.getTheme()); 3676471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei } 3776471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei 3876471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei public static TileColorPicker getInstance(Context context) { 3976471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei if (sInstance == null) { 4076471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei sInstance = new TileColorPicker(context); 4176471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei } 4276471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei return sInstance; 4376471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei } 4476471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei 4576471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei public int getColor(int state) { 4676471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei final int defaultColor = 0; 4776471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei 4876471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei switch (state) { 4976471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei case Tile.STATE_UNAVAILABLE: 5076471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei return mColorStateList.getColorForState(DISABLE_STATE_SET, defaultColor); 5176471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei case Tile.STATE_INACTIVE: 5276471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei return mColorStateList.getColorForState(INACTIVE_STATE_SET, defaultColor); 5376471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei case Tile.STATE_ACTIVE: 5476471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei return mColorStateList.getColorForState(ENABLE_STATE_SET, defaultColor); 5576471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei default: 5676471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei return mColorStateList.getColorForState(ENABLE_STATE_SET, defaultColor); 5776471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei } 5876471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei } 5976471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei 6076471a5d9ec3a5d66c43f6afa5d7274c6d58a8cajackqdyulei} 61