diff options
| author | 2022-05-25 01:57:41 +0000 | |
|---|---|---|
| committer | 2022-05-25 01:57:41 +0000 | |
| commit | 60d6a31d40d70e7cad5b16f0b7e2dc8dc7e66d5d (patch) | |
| tree | 198ad8aaeb923fe0a6704b82fb5016b0052e6b95 | |
| parent | 29e7a84951785c99c4c9af6e5966970806e0647f (diff) | |
| parent | f5b33da6eae0187439917615f084847b99d926fc (diff) | |
Merge "[CDM] Update binding flag for self-managed apps" into tm-dev am: c4be963fe0 am: f5b33da6ea
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18567157
Change-Id: I3aee72ad801a0d8fc503acf5f4120e88e8680f6d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2 files changed, 11 insertions, 10 deletions
diff --git a/services/companion/java/com/android/server/companion/CompanionApplicationController.java b/services/companion/java/com/android/server/companion/CompanionApplicationController.java index 2a83a3c431ec..6eb8e2619cb5 100644 --- a/services/companion/java/com/android/server/companion/CompanionApplicationController.java +++ b/services/companion/java/com/android/server/companion/CompanionApplicationController.java @@ -104,10 +104,10 @@ class CompanionApplicationController { } void bindCompanionApplication(@UserIdInt int userId, @NonNull String packageName, - boolean bindImportant) { + boolean isSelfManaged) { if (DEBUG) { Log.i(TAG, "bind() u" + userId + "/" + packageName - + " important=" + bindImportant); + + " isSelfManaged=" + isSelfManaged); } final List<ComponentName> companionServices = @@ -130,7 +130,7 @@ class CompanionApplicationController { serviceConnectors = CollectionUtils.map(companionServices, componentName -> CompanionDeviceServiceConnector.newInstance(mContext, userId, - componentName, bindImportant)); + componentName, isSelfManaged)); mBoundCompanionApplications.setValueForPackage(userId, packageName, serviceConnectors); } diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceServiceConnector.java b/services/companion/java/com/android/server/companion/CompanionDeviceServiceConnector.java index a6bd48056e12..9bb1fb9ac9f5 100644 --- a/services/companion/java/com/android/server/companion/CompanionDeviceServiceConnector.java +++ b/services/companion/java/com/android/server/companion/CompanionDeviceServiceConnector.java @@ -17,7 +17,7 @@ package com.android.server.companion; import static android.content.Context.BIND_ALMOST_PERCEPTIBLE; -import static android.content.Context.BIND_IMPORTANT; +import static android.content.Context.BIND_TREAT_LIKE_VISIBLE_FOREGROUND_SERVICE; import static android.os.Process.THREAD_PRIORITY_DEFAULT; import android.annotation.NonNull; @@ -61,21 +61,22 @@ class CompanionDeviceServiceConnector extends ServiceConnector.Impl<ICompanionDe /** * Create a CompanionDeviceServiceConnector instance. * - * When bindImportant is false, the binding flag will be BIND_ALMOST_PERCEPTIBLE + * For self-managed apps, the binding flag will be BIND_TREAT_LIKE_VISIBLE_FOREGROUND_SERVICE + * (oom_score_adj = VISIBLE_APP_ADJ = 100). + * + * For non self-managed apps, the binding flag will be BIND_ALMOST_PERCEPTIBLE * (oom_score_adj = PERCEPTIBLE_MEDIUM_APP = 225). The target service will be treated * as important as a perceptible app (IMPORTANCE_VISIBLE = 200), and will be unbound when * the app is removed from task manager. - * When bindImportant is true, the binding flag will be BIND_IMPORTANT - * (oom_score_adj = PERCEPTIBLE_MEDIUM_APP = -700). The target service will - * have the highest priority to avoid being killed (IMPORTANCE_FOREGROUND = 100). * * One time permission's importance level to keep session alive is * IMPORTANCE_FOREGROUND_SERVICE = 125. In order to kill the one time permission session, the * service importance level should be higher than 125. */ static CompanionDeviceServiceConnector newInstance(@NonNull Context context, - @UserIdInt int userId, @NonNull ComponentName componentName, boolean bindImportant) { - final int bindingFlags = bindImportant ? BIND_IMPORTANT : BIND_ALMOST_PERCEPTIBLE; + @UserIdInt int userId, @NonNull ComponentName componentName, boolean isSelfManaged) { + final int bindingFlags = isSelfManaged ? BIND_TREAT_LIKE_VISIBLE_FOREGROUND_SERVICE + : BIND_ALMOST_PERCEPTIBLE; return new CompanionDeviceServiceConnector(context, userId, componentName, bindingFlags); } |