diff options
author | Adam Powell <adamp@google.com> | 2012-09-17 13:30:51 -0700 |
---|---|---|
committer | Adam Powell <adamp@google.com> | 2012-09-28 11:46:40 -0700 |
commit | 705ab808cf023e0cc38c2ba7cdb9571942cdc04f (patch) | |
tree | dd1c161124956ff7c1edcabcecb67725d7c170c4 /core/java/com/android | |
parent | 9dbbfcda81f251f23aded866f7f9d49d8a744c75 (diff) | |
download | frameworks_base-705ab808cf023e0cc38c2ba7cdb9571942cdc04f.zip frameworks_base-705ab808cf023e0cc38c2ba7cdb9571942cdc04f.tar.gz frameworks_base-705ab808cf023e0cc38c2ba7cdb9571942cdc04f.tar.bz2 |
Add wireless display selection support to MediaRouter.
* Adds the new route type LIVE_VIDEO
* Wireless displays support both LIVE_VIDEO and LIVE_AUDIO, making
wireless display routes valid selections in when apps make selecting
live audio routes available.
* MediaRouter will only report/manipulate wireless displays that have
already been paired at the system level.
Bug 7177920
Change-Id: Ic221b8687d77b4c0df9801c396b74870e86206e9
Diffstat (limited to 'core/java/com/android')
-rw-r--r-- | core/java/com/android/internal/app/MediaRouteChooserDialogFragment.java | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/core/java/com/android/internal/app/MediaRouteChooserDialogFragment.java b/core/java/com/android/internal/app/MediaRouteChooserDialogFragment.java index f010d7b..386f387 100644 --- a/core/java/com/android/internal/app/MediaRouteChooserDialogFragment.java +++ b/core/java/com/android/internal/app/MediaRouteChooserDialogFragment.java @@ -25,7 +25,7 @@ import android.app.MediaRouteActionProvider; import android.app.MediaRouteButton; import android.content.Context; import android.graphics.drawable.Drawable; -import android.media.AudioManager; +import android.hardware.display.DisplayManager; import android.media.MediaRouter; import android.media.MediaRouter.RouteCategory; import android.media.MediaRouter.RouteGroup; @@ -70,6 +70,7 @@ public class MediaRouteChooserDialogFragment extends DialogFragment { }; MediaRouter mRouter; + DisplayManager mDisplayService; private int mRouteTypes; private LayoutInflater mInflater; @@ -97,6 +98,7 @@ public class MediaRouteChooserDialogFragment extends DialogFragment { public void onAttach(Activity activity) { super.onAttach(activity); mRouter = (MediaRouter) activity.getSystemService(Context.MEDIA_ROUTER_SERVICE); + mDisplayService = (DisplayManager) activity.getSystemService(Context.DISPLAY_SERVICE); } @Override @@ -119,6 +121,15 @@ public class MediaRouteChooserDialogFragment extends DialogFragment { public void setRouteTypes(int types) { mRouteTypes = types; + if ((mRouteTypes & MediaRouter.ROUTE_TYPE_LIVE_VIDEO) != 0 && mDisplayService == null) { + final Context activity = getActivity(); + if (activity != null) { + mDisplayService = (DisplayManager) activity.getSystemService( + Context.DISPLAY_SERVICE); + } + } else { + mDisplayService = null; + } } void updateVolume() { @@ -194,6 +205,9 @@ public class MediaRouteChooserDialogFragment extends DialogFragment { @Override public void onResume() { super.onResume(); + if (mDisplayService != null) { + mDisplayService.scanWifiDisplays(); + } } private static class ViewHolder { @@ -253,7 +267,9 @@ public class MediaRouteChooserDialogFragment extends DialogFragment { final RouteCategory cat = mRouter.getCategoryAt(i); routes = cat.getRoutes(mCatRouteList); - mItems.add(cat); + if (!cat.isSystem()) { + mItems.add(cat); + } if (cat == mCategoryEditingGroups) { addGroupEditingCategoryRoutes(routes); @@ -370,6 +386,7 @@ public class MediaRouteChooserDialogFragment extends DialogFragment { public boolean isEnabled(int position) { switch (getItemViewType(position)) { case VIEW_ROUTE: + return ((RouteInfo) mItems.get(position)).isEnabled(); case VIEW_GROUPING_ROUTE: case VIEW_GROUPING_DONE: return true; @@ -434,6 +451,7 @@ public class MediaRouteChooserDialogFragment extends DialogFragment { } convertView.setActivated(position == mSelectedItemPosition); + convertView.setEnabled(isEnabled(position)); return convertView; } |