diff options
| author | 2022-05-25 01:38:30 +0000 | |
|---|---|---|
| committer | 2022-05-25 01:38:30 +0000 | |
| commit | c4be963fe005e2ce706b4e7a5588198ddca95ffb (patch) | |
| tree | 658ea7f9eae71fdd4313c47857f0df4694a93f04 | |
| parent | fe8f3855a6ef4596153339fae3a8c19e942060e7 (diff) | |
| parent | a833f61ff1dc54de9e7260bdca50841ad599d1b2 (diff) | |
Merge "[CDM] Update binding flag for self-managed apps" into tm-dev
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); } |