Make the clock font a little thicker

By adding an outline after the last animation frame

Test: visual
Change-Id: Id49b4d936a57f151d145918f0049b1edce91bd29
Fixes: 77541080
diff --git a/packages/SystemUI/res-keyguard/values/dimens.xml b/packages/SystemUI/res-keyguard/values/dimens.xml
index d628ca8..787f91e 100644
--- a/packages/SystemUI/res-keyguard/values/dimens.xml
+++ b/packages/SystemUI/res-keyguard/values/dimens.xml
@@ -53,6 +53,7 @@
     <dimen name="widget_big_font_size">64dp</dimen>
     <!-- Clock with header -->
     <dimen name="widget_small_font_size">24dp</dimen>
+    <dimen name="widget_small_font_stroke">0.6dp</dimen>
     <!-- Dash between clock and header -->
     <dimen name="widget_separator_width">12dp</dimen>
     <dimen name="widget_separator_thickness">1dp</dimen>
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
index f6b5d69..758a1b4 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
@@ -23,6 +23,7 @@
 import android.content.Context;
 import android.content.res.Resources;
 import android.graphics.Color;
+import android.graphics.Paint;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.RemoteException;
@@ -179,6 +180,8 @@
         mVisibleInDoze = Sets.newArraySet(mClockView, mKeyguardSlice);
         mTextColor = mClockView.getCurrentTextColor();
 
+        int clockStroke = getResources().getDimensionPixelSize(R.dimen.widget_small_font_stroke);
+        mClockView.getPaint().setStrokeWidth(clockStroke);
         mClockView.addOnLayoutChangeListener(this);
         mClockSeparator.addOnLayoutChangeListener(this);
         mKeyguardSlice.setContentChangeListener(this::onSliceContentChanged);
@@ -227,6 +230,7 @@
 
         if (view == mClockView) {
             float clockScale = smallClock ? mSmallClockScale : 1;
+            Paint.Style style = smallClock ? Paint.Style.FILL_AND_STROKE : Paint.Style.FILL;
             if (mAnimateLayout) {
                 mClockView.setY(oldTop + heightOffset);
                 mClockView.animate().cancel();
@@ -238,11 +242,17 @@
                         .y(top)
                         .scaleX(clockScale)
                         .scaleY(clockScale)
+                        .withEndAction(() -> {
+                            mClockView.getPaint().setStyle(style);
+                            mClockView.invalidate();
+                        })
                         .start();
             } else {
                 mClockView.setY(top);
                 mClockView.setScaleX(clockScale);
                 mClockView.setScaleY(clockScale);
+                mClockView.getPaint().setStyle(style);
+                mClockView.invalidate();
             }
         } else if (view == mClockSeparator) {
             boolean hasSeparator = hasHeader && !mPulsing;
@@ -280,6 +290,8 @@
         if (mClockView != null) {
             mClockView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
                     getResources().getDimensionPixelSize(R.dimen.widget_big_font_size));
+            mClockView.getPaint().setStrokeWidth(
+                    getResources().getDimensionPixelSize(R.dimen.widget_small_font_stroke));
         }
         if (mOwnerInfo != null) {
             mOwnerInfo.setTextSize(TypedValue.COMPLEX_UNIT_PX,