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

Commit 448577b8 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix Emulator not emitting folding features." into tm-dev am: b5576b61

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17354248

Change-Id: I479ea94e55f0102cabe42d8f9d44d463ca541652
parents 660d9809 b5576b61
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -236,7 +236,8 @@ public final class CommonFoldingFeature {
    }

    private static void assertValidState(@Nullable Integer state) {
        if (state != null && state != COMMON_STATE_FLAT && state != COMMON_STATE_HALF_OPENED) {
        if (state != null && state != COMMON_STATE_FLAT
                && state != COMMON_STATE_HALF_OPENED && state != COMMON_STATE_UNKNOWN) {
            throw new IllegalArgumentException("Invalid state: " + state
                    + "must be either COMMON_STATE_FLAT or COMMON_STATE_HALF_OPENED");
        }
+17 −2
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package androidx.window.common;

import static androidx.window.common.CommonFoldingFeature.COMMON_STATE_FLAT;
import static androidx.window.common.CommonFoldingFeature.COMMON_STATE_HALF_OPENED;
import static androidx.window.common.CommonFoldingFeature.COMMON_STATE_UNKNOWN;
import static androidx.window.common.CommonFoldingFeature.parseListFromString;

@@ -42,7 +44,10 @@ import java.util.Optional;
public final class SettingsDisplayFeatureProducer
        extends BaseDataProducer<List<CommonFoldingFeature>> {
    private static final String DISPLAY_FEATURES = "display_features";
    private static final String DEVICE_POSTURE = "device_posture";

    private final Uri mDevicePostureUri =
            Settings.Global.getUriFor(DEVICE_POSTURE);
    private final Uri mDisplayFeaturesUri =
            Settings.Global.getUriFor(DISPLAY_FEATURES);

@@ -55,6 +60,15 @@ public final class SettingsDisplayFeatureProducer
        mObserver = new SettingsObserver();
    }

    private int getPosture() {
        int posture = Settings.Global.getInt(mResolver, DEVICE_POSTURE, COMMON_STATE_UNKNOWN);
        if (posture == COMMON_STATE_HALF_OPENED || posture == COMMON_STATE_FLAT) {
            return posture;
        } else {
            return COMMON_STATE_UNKNOWN;
        }
    }

    @Override
    @NonNull
    public Optional<List<CommonFoldingFeature>> getData() {
@@ -66,7 +80,7 @@ public final class SettingsDisplayFeatureProducer
        if (TextUtils.isEmpty(displayFeaturesString)) {
            return Optional.of(Collections.emptyList());
        }
        return Optional.of(parseListFromString(displayFeaturesString, COMMON_STATE_UNKNOWN));
        return Optional.of(parseListFromString(displayFeaturesString, getPosture()));
    }

    /**
@@ -80,6 +94,7 @@ public final class SettingsDisplayFeatureProducer
        mRegisteredObservers = true;
        mResolver.registerContentObserver(mDisplayFeaturesUri, false /* notifyForDescendants */,
                mObserver /* ContentObserver */);
        mResolver.registerContentObserver(mDevicePostureUri, false, mObserver);
    }

    /**
@@ -101,7 +116,7 @@ public final class SettingsDisplayFeatureProducer

        @Override
        public void onChange(boolean selfChange, Uri uri) {
            if (mDisplayFeaturesUri.equals(uri)) {
            if (mDisplayFeaturesUri.equals(uri) || mDevicePostureUri.equals(uri)) {
                notifyDataChanged();
            }
        }