Simplifying some launcher themes

> Replacing some colors with theme attributes
> Simplifying styles definition by removing unnecessary inheritance and inlining some definitions

Change-Id: Ifa167515cae6a7fd3720f1a52ff9ce11abb4495f
This commit is contained in:
Sunny Goyal 2017-02-10 16:52:16 -08:00
parent 9e76f682f3
commit 1f3f07d47c
43 changed files with 195 additions and 229 deletions

View File

@ -56,6 +56,7 @@
android:hardwareAccelerated="true" android:hardwareAccelerated="true"
android:icon="@mipmap/ic_launcher_home" android:icon="@mipmap/ic_launcher_home"
android:label="@string/derived_app_name" android:label="@string/derived_app_name"
android:theme="@style/LauncherTheme"
android:largeHeap="@bool/config_largeHeap" android:largeHeap="@bool/config_largeHeap"
android:restoreAnyVersion="true" android:restoreAnyVersion="true"
android:supportsRtl="true" > android:supportsRtl="true" >
@ -69,7 +70,6 @@
android:launchMode="singleTask" android:launchMode="singleTask"
android:clearTaskOnLaunch="true" android:clearTaskOnLaunch="true"
android:stateNotNeeded="true" android:stateNotNeeded="true"
android:theme="@style/LauncherTheme"
android:windowSoftInputMode="adjustPan" android:windowSoftInputMode="adjustPan"
android:screenOrientation="nosensor" android:screenOrientation="nosensor"
android:configChanges="keyboard|keyboardHidden|navigation" android:configChanges="keyboard|keyboardHidden|navigation"
@ -90,6 +90,7 @@
<activity <activity
android:name="com.android.launcher3.SettingsActivity" android:name="com.android.launcher3.SettingsActivity"
android:label="@string/settings_button_text" android:label="@string/settings_button_text"
android:theme="@android:style/Theme.DeviceDefault.Settings"
android:autoRemoveFromRecents="true"> android:autoRemoveFromRecents="true">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.APPLICATION_PREFERENCES" /> <action android:name="android.intent.action.APPLICATION_PREFERENCES" />

View File

@ -15,6 +15,6 @@
--> -->
<shape xmlns:android="http://schemas.android.com/apk/res/android" <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"> android:shape="rectangle">
<solid android:color="@color/all_apps_divider_color" /> <solid android:color="?android:attr/colorControlHighlight" />
<size android:height="1dp" /> <size android:height="1dp" />
</shape> </shape>

View File

@ -15,6 +15,6 @@
limitations under the License. limitations under the License.
--> -->
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#00FFFFFF" android:state_focused="true" /> <item android:color="@android:color/transparent" android:state_focused="true" />
<item android:color="?android:attr/colorAccent"/> <item android:color="?android:attr/colorAccent"/>
</selector> </selector>

View File

@ -16,9 +16,8 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true"> <item android:state_focused="true">
<shape xmlns:android="http://schemas.android.com/apk/res/android" <shape android:shape="rectangle">
android:shape="rectangle"> <stroke android:color="?android:attr/colorControlActivated" android:width="2dp" />
<stroke android:color="#616161" android:width="2dp"/>
<corners android:radius="@dimen/bg_pill_radius" /> <corners android:radius="@dimen/bg_pill_radius" />
</shape> </shape>
</item> </item>

View File

@ -18,9 +18,10 @@
android:width="@dimen/deep_shortcut_drag_handle_size" android:width="@dimen/deep_shortcut_drag_handle_size"
android:height="@dimen/deep_shortcut_drag_handle_size" android:height="@dimen/deep_shortcut_drag_handle_size"
android:viewportWidth="24.0" android:viewportWidth="24.0"
android:viewportHeight="24.0"> android:viewportHeight="24.0"
android:tint="?android:attr/textColorHint" >
<path <path
android:pathData="M20 9H4v2h16V9zM4 15h16v-2H4v2z" android:pathData="M20 9H4v2h16V9zM4 15h16v-2H4v2z"
android:fillColor="#4D000000"/> android:fillColor="@android:color/white" />
</vector> </vector>

View File

@ -19,6 +19,6 @@ Copyright (C) 2016 The Android Open Source Project
android:viewportWidth="48.0" android:viewportWidth="48.0"
android:viewportHeight="48.0"> android:viewportHeight="48.0">
<path <path
android:fillColor="#FFFFFFFF" android:fillColor="@color/workspace_icon_text_color"
android:pathData="M38.86 25.95c.08-.64 .14-1.29 .14-1.95s-.06-1.31-.14-1.95l4.23-3.31c.38-.3 .49-.84 .24-1.28l-4-6.93c-.25-.43-.77-.61-1.22-.43l-4.98 2.01c-1.03-.79-2.16-1.46-3.38-1.97L29 4.84c-.09-.47-.5-.84-1-.84h-8c-.5 0-.91 .37-.99 .84l-.75 5.3c-1.22 .51-2.35 1.17-3.38 1.97L9.9 10.1c-.45-.17-.97 0-1.22 .43l-4 6.93c-.25 .43-.14 .97 .24 1.28l4.22 3.31C9.06 22.69 9 23.34 9 24s.06 1.31 .14 1.95l-4.22 3.31c-.38 .3-.49 .84-.24 1.28l4 6.93c.25 .43 .77 .61 1.22 .43l4.98-2.01c1.03 .79 2.16 1.46 3.38 1.97l.75 5.3c.08 .47 .49 .84 .99 .84h8c.5 0 .91-.37 .99-.84l.75-5.3c1.22-.51 2.35-1.17 3.38-1.97l4.98 2.01c.45 .17 .97 0 1.22-.43l4-6.93c.25-.43 .14-.97-.24-1.28l-4.22-3.31zM24 31c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/> android:pathData="M38.86 25.95c.08-.64 .14-1.29 .14-1.95s-.06-1.31-.14-1.95l4.23-3.31c.38-.3 .49-.84 .24-1.28l-4-6.93c-.25-.43-.77-.61-1.22-.43l-4.98 2.01c-1.03-.79-2.16-1.46-3.38-1.97L29 4.84c-.09-.47-.5-.84-1-.84h-8c-.5 0-.91 .37-.99 .84l-.75 5.3c-1.22 .51-2.35 1.17-3.38 1.97L9.9 10.1c-.45-.17-.97 0-1.22 .43l-4 6.93c-.25 .43-.14 .97 .24 1.28l4.22 3.31C9.06 22.69 9 23.34 9 24s.06 1.31 .14 1.95l-4.22 3.31c-.38 .3-.49 .84-.24 1.28l4 6.93c.25 .43 .77 .61 1.22 .43l4.98-2.01c1.03 .79 2.16 1.46 3.38 1.97l.75 5.3c.08 .47 .49 .84 .99 .84h8c.5 0 .91-.37 .99-.84l.75-5.3c1.22-.51 2.35-1.17 3.38-1.97l4.98 2.01c.45 .17 .97 0 1.22-.43l4-6.93c.25-.43 .14-.97-.24-1.28l-4.22-3.31zM24 31c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/>
</vector> </vector>

View File

@ -19,6 +19,6 @@ Copyright (C) 2016 The Android Open Source Project
android:viewportWidth="48.0" android:viewportWidth="48.0"
android:viewportHeight="48.0"> android:viewportHeight="48.0">
<path <path
android:fillColor="#FFFFFFFF" android:fillColor="@color/workspace_icon_text_color"
android:pathData="M8 8h14V4H8C5.79 4 4 5.79 4 8v14h4V8zm12 18l-8 10h24l-6-8-4.06 5.42L20 26zm14-9c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3 3-1.34 3-3zm6-13H26v4h14v14h4V8c0-2.21-1.79-4-4-4zm0 36H26v4h14c2.21 0 4-1.79 4-4V26h-4v14zM8 26H4v14c0 2.21 1.79 4 4 4h14v-4H8V26z"/> android:pathData="M8 8h14V4H8C5.79 4 4 5.79 4 8v14h4V8zm12 18l-8 10h24l-6-8-4.06 5.42L20 26zm14-9c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3 3-1.34 3-3zm6-13H26v4h14v14h4V8c0-2.21-1.79-4-4-4zm0 36H26v4h14c2.21 0 4-1.79 4-4V26h-4v14zM8 26H4v14c0 2.21 1.79 4 4 4h14v-4H8V26z"/>
</vector> </vector>

View File

@ -19,6 +19,6 @@ Copyright (C) 2016 The Android Open Source Project
android:viewportWidth="48.0" android:viewportWidth="48.0"
android:viewportHeight="48.0"> android:viewportHeight="48.0">
<path <path
android:fillColor="#FFFFFFFF" android:fillColor="@color/workspace_icon_text_color"
android:pathData="M26 26v16h16V26H26zM6 42h16V26H6v16zM6 6v16h16V6H6zm27.31-2.63L22 14.69 33.31 26l11.31-11.31L33.31 3.37z"/> android:pathData="M26 26v16h16V26H26zM6 42h16V26H6v16zM6 6v16h16V6H6zm27.31-2.63L22 14.69 33.31 26l11.31-11.31L33.31 3.37z"/>
</vector> </vector>

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/quantum_panel_shape"
android:insetBottom="@dimen/quantum_panel_outer_padding"
android:insetLeft="@dimen/quantum_panel_outer_padding"
android:insetRight="@dimen/quantum_panel_outer_padding"
android:insetTop="@dimen/quantum_panel_outer_padding" />

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/quantum_panel_bg_color" />
<corners
android:radius="2dp" />
</shape>

View File

@ -22,7 +22,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
launcher:revealBackground="@drawable/quantum_panel_shape"> launcher:revealBackground="@drawable/round_rect_primary">
<View <View
android:id="@+id/reveal_view" android:id="@+id/reveal_view"
@ -54,8 +54,7 @@
android:descendantFocusability="afterDescendants" android:descendantFocusability="afterDescendants"
android:focusable="true" android:focusable="true"
android:paddingStart="@dimen/container_fastscroll_thumb_max_width" android:paddingStart="@dimen/container_fastscroll_thumb_max_width"
android:paddingEnd="@dimen/container_fastscroll_thumb_max_width" android:paddingEnd="@dimen/container_fastscroll_thumb_max_width" />
android:theme="@style/AllAppsOverscroll" />
<!-- Fast scroller popup --> <!-- Fast scroller popup -->
<TextView <TextView
@ -87,7 +86,7 @@
android:maxLines="1" android:maxLines="1"
android:scrollHorizontally="true" android:scrollHorizontally="true"
android:singleLine="true" android:singleLine="true"
android:textColor="#4c4c4c" android:textColor="?android:attr/textColorSecondary"
android:hint="@string/all_apps_search_bar_hint" android:hint="@string/all_apps_search_bar_hint"
android:textColorHint="@drawable/all_apps_search_hint" android:textColorHint="@drawable/all_apps_search_hint"
android:textSize="16sp" /> android:textSize="16sp" />
@ -95,11 +94,11 @@
</com.android.launcher3.allapps.AllAppsRecyclerViewContainerView> </com.android.launcher3.allapps.AllAppsRecyclerViewContainerView>
<View <View
style="@style/AllAppsNavBarProtection"
android:id="@+id/nav_bar_bg" android:id="@+id/nav_bar_bg"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_gravity="bottom" android:layout_gravity="bottom"
android:background="@color/all_apps_navbar_color"
android:focusable="false" android:focusable="false"
android:visibility="invisible" /> android:visibility="invisible" />
</com.android.launcher3.allapps.AllAppsContainerView> </com.android.launcher3.allapps.AllAppsContainerView>

View File

@ -14,6 +14,4 @@
limitations under the License. limitations under the License.
--> -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android" <TextView style="@style/BaseIcon" />
style="@style/Icon"
android:focusable="true" />

View File

@ -25,7 +25,6 @@
android:paddingRight="16dp" android:paddingRight="16dp"
android:fontFamily="sans-serif-medium" android:fontFamily="sans-serif-medium"
android:textSize="14sp" android:textSize="14sp"
android:textColor="#212121" android:textColor="?android:attr/textColorTertiary"
android:alpha="0.56"
android:focusable="false" /> android:focusable="false" />

View File

@ -16,12 +16,13 @@
<com.android.launcher3.BubbleTextView <com.android.launcher3.BubbleTextView
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:launcher="http://schemas.android.com/apk/res-auto" xmlns:launcher="http://schemas.android.com/apk/res-auto"
style="@style/Icon.AllApps" style="@style/BaseIcon"
android:id="@+id/icon" android:id="@+id/icon"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center"
android:focusable="true"
launcher:iconDisplay="all_apps" launcher:iconDisplay="all_apps"
launcher:centerVertically="true" /> launcher:centerVertically="true"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:drawablePadding="@dimen/dynamic_grid_icon_drawable_padding" />

View File

@ -14,6 +14,4 @@
limitations under the License. limitations under the License.
--> -->
<com.android.launcher3.BubbleTextView xmlns:android="http://schemas.android.com/apk/res/android" <com.android.launcher3.BubbleTextView style="@style/BaseIcon.Workspace" />
style="@style/Icon"
android:focusable="true" />

View File

@ -16,18 +16,28 @@
<com.android.launcher3.shortcuts.DeepShortcutView <com.android.launcher3.shortcuts.DeepShortcutView
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:launcher="http://schemas.android.com/apk/res-auto"
android:layout_width="@dimen/bg_pill_width" android:layout_width="@dimen/bg_pill_width"
android:layout_height="@dimen/bg_pill_height" android:layout_height="@dimen/bg_pill_height"
android:elevation="@dimen/deep_shortcuts_elevation" android:elevation="@dimen/deep_shortcuts_elevation"
android:background="@drawable/bg_white_pill"> android:background="@drawable/bg_white_pill" >
<com.android.launcher3.shortcuts.DeepShortcutTextView <com.android.launcher3.shortcuts.DeepShortcutTextView
style="@style/BaseIcon"
android:id="@+id/deep_shortcut" android:id="@+id/deep_shortcut"
style="@style/Icon.DeepShortcut" android:background="@drawable/bg_pill_focused"
android:layout_width="match_parent" android:gravity="start|center_vertical"
android:layout_height="match_parent" android:textAlignment="viewStart"
android:focusable="true" android:paddingStart="@dimen/bg_pill_height"
android:background="@drawable/bg_pill_focused" /> android:paddingEnd="@dimen/deep_shortcut_padding_end"
android:drawableEnd="@drawable/deep_shortcuts_drag_handle"
android:drawablePadding="@dimen/deep_shortcut_drawable_padding"
android:textSize="14sp"
android:fontFamily="sans-serif"
launcher:layoutHorizontal="true"
launcher:iconDisplay="shortcut_popup"
launcher:iconSizeOverride="@dimen/deep_shortcut_icon_size"
android:elevation="@dimen/deep_shortcuts_elevation" />
<View <View
android:id="@+id/popup_item_icon" android:id="@+id/popup_item_icon"

View File

@ -14,6 +14,9 @@
limitations under the License. limitations under the License.
--> -->
<com.android.launcher3.BubbleTextView xmlns:android="http://schemas.android.com/apk/res/android" <com.android.launcher3.BubbleTextView
style="@style/Icon.Folder" xmlns:android="http://schemas.android.com/apk/res/android"
android:focusable="true" /> xmlns:launcher="http://schemas.android.com/apk/res-auto"
style="@style/BaseIcon"
android:includeFontPadding="false"
launcher:iconDisplay="folder" />

View File

@ -21,8 +21,9 @@
android:orientation="vertical" android:orientation="vertical"
android:focusable="true" > android:focusable="true" >
<com.android.launcher3.BubbleTextView <com.android.launcher3.BubbleTextView
style="@style/Icon" style="@style/BaseIcon.Workspace"
android:id="@+id/folder_icon_name" android:id="@+id/folder_icon_name"
android:focusable="false"
android:layout_gravity="top" android:layout_gravity="top"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />

View File

@ -21,7 +21,6 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="horizontal" android:orientation="horizontal"
android:focusable="true" android:focusable="true"
android:background="@drawable/bg_pill_focused"
android:elevation="@dimen/notification_elevation" > android:elevation="@dimen/notification_elevation" >
<View <View
@ -39,13 +38,20 @@
android:gravity="center_vertical"> android:gravity="center_vertical">
<TextView <TextView
android:id="@+id/title" android:id="@+id/title"
style="@style/Icon.DeepNotification" android:textAlignment="viewStart"
android:fontFamily="sans-serif"
android:textSize="14sp"
android:textColor="?android:attr/textColorSecondary"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
<TextView <TextView
android:id="@+id/text" android:id="@+id/text"
style="@style/Icon.DeepNotification.SubText" android:paddingEnd="4dp"
android:textSize="12sp"
android:textAlignment="viewStart"
android:fontFamily="sans-serif"
android:textColor="?android:attr/textColorTertiary"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
</LinearLayout> </LinearLayout>

View File

@ -23,7 +23,7 @@
android:layout_height="48dp" android:layout_height="48dp"
android:layout_margin="16dp" android:layout_margin="16dp"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:background="@drawable/quantum_panel_shape" android:background="@drawable/round_rect_primary"
android:elevation="2dp" android:elevation="2dp"
android:orientation="horizontal"> android:orientation="horizontal">
@ -35,7 +35,7 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:paddingStart="16dp" android:paddingStart="16dp"
android:text="@string/abandoned_search" android:text="@string/abandoned_search"
android:textColor="@color/quantum_panel_text_color" android:textColor="?android:attr/textColorSecondary"
android:textAppearance="?android:textAppearanceMedium" android:textAppearance="?android:textAppearanceMedium"
android:clickable="true" android:clickable="true"
android:background="?android:attr/selectableItemBackground" /> android:background="?android:attr/selectableItemBackground" />
@ -46,7 +46,7 @@
android:visibility="gone" android:visibility="gone"
android:layout_height="match_parent" android:layout_height="match_parent"
android:src="@drawable/ic_setting" android:src="@drawable/ic_setting"
android:tint="@color/quantum_panel_text_color" android:tint="?android:attr/textColorSecondary"
android:contentDescription="@string/gadget_setup_text" android:contentDescription="@string/gadget_setup_text"
android:padding="8dp" android:padding="8dp"
android:background="?android:attr/selectableItemBackground" /> android:background="?android:attr/selectableItemBackground" />

View File

@ -18,7 +18,7 @@
xmlns:launcher="http://schemas.android.com/apk/res-auto" xmlns:launcher="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/quantum_panel" android:background="@drawable/round_rect_primary"
android:elevation="5dp" android:elevation="5dp"
android:orientation="vertical" > android:orientation="vertical" >
@ -46,7 +46,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_weight="1" android:layout_weight="1"
android:background="#00000000" android:background="@android:color/transparent"
android:fontFamily="sans-serif-condensed" android:fontFamily="sans-serif-condensed"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:hint="@string/folder_hint_text" android:hint="@string/folder_hint_text"
@ -54,10 +54,10 @@
android:paddingBottom="@dimen/folder_label_padding_bottom" android:paddingBottom="@dimen/folder_label_padding_bottom"
android:paddingTop="@dimen/folder_label_padding_top" android:paddingTop="@dimen/folder_label_padding_top"
android:singleLine="true" android:singleLine="true"
android:textColor="#ff777777" android:textColor="?android:attr/textColorTertiary"
android:includeFontPadding="false" android:includeFontPadding="false"
android:textColorHighlight="#ffCCCCCC" android:textColorHighlight="?android:attr/colorControlHighlight"
android:textColorHint="#ff808080" android:textColorHint="?android:attr/textColorHint"
android:textSize="@dimen/folder_label_text_size" /> android:textSize="@dimen/folder_label_text_size" />
<com.android.launcher3.pageindicators.PageIndicatorDots <com.android.launcher3.pageindicators.PageIndicatorDots

View File

@ -18,7 +18,7 @@
xmlns:launcher="http://schemas.android.com/apk/res-auto" xmlns:launcher="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/quantum_panel" android:background="@drawable/round_rect_primary"
android:elevation="5dp" android:elevation="5dp"
android:orientation="vertical" > android:orientation="vertical" >
@ -46,7 +46,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_weight="1" android:layout_weight="1"
android:background="#00000000" android:background="@android:color/transparent"
android:fontFamily="sans-serif-condensed" android:fontFamily="sans-serif-condensed"
android:textStyle="bold" android:textStyle="bold"
android:gravity="center_horizontal" android:gravity="center_horizontal"
@ -55,9 +55,9 @@
android:paddingBottom="@dimen/folder_label_padding_bottom" android:paddingBottom="@dimen/folder_label_padding_bottom"
android:paddingTop="@dimen/folder_label_padding_top" android:paddingTop="@dimen/folder_label_padding_top"
android:singleLine="true" android:singleLine="true"
android:textColor="#EE777777" android:textColor="?android:attr/textColorTertiary"
android:textColorHighlight="#ffCCCCCC" android:textColorHighlight="?android:attr/colorControlHighlight"
android:textColorHint="#ff808080" android:textColorHint="?android:attr/textColorHint"
android:textSize="@dimen/folder_label_text_size" /> android:textSize="@dimen/folder_label_text_size" />
<com.android.launcher3.pageindicators.PageIndicatorDots <com.android.launcher3.pageindicators.PageIndicatorDots

View File

@ -25,6 +25,7 @@
<item name="android:windowShowWallpaper">true</item> <item name="android:windowShowWallpaper">true</item>
<item name="android:windowNoTitle">true</item> <item name="android:windowNoTitle">true</item>
<item name="android:windowActionModeOverlay">true</item> <item name="android:windowActionModeOverlay">true</item>
<item name="android:colorEdgeEffect">?android:attr/textColorSecondary</item>
</style> </style>
<!-- Workspace --> <!-- Workspace -->

View File

@ -21,4 +21,11 @@
<style name="WidgetContainerTheme" parent="@android:style/Theme.DeviceDefault.Settings"> <style name="WidgetContainerTheme" parent="@android:style/Theme.DeviceDefault.Settings">
<item name="android:colorEdgeEffect">?android:attr/textColorSecondary</item> <item name="android:colorEdgeEffect">?android:attr/textColorSecondary</item>
</style> </style>
<!-- From O and above, we show a dark nav bar in all-apps -->
<style name="AllAppsNavBarProtection">
<item name="android:alpha">0.6</item>
<item name="android:background">?android:attr/colorPrimary</item>
</style>
</resources> </resources>

View File

@ -26,21 +26,11 @@
<color name="focused_background">#80c6c5c5</color> <color name="focused_background">#80c6c5c5</color>
<color name="workspace_icon_text_color">#FFF</color> <color name="workspace_icon_text_color">#FFF</color>
<color name="workspace_edge_effect_color">#FFFFFFFF</color> <color name="workspace_edge_effect_color">#FFFFFFFF</color>
<color name="folder_edge_effect_color">#FF757575</color>
<color name="page_indicator_dot_color">#FFDDDDDD</color>
<color name="quantum_panel_text_color">#FF666666</color> <color name="default_shadow_color_no_alpha">#FF000000</color>
<color name="quantum_panel_bg_color">#FFF5F5F5</color>
<color name="outline_color">#FFFFFFFF</color> <color name="outline_color">#FFFFFFFF</color>
<color name="all_apps_divider_color">#1E000000</color>
<color name="all_apps_caret_color">#FFFFFFFF</color>
<color name="all_apps_caret_shadow_color">#22000000</color>
<color name="all_apps_container_color">#FFF2F2F2</color>
<color name="all_apps_navbar_color">#28000000</color>
<color name="all_apps_light_navbar_color">#AAF2F2F2</color>
<color name="spring_loaded_panel_color">#40FFFFFF</color> <color name="spring_loaded_panel_color">#40FFFFFF</color>
<color name="spring_loaded_highlighted_panel_border_color">#FFF</color> <color name="spring_loaded_highlighted_panel_border_color">#FFF</color>

View File

@ -120,9 +120,6 @@
<dimen name="spring_loaded_panel_border">1dp</dimen> <dimen name="spring_loaded_panel_border">1dp</dimen>
<!-- Theme -->
<dimen name="quantum_panel_outer_padding">4dp</dimen>
<!-- Folders --> <!-- Folders -->
<!-- The size of the padding on the preview background drawable --> <!-- The size of the padding on the preview background drawable -->
<dimen name="folder_preview_padding">6dp</dimen> <dimen name="folder_preview_padding">6dp</dimen>

View File

@ -24,11 +24,17 @@
<item name="android:colorBackgroundCacheHint">@null</item> <item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowShowWallpaper">true</item> <item name="android:windowShowWallpaper">true</item>
<item name="android:windowNoTitle">true</item> <item name="android:windowNoTitle">true</item>
<item name="android:colorEdgeEffect">#FF757575</item>
</style> </style>
<style name="LauncherTheme" parent="@style/BaseLauncherTheme"></style> <style name="LauncherTheme" parent="@style/BaseLauncherTheme"></style>
<style name="Theme" parent="@style/LauncherTheme"></style> <!-- Theme for the widget container. Overridden on API 26. -->
<style name="WidgetContainerTheme" parent="@android:style/Theme.DeviceDefault.Settings">
<item name="android:colorEdgeEffect">?android:attr/textColorSecondaryInverse</item>
<item name="android:textColorPrimary">?android:attr/textColorPrimaryInverse</item>
<item name="android:textColorSecondary">?android:attr/textColorSecondaryInverse</item>
</style>
<style name="FastScrollerPopup" > <style name="FastScrollerPopup" >
<item name="android:background">@drawable/container_fastscroll_popup_bg</item> <item name="android:background">@drawable/container_fastscroll_popup_bg</item>
@ -44,88 +50,35 @@
<item name="android:includeFontPadding">false</item> <item name="android:includeFontPadding">false</item>
</style> </style>
<!-- Theme for the widget container. Overridden on API 25. --> <!-- Style for nav bar background in all-apps screen -->
<style name="WidgetContainerTheme" parent="@android:style/Theme.DeviceDefault.Settings"> <style name="AllAppsNavBarProtection">
<item name="android:colorEdgeEffect">@color/workspace_edge_effect_color</item> <item name="android:alpha">?android:attr/spotShadowAlpha</item>
<item name="android:textColorPrimary">?android:attr/textColorPrimaryInverse</item> <item name="android:background">@color/default_shadow_color_no_alpha</item>
<item name="android:textColorSecondary">?android:attr/textColorSecondaryInverse</item>
</style> </style>
<!-- Overscroll effect --> <!-- Base theme for BubbleTextView and sub classes -->
<style name="AllAppsOverscroll" parent="@android:style/Theme.DeviceDefault.Light"> <style name="BaseIcon">
<item name="android:colorEdgeEffect">@color/folder_edge_effect_color</item>
</style>
<!-- Different icons -->
<style name="Icon">
<item name="android:layout_width">match_parent</item> <item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item> <item name="android:layout_height">match_parent</item>
<item name="android:layout_gravity">center</item> <item name="android:layout_gravity">center</item>
<item name="android:focusable">true</item>
<item name="android:gravity">center_horizontal</item> <item name="android:gravity">center_horizontal</item>
<item name="android:singleLine">true</item> <item name="android:singleLine">true</item>
<item name="android:ellipsize">marquee</item> <item name="android:ellipsize">marquee</item>
<item name="android:textColor">?android:attr/textColorSecondary</item>
<item name="android:fontFamily">sans-serif-condensed</item>
<!-- No shadows in the base theme -->
<item name="android:shadowRadius">0</item>
<item name="customShadows">false</item>
</style>
<!-- Icon displayed on the worksapce -->
<style name="BaseIcon.Workspace">
<item name="customShadows">true</item>
<item name="android:textColor">@color/workspace_icon_text_color</item> <item name="android:textColor">@color/workspace_icon_text_color</item>
<item name="android:shadowRadius">2.0</item> <item name="android:shadowRadius">2.0</item>
<item name="android:shadowColor">#B0000000</item> <item name="android:shadowColor">#B0000000</item>
<item name="android:fontFamily">sans-serif-condensed</item>
</style>
<style name="Icon.AllApps">
<item name="android:background">@null</item>
<item name="android:textColor">@color/quantum_panel_text_color</item>
<item name="android:drawablePadding">@dimen/dynamic_grid_icon_drawable_padding</item>
<item name="android:shadowRadius">0</item>
<item name="android:paddingLeft">4dp</item>
<item name="android:paddingRight">4dp</item>
<item name="customShadows">false</item>
</style>
<style name="Icon.Folder">
<item name="android:background">@null</item>
<item name="android:textColor">@color/quantum_panel_text_color</item>
<item name="android:shadowRadius">0</item>
<item name="android:gravity">center_horizontal</item>
<item name="android:includeFontPadding">false</item>
<item name="customShadows">false</item>
<item name="iconDisplay">folder</item>
</style>
<style name="Icon.DeepShortcut">
<item name="android:gravity">start|center_vertical</item>
<item name="android:textAlignment">viewStart</item>
<item name="android:elevation">@dimen/deep_shortcuts_elevation</item>
<item name="android:paddingStart">@dimen/bg_pill_height</item>
<item name="android:paddingEnd">@dimen/deep_shortcut_padding_end</item>
<item name="android:drawableEnd">@drawable/deep_shortcuts_drag_handle</item>
<item name="android:drawablePadding">@dimen/deep_shortcut_drawable_padding</item>
<item name="android:textColor">#FF212121</item>
<item name="android:textSize">14sp</item>
<item name="android:fontFamily">sans-serif</item>
<item name="android:shadowRadius">0</item>
<item name="customShadows">false</item>
<item name="layoutHorizontal">true</item>
<item name="iconDisplay">shortcut_popup</item>
<item name="iconSizeOverride">@dimen/deep_shortcut_icon_size</item>
</style>
<style name="Icon.DeepNotification">
<item name="android:gravity">start</item>
<item name="android:textAlignment">viewStart</item>
<item name="android:elevation">@dimen/deep_shortcuts_elevation</item>
<item name="android:textColor">#FF212121</item>
<item name="android:textSize">14sp</item>
<item name="android:fontFamily">sans-serif</item>
<item name="android:shadowRadius">0</item>
<item name="customShadows">false</item>
<item name="layoutHorizontal">true</item>
<item name="iconDisplay">shortcut_popup</item>
<item name="iconSizeOverride">@dimen/deep_shortcut_icon_size</item>
</style>
<style name="Icon.DeepNotification.SubText">
<item name="android:textColor">#FF757575</item>
<item name="android:textSize">12sp</item>
<item name="android:paddingEnd">4dp</item>
</style> </style>
<!-- Drop targets --> <!-- Drop targets -->
@ -133,11 +86,11 @@
<item name="android:drawablePadding">7.5dp</item> <item name="android:drawablePadding">7.5dp</item>
<item name="android:paddingLeft">16dp</item> <item name="android:paddingLeft">16dp</item>
<item name="android:paddingRight">16dp</item> <item name="android:paddingRight">16dp</item>
<item name="android:textColor">#FFFFFFFF</item> <item name="android:textColor">@color/workspace_icon_text_color</item>
<item name="android:textSize">@dimen/drop_target_text_size</item> <item name="android:textSize">@dimen/drop_target_text_size</item>
<item name="android:singleLine">true</item> <item name="android:singleLine">true</item>
<item name="android:ellipsize">end</item> <item name="android:ellipsize">end</item>
<item name="android:shadowColor">#FF000000</item> <item name="android:shadowColor">@color/default_shadow_color_no_alpha</item>
<item name="android:shadowDx">0.0</item> <item name="android:shadowDx">0.0</item>
<item name="android:shadowDy">1.0</item> <item name="android:shadowDy">1.0</item>
<item name="android:shadowRadius">4.0</item> <item name="android:shadowRadius">4.0</item>

View File

@ -29,6 +29,7 @@ import android.view.ViewConfiguration;
import android.widget.TextView; import android.widget.TextView;
import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.util.Themes;
/** /**
* The track and scrollbar that shows when you scroll the list. * The track and scrollbar that shows when you scroll the list.
@ -102,7 +103,7 @@ public class BaseRecyclerViewFastScrollBar {
mThumbPaint = new Paint(); mThumbPaint = new Paint();
mThumbPaint.setAntiAlias(true); mThumbPaint.setAntiAlias(true);
mThumbPaint.setColor(Utilities.getColorAccent(rv.getContext())); mThumbPaint.setColor(Themes.getColorAccent(rv.getContext()));
mThumbPaint.setStyle(Paint.Style.FILL); mThumbPaint.setStyle(Paint.Style.FILL);
mWidth = mMinWidth = res.getDimensionPixelSize(R.dimen.container_fastscroll_thumb_min_width); mWidth = mMinWidth = res.getDimensionPixelSize(R.dimen.container_fastscroll_thumb_min_width);

View File

@ -113,7 +113,7 @@ public class BubbleTextView extends TextView
TypedArray a = context.obtainStyledAttributes(attrs, TypedArray a = context.obtainStyledAttributes(attrs,
R.styleable.BubbleTextView, defStyle, 0); R.styleable.BubbleTextView, defStyle, 0);
mCustomShadowsEnabled = a.getBoolean(R.styleable.BubbleTextView_customShadows, true); mCustomShadowsEnabled = a.getBoolean(R.styleable.BubbleTextView_customShadows, false);
mLayoutHorizontal = a.getBoolean(R.styleable.BubbleTextView_layoutHorizontal, false); mLayoutHorizontal = a.getBoolean(R.styleable.BubbleTextView_layoutHorizontal, false);
mDeferShadowGenerationOnTouch = mDeferShadowGenerationOnTouch =
a.getBoolean(R.styleable.BubbleTextView_deferShadowGeneration, false); a.getBoolean(R.styleable.BubbleTextView_deferShadowGeneration, false);
@ -395,7 +395,7 @@ public class BubbleTextView extends TextView
} }
// If text is transparent, don't draw any shadow // If text is transparent, don't draw any shadow
if (getCurrentTextColor() == getResources().getColor(android.R.color.transparent)) { if ((getCurrentTextColor() >> 24) == 0) {
getPaint().clearShadowLayer(); getPaint().clearShadowLayer();
super.draw(canvas); super.draw(canvas);
return; return;

View File

@ -25,7 +25,6 @@ import android.graphics.Color;
import android.graphics.Rect; import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.support.v4.content.ContextCompat;
import android.support.v4.graphics.ColorUtils; import android.support.v4.graphics.ColorUtils;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -40,6 +39,7 @@ import com.android.launcher3.dynamicui.ExtractedColors;
import com.android.launcher3.logging.UserEventDispatcher; import com.android.launcher3.logging.UserEventDispatcher;
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType; import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
import com.android.launcher3.userevent.nano.LauncherLogProto.Target; import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
import com.android.launcher3.util.Themes;
public class Hotseat extends FrameLayout public class Hotseat extends FrameLayout
implements UserEventDispatcher.LogContainerProvider { implements UserEventDispatcher.LogContainerProvider {
@ -70,7 +70,7 @@ public class Hotseat extends FrameLayout
mLauncher = Launcher.getLauncher(context); mLauncher = Launcher.getLauncher(context);
mHasVerticalHotseat = mLauncher.getDeviceProfile().isVerticalBarLayout(); mHasVerticalHotseat = mLauncher.getDeviceProfile().isVerticalBarLayout();
mBackgroundColor = ColorUtils.setAlphaComponent( mBackgroundColor = ColorUtils.setAlphaComponent(
ContextCompat.getColor(context, R.color.all_apps_container_color), 0); Themes.getAttrColor(context, android.R.attr.colorPrimary), 0);
mBackground = new ColorDrawable(mBackgroundColor); mBackground = new ColorDrawable(mBackgroundColor);
setBackground(mBackground); setBackground(mBackground);
} }

View File

@ -27,7 +27,6 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources; import android.content.res.Resources;
import android.content.res.TypedArray;
import android.database.Cursor; import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteException;
@ -45,7 +44,6 @@ import android.os.UserHandle;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.ContextThemeWrapper;
import com.android.launcher3.compat.LauncherAppsCompat; import com.android.launcher3.compat.LauncherAppsCompat;
import com.android.launcher3.compat.UserManagerCompat; import com.android.launcher3.compat.UserManagerCompat;
@ -56,6 +54,7 @@ import com.android.launcher3.util.ComponentKey;
import com.android.launcher3.util.Preconditions; import com.android.launcher3.util.Preconditions;
import com.android.launcher3.util.Provider; import com.android.launcher3.util.Provider;
import com.android.launcher3.util.SQLiteCacheHelper; import com.android.launcher3.util.SQLiteCacheHelper;
import com.android.launcher3.util.Themes;
import com.android.launcher3.util.Thunk; import com.android.launcher3.util.Thunk;
import java.util.Collections; import java.util.Collections;
@ -132,10 +131,9 @@ public class IconCache {
IconProvider.class, context, R.string.icon_provider_class); IconProvider.class, context, R.string.icon_provider_class);
mWorkerHandler = new Handler(LauncherModel.getWorkerLooper()); mWorkerHandler = new Handler(LauncherModel.getWorkerLooper());
mActivityBgColor = context.getResources().getColor(R.color.quantum_panel_bg_color); mActivityBgColor = Themes.getColorPrimary(context, R.style.LauncherTheme);
mPackageBgColor = Utilities.getAttrColor( mPackageBgColor = Themes.getColorPrimary(context, R.style.WidgetContainerTheme);
new ContextThemeWrapper(context, R.style.WidgetContainerTheme),
android.R.attr.colorPrimary);
mLowResOptions = new BitmapFactory.Options(); mLowResOptions = new BitmapFactory.Options();
// Always prefer RGB_565 config for low res. If the bitmap has transparency, it will // Always prefer RGB_565 config for low res. If the bitmap has transparency, it will
// automatically be loaded as ALPHA_8888. // automatically be loaded as ALPHA_8888.

View File

@ -25,6 +25,7 @@ import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import com.android.launcher3.compat.LauncherAppsCompat; import com.android.launcher3.compat.LauncherAppsCompat;
import com.android.launcher3.util.Themes;
public class InfoDropTarget extends UninstallDropTarget { public class InfoDropTarget extends UninstallDropTarget {
@ -42,7 +43,7 @@ public class InfoDropTarget extends UninstallDropTarget {
protected void onFinishInflate() { protected void onFinishInflate() {
super.onFinishInflate(); super.onFinishInflate();
// Get the hover color // Get the hover color
mHoverColor = Utilities.getColorAccent(getContext()); mHoverColor = Themes.getColorAccent(getContext());
setDrawable(R.drawable.ic_info_launcher); setDrawable(R.drawable.ic_info_launcher);
} }

View File

@ -35,6 +35,7 @@ import android.view.View.OnClickListener;
import com.android.launcher3.IconCache.ItemInfoUpdateReceiver; import com.android.launcher3.IconCache.ItemInfoUpdateReceiver;
import com.android.launcher3.graphics.DrawableFactory; import com.android.launcher3.graphics.DrawableFactory;
import com.android.launcher3.model.PackageItemInfo; import com.android.launcher3.model.PackageItemInfo;
import com.android.launcher3.util.Themes;
public class PendingAppWidgetHostView extends LauncherAppWidgetHostView public class PendingAppWidgetHostView extends LauncherAppWidgetHostView
implements OnClickListener, ItemInfoUpdateReceiver { implements OnClickListener, ItemInfoUpdateReceiver {
@ -69,7 +70,7 @@ public class PendingAppWidgetHostView extends LauncherAppWidgetHostView
mDisabledForSafeMode = disabledForSafeMode; mDisabledForSafeMode = disabledForSafeMode;
mPaint = new TextPaint(); mPaint = new TextPaint();
mPaint.setColor(Utilities.getAttrColor(getContext(), android.R.attr.textColorPrimary)); mPaint.setColor(Themes.getAttrColor(getContext(), android.R.attr.textColorPrimary));
mPaint.setTextSize(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, mPaint.setTextSize(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX,
mLauncher.getDeviceProfile().iconTextSizePx, getResources().getDisplayMetrics())); mLauncher.getDeviceProfile().iconTextSizePx, getResources().getDisplayMetrics()));
setBackgroundResource(R.drawable.round_rect_primary); setBackgroundResource(R.drawable.round_rect_primary);

View File

@ -27,7 +27,6 @@ import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import android.content.res.Resources; import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.Matrix; import android.graphics.Matrix;
@ -608,17 +607,6 @@ public final class Utilities {
return c == null || c.isEmpty(); return c == null || c.isEmpty();
} }
public static int getColorAccent(Context context) {
return getAttrColor(context, android.R.attr.colorAccent);
}
public static int getAttrColor(Context context, int attr) {
TypedArray ta = context.obtainStyledAttributes(new int[]{attr});
int colorAccent = ta.getColor(0, 0);
ta.recycle();
return colorAccent;
}
public static void sendCustomAccessibilityEvent(View target, int type, String text) { public static void sendCustomAccessibilityEvent(View target, int type, String text) {
AccessibilityManager accessibilityManager = (AccessibilityManager) AccessibilityManager accessibilityManager = (AccessibilityManager)
target.getContext().getSystemService(Context.ACCESSIBILITY_SERVICE); target.getContext().getSystemService(Context.ACCESSIBILITY_SERVICE);

View File

@ -464,10 +464,6 @@ public class AllAppsContainerView extends BaseContainerView implements DragSourc
setLayoutParams(mlp); setLayoutParams(mlp);
} else { } else {
View navBarBg = findViewById(R.id.nav_bar_bg); View navBarBg = findViewById(R.id.nav_bar_bg);
if (Utilities.isAtLeastO()) {
navBarBg.setBackgroundColor(getResources().getColor(
R.color.all_apps_light_navbar_color));
}
ViewGroup.LayoutParams navBarBgLp = navBarBg.getLayoutParams(); ViewGroup.LayoutParams navBarBgLp = navBarBg.getLayoutParams();
navBarBgLp.height = insets.bottom; navBarBgLp.height = insets.bottom;
navBarBg.setLayoutParams(navBarBgLp); navBarBg.setLayoutParams(navBarBgLp);

View File

@ -7,7 +7,6 @@ import android.animation.AnimatorSet;
import android.animation.ArgbEvaluator; import android.animation.ArgbEvaluator;
import android.animation.ObjectAnimator; import android.animation.ObjectAnimator;
import android.graphics.Color; import android.graphics.Color;
import android.support.v4.content.ContextCompat;
import android.support.v4.graphics.ColorUtils; import android.support.v4.graphics.ColorUtils;
import android.support.v4.view.animation.FastOutSlowInInterpolator; import android.support.v4.view.animation.FastOutSlowInInterpolator;
import android.util.Log; import android.util.Log;
@ -26,6 +25,7 @@ import com.android.launcher3.Utilities;
import com.android.launcher3.Workspace; import com.android.launcher3.Workspace;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action; import com.android.launcher3.userevent.nano.LauncherLogProto.Action;
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType; import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
import com.android.launcher3.util.Themes;
import com.android.launcher3.util.TouchController; import com.android.launcher3.util.TouchController;
/** /**
@ -102,7 +102,7 @@ public class AllAppsTransitionController implements TouchController, VerticalPul
mProgress = 1f; mProgress = 1f;
mEvaluator = new ArgbEvaluator(); mEvaluator = new ArgbEvaluator();
mAllAppsBackgroundColor = ContextCompat.getColor(l, R.color.all_apps_container_color); mAllAppsBackgroundColor = Themes.getAttrColor(l, android.R.attr.colorPrimary);
} }
@Override @Override

View File

@ -45,6 +45,7 @@ import com.android.launcher3.Workspace.ItemOperator;
import com.android.launcher3.dragndrop.DragController; import com.android.launcher3.dragndrop.DragController;
import com.android.launcher3.keyboard.ViewGroupFocusHelper; import com.android.launcher3.keyboard.ViewGroupFocusHelper;
import com.android.launcher3.pageindicators.PageIndicator; import com.android.launcher3.pageindicators.PageIndicator;
import com.android.launcher3.util.Themes;
import com.android.launcher3.util.Thunk; import com.android.launcher3.util.Thunk;
import java.util.ArrayList; import java.util.ArrayList;
@ -107,7 +108,7 @@ public class FolderPagedView extends PagedView {
mIsRtl = Utilities.isRtl(getResources()); mIsRtl = Utilities.isRtl(getResources());
setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES); setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES);
setEdgeGlowColor(getResources().getColor(R.color.folder_edge_effect_color)); setEdgeGlowColor(Themes.getAttrColor(context, android.R.attr.colorEdgeEffect));
mFocusIndicatorHelper = new ViewGroupFocusHelper(this); mFocusIndicatorHelper = new ViewGroupFocusHelper(this);
} }

View File

@ -77,7 +77,7 @@ public class DrawableFactory {
if (mPreloadProgressPath == null) { if (mPreloadProgressPath == null) {
mPreloadProgressPath = getPreloadProgressPath(context); mPreloadProgressPath = getPreloadProgressPath(context);
} }
return new PreloadIconDrawable(icon, mPreloadProgressPath); return new PreloadIconDrawable(icon, mPreloadProgressPath, context);
} }

View File

@ -23,6 +23,8 @@ import android.support.v4.graphics.ColorUtils;
import android.util.Log; import android.util.Log;
import com.android.launcher3.R; import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.util.Themes;
/** /**
* Contains colors based on the dominant color of an icon. * Contains colors based on the dominant color of an icon.
@ -36,7 +38,6 @@ public class IconPalette {
private static final float MIN_PRELOAD_COLOR_SATURATION = 0.2f; private static final float MIN_PRELOAD_COLOR_SATURATION = 0.2f;
private static final float MIN_PRELOAD_COLOR_LIGHTNESS = 0.6f; private static final float MIN_PRELOAD_COLOR_LIGHTNESS = 0.6f;
private static final int DEFAULT_PRELOAD_COLOR = 0xFF009688;
public final int dominantColor; public final int dominantColor;
public final int backgroundColor; public final int backgroundColor;
@ -53,14 +54,14 @@ public class IconPalette {
/** /**
* Returns a color suitable for the progress bar color of preload icon. * Returns a color suitable for the progress bar color of preload icon.
*/ */
public int getPreloadProgressColor() { public int getPreloadProgressColor(Context context) {
int result = dominantColor; int result = dominantColor;
// Make sure that the dominant color has enough saturation to be visible properly. // Make sure that the dominant color has enough saturation to be visible properly.
float[] hsv = new float[3]; float[] hsv = new float[3];
Color.colorToHSV(result, hsv); Color.colorToHSV(result, hsv);
if (hsv[1] < MIN_PRELOAD_COLOR_SATURATION) { if (hsv[1] < MIN_PRELOAD_COLOR_SATURATION) {
result = DEFAULT_PRELOAD_COLOR; result = Themes.getColorAccent(context);
} else { } else {
hsv[2] = Math.max(MIN_PRELOAD_COLOR_LIGHTNESS, hsv[2]); hsv[2] = Math.max(MIN_PRELOAD_COLOR_LIGHTNESS, hsv[2]);
result = Color.HSVToColor(hsv); result = Color.HSVToColor(hsv);

View File

@ -20,6 +20,7 @@ package com.android.launcher3.graphics;
import android.animation.Animator; import android.animation.Animator;
import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator; import android.animation.ObjectAnimator;
import android.content.Context;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.Canvas; import android.graphics.Canvas;
import android.graphics.Matrix; import android.graphics.Matrix;
@ -75,6 +76,8 @@ public class PreloadIconDrawable extends FastBitmapDrawable {
private final Matrix mTmpMatrix = new Matrix(); private final Matrix mTmpMatrix = new Matrix();
private final PathMeasure mPathMeasure = new PathMeasure(); private final PathMeasure mPathMeasure = new PathMeasure();
private final Context mContext;
// Path in [0, 100] bounds. // Path in [0, 100] bounds.
private final Path mProgressPath; private final Path mProgressPath;
@ -100,8 +103,9 @@ public class PreloadIconDrawable extends FastBitmapDrawable {
/** /**
* @param progressPath fixed path in the bounds [0, 0, 100, 100] representing a progress bar. * @param progressPath fixed path in the bounds [0, 0, 100, 100] representing a progress bar.
*/ */
public PreloadIconDrawable(Bitmap b, Path progressPath) { public PreloadIconDrawable(Bitmap b, Path progressPath, Context context) {
super(b); super(b);
mContext = context;
mProgressPath = progressPath; mProgressPath = progressPath;
mScaledTrackPath = new Path(); mScaledTrackPath = new Path();
mScaledProgressPath = new Path(); mScaledProgressPath = new Path();
@ -262,7 +266,7 @@ public class PreloadIconDrawable extends FastBitmapDrawable {
setIsDisabled(true); setIsDisabled(true);
} else if (mIndicatorColor == 0) { } else if (mIndicatorColor == 0) {
// Update the indicator color // Update the indicator color
mIndicatorColor = getIconPalette().getPreloadProgressColor(); mIndicatorColor = getIconPalette().getPreloadProgressColor(mContext);
} }
if (progress < 1 && progress > 0) { if (progress < 1 && progress > 0) {

View File

@ -24,6 +24,7 @@ import android.graphics.Path;
import android.graphics.PixelFormat; import android.graphics.PixelFormat;
import com.android.launcher3.R; import com.android.launcher3.R;
import com.android.launcher3.util.Themes;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
@ -45,14 +46,15 @@ public class CaretDrawable extends Drawable {
final int strokeWidth = res.getDimensionPixelSize(R.dimen.all_apps_caret_stroke_width); final int strokeWidth = res.getDimensionPixelSize(R.dimen.all_apps_caret_stroke_width);
final int shadowSpread = res.getDimensionPixelSize(R.dimen.all_apps_caret_shadow_spread); final int shadowSpread = res.getDimensionPixelSize(R.dimen.all_apps_caret_shadow_spread);
mCaretPaint.setColor(res.getColor(R.color.all_apps_caret_color)); mCaretPaint.setColor(res.getColor(R.color.workspace_icon_text_color));
mCaretPaint.setAntiAlias(true); mCaretPaint.setAntiAlias(true);
mCaretPaint.setStrokeWidth(strokeWidth); mCaretPaint.setStrokeWidth(strokeWidth);
mCaretPaint.setStyle(Paint.Style.STROKE); mCaretPaint.setStyle(Paint.Style.STROKE);
mCaretPaint.setStrokeCap(Paint.Cap.SQUARE); mCaretPaint.setStrokeCap(Paint.Cap.SQUARE);
mCaretPaint.setStrokeJoin(Paint.Join.MITER); mCaretPaint.setStrokeJoin(Paint.Join.MITER);
mShadowPaint.setColor(res.getColor(R.color.all_apps_caret_shadow_color)); mShadowPaint.setColor(res.getColor(R.color.default_shadow_color_no_alpha));
mShadowPaint.setAlpha(Themes.getAlpha(context, android.R.attr.spotShadowAlpha));
mShadowPaint.setAntiAlias(true); mShadowPaint.setAntiAlias(true);
mShadowPaint.setStrokeWidth(strokeWidth + (shadowSpread * 2)); mShadowPaint.setStrokeWidth(strokeWidth + (shadowSpread * 2));
mShadowPaint.setStyle(Paint.Style.STROKE); mShadowPaint.setStyle(Paint.Style.STROKE);

View File

@ -37,6 +37,7 @@ import android.view.animation.OvershootInterpolator;
import com.android.launcher3.R; import com.android.launcher3.R;
import com.android.launcher3.Utilities; import com.android.launcher3.Utilities;
import com.android.launcher3.util.Themes;
/** /**
* {@link PageIndicator} which shows dots per page. The active page is shown with the current * {@link PageIndicator} which shows dots per page. The active page is shown with the current
@ -111,8 +112,8 @@ public class PageIndicatorDots extends PageIndicator {
mDotRadius = getResources().getDimension(R.dimen.page_indicator_dot_size) / 2; mDotRadius = getResources().getDimension(R.dimen.page_indicator_dot_size) / 2;
setOutlineProvider(new MyOutlineProver()); setOutlineProvider(new MyOutlineProver());
mActiveColor = Utilities.getColorAccent(context); mActiveColor = Themes.getColorAccent(context);
mInActiveColor = getResources().getColor(R.color.page_indicator_dot_color); mInActiveColor = Themes.getAttrColor(context, android.R.attr.colorControlHighlight);
mIsRtl = Utilities.isRtl(getResources()); mIsRtl = Utilities.isRtl(getResources());
} }

View File

@ -0,0 +1,52 @@
/*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.launcher3.util;
import android.content.Context;
import android.content.res.TypedArray;
import android.view.ContextThemeWrapper;
/**
* Various utility methods associated with theming.
*/
public class Themes {
public static int getColorAccent(Context context) {
return getAttrColor(context, android.R.attr.colorAccent);
}
public static int getColorPrimary(Context context, int theme) {
return getAttrColor(new ContextThemeWrapper(context, theme), android.R.attr.colorPrimary);
}
public static int getAttrColor(Context context, int attr) {
TypedArray ta = context.obtainStyledAttributes(new int[]{attr});
int colorAccent = ta.getColor(0, 0);
ta.recycle();
return colorAccent;
}
/**
* Returns the alpha corresponding to the theme attribute {@param attr}, in the range [0, 255].
*/
public static int getAlpha(Context context, int attr) {
TypedArray ta = context.obtainStyledAttributes(new int[]{attr});
float alpha = ta.getFloat(0, 0);
ta.recycle();
return (int) (255 * alpha + 0.5f);
}
}