Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 52d345f5 authored by Iván Budnik's avatar Iván Budnik Committed by Android (Google) Code Review
Browse files

Merge changes from topic "fix-mr2-scanning" into main

* changes:
  Fix cancelScanRequest() scanning state update logic
  Make manager scans populate active scanning packages
parents 778a0c01 21d08b50
Loading
Loading
Loading
Loading
+16 −13
Original line number Diff line number Diff line
@@ -545,15 +545,16 @@ public final class MediaRouter2 {
                                    ? SCANNING_STATE_SCANNING_FULL
                                    : SCANNING_STATE_WHILE_INTERACTIVE);

                } catch (RemoteException ex) {
                    throw ex.rethrowFromSystemServer();
                }
            }

            if (scanRequest.isScreenOffScan()) {
                mScreenOffScanRequestCount++;
            } else {
                mScreenOnScanRequestCount++;
            }
                } catch (RemoteException ex) {
                    throw ex.rethrowFromSystemServer();
                }
            }

            mScanRequestsMap.put(token.mId, scanRequest);
            return token;
@@ -580,26 +581,28 @@ public final class MediaRouter2 {
            }

            boolean shouldUpdate =
                    mScreenOffScanRequestCount == 1
                            && (request.isScreenOffScan() || mScreenOnScanRequestCount == 1);
                    request.isScreenOffScan()
                            ? mScreenOffScanRequestCount == 1
                            : mScreenOnScanRequestCount == 1 && mScreenOffScanRequestCount == 0;

            if (shouldUpdate) {
                try {
                    if (request.isScreenOffScan() && mScreenOnScanRequestCount == 0) {
                    if (!request.isScreenOffScan() || mScreenOnScanRequestCount == 0) {
                        mImpl.updateScanningState(SCANNING_STATE_NOT_SCANNING);
                    } else {
                        mImpl.updateScanningState(SCANNING_STATE_WHILE_INTERACTIVE);
                    }

                } catch (RemoteException ex) {
                    ex.rethrowFromSystemServer();
                }
            }

            if (request.isScreenOffScan()) {
                mScreenOffScanRequestCount--;
            } else {
                mScreenOnScanRequestCount--;
            }
                } catch (RemoteException ex) {
                    ex.rethrowFromSystemServer();
                }
            }

            mScanRequestsMap.remove(token.mId);
        }
+1 −1
Original line number Diff line number Diff line
@@ -233,7 +233,7 @@ final class MediaRoute2ProviderServiceProxy extends MediaRoute2Provider
            return false;
        }
        boolean bindDueToManagerScan =
                mIsManagerScanning && Flags.enablePreventionOfManagerScansWhenNoAppsScan();
                mIsManagerScanning && !Flags.enablePreventionOfManagerScansWhenNoAppsScan();
        if (!getSessionInfos().isEmpty() || bindDueToManagerScan) {
            // We bind if any manager is scanning (regardless of whether an app is scanning) to give
            // the opportunity for providers to publish routing sessions that were established
+8 −1
Original line number Diff line number Diff line
@@ -3411,7 +3411,14 @@ class MediaRouter2ServiceImpl {
            for (RouterRecord activeRouterRecord : activeRouterRecords) {
                RouteDiscoveryPreference preference = activeRouterRecord.mDiscoveryPreference;
                preferredFeatures.addAll(preference.getPreferredFeatures());
                if (activeRouterRecord.isActivelyScanning()) {

                boolean isRouterRecordActivelyScanning =
                        Flags.enablePreventionOfManagerScansWhenNoAppsScan()
                                ? (activeRouterRecord.isActivelyScanning() || shouldForceActiveScan)
                                        && !preference.getPreferredFeatures().isEmpty()
                                : activeRouterRecord.isActivelyScanning();

                if (isRouterRecordActivelyScanning) {
                    activeScan = true;
                    activelyScanningPackages.add(activeRouterRecord.mPackageName);
                }