Update strings again for refreshed High Contrast Text

Deletes the old string resource and uses a new resource because the old
translated strings do not have formatting placeholders. Eventually the
old translated strings will be automatically deleted and the new string
with placeholder will be translated.

Also uses placeholders for referencing other strings so that
we guarantee that the strings are consistent across this notification
and the actual preference in Settings.

Bug: 384791485
Test: see bug screenshots
Flag: com.android.graphics.hwui.flags.high_contrast_text_small_text_rect
Change-Id: I89a9ee4b3755b20f4e090df5b4cccb7ce47a961c
diff --git a/res/values/strings.xml b/res/values/strings.xml
index f7c0410..bedc0f6 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5504,13 +5504,13 @@
     <!-- Summary for the accessibility preference to high contrast text. [CHAR LIMIT=NONE] -->
     <string name="accessibility_toggle_high_text_contrast_preference_summary">Change text color to black or white. Maximizes contrast with the background.</string>
     <!-- Title for the notification that high contrast text has been replaced. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_notification_high_contrast_text_title">High contrast text has been replaced</string>
+    <string name="accessibility_notification_high_contrast_text_title">Improve text contrast</string>
     <!-- Text content for the notification that high contrast text has been replaced. [CHAR LIMIT=NONE] -->
-    <string name="accessibility_notification_high_contrast_text_content">Try Text outlines instead. Find it in Settings.</string>
+    <string name="accessibility_notification_high_contrast_text_body"><xliff:g example="Outline text" id="outline_text">%1$s</xliff:g> has replaced <xliff:g example="high contrast text" id="high_contrast_text">%2$s</xliff:g>. You can turn it on in <xliff:g example="Settings" id="settings">%3$s</xliff:g>.</string>
     <!-- Action for the notification to high contrast text. [CHAR LIMIT=35] -->
-    <string name="accessibility_notification_high_contrast_text_action">Open Settings</string>
+    <string name="accessibility_notification_high_contrast_text_action">Go to <xliff:g example="Settings" id="settings">%1$s</xliff:g></string>
     <!-- Title for the accessibility preference that adds an outline behind text to increase contrast and legibility. [CHAR LIMIT=35] -->
-    <string name="accessibility_toggle_maximize_text_contrast_preference_title">Text outlines</string>
+    <string name="accessibility_toggle_maximize_text_contrast_preference_title">Outline text</string>
     <!-- Summary for the accessibility preference to high contrast text. [CHAR LIMIT=NONE] -->
     <string name="accessibility_toggle_maximize_text_contrast_preference_summary">Add a black or white background around text to increase contrast</string>
     <!-- Title for the accessibility preference to auto update screen magnification. [CHAR LIMIT=35] -->
diff --git a/src/com/android/settings/accessibility/HighContrastTextMigrationReceiver.java b/src/com/android/settings/accessibility/HighContrastTextMigrationReceiver.java
index 863689d..0b412ae 100644
--- a/src/com/android/settings/accessibility/HighContrastTextMigrationReceiver.java
+++ b/src/com/android/settings/accessibility/HighContrastTextMigrationReceiver.java
@@ -43,6 +43,7 @@
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import java.util.Locale;
 
 /**
  * Handling smooth migration to the new high contrast text appearance
@@ -128,14 +129,25 @@
         }
     }
 
+    private String getNotificationContentText(Context context) {
+        final String newName = context.getString(
+                R.string.accessibility_toggle_maximize_text_contrast_preference_title);
+        final String oldName = context.getString(
+                R.string.accessibility_toggle_high_text_contrast_preference_title)
+                .toLowerCase(Locale.getDefault());
+        final String settingsAppName = context.getString(R.string.settings_label);
+        return context.getString(
+                R.string.accessibility_notification_high_contrast_text_body,
+                newName, oldName, settingsAppName);
+    }
+
     private void showNotification(Context context) {
         Notification.Builder notificationBuilder = new Notification.Builder(context,
                 NOTIFICATION_CHANNEL)
                 .setSmallIcon(R.drawable.ic_settings_24dp)
                 .setContentTitle(context.getString(
                         R.string.accessibility_notification_high_contrast_text_title))
-                .setContentText(context.getString(
-                        R.string.accessibility_notification_high_contrast_text_content))
+                .setContentText(getNotificationContentText(context))
                 .setFlag(Notification.FLAG_NO_CLEAR, true);
 
         Intent settingsIntent = createHighContrastTextSettingsIntent(context);
@@ -149,8 +161,8 @@
                     actionIntent, PendingIntent.FLAG_IMMUTABLE);
             Notification.Action settingsAction = new Notification.Action.Builder(
                     /* icon= */ null,
-                    context.getString(
-                            R.string.accessibility_notification_high_contrast_text_action),
+                    context.getString(R.string.accessibility_notification_high_contrast_text_action,
+                            context.getString(R.string.settings_label)),
                     actionPendingIntent
             ).build();
 
diff --git a/tests/robotests/src/com/android/settings/accessibility/HighContrastTextMigrationReceiverTest.java b/tests/robotests/src/com/android/settings/accessibility/HighContrastTextMigrationReceiverTest.java
index b0864aa..98c2c23 100644
--- a/tests/robotests/src/com/android/settings/accessibility/HighContrastTextMigrationReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/HighContrastTextMigrationReceiverTest.java
@@ -46,9 +46,10 @@
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.graphics.hwui.flags.Flags;
-import com.android.settings.R;
 import com.android.settings.Utils;
 
+import com.google.common.truth.Expect;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -65,7 +66,8 @@
 /** Tests for {@link HighContrastTextMigrationReceiver}. */
 @RunWith(RobolectricTestRunner.class)
 public class HighContrastTextMigrationReceiverTest {
-
+    @Rule
+    public final Expect expect = Expect.create();
     @Rule
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
     private final Context mContext = ApplicationProvider.getApplicationContext();
@@ -230,14 +232,12 @@
         assertThat(notification).isNotNull();
 
         ShadowNotification shadowNotification = Shadows.shadowOf(notification);
-        assertThat(shadowNotification.getContentTitle()).isEqualTo(mContext.getString(
-                R.string.accessibility_notification_high_contrast_text_title));
-        assertThat(shadowNotification.getContentText()).isEqualTo(
-                mContext.getString(R.string.accessibility_notification_high_contrast_text_content));
+        expect.that(shadowNotification.getContentTitle()).isEqualTo("Improve text contrast");
+        expect.that(shadowNotification.getContentText()).isEqualTo(
+                "Outline text has replaced high contrast text. You can turn it on in Settings.");
 
-        assertThat(notification.actions.length).isEqualTo(1);
-        assertThat(notification.actions[0].title.toString()).isEqualTo(
-                mContext.getString(R.string.accessibility_notification_high_contrast_text_action));
+        expect.that(notification.actions.length).isEqualTo(1);
+        expect.that(notification.actions[0].title.toString()).isEqualTo("Go to Settings");
     }
 
     private void assertPromptStateAndHctState(