Merge "Add Separator comments in MediaRouter2ServiceImpl"
diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
index 439e9bd..c67d54f 100644
--- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
+++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
@@ -151,7 +151,7 @@
mContext.registerReceiver(mScreenOnOffReceiver, screenOnOffIntentFilter);
}
- // Methods that implement MediaRouter2 operations.
+ // Start of methods that implement MediaRouter2 operations.
@NonNull
public void enforceMediaContentControlPermission() {
@@ -199,46 +199,6 @@
}
}
- @NonNull
- public RoutingSessionInfo getSystemSessionInfo(
- @Nullable String packageName, boolean setDeviceRouteSelected) {
- final int uid = Binder.getCallingUid();
- final int userId = UserHandle.getUserHandleForUid(uid).getIdentifier();
- final boolean hasModifyAudioRoutingPermission = mContext.checkCallingOrSelfPermission(
- android.Manifest.permission.MODIFY_AUDIO_ROUTING)
- == PackageManager.PERMISSION_GRANTED;
-
- final long token = Binder.clearCallingIdentity();
- try {
- RoutingSessionInfo systemSessionInfo = null;
- synchronized (mLock) {
- UserRecord userRecord = getOrCreateUserRecordLocked(userId);
- List<RoutingSessionInfo> sessionInfos;
- if (hasModifyAudioRoutingPermission) {
- if (setDeviceRouteSelected) {
- systemSessionInfo = userRecord.mHandler.mSystemProvider
- .generateDeviceRouteSelectedSessionInfo(packageName);
- } else {
- sessionInfos = userRecord.mHandler.mSystemProvider.getSessionInfos();
- if (sessionInfos != null && !sessionInfos.isEmpty()) {
- systemSessionInfo = new RoutingSessionInfo.Builder(sessionInfos.get(0))
- .setClientPackageName(packageName).build();
- } else {
- Slog.w(TAG, "System provider does not have any session info.");
- }
- }
- } else {
- systemSessionInfo = new RoutingSessionInfo.Builder(
- userRecord.mHandler.mSystemProvider.getDefaultSessionInfo())
- .setClientPackageName(packageName).build();
- }
- }
- return systemSessionInfo;
- } finally {
- Binder.restoreCallingIdentity(token);
- }
- }
-
public void registerRouter2(@NonNull IMediaRouter2 router, @NonNull String packageName) {
Objects.requireNonNull(router, "router must not be null");
if (TextUtils.isEmpty(packageName)) {
@@ -418,7 +378,9 @@
}
}
- // Methods that implement MediaRouter2Manager operations.
+ // End of methods that implement MediaRouter2 operations.
+
+ // Start of methods that implement MediaRouter2Manager operations.
@NonNull
public List<RoutingSessionInfo> getRemoteSessions(@NonNull IMediaRouter2Manager manager) {
@@ -610,6 +572,52 @@
}
}
+ // End of methods that implement MediaRouter2Manager operations.
+
+ // Start of methods that implements operations for both MediaRouter2 and MediaRouter2Manager.
+
+ @NonNull
+ public RoutingSessionInfo getSystemSessionInfo(
+ @Nullable String packageName, boolean setDeviceRouteSelected) {
+ final int uid = Binder.getCallingUid();
+ final int userId = UserHandle.getUserHandleForUid(uid).getIdentifier();
+ final boolean hasModifyAudioRoutingPermission = mContext.checkCallingOrSelfPermission(
+ android.Manifest.permission.MODIFY_AUDIO_ROUTING)
+ == PackageManager.PERMISSION_GRANTED;
+
+ final long token = Binder.clearCallingIdentity();
+ try {
+ RoutingSessionInfo systemSessionInfo = null;
+ synchronized (mLock) {
+ UserRecord userRecord = getOrCreateUserRecordLocked(userId);
+ List<RoutingSessionInfo> sessionInfos;
+ if (hasModifyAudioRoutingPermission) {
+ if (setDeviceRouteSelected) {
+ systemSessionInfo = userRecord.mHandler.mSystemProvider
+ .generateDeviceRouteSelectedSessionInfo(packageName);
+ } else {
+ sessionInfos = userRecord.mHandler.mSystemProvider.getSessionInfos();
+ if (sessionInfos != null && !sessionInfos.isEmpty()) {
+ systemSessionInfo = new RoutingSessionInfo.Builder(sessionInfos.get(0))
+ .setClientPackageName(packageName).build();
+ } else {
+ Slog.w(TAG, "System provider does not have any session info.");
+ }
+ }
+ } else {
+ systemSessionInfo = new RoutingSessionInfo.Builder(
+ userRecord.mHandler.mSystemProvider.getDefaultSessionInfo())
+ .setClientPackageName(packageName).build();
+ }
+ }
+ return systemSessionInfo;
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ // End of methods that implements operations for both MediaRouter2 and MediaRouter2Manager.
+
public void dump(@NonNull PrintWriter pw, @NonNull String prefix) {
pw.println(prefix + "MediaRouter2ServiceImpl");
@@ -678,6 +686,8 @@
return mUserManagerInternal.getProfileParentId(userId) == mCurrentActiveUserId;
}
+ // Start of locked methods that are used by MediaRouter2.
+
@GuardedBy("mLock")
private void registerRouter2Locked(@NonNull IMediaRouter2 router, int uid, int pid,
@NonNull String packageName, int userId, boolean hasConfigureWifiDisplayPermission,
@@ -952,6 +962,10 @@
DUMMY_REQUEST_ID, routerRecord, uniqueSessionId));
}
+ // End of locked methods that are used by MediaRouter2.
+
+ // Start of locked methods that are used by MediaRouter2Manager.
+
private List<RoutingSessionInfo> getRemoteSessionsLocked(
@NonNull IMediaRouter2Manager manager) {
final IBinder binder = manager.asBinder();
@@ -1260,6 +1274,10 @@
uniqueRequestId, routerRecord, uniqueSessionId));
}
+ // End of locked methods that are used by MediaRouter2Manager.
+
+ // Start of locked methods that are used by both MediaRouter2 and MediaRouter2Manager.
+
@GuardedBy("mLock")
private UserRecord getOrCreateUserRecordLocked(int userId) {
UserRecord userRecord = mUserRecords.get(userId);
@@ -1294,6 +1312,8 @@
}
}
+ // End of locked methods that are used by both MediaRouter2 and MediaRouter2Manager.
+
static long toUniqueRequestId(int requesterId, int originalRequestId) {
return ((long) requesterId << 32) | originalRequestId;
}