summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Iván Budnik <ivanbuper@google.com> 2024-02-26 11:55:23 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-02-26 11:55:23 +0000
commitc73e2e209bd83c55dfb6e7400277badbfff0530b (patch)
tree1a5f9311f86c5124d8794f4f0be51e4738be33a9
parent5234b842a10b56f464cce97ed9a06574c4e7f039 (diff)
parent2744ef92b14fefee08be06936c4462c817d67364 (diff)
Merge "Integrate requestScan() to RouterInfoMediaManager" into main
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/media/RouterInfoMediaManager.java19
1 files changed, 17 insertions, 2 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/media/RouterInfoMediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/RouterInfoMediaManager.java
index 0f08605a50d0..df03167cd0f9 100644
--- a/packages/SettingsLib/src/com/android/settingslib/media/RouterInfoMediaManager.java
+++ b/packages/SettingsLib/src/com/android/settingslib/media/RouterInfoMediaManager.java
@@ -41,6 +41,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
import java.util.stream.Collectors;
@@ -64,6 +65,8 @@ public final class RouterInfoMediaManager extends InfoMediaManager {
refreshDevices();
};
+ private final AtomicReference<MediaRouter2.ScanToken> mScanToken = new AtomicReference<>();
+
// TODO (b/321969740): Plumb target UserHandle between UMO and RouterInfoMediaManager.
/* package */ RouterInfoMediaManager(
Context context,
@@ -101,12 +104,24 @@ public final class RouterInfoMediaManager extends InfoMediaManager {
mExecutor, mRouteListingPreferenceCallback);
mRouter.registerTransferCallback(mExecutor, mTransferCallback);
mRouter.registerControllerCallback(mExecutor, mControllerCallback);
- mRouter.startScan();
+ if (Flags.enableScreenOffScanning()) {
+ MediaRouter2.ScanRequest request = new MediaRouter2.ScanRequest.Builder().build();
+ mScanToken.compareAndSet(null, mRouter.requestScan(request));
+ } else {
+ mRouter.startScan();
+ }
}
@Override
public void stopScan() {
- mRouter.stopScan();
+ if (Flags.enableScreenOffScanning()) {
+ MediaRouter2.ScanToken token = mScanToken.getAndSet(null);
+ if (token != null) {
+ mRouter.cancelScanRequest(token);
+ }
+ } else {
+ mRouter.stopScan();
+ }
mRouter.unregisterControllerCallback(mControllerCallback);
mRouter.unregisterTransferCallback(mTransferCallback);
mRouter.unregisterRouteListingPreferenceUpdatedCallback(mRouteListingPreferenceCallback);