MediaSession2: Fix timing issue
Session/Controller needs mProvider. However, if the createProvider()
interacts with other components, than other components may use session
/controller object before mProvider is set.
This CL prevents such issues by calling initialize() to communicate
with other components after the provider is set.
Test: Run all MediaComponents test once
Change-Id: Ic6eb1a7f96a2084b3a011da30a5053aff5620977
diff --git a/packages/MediaComponents/test/runtest.sh b/packages/MediaComponents/test/runtest.sh
index 5c0ef51..d0290e7 100644
--- a/packages/MediaComponents/test/runtest.sh
+++ b/packages/MediaComponents/test/runtest.sh
@@ -129,6 +129,7 @@
${adb} root
${adb} remount
${adb} shell stop
+ ${adb} shell setprop log.tag.MediaSessionService DEBUG
${adb} sync
${adb} shell start
${adb} wait-for-device || break
diff --git a/packages/MediaComponents/test/src/android/media/MediaController2Test.java b/packages/MediaComponents/test/src/android/media/MediaController2Test.java
index 3e39f40..d7e0ae0 100644
--- a/packages/MediaComponents/test/src/android/media/MediaController2Test.java
+++ b/packages/MediaComponents/test/src/android/media/MediaController2Test.java
@@ -381,7 +381,6 @@
assertNotNull(token);
assertEquals(mContext.getPackageName(), token.getPackageName());
assertEquals(MockMediaSessionService2.ID, token.getId());
- assertNull(token.getSessionBinder());
assertEquals(SessionToken2.TYPE_SESSION_SERVICE, token.getType());
}
diff --git a/packages/MediaComponents/test/src/android/media/MediaSessionManager_MediaSession2.java b/packages/MediaComponents/test/src/android/media/MediaSessionManager_MediaSession2.java
index 6037619..d0106fa 100644
--- a/packages/MediaComponents/test/src/android/media/MediaSessionManager_MediaSession2.java
+++ b/packages/MediaComponents/test/src/android/media/MediaSessionManager_MediaSession2.java
@@ -85,7 +85,6 @@
SessionToken2 token = tokens.get(i);
if (mContext.getPackageName().equals(token.getPackageName())
&& TAG.equals(token.getId())) {
- assertNotNull(token.getSessionBinder());
assertNull(controller);
controller = createController(token);
}
@@ -163,13 +162,11 @@
&& MockMediaSessionService2.ID.equals(token.getId())) {
assertFalse(foundTestSessionService);
assertEquals(SessionToken2.TYPE_SESSION_SERVICE, token.getType());
- assertNull(token.getSessionBinder());
foundTestSessionService = true;
} else if (mContext.getPackageName().equals(token.getPackageName())
&& MockMediaLibraryService2.ID.equals(token.getId())) {
assertFalse(foundTestLibraryService);
assertEquals(SessionToken2.TYPE_LIBRARY_SERVICE, token.getType());
- assertNull(token.getSessionBinder());
foundTestLibraryService = true;
}
}
diff --git a/packages/MediaComponents/test/src/android/media/MockMediaLibraryService2.java b/packages/MediaComponents/test/src/android/media/MockMediaLibraryService2.java
index 14cf257..f57a52c 100644
--- a/packages/MediaComponents/test/src/android/media/MockMediaLibraryService2.java
+++ b/packages/MediaComponents/test/src/android/media/MockMediaLibraryService2.java
@@ -70,9 +70,8 @@
public static SessionToken2 getToken(Context context) {
synchronized (MockMediaLibraryService2.class) {
if (sToken == null) {
- sToken = new SessionToken2(SessionToken2.TYPE_LIBRARY_SERVICE,
- context.getPackageName(), ID,
- MockMediaLibraryService2.class.getName(), null);
+ sToken = new SessionToken2(context, SessionToken2.TYPE_LIBRARY_SERVICE,
+ context.getPackageName(), MockMediaLibraryService2.class.getName());
}
return sToken;
}