summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/text/flags/flags.aconfig13
-rw-r--r--services/core/java/com/android/server/graphics/fonts/FontManagerService.java6
2 files changed, 18 insertions, 1 deletions
diff --git a/core/java/android/text/flags/flags.aconfig b/core/java/android/text/flags/flags.aconfig
index 559fa96d0198..44fa1863afc1 100644
--- a/core/java/android/text/flags/flags.aconfig
+++ b/core/java/android/text/flags/flags.aconfig
@@ -53,6 +53,19 @@ flag {
}
flag {
+ name: "complete_font_load_in_system_services_ready"
+ namespace: "text"
+ description: "Fix to ensure that font loading is complete on system-services-ready boot phase."
+ # Make read only, as font loading is in the critical boot path which happens before the read-write
+ # flags propagate to the device.
+ is_fixed_read_only: true
+ bug: "327941215"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
+
+flag {
name: "phrase_strict_fallback"
namespace: "text"
description: "Feature flag for automatic fallback from phrase based line break to strict line break."
diff --git a/services/core/java/com/android/server/graphics/fonts/FontManagerService.java b/services/core/java/com/android/server/graphics/fonts/FontManagerService.java
index 7b844a099841..f3836794c32e 100644
--- a/services/core/java/com/android/server/graphics/fonts/FontManagerService.java
+++ b/services/core/java/com/android/server/graphics/fonts/FontManagerService.java
@@ -165,7 +165,11 @@ public final class FontManagerService extends IFontManager.Stub {
@Override
public void onBootPhase(int phase) {
- if (phase == SystemService.PHASE_ACTIVITY_MANAGER_READY) {
+ final int latestFontLoadBootPhase =
+ (Flags.completeFontLoadInSystemServicesReady())
+ ? SystemService.PHASE_SYSTEM_SERVICES_READY
+ : SystemService.PHASE_ACTIVITY_MANAGER_READY;
+ if (phase == latestFontLoadBootPhase) {
// Wait for FontManagerService to start since it will be needed after this point.
mServiceStarted.join();
}