diff options
| -rw-r--r-- | services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java | 105 | ||||
| -rw-r--r-- | services/core/java/com/android/server/media/MediaRouterService.java | 3 |
2 files changed, 106 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java index bfa8af957208..92a63295f8a4 100644 --- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java @@ -601,6 +601,26 @@ class MediaRouter2ServiceImpl { } } + public void dump(@NonNull PrintWriter pw, @NonNull String prefix) { + pw.println(prefix + "MediaRouter2ServiceImpl"); + + String indent = prefix + " "; + + synchronized (mLock) { + pw.println(indent + "mNextRouterOrManagerId=" + mNextRouterOrManagerId.get()); + pw.println(indent + "mCurrentUserId=" + mCurrentUserId); + + pw.println(indent + "UserRecords:"); + if (mUserRecords.size() > 0) { + for (int i = 0; i < mUserRecords.size(); i++) { + mUserRecords.get(i).dump(pw, indent + " "); + } + } else { + pw.println(indent + "<no user records>"); + } + } + } + //TODO(b/136703681): Review this is handling multi-user properly. void switchUser() { synchronized (mLock) { @@ -1197,6 +1217,41 @@ class MediaRouter2ServiceImpl { } return null; } + + public void dump(@NonNull PrintWriter pw, @NonNull String prefix) { + pw.println(prefix + "UserRecord"); + + String indent = prefix + " "; + + pw.println(indent + "mUserId=" + mUserId); + + pw.println(indent + "Router Records:"); + if (!mRouterRecords.isEmpty()) { + for (RouterRecord routerRecord : mRouterRecords) { + routerRecord.dump(pw, indent + " "); + } + } else { + pw.println(indent + "<no router records>"); + } + + pw.println(indent + "Manager Records:"); + if (!mManagerRecords.isEmpty()) { + for (ManagerRecord managerRecord : mManagerRecords) { + managerRecord.dump(pw, indent + " "); + } + } else { + pw.println(indent + "<no manager records>"); + } + + if (!mHandler.runWithScissors(new Runnable() { + @Override + public void run() { + mHandler.dump(pw, indent); + } + }, 1000)) { + pw.println(indent + "<could not dump handler state>"); + } + } } final class RouterRecord implements IBinder.DeathRecipient { @@ -1236,6 +1291,22 @@ class MediaRouter2ServiceImpl { public void binderDied() { routerDied(this); } + + public void dump(@NonNull PrintWriter pw, @NonNull String prefix) { + pw.println(prefix + "RouterRecord"); + + String indent = prefix + " "; + + pw.println(indent + "mPackageName=" + mPackageName); + pw.println(indent + "mSelectRouteSequenceNumbers=" + mSelectRouteSequenceNumbers); + pw.println(indent + "mUid=" + mUid); + pw.println(indent + "mPid=" + mPid); + pw.println(indent + "mHasConfigureWifiDisplayPermission=" + + mHasConfigureWifiDisplayPermission); + pw.println(indent + "mHasModifyAudioRoutingPermission=" + + mHasModifyAudioRoutingPermission); + pw.println(indent + "mRouterId=" + mRouterId); + } } final class ManagerRecord implements IBinder.DeathRecipient { @@ -1267,8 +1338,20 @@ class MediaRouter2ServiceImpl { managerDied(this); } - public void dump(PrintWriter pw, String prefix) { - pw.println(prefix + this); + public void dump(@NonNull PrintWriter pw, @NonNull String prefix) { + pw.println(prefix + "ManagerRecord"); + + String indent = prefix + " "; + + pw.println(indent + "mPackageName=" + mPackageName); + pw.println(indent + "mManagerId=" + mManagerId); + pw.println(indent + "mUid=" + mUid); + pw.println(indent + "mPid=" + mPid); + pw.println(indent + "mIsScanning=" + mIsScanning); + + if (mLastSessionCreationRequest != null) { + mLastSessionCreationRequest.dump(pw, indent); + } } public void startScan() { @@ -1455,6 +1538,15 @@ class MediaRouter2ServiceImpl { } } + public void dump(@NonNull PrintWriter pw, @NonNull String prefix) { + pw.println(prefix + "UserHandler"); + + String indent = prefix + " "; + pw.println(indent + "mRunning=" + mRunning); + + mWatcher.dump(pw, prefix); + } + private void onProviderStateChangedOnHandler(@NonNull MediaRoute2Provider provider) { MediaRoute2ProviderInfo currentInfo = provider.getProviderInfo(); @@ -2340,5 +2432,14 @@ class MediaRouter2ServiceImpl { mOldSession = oldSession; mRoute = route; } + + public void dump(@NonNull PrintWriter pw, @NonNull String prefix) { + pw.println(prefix + "SessionCreationRequest"); + + String indent = prefix + " "; + + pw.println(indent + "mUniqueRequestId=" + mUniqueRequestId); + pw.println(indent + "mManagerRequestId=" + mManagerRequestId); + } } } diff --git a/services/core/java/com/android/server/media/MediaRouterService.java b/services/core/java/com/android/server/media/MediaRouterService.java index 4806b522eca6..4f0da7952867 100644 --- a/services/core/java/com/android/server/media/MediaRouterService.java +++ b/services/core/java/com/android/server/media/MediaRouterService.java @@ -387,6 +387,9 @@ public final class MediaRouterService extends IMediaRouterService.Stub userRecord.dump(pw, ""); } } + + pw.println(); + mService2.dump(pw, ""); } // Binder call |