diff options
| -rw-r--r-- | services/core/java/com/android/server/am/flags.aconfig | 11 | ||||
| -rw-r--r-- | services/core/java/com/android/server/appbinding/AppBindingConstants.java | 13 |
2 files changed, 21 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/am/flags.aconfig b/services/core/java/com/android/server/am/flags.aconfig index e89889e794ba..15beeda591d8 100644 --- a/services/core/java/com/android/server/am/flags.aconfig +++ b/services/core/java/com/android/server/am/flags.aconfig @@ -319,3 +319,14 @@ flag { purpose: PURPOSE_BUGFIX } } + +flag { + name: "lower_sms_oom_importance" + namespace: "backstage_power" + description: "Lower messaging app process oom importance to PERCEPTIBLE_APP_ADJ + 1." + bug: "372511805" + is_fixed_read_only: true + metadata { + purpose: PURPOSE_BUGFIX + } +} diff --git a/services/core/java/com/android/server/appbinding/AppBindingConstants.java b/services/core/java/com/android/server/appbinding/AppBindingConstants.java index 71847694b1d8..561cc0ef0a3b 100644 --- a/services/core/java/com/android/server/appbinding/AppBindingConstants.java +++ b/services/core/java/com/android/server/appbinding/AppBindingConstants.java @@ -102,9 +102,16 @@ public class AppBindingConstants { boolean smsServiceEnabled = parser.getBoolean(SMS_SERVICE_ENABLED_KEY, true); - int smsAppBindFlags = parser.getInt( - SMS_APP_BIND_FLAGS_KEY, - Context.BIND_NOT_VISIBLE | Context.BIND_FOREGROUND_SERVICE); + int smsAppBindFlags; + if (com.android.server.am.Flags.lowerSmsOomImportance()) { + smsAppBindFlags = parser.getInt( + SMS_APP_BIND_FLAGS_KEY, + Context.BIND_ALMOST_PERCEPTIBLE | Context.BIND_FOREGROUND_SERVICE); + } else { + smsAppBindFlags = parser.getInt( + SMS_APP_BIND_FLAGS_KEY, + Context.BIND_NOT_VISIBLE | Context.BIND_FOREGROUND_SERVICE); + } long serviceStableConnectionThresholdSec = parser.getLong( SERVICE_STABLE_CONNECTION_THRESHOLD_SEC_KEY, TimeUnit.MINUTES.toSeconds(2)); |