diff options
4 files changed, 35 insertions, 10 deletions
diff --git a/services/core/java/com/android/server/media/MediaRoute2Provider.java b/services/core/java/com/android/server/media/MediaRoute2Provider.java index b82e3a31567e..c076c0574afe 100644 --- a/services/core/java/com/android/server/media/MediaRoute2Provider.java +++ b/services/core/java/com/android/server/media/MediaRoute2Provider.java @@ -19,6 +19,7 @@ package com.android.server.media; import android.annotation.NonNull; import android.annotation.Nullable; import android.content.ComponentName; +import android.media.MediaRoute2Info; import android.media.MediaRoute2ProviderInfo; import android.media.RouteDiscoveryPreference; import android.media.RoutingSessionInfo; @@ -26,6 +27,7 @@ import android.os.Bundle; import com.android.internal.annotations.GuardedBy; +import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -108,6 +110,28 @@ abstract class MediaRoute2Provider { && mComponentName.getClassName().equals(className); } + public void dump(PrintWriter pw, String prefix) { + pw.println(prefix + getDebugString()); + prefix += " "; + if (mProviderInfo == null) { + pw.println(prefix + "<provider info not received, yet>"); + } else if (mProviderInfo.getRoutes().isEmpty()) { + pw.println(prefix + "<provider info has no routes>"); + } else { + for (MediaRoute2Info route : mProviderInfo.getRoutes()) { + pw.printf("%s%s | %s\n", prefix, route.getId(), route.getName()); + } + } + } + + @Override + public String toString() { + return getDebugString(); + } + + /** Returns a human-readable string describing the instance, for debugging purposes. */ + protected abstract String getDebugString(); + public interface Callback { void onProviderStateChanged(@Nullable MediaRoute2Provider provider); void onSessionCreated(@NonNull MediaRoute2Provider provider, diff --git a/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java b/services/core/java/com/android/server/media/MediaRoute2ProviderServiceProxy.java index 90451b19d590..72b843672ae8 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 android.util.Slog; import com.android.internal.annotations.GuardedBy; -import java.io.PrintWriter; import java.lang.ref.WeakReference; import java.util.ArrayList; import java.util.Collections; @@ -83,10 +82,6 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider mHandler = new Handler(Looper.myLooper()); } - public void dump(PrintWriter pw, String prefix) { - pw.println(prefix + getDebugString()); - } - public void setManagerScanning(boolean managerScanning) { if (mIsManagerScanning != managerScanning) { mIsManagerScanning = managerScanning; @@ -488,11 +483,7 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider } @Override - public String toString() { - return getDebugString(); - } - - private String getDebugString() { + protected String getDebugString() { return TextUtils.formatSimple( "ProviderServiceProxy - package: %s, bound: %b, connection (active:%b, ready:%b)", mComponentName.getPackageName(), diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java index 3c97aaf87e9c..2d3b97b768d3 100644 --- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java +++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java @@ -1751,6 +1751,7 @@ class MediaRouter2ServiceImpl { String indent = prefix + " "; pw.println(indent + "mRunning=" + mRunning); + mSystemProvider.dump(pw, prefix); mWatcher.dump(pw, prefix); } diff --git a/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java b/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java index 5d5c621eb3f5..6d2d2e405ab9 100644 --- a/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java +++ b/services/core/java/com/android/server/media/SystemMediaRoute2Provider.java @@ -392,6 +392,15 @@ class SystemMediaRoute2Provider extends MediaRoute2Provider { mCallback.onSessionUpdated(this, sessionInfo); } + @Override + protected String getDebugString() { + return TextUtils.formatSimple( + "SystemMR2Provider - package: %s, selected route id: %s, bluetooth impl: %s", + mComponentName.getPackageName(), + mSelectedRouteId, + mBluetoothRouteController.getClass().getSimpleName()); + } + private static class SessionCreationRequest { final long mRequestId; final String mRouteId; |