Loading Android.mk +2 −0 Original line number Diff line number Diff line Loading @@ -251,6 +251,8 @@ LOCAL_SRC_FILES += \ media/java/android/media/IAudioService.aidl \ media/java/android/media/IAudioFocusDispatcher.aidl \ media/java/android/media/IAudioRoutesObserver.aidl \ media/java/android/media/IMediaRouterClient.aidl \ media/java/android/media/IMediaRouterService.aidl \ media/java/android/media/IMediaScannerListener.aidl \ media/java/android/media/IMediaScannerService.aidl \ media/java/android/media/IRemoteControlClient.aidl \ Loading core/java/android/app/MediaRouteActionProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ public class MediaRouteActionProvider extends ActionProvider { } mRouteTypes = types; if (types != 0) { mRouter.addCallback(types, mCallback); mRouter.addCallback(types, mCallback, MediaRouter.CALLBACK_FLAG_PASSIVE_DISCOVERY); } if (mView != null) { mView.setRouteTypes(mRouteTypes); Loading core/java/android/app/MediaRouteButton.java +15 −12 Original line number Diff line number Diff line Loading @@ -123,14 +123,14 @@ public class MediaRouteButton extends View { if (mToggleMode) { if (mRemoteActive) { mRouter.selectRouteInt(mRouteTypes, mRouter.getDefaultRoute()); mRouter.selectRouteInt(mRouteTypes, mRouter.getDefaultRoute(), true); } else { final int N = mRouter.getRouteCount(); for (int i = 0; i < N; i++) { final RouteInfo route = mRouter.getRouteAt(i); if ((route.getSupportedTypes() & mRouteTypes) != 0 && route != mRouter.getDefaultRoute()) { mRouter.selectRouteInt(mRouteTypes, route); mRouter.selectRouteInt(mRouteTypes, route, true); } } } Loading Loading @@ -201,7 +201,8 @@ public class MediaRouteButton extends View { if (mAttachedToWindow) { updateRouteInfo(); mRouter.addCallback(types, mRouterCallback); mRouter.addCallback(types, mRouterCallback, MediaRouter.CALLBACK_FLAG_PASSIVE_DISCOVERY); } } Loading @@ -217,8 +218,7 @@ public class MediaRouteButton extends View { void updateRemoteIndicator() { final RouteInfo selected = mRouter.getSelectedRoute(mRouteTypes); final boolean isRemote = selected != mRouter.getDefaultRoute(); final boolean isConnecting = selected != null && selected.getStatusCode() == RouteInfo.STATUS_CONNECTING; final boolean isConnecting = selected != null && selected.isConnecting(); boolean needsRefresh = false; if (mRemoteActive != isRemote) { Loading @@ -238,7 +238,7 @@ public class MediaRouteButton extends View { void updateRouteCount() { final int N = mRouter.getRouteCount(); int count = 0; boolean hasVideoRoutes = false; boolean scanRequired = false; for (int i = 0; i < N; i++) { final RouteInfo route = mRouter.getRouteAt(i); final int routeTypes = route.getSupportedTypes(); Loading @@ -248,8 +248,9 @@ public class MediaRouteButton extends View { } else { count++; } if ((routeTypes & MediaRouter.ROUTE_TYPE_LIVE_VIDEO) != 0) { hasVideoRoutes = true; if (((routeTypes & MediaRouter.ROUTE_TYPE_LIVE_VIDEO | MediaRouter.ROUTE_TYPE_REMOTE_DISPLAY)) != 0) { scanRequired = true; } } } Loading @@ -257,9 +258,10 @@ public class MediaRouteButton extends View { setEnabled(count != 0); // Only allow toggling if we have more than just user routes. // Don't toggle if we support video routes, we may have to let the dialog scan. mToggleMode = count == 2 && (mRouteTypes & MediaRouter.ROUTE_TYPE_LIVE_AUDIO) != 0 && !hasVideoRoutes; // Don't toggle if we support video or remote display routes, we may have to // let the dialog scan. mToggleMode = count == 2 && (mRouteTypes & MediaRouter.ROUTE_TYPE_LIVE_AUDIO) != 0 && !scanRequired; } @Override Loading Loading @@ -313,7 +315,8 @@ public class MediaRouteButton extends View { super.onAttachedToWindow(); mAttachedToWindow = true; if (mRouteTypes != 0) { mRouter.addCallback(mRouteTypes, mRouterCallback); mRouter.addCallback(mRouteTypes, mRouterCallback, MediaRouter.CALLBACK_FLAG_PASSIVE_DISCOVERY); updateRouteInfo(); } } Loading core/java/android/view/Display.java +9 −0 Original line number Diff line number Diff line Loading @@ -643,6 +643,15 @@ public final class Display { || uid == 0; } /** * Returns true if the display is a public presentation display. * @hide */ public boolean isPublicPresentation() { return (mFlags & (Display.FLAG_PRIVATE | Display.FLAG_PRESENTATION)) == Display.FLAG_PRESENTATION; } private void updateDisplayInfoLocked() { // Note: The display manager caches display info objects on our behalf. DisplayInfo newInfo = mGlobal.getDisplayInfo(mDisplayId); Loading core/java/com/android/internal/app/MediaRouteChooserDialogFragment.java +3 −3 Original line number Diff line number Diff line Loading @@ -501,7 +501,7 @@ public class MediaRouteChooserDialogFragment extends DialogFragment { final RouteInfo route = (RouteInfo) item; if (type == VIEW_ROUTE) { mRouter.selectRouteInt(mRouteTypes, route); mRouter.selectRouteInt(mRouteTypes, route, true); dismiss(); } else if (type == VIEW_GROUPING_ROUTE) { final Checkable c = (Checkable) view; Loading @@ -514,7 +514,7 @@ public class MediaRouteChooserDialogFragment extends DialogFragment { if (mRouter.getSelectedRoute(mRouteTypes) == oldGroup) { // Old group was selected but is now empty. Select the group // we're manipulating since that's where the last route went. mRouter.selectRouteInt(mRouteTypes, mEditingGroup); mRouter.selectRouteInt(mRouteTypes, mEditingGroup, true); } oldGroup.removeRoute(route); mEditingGroup.addRoute(route); Loading Loading @@ -555,7 +555,7 @@ public class MediaRouteChooserDialogFragment extends DialogFragment { mEditingGroup = group; mCategoryEditingGroups = group.getCategory(); getDialog().setCanceledOnTouchOutside(false); mRouter.selectRouteInt(mRouteTypes, mEditingGroup); mRouter.selectRouteInt(mRouteTypes, mEditingGroup, true); update(); scrollToEditingGroup(); } Loading Loading
Android.mk +2 −0 Original line number Diff line number Diff line Loading @@ -251,6 +251,8 @@ LOCAL_SRC_FILES += \ media/java/android/media/IAudioService.aidl \ media/java/android/media/IAudioFocusDispatcher.aidl \ media/java/android/media/IAudioRoutesObserver.aidl \ media/java/android/media/IMediaRouterClient.aidl \ media/java/android/media/IMediaRouterService.aidl \ media/java/android/media/IMediaScannerListener.aidl \ media/java/android/media/IMediaScannerService.aidl \ media/java/android/media/IRemoteControlClient.aidl \ Loading
core/java/android/app/MediaRouteActionProvider.java +1 −1 Original line number Diff line number Diff line Loading @@ -60,7 +60,7 @@ public class MediaRouteActionProvider extends ActionProvider { } mRouteTypes = types; if (types != 0) { mRouter.addCallback(types, mCallback); mRouter.addCallback(types, mCallback, MediaRouter.CALLBACK_FLAG_PASSIVE_DISCOVERY); } if (mView != null) { mView.setRouteTypes(mRouteTypes); Loading
core/java/android/app/MediaRouteButton.java +15 −12 Original line number Diff line number Diff line Loading @@ -123,14 +123,14 @@ public class MediaRouteButton extends View { if (mToggleMode) { if (mRemoteActive) { mRouter.selectRouteInt(mRouteTypes, mRouter.getDefaultRoute()); mRouter.selectRouteInt(mRouteTypes, mRouter.getDefaultRoute(), true); } else { final int N = mRouter.getRouteCount(); for (int i = 0; i < N; i++) { final RouteInfo route = mRouter.getRouteAt(i); if ((route.getSupportedTypes() & mRouteTypes) != 0 && route != mRouter.getDefaultRoute()) { mRouter.selectRouteInt(mRouteTypes, route); mRouter.selectRouteInt(mRouteTypes, route, true); } } } Loading Loading @@ -201,7 +201,8 @@ public class MediaRouteButton extends View { if (mAttachedToWindow) { updateRouteInfo(); mRouter.addCallback(types, mRouterCallback); mRouter.addCallback(types, mRouterCallback, MediaRouter.CALLBACK_FLAG_PASSIVE_DISCOVERY); } } Loading @@ -217,8 +218,7 @@ public class MediaRouteButton extends View { void updateRemoteIndicator() { final RouteInfo selected = mRouter.getSelectedRoute(mRouteTypes); final boolean isRemote = selected != mRouter.getDefaultRoute(); final boolean isConnecting = selected != null && selected.getStatusCode() == RouteInfo.STATUS_CONNECTING; final boolean isConnecting = selected != null && selected.isConnecting(); boolean needsRefresh = false; if (mRemoteActive != isRemote) { Loading @@ -238,7 +238,7 @@ public class MediaRouteButton extends View { void updateRouteCount() { final int N = mRouter.getRouteCount(); int count = 0; boolean hasVideoRoutes = false; boolean scanRequired = false; for (int i = 0; i < N; i++) { final RouteInfo route = mRouter.getRouteAt(i); final int routeTypes = route.getSupportedTypes(); Loading @@ -248,8 +248,9 @@ public class MediaRouteButton extends View { } else { count++; } if ((routeTypes & MediaRouter.ROUTE_TYPE_LIVE_VIDEO) != 0) { hasVideoRoutes = true; if (((routeTypes & MediaRouter.ROUTE_TYPE_LIVE_VIDEO | MediaRouter.ROUTE_TYPE_REMOTE_DISPLAY)) != 0) { scanRequired = true; } } } Loading @@ -257,9 +258,10 @@ public class MediaRouteButton extends View { setEnabled(count != 0); // Only allow toggling if we have more than just user routes. // Don't toggle if we support video routes, we may have to let the dialog scan. mToggleMode = count == 2 && (mRouteTypes & MediaRouter.ROUTE_TYPE_LIVE_AUDIO) != 0 && !hasVideoRoutes; // Don't toggle if we support video or remote display routes, we may have to // let the dialog scan. mToggleMode = count == 2 && (mRouteTypes & MediaRouter.ROUTE_TYPE_LIVE_AUDIO) != 0 && !scanRequired; } @Override Loading Loading @@ -313,7 +315,8 @@ public class MediaRouteButton extends View { super.onAttachedToWindow(); mAttachedToWindow = true; if (mRouteTypes != 0) { mRouter.addCallback(mRouteTypes, mRouterCallback); mRouter.addCallback(mRouteTypes, mRouterCallback, MediaRouter.CALLBACK_FLAG_PASSIVE_DISCOVERY); updateRouteInfo(); } } Loading
core/java/android/view/Display.java +9 −0 Original line number Diff line number Diff line Loading @@ -643,6 +643,15 @@ public final class Display { || uid == 0; } /** * Returns true if the display is a public presentation display. * @hide */ public boolean isPublicPresentation() { return (mFlags & (Display.FLAG_PRIVATE | Display.FLAG_PRESENTATION)) == Display.FLAG_PRESENTATION; } private void updateDisplayInfoLocked() { // Note: The display manager caches display info objects on our behalf. DisplayInfo newInfo = mGlobal.getDisplayInfo(mDisplayId); Loading
core/java/com/android/internal/app/MediaRouteChooserDialogFragment.java +3 −3 Original line number Diff line number Diff line Loading @@ -501,7 +501,7 @@ public class MediaRouteChooserDialogFragment extends DialogFragment { final RouteInfo route = (RouteInfo) item; if (type == VIEW_ROUTE) { mRouter.selectRouteInt(mRouteTypes, route); mRouter.selectRouteInt(mRouteTypes, route, true); dismiss(); } else if (type == VIEW_GROUPING_ROUTE) { final Checkable c = (Checkable) view; Loading @@ -514,7 +514,7 @@ public class MediaRouteChooserDialogFragment extends DialogFragment { if (mRouter.getSelectedRoute(mRouteTypes) == oldGroup) { // Old group was selected but is now empty. Select the group // we're manipulating since that's where the last route went. mRouter.selectRouteInt(mRouteTypes, mEditingGroup); mRouter.selectRouteInt(mRouteTypes, mEditingGroup, true); } oldGroup.removeRoute(route); mEditingGroup.addRoute(route); Loading Loading @@ -555,7 +555,7 @@ public class MediaRouteChooserDialogFragment extends DialogFragment { mEditingGroup = group; mCategoryEditingGroups = group.getCategory(); getDialog().setCanceledOnTouchOutside(false); mRouter.selectRouteInt(mRouteTypes, mEditingGroup); mRouter.selectRouteInt(mRouteTypes, mEditingGroup, true); update(); scrollToEditingGroup(); } Loading