Merge "Refactor Function into Predicate." into main
diff --git a/services/foldables/devicestateprovider/src/com/android/server/policy/FoldableDeviceStateProvider.java b/services/foldables/devicestateprovider/src/com/android/server/policy/FoldableDeviceStateProvider.java
index d13b543..4c487a7 100644
--- a/services/foldables/devicestateprovider/src/com/android/server/policy/FoldableDeviceStateProvider.java
+++ b/services/foldables/devicestateprovider/src/com/android/server/policy/FoldableDeviceStateProvider.java
@@ -57,7 +57,7 @@
import java.util.Comparator;
import java.util.List;
import java.util.function.BooleanSupplier;
-import java.util.function.Function;
+import java.util.function.Predicate;
/**
* Device state provider for foldable devices.
@@ -93,6 +93,7 @@
private final Sensor mHingeAngleSensor;
private final DisplayManager mDisplayManager;
private final Sensor mHallSensor;
+ private static final Predicate<FoldableDeviceStateProvider> ALLOWED = p -> true;
@Nullable
@GuardedBy("mLock")
@@ -202,14 +203,12 @@
private void initialiseStateConditions(DeviceStateConfiguration configuration) {
mStateConditions.put(configuration.mDeviceState.getIdentifier(), () ->
- configuration.mActiveStatePredicate.apply(this));
+ configuration.mActiveStatePredicate.test(this));
}
private void initialiseStateAvailabilityConditions(DeviceStateConfiguration configuration) {
- if (configuration.mAvailabilityPredicate != null) {
mStateAvailabilityConditions.put(configuration.mDeviceState.getIdentifier(), () ->
- configuration.mAvailabilityPredicate.apply(this));
- }
+ configuration.mAvailabilityPredicate.test(this));
}
@Override
@@ -419,19 +418,20 @@
*/
public static class DeviceStateConfiguration {
private final DeviceState mDeviceState;
- private final Function<FoldableDeviceStateProvider, Boolean> mActiveStatePredicate;
- private final Function<FoldableDeviceStateProvider, Boolean> mAvailabilityPredicate;
+ private final Predicate<FoldableDeviceStateProvider> mActiveStatePredicate;
+ private final Predicate<FoldableDeviceStateProvider> mAvailabilityPredicate;
private DeviceStateConfiguration(
- DeviceState deviceState,
- Function<FoldableDeviceStateProvider, Boolean> predicate) {
- this(deviceState, predicate, null);
+ @NonNull DeviceState deviceState,
+ @NonNull Predicate<FoldableDeviceStateProvider> predicate) {
+ this(deviceState, predicate, ALLOWED);
}
private DeviceStateConfiguration(
- DeviceState deviceState,
- Function<FoldableDeviceStateProvider, Boolean> activeStatePredicate,
- Function<FoldableDeviceStateProvider, Boolean> availabilityPredicate) {
+ @NonNull DeviceState deviceState,
+ @NonNull Predicate<FoldableDeviceStateProvider> activeStatePredicate,
+ @NonNull Predicate<FoldableDeviceStateProvider> availabilityPredicate) {
+
mDeviceState = deviceState;
mActiveStatePredicate = activeStatePredicate;
mAvailabilityPredicate = availabilityPredicate;
@@ -441,19 +441,19 @@
@IntRange(from = MINIMUM_DEVICE_STATE, to = MAXIMUM_DEVICE_STATE) int identifier,
@NonNull String name,
@DeviceState.DeviceStateFlags int flags,
- Function<FoldableDeviceStateProvider, Boolean> predicate
+ @NonNull Predicate<FoldableDeviceStateProvider> activeStatePredicate
) {
return new DeviceStateConfiguration(new DeviceState(identifier, name, flags),
- predicate);
+ activeStatePredicate);
}
public static DeviceStateConfiguration createConfig(
@IntRange(from = MINIMUM_DEVICE_STATE, to = MAXIMUM_DEVICE_STATE) int identifier,
@NonNull String name,
- Function<FoldableDeviceStateProvider, Boolean> predicate
+ @NonNull Predicate<FoldableDeviceStateProvider> activeStatePredicate
) {
return new DeviceStateConfiguration(new DeviceState(identifier, name, /* flags= */ 0),
- predicate);
+ activeStatePredicate);
}
/** Create a configuration with availability predicate **/
@@ -461,11 +461,11 @@
@IntRange(from = MINIMUM_DEVICE_STATE, to = MAXIMUM_DEVICE_STATE) int identifier,
@NonNull String name,
@DeviceState.DeviceStateFlags int flags,
- Function<FoldableDeviceStateProvider, Boolean> predicate,
- Function<FoldableDeviceStateProvider, Boolean> availabilityPredicate
+ @NonNull Predicate<FoldableDeviceStateProvider> activeStatePredicate,
+ @NonNull Predicate<FoldableDeviceStateProvider> availabilityPredicate
) {
return new DeviceStateConfiguration(new DeviceState(identifier, name, flags),
- predicate, availabilityPredicate);
+ activeStatePredicate, availabilityPredicate);
}
/**
diff --git a/services/foldables/devicestateprovider/src/com/android/server/policy/TentModeDeviceStatePolicy.java b/services/foldables/devicestateprovider/src/com/android/server/policy/TentModeDeviceStatePolicy.java
index ddac88a..5968b63 100644
--- a/services/foldables/devicestateprovider/src/com/android/server/policy/TentModeDeviceStatePolicy.java
+++ b/services/foldables/devicestateprovider/src/com/android/server/policy/TentModeDeviceStatePolicy.java
@@ -36,6 +36,8 @@
import com.android.server.policy.feature.flags.FeatureFlags;
import com.android.server.policy.feature.flags.FeatureFlagsImpl;
+import java.util.function.Predicate;
+
/**
* Device state policy for a foldable device that supports tent mode: a mode when the device
* keeps the outer display on until reaching a certain hinge angle threshold.
@@ -58,6 +60,8 @@
private final DeviceStateProvider mProvider;
private final boolean mIsDualDisplayBlockingEnabled;
+ private static final Predicate<FoldableDeviceStateProvider> ALLOWED = p -> true;
+ private static final Predicate<FoldableDeviceStateProvider> NOT_ALLOWED = p -> false;
/**
* Creates TentModeDeviceStatePolicy
@@ -102,17 +106,17 @@
}),
createConfig(DEVICE_STATE_OPENED,
/* name= */ "OPENED",
- /* activeStatePredicate= */ (provider) -> true),
+ /* activeStatePredicate= */ ALLOWED),
createConfig(DEVICE_STATE_REAR_DISPLAY_STATE,
/* name= */ "REAR_DISPLAY_STATE",
/* flags= */ FLAG_EMULATED_ONLY,
- /* activeStatePredicate= */ (provider) -> false),
+ /* activeStatePredicate= */ NOT_ALLOWED),
createConfig(DEVICE_STATE_CONCURRENT_INNER_DEFAULT,
/* name= */ "CONCURRENT_INNER_DEFAULT",
/* flags= */ FLAG_EMULATED_ONLY | FLAG_CANCEL_WHEN_REQUESTER_NOT_ON_TOP
| FLAG_UNSUPPORTED_WHEN_THERMAL_STATUS_CRITICAL
| FLAG_UNSUPPORTED_WHEN_POWER_SAVE_MODE,
- /* activeStatePredicate= */ (provider) -> false,
+ /* activeStatePredicate= */ NOT_ALLOWED,
/* availabilityPredicate= */
provider -> !mIsDualDisplayBlockingEnabled
|| provider.hasNoConnectedExternalDisplay())