summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2022-08-23 20:45:35 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-08-23 20:45:35 +0000
commitb16d908f439e0fd331efcf4bef73e3c5b98ab06c (patch)
tree1e28c01efc1b9f410be8531a35ee8a7cda8176b6
parent51603de7ddb77d0b57da3266dff069cef057bbba (diff)
parent3aa151259cc138f7ab1de355fae87004d09ac1db (diff)
Merge "Simplify MediaRouter2Manager.Client's lifecycle"
-rw-r--r--media/java/android/media/MediaRouter2Manager.java53
1 files changed, 20 insertions, 33 deletions
diff --git a/media/java/android/media/MediaRouter2Manager.java b/media/java/android/media/MediaRouter2Manager.java
index 8afc7d999d2e..b6f07f43cef5 100644
--- a/media/java/android/media/MediaRouter2Manager.java
+++ b/media/java/android/media/MediaRouter2Manager.java
@@ -79,8 +79,9 @@ public final class MediaRouter2Manager {
final String mPackageName;
private final Context mContext;
- @GuardedBy("sLock")
- private Client mClient;
+
+ private final Client mClient;
+
private final IMediaRouterService mMediaRouterService;
private final AtomicInteger mScanRequestCount = new AtomicInteger(/* initialValue= */ 0);
final Handler mHandler;
@@ -120,7 +121,12 @@ public final class MediaRouter2Manager {
.getSystemService(Context.MEDIA_SESSION_SERVICE);
mPackageName = mContext.getPackageName();
mHandler = new Handler(context.getMainLooper());
- mHandler.post(this::getOrCreateClient);
+ mClient = new Client();
+ try {
+ mMediaRouterService.registerManager(mClient, mPackageName);
+ } catch (RemoteException ex) {
+ throw ex.rethrowFromSystemServer();
+ }
}
/**
@@ -167,7 +173,7 @@ public final class MediaRouter2Manager {
public void registerScanRequest() {
if (mScanRequestCount.getAndIncrement() == 0) {
try {
- mMediaRouterService.startScan(getOrCreateClient());
+ mMediaRouterService.startScan(mClient);
} catch (RemoteException ex) {
throw ex.rethrowFromSystemServer();
}
@@ -194,7 +200,7 @@ public final class MediaRouter2Manager {
})
== 0) {
try {
- mMediaRouterService.stopScan(getOrCreateClient());
+ mMediaRouterService.stopScan(mClient);
} catch (RemoteException ex) {
throw ex.rethrowFromSystemServer();
}
@@ -358,8 +364,7 @@ public final class MediaRouter2Manager {
@Nullable
public RoutingSessionInfo getSystemRoutingSession(@Nullable String packageName) {
try {
- return mMediaRouterService.getSystemSessionInfoForPackage(
- getOrCreateClient(), packageName);
+ return mMediaRouterService.getSystemSessionInfoForPackage(mClient, packageName);
} catch (RemoteException ex) {
throw ex.rethrowFromSystemServer();
}
@@ -424,7 +429,7 @@ public final class MediaRouter2Manager {
@NonNull
public List<RoutingSessionInfo> getRemoteSessions() {
try {
- return mMediaRouterService.getRemoteSessions(getOrCreateClient());
+ return mMediaRouterService.getRemoteSessions(mClient);
} catch (RemoteException ex) {
throw ex.rethrowFromSystemServer();
}
@@ -512,8 +517,7 @@ public final class MediaRouter2Manager {
try {
int requestId = mNextRequestId.getAndIncrement();
- mMediaRouterService.setRouteVolumeWithManager(
- getOrCreateClient(), requestId, route, volume);
+ mMediaRouterService.setRouteVolumeWithManager(mClient, requestId, route, volume);
} catch (RemoteException ex) {
throw ex.rethrowFromSystemServer();
}
@@ -540,7 +544,7 @@ public final class MediaRouter2Manager {
try {
int requestId = mNextRequestId.getAndIncrement();
mMediaRouterService.setSessionVolumeWithManager(
- getOrCreateClient(), requestId, sessionInfo.getId(), volume);
+ mClient, requestId, sessionInfo.getId(), volume);
} catch (RemoteException ex) {
throw ex.rethrowFromSystemServer();
}
@@ -765,7 +769,7 @@ public final class MediaRouter2Manager {
try {
int requestId = mNextRequestId.getAndIncrement();
mMediaRouterService.selectRouteWithManager(
- getOrCreateClient(), requestId, sessionInfo.getId(), route);
+ mClient, requestId, sessionInfo.getId(), route);
} catch (RemoteException ex) {
throw ex.rethrowFromSystemServer();
}
@@ -804,7 +808,7 @@ public final class MediaRouter2Manager {
try {
int requestId = mNextRequestId.getAndIncrement();
mMediaRouterService.deselectRouteWithManager(
- getOrCreateClient(), requestId, sessionInfo.getId(), route);
+ mClient, requestId, sessionInfo.getId(), route);
} catch (RemoteException ex) {
throw ex.rethrowFromSystemServer();
}
@@ -825,8 +829,7 @@ public final class MediaRouter2Manager {
try {
int requestId = mNextRequestId.getAndIncrement();
- mMediaRouterService.releaseSessionWithManager(
- getOrCreateClient(), requestId, sessionInfo.getId());
+ mMediaRouterService.releaseSessionWithManager(mClient, requestId, sessionInfo.getId());
} catch (RemoteException ex) {
throw ex.rethrowFromSystemServer();
}
@@ -843,7 +846,7 @@ public final class MediaRouter2Manager {
try {
mMediaRouterService.transferToRouteWithManager(
- getOrCreateClient(), requestId, session.getId(), route);
+ mClient, requestId, session.getId(), route);
} catch (RemoteException ex) {
throw ex.rethrowFromSystemServer();
}
@@ -860,7 +863,7 @@ public final class MediaRouter2Manager {
try {
mMediaRouterService.requestCreateSessionWithManager(
- getOrCreateClient(), requestId, oldSession, route);
+ mClient, requestId, oldSession, route);
} catch (RemoteException ex) {
throw ex.rethrowFromSystemServer();
}
@@ -906,22 +909,6 @@ public final class MediaRouter2Manager {
sessionInfo.getOwnerPackageName());
}
- private Client getOrCreateClient() {
- synchronized (sLock) {
- if (mClient != null) {
- return mClient;
- }
- Client client = new Client();
- try {
- mMediaRouterService.registerManager(client, mPackageName);
- mClient = client;
- return client;
- } catch (RemoteException ex) {
- throw ex.rethrowFromSystemServer();
- }
- }
- }
-
/**
* Interface for receiving events about media routing changes.
*/