summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/display
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2012-10-11 14:30:21 -0700
committerJeff Brown <jeffbrown@google.com>2012-10-11 14:30:21 -0700
commit2444ae7e2b8658a4a90f996e678423558744b4a2 (patch)
treefd441892fd995c29310d4cfc5ee6503e159b8a92 /services/java/com/android/server/display
parenta2f7ca7db1f797d7897dc66840d1ec64d1b2a6a1 (diff)
downloadframeworks_base-2444ae7e2b8658a4a90f996e678423558744b4a2.zip
frameworks_base-2444ae7e2b8658a4a90f996e678423558744b4a2.tar.gz
frameworks_base-2444ae7e2b8658a4a90f996e678423558744b4a2.tar.bz2
Ensure MediaRouter correctly handles renamed Wifi displays.
Fix a couple of bugs that cause MediaRouter to disconnect from the current Wifi display whenever it is renamed. Added an extra check in WifiDisplayAdapter for identity renames. The Settings app already handles this case but it's good to have the service check for it as well so we don't store unnecessary aliases. Bug: 7310777 Change-Id: I8fddd32ca59f9b798ee31b467b81457508c345f8
Diffstat (limited to 'services/java/com/android/server/display')
-rw-r--r--services/java/com/android/server/display/WifiDisplayAdapter.java29
1 files changed, 28 insertions, 1 deletions
diff --git a/services/java/com/android/server/display/WifiDisplayAdapter.java b/services/java/com/android/server/display/WifiDisplayAdapter.java
index b2beb5e..3e541dd 100644
--- a/services/java/com/android/server/display/WifiDisplayAdapter.java
+++ b/services/java/com/android/server/display/WifiDisplayAdapter.java
@@ -50,6 +50,8 @@ import java.util.Arrays;
final class WifiDisplayAdapter extends DisplayAdapter {
private static final String TAG = "WifiDisplayAdapter";
+ private static final boolean DEBUG = false;
+
private final PersistentDataStore mPersistentDataStore;
private final boolean mSupportsProtectedBuffers;
@@ -116,6 +118,10 @@ final class WifiDisplayAdapter extends DisplayAdapter {
}
public void requestScanLocked() {
+ if (DEBUG) {
+ Slog.d(TAG, "requestScanLocked");
+ }
+
getHandler().post(new Runnable() {
@Override
public void run() {
@@ -127,6 +133,10 @@ final class WifiDisplayAdapter extends DisplayAdapter {
}
public void requestConnectLocked(final String address, final boolean trusted) {
+ if (DEBUG) {
+ Slog.d(TAG, "requestConnectLocked: address=" + address + ", trusted=" + trusted);
+ }
+
if (!trusted) {
synchronized (getSyncRoot()) {
if (!isRememberedDisplayLocked(address)) {
@@ -157,6 +167,10 @@ final class WifiDisplayAdapter extends DisplayAdapter {
}
public void requestDisconnectLocked() {
+ if (DEBUG) {
+ Slog.d(TAG, "requestDisconnectedLocked");
+ }
+
getHandler().post(new Runnable() {
@Override
public void run() {
@@ -168,9 +182,13 @@ final class WifiDisplayAdapter extends DisplayAdapter {
}
public void requestRenameLocked(String address, String alias) {
+ if (DEBUG) {
+ Slog.d(TAG, "requestRenameLocked: address=" + address + ", alias=" + alias);
+ }
+
if (alias != null) {
alias = alias.trim();
- if (alias.isEmpty()) {
+ if (alias.isEmpty() || alias.equals(address)) {
alias = null;
}
}
@@ -183,6 +201,10 @@ final class WifiDisplayAdapter extends DisplayAdapter {
}
public void requestForgetLocked(String address) {
+ if (DEBUG) {
+ Slog.d(TAG, "requestForgetLocked: address=" + address);
+ }
+
if (mPersistentDataStore.forgetWifiDisplay(address)) {
mPersistentDataStore.saveIfNeeded();
updateRememberedDisplaysLocked();
@@ -200,6 +222,10 @@ final class WifiDisplayAdapter extends DisplayAdapter {
mFeatureState, mScanState, mActiveDisplayState,
mActiveDisplay, mAvailableDisplays, mRememberedDisplays);
}
+
+ if (DEBUG) {
+ Slog.d(TAG, "getWifiDisplayStatusLocked: result=" + mCurrentStatus);
+ }
return mCurrentStatus;
}
@@ -295,6 +321,7 @@ final class WifiDisplayAdapter extends DisplayAdapter {
}
}
+ @Override
public void onScanFinished(WifiDisplay[] availableDisplays) {
synchronized (getSyncRoot()) {
availableDisplays = mPersistentDataStore.applyWifiDisplayAliases(