Merge "Fix Emulator not emitting folding features." into tm-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
b5576b6110
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user