@@ -693,7 +693,8 @@ static void updateWifiDisplayStatus(WifiDisplayStatus newStatus) {
693693 final WifiDisplayStatus oldStatus = sStatic .mLastKnownWifiDisplayStatus ;
694694
695695 // TODO Naive implementation. Make this smarter later.
696- boolean needScan = false ;
696+ boolean wantScan = false ;
697+ boolean blockScan = false ;
697698 WifiDisplay [] oldDisplays = oldStatus != null ?
698699 oldStatus .getRememberedDisplays () : new WifiDisplay [0 ];
699700 WifiDisplay [] newDisplays = newStatus .getRememberedDisplays ();
@@ -706,7 +707,7 @@ static void updateWifiDisplayStatus(WifiDisplayStatus newStatus) {
706707 if (oldRemembered == null ) {
707708 addRouteStatic (makeWifiDisplayRoute (d ,
708709 findMatchingDisplay (d , availableDisplays ) != null ));
709- needScan = true ;
710+ wantScan = true ;
710711 } else {
711712 final boolean available = findMatchingDisplay (d , availableDisplays ) != null ;
712713 final RouteInfo route = findWifiDisplayRoute (d );
@@ -716,6 +717,10 @@ static void updateWifiDisplayStatus(WifiDisplayStatus newStatus) {
716717 final RouteInfo activeRoute = findWifiDisplayRoute (d );
717718 if (activeRoute != null ) {
718719 selectRouteStatic (activeRoute .getSupportedTypes (), activeRoute );
720+
721+ // Don't scan if we're already connected to a wifi display,
722+ // the scanning process can cause a hiccup with some configurations.
723+ blockScan = true ;
719724 }
720725 }
721726 }
@@ -727,7 +732,7 @@ static void updateWifiDisplayStatus(WifiDisplayStatus newStatus) {
727732 }
728733 }
729734
730- if (needScan ) {
735+ if (wantScan && ! blockScan ) {
731736 sStatic .mDisplayService .scanWifiDisplays ();
732737 }
733738
0 commit comments