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

Commit a8d0f22b authored by Diego Vela's avatar Diego Vela
Browse files

Fix no features emitting.

Fix no features emitting by emitting if they are present.
Ignore emitting features if the current state is not valid.
No features are emitted on registration because consumers are not
registered to the source.
The following tests ar fixed
 ExtensionWindowLayoutComponent#testDisplayFeatures
 ExtensionWindowLayoutComponentTest#testSidecarHasSameDisplayFeatures
 ExtensionWindowLayoutComponentTest#testGetWindowLayoutInfo_windowRecreated_windowLayoutUpdates
 ExtensionWindowLayoutComponentTest#testGetWindowLayoutInfo_configChanged_windowLayoutUpdates
 ExtensionWindowLayoutComponentTest#testGetWindowLayoutInfo_windowRecreated_windowLayoutUpdates

Bug: 232354881
Test: atest CtsWindowManagerJetpackTestCases:ExtensionWindowLayoutComponent
Change-Id: Ia1f7631576bad0bbefdca0fea3308973c5514056
parent 76bf9ac1
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -199,7 +199,7 @@ public final class CommonFoldingFeature {
            throw new IllegalArgumentException(
                    "Display feature rectangle cannot have zero width and height simultaneously.");
        }
        this.mRect = rect;
        this.mRect = new Rect(rect);
    }

    /** Returns the type of the feature. */
@@ -217,7 +217,7 @@ public final class CommonFoldingFeature {
    /** Returns the bounds of the feature. */
    @NonNull
    public Rect getRect() {
        return mRect;
        return new Rect(mRect);
    }

    @Override
+3 −0
Original line number Diff line number Diff line
@@ -166,6 +166,9 @@ public final class DeviceStateManagerFoldingFeatureProducer
    }

    private void notifyFoldingFeatureChange(String displayFeaturesString) {
        if (!isCurrentStateValid()) {
            return;
        }
        if (TextUtils.isEmpty(displayFeaturesString)) {
            notifyDataChanged(new ArrayList<>());
        } else {
+5 −0
Original line number Diff line number Diff line
@@ -79,6 +79,11 @@ public class WindowLayoutComponentImpl implements WindowLayoutComponent {
     */
    public void addWindowLayoutInfoListener(@NonNull Activity activity,
            @NonNull Consumer<WindowLayoutInfo> consumer) {
        mFoldingFeatureProducer.getData((features) -> {
            // Get the WindowLayoutInfo from the activity and pass the value to the layoutConsumer.
            WindowLayoutInfo newWindowLayout = getWindowLayoutInfo(activity, features);
            consumer.accept(newWindowLayout);
        });
        mWindowLayoutChangeListeners.put(activity, consumer);
    }