summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jeff Brown <jeffbrown@google.com> 2013-05-09 13:41:11 -0700
committer Jeff Brown <jeffbrown@google.com> 2013-05-09 13:42:57 -0700
commit77e59fef24c02a109bb409afe38dbdf28e1fd914 (patch)
tree5322432caf5209e3a10bfadd5a516b51f27869bf
parentffe3b5b89fa58f7b12a2fc690c89480fc16a9fd6 (diff)
Fix bug managing wifi display routes.
We could sometimes crash due to some inconsistencies in the way the wifi display routes were updates when connecting, disconnecting or scanning wifi displays. Bug: 8837094 Change-Id: I10c7ccb163ec33c4ea107dfcb5074741049fe955
-rw-r--r--media/java/android/media/MediaRouter.java22
1 files changed, 9 insertions, 13 deletions
diff --git a/media/java/android/media/MediaRouter.java b/media/java/android/media/MediaRouter.java
index 61c55a58e5ef..9e8aeeb8a6e8 100644
--- a/media/java/android/media/MediaRouter.java
+++ b/media/java/android/media/MediaRouter.java
@@ -783,25 +783,21 @@ public class MediaRouter {
for (int i = 0; i < newDisplays.length; i++) {
final WifiDisplay d = newDisplays[i];
- final WifiDisplay oldRemembered = findMatchingDisplay(d, oldDisplays);
- if (oldRemembered == null) {
- addRouteStatic(makeWifiDisplayRoute(d,
- findMatchingDisplay(d, availableDisplays) != null));
+ final boolean available = findMatchingDisplay(d, availableDisplays) != null;
+ RouteInfo route = findWifiDisplayRoute(d);
+ if (route == null) {
+ route = makeWifiDisplayRoute(d, available);
+ addRouteStatic(route);
wantScan = true;
} else {
- final boolean available = findMatchingDisplay(d, availableDisplays) != null;
- final RouteInfo route = findWifiDisplayRoute(d);
updateWifiDisplayRoute(route, d, available, newStatus);
}
if (d.equals(activeDisplay)) {
- final RouteInfo activeRoute = findWifiDisplayRoute(d);
- if (activeRoute != null) {
- selectRouteStatic(activeRoute.getSupportedTypes(), activeRoute);
+ selectRouteStatic(route.getSupportedTypes(), route);
- // Don't scan if we're already connected to a wifi display,
- // the scanning process can cause a hiccup with some configurations.
- blockScan = true;
- }
+ // Don't scan if we're already connected to a wifi display,
+ // the scanning process can cause a hiccup with some configurations.
+ blockScan = true;
}
}
for (int i = 0; i < oldDisplays.length; i++) {