diff options
author | Jeff Brown <jeffbrown@google.com> | 2012-10-11 14:30:21 -0700 |
---|---|---|
committer | Jeff Brown <jeffbrown@google.com> | 2012-10-11 14:30:21 -0700 |
commit | 2444ae7e2b8658a4a90f996e678423558744b4a2 (patch) | |
tree | fd441892fd995c29310d4cfc5ee6503e159b8a92 /services | |
parent | a2f7ca7db1f797d7897dc66840d1ec64d1b2a6a1 (diff) | |
download | frameworks_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')
-rw-r--r-- | services/java/com/android/server/display/WifiDisplayAdapter.java | 29 |
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( |