summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHyundo Moon <hdmoon@google.com>2020-06-02 08:27:35 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-06-02 08:27:35 +0000
commita93451b50996161e027d04b669f09151cd236d44 (patch)
treebd99f2fbe70ca53d24a5dfa8777bfa88f985b3ad
parent89b673a276c94ab51a77c5fe45dacb67be7b2700 (diff)
parent5c8f3b20d559c7fb227732d85eb0851c7bf1be53 (diff)
Merge "Add bug numbers for TODOs in MediaRouter2 related classes" into rvc-dev am: 5c8f3b20d5
Original change: undetermined Change-Id: I441f51b100a3b7aa5d17e9199ae0e9c122695d64
-rw-r--r--media/java/android/media/MediaRoute2ProviderService.java5
-rw-r--r--media/java/android/media/MediaRouter2.java8
-rw-r--r--media/java/android/media/MediaRouter2Manager.java6
-rw-r--r--media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java3
-rw-r--r--services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java3
-rw-r--r--services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java12
6 files changed, 13 insertions, 24 deletions
diff --git a/media/java/android/media/MediaRoute2ProviderService.java b/media/java/android/media/MediaRoute2ProviderService.java
index 72162c44ec29..981bf7af9f25 100644
--- a/media/java/android/media/MediaRoute2ProviderService.java
+++ b/media/java/android/media/MediaRoute2ProviderService.java
@@ -233,7 +233,6 @@ public abstract class MediaRoute2ProviderService extends Service {
String sessionId = sessionInfo.getId();
synchronized (mSessionLock) {
if (mSessionInfo.containsKey(sessionId)) {
- // TODO: Notify failure to the requester, and throw exception if needed.
Log.w(TAG, "Ignoring duplicate session id.");
return;
}
@@ -244,7 +243,7 @@ public abstract class MediaRoute2ProviderService extends Service {
return;
}
try {
- // TODO: Calling binder calls in multiple thread may cause timing issue.
+ // TODO(b/157873487): Calling binder calls in multiple thread may cause timing issue.
// Consider to change implementations to avoid the problems.
// For example, post binder calls, always send all sessions at once, etc.
mRemoteCallback.notifySessionCreated(requestId, sessionInfo);
@@ -519,7 +518,7 @@ public abstract class MediaRoute2ProviderService extends Service {
requestCreateSession));
}
- //TODO: Ignore requests with unknown session ID.
+ //TODO(b/157873546): Ignore requests with unknown session ID. -> For all similar commands.
@Override
public void selectRoute(long requestId, String sessionId, String routeId) {
if (!checkCallerisSystem()) {
diff --git a/media/java/android/media/MediaRouter2.java b/media/java/android/media/MediaRouter2.java
index 6179b483ca53..6634d4b4190e 100644
--- a/media/java/android/media/MediaRouter2.java
+++ b/media/java/android/media/MediaRouter2.java
@@ -54,7 +54,7 @@ import java.util.stream.Collectors;
* Media Router 2 allows applications to control the routing of media channels
* and streams from the current device to remote speakers and devices.
*/
-// TODO: Add method names at the beginning of log messages. (e.g. updateControllerOnHandler)
+// TODO(b/157873330): Add method names at the beginning of log messages. (e.g. selectRoute)
// Not only MediaRouter2, but also to service / manager / provider.
// TODO: ensure thread-safe and document it
public final class MediaRouter2 {
@@ -399,7 +399,7 @@ public final class MediaRouter2 {
Objects.requireNonNull(controller, "controller must not be null");
Objects.requireNonNull(route, "route must not be null");
- // TODO: Check thread-safety
+ // TODO(b/157873496): Check thread-safety, at least check "sRouterLock" for every variable
if (!mRoutes.containsKey(route.getId())) {
notifyTransferFailure(route);
return;
@@ -501,7 +501,7 @@ public final class MediaRouter2 {
}
void addRoutesOnHandler(List<MediaRoute2Info> routes) {
- // TODO: When onRoutesAdded is first called,
+ // TODO(b/157874065): When onRoutesAdded is first called,
// 1) clear mRoutes before adding the routes
// 2) Call onRouteSelected(system_route, reason_fallback) if previously selected route
// does not exist anymore. => We may need 'boolean MediaRoute2Info#isSystemRoute()'.
@@ -1214,7 +1214,7 @@ public final class MediaRouter2 {
* Any operations on this controller after calling this method will be ignored.
* The devices that are playing media will stop playing it.
*/
- // TODO: Add tests using {@link MediaRouter2Manager#getActiveSessions()}.
+ // TODO(b/157872573): Add tests using {@link MediaRouter2Manager#getActiveSessions()}.
public void release() {
releaseInternal(/* shouldReleaseSession= */ true, /* shouldNotifyStop= */ true);
}
diff --git a/media/java/android/media/MediaRouter2Manager.java b/media/java/android/media/MediaRouter2Manager.java
index 4ebfce830a70..a382c2de223e 100644
--- a/media/java/android/media/MediaRouter2Manager.java
+++ b/media/java/android/media/MediaRouter2Manager.java
@@ -151,8 +151,6 @@ public final class MediaRouter2Manager {
return null;
}
- //TODO: Use cache not to create array. For now, it's unclear when to purge the cache.
- //Do this when we finalize how to set control categories.
/**
* Gets available routes for an application.
*
@@ -339,7 +337,7 @@ public final class MediaRouter2Manager {
Objects.requireNonNull(sessionInfo, "sessionInfo must not be null");
Objects.requireNonNull(route, "route must not be null");
- //TODO: Ignore unknown route.
+ //TODO(b/157875504): Ignore unknown route.
if (sessionInfo.getTransferableRoutes().contains(route.getId())) {
transferToRoute(sessionInfo, route);
return;
@@ -355,7 +353,7 @@ public final class MediaRouter2Manager {
if (client != null) {
try {
int requestId = mNextRequestId.getAndIncrement();
- //TODO: Ensure that every request is eventually removed.
+ //TODO(b/157875723): Ensure that every request is eventually removed. (Memory leak)
mTransferRequests.add(new TransferRequest(requestId, sessionInfo, route));
mMediaRouterService.requestCreateSessionWithManager(
diff --git a/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java b/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java
index c05c21cf2752..1e49f49b37bc 100644
--- a/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java
+++ b/media/tests/MediaRouter/src/com/android/mediaroutertest/MediaRouter2ManagerTest.java
@@ -109,7 +109,7 @@ public class MediaRouter2ManagerTest {
mContext = InstrumentationRegistry.getTargetContext();
mManager = MediaRouter2Manager.getInstance(mContext);
mRouter2 = MediaRouter2.getInstance(mContext);
- //TODO: If we need to support thread pool executors, change this to thread pool executor.
+ // If we need to support thread pool executors, change this to thread pool executor.
mExecutor = Executors.newSingleThreadExecutor();
mPackageName = mContext.getPackageName();
}
@@ -253,7 +253,6 @@ public class MediaRouter2ManagerTest {
CountDownLatch latch = new CountDownLatch(1);
addManagerCallback(new MediaRouter2Manager.Callback());
- //TODO: remove this when it's not necessary.
addRouterCallback(new MediaRouter2.RouteCallback() {});
addTransferCallback(new MediaRouter2.TransferCallback() {
@Override
diff --git a/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java b/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java
index 53205add0b38..d6b98e2de901 100644
--- a/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java
+++ b/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java
@@ -44,7 +44,6 @@ import java.util.Objects;
/**
* Maintains a connection to a particular {@link MediaRoute2ProviderService}.
*/
-// TODO: Need to revisit the bind/unbind/connect/disconnect logic in this class.
final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
implements ServiceConnection {
private static final String TAG = "MR2ProviderSvcProxy";
@@ -265,8 +264,6 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
if (DEBUG) {
Slog.d(TAG, this + ": Service binding died");
}
- // TODO: Investigate whether it tries to bind endlessly when the service is
- // badly implemented.
if (shouldBind()) {
unbind();
bind();
diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
index c65800a17f82..75a89a213052 100644
--- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
+++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
@@ -1026,7 +1026,8 @@ class MediaRouter2ServiceImpl {
mHandler = new UserHandler(MediaRouter2ServiceImpl.this, this);
}
- // TODO: This assumes that only one router exists in a package. Is it true?
+ // TODO: This assumes that only one router exists in a package.
+ // Do this in Android S or later.
RouterRecord findRouterRecordLocked(String packageName) {
for (RouterRecord routerRecord : mRouterRecords) {
if (TextUtils.equals(routerRecord.mPackageName, packageName)) {
@@ -1121,7 +1122,6 @@ class MediaRouter2ServiceImpl {
private final UserRecord mUserRecord;
private final MediaRoute2ProviderWatcher mWatcher;
- //TODO: Make this thread-safe.
private final SystemMediaRoute2Provider mSystemProvider;
private final ArrayList<MediaRoute2Provider> mRouteProviders =
new ArrayList<>();
@@ -1153,7 +1153,6 @@ class MediaRouter2ServiceImpl {
private void stop() {
if (mRunning) {
mRunning = false;
- //TODO: may unselect routes
mWatcher.stop(); // also stops all providers
}
}
@@ -1386,7 +1385,6 @@ class MediaRouter2ServiceImpl {
final String providerId = route.getProviderId();
final MediaRoute2Provider provider = findProvider(providerId);
- // TODO: Remove this null check when the mMediaProviders are referenced only in handler.
if (provider == null) {
return;
}
@@ -1405,7 +1403,6 @@ class MediaRouter2ServiceImpl {
final String providerId = route.getProviderId();
final MediaRoute2Provider provider = findProvider(providerId);
- // TODO: Remove this null check when the mMediaProviders are referenced only in handler.
if (provider == null) {
return;
}
@@ -1425,7 +1422,6 @@ class MediaRouter2ServiceImpl {
final String providerId = route.getProviderId();
final MediaRoute2Provider provider = findProvider(providerId);
- // TODO: Remove this null check when the mMediaProviders are referenced only in handler.
if (provider == null) {
return;
}
@@ -1641,8 +1637,8 @@ class MediaRouter2ServiceImpl {
// TODO: Notify router too when the related callback is introduced.
}
- // TODO: Find a way to prevent providers from notifying error on random uniqueRequestId.
- // Solutions can be:
+ // TODO(b/157873556): Find a way to prevent providers from notifying error on random reqID.
+ // Possible solutions can be:
// 1) Record the other type of requests too (not only session creation request)
// 2) Throw exception on providers when they try to notify error on
// random uniqueRequestId.