Merge "Move extensions to beta." into androidx-main
diff --git a/libraryversions.toml b/libraryversions.toml
index a22c7d0..550f270 100644
--- a/libraryversions.toml
+++ b/libraryversions.toml
@@ -155,7 +155,7 @@
WEAR_WATCHFACE = "1.2.0-alpha09"
WEBKIT = "1.8.0-alpha01"
WINDOW = "1.2.0-alpha03"
-WINDOW_EXTENSIONS = "1.2.0-alpha01"
+WINDOW_EXTENSIONS = "1.2.0-beta01"
WINDOW_EXTENSIONS_CORE = "1.1.0-alpha01"
WINDOW_SIDECAR = "1.0.0-rc01"
WORK = "2.9.0-alpha01"
diff --git a/window/extensions/extensions/api/1.2.0-beta01.txt b/window/extensions/extensions/api/1.2.0-beta01.txt
new file mode 100644
index 0000000..22888f8
--- /dev/null
+++ b/window/extensions/extensions/api/1.2.0-beta01.txt
@@ -0,0 +1,232 @@
+// Signature format: 4.0
+package androidx.window.extensions {
+
+ public interface WindowExtensions {
+ method public default androidx.window.extensions.embedding.ActivityEmbeddingComponent? getActivityEmbeddingComponent();
+ method public default int getVendorApiLevel();
+ method public default androidx.window.extensions.area.WindowAreaComponent? getWindowAreaComponent();
+ method public androidx.window.extensions.layout.WindowLayoutComponent? getWindowLayoutComponent();
+ }
+
+ public class WindowExtensionsProvider {
+ method public static androidx.window.extensions.WindowExtensions getWindowExtensions();
+ }
+
+}
+
+package androidx.window.extensions.area {
+
+ public interface ExtensionWindowAreaPresentation {
+ method public android.content.Context getPresentationContext();
+ method public void setPresentationView(android.view.View);
+ }
+
+ public interface ExtensionWindowAreaStatus {
+ method public android.util.DisplayMetrics getWindowAreaDisplayMetrics();
+ method public int getWindowAreaStatus();
+ }
+
+ public interface WindowAreaComponent {
+ method public default void addRearDisplayPresentationStatusListener(androidx.window.extensions.core.util.function.Consumer<androidx.window.extensions.area.ExtensionWindowAreaStatus!>);
+ method public void addRearDisplayStatusListener(androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
+ method public default void endRearDisplayPresentationSession();
+ method public void endRearDisplaySession();
+ method public default android.util.DisplayMetrics getRearDisplayMetrics();
+ method public default androidx.window.extensions.area.ExtensionWindowAreaPresentation? getRearDisplayPresentation();
+ method public default void removeRearDisplayPresentationStatusListener(androidx.window.extensions.core.util.function.Consumer<androidx.window.extensions.area.ExtensionWindowAreaStatus!>);
+ method public void removeRearDisplayStatusListener(androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
+ method public default void startRearDisplayPresentationSession(android.app.Activity, androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
+ method public void startRearDisplaySession(android.app.Activity, androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
+ field public static final int SESSION_STATE_ACTIVE = 1; // 0x1
+ field public static final int SESSION_STATE_CONTENT_VISIBLE = 2; // 0x2
+ field public static final int SESSION_STATE_INACTIVE = 0; // 0x0
+ field public static final int STATUS_ACTIVE = 3; // 0x3
+ field public static final int STATUS_AVAILABLE = 2; // 0x2
+ field public static final int STATUS_UNAVAILABLE = 1; // 0x1
+ field public static final int STATUS_UNSUPPORTED = 0; // 0x0
+ }
+
+}
+
+package androidx.window.extensions.embedding {
+
+ public interface ActivityEmbeddingComponent {
+ method public void clearSplitAttributesCalculator();
+ method public void clearSplitInfoCallback();
+ method public default void finishActivityStacks(java.util.Set<android.os.IBinder!>);
+ method public default void invalidateTopVisibleSplitAttributes();
+ method public boolean isActivityEmbedded(android.app.Activity);
+ method public void setEmbeddingRules(java.util.Set<androidx.window.extensions.embedding.EmbeddingRule!>);
+ method public default android.app.ActivityOptions setLaunchingActivityStack(android.app.ActivityOptions, android.os.IBinder);
+ method public void setSplitAttributesCalculator(androidx.window.extensions.core.util.function.Function<androidx.window.extensions.embedding.SplitAttributesCalculatorParams!,androidx.window.extensions.embedding.SplitAttributes!>);
+ method public default void setSplitInfoCallback(androidx.window.extensions.core.util.function.Consumer<java.util.List<androidx.window.extensions.embedding.SplitInfo!>!>);
+ method @Deprecated public void setSplitInfoCallback(java.util.function.Consumer<java.util.List<androidx.window.extensions.embedding.SplitInfo!>!>);
+ method public default void updateSplitAttributes(android.os.IBinder, androidx.window.extensions.embedding.SplitAttributes);
+ }
+
+ public class ActivityRule extends androidx.window.extensions.embedding.EmbeddingRule {
+ method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesActivity(android.app.Activity);
+ method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesIntent(android.content.Intent);
+ method public boolean shouldAlwaysExpand();
+ }
+
+ public static final class ActivityRule.Builder {
+ ctor public ActivityRule.Builder(androidx.window.extensions.core.util.function.Predicate<android.app.Activity!>, androidx.window.extensions.core.util.function.Predicate<android.content.Intent!>);
+ ctor @Deprecated @RequiresApi(android.os.Build.VERSION_CODES.N) public ActivityRule.Builder(java.util.function.Predicate<android.app.Activity!>, java.util.function.Predicate<android.content.Intent!>);
+ method public androidx.window.extensions.embedding.ActivityRule build();
+ method public androidx.window.extensions.embedding.ActivityRule.Builder setShouldAlwaysExpand(boolean);
+ method public androidx.window.extensions.embedding.ActivityRule.Builder setTag(String);
+ }
+
+ public class ActivityStack {
+ method public java.util.List<android.app.Activity!> getActivities();
+ method public boolean isEmpty();
+ }
+
+ public abstract class EmbeddingRule {
+ method public String? getTag();
+ }
+
+ public class SplitAttributes {
+ method public int getLayoutDirection();
+ method public androidx.window.extensions.embedding.SplitAttributes.SplitType getSplitType();
+ }
+
+ public static final class SplitAttributes.Builder {
+ ctor public SplitAttributes.Builder();
+ method public androidx.window.extensions.embedding.SplitAttributes build();
+ method public androidx.window.extensions.embedding.SplitAttributes.Builder setLayoutDirection(int);
+ method public androidx.window.extensions.embedding.SplitAttributes.Builder setSplitType(androidx.window.extensions.embedding.SplitAttributes.SplitType);
+ }
+
+ public static final class SplitAttributes.LayoutDirection {
+ field public static final int BOTTOM_TO_TOP = 5; // 0x5
+ field public static final int LEFT_TO_RIGHT = 0; // 0x0
+ field public static final int LOCALE = 3; // 0x3
+ field public static final int RIGHT_TO_LEFT = 1; // 0x1
+ field public static final int TOP_TO_BOTTOM = 4; // 0x4
+ }
+
+ public static class SplitAttributes.SplitType {
+ }
+
+ public static final class SplitAttributes.SplitType.ExpandContainersSplitType extends androidx.window.extensions.embedding.SplitAttributes.SplitType {
+ ctor public SplitAttributes.SplitType.ExpandContainersSplitType();
+ }
+
+ public static final class SplitAttributes.SplitType.HingeSplitType extends androidx.window.extensions.embedding.SplitAttributes.SplitType {
+ ctor public SplitAttributes.SplitType.HingeSplitType(androidx.window.extensions.embedding.SplitAttributes.SplitType);
+ method public androidx.window.extensions.embedding.SplitAttributes.SplitType getFallbackSplitType();
+ }
+
+ public static final class SplitAttributes.SplitType.RatioSplitType extends androidx.window.extensions.embedding.SplitAttributes.SplitType {
+ ctor public SplitAttributes.SplitType.RatioSplitType(@FloatRange(from=0.0, to=1.0, fromInclusive=false, toInclusive=false) float);
+ method @FloatRange(from=0.0, to=1.0, fromInclusive=false, toInclusive=false) public float getRatio();
+ method public static androidx.window.extensions.embedding.SplitAttributes.SplitType.RatioSplitType splitEqually();
+ }
+
+ public class SplitAttributesCalculatorParams {
+ method public boolean areDefaultConstraintsSatisfied();
+ method public androidx.window.extensions.embedding.SplitAttributes getDefaultSplitAttributes();
+ method public android.content.res.Configuration getParentConfiguration();
+ method public androidx.window.extensions.layout.WindowLayoutInfo getParentWindowLayoutInfo();
+ method public android.view.WindowMetrics getParentWindowMetrics();
+ method public String? getSplitRuleTag();
+ }
+
+ public class SplitInfo {
+ method public androidx.window.extensions.embedding.ActivityStack getPrimaryActivityStack();
+ method public androidx.window.extensions.embedding.ActivityStack getSecondaryActivityStack();
+ method public androidx.window.extensions.embedding.SplitAttributes getSplitAttributes();
+ method @Deprecated public float getSplitRatio();
+ method public android.os.IBinder getToken();
+ }
+
+ public class SplitPairRule extends androidx.window.extensions.embedding.SplitRule {
+ method public int getFinishPrimaryWithSecondary();
+ method public int getFinishSecondaryWithPrimary();
+ method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesActivityIntentPair(android.app.Activity, android.content.Intent);
+ method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesActivityPair(android.app.Activity, android.app.Activity);
+ method public boolean shouldClearTop();
+ }
+
+ public static final class SplitPairRule.Builder {
+ ctor public SplitPairRule.Builder(androidx.window.extensions.core.util.function.Predicate<android.util.Pair<android.app.Activity!,android.app.Activity!>!>, androidx.window.extensions.core.util.function.Predicate<android.util.Pair<android.app.Activity!,android.content.Intent!>!>, androidx.window.extensions.core.util.function.Predicate<android.view.WindowMetrics!>);
+ ctor @Deprecated @RequiresApi(android.os.Build.VERSION_CODES.N) public SplitPairRule.Builder(java.util.function.Predicate<android.util.Pair<android.app.Activity!,android.app.Activity!>!>, java.util.function.Predicate<android.util.Pair<android.app.Activity!,android.content.Intent!>!>, java.util.function.Predicate<android.view.WindowMetrics!>);
+ method public androidx.window.extensions.embedding.SplitPairRule build();
+ method public androidx.window.extensions.embedding.SplitPairRule.Builder setDefaultSplitAttributes(androidx.window.extensions.embedding.SplitAttributes);
+ method public androidx.window.extensions.embedding.SplitPairRule.Builder setFinishPrimaryWithSecondary(int);
+ method public androidx.window.extensions.embedding.SplitPairRule.Builder setFinishSecondaryWithPrimary(int);
+ method @Deprecated public androidx.window.extensions.embedding.SplitPairRule.Builder setLayoutDirection(int);
+ method public androidx.window.extensions.embedding.SplitPairRule.Builder setShouldClearTop(boolean);
+ method @Deprecated public androidx.window.extensions.embedding.SplitPairRule.Builder setShouldFinishPrimaryWithSecondary(boolean);
+ method @Deprecated public androidx.window.extensions.embedding.SplitPairRule.Builder setShouldFinishSecondaryWithPrimary(boolean);
+ method @Deprecated public androidx.window.extensions.embedding.SplitPairRule.Builder setSplitRatio(@FloatRange(from=0.0, to=1.0) float);
+ method public androidx.window.extensions.embedding.SplitPairRule.Builder setTag(String);
+ }
+
+ public class SplitPlaceholderRule extends androidx.window.extensions.embedding.SplitRule {
+ method public int getFinishPrimaryWithPlaceholder();
+ method @Deprecated public int getFinishPrimaryWithSecondary();
+ method public android.content.Intent getPlaceholderIntent();
+ method public boolean isSticky();
+ method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesActivity(android.app.Activity);
+ method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesIntent(android.content.Intent);
+ }
+
+ public static final class SplitPlaceholderRule.Builder {
+ ctor public SplitPlaceholderRule.Builder(android.content.Intent, androidx.window.extensions.core.util.function.Predicate<android.app.Activity!>, androidx.window.extensions.core.util.function.Predicate<android.content.Intent!>, androidx.window.extensions.core.util.function.Predicate<android.view.WindowMetrics!>);
+ ctor @Deprecated @RequiresApi(android.os.Build.VERSION_CODES.N) public SplitPlaceholderRule.Builder(android.content.Intent, java.util.function.Predicate<android.app.Activity!>, java.util.function.Predicate<android.content.Intent!>, java.util.function.Predicate<android.view.WindowMetrics!>);
+ method public androidx.window.extensions.embedding.SplitPlaceholderRule build();
+ method public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setDefaultSplitAttributes(androidx.window.extensions.embedding.SplitAttributes);
+ method public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setFinishPrimaryWithPlaceholder(int);
+ method @Deprecated public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setFinishPrimaryWithSecondary(int);
+ method @Deprecated public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setLayoutDirection(int);
+ method @Deprecated public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setSplitRatio(@FloatRange(from=0.0, to=1.0) float);
+ method public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setSticky(boolean);
+ method public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setTag(String);
+ }
+
+ public abstract class SplitRule extends androidx.window.extensions.embedding.EmbeddingRule {
+ method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean checkParentMetrics(android.view.WindowMetrics);
+ method public androidx.window.extensions.embedding.SplitAttributes getDefaultSplitAttributes();
+ method @Deprecated public int getLayoutDirection();
+ method @Deprecated public float getSplitRatio();
+ field public static final int FINISH_ADJACENT = 2; // 0x2
+ field public static final int FINISH_ALWAYS = 1; // 0x1
+ field public static final int FINISH_NEVER = 0; // 0x0
+ }
+
+}
+
+package androidx.window.extensions.layout {
+
+ public interface DisplayFeature {
+ method public android.graphics.Rect getBounds();
+ }
+
+ public class FoldingFeature implements androidx.window.extensions.layout.DisplayFeature {
+ ctor public FoldingFeature(android.graphics.Rect, int, int);
+ method public android.graphics.Rect getBounds();
+ method public int getState();
+ method public int getType();
+ field public static final int STATE_FLAT = 1; // 0x1
+ field public static final int STATE_HALF_OPENED = 2; // 0x2
+ field public static final int TYPE_FOLD = 1; // 0x1
+ field public static final int TYPE_HINGE = 2; // 0x2
+ }
+
+ public interface WindowLayoutComponent {
+ method @Deprecated public void addWindowLayoutInfoListener(android.app.Activity, java.util.function.Consumer<androidx.window.extensions.layout.WindowLayoutInfo!>);
+ method public default void addWindowLayoutInfoListener(@UiContext android.content.Context, androidx.window.extensions.core.util.function.Consumer<androidx.window.extensions.layout.WindowLayoutInfo!>);
+ method public default void removeWindowLayoutInfoListener(androidx.window.extensions.core.util.function.Consumer<androidx.window.extensions.layout.WindowLayoutInfo!>);
+ method @Deprecated public void removeWindowLayoutInfoListener(java.util.function.Consumer<androidx.window.extensions.layout.WindowLayoutInfo!>);
+ }
+
+ public class WindowLayoutInfo {
+ ctor public WindowLayoutInfo(java.util.List<androidx.window.extensions.layout.DisplayFeature!>);
+ method public java.util.List<androidx.window.extensions.layout.DisplayFeature!> getDisplayFeatures();
+ }
+
+}
+
diff --git a/window/extensions/extensions/api/res-1.2.0-beta01.txt b/window/extensions/extensions/api/res-1.2.0-beta01.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/window/extensions/extensions/api/res-1.2.0-beta01.txt
diff --git a/window/extensions/extensions/api/restricted_1.2.0-beta01.txt b/window/extensions/extensions/api/restricted_1.2.0-beta01.txt
new file mode 100644
index 0000000..22888f8
--- /dev/null
+++ b/window/extensions/extensions/api/restricted_1.2.0-beta01.txt
@@ -0,0 +1,232 @@
+// Signature format: 4.0
+package androidx.window.extensions {
+
+ public interface WindowExtensions {
+ method public default androidx.window.extensions.embedding.ActivityEmbeddingComponent? getActivityEmbeddingComponent();
+ method public default int getVendorApiLevel();
+ method public default androidx.window.extensions.area.WindowAreaComponent? getWindowAreaComponent();
+ method public androidx.window.extensions.layout.WindowLayoutComponent? getWindowLayoutComponent();
+ }
+
+ public class WindowExtensionsProvider {
+ method public static androidx.window.extensions.WindowExtensions getWindowExtensions();
+ }
+
+}
+
+package androidx.window.extensions.area {
+
+ public interface ExtensionWindowAreaPresentation {
+ method public android.content.Context getPresentationContext();
+ method public void setPresentationView(android.view.View);
+ }
+
+ public interface ExtensionWindowAreaStatus {
+ method public android.util.DisplayMetrics getWindowAreaDisplayMetrics();
+ method public int getWindowAreaStatus();
+ }
+
+ public interface WindowAreaComponent {
+ method public default void addRearDisplayPresentationStatusListener(androidx.window.extensions.core.util.function.Consumer<androidx.window.extensions.area.ExtensionWindowAreaStatus!>);
+ method public void addRearDisplayStatusListener(androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
+ method public default void endRearDisplayPresentationSession();
+ method public void endRearDisplaySession();
+ method public default android.util.DisplayMetrics getRearDisplayMetrics();
+ method public default androidx.window.extensions.area.ExtensionWindowAreaPresentation? getRearDisplayPresentation();
+ method public default void removeRearDisplayPresentationStatusListener(androidx.window.extensions.core.util.function.Consumer<androidx.window.extensions.area.ExtensionWindowAreaStatus!>);
+ method public void removeRearDisplayStatusListener(androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
+ method public default void startRearDisplayPresentationSession(android.app.Activity, androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
+ method public void startRearDisplaySession(android.app.Activity, androidx.window.extensions.core.util.function.Consumer<java.lang.Integer!>);
+ field public static final int SESSION_STATE_ACTIVE = 1; // 0x1
+ field public static final int SESSION_STATE_CONTENT_VISIBLE = 2; // 0x2
+ field public static final int SESSION_STATE_INACTIVE = 0; // 0x0
+ field public static final int STATUS_ACTIVE = 3; // 0x3
+ field public static final int STATUS_AVAILABLE = 2; // 0x2
+ field public static final int STATUS_UNAVAILABLE = 1; // 0x1
+ field public static final int STATUS_UNSUPPORTED = 0; // 0x0
+ }
+
+}
+
+package androidx.window.extensions.embedding {
+
+ public interface ActivityEmbeddingComponent {
+ method public void clearSplitAttributesCalculator();
+ method public void clearSplitInfoCallback();
+ method public default void finishActivityStacks(java.util.Set<android.os.IBinder!>);
+ method public default void invalidateTopVisibleSplitAttributes();
+ method public boolean isActivityEmbedded(android.app.Activity);
+ method public void setEmbeddingRules(java.util.Set<androidx.window.extensions.embedding.EmbeddingRule!>);
+ method public default android.app.ActivityOptions setLaunchingActivityStack(android.app.ActivityOptions, android.os.IBinder);
+ method public void setSplitAttributesCalculator(androidx.window.extensions.core.util.function.Function<androidx.window.extensions.embedding.SplitAttributesCalculatorParams!,androidx.window.extensions.embedding.SplitAttributes!>);
+ method public default void setSplitInfoCallback(androidx.window.extensions.core.util.function.Consumer<java.util.List<androidx.window.extensions.embedding.SplitInfo!>!>);
+ method @Deprecated public void setSplitInfoCallback(java.util.function.Consumer<java.util.List<androidx.window.extensions.embedding.SplitInfo!>!>);
+ method public default void updateSplitAttributes(android.os.IBinder, androidx.window.extensions.embedding.SplitAttributes);
+ }
+
+ public class ActivityRule extends androidx.window.extensions.embedding.EmbeddingRule {
+ method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesActivity(android.app.Activity);
+ method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesIntent(android.content.Intent);
+ method public boolean shouldAlwaysExpand();
+ }
+
+ public static final class ActivityRule.Builder {
+ ctor public ActivityRule.Builder(androidx.window.extensions.core.util.function.Predicate<android.app.Activity!>, androidx.window.extensions.core.util.function.Predicate<android.content.Intent!>);
+ ctor @Deprecated @RequiresApi(android.os.Build.VERSION_CODES.N) public ActivityRule.Builder(java.util.function.Predicate<android.app.Activity!>, java.util.function.Predicate<android.content.Intent!>);
+ method public androidx.window.extensions.embedding.ActivityRule build();
+ method public androidx.window.extensions.embedding.ActivityRule.Builder setShouldAlwaysExpand(boolean);
+ method public androidx.window.extensions.embedding.ActivityRule.Builder setTag(String);
+ }
+
+ public class ActivityStack {
+ method public java.util.List<android.app.Activity!> getActivities();
+ method public boolean isEmpty();
+ }
+
+ public abstract class EmbeddingRule {
+ method public String? getTag();
+ }
+
+ public class SplitAttributes {
+ method public int getLayoutDirection();
+ method public androidx.window.extensions.embedding.SplitAttributes.SplitType getSplitType();
+ }
+
+ public static final class SplitAttributes.Builder {
+ ctor public SplitAttributes.Builder();
+ method public androidx.window.extensions.embedding.SplitAttributes build();
+ method public androidx.window.extensions.embedding.SplitAttributes.Builder setLayoutDirection(int);
+ method public androidx.window.extensions.embedding.SplitAttributes.Builder setSplitType(androidx.window.extensions.embedding.SplitAttributes.SplitType);
+ }
+
+ public static final class SplitAttributes.LayoutDirection {
+ field public static final int BOTTOM_TO_TOP = 5; // 0x5
+ field public static final int LEFT_TO_RIGHT = 0; // 0x0
+ field public static final int LOCALE = 3; // 0x3
+ field public static final int RIGHT_TO_LEFT = 1; // 0x1
+ field public static final int TOP_TO_BOTTOM = 4; // 0x4
+ }
+
+ public static class SplitAttributes.SplitType {
+ }
+
+ public static final class SplitAttributes.SplitType.ExpandContainersSplitType extends androidx.window.extensions.embedding.SplitAttributes.SplitType {
+ ctor public SplitAttributes.SplitType.ExpandContainersSplitType();
+ }
+
+ public static final class SplitAttributes.SplitType.HingeSplitType extends androidx.window.extensions.embedding.SplitAttributes.SplitType {
+ ctor public SplitAttributes.SplitType.HingeSplitType(androidx.window.extensions.embedding.SplitAttributes.SplitType);
+ method public androidx.window.extensions.embedding.SplitAttributes.SplitType getFallbackSplitType();
+ }
+
+ public static final class SplitAttributes.SplitType.RatioSplitType extends androidx.window.extensions.embedding.SplitAttributes.SplitType {
+ ctor public SplitAttributes.SplitType.RatioSplitType(@FloatRange(from=0.0, to=1.0, fromInclusive=false, toInclusive=false) float);
+ method @FloatRange(from=0.0, to=1.0, fromInclusive=false, toInclusive=false) public float getRatio();
+ method public static androidx.window.extensions.embedding.SplitAttributes.SplitType.RatioSplitType splitEqually();
+ }
+
+ public class SplitAttributesCalculatorParams {
+ method public boolean areDefaultConstraintsSatisfied();
+ method public androidx.window.extensions.embedding.SplitAttributes getDefaultSplitAttributes();
+ method public android.content.res.Configuration getParentConfiguration();
+ method public androidx.window.extensions.layout.WindowLayoutInfo getParentWindowLayoutInfo();
+ method public android.view.WindowMetrics getParentWindowMetrics();
+ method public String? getSplitRuleTag();
+ }
+
+ public class SplitInfo {
+ method public androidx.window.extensions.embedding.ActivityStack getPrimaryActivityStack();
+ method public androidx.window.extensions.embedding.ActivityStack getSecondaryActivityStack();
+ method public androidx.window.extensions.embedding.SplitAttributes getSplitAttributes();
+ method @Deprecated public float getSplitRatio();
+ method public android.os.IBinder getToken();
+ }
+
+ public class SplitPairRule extends androidx.window.extensions.embedding.SplitRule {
+ method public int getFinishPrimaryWithSecondary();
+ method public int getFinishSecondaryWithPrimary();
+ method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesActivityIntentPair(android.app.Activity, android.content.Intent);
+ method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesActivityPair(android.app.Activity, android.app.Activity);
+ method public boolean shouldClearTop();
+ }
+
+ public static final class SplitPairRule.Builder {
+ ctor public SplitPairRule.Builder(androidx.window.extensions.core.util.function.Predicate<android.util.Pair<android.app.Activity!,android.app.Activity!>!>, androidx.window.extensions.core.util.function.Predicate<android.util.Pair<android.app.Activity!,android.content.Intent!>!>, androidx.window.extensions.core.util.function.Predicate<android.view.WindowMetrics!>);
+ ctor @Deprecated @RequiresApi(android.os.Build.VERSION_CODES.N) public SplitPairRule.Builder(java.util.function.Predicate<android.util.Pair<android.app.Activity!,android.app.Activity!>!>, java.util.function.Predicate<android.util.Pair<android.app.Activity!,android.content.Intent!>!>, java.util.function.Predicate<android.view.WindowMetrics!>);
+ method public androidx.window.extensions.embedding.SplitPairRule build();
+ method public androidx.window.extensions.embedding.SplitPairRule.Builder setDefaultSplitAttributes(androidx.window.extensions.embedding.SplitAttributes);
+ method public androidx.window.extensions.embedding.SplitPairRule.Builder setFinishPrimaryWithSecondary(int);
+ method public androidx.window.extensions.embedding.SplitPairRule.Builder setFinishSecondaryWithPrimary(int);
+ method @Deprecated public androidx.window.extensions.embedding.SplitPairRule.Builder setLayoutDirection(int);
+ method public androidx.window.extensions.embedding.SplitPairRule.Builder setShouldClearTop(boolean);
+ method @Deprecated public androidx.window.extensions.embedding.SplitPairRule.Builder setShouldFinishPrimaryWithSecondary(boolean);
+ method @Deprecated public androidx.window.extensions.embedding.SplitPairRule.Builder setShouldFinishSecondaryWithPrimary(boolean);
+ method @Deprecated public androidx.window.extensions.embedding.SplitPairRule.Builder setSplitRatio(@FloatRange(from=0.0, to=1.0) float);
+ method public androidx.window.extensions.embedding.SplitPairRule.Builder setTag(String);
+ }
+
+ public class SplitPlaceholderRule extends androidx.window.extensions.embedding.SplitRule {
+ method public int getFinishPrimaryWithPlaceholder();
+ method @Deprecated public int getFinishPrimaryWithSecondary();
+ method public android.content.Intent getPlaceholderIntent();
+ method public boolean isSticky();
+ method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesActivity(android.app.Activity);
+ method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean matchesIntent(android.content.Intent);
+ }
+
+ public static final class SplitPlaceholderRule.Builder {
+ ctor public SplitPlaceholderRule.Builder(android.content.Intent, androidx.window.extensions.core.util.function.Predicate<android.app.Activity!>, androidx.window.extensions.core.util.function.Predicate<android.content.Intent!>, androidx.window.extensions.core.util.function.Predicate<android.view.WindowMetrics!>);
+ ctor @Deprecated @RequiresApi(android.os.Build.VERSION_CODES.N) public SplitPlaceholderRule.Builder(android.content.Intent, java.util.function.Predicate<android.app.Activity!>, java.util.function.Predicate<android.content.Intent!>, java.util.function.Predicate<android.view.WindowMetrics!>);
+ method public androidx.window.extensions.embedding.SplitPlaceholderRule build();
+ method public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setDefaultSplitAttributes(androidx.window.extensions.embedding.SplitAttributes);
+ method public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setFinishPrimaryWithPlaceholder(int);
+ method @Deprecated public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setFinishPrimaryWithSecondary(int);
+ method @Deprecated public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setLayoutDirection(int);
+ method @Deprecated public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setSplitRatio(@FloatRange(from=0.0, to=1.0) float);
+ method public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setSticky(boolean);
+ method public androidx.window.extensions.embedding.SplitPlaceholderRule.Builder setTag(String);
+ }
+
+ public abstract class SplitRule extends androidx.window.extensions.embedding.EmbeddingRule {
+ method @RequiresApi(api=android.os.Build.VERSION_CODES.N) public boolean checkParentMetrics(android.view.WindowMetrics);
+ method public androidx.window.extensions.embedding.SplitAttributes getDefaultSplitAttributes();
+ method @Deprecated public int getLayoutDirection();
+ method @Deprecated public float getSplitRatio();
+ field public static final int FINISH_ADJACENT = 2; // 0x2
+ field public static final int FINISH_ALWAYS = 1; // 0x1
+ field public static final int FINISH_NEVER = 0; // 0x0
+ }
+
+}
+
+package androidx.window.extensions.layout {
+
+ public interface DisplayFeature {
+ method public android.graphics.Rect getBounds();
+ }
+
+ public class FoldingFeature implements androidx.window.extensions.layout.DisplayFeature {
+ ctor public FoldingFeature(android.graphics.Rect, int, int);
+ method public android.graphics.Rect getBounds();
+ method public int getState();
+ method public int getType();
+ field public static final int STATE_FLAT = 1; // 0x1
+ field public static final int STATE_HALF_OPENED = 2; // 0x2
+ field public static final int TYPE_FOLD = 1; // 0x1
+ field public static final int TYPE_HINGE = 2; // 0x2
+ }
+
+ public interface WindowLayoutComponent {
+ method @Deprecated public void addWindowLayoutInfoListener(android.app.Activity, java.util.function.Consumer<androidx.window.extensions.layout.WindowLayoutInfo!>);
+ method public default void addWindowLayoutInfoListener(@UiContext android.content.Context, androidx.window.extensions.core.util.function.Consumer<androidx.window.extensions.layout.WindowLayoutInfo!>);
+ method public default void removeWindowLayoutInfoListener(androidx.window.extensions.core.util.function.Consumer<androidx.window.extensions.layout.WindowLayoutInfo!>);
+ method @Deprecated public void removeWindowLayoutInfoListener(java.util.function.Consumer<androidx.window.extensions.layout.WindowLayoutInfo!>);
+ }
+
+ public class WindowLayoutInfo {
+ ctor public WindowLayoutInfo(java.util.List<androidx.window.extensions.layout.DisplayFeature!>);
+ method public java.util.List<androidx.window.extensions.layout.DisplayFeature!> getDisplayFeatures();
+ }
+
+}
+