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

Commit 70aaef37 authored by Derek Jedral's avatar Derek Jedral Committed by Android (Google) Code Review
Browse files

Merge "Fix null issues with suggestions codepaths" into main

parents 8c12bdb0 6d1794c7
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -75,7 +75,7 @@ interface IMediaRouterService {
    void releaseSessionWithRouter2(IMediaRouter2 router, String sessionId);
    void setDeviceSuggestionsWithRouter2(IMediaRouter2 router,
            in @nullable List<SuggestedDeviceInfo> suggestedDeviceInfo);
    @nullable Map<String, List<SuggestedDeviceInfo>> getDeviceSuggestionsWithRouter2(
    Map<String, List<SuggestedDeviceInfo>> getDeviceSuggestionsWithRouter2(
            IMediaRouter2 router);

    // Methods for MediaRouter2Manager
@@ -105,7 +105,7 @@ interface IMediaRouterService {
    boolean showMediaOutputSwitcherWithProxyRouter(IMediaRouter2Manager manager);
    void setDeviceSuggestionsWithManager(IMediaRouter2Manager manager,
            in @nullable List<SuggestedDeviceInfo> suggestedDeviceInfo);
    @nullable Map<String, List<SuggestedDeviceInfo>> getDeviceSuggestionsWithManager(
Map<String, List<SuggestedDeviceInfo>> getDeviceSuggestionsWithManager(
            IMediaRouter2Manager manager);
    void onDeviceSuggestionRequestedWithManager(IMediaRouter2Manager manager);
}
+4 −3
Original line number Diff line number Diff line
@@ -730,7 +730,8 @@ public abstract class InfoMediaManager {
                }
            }
            if (newSuggestedDeviceState == null) {
                if (topSuggestion
                if (previousState != null
                        && topSuggestion
                                .getRouteId()
                                .equals(previousState.getSuggestedDeviceInfo().getRouteId())) {
                    return;
+25 −0
Original line number Diff line number Diff line
@@ -997,6 +997,31 @@ public class InfoMediaManagerTest {
                .isEqualTo(suggestedDeviceInfo);
    }

    @EnableFlags(Flags.FLAG_ENABLE_SUGGESTED_DEVICE_API)
    @Test
    public void onSuggestionUpdated_routesNotSet_listenersNotified() {
        SuggestedDeviceInfo suggestedDeviceInfo =
                new SuggestedDeviceInfo.Builder()
                        .setDeviceDisplayName("device_name")
                        .setRouteId(TEST_ID_3)
                        .setType(0)
                        .build();
        RouterInfoMediaManager mediaManager = createRouterInfoMediaManager();
        mediaManager.registerCallback(mCallback);
        clearInvocations(mCallback);
        verify(mRouter2)
                .registerDeviceSuggestionsCallback(
                        any(), mDeviceSuggestionsCallbackCaptor.capture());

        mDeviceSuggestionsCallbackCaptor
                .getValue()
                .onSuggestionUpdated("random_package_name", List.of(suggestedDeviceInfo));

        verify(mCallback).onSuggestedDeviceUpdated(mSuggestedDeviceStateCaptor.capture());
        assertThat(mSuggestedDeviceStateCaptor.getValue().getSuggestedDeviceInfo())
                .isEqualTo(suggestedDeviceInfo);
    }

    @EnableFlags(Flags.FLAG_ENABLE_SUGGESTED_DEVICE_API)
    @Test
    public void onSuggestionUpdated_mediaDeviceIsSuggested() {
+7 −6
Original line number Diff line number Diff line
@@ -571,7 +571,7 @@ class MediaRouter2ServiceImpl {
        }
    }

    @Nullable
    @NonNull
    public Map<String, List<SuggestedDeviceInfo>> getDeviceSuggestionsWithRouter2(
            @NonNull IMediaRouter2 router) {
        Objects.requireNonNull(router, "router must not be null");
@@ -855,7 +855,7 @@ class MediaRouter2ServiceImpl {
        }
    }

    @Nullable
    @NonNull
    public Map<String, List<SuggestedDeviceInfo>> getDeviceSuggestionsWithManager(
            @NonNull IMediaRouter2Manager manager) {
        Objects.requireNonNull(manager, "manager must not be null");
@@ -1693,7 +1693,7 @@ class MediaRouter2ServiceImpl {
    }

    @GuardedBy("mLock")
    @Nullable
    @NonNull
    private Map<String, List<SuggestedDeviceInfo>> getDeviceSuggestionsWithRouter2Locked(
            @NonNull IMediaRouter2 router) {
        final IBinder binder = router.asBinder();
@@ -2143,7 +2143,7 @@ class MediaRouter2ServiceImpl {
    }

    @GuardedBy("mLock")
    @Nullable
    @NonNull
    private Map<String, List<SuggestedDeviceInfo>> getDeviceSuggestionsWithManagerLocked(
            @NonNull IMediaRouter2Manager manager) {
        final IBinder binder = manager.asBinder();
@@ -2316,10 +2316,11 @@ class MediaRouter2ServiceImpl {
        }

        // @GuardedBy("mLock")
        @Nullable
        @NonNull
        public Map<String, List<SuggestedDeviceInfo>> getDeviceSuggestionsLocked(
                String packageName) {
            return mDeviceSuggestions.get(packageName);
            return mDeviceSuggestions.getOrDefault(
                    packageName, new HashMap<String, List<SuggestedDeviceInfo>>());
        }

        public void dump(@NonNull PrintWriter pw, @NonNull String prefix) {
+2 −2
Original line number Diff line number Diff line
@@ -535,7 +535,7 @@ public final class MediaRouterService extends IMediaRouterService.Stub

    // Binder call
    @Override
    @Nullable
    @NonNull
    public Map<String, List<SuggestedDeviceInfo>> getDeviceSuggestionsWithRouter2(
            IMediaRouter2 router) {
        return mService2.getDeviceSuggestionsWithRouter2(router);
@@ -693,7 +693,7 @@ public final class MediaRouterService extends IMediaRouterService.Stub

    // Binder call
    @Override
    @Nullable
    @NonNull
    public Map<String, List<SuggestedDeviceInfo>> getDeviceSuggestionsWithManager(
            IMediaRouter2Manager manager) {
        return mService2.getDeviceSuggestionsWithManager(manager);