Merge changes from topic "cherrypicker-L70100000956505250:N87500001297085156" into tm-qpr-dev

* changes:
  Add mediaroutertest to frameworks/base/media/TEST_MAPPING
  Rethrow MediaRouter2Manager RemoteExceptions
  Guard MediaDeviceManager.Entry against successive stop calls
This commit is contained in:
TreeHugger Robot
2022-09-23 22:10:09 +00:00
committed by Android (Google) Code Review
4 changed files with 34 additions and 29 deletions

View File

@@ -1,5 +1,8 @@
{ {
"presubmit": [ "presubmit": [
{
"name": "mediaroutertest"
},
{ {
"name": "CtsCameraTestCases", "name": "CtsCameraTestCases",
"options" : [ "options" : [

View File

@@ -172,7 +172,7 @@ public final class MediaRouter2Manager {
try { try {
mMediaRouterService.startScan(client); mMediaRouterService.startScan(client);
} catch (RemoteException ex) { } catch (RemoteException ex) {
Log.e(TAG, "Unable to get sessions. Service probably died.", ex); throw ex.rethrowFromSystemServer();
} }
} }
} }
@@ -196,7 +196,7 @@ public final class MediaRouter2Manager {
try { try {
mMediaRouterService.stopScan(client); mMediaRouterService.stopScan(client);
} catch (RemoteException ex) { } catch (RemoteException ex) {
Log.e(TAG, "Unable to get sessions. Service probably died.", ex); throw ex.rethrowFromSystemServer();
} }
} }
} }
@@ -361,9 +361,8 @@ public final class MediaRouter2Manager {
return mMediaRouterService.getSystemSessionInfoForPackage( return mMediaRouterService.getSystemSessionInfoForPackage(
getOrCreateClient(), packageName); getOrCreateClient(), packageName);
} catch (RemoteException ex) { } catch (RemoteException ex) {
Log.e(TAG, "Unable to get current system session info", ex); throw ex.rethrowFromSystemServer();
} }
return null;
} }
/** /**
@@ -429,7 +428,7 @@ public final class MediaRouter2Manager {
try { try {
return mMediaRouterService.getRemoteSessions(client); return mMediaRouterService.getRemoteSessions(client);
} catch (RemoteException ex) { } catch (RemoteException ex) {
Log.e(TAG, "Unable to get sessions. Service probably died.", ex); throw ex.rethrowFromSystemServer();
} }
} }
return Collections.emptyList(); return Collections.emptyList();
@@ -521,7 +520,7 @@ public final class MediaRouter2Manager {
int requestId = mNextRequestId.getAndIncrement(); int requestId = mNextRequestId.getAndIncrement();
mMediaRouterService.setRouteVolumeWithManager(client, requestId, route, volume); mMediaRouterService.setRouteVolumeWithManager(client, requestId, route, volume);
} catch (RemoteException ex) { } catch (RemoteException ex) {
Log.e(TAG, "Unable to set route volume.", ex); throw ex.rethrowFromSystemServer();
} }
} }
} }
@@ -551,7 +550,7 @@ public final class MediaRouter2Manager {
mMediaRouterService.setSessionVolumeWithManager( mMediaRouterService.setSessionVolumeWithManager(
client, requestId, sessionInfo.getId(), volume); client, requestId, sessionInfo.getId(), volume);
} catch (RemoteException ex) { } catch (RemoteException ex) {
Log.e(TAG, "Unable to set session volume.", ex); throw ex.rethrowFromSystemServer();
} }
} }
} }
@@ -816,7 +815,7 @@ public final class MediaRouter2Manager {
mMediaRouterService.selectRouteWithManager( mMediaRouterService.selectRouteWithManager(
client, requestId, sessionInfo.getId(), route); client, requestId, sessionInfo.getId(), route);
} catch (RemoteException ex) { } catch (RemoteException ex) {
Log.e(TAG, "selectRoute: Failed to send a request.", ex); throw ex.rethrowFromSystemServer();
} }
} }
} }
@@ -858,7 +857,7 @@ public final class MediaRouter2Manager {
mMediaRouterService.deselectRouteWithManager( mMediaRouterService.deselectRouteWithManager(
client, requestId, sessionInfo.getId(), route); client, requestId, sessionInfo.getId(), route);
} catch (RemoteException ex) { } catch (RemoteException ex) {
Log.e(TAG, "deselectRoute: Failed to send a request.", ex); throw ex.rethrowFromSystemServer();
} }
} }
} }
@@ -883,7 +882,7 @@ public final class MediaRouter2Manager {
mMediaRouterService.releaseSessionWithManager( mMediaRouterService.releaseSessionWithManager(
client, requestId, sessionInfo.getId()); client, requestId, sessionInfo.getId());
} catch (RemoteException ex) { } catch (RemoteException ex) {
Log.e(TAG, "releaseSession: Failed to send a request", ex); throw ex.rethrowFromSystemServer();
} }
} }
} }
@@ -903,7 +902,7 @@ public final class MediaRouter2Manager {
mMediaRouterService.transferToRouteWithManager( mMediaRouterService.transferToRouteWithManager(
client, requestId, session.getId(), route); client, requestId, session.getId(), route);
} catch (RemoteException ex) { } catch (RemoteException ex) {
Log.e(TAG, "transferToRoute: Failed to send a request.", ex); throw ex.rethrowFromSystemServer();
} }
} }
} }
@@ -923,7 +922,7 @@ public final class MediaRouter2Manager {
mMediaRouterService.requestCreateSessionWithManager( mMediaRouterService.requestCreateSessionWithManager(
client, requestId, oldSession, route); client, requestId, oldSession, route);
} catch (RemoteException ex) { } catch (RemoteException ex) {
Log.e(TAG, "requestCreateSession: Failed to send a request", ex); throw ex.rethrowFromSystemServer();
} }
} }
} }
@@ -979,10 +978,9 @@ public final class MediaRouter2Manager {
mClient = client; mClient = client;
return client; return client;
} catch (RemoteException ex) { } catch (RemoteException ex) {
Log.e(TAG, "Unable to register media router manager.", ex); throw ex.rethrowFromSystemServer();
} }
} }
return null;
} }
/** /**

View File

@@ -25,7 +25,7 @@ android_test {
"testng", "testng",
"truth-prebuilt", "truth-prebuilt",
], ],
test_suites: ["general-tests"],
platform_apis: true, platform_apis: true,
certificate: "platform", certificate: "platform",
} }

View File

@@ -188,6 +188,7 @@ class MediaDeviceManager @Inject constructor(
@AnyThread @AnyThread
fun start() = bgExecutor.execute { fun start() = bgExecutor.execute {
if (!started) {
localMediaManager.registerCallback(this) localMediaManager.registerCallback(this)
localMediaManager.startScan() localMediaManager.startScan()
muteAwaitConnectionManager?.startListening() muteAwaitConnectionManager?.startListening()
@@ -197,9 +198,11 @@ class MediaDeviceManager @Inject constructor(
started = true started = true
configurationController.addCallback(configListener) configurationController.addCallback(configListener)
} }
}
@AnyThread @AnyThread
fun stop() = bgExecutor.execute { fun stop() = bgExecutor.execute {
if (started) {
started = false started = false
controller?.unregisterCallback(this) controller?.unregisterCallback(this)
localMediaManager.stopScan() localMediaManager.stopScan()
@@ -207,6 +210,7 @@ class MediaDeviceManager @Inject constructor(
muteAwaitConnectionManager?.stopListening() muteAwaitConnectionManager?.stopListening()
configurationController.removeCallback(configListener) configurationController.removeCallback(configListener)
} }
}
fun dump(pw: PrintWriter) { fun dump(pw: PrintWriter) {
val routingSession = controller?.let { val routingSession = controller?.let {