Loading packages/SystemUI/res-keyguard/drawable/ic_content_paste_spark.xml 0 → 100644 +31 −0 Original line number Diff line number Diff line <!-- ~ Copyright (C) 2025 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. --> <vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" android:width="20dp" android:height="20dp" android:viewportWidth="20" android:viewportHeight="20" android:tint="@androidprv:color/materialColorOnSurface"> <path android:pathData="M2.979,17.021C3.313,17.34 3.708,17.5 4.167,17.5H10V15.833H4.167V4.167H5.833V6.667H14.167V4.167H15.833V7.5H17.5V4.167C17.5,3.708 17.333,3.319 17,3C16.681,2.667 16.292,2.5 15.833,2.5H12.375C12.222,2.014 11.924,1.618 11.479,1.312C11.049,0.993 10.556,0.833 10,0.833C9.472,0.833 8.986,0.993 8.542,1.312C8.097,1.618 7.799,2.014 7.646,2.5H4.167C3.708,2.5 3.313,2.667 2.979,3C2.66,3.319 2.5,3.708 2.5,4.167V15.833C2.5,16.292 2.66,16.688 2.979,17.021ZM10.583,3.937C10.431,4.09 10.236,4.167 10,4.167C9.764,4.167 9.563,4.09 9.396,3.937C9.243,3.771 9.167,3.569 9.167,3.333C9.167,3.097 9.243,2.903 9.396,2.75C9.563,2.583 9.764,2.5 10,2.5C10.236,2.5 10.431,2.583 10.583,2.75C10.75,2.903 10.833,3.097 10.833,3.333C10.833,3.569 10.75,3.771 10.583,3.937Z" android:fillColor="#000000" android:fillType="evenOdd"/> <path android:pathData="M14.583,18.333C14.568,18.333 14.56,18.326 14.56,18.31C14.56,17.684 14.442,17.096 14.205,16.546C13.968,15.996 13.644,15.515 13.231,15.102C12.819,14.69 12.337,14.365 11.788,14.128C11.238,13.891 10.649,13.773 10.023,13.773C10.008,13.773 10,13.765 10,13.75C10,13.735 10.008,13.727 10.023,13.727C10.649,13.727 11.238,13.609 11.788,13.372C12.337,13.135 12.819,12.81 13.231,12.398C13.644,11.985 13.968,11.504 14.205,10.954C14.442,10.404 14.56,9.816 14.56,9.19C14.56,9.174 14.568,9.167 14.583,9.167C14.599,9.167 14.606,9.174 14.606,9.19C14.606,9.816 14.725,10.404 14.962,10.954C15.198,11.504 15.523,11.985 15.935,12.398C16.348,12.81 16.829,13.135 17.379,13.372C17.929,13.609 18.517,13.727 19.144,13.727C19.159,13.727 19.167,13.735 19.167,13.75C19.167,13.765 19.159,13.773 19.144,13.773C18.517,13.773 17.929,13.891 17.379,14.128C16.829,14.365 16.348,14.69 15.935,15.102C15.523,15.515 15.198,15.996 14.962,16.546C14.725,17.096 14.606,17.684 14.606,18.31C14.606,18.326 14.599,18.333 14.583,18.333Z" android:fillColor="#000000"/> </vector> packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyStateInflater.kt +14 −1 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ import android.view.accessibility.AccessibilityNodeInfo import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction import android.widget.Button import android.service.notification.StatusBarNotification import androidx.appcompat.content.res.AppCompatResources import com.android.systemui.Flags import com.android.systemui.plugins.ActivityStarter import com.android.systemui.res.R Loading Loading @@ -426,8 +427,11 @@ constructor( // We received the Icon from the application - so use the Context of the application // to // reference icon resources. val newIconSize = val newIconSize = if (isAnimatedAction) { context.resources.getDimensionPixelSize(R.dimen.animated_action_button_icon_size) } else { context.resources.getDimensionPixelSize(R.dimen.smart_action_button_icon_size) } val iconDrawable = loadIconDrawableWithTimeout(action.getIcon(), packageContext, newIconSize) ?: GradientDrawable() Loading Loading @@ -531,6 +535,15 @@ constructor( // attributionText with different color to choice text val fullTextWithAttribution = formatChoiceWithAttribution(choice) text = fullTextWithAttribution // Add the icon to the Animated Reply button val animatedReplyIconSize = context.resources.getDimensionPixelSize(R.dimen.animated_action_button_icon_size) val iconDrawable = AppCompatResources.getDrawable(context, R.drawable.ic_content_paste_spark) if (iconDrawable != null) { iconDrawable.setBounds(0, 0, animatedReplyIconSize, animatedReplyIconSize) setCompoundDrawablesRelative(iconDrawable, null, null, null) } } else { choiceToDeliver = choice text = choice Loading Loading
packages/SystemUI/res-keyguard/drawable/ic_content_paste_spark.xml 0 → 100644 +31 −0 Original line number Diff line number Diff line <!-- ~ Copyright (C) 2025 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. --> <vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" android:width="20dp" android:height="20dp" android:viewportWidth="20" android:viewportHeight="20" android:tint="@androidprv:color/materialColorOnSurface"> <path android:pathData="M2.979,17.021C3.313,17.34 3.708,17.5 4.167,17.5H10V15.833H4.167V4.167H5.833V6.667H14.167V4.167H15.833V7.5H17.5V4.167C17.5,3.708 17.333,3.319 17,3C16.681,2.667 16.292,2.5 15.833,2.5H12.375C12.222,2.014 11.924,1.618 11.479,1.312C11.049,0.993 10.556,0.833 10,0.833C9.472,0.833 8.986,0.993 8.542,1.312C8.097,1.618 7.799,2.014 7.646,2.5H4.167C3.708,2.5 3.313,2.667 2.979,3C2.66,3.319 2.5,3.708 2.5,4.167V15.833C2.5,16.292 2.66,16.688 2.979,17.021ZM10.583,3.937C10.431,4.09 10.236,4.167 10,4.167C9.764,4.167 9.563,4.09 9.396,3.937C9.243,3.771 9.167,3.569 9.167,3.333C9.167,3.097 9.243,2.903 9.396,2.75C9.563,2.583 9.764,2.5 10,2.5C10.236,2.5 10.431,2.583 10.583,2.75C10.75,2.903 10.833,3.097 10.833,3.333C10.833,3.569 10.75,3.771 10.583,3.937Z" android:fillColor="#000000" android:fillType="evenOdd"/> <path android:pathData="M14.583,18.333C14.568,18.333 14.56,18.326 14.56,18.31C14.56,17.684 14.442,17.096 14.205,16.546C13.968,15.996 13.644,15.515 13.231,15.102C12.819,14.69 12.337,14.365 11.788,14.128C11.238,13.891 10.649,13.773 10.023,13.773C10.008,13.773 10,13.765 10,13.75C10,13.735 10.008,13.727 10.023,13.727C10.649,13.727 11.238,13.609 11.788,13.372C12.337,13.135 12.819,12.81 13.231,12.398C13.644,11.985 13.968,11.504 14.205,10.954C14.442,10.404 14.56,9.816 14.56,9.19C14.56,9.174 14.568,9.167 14.583,9.167C14.599,9.167 14.606,9.174 14.606,9.19C14.606,9.816 14.725,10.404 14.962,10.954C15.198,11.504 15.523,11.985 15.935,12.398C16.348,12.81 16.829,13.135 17.379,13.372C17.929,13.609 18.517,13.727 19.144,13.727C19.159,13.727 19.167,13.735 19.167,13.75C19.167,13.765 19.159,13.773 19.144,13.773C18.517,13.773 17.929,13.891 17.379,14.128C16.829,14.365 16.348,14.69 15.935,15.102C15.523,15.515 15.198,15.996 14.962,16.546C14.725,17.096 14.606,17.684 14.606,18.31C14.606,18.326 14.599,18.333 14.583,18.333Z" android:fillColor="#000000"/> </vector>
packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyStateInflater.kt +14 −1 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ import android.view.accessibility.AccessibilityNodeInfo import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction import android.widget.Button import android.service.notification.StatusBarNotification import androidx.appcompat.content.res.AppCompatResources import com.android.systemui.Flags import com.android.systemui.plugins.ActivityStarter import com.android.systemui.res.R Loading Loading @@ -426,8 +427,11 @@ constructor( // We received the Icon from the application - so use the Context of the application // to // reference icon resources. val newIconSize = val newIconSize = if (isAnimatedAction) { context.resources.getDimensionPixelSize(R.dimen.animated_action_button_icon_size) } else { context.resources.getDimensionPixelSize(R.dimen.smart_action_button_icon_size) } val iconDrawable = loadIconDrawableWithTimeout(action.getIcon(), packageContext, newIconSize) ?: GradientDrawable() Loading Loading @@ -531,6 +535,15 @@ constructor( // attributionText with different color to choice text val fullTextWithAttribution = formatChoiceWithAttribution(choice) text = fullTextWithAttribution // Add the icon to the Animated Reply button val animatedReplyIconSize = context.resources.getDimensionPixelSize(R.dimen.animated_action_button_icon_size) val iconDrawable = AppCompatResources.getDrawable(context, R.drawable.ic_content_paste_spark) if (iconDrawable != null) { iconDrawable.setBounds(0, 0, animatedReplyIconSize, animatedReplyIconSize) setCompoundDrawablesRelative(iconDrawable, null, null, null) } } else { choiceToDeliver = choice text = choice Loading