diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java index 31238df6ea105..17d8ea7eb77c6 100644 --- a/services/autofill/java/com/android/server/autofill/AutofillManagerService.java +++ b/services/autofill/java/com/android/server/autofill/AutofillManagerService.java @@ -89,7 +89,7 @@ import java.util.Objects; * {@link AutofillManagerServiceImpl} itself. */ public final class AutofillManagerService - extends AbstractMasterSystemService { + extends AbstractMasterSystemService { private static final String TAG = "AutofillManagerService"; diff --git a/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java b/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java index 48103559afb67..67ccc9b18543c 100644 --- a/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java +++ b/services/autofill/java/com/android/server/autofill/AutofillManagerServiceImpl.java @@ -86,7 +86,7 @@ import java.util.Random; * */ final class AutofillManagerServiceImpl - extends AbstractPerUserSystemService { + extends AbstractPerUserSystemService { private static final String TAG = "AutofillManagerServiceImpl"; private static final int MAX_SESSION_ID_CREATE_TRIES = 2048; diff --git a/services/core/java/com/android/server/AbstractMasterSystemService.java b/services/core/java/com/android/server/AbstractMasterSystemService.java index 6cae887d3ffc3..9c1e3cdec5b11 100644 --- a/services/core/java/com/android/server/AbstractMasterSystemService.java +++ b/services/core/java/com/android/server/AbstractMasterSystemService.java @@ -62,13 +62,14 @@ import java.util.List; *

See {@code com.android.server.autofill.AutofillManagerService} for a concrete * (no pun intended) example of how to use it. * + * @param "master" service class. * @param "real" service class. * * @hide */ // TODO(b/117779333): improve javadoc above instead of using Autofill as an example -public abstract class AbstractMasterSystemService> - extends SystemService { +public abstract class AbstractMasterSystemService, + S extends AbstractPerUserSystemService> extends SystemService { /** * Log tag diff --git a/services/core/java/com/android/server/AbstractPerUserSystemService.java b/services/core/java/com/android/server/AbstractPerUserSystemService.java index 97977df2e8a6f..b37888f8ef2e9 100644 --- a/services/core/java/com/android/server/AbstractPerUserSystemService.java +++ b/services/core/java/com/android/server/AbstractPerUserSystemService.java @@ -41,17 +41,19 @@ import java.io.PrintWriter; * Companion for {@link AbstractMasterSystemService}, it's the base class for the "real" service * implementation. * - * @param itself + * @param "master" service class. + * @param "real" service class. * * @hide */ -public abstract class AbstractPerUserSystemService> { +public abstract class AbstractPerUserSystemService, + M extends AbstractMasterSystemService> { protected final @UserIdInt int mUserId; protected final Object mLock; protected final String mTag = getClass().getSimpleName(); - protected final AbstractMasterSystemService mMaster; + protected final M mMaster; /** * Whether service was disabled for user due to {@link UserManager} restrictions. @@ -68,8 +70,8 @@ public abstract class AbstractPerUserSystemService master, - @NonNull Object lock, @UserIdInt int userId) { + protected AbstractPerUserSystemService(@NonNull M master, @NonNull Object lock, + @UserIdInt int userId) { mMaster = master; mLock = lock; mUserId = userId; diff --git a/services/intelligence/java/com/android/server/intelligence/IntelligenceManagerService.java b/services/intelligence/java/com/android/server/intelligence/IntelligenceManagerService.java index fcfd246251615..3d1357074ae49 100644 --- a/services/intelligence/java/com/android/server/intelligence/IntelligenceManagerService.java +++ b/services/intelligence/java/com/android/server/intelligence/IntelligenceManagerService.java @@ -46,8 +46,8 @@ import java.util.List; *

The data collected by this service can be analyzed and combined with other sources to provide * contextual data in other areas of the system such as Autofill. */ -public final class IntelligenceManagerService - extends AbstractMasterSystemService { +public final class IntelligenceManagerService extends + AbstractMasterSystemService { private static final String TAG = "IntelligenceManagerService"; diff --git a/services/intelligence/java/com/android/server/intelligence/IntelligencePerUserService.java b/services/intelligence/java/com/android/server/intelligence/IntelligencePerUserService.java index 471b40f82d45d..3b9c4e250878a 100644 --- a/services/intelligence/java/com/android/server/intelligence/IntelligencePerUserService.java +++ b/services/intelligence/java/com/android/server/intelligence/IntelligencePerUserService.java @@ -42,7 +42,8 @@ import java.util.List; * Per-user instance of {@link IntelligenceManagerService}. */ final class IntelligencePerUserService - extends AbstractPerUserSystemService { + extends AbstractPerUserSystemService { private static final String TAG = "IntelligencePerUserService";