Loading core/res/res/values/strings.xml +6 −0 Original line number Diff line number Diff line Loading @@ -4329,6 +4329,9 @@ doesn't support the work profile. [CHAR LIMIT=100] --> <string name="activity_resolver_work_profiles_support">%1$s doesn\'t support work profile</string> <!-- DO NOT TRANSLATE --> <string name="default_audio_route_id">default_audio_route</string> <!-- Name of the default audio route for tablets when nothing is connected to a headphone or other wired audio output jack. [CHAR LIMIT=50] --> <string name="default_audio_route_name" product="tablet">Tablet</string> Loading Loading @@ -4357,6 +4360,9 @@ <!-- Name of the default audio route category. [CHAR LIMIT=50] --> <string name="default_audio_route_category_name">System</string> <!-- DO NOT TRANSLATE --> <string name="bluetooth_a2dp_audio_route_id">bluetooth_a2dp_audio_route</string> <!-- Description of the bluetooth a2dp audio route. [CHAR LIMIT=50] --> <string name="bluetooth_a2dp_audio_route_name">Bluetooth audio</string> Loading core/res/res/values/symbols.xml +2 −0 Original line number Diff line number Diff line Loading @@ -1083,6 +1083,7 @@ <java-symbol type="string" name="granularity_label_word" /> <java-symbol type="string" name="granularity_label_link" /> <java-symbol type="string" name="granularity_label_line" /> <java-symbol type="string" name="default_audio_route_id" /> <java-symbol type="string" name="default_audio_route_name" /> <java-symbol type="string" name="default_audio_route_name_dock_speakers" /> <java-symbol type="string" name="default_audio_route_name_hdmi" /> Loading Loading @@ -1664,6 +1665,7 @@ <java-symbol type="string" name="media_route_chooser_title" /> <java-symbol type="string" name="media_route_chooser_title_for_remote_display" /> <java-symbol type="string" name="media_route_controller_disconnect" /> <java-symbol type="string" name="bluetooth_a2dp_audio_route_id" /> <java-symbol type="string" name="bluetooth_a2dp_audio_route_name" /> <java-symbol type="dimen" name="config_minScalingSpan" /> Loading data/etc/privapp-permissions-platform.xml +1 −0 Original line number Diff line number Diff line Loading @@ -484,6 +484,7 @@ applications that come with the platform <permission name="android.permission.SCHEDULE_PRIORITIZED_ALARM" /> <!-- Permission required for CTS test - SystemMediaRouter2Test --> <permission name="android.permission.MEDIA_CONTENT_CONTROL"/> <permission name="android.permission.MODIFY_AUDIO_ROUTING"/> <!-- Permission required for CTS test - CtsPermission5TestCases --> <permission name="android.permission.RENOUNCE_PERMISSIONS" /> <permission name="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS" /> Loading media/java/android/media/IMediaRouterService.aidl +3 −1 Original line number Diff line number Diff line Loading @@ -69,7 +69,9 @@ interface IMediaRouterService { void releaseSessionWithRouter2(IMediaRouter2 router, String sessionId); // Methods for MediaRouter2Manager List<RoutingSessionInfo> getActiveSessions(IMediaRouter2Manager manager); List<RoutingSessionInfo> getRemoteSessions(IMediaRouter2Manager manager); RoutingSessionInfo getSystemSessionInfoForPackage( IMediaRouter2Manager manager, String packageName); void registerManager(IMediaRouter2Manager manager, String packageName); void unregisterManager(IMediaRouter2Manager manager); void setRouteVolumeWithManager(IMediaRouter2Manager manager, int requestId, Loading media/java/android/media/MediaRouter.java +23 −15 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ import android.util.SparseIntArray; import android.view.Display; import android.view.DisplayAddress; import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; import java.lang.annotation.Retention; Loading Loading @@ -148,7 +149,7 @@ public class MediaRouter { ServiceManager.getService(Context.MEDIA_ROUTER_SERVICE)); mSystemCategory = new RouteCategory( com.android.internal.R.string.default_audio_route_category_name, R.string.default_audio_route_category_name, ROUTE_TYPE_LIVE_AUDIO | ROUTE_TYPE_LIVE_VIDEO, false); mSystemCategory.mIsSystem = true; Loading @@ -163,14 +164,15 @@ public class MediaRouter { // Called after sStatic is initialized void startMonitoringRoutes(Context appContext) { mDefaultAudioVideo = new RouteInfo(mSystemCategory); mDefaultAudioVideo.mNameResId = com.android.internal.R.string.default_audio_route_name; mDefaultAudioVideo.mNameResId = R.string.default_audio_route_name; mDefaultAudioVideo.mSupportedTypes = ROUTE_TYPE_LIVE_AUDIO | ROUTE_TYPE_LIVE_VIDEO; mDefaultAudioVideo.updatePresentationDisplay(); if (((AudioManager) appContext.getSystemService(Context.AUDIO_SERVICE)) .isVolumeFixed()) { mDefaultAudioVideo.mVolumeHandling = RouteInfo.PLAYBACK_VOLUME_FIXED; } mDefaultAudioVideo.mGlobalRouteId = sStatic.mResources.getString( R.string.default_audio_route_id); addRouteStatic(mDefaultAudioVideo); // This will select the active wifi display route if there is one. Loading Loading @@ -215,15 +217,15 @@ public class MediaRouter { int name; if ((newRoutes.mainType & AudioRoutesInfo.MAIN_HEADPHONES) != 0 || (newRoutes.mainType & AudioRoutesInfo.MAIN_HEADSET) != 0) { name = com.android.internal.R.string.default_audio_route_name_headphones; name = R.string.default_audio_route_name_headphones; } else if ((newRoutes.mainType & AudioRoutesInfo.MAIN_DOCK_SPEAKERS) != 0) { name = com.android.internal.R.string.default_audio_route_name_dock_speakers; name = R.string.default_audio_route_name_dock_speakers; } else if ((newRoutes.mainType&AudioRoutesInfo.MAIN_HDMI) != 0) { name = com.android.internal.R.string.default_audio_route_name_hdmi; name = R.string.default_audio_route_name_hdmi; } else if ((newRoutes.mainType&AudioRoutesInfo.MAIN_USB) != 0) { name = com.android.internal.R.string.default_audio_route_name_usb; name = R.string.default_audio_route_name_usb; } else { name = com.android.internal.R.string.default_audio_route_name; name = R.string.default_audio_route_name; } mDefaultAudioVideo.mNameResId = name; dispatchRouteChanged(mDefaultAudioVideo); Loading @@ -243,9 +245,12 @@ public class MediaRouter { final RouteInfo info = new RouteInfo(mSystemCategory); info.mName = newRoutes.bluetoothName; info.mDescription = mResources.getText( com.android.internal.R.string.bluetooth_a2dp_audio_route_name); R.string.bluetooth_a2dp_audio_route_name); info.mSupportedTypes = ROUTE_TYPE_LIVE_AUDIO; info.mDeviceType = RouteInfo.DEVICE_TYPE_BLUETOOTH; info.mGlobalRouteId = sStatic.mResources.getString( R.string.bluetooth_a2dp_audio_route_id); mBluetoothA2dpRoute = info; addRouteStatic(mBluetoothA2dpRoute); } else { Loading Loading @@ -508,6 +513,9 @@ public class MediaRouter { outer: for (int i = mRoutes.size(); i-- > 0; ) { final RouteInfo route = mRoutes.get(i); final String globalRouteId = route.mGlobalRouteId; if (route.isDefault() || route.isBluetooth()) { continue; } if (globalRouteId != null) { for (int j = 0; j < globalRouteCount; j++) { MediaRouterClientState.RouteInfo globalRoute = globalRoutes.get(j); Loading Loading @@ -1572,7 +1580,7 @@ public class MediaRouter { newRoute.mEnabled = isWifiDisplayEnabled(display, wfdStatus); newRoute.mName = display.getFriendlyDisplayName(); newRoute.mDescription = sStatic.mResources.getText( com.android.internal.R.string.wireless_display_route_description); R.string.wireless_display_route_description); newRoute.updatePresentationDisplay(); newRoute.mDeviceType = RouteInfo.DEVICE_TYPE_TV; return newRoute; Loading Loading @@ -1867,19 +1875,19 @@ public class MediaRouter { int resId; switch (statusCode) { case STATUS_SCANNING: resId = com.android.internal.R.string.media_route_status_scanning; resId = R.string.media_route_status_scanning; break; case STATUS_CONNECTING: resId = com.android.internal.R.string.media_route_status_connecting; resId = R.string.media_route_status_connecting; break; case STATUS_AVAILABLE: resId = com.android.internal.R.string.media_route_status_available; resId = R.string.media_route_status_available; break; case STATUS_NOT_AVAILABLE: resId = com.android.internal.R.string.media_route_status_not_available; resId = R.string.media_route_status_not_available; break; case STATUS_IN_USE: resId = com.android.internal.R.string.media_route_status_in_use; resId = R.string.media_route_status_in_use; break; case STATUS_CONNECTED: case STATUS_NONE: Loading Loading
core/res/res/values/strings.xml +6 −0 Original line number Diff line number Diff line Loading @@ -4329,6 +4329,9 @@ doesn't support the work profile. [CHAR LIMIT=100] --> <string name="activity_resolver_work_profiles_support">%1$s doesn\'t support work profile</string> <!-- DO NOT TRANSLATE --> <string name="default_audio_route_id">default_audio_route</string> <!-- Name of the default audio route for tablets when nothing is connected to a headphone or other wired audio output jack. [CHAR LIMIT=50] --> <string name="default_audio_route_name" product="tablet">Tablet</string> Loading Loading @@ -4357,6 +4360,9 @@ <!-- Name of the default audio route category. [CHAR LIMIT=50] --> <string name="default_audio_route_category_name">System</string> <!-- DO NOT TRANSLATE --> <string name="bluetooth_a2dp_audio_route_id">bluetooth_a2dp_audio_route</string> <!-- Description of the bluetooth a2dp audio route. [CHAR LIMIT=50] --> <string name="bluetooth_a2dp_audio_route_name">Bluetooth audio</string> Loading
core/res/res/values/symbols.xml +2 −0 Original line number Diff line number Diff line Loading @@ -1083,6 +1083,7 @@ <java-symbol type="string" name="granularity_label_word" /> <java-symbol type="string" name="granularity_label_link" /> <java-symbol type="string" name="granularity_label_line" /> <java-symbol type="string" name="default_audio_route_id" /> <java-symbol type="string" name="default_audio_route_name" /> <java-symbol type="string" name="default_audio_route_name_dock_speakers" /> <java-symbol type="string" name="default_audio_route_name_hdmi" /> Loading Loading @@ -1664,6 +1665,7 @@ <java-symbol type="string" name="media_route_chooser_title" /> <java-symbol type="string" name="media_route_chooser_title_for_remote_display" /> <java-symbol type="string" name="media_route_controller_disconnect" /> <java-symbol type="string" name="bluetooth_a2dp_audio_route_id" /> <java-symbol type="string" name="bluetooth_a2dp_audio_route_name" /> <java-symbol type="dimen" name="config_minScalingSpan" /> Loading
data/etc/privapp-permissions-platform.xml +1 −0 Original line number Diff line number Diff line Loading @@ -484,6 +484,7 @@ applications that come with the platform <permission name="android.permission.SCHEDULE_PRIORITIZED_ALARM" /> <!-- Permission required for CTS test - SystemMediaRouter2Test --> <permission name="android.permission.MEDIA_CONTENT_CONTROL"/> <permission name="android.permission.MODIFY_AUDIO_ROUTING"/> <!-- Permission required for CTS test - CtsPermission5TestCases --> <permission name="android.permission.RENOUNCE_PERMISSIONS" /> <permission name="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS" /> Loading
media/java/android/media/IMediaRouterService.aidl +3 −1 Original line number Diff line number Diff line Loading @@ -69,7 +69,9 @@ interface IMediaRouterService { void releaseSessionWithRouter2(IMediaRouter2 router, String sessionId); // Methods for MediaRouter2Manager List<RoutingSessionInfo> getActiveSessions(IMediaRouter2Manager manager); List<RoutingSessionInfo> getRemoteSessions(IMediaRouter2Manager manager); RoutingSessionInfo getSystemSessionInfoForPackage( IMediaRouter2Manager manager, String packageName); void registerManager(IMediaRouter2Manager manager, String packageName); void unregisterManager(IMediaRouter2Manager manager); void setRouteVolumeWithManager(IMediaRouter2Manager manager, int requestId, Loading
media/java/android/media/MediaRouter.java +23 −15 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ import android.util.SparseIntArray; import android.view.Display; import android.view.DisplayAddress; import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; import java.lang.annotation.Retention; Loading Loading @@ -148,7 +149,7 @@ public class MediaRouter { ServiceManager.getService(Context.MEDIA_ROUTER_SERVICE)); mSystemCategory = new RouteCategory( com.android.internal.R.string.default_audio_route_category_name, R.string.default_audio_route_category_name, ROUTE_TYPE_LIVE_AUDIO | ROUTE_TYPE_LIVE_VIDEO, false); mSystemCategory.mIsSystem = true; Loading @@ -163,14 +164,15 @@ public class MediaRouter { // Called after sStatic is initialized void startMonitoringRoutes(Context appContext) { mDefaultAudioVideo = new RouteInfo(mSystemCategory); mDefaultAudioVideo.mNameResId = com.android.internal.R.string.default_audio_route_name; mDefaultAudioVideo.mNameResId = R.string.default_audio_route_name; mDefaultAudioVideo.mSupportedTypes = ROUTE_TYPE_LIVE_AUDIO | ROUTE_TYPE_LIVE_VIDEO; mDefaultAudioVideo.updatePresentationDisplay(); if (((AudioManager) appContext.getSystemService(Context.AUDIO_SERVICE)) .isVolumeFixed()) { mDefaultAudioVideo.mVolumeHandling = RouteInfo.PLAYBACK_VOLUME_FIXED; } mDefaultAudioVideo.mGlobalRouteId = sStatic.mResources.getString( R.string.default_audio_route_id); addRouteStatic(mDefaultAudioVideo); // This will select the active wifi display route if there is one. Loading Loading @@ -215,15 +217,15 @@ public class MediaRouter { int name; if ((newRoutes.mainType & AudioRoutesInfo.MAIN_HEADPHONES) != 0 || (newRoutes.mainType & AudioRoutesInfo.MAIN_HEADSET) != 0) { name = com.android.internal.R.string.default_audio_route_name_headphones; name = R.string.default_audio_route_name_headphones; } else if ((newRoutes.mainType & AudioRoutesInfo.MAIN_DOCK_SPEAKERS) != 0) { name = com.android.internal.R.string.default_audio_route_name_dock_speakers; name = R.string.default_audio_route_name_dock_speakers; } else if ((newRoutes.mainType&AudioRoutesInfo.MAIN_HDMI) != 0) { name = com.android.internal.R.string.default_audio_route_name_hdmi; name = R.string.default_audio_route_name_hdmi; } else if ((newRoutes.mainType&AudioRoutesInfo.MAIN_USB) != 0) { name = com.android.internal.R.string.default_audio_route_name_usb; name = R.string.default_audio_route_name_usb; } else { name = com.android.internal.R.string.default_audio_route_name; name = R.string.default_audio_route_name; } mDefaultAudioVideo.mNameResId = name; dispatchRouteChanged(mDefaultAudioVideo); Loading @@ -243,9 +245,12 @@ public class MediaRouter { final RouteInfo info = new RouteInfo(mSystemCategory); info.mName = newRoutes.bluetoothName; info.mDescription = mResources.getText( com.android.internal.R.string.bluetooth_a2dp_audio_route_name); R.string.bluetooth_a2dp_audio_route_name); info.mSupportedTypes = ROUTE_TYPE_LIVE_AUDIO; info.mDeviceType = RouteInfo.DEVICE_TYPE_BLUETOOTH; info.mGlobalRouteId = sStatic.mResources.getString( R.string.bluetooth_a2dp_audio_route_id); mBluetoothA2dpRoute = info; addRouteStatic(mBluetoothA2dpRoute); } else { Loading Loading @@ -508,6 +513,9 @@ public class MediaRouter { outer: for (int i = mRoutes.size(); i-- > 0; ) { final RouteInfo route = mRoutes.get(i); final String globalRouteId = route.mGlobalRouteId; if (route.isDefault() || route.isBluetooth()) { continue; } if (globalRouteId != null) { for (int j = 0; j < globalRouteCount; j++) { MediaRouterClientState.RouteInfo globalRoute = globalRoutes.get(j); Loading Loading @@ -1572,7 +1580,7 @@ public class MediaRouter { newRoute.mEnabled = isWifiDisplayEnabled(display, wfdStatus); newRoute.mName = display.getFriendlyDisplayName(); newRoute.mDescription = sStatic.mResources.getText( com.android.internal.R.string.wireless_display_route_description); R.string.wireless_display_route_description); newRoute.updatePresentationDisplay(); newRoute.mDeviceType = RouteInfo.DEVICE_TYPE_TV; return newRoute; Loading Loading @@ -1867,19 +1875,19 @@ public class MediaRouter { int resId; switch (statusCode) { case STATUS_SCANNING: resId = com.android.internal.R.string.media_route_status_scanning; resId = R.string.media_route_status_scanning; break; case STATUS_CONNECTING: resId = com.android.internal.R.string.media_route_status_connecting; resId = R.string.media_route_status_connecting; break; case STATUS_AVAILABLE: resId = com.android.internal.R.string.media_route_status_available; resId = R.string.media_route_status_available; break; case STATUS_NOT_AVAILABLE: resId = com.android.internal.R.string.media_route_status_not_available; resId = R.string.media_route_status_not_available; break; case STATUS_IN_USE: resId = com.android.internal.R.string.media_route_status_in_use; resId = R.string.media_route_status_in_use; break; case STATUS_CONNECTED: case STATUS_NONE: Loading