diff options
| author | 2024-12-11 08:14:46 +0000 | |
|---|---|---|
| committer | 2024-12-11 08:14:46 +0000 | |
| commit | 10b79530a72c088a3a54588619edf18e310d9be7 (patch) | |
| tree | 2345b84b32ca83e802bbf714d05231566298d226 | |
| parent | fc4be921e828fb5fb041d87a82e451341ed66efc (diff) | |
| parent | b0a6bcea15d93562ebd937e1f8d8171b425370a1 (diff) | |
Merge "Add factory methods for the system providers" into main
3 files changed, 18 insertions, 8 deletions
diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java index abc067d4aa9c..e18ed410c045 100644 --- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java @@ -2581,9 +2581,9 @@ class MediaRouter2ServiceImpl { mUserRecord = userRecord; mSystemProvider = Flags.enableMirroringInMediaRouter2() - ? new SystemMediaRoute2Provider2( + ? SystemMediaRoute2Provider2.create( service.mContext, UserHandle.of(userRecord.mUserId), looper) - : new SystemMediaRoute2Provider( + : SystemMediaRoute2Provider.create( service.mContext, UserHandle.of(userRecord.mUserId), looper); mRouteProviders.add(getSystemProvider()); mWatcher = new MediaRoute2ProviderWatcher(service.mContext, this, diff --git a/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java b/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java index 5fb80ba92091..8dfba39dcfd8 100644 --- a/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java +++ b/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java @@ -89,8 +89,12 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { @Nullable private volatile SessionCreationOrTransferRequest mPendingTransferRequest; - SystemMediaRoute2Provider(Context context, UserHandle user, Looper looper) { - this(context, COMPONENT_NAME, user, looper); + public static SystemMediaRoute2Provider create( + Context context, UserHandle user, Looper looper) { + var instance = new SystemMediaRoute2Provider(context, COMPONENT_NAME, user, looper); + instance.updateProviderState(); + instance.updateSessionInfosIfNeeded(); + return instance; } protected SystemMediaRoute2Provider( @@ -124,8 +128,6 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { notifySessionInfoUpdated(); } })); - updateProviderState(); - updateSessionInfosIfNeeded(); } public void start() { @@ -362,7 +364,7 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { } } - private void updateProviderState() { + protected void updateProviderState() { MediaRoute2ProviderInfo.Builder builder = new MediaRoute2ProviderInfo.Builder(); // We must have a device route in the provider info. diff --git a/services/core/java/com/android/server/media/SystemMediaRoute2Provider2.java b/services/core/java/com/android/server/media/SystemMediaRoute2Provider2.java index 8a14a3866860..85b30ad8cadb 100644 --- a/services/core/java/com/android/server/media/SystemMediaRoute2Provider2.java +++ b/services/core/java/com/android/server/media/SystemMediaRoute2Provider2.java @@ -35,7 +35,15 @@ import android.os.UserHandle; SystemMediaRoute2Provider2.class.getPackage().getName(), SystemMediaRoute2Provider2.class.getName()); - SystemMediaRoute2Provider2(Context context, UserHandle user, Looper looper) { + public static SystemMediaRoute2Provider2 create( + Context context, UserHandle user, Looper looper) { + var instance = new SystemMediaRoute2Provider2(context, user, looper); + instance.updateProviderState(); + instance.updateSessionInfosIfNeeded(); + return instance; + } + + private SystemMediaRoute2Provider2(Context context, UserHandle user, Looper looper) { super(context, COMPONENT_NAME, user, looper); } } |