Skip to content

Commit d0d2cda

Browse files
committed
Further work on MediaRouter
Remove volume control and tracking. This will be handled by extensions to existing audio and media APIs for now. Tweak/refine other aspects of the API. Pass the router to callbacks for easier future-proofing. Add group/ungroup callback methods. Change-Id: Ib69e76e5f46280a9002b545bcf4cbc7b839844ee
1 parent 47adf86 commit d0d2cda

File tree

6 files changed

+238
-135
lines changed

6 files changed

+238
-135
lines changed

api/16.txt

Lines changed: 90 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -675,6 +675,7 @@ package android {
675675
field public static final int maxWidth = 16843039; // 0x101011f
676676
field public static final int measureAllChildren = 16843018; // 0x101010a
677677
field public static final int measureWithLargestChild = 16843476; // 0x10102d4
678+
field public static final int mediaRouteButtonStyle = 16843693; // 0x10103ad
678679
field public static final int menuCategory = 16843230; // 0x10101de
679680
field public static final int mimeType = 16842790; // 0x1010026
680681
field public static final int minDate = 16843583; // 0x101033f
@@ -1789,6 +1790,7 @@ package android {
17891790
field public static final int Widget_DeviceDefault_Light_ListPopupWindow = 16974235; // 0x103019b
17901791
field public static final int Widget_DeviceDefault_Light_ListView = 16974210; // 0x1030182
17911792
field public static final int Widget_DeviceDefault_Light_ListView_DropDown = 16974205; // 0x103017d
1793+
field public static final int Widget_DeviceDefault_Light_MediaRouteButton = 16974296; // 0x10301d8
17921794
field public static final int Widget_DeviceDefault_Light_PopupMenu = 16974236; // 0x103019c
17931795
field public static final int Widget_DeviceDefault_Light_PopupWindow = 16974211; // 0x1030183
17941796
field public static final int Widget_DeviceDefault_Light_ProgressBar = 16974212; // 0x1030184
@@ -1814,6 +1816,7 @@ package android {
18141816
field public static final int Widget_DeviceDefault_ListPopupWindow = 16974180; // 0x1030164
18151817
field public static final int Widget_DeviceDefault_ListView = 16974158; // 0x103014e
18161818
field public static final int Widget_DeviceDefault_ListView_DropDown = 16974153; // 0x1030149
1819+
field public static final int Widget_DeviceDefault_MediaRouteButton = 16974295; // 0x10301d7
18171820
field public static final int Widget_DeviceDefault_PopupMenu = 16974181; // 0x1030165
18181821
field public static final int Widget_DeviceDefault_PopupWindow = 16974159; // 0x103014f
18191822
field public static final int Widget_DeviceDefault_ProgressBar = 16974160; // 0x1030150
@@ -1905,6 +1908,7 @@ package android {
19051908
field public static final int Widget_Holo_Light_ListPopupWindow = 16974043; // 0x10300db
19061909
field public static final int Widget_Holo_Light_ListView = 16974018; // 0x10300c2
19071910
field public static final int Widget_Holo_Light_ListView_DropDown = 16974013; // 0x10300bd
1911+
field public static final int Widget_Holo_Light_MediaRouteButton = 16974294; // 0x10301d6
19081912
field public static final int Widget_Holo_Light_PopupMenu = 16974044; // 0x10300dc
19091913
field public static final int Widget_Holo_Light_PopupWindow = 16974019; // 0x10300c3
19101914
field public static final int Widget_Holo_Light_ProgressBar = 16974020; // 0x10300c4
@@ -1930,6 +1934,7 @@ package android {
19301934
field public static final int Widget_Holo_ListPopupWindow = 16973997; // 0x10300ad
19311935
field public static final int Widget_Holo_ListView = 16973975; // 0x1030097
19321936
field public static final int Widget_Holo_ListView_DropDown = 16973970; // 0x1030092
1937+
field public static final int Widget_Holo_MediaRouteButton = 16974293; // 0x10301d5
19331938
field public static final int Widget_Holo_PopupMenu = 16973998; // 0x10300ae
19341939
field public static final int Widget_Holo_PopupWindow = 16973976; // 0x1030098
19351940
field public static final int Widget_Holo_ProgressBar = 16973977; // 0x1030099
@@ -3671,6 +3676,20 @@ package android.app {
36713676
method public android.view.Window startActivity(java.lang.String, android.content.Intent);
36723677
}
36733678

3679+
public class MediaRouteActionProvider extends android.view.ActionProvider {
3680+
ctor public MediaRouteActionProvider(android.content.Context);
3681+
method public android.view.View onCreateActionView();
3682+
method public void setRouteTypes(int);
3683+
}
3684+
3685+
public class MediaRouteButton extends android.view.View {
3686+
ctor public MediaRouteButton(android.content.Context);
3687+
ctor public MediaRouteButton(android.content.Context, android.util.AttributeSet);
3688+
ctor public MediaRouteButton(android.content.Context, android.util.AttributeSet, int);
3689+
method public int getRouteTypes();
3690+
method public void setRouteTypes(int);
3691+
}
3692+
36743693
public class NativeActivity extends android.app.Activity implements android.view.InputQueue.Callback android.view.SurfaceHolder.Callback2 android.view.ViewTreeObserver.OnGlobalLayoutListener {
36753694
ctor public NativeActivity();
36763695
method public void onGlobalLayout();
@@ -11486,6 +11505,75 @@ package android.media {
1148611505
field public static final int DEFAULT = 0; // 0x0
1148711506
}
1148811507

11508+
public class MediaRouter {
11509+
method public void addCallback(int, android.media.MediaRouter.Callback);
11510+
method public void addUserRoute(android.media.MediaRouter.UserRouteInfo);
11511+
method public void clearUserRoutes();
11512+
method public android.media.MediaRouter.RouteCategory createRouteCategory(java.lang.CharSequence, boolean);
11513+
method public android.media.MediaRouter.UserRouteInfo createUserRoute(android.media.MediaRouter.RouteCategory);
11514+
method public static android.media.MediaRouter forApplication(android.content.Context);
11515+
method public android.media.MediaRouter.RouteCategory getCategoryAt(int);
11516+
method public int getCategoryCount();
11517+
method public android.media.MediaRouter.RouteInfo getRouteAt(int);
11518+
method public int getRouteCount();
11519+
method public android.media.MediaRouter.RouteInfo getSelectedRoute(int);
11520+
method public void removeCallback(android.media.MediaRouter.Callback);
11521+
method public void removeUserRoute(android.media.MediaRouter.UserRouteInfo);
11522+
method public void selectRoute(int, android.media.MediaRouter.RouteInfo);
11523+
field public static final int ROUTE_TYPE_LIVE_AUDIO = 1; // 0x1
11524+
field public static final int ROUTE_TYPE_USER = 8388608; // 0x800000
11525+
}
11526+
11527+
public static abstract interface MediaRouter.Callback {
11528+
method public abstract void onRouteAdded(android.media.MediaRouter, android.media.MediaRouter.RouteInfo);
11529+
method public abstract void onRouteChanged(android.media.MediaRouter, android.media.MediaRouter.RouteInfo);
11530+
method public abstract void onRouteGrouped(android.media.MediaRouter, android.media.MediaRouter.RouteInfo, android.media.MediaRouter.RouteGroup, int);
11531+
method public abstract void onRouteRemoved(android.media.MediaRouter, android.media.MediaRouter.RouteInfo);
11532+
method public abstract void onRouteSelected(android.media.MediaRouter, int, android.media.MediaRouter.RouteInfo);
11533+
method public abstract void onRouteUngrouped(android.media.MediaRouter, android.media.MediaRouter.RouteInfo, android.media.MediaRouter.RouteGroup);
11534+
method public abstract void onRouteUnselected(android.media.MediaRouter, int, android.media.MediaRouter.RouteInfo);
11535+
}
11536+
11537+
public class MediaRouter.RouteCategory {
11538+
method public java.lang.CharSequence getName();
11539+
method public java.util.List<android.media.MediaRouter.RouteInfo> getRoutes(java.util.List<android.media.MediaRouter.RouteInfo>);
11540+
method public int getSupportedTypes();
11541+
method public boolean isGroupable();
11542+
}
11543+
11544+
public class MediaRouter.RouteGroup extends android.media.MediaRouter.RouteInfo {
11545+
method public void addRoute(android.media.MediaRouter.RouteInfo);
11546+
method public void addRoute(android.media.MediaRouter.RouteInfo, int);
11547+
method public android.media.MediaRouter.RouteInfo getRouteAt(int);
11548+
method public int getRouteCount();
11549+
method public void removeRoute(android.media.MediaRouter.RouteInfo);
11550+
method public void removeRoute(int);
11551+
}
11552+
11553+
public class MediaRouter.RouteInfo {
11554+
method public android.media.MediaRouter.RouteCategory getCategory();
11555+
method public android.media.MediaRouter.RouteGroup getGroup();
11556+
method public java.lang.CharSequence getName();
11557+
method public java.lang.CharSequence getStatus();
11558+
method public int getSupportedTypes();
11559+
}
11560+
11561+
public static class MediaRouter.SimpleCallback implements android.media.MediaRouter.Callback {
11562+
ctor public MediaRouter.SimpleCallback();
11563+
method public void onRouteAdded(android.media.MediaRouter, android.media.MediaRouter.RouteInfo);
11564+
method public void onRouteChanged(android.media.MediaRouter, android.media.MediaRouter.RouteInfo);
11565+
method public void onRouteGrouped(android.media.MediaRouter, android.media.MediaRouter.RouteInfo, android.media.MediaRouter.RouteGroup, int);
11566+
method public void onRouteRemoved(android.media.MediaRouter, android.media.MediaRouter.RouteInfo);
11567+
method public void onRouteSelected(android.media.MediaRouter, int, android.media.MediaRouter.RouteInfo);
11568+
method public void onRouteUngrouped(android.media.MediaRouter, android.media.MediaRouter.RouteInfo, android.media.MediaRouter.RouteGroup);
11569+
method public void onRouteUnselected(android.media.MediaRouter, int, android.media.MediaRouter.RouteInfo);
11570+
}
11571+
11572+
public class MediaRouter.UserRouteInfo extends android.media.MediaRouter.RouteInfo {
11573+
method public void setName(java.lang.CharSequence);
11574+
method public void setStatus(java.lang.CharSequence);
11575+
}
11576+
1148911577
public class MediaScannerConnection implements android.content.ServiceConnection {
1149011578
ctor public MediaScannerConnection(android.content.Context, android.media.MediaScannerConnection.MediaScannerConnectionClient);
1149111579
method public void connect();
@@ -22710,7 +22798,8 @@ package android.view {
2271022798
public abstract class ActionProvider {
2271122799
ctor public ActionProvider(android.content.Context);
2271222800
method public boolean hasSubMenu();
22713-
method public abstract android.view.View onCreateActionView();
22801+
method public abstract deprecated android.view.View onCreateActionView();
22802+
method public android.view.View onCreateActionView(android.view.MenuItem);
2271422803
method public boolean onPerformDefaultAction();
2271522804
method public void onPrepareSubMenu(android.view.SubMenu);
2271622805
}

api/current.txt

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@ package android {
9898
field public static final java.lang.String RECORD_AUDIO = "android.permission.RECORD_AUDIO";
9999
field public static final java.lang.String REORDER_TASKS = "android.permission.REORDER_TASKS";
100100
field public static final deprecated java.lang.String RESTART_PACKAGES = "android.permission.RESTART_PACKAGES";
101-
field public static final java.lang.String ROUTE_MEDIA_OUTPUT = "android.permission.ROUTE_MEDIA_OUTPUT";
102101
field public static final java.lang.String SEND_SMS = "android.permission.SEND_SMS";
103102
field public static final java.lang.String SET_ACTIVITY_WATCHER = "android.permission.SET_ACTIVITY_WATCHER";
104103
field public static final java.lang.String SET_ALARM = "com.android.alarm.permission.SET_ALARM";
@@ -11521,31 +11520,32 @@ package android.media {
1152111520
method public void removeCallback(android.media.MediaRouter.Callback);
1152211521
method public void removeUserRoute(android.media.MediaRouter.UserRouteInfo);
1152311522
method public void selectRoute(int, android.media.MediaRouter.RouteInfo);
11524-
method public void setSelectedRouteVolume(int, float);
1152511523
field public static final int ROUTE_TYPE_LIVE_AUDIO = 1; // 0x1
1152611524
field public static final int ROUTE_TYPE_USER = 8388608; // 0x800000
1152711525
}
1152811526

1152911527
public static abstract interface MediaRouter.Callback {
11530-
method public abstract void onRouteAdded(int, android.media.MediaRouter.RouteInfo);
11531-
method public abstract void onRouteChanged(android.media.MediaRouter.RouteInfo);
11532-
method public abstract void onRouteRemoved(int, android.media.MediaRouter.RouteInfo);
11533-
method public abstract void onRouteSelected(int, android.media.MediaRouter.RouteInfo);
11534-
method public abstract void onRouteUnselected(int, android.media.MediaRouter.RouteInfo);
11535-
method public abstract void onVolumeChanged(int, float);
11528+
method public abstract void onRouteAdded(android.media.MediaRouter, android.media.MediaRouter.RouteInfo);
11529+
method public abstract void onRouteChanged(android.media.MediaRouter, android.media.MediaRouter.RouteInfo);
11530+
method public abstract void onRouteGrouped(android.media.MediaRouter, android.media.MediaRouter.RouteInfo, android.media.MediaRouter.RouteGroup, int);
11531+
method public abstract void onRouteRemoved(android.media.MediaRouter, android.media.MediaRouter.RouteInfo);
11532+
method public abstract void onRouteSelected(android.media.MediaRouter, int, android.media.MediaRouter.RouteInfo);
11533+
method public abstract void onRouteUngrouped(android.media.MediaRouter, android.media.MediaRouter.RouteInfo, android.media.MediaRouter.RouteGroup);
11534+
method public abstract void onRouteUnselected(android.media.MediaRouter, int, android.media.MediaRouter.RouteInfo);
1153611535
}
1153711536

1153811537
public class MediaRouter.RouteCategory {
1153911538
method public java.lang.CharSequence getName();
11540-
method public android.media.MediaRouter.RouteInfo getRouteAt(int);
11541-
method public int getRouteCount();
11539+
method public java.util.List<android.media.MediaRouter.RouteInfo> getRoutes(java.util.List<android.media.MediaRouter.RouteInfo>);
1154211540
method public int getSupportedTypes();
1154311541
method public boolean isGroupable();
1154411542
}
1154511543

1154611544
public class MediaRouter.RouteGroup extends android.media.MediaRouter.RouteInfo {
1154711545
method public void addRoute(android.media.MediaRouter.RouteInfo);
1154811546
method public void addRoute(android.media.MediaRouter.RouteInfo, int);
11547+
method public android.media.MediaRouter.RouteInfo getRouteAt(int);
11548+
method public int getRouteCount();
1154911549
method public void removeRoute(android.media.MediaRouter.RouteInfo);
1155011550
method public void removeRoute(int);
1155111551
}
@@ -11556,17 +11556,17 @@ package android.media {
1155611556
method public java.lang.CharSequence getName();
1155711557
method public java.lang.CharSequence getStatus();
1155811558
method public int getSupportedTypes();
11559-
method public float getVolume();
1156011559
}
1156111560

1156211561
public static class MediaRouter.SimpleCallback implements android.media.MediaRouter.Callback {
1156311562
ctor public MediaRouter.SimpleCallback();
11564-
method public void onRouteAdded(int, android.media.MediaRouter.RouteInfo);
11565-
method public void onRouteChanged(android.media.MediaRouter.RouteInfo);
11566-
method public void onRouteRemoved(int, android.media.MediaRouter.RouteInfo);
11567-
method public void onRouteSelected(int, android.media.MediaRouter.RouteInfo);
11568-
method public void onRouteUnselected(int, android.media.MediaRouter.RouteInfo);
11569-
method public void onVolumeChanged(int, float);
11563+
method public void onRouteAdded(android.media.MediaRouter, android.media.MediaRouter.RouteInfo);
11564+
method public void onRouteChanged(android.media.MediaRouter, android.media.MediaRouter.RouteInfo);
11565+
method public void onRouteGrouped(android.media.MediaRouter, android.media.MediaRouter.RouteInfo, android.media.MediaRouter.RouteGroup, int);
11566+
method public void onRouteRemoved(android.media.MediaRouter, android.media.MediaRouter.RouteInfo);
11567+
method public void onRouteSelected(android.media.MediaRouter, int, android.media.MediaRouter.RouteInfo);
11568+
method public void onRouteUngrouped(android.media.MediaRouter, android.media.MediaRouter.RouteInfo, android.media.MediaRouter.RouteGroup);
11569+
method public void onRouteUnselected(android.media.MediaRouter, int, android.media.MediaRouter.RouteInfo);
1157011570
}
1157111571

1157211572
public class MediaRouter.UserRouteInfo extends android.media.MediaRouter.RouteInfo {

core/java/android/app/MediaRouteActionProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,12 +87,12 @@ public boolean onPerformDefaultAction() {
8787

8888
private class RouterCallback extends MediaRouter.SimpleCallback {
8989
@Override
90-
public void onRouteAdded(int type, RouteInfo info) {
90+
public void onRouteAdded(MediaRouter router, RouteInfo info) {
9191
mMenuItem.setVisible(mRouter.getRouteCount() > 1);
9292
}
9393

9494
@Override
95-
public void onRouteRemoved(int type, RouteInfo info) {
95+
public void onRouteRemoved(MediaRouter router, RouteInfo info) {
9696
mMenuItem.setVisible(mRouter.getRouteCount() > 1);
9797
}
9898
}

core/java/android/app/MediaRouteButton.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -262,22 +262,22 @@ protected void onDraw(Canvas canvas) {
262262

263263
private class MediaRouteCallback extends MediaRouter.SimpleCallback {
264264
@Override
265-
public void onRouteSelected(int type, RouteInfo info) {
265+
public void onRouteSelected(MediaRouter router, int type, RouteInfo info) {
266266
updateRemoteIndicator();
267267
}
268268

269269
@Override
270-
public void onRouteUnselected(int type, RouteInfo info) {
270+
public void onRouteUnselected(MediaRouter router, int type, RouteInfo info) {
271271
updateRemoteIndicator();
272272
}
273273

274274
@Override
275-
public void onRouteAdded(int type, RouteInfo info) {
275+
public void onRouteAdded(MediaRouter router, RouteInfo info) {
276276
updateRouteCount();
277277
}
278278

279279
@Override
280-
public void onRouteRemoved(int type, RouteInfo info) {
280+
public void onRouteRemoved(MediaRouter router, RouteInfo info) {
281281
updateRouteCount();
282282
}
283283
}

core/res/AndroidManifest.xml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -636,12 +636,6 @@
636636
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
637637
android:protectionLevel="signature" />
638638

639-
<!-- Allows an application to route media output to other devices. -->
640-
<permission android:name="android.permission.ROUTE_MEDIA_OUTPUT"
641-
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
642-
android:label="@string/permlab_route_media_output"
643-
android:description="@string/permdesc_route_media_output" />
644-
645639
<!-- =========================================== -->
646640
<!-- Permissions associated with telephony state -->
647641
<!-- =========================================== -->

0 commit comments

Comments
 (0)