Merge "Rename fullTracing.enable -> perfettoSdkTracing.enable" into androidx-main
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXComposeImplPlugin.kt b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXComposeImplPlugin.kt
index 1d045d0..8cb0a3d 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXComposeImplPlugin.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXComposeImplPlugin.kt
@@ -84,10 +84,6 @@
val isPublished = androidXExtension.shouldPublish()
it.lint {
- // Too many Kotlin features require synthetic accessors - we want to rely on R8
- // to
- // remove these accessors
- disable.add("SyntheticAccessor")
// These lint checks are normally a warning (or lower), but we ignore (in
// AndroidX)
// warnings in Lint, so we make it an error here so it will fail the build.
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
index 7cc787b..21fb3f1 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
@@ -61,6 +61,9 @@
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.Task
+import org.gradle.api.artifacts.CacheableRule
+import org.gradle.api.artifacts.ComponentMetadataContext
+import org.gradle.api.artifacts.ComponentMetadataRule
import org.gradle.api.artifacts.Configuration
import org.gradle.api.component.SoftwareComponentFactory
import org.gradle.api.file.DuplicatesStrategy
@@ -82,6 +85,7 @@
import org.gradle.kotlin.dsl.extra
import org.gradle.kotlin.dsl.findByType
import org.gradle.kotlin.dsl.getByType
+import org.gradle.kotlin.dsl.withModule
import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension
@@ -297,20 +301,16 @@
private fun Project.configureKotlinVersion() {
val kotlinVersionStringProvider = androidXConfiguration.kotlinBomVersion
- // Resolve Kotlin versions to the target version or higher.
+ // Resolve unspecified Kotlin versions to the target version.
configurations.all { configuration ->
configuration.resolutionStrategy { strategy ->
strategy.eachDependency { details ->
if (details.requested.group == "org.jetbrains.kotlin") {
- val requestedVersion =
- if (details.requested.version.isNullOrEmpty()) {
- null
- } else {
- Version(details.requested.version!!)
- }
- val bomVersion = kotlinVersionStringProvider.get()
- if (requestedVersion == null || requestedVersion < Version(bomVersion)) {
- details.useVersion(bomVersion)
+ if (
+ details.requested.group == "org.jetbrains.kotlin" &&
+ details.requested.version == null
+ ) {
+ details.useVersion(kotlinVersionStringProvider.get())
}
}
}
@@ -335,6 +335,35 @@
kotlinExtension.coreLibrariesVersion = kotlinVersionStringProvider.get()
}
}
+
+ // Resolve classpath conflicts caused by kotlin-stdlib-jdk7 and -jdk8 artifacts by amending
+ // the kotlin-stdlib artifact metadata to add same-version constraints.
+ project.dependencies {
+ components { componentMetadata ->
+ componentMetadata.withModule<KotlinStdlibDependenciesRule>(
+ "org.jetbrains.kotlin:kotlin-stdlib"
+ )
+ }
+ }
+ }
+
+ @CacheableRule
+ internal abstract class KotlinStdlibDependenciesRule : ComponentMetadataRule {
+ override fun execute(context: ComponentMetadataContext) {
+ val module = context.details.id
+ val version = module.version
+ context.details.allVariants { variantMetadata ->
+ variantMetadata.withDependencyConstraints { constraintsMetadata ->
+ val reason = "${module.name} is in atomic group ${module.group}"
+ constraintsMetadata.add("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$version") {
+ it.because(reason)
+ }
+ constraintsMetadata.add("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$version") {
+ it.because(reason)
+ }
+ }
+ }
+ }
}
private fun configureWithKotlinPlugin(
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/LintConfiguration.kt b/buildSrc/private/src/main/kotlin/androidx/build/LintConfiguration.kt
index 2552af0..28200ee 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/LintConfiguration.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/LintConfiguration.kt
@@ -397,15 +397,9 @@
fatal.add("LambdaLast")
fatal.add("UnknownNullness")
- // Only override if not set explicitly.
- // Some Kotlin projects may wish to disable this.
- if (
- isLibrary &&
- !disable.contains("SyntheticAccessor") &&
- extension.type != LibraryType.SAMPLES
- ) {
- fatal.add("SyntheticAccessor")
- }
+ // Too many Kotlin features require synthetic accessors - we want to rely on R8 to
+ // remove these accessors
+ disable.add("SyntheticAccessor")
// Only check for missing translations in finalized (beta and later) modules.
if (extension.mavenVersion?.isFinalApi() == true) {
diff --git a/camera/camera-camera2/api/1.3.0-beta03.txt b/camera/camera-camera2/api/1.3.0-beta03.txt
new file mode 100644
index 0000000..87c79d0
--- /dev/null
+++ b/camera/camera-camera2/api/1.3.0-beta03.txt
@@ -0,0 +1,54 @@
+// Signature format: 4.0
+package androidx.camera.camera2 {
+
+ @RequiresApi(21) public final class Camera2Config {
+ method public static androidx.camera.core.CameraXConfig defaultConfig();
+ }
+
+}
+
+package androidx.camera.camera2.interop {
+
+ @SuppressCompatibility @RequiresApi(21) @androidx.camera.camera2.interop.ExperimentalCamera2Interop public final class Camera2CameraControl {
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> addCaptureRequestOptions(androidx.camera.camera2.interop.CaptureRequestOptions);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> clearCaptureRequestOptions();
+ method public static androidx.camera.camera2.interop.Camera2CameraControl from(androidx.camera.core.CameraControl);
+ method public androidx.camera.camera2.interop.CaptureRequestOptions getCaptureRequestOptions();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setCaptureRequestOptions(androidx.camera.camera2.interop.CaptureRequestOptions);
+ }
+
+ @SuppressCompatibility @RequiresApi(21) @androidx.camera.camera2.interop.ExperimentalCamera2Interop public final class Camera2CameraInfo {
+ method public static androidx.camera.camera2.interop.Camera2CameraInfo from(androidx.camera.core.CameraInfo);
+ method public <T> T? getCameraCharacteristic(android.hardware.camera2.CameraCharacteristics.Key<T!>);
+ method public String getCameraId();
+ }
+
+ @SuppressCompatibility @RequiresApi(21) @androidx.camera.camera2.interop.ExperimentalCamera2Interop public final class Camera2Interop {
+ }
+
+ @RequiresApi(21) public static final class Camera2Interop.Extender<T> {
+ ctor public Camera2Interop.Extender(androidx.camera.core.ExtendableBuilder<T!>);
+ method public <ValueT> androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT!>, ValueT);
+ method public androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setDeviceStateCallback(android.hardware.camera2.CameraDevice.StateCallback);
+ method @RequiresApi(28) public androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setPhysicalCameraId(String);
+ method public androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setSessionCaptureCallback(android.hardware.camera2.CameraCaptureSession.CaptureCallback);
+ method public androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setSessionStateCallback(android.hardware.camera2.CameraCaptureSession.StateCallback);
+ method @RequiresApi(33) public androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setStreamUseCase(long);
+ }
+
+ @SuppressCompatibility @RequiresApi(21) @androidx.camera.camera2.interop.ExperimentalCamera2Interop public class CaptureRequestOptions {
+ method public <ValueT> ValueT? getCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT!>);
+ }
+
+ @RequiresApi(21) public static final class CaptureRequestOptions.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.camera2.interop.CaptureRequestOptions> {
+ ctor public CaptureRequestOptions.Builder();
+ method public androidx.camera.camera2.interop.CaptureRequestOptions build();
+ method public <ValueT> androidx.camera.camera2.interop.CaptureRequestOptions.Builder clearCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT!>);
+ method public <ValueT> androidx.camera.camera2.interop.CaptureRequestOptions.Builder setCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT!>, ValueT);
+ }
+
+ @SuppressCompatibility @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalCamera2Interop {
+ }
+
+}
+
diff --git a/camera/camera-camera2/api/res-1.3.0-beta03.txt b/camera/camera-camera2/api/res-1.3.0-beta03.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/camera/camera-camera2/api/res-1.3.0-beta03.txt
diff --git a/camera/camera-camera2/api/restricted_1.3.0-beta03.txt b/camera/camera-camera2/api/restricted_1.3.0-beta03.txt
new file mode 100644
index 0000000..87c79d0
--- /dev/null
+++ b/camera/camera-camera2/api/restricted_1.3.0-beta03.txt
@@ -0,0 +1,54 @@
+// Signature format: 4.0
+package androidx.camera.camera2 {
+
+ @RequiresApi(21) public final class Camera2Config {
+ method public static androidx.camera.core.CameraXConfig defaultConfig();
+ }
+
+}
+
+package androidx.camera.camera2.interop {
+
+ @SuppressCompatibility @RequiresApi(21) @androidx.camera.camera2.interop.ExperimentalCamera2Interop public final class Camera2CameraControl {
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> addCaptureRequestOptions(androidx.camera.camera2.interop.CaptureRequestOptions);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> clearCaptureRequestOptions();
+ method public static androidx.camera.camera2.interop.Camera2CameraControl from(androidx.camera.core.CameraControl);
+ method public androidx.camera.camera2.interop.CaptureRequestOptions getCaptureRequestOptions();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setCaptureRequestOptions(androidx.camera.camera2.interop.CaptureRequestOptions);
+ }
+
+ @SuppressCompatibility @RequiresApi(21) @androidx.camera.camera2.interop.ExperimentalCamera2Interop public final class Camera2CameraInfo {
+ method public static androidx.camera.camera2.interop.Camera2CameraInfo from(androidx.camera.core.CameraInfo);
+ method public <T> T? getCameraCharacteristic(android.hardware.camera2.CameraCharacteristics.Key<T!>);
+ method public String getCameraId();
+ }
+
+ @SuppressCompatibility @RequiresApi(21) @androidx.camera.camera2.interop.ExperimentalCamera2Interop public final class Camera2Interop {
+ }
+
+ @RequiresApi(21) public static final class Camera2Interop.Extender<T> {
+ ctor public Camera2Interop.Extender(androidx.camera.core.ExtendableBuilder<T!>);
+ method public <ValueT> androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT!>, ValueT);
+ method public androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setDeviceStateCallback(android.hardware.camera2.CameraDevice.StateCallback);
+ method @RequiresApi(28) public androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setPhysicalCameraId(String);
+ method public androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setSessionCaptureCallback(android.hardware.camera2.CameraCaptureSession.CaptureCallback);
+ method public androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setSessionStateCallback(android.hardware.camera2.CameraCaptureSession.StateCallback);
+ method @RequiresApi(33) public androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setStreamUseCase(long);
+ }
+
+ @SuppressCompatibility @RequiresApi(21) @androidx.camera.camera2.interop.ExperimentalCamera2Interop public class CaptureRequestOptions {
+ method public <ValueT> ValueT? getCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT!>);
+ }
+
+ @RequiresApi(21) public static final class CaptureRequestOptions.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.camera2.interop.CaptureRequestOptions> {
+ ctor public CaptureRequestOptions.Builder();
+ method public androidx.camera.camera2.interop.CaptureRequestOptions build();
+ method public <ValueT> androidx.camera.camera2.interop.CaptureRequestOptions.Builder clearCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT!>);
+ method public <ValueT> androidx.camera.camera2.interop.CaptureRequestOptions.Builder setCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT!>, ValueT);
+ }
+
+ @SuppressCompatibility @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalCamera2Interop {
+ }
+
+}
+
diff --git a/camera/camera-core/api/1.3.0-beta03.txt b/camera/camera-core/api/1.3.0-beta03.txt
new file mode 100644
index 0000000..adace2b
--- /dev/null
+++ b/camera/camera-core/api/1.3.0-beta03.txt
@@ -0,0 +1,612 @@
+// Signature format: 4.0
+package androidx.camera.core {
+
+ @RequiresApi(21) public class AspectRatio {
+ field public static final int RATIO_16_9 = 1; // 0x1
+ field public static final int RATIO_4_3 = 0; // 0x0
+ field public static final int RATIO_DEFAULT = -1; // 0xffffffff
+ }
+
+ @RequiresApi(21) public interface Camera {
+ method public androidx.camera.core.CameraControl getCameraControl();
+ method public androidx.camera.core.CameraInfo getCameraInfo();
+ }
+
+ @RequiresApi(21) public interface CameraControl {
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> cancelFocusAndMetering();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> enableTorch(boolean);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Integer!> setExposureCompensationIndex(int);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setLinearZoom(@FloatRange(from=0.0f, to=1.0f) float);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setZoomRatio(float);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.FocusMeteringResult!> startFocusAndMetering(androidx.camera.core.FocusMeteringAction);
+ }
+
+ public static final class CameraControl.OperationCanceledException extends java.lang.Exception {
+ }
+
+ @RequiresApi(21) public abstract class CameraEffect {
+ ctor protected CameraEffect(int, java.util.concurrent.Executor, androidx.camera.core.ImageProcessor, androidx.core.util.Consumer<java.lang.Throwable!>);
+ ctor protected CameraEffect(int, java.util.concurrent.Executor, androidx.camera.core.SurfaceProcessor, androidx.core.util.Consumer<java.lang.Throwable!>);
+ method public androidx.core.util.Consumer<java.lang.Throwable!> getErrorListener();
+ method public java.util.concurrent.Executor getExecutor();
+ method public androidx.camera.core.SurfaceProcessor? getSurfaceProcessor();
+ method public int getTargets();
+ field public static final int IMAGE_CAPTURE = 4; // 0x4
+ field public static final int PREVIEW = 1; // 0x1
+ field public static final int VIDEO_CAPTURE = 2; // 0x2
+ }
+
+ @RequiresApi(21) public interface CameraFilter {
+ method public java.util.List<androidx.camera.core.CameraInfo!> filter(java.util.List<androidx.camera.core.CameraInfo!>);
+ }
+
+ @RequiresApi(21) public interface CameraInfo {
+ method public androidx.camera.core.CameraSelector getCameraSelector();
+ method public androidx.lifecycle.LiveData<androidx.camera.core.CameraState!> getCameraState();
+ method public androidx.camera.core.ExposureState getExposureState();
+ method @FloatRange(from=0, fromInclusive=false) public default float getIntrinsicZoomRatio();
+ method public default int getLensFacing();
+ method public int getSensorRotationDegrees();
+ method public int getSensorRotationDegrees(int);
+ method public default java.util.Set<android.util.Range<java.lang.Integer!>!> getSupportedFrameRateRanges();
+ method public androidx.lifecycle.LiveData<java.lang.Integer!> getTorchState();
+ method public androidx.lifecycle.LiveData<androidx.camera.core.ZoomState!> getZoomState();
+ method public boolean hasFlashUnit();
+ method public default boolean isFocusMeteringSupported(androidx.camera.core.FocusMeteringAction);
+ method @SuppressCompatibility @androidx.camera.core.ExperimentalZeroShutterLag public default boolean isZslSupported();
+ }
+
+ @RequiresApi(21) public final class CameraInfoUnavailableException extends java.lang.Exception {
+ }
+
+ @RequiresApi(21) public interface CameraProvider {
+ method public java.util.List<androidx.camera.core.CameraInfo!> getAvailableCameraInfos();
+ method public boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ }
+
+ @RequiresApi(21) public final class CameraSelector {
+ method public java.util.List<androidx.camera.core.CameraInfo!> filter(java.util.List<androidx.camera.core.CameraInfo!>);
+ field public static final androidx.camera.core.CameraSelector DEFAULT_BACK_CAMERA;
+ field public static final androidx.camera.core.CameraSelector DEFAULT_FRONT_CAMERA;
+ field public static final int LENS_FACING_BACK = 1; // 0x1
+ field @SuppressCompatibility @androidx.camera.core.ExperimentalLensFacing public static final int LENS_FACING_EXTERNAL = 2; // 0x2
+ field public static final int LENS_FACING_FRONT = 0; // 0x0
+ field public static final int LENS_FACING_UNKNOWN = -1; // 0xffffffff
+ }
+
+ public static final class CameraSelector.Builder {
+ ctor public CameraSelector.Builder();
+ method public androidx.camera.core.CameraSelector.Builder addCameraFilter(androidx.camera.core.CameraFilter);
+ method public androidx.camera.core.CameraSelector build();
+ method public androidx.camera.core.CameraSelector.Builder requireLensFacing(int);
+ }
+
+ @RequiresApi(21) @com.google.auto.value.AutoValue public abstract class CameraState {
+ ctor public CameraState();
+ method public static androidx.camera.core.CameraState create(androidx.camera.core.CameraState.Type);
+ method public static androidx.camera.core.CameraState create(androidx.camera.core.CameraState.Type, androidx.camera.core.CameraState.StateError?);
+ method public abstract androidx.camera.core.CameraState.StateError? getError();
+ method public abstract androidx.camera.core.CameraState.Type getType();
+ field public static final int ERROR_CAMERA_DISABLED = 5; // 0x5
+ field public static final int ERROR_CAMERA_FATAL_ERROR = 6; // 0x6
+ field public static final int ERROR_CAMERA_IN_USE = 2; // 0x2
+ field public static final int ERROR_DO_NOT_DISTURB_MODE_ENABLED = 7; // 0x7
+ field public static final int ERROR_MAX_CAMERAS_IN_USE = 1; // 0x1
+ field public static final int ERROR_OTHER_RECOVERABLE_ERROR = 3; // 0x3
+ field public static final int ERROR_STREAM_CONFIG = 4; // 0x4
+ }
+
+ public enum CameraState.ErrorType {
+ enum_constant public static final androidx.camera.core.CameraState.ErrorType CRITICAL;
+ enum_constant public static final androidx.camera.core.CameraState.ErrorType RECOVERABLE;
+ }
+
+ @com.google.auto.value.AutoValue public abstract static class CameraState.StateError {
+ ctor public CameraState.StateError();
+ method public static androidx.camera.core.CameraState.StateError create(int);
+ method public static androidx.camera.core.CameraState.StateError create(int, Throwable?);
+ method public abstract Throwable? getCause();
+ method public abstract int getCode();
+ method public androidx.camera.core.CameraState.ErrorType getType();
+ }
+
+ public enum CameraState.Type {
+ enum_constant public static final androidx.camera.core.CameraState.Type CLOSED;
+ enum_constant public static final androidx.camera.core.CameraState.Type CLOSING;
+ enum_constant public static final androidx.camera.core.CameraState.Type OPEN;
+ enum_constant public static final androidx.camera.core.CameraState.Type OPENING;
+ enum_constant public static final androidx.camera.core.CameraState.Type PENDING_OPEN;
+ }
+
+ @RequiresApi(21) public class CameraUnavailableException extends java.lang.Exception {
+ ctor public CameraUnavailableException(int);
+ ctor public CameraUnavailableException(int, String?);
+ ctor public CameraUnavailableException(int, String?, Throwable?);
+ ctor public CameraUnavailableException(int, Throwable?);
+ method public int getReason();
+ field public static final int CAMERA_DISABLED = 1; // 0x1
+ field public static final int CAMERA_DISCONNECTED = 2; // 0x2
+ field public static final int CAMERA_ERROR = 3; // 0x3
+ field public static final int CAMERA_IN_USE = 4; // 0x4
+ field public static final int CAMERA_MAX_IN_USE = 5; // 0x5
+ field public static final int CAMERA_UNAVAILABLE_DO_NOT_DISTURB = 6; // 0x6
+ field public static final int CAMERA_UNKNOWN_ERROR = 0; // 0x0
+ }
+
+ @RequiresApi(21) public final class CameraXConfig {
+ method public androidx.camera.core.CameraSelector? getAvailableCamerasLimiter(androidx.camera.core.CameraSelector?);
+ method public java.util.concurrent.Executor? getCameraExecutor(java.util.concurrent.Executor?);
+ method public int getMinimumLoggingLevel();
+ method public android.os.Handler? getSchedulerHandler(android.os.Handler?);
+ }
+
+ public static final class CameraXConfig.Builder {
+ method public androidx.camera.core.CameraXConfig build();
+ method public static androidx.camera.core.CameraXConfig.Builder fromConfig(androidx.camera.core.CameraXConfig);
+ method public androidx.camera.core.CameraXConfig.Builder setAvailableCamerasLimiter(androidx.camera.core.CameraSelector);
+ method public androidx.camera.core.CameraXConfig.Builder setCameraExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.CameraXConfig.Builder setMinimumLoggingLevel(@IntRange(from=android.util.Log.DEBUG, to=android.util.Log.ERROR) int);
+ method public androidx.camera.core.CameraXConfig.Builder setSchedulerHandler(android.os.Handler);
+ }
+
+ public static interface CameraXConfig.Provider {
+ method public androidx.camera.core.CameraXConfig getCameraXConfig();
+ }
+
+ @RequiresApi(21) public class ConcurrentCamera {
+ ctor public ConcurrentCamera(java.util.List<androidx.camera.core.Camera!>);
+ method public java.util.List<androidx.camera.core.Camera!> getCameras();
+ }
+
+ public static final class ConcurrentCamera.SingleCameraConfig {
+ ctor public ConcurrentCamera.SingleCameraConfig(androidx.camera.core.CameraSelector, androidx.camera.core.UseCaseGroup, androidx.lifecycle.LifecycleOwner);
+ method public androidx.camera.core.CameraSelector getCameraSelector();
+ method public androidx.lifecycle.LifecycleOwner getLifecycleOwner();
+ method public androidx.camera.core.UseCaseGroup getUseCaseGroup();
+ }
+
+ @RequiresApi(21) public final class DisplayOrientedMeteringPointFactory extends androidx.camera.core.MeteringPointFactory {
+ ctor public DisplayOrientedMeteringPointFactory(android.view.Display, androidx.camera.core.CameraInfo, float, float);
+ }
+
+ @RequiresApi(21) public final class DynamicRange {
+ ctor public DynamicRange(int, int);
+ method public int getBitDepth();
+ method public int getEncoding();
+ field public static final int BIT_DEPTH_10_BIT = 10; // 0xa
+ field public static final int BIT_DEPTH_8_BIT = 8; // 0x8
+ field public static final int BIT_DEPTH_UNSPECIFIED = 0; // 0x0
+ field public static final androidx.camera.core.DynamicRange DOLBY_VISION_10_BIT;
+ field public static final androidx.camera.core.DynamicRange DOLBY_VISION_8_BIT;
+ field public static final int ENCODING_DOLBY_VISION = 6; // 0x6
+ field public static final int ENCODING_HDR10 = 4; // 0x4
+ field public static final int ENCODING_HDR10_PLUS = 5; // 0x5
+ field public static final int ENCODING_HDR_UNSPECIFIED = 2; // 0x2
+ field public static final int ENCODING_HLG = 3; // 0x3
+ field public static final int ENCODING_SDR = 1; // 0x1
+ field public static final int ENCODING_UNSPECIFIED = 0; // 0x0
+ field public static final androidx.camera.core.DynamicRange HDR10_10_BIT;
+ field public static final androidx.camera.core.DynamicRange HDR10_PLUS_10_BIT;
+ field public static final androidx.camera.core.DynamicRange HDR_UNSPECIFIED_10_BIT;
+ field public static final androidx.camera.core.DynamicRange HLG_10_BIT;
+ field public static final androidx.camera.core.DynamicRange SDR;
+ field public static final androidx.camera.core.DynamicRange UNSPECIFIED;
+ }
+
+ @SuppressCompatibility @RequiresApi(21) @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalGetImage {
+ }
+
+ @SuppressCompatibility @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalLensFacing {
+ }
+
+ @SuppressCompatibility @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalUseCaseApi {
+ }
+
+ @SuppressCompatibility @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalZeroShutterLag {
+ }
+
+ @RequiresApi(21) public interface ExposureState {
+ method public int getExposureCompensationIndex();
+ method public android.util.Range<java.lang.Integer!> getExposureCompensationRange();
+ method public android.util.Rational getExposureCompensationStep();
+ method public boolean isExposureCompensationSupported();
+ }
+
+ @RequiresApi(21) public interface ExtendableBuilder<T> {
+ method public T build();
+ }
+
+ @RequiresApi(21) public final class FocusMeteringAction {
+ method public long getAutoCancelDurationInMillis();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAe();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAf();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAwb();
+ method public boolean isAutoCancelEnabled();
+ field public static final int FLAG_AE = 2; // 0x2
+ field public static final int FLAG_AF = 1; // 0x1
+ field public static final int FLAG_AWB = 4; // 0x4
+ }
+
+ public static class FocusMeteringAction.Builder {
+ ctor public FocusMeteringAction.Builder(androidx.camera.core.MeteringPoint);
+ ctor public FocusMeteringAction.Builder(androidx.camera.core.MeteringPoint, int);
+ method public androidx.camera.core.FocusMeteringAction.Builder addPoint(androidx.camera.core.MeteringPoint);
+ method public androidx.camera.core.FocusMeteringAction.Builder addPoint(androidx.camera.core.MeteringPoint, int);
+ method public androidx.camera.core.FocusMeteringAction build();
+ method public androidx.camera.core.FocusMeteringAction.Builder disableAutoCancel();
+ method public androidx.camera.core.FocusMeteringAction.Builder setAutoCancelDuration(@IntRange(from=1) long, java.util.concurrent.TimeUnit);
+ }
+
+ @RequiresApi(21) public final class FocusMeteringResult {
+ method public boolean isFocusSuccessful();
+ }
+
+ @RequiresApi(21) public final class ImageAnalysis extends androidx.camera.core.UseCase {
+ method public void clearAnalyzer();
+ method @SuppressCompatibility @androidx.camera.core.ExperimentalUseCaseApi public java.util.concurrent.Executor? getBackgroundExecutor();
+ method public int getBackpressureStrategy();
+ method public int getImageQueueDepth();
+ method public int getOutputImageFormat();
+ method public androidx.camera.core.ResolutionInfo? getResolutionInfo();
+ method public androidx.camera.core.resolutionselector.ResolutionSelector? getResolutionSelector();
+ method public int getTargetRotation();
+ method public boolean isOutputImageRotationEnabled();
+ method public void setAnalyzer(java.util.concurrent.Executor, androidx.camera.core.ImageAnalysis.Analyzer);
+ method public void setTargetRotation(int);
+ field public static final int COORDINATE_SYSTEM_ORIGINAL = 0; // 0x0
+ field public static final int OUTPUT_IMAGE_FORMAT_RGBA_8888 = 2; // 0x2
+ field public static final int OUTPUT_IMAGE_FORMAT_YUV_420_888 = 1; // 0x1
+ field public static final int STRATEGY_BLOCK_PRODUCER = 1; // 0x1
+ field public static final int STRATEGY_KEEP_ONLY_LATEST = 0; // 0x0
+ }
+
+ public static interface ImageAnalysis.Analyzer {
+ method public void analyze(androidx.camera.core.ImageProxy);
+ method public default android.util.Size? getDefaultTargetResolution();
+ method public default int getTargetCoordinateSystem();
+ method public default void updateTransform(android.graphics.Matrix?);
+ }
+
+ public static final class ImageAnalysis.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.ImageAnalysis> {
+ ctor public ImageAnalysis.Builder();
+ method public androidx.camera.core.ImageAnalysis build();
+ method public androidx.camera.core.ImageAnalysis.Builder setBackgroundExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.ImageAnalysis.Builder setBackpressureStrategy(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setImageQueueDepth(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setOutputImageFormat(int);
+ method @RequiresApi(23) public androidx.camera.core.ImageAnalysis.Builder setOutputImageRotationEnabled(boolean);
+ method public androidx.camera.core.ImageAnalysis.Builder setResolutionSelector(androidx.camera.core.resolutionselector.ResolutionSelector);
+ method @Deprecated public androidx.camera.core.ImageAnalysis.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetName(String);
+ method @Deprecated public androidx.camera.core.ImageAnalysis.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetRotation(int);
+ }
+
+ @RequiresApi(21) public final class ImageCapture extends androidx.camera.core.UseCase {
+ method public int getCaptureMode();
+ method public int getFlashMode();
+ method @IntRange(from=1, to=100) public int getJpegQuality();
+ method public androidx.camera.core.ResolutionInfo? getResolutionInfo();
+ method public androidx.camera.core.resolutionselector.ResolutionSelector? getResolutionSelector();
+ method public int getTargetRotation();
+ method public void setCropAspectRatio(android.util.Rational);
+ method public void setFlashMode(int);
+ method public void setTargetRotation(int);
+ method public void takePicture(androidx.camera.core.ImageCapture.OutputFileOptions, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
+ method public void takePicture(java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageCapturedCallback);
+ field public static final int CAPTURE_MODE_MAXIMIZE_QUALITY = 0; // 0x0
+ field public static final int CAPTURE_MODE_MINIMIZE_LATENCY = 1; // 0x1
+ field @SuppressCompatibility @androidx.camera.core.ExperimentalZeroShutterLag public static final int CAPTURE_MODE_ZERO_SHUTTER_LAG = 2; // 0x2
+ field public static final int ERROR_CAMERA_CLOSED = 3; // 0x3
+ field public static final int ERROR_CAPTURE_FAILED = 2; // 0x2
+ field public static final int ERROR_FILE_IO = 1; // 0x1
+ field public static final int ERROR_INVALID_CAMERA = 4; // 0x4
+ field public static final int ERROR_UNKNOWN = 0; // 0x0
+ field public static final int FLASH_MODE_AUTO = 0; // 0x0
+ field public static final int FLASH_MODE_OFF = 2; // 0x2
+ field public static final int FLASH_MODE_ON = 1; // 0x1
+ }
+
+ public static final class ImageCapture.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.ImageCapture> {
+ ctor public ImageCapture.Builder();
+ method public androidx.camera.core.ImageCapture build();
+ method public androidx.camera.core.ImageCapture.Builder setCaptureMode(int);
+ method public androidx.camera.core.ImageCapture.Builder setFlashMode(int);
+ method public androidx.camera.core.ImageCapture.Builder setIoExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.ImageCapture.Builder setJpegQuality(@IntRange(from=1, to=100) int);
+ method public androidx.camera.core.ImageCapture.Builder setResolutionSelector(androidx.camera.core.resolutionselector.ResolutionSelector);
+ method @Deprecated public androidx.camera.core.ImageCapture.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.ImageCapture.Builder setTargetName(String);
+ method @Deprecated public androidx.camera.core.ImageCapture.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.ImageCapture.Builder setTargetRotation(int);
+ }
+
+ public static final class ImageCapture.Metadata {
+ ctor public ImageCapture.Metadata();
+ method public android.location.Location? getLocation();
+ method public boolean isReversedHorizontal();
+ method public boolean isReversedVertical();
+ method public void setLocation(android.location.Location?);
+ method public void setReversedHorizontal(boolean);
+ method public void setReversedVertical(boolean);
+ }
+
+ public abstract static class ImageCapture.OnImageCapturedCallback {
+ ctor public ImageCapture.OnImageCapturedCallback();
+ method public void onCaptureSuccess(androidx.camera.core.ImageProxy);
+ method public void onError(androidx.camera.core.ImageCaptureException);
+ }
+
+ public static interface ImageCapture.OnImageSavedCallback {
+ method public void onError(androidx.camera.core.ImageCaptureException);
+ method public void onImageSaved(androidx.camera.core.ImageCapture.OutputFileResults);
+ }
+
+ public static final class ImageCapture.OutputFileOptions {
+ }
+
+ public static final class ImageCapture.OutputFileOptions.Builder {
+ ctor public ImageCapture.OutputFileOptions.Builder(android.content.ContentResolver, android.net.Uri, android.content.ContentValues);
+ ctor public ImageCapture.OutputFileOptions.Builder(java.io.File);
+ ctor public ImageCapture.OutputFileOptions.Builder(java.io.OutputStream);
+ method public androidx.camera.core.ImageCapture.OutputFileOptions build();
+ method public androidx.camera.core.ImageCapture.OutputFileOptions.Builder setMetadata(androidx.camera.core.ImageCapture.Metadata);
+ }
+
+ public static class ImageCapture.OutputFileResults {
+ method public android.net.Uri? getSavedUri();
+ }
+
+ @RequiresApi(21) public class ImageCaptureException extends java.lang.Exception {
+ ctor public ImageCaptureException(int, String, Throwable?);
+ method public int getImageCaptureError();
+ }
+
+ @RequiresApi(21) public interface ImageInfo {
+ method public int getRotationDegrees();
+ method public default android.graphics.Matrix getSensorToBufferTransformMatrix();
+ method public long getTimestamp();
+ }
+
+ public interface ImageProcessor {
+ method public androidx.camera.core.ImageProcessor.Response process(androidx.camera.core.ImageProcessor.Request) throws androidx.camera.core.ProcessingException;
+ }
+
+ public static interface ImageProcessor.Request {
+ method public androidx.camera.core.ImageProxy getInputImage();
+ method public int getOutputFormat();
+ }
+
+ public static interface ImageProcessor.Response {
+ method public androidx.camera.core.ImageProxy getOutputImage();
+ }
+
+ @RequiresApi(21) public interface ImageProxy extends java.lang.AutoCloseable {
+ method public void close();
+ method public android.graphics.Rect getCropRect();
+ method public int getFormat();
+ method public int getHeight();
+ method @SuppressCompatibility @androidx.camera.core.ExperimentalGetImage public android.media.Image? getImage();
+ method public androidx.camera.core.ImageInfo getImageInfo();
+ method public androidx.camera.core.ImageProxy.PlaneProxy![] getPlanes();
+ method public int getWidth();
+ method public void setCropRect(android.graphics.Rect?);
+ method public default android.graphics.Bitmap toBitmap();
+ }
+
+ public static interface ImageProxy.PlaneProxy {
+ method public java.nio.ByteBuffer getBuffer();
+ method public int getPixelStride();
+ method public int getRowStride();
+ }
+
+ @RequiresApi(21) public class InitializationException extends java.lang.Exception {
+ ctor public InitializationException(String?);
+ ctor public InitializationException(String?, Throwable?);
+ ctor public InitializationException(Throwable?);
+ }
+
+ @RequiresApi(21) public class MeteringPoint {
+ method public float getSize();
+ }
+
+ @RequiresApi(21) public abstract class MeteringPointFactory {
+ method public final androidx.camera.core.MeteringPoint createPoint(float, float);
+ method public final androidx.camera.core.MeteringPoint createPoint(float, float, float);
+ method public static float getDefaultPointSize();
+ }
+
+ @RequiresApi(21) public class MirrorMode {
+ field public static final int MIRROR_MODE_OFF = 0; // 0x0
+ field public static final int MIRROR_MODE_ON = 1; // 0x1
+ field public static final int MIRROR_MODE_ON_FRONT_ONLY = 2; // 0x2
+ }
+
+ @RequiresApi(21) public final class Preview extends androidx.camera.core.UseCase {
+ method public androidx.camera.core.ResolutionInfo? getResolutionInfo();
+ method public androidx.camera.core.resolutionselector.ResolutionSelector? getResolutionSelector();
+ method public android.util.Range<java.lang.Integer!> getTargetFrameRate();
+ method public int getTargetRotation();
+ method @UiThread public void setSurfaceProvider(androidx.camera.core.Preview.SurfaceProvider?);
+ method @UiThread public void setSurfaceProvider(java.util.concurrent.Executor, androidx.camera.core.Preview.SurfaceProvider?);
+ method public void setTargetRotation(int);
+ }
+
+ public static final class Preview.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.Preview> {
+ ctor public Preview.Builder();
+ method public androidx.camera.core.Preview build();
+ method public androidx.camera.core.Preview.Builder setResolutionSelector(androidx.camera.core.resolutionselector.ResolutionSelector);
+ method @Deprecated public androidx.camera.core.Preview.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.Preview.Builder setTargetFrameRate(android.util.Range<java.lang.Integer!>);
+ method public androidx.camera.core.Preview.Builder setTargetName(String);
+ method @Deprecated public androidx.camera.core.Preview.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.Preview.Builder setTargetRotation(int);
+ }
+
+ public static interface Preview.SurfaceProvider {
+ method public void onSurfaceRequested(androidx.camera.core.SurfaceRequest);
+ }
+
+ public class ProcessingException extends java.lang.Exception {
+ ctor public ProcessingException();
+ }
+
+ @RequiresApi(21) public class ResolutionInfo {
+ ctor public ResolutionInfo(android.util.Size, android.graphics.Rect, int);
+ method public android.graphics.Rect getCropRect();
+ method public android.util.Size getResolution();
+ method public int getRotationDegrees();
+ }
+
+ @RequiresApi(21) public class SurfaceOrientedMeteringPointFactory extends androidx.camera.core.MeteringPointFactory {
+ ctor public SurfaceOrientedMeteringPointFactory(float, float);
+ ctor public SurfaceOrientedMeteringPointFactory(float, float, androidx.camera.core.UseCase);
+ }
+
+ public interface SurfaceOutput extends java.io.Closeable {
+ method public void close();
+ method public android.util.Size getSize();
+ method public android.view.Surface getSurface(java.util.concurrent.Executor, androidx.core.util.Consumer<androidx.camera.core.SurfaceOutput.Event!>);
+ method public int getTargets();
+ method public void updateTransformMatrix(float[], float[]);
+ }
+
+ @com.google.auto.value.AutoValue public abstract static class SurfaceOutput.Event {
+ method public abstract int getEventCode();
+ method public abstract androidx.camera.core.SurfaceOutput getSurfaceOutput();
+ field public static final int EVENT_REQUEST_CLOSE = 0; // 0x0
+ }
+
+ public interface SurfaceProcessor {
+ method public void onInputSurface(androidx.camera.core.SurfaceRequest) throws androidx.camera.core.ProcessingException;
+ method public void onOutputSurface(androidx.camera.core.SurfaceOutput) throws androidx.camera.core.ProcessingException;
+ }
+
+ @RequiresApi(21) public final class SurfaceRequest {
+ method public void addRequestCancellationListener(java.util.concurrent.Executor, Runnable);
+ method public void clearTransformationInfoListener();
+ method public androidx.camera.core.DynamicRange getDynamicRange();
+ method public android.util.Size getResolution();
+ method public boolean invalidate();
+ method public void provideSurface(android.view.Surface, java.util.concurrent.Executor, androidx.core.util.Consumer<androidx.camera.core.SurfaceRequest.Result!>);
+ method public void setTransformationInfoListener(java.util.concurrent.Executor, androidx.camera.core.SurfaceRequest.TransformationInfoListener);
+ method public boolean willNotProvideSurface();
+ }
+
+ @com.google.auto.value.AutoValue public abstract static class SurfaceRequest.Result {
+ method public abstract int getResultCode();
+ method public abstract android.view.Surface getSurface();
+ field public static final int RESULT_INVALID_SURFACE = 2; // 0x2
+ field public static final int RESULT_REQUEST_CANCELLED = 1; // 0x1
+ field public static final int RESULT_SURFACE_ALREADY_PROVIDED = 3; // 0x3
+ field public static final int RESULT_SURFACE_USED_SUCCESSFULLY = 0; // 0x0
+ field public static final int RESULT_WILL_NOT_PROVIDE_SURFACE = 4; // 0x4
+ }
+
+ @com.google.auto.value.AutoValue public abstract static class SurfaceRequest.TransformationInfo {
+ method public abstract android.graphics.Rect getCropRect();
+ method public abstract int getRotationDegrees();
+ }
+
+ public static interface SurfaceRequest.TransformationInfoListener {
+ method public void onTransformationInfoUpdate(androidx.camera.core.SurfaceRequest.TransformationInfo);
+ }
+
+ @RequiresApi(21) public class TorchState {
+ field public static final int OFF = 0; // 0x0
+ field public static final int ON = 1; // 0x1
+ }
+
+ @RequiresApi(21) public abstract class UseCase {
+ method public static int snapToSurfaceRotation(@IntRange(from=0, to=359) int);
+ }
+
+ @RequiresApi(21) public final class UseCaseGroup {
+ method public java.util.List<androidx.camera.core.CameraEffect!> getEffects();
+ method public java.util.List<androidx.camera.core.UseCase!> getUseCases();
+ method public androidx.camera.core.ViewPort? getViewPort();
+ }
+
+ public static final class UseCaseGroup.Builder {
+ ctor public UseCaseGroup.Builder();
+ method public androidx.camera.core.UseCaseGroup.Builder addEffect(androidx.camera.core.CameraEffect);
+ method public androidx.camera.core.UseCaseGroup.Builder addUseCase(androidx.camera.core.UseCase);
+ method public androidx.camera.core.UseCaseGroup build();
+ method public androidx.camera.core.UseCaseGroup.Builder setViewPort(androidx.camera.core.ViewPort);
+ }
+
+ @RequiresApi(21) public final class ViewPort {
+ method public android.util.Rational getAspectRatio();
+ method public int getLayoutDirection();
+ method public int getRotation();
+ method public int getScaleType();
+ field public static final int FILL_CENTER = 1; // 0x1
+ field public static final int FILL_END = 2; // 0x2
+ field public static final int FILL_START = 0; // 0x0
+ field public static final int FIT = 3; // 0x3
+ }
+
+ public static final class ViewPort.Builder {
+ ctor public ViewPort.Builder(android.util.Rational, int);
+ method public androidx.camera.core.ViewPort build();
+ method public androidx.camera.core.ViewPort.Builder setLayoutDirection(int);
+ method public androidx.camera.core.ViewPort.Builder setScaleType(int);
+ }
+
+ @RequiresApi(21) public interface ZoomState {
+ method public float getLinearZoom();
+ method public float getMaxZoomRatio();
+ method public float getMinZoomRatio();
+ method public float getZoomRatio();
+ }
+
+}
+
+package androidx.camera.core.resolutionselector {
+
+ @RequiresApi(21) public final class AspectRatioStrategy {
+ ctor public AspectRatioStrategy(int, int);
+ method public int getFallbackRule();
+ method public int getPreferredAspectRatio();
+ field public static final int FALLBACK_RULE_AUTO = 1; // 0x1
+ field public static final int FALLBACK_RULE_NONE = 0; // 0x0
+ field public static final androidx.camera.core.resolutionselector.AspectRatioStrategy RATIO_16_9_FALLBACK_AUTO_STRATEGY;
+ field public static final androidx.camera.core.resolutionselector.AspectRatioStrategy RATIO_4_3_FALLBACK_AUTO_STRATEGY;
+ }
+
+ @RequiresApi(21) public interface ResolutionFilter {
+ method public java.util.List<android.util.Size!> filter(java.util.List<android.util.Size!>, int);
+ }
+
+ @RequiresApi(21) public final class ResolutionSelector {
+ method public int getAllowedResolutionMode();
+ method public androidx.camera.core.resolutionselector.AspectRatioStrategy getAspectRatioStrategy();
+ method public androidx.camera.core.resolutionselector.ResolutionFilter? getResolutionFilter();
+ method public androidx.camera.core.resolutionselector.ResolutionStrategy? getResolutionStrategy();
+ field public static final int PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION = 0; // 0x0
+ field public static final int PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE = 1; // 0x1
+ }
+
+ public static final class ResolutionSelector.Builder {
+ ctor public ResolutionSelector.Builder();
+ method public androidx.camera.core.resolutionselector.ResolutionSelector build();
+ method public androidx.camera.core.resolutionselector.ResolutionSelector.Builder setAllowedResolutionMode(int);
+ method public androidx.camera.core.resolutionselector.ResolutionSelector.Builder setAspectRatioStrategy(androidx.camera.core.resolutionselector.AspectRatioStrategy);
+ method public androidx.camera.core.resolutionselector.ResolutionSelector.Builder setResolutionFilter(androidx.camera.core.resolutionselector.ResolutionFilter);
+ method public androidx.camera.core.resolutionselector.ResolutionSelector.Builder setResolutionStrategy(androidx.camera.core.resolutionselector.ResolutionStrategy);
+ }
+
+ @RequiresApi(21) public final class ResolutionStrategy {
+ ctor public ResolutionStrategy(android.util.Size, int);
+ method public android.util.Size? getBoundSize();
+ method public int getFallbackRule();
+ field public static final int FALLBACK_RULE_CLOSEST_HIGHER = 2; // 0x2
+ field public static final int FALLBACK_RULE_CLOSEST_HIGHER_THEN_LOWER = 1; // 0x1
+ field public static final int FALLBACK_RULE_CLOSEST_LOWER = 4; // 0x4
+ field public static final int FALLBACK_RULE_CLOSEST_LOWER_THEN_HIGHER = 3; // 0x3
+ field public static final int FALLBACK_RULE_NONE = 0; // 0x0
+ field public static final androidx.camera.core.resolutionselector.ResolutionStrategy HIGHEST_AVAILABLE_STRATEGY;
+ }
+
+}
+
diff --git a/camera/camera-core/api/res-1.3.0-beta03.txt b/camera/camera-core/api/res-1.3.0-beta03.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/camera/camera-core/api/res-1.3.0-beta03.txt
diff --git a/camera/camera-core/api/restricted_1.3.0-beta03.txt b/camera/camera-core/api/restricted_1.3.0-beta03.txt
new file mode 100644
index 0000000..adace2b
--- /dev/null
+++ b/camera/camera-core/api/restricted_1.3.0-beta03.txt
@@ -0,0 +1,612 @@
+// Signature format: 4.0
+package androidx.camera.core {
+
+ @RequiresApi(21) public class AspectRatio {
+ field public static final int RATIO_16_9 = 1; // 0x1
+ field public static final int RATIO_4_3 = 0; // 0x0
+ field public static final int RATIO_DEFAULT = -1; // 0xffffffff
+ }
+
+ @RequiresApi(21) public interface Camera {
+ method public androidx.camera.core.CameraControl getCameraControl();
+ method public androidx.camera.core.CameraInfo getCameraInfo();
+ }
+
+ @RequiresApi(21) public interface CameraControl {
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> cancelFocusAndMetering();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> enableTorch(boolean);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Integer!> setExposureCompensationIndex(int);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setLinearZoom(@FloatRange(from=0.0f, to=1.0f) float);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setZoomRatio(float);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.FocusMeteringResult!> startFocusAndMetering(androidx.camera.core.FocusMeteringAction);
+ }
+
+ public static final class CameraControl.OperationCanceledException extends java.lang.Exception {
+ }
+
+ @RequiresApi(21) public abstract class CameraEffect {
+ ctor protected CameraEffect(int, java.util.concurrent.Executor, androidx.camera.core.ImageProcessor, androidx.core.util.Consumer<java.lang.Throwable!>);
+ ctor protected CameraEffect(int, java.util.concurrent.Executor, androidx.camera.core.SurfaceProcessor, androidx.core.util.Consumer<java.lang.Throwable!>);
+ method public androidx.core.util.Consumer<java.lang.Throwable!> getErrorListener();
+ method public java.util.concurrent.Executor getExecutor();
+ method public androidx.camera.core.SurfaceProcessor? getSurfaceProcessor();
+ method public int getTargets();
+ field public static final int IMAGE_CAPTURE = 4; // 0x4
+ field public static final int PREVIEW = 1; // 0x1
+ field public static final int VIDEO_CAPTURE = 2; // 0x2
+ }
+
+ @RequiresApi(21) public interface CameraFilter {
+ method public java.util.List<androidx.camera.core.CameraInfo!> filter(java.util.List<androidx.camera.core.CameraInfo!>);
+ }
+
+ @RequiresApi(21) public interface CameraInfo {
+ method public androidx.camera.core.CameraSelector getCameraSelector();
+ method public androidx.lifecycle.LiveData<androidx.camera.core.CameraState!> getCameraState();
+ method public androidx.camera.core.ExposureState getExposureState();
+ method @FloatRange(from=0, fromInclusive=false) public default float getIntrinsicZoomRatio();
+ method public default int getLensFacing();
+ method public int getSensorRotationDegrees();
+ method public int getSensorRotationDegrees(int);
+ method public default java.util.Set<android.util.Range<java.lang.Integer!>!> getSupportedFrameRateRanges();
+ method public androidx.lifecycle.LiveData<java.lang.Integer!> getTorchState();
+ method public androidx.lifecycle.LiveData<androidx.camera.core.ZoomState!> getZoomState();
+ method public boolean hasFlashUnit();
+ method public default boolean isFocusMeteringSupported(androidx.camera.core.FocusMeteringAction);
+ method @SuppressCompatibility @androidx.camera.core.ExperimentalZeroShutterLag public default boolean isZslSupported();
+ }
+
+ @RequiresApi(21) public final class CameraInfoUnavailableException extends java.lang.Exception {
+ }
+
+ @RequiresApi(21) public interface CameraProvider {
+ method public java.util.List<androidx.camera.core.CameraInfo!> getAvailableCameraInfos();
+ method public boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ }
+
+ @RequiresApi(21) public final class CameraSelector {
+ method public java.util.List<androidx.camera.core.CameraInfo!> filter(java.util.List<androidx.camera.core.CameraInfo!>);
+ field public static final androidx.camera.core.CameraSelector DEFAULT_BACK_CAMERA;
+ field public static final androidx.camera.core.CameraSelector DEFAULT_FRONT_CAMERA;
+ field public static final int LENS_FACING_BACK = 1; // 0x1
+ field @SuppressCompatibility @androidx.camera.core.ExperimentalLensFacing public static final int LENS_FACING_EXTERNAL = 2; // 0x2
+ field public static final int LENS_FACING_FRONT = 0; // 0x0
+ field public static final int LENS_FACING_UNKNOWN = -1; // 0xffffffff
+ }
+
+ public static final class CameraSelector.Builder {
+ ctor public CameraSelector.Builder();
+ method public androidx.camera.core.CameraSelector.Builder addCameraFilter(androidx.camera.core.CameraFilter);
+ method public androidx.camera.core.CameraSelector build();
+ method public androidx.camera.core.CameraSelector.Builder requireLensFacing(int);
+ }
+
+ @RequiresApi(21) @com.google.auto.value.AutoValue public abstract class CameraState {
+ ctor public CameraState();
+ method public static androidx.camera.core.CameraState create(androidx.camera.core.CameraState.Type);
+ method public static androidx.camera.core.CameraState create(androidx.camera.core.CameraState.Type, androidx.camera.core.CameraState.StateError?);
+ method public abstract androidx.camera.core.CameraState.StateError? getError();
+ method public abstract androidx.camera.core.CameraState.Type getType();
+ field public static final int ERROR_CAMERA_DISABLED = 5; // 0x5
+ field public static final int ERROR_CAMERA_FATAL_ERROR = 6; // 0x6
+ field public static final int ERROR_CAMERA_IN_USE = 2; // 0x2
+ field public static final int ERROR_DO_NOT_DISTURB_MODE_ENABLED = 7; // 0x7
+ field public static final int ERROR_MAX_CAMERAS_IN_USE = 1; // 0x1
+ field public static final int ERROR_OTHER_RECOVERABLE_ERROR = 3; // 0x3
+ field public static final int ERROR_STREAM_CONFIG = 4; // 0x4
+ }
+
+ public enum CameraState.ErrorType {
+ enum_constant public static final androidx.camera.core.CameraState.ErrorType CRITICAL;
+ enum_constant public static final androidx.camera.core.CameraState.ErrorType RECOVERABLE;
+ }
+
+ @com.google.auto.value.AutoValue public abstract static class CameraState.StateError {
+ ctor public CameraState.StateError();
+ method public static androidx.camera.core.CameraState.StateError create(int);
+ method public static androidx.camera.core.CameraState.StateError create(int, Throwable?);
+ method public abstract Throwable? getCause();
+ method public abstract int getCode();
+ method public androidx.camera.core.CameraState.ErrorType getType();
+ }
+
+ public enum CameraState.Type {
+ enum_constant public static final androidx.camera.core.CameraState.Type CLOSED;
+ enum_constant public static final androidx.camera.core.CameraState.Type CLOSING;
+ enum_constant public static final androidx.camera.core.CameraState.Type OPEN;
+ enum_constant public static final androidx.camera.core.CameraState.Type OPENING;
+ enum_constant public static final androidx.camera.core.CameraState.Type PENDING_OPEN;
+ }
+
+ @RequiresApi(21) public class CameraUnavailableException extends java.lang.Exception {
+ ctor public CameraUnavailableException(int);
+ ctor public CameraUnavailableException(int, String?);
+ ctor public CameraUnavailableException(int, String?, Throwable?);
+ ctor public CameraUnavailableException(int, Throwable?);
+ method public int getReason();
+ field public static final int CAMERA_DISABLED = 1; // 0x1
+ field public static final int CAMERA_DISCONNECTED = 2; // 0x2
+ field public static final int CAMERA_ERROR = 3; // 0x3
+ field public static final int CAMERA_IN_USE = 4; // 0x4
+ field public static final int CAMERA_MAX_IN_USE = 5; // 0x5
+ field public static final int CAMERA_UNAVAILABLE_DO_NOT_DISTURB = 6; // 0x6
+ field public static final int CAMERA_UNKNOWN_ERROR = 0; // 0x0
+ }
+
+ @RequiresApi(21) public final class CameraXConfig {
+ method public androidx.camera.core.CameraSelector? getAvailableCamerasLimiter(androidx.camera.core.CameraSelector?);
+ method public java.util.concurrent.Executor? getCameraExecutor(java.util.concurrent.Executor?);
+ method public int getMinimumLoggingLevel();
+ method public android.os.Handler? getSchedulerHandler(android.os.Handler?);
+ }
+
+ public static final class CameraXConfig.Builder {
+ method public androidx.camera.core.CameraXConfig build();
+ method public static androidx.camera.core.CameraXConfig.Builder fromConfig(androidx.camera.core.CameraXConfig);
+ method public androidx.camera.core.CameraXConfig.Builder setAvailableCamerasLimiter(androidx.camera.core.CameraSelector);
+ method public androidx.camera.core.CameraXConfig.Builder setCameraExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.CameraXConfig.Builder setMinimumLoggingLevel(@IntRange(from=android.util.Log.DEBUG, to=android.util.Log.ERROR) int);
+ method public androidx.camera.core.CameraXConfig.Builder setSchedulerHandler(android.os.Handler);
+ }
+
+ public static interface CameraXConfig.Provider {
+ method public androidx.camera.core.CameraXConfig getCameraXConfig();
+ }
+
+ @RequiresApi(21) public class ConcurrentCamera {
+ ctor public ConcurrentCamera(java.util.List<androidx.camera.core.Camera!>);
+ method public java.util.List<androidx.camera.core.Camera!> getCameras();
+ }
+
+ public static final class ConcurrentCamera.SingleCameraConfig {
+ ctor public ConcurrentCamera.SingleCameraConfig(androidx.camera.core.CameraSelector, androidx.camera.core.UseCaseGroup, androidx.lifecycle.LifecycleOwner);
+ method public androidx.camera.core.CameraSelector getCameraSelector();
+ method public androidx.lifecycle.LifecycleOwner getLifecycleOwner();
+ method public androidx.camera.core.UseCaseGroup getUseCaseGroup();
+ }
+
+ @RequiresApi(21) public final class DisplayOrientedMeteringPointFactory extends androidx.camera.core.MeteringPointFactory {
+ ctor public DisplayOrientedMeteringPointFactory(android.view.Display, androidx.camera.core.CameraInfo, float, float);
+ }
+
+ @RequiresApi(21) public final class DynamicRange {
+ ctor public DynamicRange(int, int);
+ method public int getBitDepth();
+ method public int getEncoding();
+ field public static final int BIT_DEPTH_10_BIT = 10; // 0xa
+ field public static final int BIT_DEPTH_8_BIT = 8; // 0x8
+ field public static final int BIT_DEPTH_UNSPECIFIED = 0; // 0x0
+ field public static final androidx.camera.core.DynamicRange DOLBY_VISION_10_BIT;
+ field public static final androidx.camera.core.DynamicRange DOLBY_VISION_8_BIT;
+ field public static final int ENCODING_DOLBY_VISION = 6; // 0x6
+ field public static final int ENCODING_HDR10 = 4; // 0x4
+ field public static final int ENCODING_HDR10_PLUS = 5; // 0x5
+ field public static final int ENCODING_HDR_UNSPECIFIED = 2; // 0x2
+ field public static final int ENCODING_HLG = 3; // 0x3
+ field public static final int ENCODING_SDR = 1; // 0x1
+ field public static final int ENCODING_UNSPECIFIED = 0; // 0x0
+ field public static final androidx.camera.core.DynamicRange HDR10_10_BIT;
+ field public static final androidx.camera.core.DynamicRange HDR10_PLUS_10_BIT;
+ field public static final androidx.camera.core.DynamicRange HDR_UNSPECIFIED_10_BIT;
+ field public static final androidx.camera.core.DynamicRange HLG_10_BIT;
+ field public static final androidx.camera.core.DynamicRange SDR;
+ field public static final androidx.camera.core.DynamicRange UNSPECIFIED;
+ }
+
+ @SuppressCompatibility @RequiresApi(21) @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalGetImage {
+ }
+
+ @SuppressCompatibility @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalLensFacing {
+ }
+
+ @SuppressCompatibility @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalUseCaseApi {
+ }
+
+ @SuppressCompatibility @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalZeroShutterLag {
+ }
+
+ @RequiresApi(21) public interface ExposureState {
+ method public int getExposureCompensationIndex();
+ method public android.util.Range<java.lang.Integer!> getExposureCompensationRange();
+ method public android.util.Rational getExposureCompensationStep();
+ method public boolean isExposureCompensationSupported();
+ }
+
+ @RequiresApi(21) public interface ExtendableBuilder<T> {
+ method public T build();
+ }
+
+ @RequiresApi(21) public final class FocusMeteringAction {
+ method public long getAutoCancelDurationInMillis();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAe();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAf();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAwb();
+ method public boolean isAutoCancelEnabled();
+ field public static final int FLAG_AE = 2; // 0x2
+ field public static final int FLAG_AF = 1; // 0x1
+ field public static final int FLAG_AWB = 4; // 0x4
+ }
+
+ public static class FocusMeteringAction.Builder {
+ ctor public FocusMeteringAction.Builder(androidx.camera.core.MeteringPoint);
+ ctor public FocusMeteringAction.Builder(androidx.camera.core.MeteringPoint, int);
+ method public androidx.camera.core.FocusMeteringAction.Builder addPoint(androidx.camera.core.MeteringPoint);
+ method public androidx.camera.core.FocusMeteringAction.Builder addPoint(androidx.camera.core.MeteringPoint, int);
+ method public androidx.camera.core.FocusMeteringAction build();
+ method public androidx.camera.core.FocusMeteringAction.Builder disableAutoCancel();
+ method public androidx.camera.core.FocusMeteringAction.Builder setAutoCancelDuration(@IntRange(from=1) long, java.util.concurrent.TimeUnit);
+ }
+
+ @RequiresApi(21) public final class FocusMeteringResult {
+ method public boolean isFocusSuccessful();
+ }
+
+ @RequiresApi(21) public final class ImageAnalysis extends androidx.camera.core.UseCase {
+ method public void clearAnalyzer();
+ method @SuppressCompatibility @androidx.camera.core.ExperimentalUseCaseApi public java.util.concurrent.Executor? getBackgroundExecutor();
+ method public int getBackpressureStrategy();
+ method public int getImageQueueDepth();
+ method public int getOutputImageFormat();
+ method public androidx.camera.core.ResolutionInfo? getResolutionInfo();
+ method public androidx.camera.core.resolutionselector.ResolutionSelector? getResolutionSelector();
+ method public int getTargetRotation();
+ method public boolean isOutputImageRotationEnabled();
+ method public void setAnalyzer(java.util.concurrent.Executor, androidx.camera.core.ImageAnalysis.Analyzer);
+ method public void setTargetRotation(int);
+ field public static final int COORDINATE_SYSTEM_ORIGINAL = 0; // 0x0
+ field public static final int OUTPUT_IMAGE_FORMAT_RGBA_8888 = 2; // 0x2
+ field public static final int OUTPUT_IMAGE_FORMAT_YUV_420_888 = 1; // 0x1
+ field public static final int STRATEGY_BLOCK_PRODUCER = 1; // 0x1
+ field public static final int STRATEGY_KEEP_ONLY_LATEST = 0; // 0x0
+ }
+
+ public static interface ImageAnalysis.Analyzer {
+ method public void analyze(androidx.camera.core.ImageProxy);
+ method public default android.util.Size? getDefaultTargetResolution();
+ method public default int getTargetCoordinateSystem();
+ method public default void updateTransform(android.graphics.Matrix?);
+ }
+
+ public static final class ImageAnalysis.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.ImageAnalysis> {
+ ctor public ImageAnalysis.Builder();
+ method public androidx.camera.core.ImageAnalysis build();
+ method public androidx.camera.core.ImageAnalysis.Builder setBackgroundExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.ImageAnalysis.Builder setBackpressureStrategy(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setImageQueueDepth(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setOutputImageFormat(int);
+ method @RequiresApi(23) public androidx.camera.core.ImageAnalysis.Builder setOutputImageRotationEnabled(boolean);
+ method public androidx.camera.core.ImageAnalysis.Builder setResolutionSelector(androidx.camera.core.resolutionselector.ResolutionSelector);
+ method @Deprecated public androidx.camera.core.ImageAnalysis.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetName(String);
+ method @Deprecated public androidx.camera.core.ImageAnalysis.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetRotation(int);
+ }
+
+ @RequiresApi(21) public final class ImageCapture extends androidx.camera.core.UseCase {
+ method public int getCaptureMode();
+ method public int getFlashMode();
+ method @IntRange(from=1, to=100) public int getJpegQuality();
+ method public androidx.camera.core.ResolutionInfo? getResolutionInfo();
+ method public androidx.camera.core.resolutionselector.ResolutionSelector? getResolutionSelector();
+ method public int getTargetRotation();
+ method public void setCropAspectRatio(android.util.Rational);
+ method public void setFlashMode(int);
+ method public void setTargetRotation(int);
+ method public void takePicture(androidx.camera.core.ImageCapture.OutputFileOptions, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
+ method public void takePicture(java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageCapturedCallback);
+ field public static final int CAPTURE_MODE_MAXIMIZE_QUALITY = 0; // 0x0
+ field public static final int CAPTURE_MODE_MINIMIZE_LATENCY = 1; // 0x1
+ field @SuppressCompatibility @androidx.camera.core.ExperimentalZeroShutterLag public static final int CAPTURE_MODE_ZERO_SHUTTER_LAG = 2; // 0x2
+ field public static final int ERROR_CAMERA_CLOSED = 3; // 0x3
+ field public static final int ERROR_CAPTURE_FAILED = 2; // 0x2
+ field public static final int ERROR_FILE_IO = 1; // 0x1
+ field public static final int ERROR_INVALID_CAMERA = 4; // 0x4
+ field public static final int ERROR_UNKNOWN = 0; // 0x0
+ field public static final int FLASH_MODE_AUTO = 0; // 0x0
+ field public static final int FLASH_MODE_OFF = 2; // 0x2
+ field public static final int FLASH_MODE_ON = 1; // 0x1
+ }
+
+ public static final class ImageCapture.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.ImageCapture> {
+ ctor public ImageCapture.Builder();
+ method public androidx.camera.core.ImageCapture build();
+ method public androidx.camera.core.ImageCapture.Builder setCaptureMode(int);
+ method public androidx.camera.core.ImageCapture.Builder setFlashMode(int);
+ method public androidx.camera.core.ImageCapture.Builder setIoExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.ImageCapture.Builder setJpegQuality(@IntRange(from=1, to=100) int);
+ method public androidx.camera.core.ImageCapture.Builder setResolutionSelector(androidx.camera.core.resolutionselector.ResolutionSelector);
+ method @Deprecated public androidx.camera.core.ImageCapture.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.ImageCapture.Builder setTargetName(String);
+ method @Deprecated public androidx.camera.core.ImageCapture.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.ImageCapture.Builder setTargetRotation(int);
+ }
+
+ public static final class ImageCapture.Metadata {
+ ctor public ImageCapture.Metadata();
+ method public android.location.Location? getLocation();
+ method public boolean isReversedHorizontal();
+ method public boolean isReversedVertical();
+ method public void setLocation(android.location.Location?);
+ method public void setReversedHorizontal(boolean);
+ method public void setReversedVertical(boolean);
+ }
+
+ public abstract static class ImageCapture.OnImageCapturedCallback {
+ ctor public ImageCapture.OnImageCapturedCallback();
+ method public void onCaptureSuccess(androidx.camera.core.ImageProxy);
+ method public void onError(androidx.camera.core.ImageCaptureException);
+ }
+
+ public static interface ImageCapture.OnImageSavedCallback {
+ method public void onError(androidx.camera.core.ImageCaptureException);
+ method public void onImageSaved(androidx.camera.core.ImageCapture.OutputFileResults);
+ }
+
+ public static final class ImageCapture.OutputFileOptions {
+ }
+
+ public static final class ImageCapture.OutputFileOptions.Builder {
+ ctor public ImageCapture.OutputFileOptions.Builder(android.content.ContentResolver, android.net.Uri, android.content.ContentValues);
+ ctor public ImageCapture.OutputFileOptions.Builder(java.io.File);
+ ctor public ImageCapture.OutputFileOptions.Builder(java.io.OutputStream);
+ method public androidx.camera.core.ImageCapture.OutputFileOptions build();
+ method public androidx.camera.core.ImageCapture.OutputFileOptions.Builder setMetadata(androidx.camera.core.ImageCapture.Metadata);
+ }
+
+ public static class ImageCapture.OutputFileResults {
+ method public android.net.Uri? getSavedUri();
+ }
+
+ @RequiresApi(21) public class ImageCaptureException extends java.lang.Exception {
+ ctor public ImageCaptureException(int, String, Throwable?);
+ method public int getImageCaptureError();
+ }
+
+ @RequiresApi(21) public interface ImageInfo {
+ method public int getRotationDegrees();
+ method public default android.graphics.Matrix getSensorToBufferTransformMatrix();
+ method public long getTimestamp();
+ }
+
+ public interface ImageProcessor {
+ method public androidx.camera.core.ImageProcessor.Response process(androidx.camera.core.ImageProcessor.Request) throws androidx.camera.core.ProcessingException;
+ }
+
+ public static interface ImageProcessor.Request {
+ method public androidx.camera.core.ImageProxy getInputImage();
+ method public int getOutputFormat();
+ }
+
+ public static interface ImageProcessor.Response {
+ method public androidx.camera.core.ImageProxy getOutputImage();
+ }
+
+ @RequiresApi(21) public interface ImageProxy extends java.lang.AutoCloseable {
+ method public void close();
+ method public android.graphics.Rect getCropRect();
+ method public int getFormat();
+ method public int getHeight();
+ method @SuppressCompatibility @androidx.camera.core.ExperimentalGetImage public android.media.Image? getImage();
+ method public androidx.camera.core.ImageInfo getImageInfo();
+ method public androidx.camera.core.ImageProxy.PlaneProxy![] getPlanes();
+ method public int getWidth();
+ method public void setCropRect(android.graphics.Rect?);
+ method public default android.graphics.Bitmap toBitmap();
+ }
+
+ public static interface ImageProxy.PlaneProxy {
+ method public java.nio.ByteBuffer getBuffer();
+ method public int getPixelStride();
+ method public int getRowStride();
+ }
+
+ @RequiresApi(21) public class InitializationException extends java.lang.Exception {
+ ctor public InitializationException(String?);
+ ctor public InitializationException(String?, Throwable?);
+ ctor public InitializationException(Throwable?);
+ }
+
+ @RequiresApi(21) public class MeteringPoint {
+ method public float getSize();
+ }
+
+ @RequiresApi(21) public abstract class MeteringPointFactory {
+ method public final androidx.camera.core.MeteringPoint createPoint(float, float);
+ method public final androidx.camera.core.MeteringPoint createPoint(float, float, float);
+ method public static float getDefaultPointSize();
+ }
+
+ @RequiresApi(21) public class MirrorMode {
+ field public static final int MIRROR_MODE_OFF = 0; // 0x0
+ field public static final int MIRROR_MODE_ON = 1; // 0x1
+ field public static final int MIRROR_MODE_ON_FRONT_ONLY = 2; // 0x2
+ }
+
+ @RequiresApi(21) public final class Preview extends androidx.camera.core.UseCase {
+ method public androidx.camera.core.ResolutionInfo? getResolutionInfo();
+ method public androidx.camera.core.resolutionselector.ResolutionSelector? getResolutionSelector();
+ method public android.util.Range<java.lang.Integer!> getTargetFrameRate();
+ method public int getTargetRotation();
+ method @UiThread public void setSurfaceProvider(androidx.camera.core.Preview.SurfaceProvider?);
+ method @UiThread public void setSurfaceProvider(java.util.concurrent.Executor, androidx.camera.core.Preview.SurfaceProvider?);
+ method public void setTargetRotation(int);
+ }
+
+ public static final class Preview.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.Preview> {
+ ctor public Preview.Builder();
+ method public androidx.camera.core.Preview build();
+ method public androidx.camera.core.Preview.Builder setResolutionSelector(androidx.camera.core.resolutionselector.ResolutionSelector);
+ method @Deprecated public androidx.camera.core.Preview.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.Preview.Builder setTargetFrameRate(android.util.Range<java.lang.Integer!>);
+ method public androidx.camera.core.Preview.Builder setTargetName(String);
+ method @Deprecated public androidx.camera.core.Preview.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.Preview.Builder setTargetRotation(int);
+ }
+
+ public static interface Preview.SurfaceProvider {
+ method public void onSurfaceRequested(androidx.camera.core.SurfaceRequest);
+ }
+
+ public class ProcessingException extends java.lang.Exception {
+ ctor public ProcessingException();
+ }
+
+ @RequiresApi(21) public class ResolutionInfo {
+ ctor public ResolutionInfo(android.util.Size, android.graphics.Rect, int);
+ method public android.graphics.Rect getCropRect();
+ method public android.util.Size getResolution();
+ method public int getRotationDegrees();
+ }
+
+ @RequiresApi(21) public class SurfaceOrientedMeteringPointFactory extends androidx.camera.core.MeteringPointFactory {
+ ctor public SurfaceOrientedMeteringPointFactory(float, float);
+ ctor public SurfaceOrientedMeteringPointFactory(float, float, androidx.camera.core.UseCase);
+ }
+
+ public interface SurfaceOutput extends java.io.Closeable {
+ method public void close();
+ method public android.util.Size getSize();
+ method public android.view.Surface getSurface(java.util.concurrent.Executor, androidx.core.util.Consumer<androidx.camera.core.SurfaceOutput.Event!>);
+ method public int getTargets();
+ method public void updateTransformMatrix(float[], float[]);
+ }
+
+ @com.google.auto.value.AutoValue public abstract static class SurfaceOutput.Event {
+ method public abstract int getEventCode();
+ method public abstract androidx.camera.core.SurfaceOutput getSurfaceOutput();
+ field public static final int EVENT_REQUEST_CLOSE = 0; // 0x0
+ }
+
+ public interface SurfaceProcessor {
+ method public void onInputSurface(androidx.camera.core.SurfaceRequest) throws androidx.camera.core.ProcessingException;
+ method public void onOutputSurface(androidx.camera.core.SurfaceOutput) throws androidx.camera.core.ProcessingException;
+ }
+
+ @RequiresApi(21) public final class SurfaceRequest {
+ method public void addRequestCancellationListener(java.util.concurrent.Executor, Runnable);
+ method public void clearTransformationInfoListener();
+ method public androidx.camera.core.DynamicRange getDynamicRange();
+ method public android.util.Size getResolution();
+ method public boolean invalidate();
+ method public void provideSurface(android.view.Surface, java.util.concurrent.Executor, androidx.core.util.Consumer<androidx.camera.core.SurfaceRequest.Result!>);
+ method public void setTransformationInfoListener(java.util.concurrent.Executor, androidx.camera.core.SurfaceRequest.TransformationInfoListener);
+ method public boolean willNotProvideSurface();
+ }
+
+ @com.google.auto.value.AutoValue public abstract static class SurfaceRequest.Result {
+ method public abstract int getResultCode();
+ method public abstract android.view.Surface getSurface();
+ field public static final int RESULT_INVALID_SURFACE = 2; // 0x2
+ field public static final int RESULT_REQUEST_CANCELLED = 1; // 0x1
+ field public static final int RESULT_SURFACE_ALREADY_PROVIDED = 3; // 0x3
+ field public static final int RESULT_SURFACE_USED_SUCCESSFULLY = 0; // 0x0
+ field public static final int RESULT_WILL_NOT_PROVIDE_SURFACE = 4; // 0x4
+ }
+
+ @com.google.auto.value.AutoValue public abstract static class SurfaceRequest.TransformationInfo {
+ method public abstract android.graphics.Rect getCropRect();
+ method public abstract int getRotationDegrees();
+ }
+
+ public static interface SurfaceRequest.TransformationInfoListener {
+ method public void onTransformationInfoUpdate(androidx.camera.core.SurfaceRequest.TransformationInfo);
+ }
+
+ @RequiresApi(21) public class TorchState {
+ field public static final int OFF = 0; // 0x0
+ field public static final int ON = 1; // 0x1
+ }
+
+ @RequiresApi(21) public abstract class UseCase {
+ method public static int snapToSurfaceRotation(@IntRange(from=0, to=359) int);
+ }
+
+ @RequiresApi(21) public final class UseCaseGroup {
+ method public java.util.List<androidx.camera.core.CameraEffect!> getEffects();
+ method public java.util.List<androidx.camera.core.UseCase!> getUseCases();
+ method public androidx.camera.core.ViewPort? getViewPort();
+ }
+
+ public static final class UseCaseGroup.Builder {
+ ctor public UseCaseGroup.Builder();
+ method public androidx.camera.core.UseCaseGroup.Builder addEffect(androidx.camera.core.CameraEffect);
+ method public androidx.camera.core.UseCaseGroup.Builder addUseCase(androidx.camera.core.UseCase);
+ method public androidx.camera.core.UseCaseGroup build();
+ method public androidx.camera.core.UseCaseGroup.Builder setViewPort(androidx.camera.core.ViewPort);
+ }
+
+ @RequiresApi(21) public final class ViewPort {
+ method public android.util.Rational getAspectRatio();
+ method public int getLayoutDirection();
+ method public int getRotation();
+ method public int getScaleType();
+ field public static final int FILL_CENTER = 1; // 0x1
+ field public static final int FILL_END = 2; // 0x2
+ field public static final int FILL_START = 0; // 0x0
+ field public static final int FIT = 3; // 0x3
+ }
+
+ public static final class ViewPort.Builder {
+ ctor public ViewPort.Builder(android.util.Rational, int);
+ method public androidx.camera.core.ViewPort build();
+ method public androidx.camera.core.ViewPort.Builder setLayoutDirection(int);
+ method public androidx.camera.core.ViewPort.Builder setScaleType(int);
+ }
+
+ @RequiresApi(21) public interface ZoomState {
+ method public float getLinearZoom();
+ method public float getMaxZoomRatio();
+ method public float getMinZoomRatio();
+ method public float getZoomRatio();
+ }
+
+}
+
+package androidx.camera.core.resolutionselector {
+
+ @RequiresApi(21) public final class AspectRatioStrategy {
+ ctor public AspectRatioStrategy(int, int);
+ method public int getFallbackRule();
+ method public int getPreferredAspectRatio();
+ field public static final int FALLBACK_RULE_AUTO = 1; // 0x1
+ field public static final int FALLBACK_RULE_NONE = 0; // 0x0
+ field public static final androidx.camera.core.resolutionselector.AspectRatioStrategy RATIO_16_9_FALLBACK_AUTO_STRATEGY;
+ field public static final androidx.camera.core.resolutionselector.AspectRatioStrategy RATIO_4_3_FALLBACK_AUTO_STRATEGY;
+ }
+
+ @RequiresApi(21) public interface ResolutionFilter {
+ method public java.util.List<android.util.Size!> filter(java.util.List<android.util.Size!>, int);
+ }
+
+ @RequiresApi(21) public final class ResolutionSelector {
+ method public int getAllowedResolutionMode();
+ method public androidx.camera.core.resolutionselector.AspectRatioStrategy getAspectRatioStrategy();
+ method public androidx.camera.core.resolutionselector.ResolutionFilter? getResolutionFilter();
+ method public androidx.camera.core.resolutionselector.ResolutionStrategy? getResolutionStrategy();
+ field public static final int PREFER_CAPTURE_RATE_OVER_HIGHER_RESOLUTION = 0; // 0x0
+ field public static final int PREFER_HIGHER_RESOLUTION_OVER_CAPTURE_RATE = 1; // 0x1
+ }
+
+ public static final class ResolutionSelector.Builder {
+ ctor public ResolutionSelector.Builder();
+ method public androidx.camera.core.resolutionselector.ResolutionSelector build();
+ method public androidx.camera.core.resolutionselector.ResolutionSelector.Builder setAllowedResolutionMode(int);
+ method public androidx.camera.core.resolutionselector.ResolutionSelector.Builder setAspectRatioStrategy(androidx.camera.core.resolutionselector.AspectRatioStrategy);
+ method public androidx.camera.core.resolutionselector.ResolutionSelector.Builder setResolutionFilter(androidx.camera.core.resolutionselector.ResolutionFilter);
+ method public androidx.camera.core.resolutionselector.ResolutionSelector.Builder setResolutionStrategy(androidx.camera.core.resolutionselector.ResolutionStrategy);
+ }
+
+ @RequiresApi(21) public final class ResolutionStrategy {
+ ctor public ResolutionStrategy(android.util.Size, int);
+ method public android.util.Size? getBoundSize();
+ method public int getFallbackRule();
+ field public static final int FALLBACK_RULE_CLOSEST_HIGHER = 2; // 0x2
+ field public static final int FALLBACK_RULE_CLOSEST_HIGHER_THEN_LOWER = 1; // 0x1
+ field public static final int FALLBACK_RULE_CLOSEST_LOWER = 4; // 0x4
+ field public static final int FALLBACK_RULE_CLOSEST_LOWER_THEN_HIGHER = 3; // 0x3
+ field public static final int FALLBACK_RULE_NONE = 0; // 0x0
+ field public static final androidx.camera.core.resolutionselector.ResolutionStrategy HIGHEST_AVAILABLE_STRATEGY;
+ }
+
+}
+
diff --git a/camera/camera-effects-still-portrait/api/1.3.0-beta03.txt b/camera/camera-effects-still-portrait/api/1.3.0-beta03.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/camera/camera-effects-still-portrait/api/1.3.0-beta03.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/camera/camera-effects-still-portrait/api/res-1.3.0-beta03.txt b/camera/camera-effects-still-portrait/api/res-1.3.0-beta03.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/camera/camera-effects-still-portrait/api/res-1.3.0-beta03.txt
diff --git a/camera/camera-effects-still-portrait/api/restricted_1.3.0-beta03.txt b/camera/camera-effects-still-portrait/api/restricted_1.3.0-beta03.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/camera/camera-effects-still-portrait/api/restricted_1.3.0-beta03.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/camera/camera-effects/api/1.3.0-beta03.txt b/camera/camera-effects/api/1.3.0-beta03.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/camera/camera-effects/api/1.3.0-beta03.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/camera/camera-effects/api/res-1.3.0-beta03.txt b/camera/camera-effects/api/res-1.3.0-beta03.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/camera/camera-effects/api/res-1.3.0-beta03.txt
diff --git a/camera/camera-effects/api/restricted_1.3.0-beta03.txt b/camera/camera-effects/api/restricted_1.3.0-beta03.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/camera/camera-effects/api/restricted_1.3.0-beta03.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/camera/camera-extensions/api/1.3.0-beta03.txt b/camera/camera-extensions/api/1.3.0-beta03.txt
new file mode 100644
index 0000000..5c6e740
--- /dev/null
+++ b/camera/camera-extensions/api/1.3.0-beta03.txt
@@ -0,0 +1,22 @@
+// Signature format: 4.0
+package androidx.camera.extensions {
+
+ @RequiresApi(21) public final class ExtensionMode {
+ field public static final int AUTO = 5; // 0x5
+ field public static final int BOKEH = 1; // 0x1
+ field public static final int FACE_RETOUCH = 4; // 0x4
+ field public static final int HDR = 2; // 0x2
+ field public static final int NIGHT = 3; // 0x3
+ field public static final int NONE = 0; // 0x0
+ }
+
+ @RequiresApi(21) public final class ExtensionsManager {
+ method public android.util.Range<java.lang.Long!>? getEstimatedCaptureLatencyRange(androidx.camera.core.CameraSelector, int);
+ method public androidx.camera.core.CameraSelector getExtensionEnabledCameraSelector(androidx.camera.core.CameraSelector, int);
+ method public static com.google.common.util.concurrent.ListenableFuture<androidx.camera.extensions.ExtensionsManager!> getInstanceAsync(android.content.Context, androidx.camera.core.CameraProvider);
+ method public boolean isExtensionAvailable(androidx.camera.core.CameraSelector, int);
+ method public boolean isImageAnalysisSupported(androidx.camera.core.CameraSelector, int);
+ }
+
+}
+
diff --git a/camera/camera-extensions/api/res-1.3.0-beta03.txt b/camera/camera-extensions/api/res-1.3.0-beta03.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/camera/camera-extensions/api/res-1.3.0-beta03.txt
diff --git a/camera/camera-extensions/api/restricted_1.3.0-beta03.txt b/camera/camera-extensions/api/restricted_1.3.0-beta03.txt
new file mode 100644
index 0000000..5c6e740
--- /dev/null
+++ b/camera/camera-extensions/api/restricted_1.3.0-beta03.txt
@@ -0,0 +1,22 @@
+// Signature format: 4.0
+package androidx.camera.extensions {
+
+ @RequiresApi(21) public final class ExtensionMode {
+ field public static final int AUTO = 5; // 0x5
+ field public static final int BOKEH = 1; // 0x1
+ field public static final int FACE_RETOUCH = 4; // 0x4
+ field public static final int HDR = 2; // 0x2
+ field public static final int NIGHT = 3; // 0x3
+ field public static final int NONE = 0; // 0x0
+ }
+
+ @RequiresApi(21) public final class ExtensionsManager {
+ method public android.util.Range<java.lang.Long!>? getEstimatedCaptureLatencyRange(androidx.camera.core.CameraSelector, int);
+ method public androidx.camera.core.CameraSelector getExtensionEnabledCameraSelector(androidx.camera.core.CameraSelector, int);
+ method public static com.google.common.util.concurrent.ListenableFuture<androidx.camera.extensions.ExtensionsManager!> getInstanceAsync(android.content.Context, androidx.camera.core.CameraProvider);
+ method public boolean isExtensionAvailable(androidx.camera.core.CameraSelector, int);
+ method public boolean isImageAnalysisSupported(androidx.camera.core.CameraSelector, int);
+ }
+
+}
+
diff --git a/camera/camera-lifecycle/api/1.3.0-beta03.txt b/camera/camera-lifecycle/api/1.3.0-beta03.txt
new file mode 100644
index 0000000..d0621cb
--- /dev/null
+++ b/camera/camera-lifecycle/api/1.3.0-beta03.txt
@@ -0,0 +1,23 @@
+// Signature format: 4.0
+package androidx.camera.lifecycle {
+
+ @SuppressCompatibility @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalCameraProviderConfiguration {
+ }
+
+ @RequiresApi(21) public final class ProcessCameraProvider implements androidx.camera.core.CameraProvider {
+ method @MainThread public androidx.camera.core.Camera bindToLifecycle(androidx.lifecycle.LifecycleOwner, androidx.camera.core.CameraSelector, androidx.camera.core.UseCase!...);
+ method @MainThread public androidx.camera.core.Camera bindToLifecycle(androidx.lifecycle.LifecycleOwner, androidx.camera.core.CameraSelector, androidx.camera.core.UseCaseGroup);
+ method @MainThread public androidx.camera.core.ConcurrentCamera bindToLifecycle(java.util.List<androidx.camera.core.ConcurrentCamera.SingleCameraConfig!>);
+ method @SuppressCompatibility @androidx.camera.lifecycle.ExperimentalCameraProviderConfiguration public static void configureInstance(androidx.camera.core.CameraXConfig);
+ method public java.util.List<androidx.camera.core.CameraInfo!> getAvailableCameraInfos();
+ method public java.util.List<java.util.List<androidx.camera.core.CameraInfo!>!> getAvailableConcurrentCameraInfos();
+ method public static com.google.common.util.concurrent.ListenableFuture<androidx.camera.lifecycle.ProcessCameraProvider!> getInstance(android.content.Context);
+ method public boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public boolean isBound(androidx.camera.core.UseCase);
+ method @MainThread public boolean isConcurrentCameraModeOn();
+ method @MainThread public void unbind(androidx.camera.core.UseCase!...);
+ method @MainThread public void unbindAll();
+ }
+
+}
+
diff --git a/camera/camera-lifecycle/api/res-1.3.0-beta03.txt b/camera/camera-lifecycle/api/res-1.3.0-beta03.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/camera/camera-lifecycle/api/res-1.3.0-beta03.txt
diff --git a/camera/camera-lifecycle/api/restricted_1.3.0-beta03.txt b/camera/camera-lifecycle/api/restricted_1.3.0-beta03.txt
new file mode 100644
index 0000000..d0621cb
--- /dev/null
+++ b/camera/camera-lifecycle/api/restricted_1.3.0-beta03.txt
@@ -0,0 +1,23 @@
+// Signature format: 4.0
+package androidx.camera.lifecycle {
+
+ @SuppressCompatibility @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalCameraProviderConfiguration {
+ }
+
+ @RequiresApi(21) public final class ProcessCameraProvider implements androidx.camera.core.CameraProvider {
+ method @MainThread public androidx.camera.core.Camera bindToLifecycle(androidx.lifecycle.LifecycleOwner, androidx.camera.core.CameraSelector, androidx.camera.core.UseCase!...);
+ method @MainThread public androidx.camera.core.Camera bindToLifecycle(androidx.lifecycle.LifecycleOwner, androidx.camera.core.CameraSelector, androidx.camera.core.UseCaseGroup);
+ method @MainThread public androidx.camera.core.ConcurrentCamera bindToLifecycle(java.util.List<androidx.camera.core.ConcurrentCamera.SingleCameraConfig!>);
+ method @SuppressCompatibility @androidx.camera.lifecycle.ExperimentalCameraProviderConfiguration public static void configureInstance(androidx.camera.core.CameraXConfig);
+ method public java.util.List<androidx.camera.core.CameraInfo!> getAvailableCameraInfos();
+ method public java.util.List<java.util.List<androidx.camera.core.CameraInfo!>!> getAvailableConcurrentCameraInfos();
+ method public static com.google.common.util.concurrent.ListenableFuture<androidx.camera.lifecycle.ProcessCameraProvider!> getInstance(android.content.Context);
+ method public boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public boolean isBound(androidx.camera.core.UseCase);
+ method @MainThread public boolean isConcurrentCameraModeOn();
+ method @MainThread public void unbind(androidx.camera.core.UseCase!...);
+ method @MainThread public void unbindAll();
+ }
+
+}
+
diff --git a/camera/camera-mlkit-vision/api/1.3.0-beta03.txt b/camera/camera-mlkit-vision/api/1.3.0-beta03.txt
new file mode 100644
index 0000000..0599c25
--- /dev/null
+++ b/camera/camera-mlkit-vision/api/1.3.0-beta03.txt
@@ -0,0 +1,20 @@
+// Signature format: 4.0
+package androidx.camera.mlkit.vision {
+
+ @RequiresApi(21) public class MlKitAnalyzer implements androidx.camera.core.ImageAnalysis.Analyzer {
+ ctor public MlKitAnalyzer(java.util.List<com.google.mlkit.vision.interfaces.Detector<?>!>, int, java.util.concurrent.Executor, androidx.core.util.Consumer<androidx.camera.mlkit.vision.MlKitAnalyzer.Result!>);
+ method public final void analyze(androidx.camera.core.ImageProxy);
+ method public final android.util.Size getDefaultTargetResolution();
+ method public final int getTargetCoordinateSystem();
+ method public final void updateTransform(android.graphics.Matrix?);
+ }
+
+ public static final class MlKitAnalyzer.Result {
+ ctor public MlKitAnalyzer.Result(java.util.Map<com.google.mlkit.vision.interfaces.Detector<?>!,java.lang.Object!>, long, java.util.Map<com.google.mlkit.vision.interfaces.Detector<?>!,java.lang.Throwable!>);
+ method public Throwable? getThrowable(com.google.mlkit.vision.interfaces.Detector<?>);
+ method public long getTimestamp();
+ method public <T> T? getValue(com.google.mlkit.vision.interfaces.Detector<T!>);
+ }
+
+}
+
diff --git a/camera/camera-mlkit-vision/api/res-1.3.0-beta03.txt b/camera/camera-mlkit-vision/api/res-1.3.0-beta03.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/camera/camera-mlkit-vision/api/res-1.3.0-beta03.txt
diff --git a/camera/camera-mlkit-vision/api/restricted_1.3.0-beta03.txt b/camera/camera-mlkit-vision/api/restricted_1.3.0-beta03.txt
new file mode 100644
index 0000000..0599c25
--- /dev/null
+++ b/camera/camera-mlkit-vision/api/restricted_1.3.0-beta03.txt
@@ -0,0 +1,20 @@
+// Signature format: 4.0
+package androidx.camera.mlkit.vision {
+
+ @RequiresApi(21) public class MlKitAnalyzer implements androidx.camera.core.ImageAnalysis.Analyzer {
+ ctor public MlKitAnalyzer(java.util.List<com.google.mlkit.vision.interfaces.Detector<?>!>, int, java.util.concurrent.Executor, androidx.core.util.Consumer<androidx.camera.mlkit.vision.MlKitAnalyzer.Result!>);
+ method public final void analyze(androidx.camera.core.ImageProxy);
+ method public final android.util.Size getDefaultTargetResolution();
+ method public final int getTargetCoordinateSystem();
+ method public final void updateTransform(android.graphics.Matrix?);
+ }
+
+ public static final class MlKitAnalyzer.Result {
+ ctor public MlKitAnalyzer.Result(java.util.Map<com.google.mlkit.vision.interfaces.Detector<?>!,java.lang.Object!>, long, java.util.Map<com.google.mlkit.vision.interfaces.Detector<?>!,java.lang.Throwable!>);
+ method public Throwable? getThrowable(com.google.mlkit.vision.interfaces.Detector<?>);
+ method public long getTimestamp();
+ method public <T> T? getValue(com.google.mlkit.vision.interfaces.Detector<T!>);
+ }
+
+}
+
diff --git a/camera/camera-video/api/1.3.0-beta03.txt b/camera/camera-video/api/1.3.0-beta03.txt
new file mode 100644
index 0000000..b9cc77a
--- /dev/null
+++ b/camera/camera-video/api/1.3.0-beta03.txt
@@ -0,0 +1,207 @@
+// Signature format: 4.0
+package androidx.camera.video {
+
+ @RequiresApi(21) @com.google.auto.value.AutoValue public abstract class AudioStats {
+ method public abstract int getAudioState();
+ method public abstract Throwable? getErrorCause();
+ method public boolean hasAudio();
+ method public boolean hasError();
+ field public static final int AUDIO_STATE_ACTIVE = 0; // 0x0
+ field public static final int AUDIO_STATE_DISABLED = 1; // 0x1
+ field public static final int AUDIO_STATE_ENCODER_ERROR = 3; // 0x3
+ field public static final int AUDIO_STATE_MUTED = 5; // 0x5
+ field public static final int AUDIO_STATE_SOURCE_ERROR = 4; // 0x4
+ field public static final int AUDIO_STATE_SOURCE_SILENCED = 2; // 0x2
+ }
+
+ @SuppressCompatibility @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalPersistentRecording {
+ }
+
+ @RequiresApi(21) public class FallbackStrategy {
+ method public static androidx.camera.video.FallbackStrategy higherQualityOrLowerThan(androidx.camera.video.Quality);
+ method public static androidx.camera.video.FallbackStrategy higherQualityThan(androidx.camera.video.Quality);
+ method public static androidx.camera.video.FallbackStrategy lowerQualityOrHigherThan(androidx.camera.video.Quality);
+ method public static androidx.camera.video.FallbackStrategy lowerQualityThan(androidx.camera.video.Quality);
+ }
+
+ @RequiresApi(21) public final class FileDescriptorOutputOptions extends androidx.camera.video.OutputOptions {
+ method public android.os.ParcelFileDescriptor getParcelFileDescriptor();
+ }
+
+ @RequiresApi(21) public static final class FileDescriptorOutputOptions.Builder {
+ ctor public FileDescriptorOutputOptions.Builder(android.os.ParcelFileDescriptor);
+ method public androidx.camera.video.FileDescriptorOutputOptions build();
+ method public androidx.camera.video.FileDescriptorOutputOptions.Builder setDurationLimitMillis(@IntRange(from=0) long);
+ method public androidx.camera.video.FileDescriptorOutputOptions.Builder setFileSizeLimit(@IntRange(from=0) long);
+ method public androidx.camera.video.FileDescriptorOutputOptions.Builder setLocation(android.location.Location?);
+ }
+
+ @RequiresApi(21) public final class FileOutputOptions extends androidx.camera.video.OutputOptions {
+ method public java.io.File getFile();
+ }
+
+ @RequiresApi(21) public static final class FileOutputOptions.Builder {
+ ctor public FileOutputOptions.Builder(java.io.File);
+ method public androidx.camera.video.FileOutputOptions build();
+ method public androidx.camera.video.FileOutputOptions.Builder setDurationLimitMillis(@IntRange(from=0) long);
+ method public androidx.camera.video.FileOutputOptions.Builder setFileSizeLimit(@IntRange(from=0) long);
+ method public androidx.camera.video.FileOutputOptions.Builder setLocation(android.location.Location?);
+ }
+
+ @RequiresApi(21) public final class MediaStoreOutputOptions extends androidx.camera.video.OutputOptions {
+ method public android.net.Uri getCollectionUri();
+ method public android.content.ContentResolver getContentResolver();
+ method public android.content.ContentValues getContentValues();
+ field public static final android.content.ContentValues EMPTY_CONTENT_VALUES;
+ }
+
+ public static final class MediaStoreOutputOptions.Builder {
+ ctor public MediaStoreOutputOptions.Builder(android.content.ContentResolver, android.net.Uri);
+ method public androidx.camera.video.MediaStoreOutputOptions build();
+ method public androidx.camera.video.MediaStoreOutputOptions.Builder setContentValues(android.content.ContentValues);
+ method public androidx.camera.video.MediaStoreOutputOptions.Builder setDurationLimitMillis(@IntRange(from=0) long);
+ method public androidx.camera.video.MediaStoreOutputOptions.Builder setFileSizeLimit(@IntRange(from=0) long);
+ method public androidx.camera.video.MediaStoreOutputOptions.Builder setLocation(android.location.Location?);
+ }
+
+ @RequiresApi(21) public abstract class OutputOptions {
+ method @IntRange(from=0) public long getDurationLimitMillis();
+ method @IntRange(from=0) public long getFileSizeLimit();
+ method public android.location.Location? getLocation();
+ field public static final int DURATION_UNLIMITED = 0; // 0x0
+ field public static final int FILE_SIZE_UNLIMITED = 0; // 0x0
+ }
+
+ @RequiresApi(21) @com.google.auto.value.AutoValue public abstract class OutputResults {
+ ctor public OutputResults();
+ method public abstract android.net.Uri getOutputUri();
+ }
+
+ @RequiresApi(21) public final class PendingRecording {
+ method @SuppressCompatibility @androidx.camera.video.ExperimentalPersistentRecording public androidx.camera.video.PendingRecording asPersistentRecording();
+ method @CheckResult public androidx.camera.video.Recording start(java.util.concurrent.Executor, androidx.core.util.Consumer<androidx.camera.video.VideoRecordEvent!>);
+ method @RequiresPermission(android.Manifest.permission.RECORD_AUDIO) public androidx.camera.video.PendingRecording withAudioEnabled();
+ }
+
+ @RequiresApi(21) public class Quality {
+ field public static final androidx.camera.video.Quality FHD;
+ field public static final androidx.camera.video.Quality HD;
+ field public static final androidx.camera.video.Quality HIGHEST;
+ field public static final androidx.camera.video.Quality LOWEST;
+ field public static final androidx.camera.video.Quality SD;
+ field public static final androidx.camera.video.Quality UHD;
+ }
+
+ @RequiresApi(21) public final class QualitySelector {
+ method public static androidx.camera.video.QualitySelector from(androidx.camera.video.Quality);
+ method public static androidx.camera.video.QualitySelector from(androidx.camera.video.Quality, androidx.camera.video.FallbackStrategy);
+ method public static androidx.camera.video.QualitySelector fromOrderedList(java.util.List<androidx.camera.video.Quality!>);
+ method public static androidx.camera.video.QualitySelector fromOrderedList(java.util.List<androidx.camera.video.Quality!>, androidx.camera.video.FallbackStrategy);
+ method public static android.util.Size? getResolution(androidx.camera.core.CameraInfo, androidx.camera.video.Quality);
+ method @Deprecated public static java.util.List<androidx.camera.video.Quality!> getSupportedQualities(androidx.camera.core.CameraInfo);
+ method @Deprecated public static boolean isQualitySupported(androidx.camera.core.CameraInfo, androidx.camera.video.Quality);
+ }
+
+ @RequiresApi(21) public final class Recorder implements androidx.camera.video.VideoOutput {
+ method public int getAspectRatio();
+ method public java.util.concurrent.Executor? getExecutor();
+ method public androidx.camera.video.QualitySelector getQualitySelector();
+ method public int getTargetVideoEncodingBitRate();
+ method public static androidx.camera.video.VideoCapabilities getVideoCapabilities(androidx.camera.core.CameraInfo);
+ method public void onSurfaceRequested(androidx.camera.core.SurfaceRequest);
+ method @RequiresApi(26) public androidx.camera.video.PendingRecording prepareRecording(android.content.Context, androidx.camera.video.FileDescriptorOutputOptions);
+ method public androidx.camera.video.PendingRecording prepareRecording(android.content.Context, androidx.camera.video.FileOutputOptions);
+ method public androidx.camera.video.PendingRecording prepareRecording(android.content.Context, androidx.camera.video.MediaStoreOutputOptions);
+ field public static final androidx.camera.video.QualitySelector DEFAULT_QUALITY_SELECTOR;
+ }
+
+ @RequiresApi(21) public static final class Recorder.Builder {
+ ctor public Recorder.Builder();
+ method public androidx.camera.video.Recorder build();
+ method public androidx.camera.video.Recorder.Builder setAspectRatio(int);
+ method public androidx.camera.video.Recorder.Builder setExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.video.Recorder.Builder setQualitySelector(androidx.camera.video.QualitySelector);
+ method public androidx.camera.video.Recorder.Builder setTargetVideoEncodingBitRate(@IntRange(from=1) int);
+ }
+
+ @RequiresApi(21) public final class Recording implements java.lang.AutoCloseable {
+ method public void close();
+ method @SuppressCompatibility @androidx.camera.video.ExperimentalPersistentRecording public boolean isPersistent();
+ method public void mute(boolean);
+ method public void pause();
+ method public void resume();
+ method public void stop();
+ }
+
+ @RequiresApi(21) @com.google.auto.value.AutoValue public abstract class RecordingStats {
+ method public abstract androidx.camera.video.AudioStats getAudioStats();
+ method public abstract long getNumBytesRecorded();
+ method public abstract long getRecordedDurationNanos();
+ }
+
+ @RequiresApi(21) public interface VideoCapabilities {
+ method public java.util.Set<androidx.camera.core.DynamicRange!> getSupportedDynamicRanges();
+ method public java.util.List<androidx.camera.video.Quality!> getSupportedQualities(androidx.camera.core.DynamicRange);
+ method public boolean isQualitySupported(androidx.camera.video.Quality, androidx.camera.core.DynamicRange);
+ }
+
+ @RequiresApi(21) public final class VideoCapture<T extends androidx.camera.video.VideoOutput> extends androidx.camera.core.UseCase {
+ method public androidx.camera.core.DynamicRange getDynamicRange();
+ method public int getMirrorMode();
+ method public T getOutput();
+ method public android.util.Range<java.lang.Integer!> getTargetFrameRate();
+ method public int getTargetRotation();
+ method public void setTargetRotation(int);
+ method public static <T extends androidx.camera.video.VideoOutput> androidx.camera.video.VideoCapture<T!> withOutput(T);
+ }
+
+ @RequiresApi(21) public static final class VideoCapture.Builder<T extends androidx.camera.video.VideoOutput> implements androidx.camera.core.ExtendableBuilder<androidx.camera.video.VideoCapture> {
+ ctor public VideoCapture.Builder(T);
+ method public androidx.camera.video.VideoCapture<T!> build();
+ method public androidx.camera.video.VideoCapture.Builder<T!> setDynamicRange(androidx.camera.core.DynamicRange);
+ method public androidx.camera.video.VideoCapture.Builder<T!> setMirrorMode(int);
+ method public androidx.camera.video.VideoCapture.Builder<T!> setTargetFrameRate(android.util.Range<java.lang.Integer!>);
+ method public androidx.camera.video.VideoCapture.Builder<T!> setTargetRotation(int);
+ }
+
+ @RequiresApi(21) public interface VideoOutput {
+ method public void onSurfaceRequested(androidx.camera.core.SurfaceRequest);
+ }
+
+ @RequiresApi(21) public abstract class VideoRecordEvent {
+ method public androidx.camera.video.OutputOptions getOutputOptions();
+ method public androidx.camera.video.RecordingStats getRecordingStats();
+ }
+
+ @RequiresApi(21) public static final class VideoRecordEvent.Finalize extends androidx.camera.video.VideoRecordEvent {
+ method public Throwable? getCause();
+ method public int getError();
+ method public androidx.camera.video.OutputResults getOutputResults();
+ method public boolean hasError();
+ field public static final int ERROR_DURATION_LIMIT_REACHED = 9; // 0x9
+ field public static final int ERROR_ENCODING_FAILED = 6; // 0x6
+ field public static final int ERROR_FILE_SIZE_LIMIT_REACHED = 2; // 0x2
+ field public static final int ERROR_INSUFFICIENT_STORAGE = 3; // 0x3
+ field public static final int ERROR_INVALID_OUTPUT_OPTIONS = 5; // 0x5
+ field public static final int ERROR_NONE = 0; // 0x0
+ field public static final int ERROR_NO_VALID_DATA = 8; // 0x8
+ field public static final int ERROR_RECORDER_ERROR = 7; // 0x7
+ field public static final int ERROR_RECORDING_GARBAGE_COLLECTED = 10; // 0xa
+ field public static final int ERROR_SOURCE_INACTIVE = 4; // 0x4
+ field public static final int ERROR_UNKNOWN = 1; // 0x1
+ }
+
+ @RequiresApi(21) public static final class VideoRecordEvent.Pause extends androidx.camera.video.VideoRecordEvent {
+ }
+
+ @RequiresApi(21) public static final class VideoRecordEvent.Resume extends androidx.camera.video.VideoRecordEvent {
+ }
+
+ @RequiresApi(21) public static final class VideoRecordEvent.Start extends androidx.camera.video.VideoRecordEvent {
+ }
+
+ @RequiresApi(21) public static final class VideoRecordEvent.Status extends androidx.camera.video.VideoRecordEvent {
+ }
+
+}
+
diff --git a/camera/camera-video/api/res-1.3.0-beta03.txt b/camera/camera-video/api/res-1.3.0-beta03.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/camera/camera-video/api/res-1.3.0-beta03.txt
diff --git a/camera/camera-video/api/restricted_1.3.0-beta03.txt b/camera/camera-video/api/restricted_1.3.0-beta03.txt
new file mode 100644
index 0000000..b9cc77a
--- /dev/null
+++ b/camera/camera-video/api/restricted_1.3.0-beta03.txt
@@ -0,0 +1,207 @@
+// Signature format: 4.0
+package androidx.camera.video {
+
+ @RequiresApi(21) @com.google.auto.value.AutoValue public abstract class AudioStats {
+ method public abstract int getAudioState();
+ method public abstract Throwable? getErrorCause();
+ method public boolean hasAudio();
+ method public boolean hasError();
+ field public static final int AUDIO_STATE_ACTIVE = 0; // 0x0
+ field public static final int AUDIO_STATE_DISABLED = 1; // 0x1
+ field public static final int AUDIO_STATE_ENCODER_ERROR = 3; // 0x3
+ field public static final int AUDIO_STATE_MUTED = 5; // 0x5
+ field public static final int AUDIO_STATE_SOURCE_ERROR = 4; // 0x4
+ field public static final int AUDIO_STATE_SOURCE_SILENCED = 2; // 0x2
+ }
+
+ @SuppressCompatibility @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalPersistentRecording {
+ }
+
+ @RequiresApi(21) public class FallbackStrategy {
+ method public static androidx.camera.video.FallbackStrategy higherQualityOrLowerThan(androidx.camera.video.Quality);
+ method public static androidx.camera.video.FallbackStrategy higherQualityThan(androidx.camera.video.Quality);
+ method public static androidx.camera.video.FallbackStrategy lowerQualityOrHigherThan(androidx.camera.video.Quality);
+ method public static androidx.camera.video.FallbackStrategy lowerQualityThan(androidx.camera.video.Quality);
+ }
+
+ @RequiresApi(21) public final class FileDescriptorOutputOptions extends androidx.camera.video.OutputOptions {
+ method public android.os.ParcelFileDescriptor getParcelFileDescriptor();
+ }
+
+ @RequiresApi(21) public static final class FileDescriptorOutputOptions.Builder {
+ ctor public FileDescriptorOutputOptions.Builder(android.os.ParcelFileDescriptor);
+ method public androidx.camera.video.FileDescriptorOutputOptions build();
+ method public androidx.camera.video.FileDescriptorOutputOptions.Builder setDurationLimitMillis(@IntRange(from=0) long);
+ method public androidx.camera.video.FileDescriptorOutputOptions.Builder setFileSizeLimit(@IntRange(from=0) long);
+ method public androidx.camera.video.FileDescriptorOutputOptions.Builder setLocation(android.location.Location?);
+ }
+
+ @RequiresApi(21) public final class FileOutputOptions extends androidx.camera.video.OutputOptions {
+ method public java.io.File getFile();
+ }
+
+ @RequiresApi(21) public static final class FileOutputOptions.Builder {
+ ctor public FileOutputOptions.Builder(java.io.File);
+ method public androidx.camera.video.FileOutputOptions build();
+ method public androidx.camera.video.FileOutputOptions.Builder setDurationLimitMillis(@IntRange(from=0) long);
+ method public androidx.camera.video.FileOutputOptions.Builder setFileSizeLimit(@IntRange(from=0) long);
+ method public androidx.camera.video.FileOutputOptions.Builder setLocation(android.location.Location?);
+ }
+
+ @RequiresApi(21) public final class MediaStoreOutputOptions extends androidx.camera.video.OutputOptions {
+ method public android.net.Uri getCollectionUri();
+ method public android.content.ContentResolver getContentResolver();
+ method public android.content.ContentValues getContentValues();
+ field public static final android.content.ContentValues EMPTY_CONTENT_VALUES;
+ }
+
+ public static final class MediaStoreOutputOptions.Builder {
+ ctor public MediaStoreOutputOptions.Builder(android.content.ContentResolver, android.net.Uri);
+ method public androidx.camera.video.MediaStoreOutputOptions build();
+ method public androidx.camera.video.MediaStoreOutputOptions.Builder setContentValues(android.content.ContentValues);
+ method public androidx.camera.video.MediaStoreOutputOptions.Builder setDurationLimitMillis(@IntRange(from=0) long);
+ method public androidx.camera.video.MediaStoreOutputOptions.Builder setFileSizeLimit(@IntRange(from=0) long);
+ method public androidx.camera.video.MediaStoreOutputOptions.Builder setLocation(android.location.Location?);
+ }
+
+ @RequiresApi(21) public abstract class OutputOptions {
+ method @IntRange(from=0) public long getDurationLimitMillis();
+ method @IntRange(from=0) public long getFileSizeLimit();
+ method public android.location.Location? getLocation();
+ field public static final int DURATION_UNLIMITED = 0; // 0x0
+ field public static final int FILE_SIZE_UNLIMITED = 0; // 0x0
+ }
+
+ @RequiresApi(21) @com.google.auto.value.AutoValue public abstract class OutputResults {
+ ctor public OutputResults();
+ method public abstract android.net.Uri getOutputUri();
+ }
+
+ @RequiresApi(21) public final class PendingRecording {
+ method @SuppressCompatibility @androidx.camera.video.ExperimentalPersistentRecording public androidx.camera.video.PendingRecording asPersistentRecording();
+ method @CheckResult public androidx.camera.video.Recording start(java.util.concurrent.Executor, androidx.core.util.Consumer<androidx.camera.video.VideoRecordEvent!>);
+ method @RequiresPermission(android.Manifest.permission.RECORD_AUDIO) public androidx.camera.video.PendingRecording withAudioEnabled();
+ }
+
+ @RequiresApi(21) public class Quality {
+ field public static final androidx.camera.video.Quality FHD;
+ field public static final androidx.camera.video.Quality HD;
+ field public static final androidx.camera.video.Quality HIGHEST;
+ field public static final androidx.camera.video.Quality LOWEST;
+ field public static final androidx.camera.video.Quality SD;
+ field public static final androidx.camera.video.Quality UHD;
+ }
+
+ @RequiresApi(21) public final class QualitySelector {
+ method public static androidx.camera.video.QualitySelector from(androidx.camera.video.Quality);
+ method public static androidx.camera.video.QualitySelector from(androidx.camera.video.Quality, androidx.camera.video.FallbackStrategy);
+ method public static androidx.camera.video.QualitySelector fromOrderedList(java.util.List<androidx.camera.video.Quality!>);
+ method public static androidx.camera.video.QualitySelector fromOrderedList(java.util.List<androidx.camera.video.Quality!>, androidx.camera.video.FallbackStrategy);
+ method public static android.util.Size? getResolution(androidx.camera.core.CameraInfo, androidx.camera.video.Quality);
+ method @Deprecated public static java.util.List<androidx.camera.video.Quality!> getSupportedQualities(androidx.camera.core.CameraInfo);
+ method @Deprecated public static boolean isQualitySupported(androidx.camera.core.CameraInfo, androidx.camera.video.Quality);
+ }
+
+ @RequiresApi(21) public final class Recorder implements androidx.camera.video.VideoOutput {
+ method public int getAspectRatio();
+ method public java.util.concurrent.Executor? getExecutor();
+ method public androidx.camera.video.QualitySelector getQualitySelector();
+ method public int getTargetVideoEncodingBitRate();
+ method public static androidx.camera.video.VideoCapabilities getVideoCapabilities(androidx.camera.core.CameraInfo);
+ method public void onSurfaceRequested(androidx.camera.core.SurfaceRequest);
+ method @RequiresApi(26) public androidx.camera.video.PendingRecording prepareRecording(android.content.Context, androidx.camera.video.FileDescriptorOutputOptions);
+ method public androidx.camera.video.PendingRecording prepareRecording(android.content.Context, androidx.camera.video.FileOutputOptions);
+ method public androidx.camera.video.PendingRecording prepareRecording(android.content.Context, androidx.camera.video.MediaStoreOutputOptions);
+ field public static final androidx.camera.video.QualitySelector DEFAULT_QUALITY_SELECTOR;
+ }
+
+ @RequiresApi(21) public static final class Recorder.Builder {
+ ctor public Recorder.Builder();
+ method public androidx.camera.video.Recorder build();
+ method public androidx.camera.video.Recorder.Builder setAspectRatio(int);
+ method public androidx.camera.video.Recorder.Builder setExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.video.Recorder.Builder setQualitySelector(androidx.camera.video.QualitySelector);
+ method public androidx.camera.video.Recorder.Builder setTargetVideoEncodingBitRate(@IntRange(from=1) int);
+ }
+
+ @RequiresApi(21) public final class Recording implements java.lang.AutoCloseable {
+ method public void close();
+ method @SuppressCompatibility @androidx.camera.video.ExperimentalPersistentRecording public boolean isPersistent();
+ method public void mute(boolean);
+ method public void pause();
+ method public void resume();
+ method public void stop();
+ }
+
+ @RequiresApi(21) @com.google.auto.value.AutoValue public abstract class RecordingStats {
+ method public abstract androidx.camera.video.AudioStats getAudioStats();
+ method public abstract long getNumBytesRecorded();
+ method public abstract long getRecordedDurationNanos();
+ }
+
+ @RequiresApi(21) public interface VideoCapabilities {
+ method public java.util.Set<androidx.camera.core.DynamicRange!> getSupportedDynamicRanges();
+ method public java.util.List<androidx.camera.video.Quality!> getSupportedQualities(androidx.camera.core.DynamicRange);
+ method public boolean isQualitySupported(androidx.camera.video.Quality, androidx.camera.core.DynamicRange);
+ }
+
+ @RequiresApi(21) public final class VideoCapture<T extends androidx.camera.video.VideoOutput> extends androidx.camera.core.UseCase {
+ method public androidx.camera.core.DynamicRange getDynamicRange();
+ method public int getMirrorMode();
+ method public T getOutput();
+ method public android.util.Range<java.lang.Integer!> getTargetFrameRate();
+ method public int getTargetRotation();
+ method public void setTargetRotation(int);
+ method public static <T extends androidx.camera.video.VideoOutput> androidx.camera.video.VideoCapture<T!> withOutput(T);
+ }
+
+ @RequiresApi(21) public static final class VideoCapture.Builder<T extends androidx.camera.video.VideoOutput> implements androidx.camera.core.ExtendableBuilder<androidx.camera.video.VideoCapture> {
+ ctor public VideoCapture.Builder(T);
+ method public androidx.camera.video.VideoCapture<T!> build();
+ method public androidx.camera.video.VideoCapture.Builder<T!> setDynamicRange(androidx.camera.core.DynamicRange);
+ method public androidx.camera.video.VideoCapture.Builder<T!> setMirrorMode(int);
+ method public androidx.camera.video.VideoCapture.Builder<T!> setTargetFrameRate(android.util.Range<java.lang.Integer!>);
+ method public androidx.camera.video.VideoCapture.Builder<T!> setTargetRotation(int);
+ }
+
+ @RequiresApi(21) public interface VideoOutput {
+ method public void onSurfaceRequested(androidx.camera.core.SurfaceRequest);
+ }
+
+ @RequiresApi(21) public abstract class VideoRecordEvent {
+ method public androidx.camera.video.OutputOptions getOutputOptions();
+ method public androidx.camera.video.RecordingStats getRecordingStats();
+ }
+
+ @RequiresApi(21) public static final class VideoRecordEvent.Finalize extends androidx.camera.video.VideoRecordEvent {
+ method public Throwable? getCause();
+ method public int getError();
+ method public androidx.camera.video.OutputResults getOutputResults();
+ method public boolean hasError();
+ field public static final int ERROR_DURATION_LIMIT_REACHED = 9; // 0x9
+ field public static final int ERROR_ENCODING_FAILED = 6; // 0x6
+ field public static final int ERROR_FILE_SIZE_LIMIT_REACHED = 2; // 0x2
+ field public static final int ERROR_INSUFFICIENT_STORAGE = 3; // 0x3
+ field public static final int ERROR_INVALID_OUTPUT_OPTIONS = 5; // 0x5
+ field public static final int ERROR_NONE = 0; // 0x0
+ field public static final int ERROR_NO_VALID_DATA = 8; // 0x8
+ field public static final int ERROR_RECORDER_ERROR = 7; // 0x7
+ field public static final int ERROR_RECORDING_GARBAGE_COLLECTED = 10; // 0xa
+ field public static final int ERROR_SOURCE_INACTIVE = 4; // 0x4
+ field public static final int ERROR_UNKNOWN = 1; // 0x1
+ }
+
+ @RequiresApi(21) public static final class VideoRecordEvent.Pause extends androidx.camera.video.VideoRecordEvent {
+ }
+
+ @RequiresApi(21) public static final class VideoRecordEvent.Resume extends androidx.camera.video.VideoRecordEvent {
+ }
+
+ @RequiresApi(21) public static final class VideoRecordEvent.Start extends androidx.camera.video.VideoRecordEvent {
+ }
+
+ @RequiresApi(21) public static final class VideoRecordEvent.Status extends androidx.camera.video.VideoRecordEvent {
+ }
+
+}
+
diff --git a/camera/camera-video/src/main/java/androidx/camera/video/internal/compat/quirk/MediaCodecInfoReportIncorrectInfoQuirk.java b/camera/camera-video/src/main/java/androidx/camera/video/internal/compat/quirk/MediaCodecInfoReportIncorrectInfoQuirk.java
index 735a24e..5abd8cf 100644
--- a/camera/camera-video/src/main/java/androidx/camera/video/internal/compat/quirk/MediaCodecInfoReportIncorrectInfoQuirk.java
+++ b/camera/camera-video/src/main/java/androidx/camera/video/internal/compat/quirk/MediaCodecInfoReportIncorrectInfoQuirk.java
@@ -42,6 +42,8 @@
* Bug Id: 192431846, 199582287, 218841498, 203481899, 216583006, 278843124, 278855948
* Description: Quirk which denotes {@link MediaCodecInfo} queried by {@link MediaCodecList}
* returns incorrect info.
+ * <ul>
+ * <li>
* On Nokia 1, {@link CamcorderProfile} indicates it can support resolutions
* 1280x720 and 640x480 for video codec type
* {@link android.media.MediaRecorder.VideoEncoder#MPEG_4_SP}, which maps to
@@ -54,8 +56,14 @@
* "video/mp4v-es" with 1280x720 or 640x480 can be used to record video. So the
* maximum supported resolution 174x174 is probably incorrect for
* "video/mp4v-es" and doesn't make sense. See b/192431846#comment3.
+ * </li>
+ * <li>
* Motc C, X650 and LG-X230 have the same problem as Nokia 1. See b/199582287
+ * </li>
+ * <li>
* Positivo Twist 2 Pro have the same problem as Nokia 1. See b/218841498
+ * </li>
+ * <li>
* On Huawei Mate9, {@link CamcorderProfile} indicates it can support
* resolutions 3840x2160 for video codec type
* {@link android.media.MediaRecorder.VideoEncoder#HEVC}, but the current video
@@ -65,19 +73,30 @@
* unsupported resolution for 3840x2160, it only support 3840x2112. By
* experimental result, H.264 + 3840x2160 can be used to record video on this
* device. Hence use quirk to workaround this case. See b/203481899#comment2.
- * @link MediaCodecInfo} searched by {@link MediaCodecList#getCodecInfos()}
+ * </li>
+ * <li>
+ * On Redmi Note 8 Pro, {@link CamcorderProfile} indicates it can support
+ * 3840x2160, but {@link MediaCodecInfo.VideoCapabilities#isSizeSupported}
+ * returns {@code false} for 3840x2160. By experimental result, 3840x2160 can be
+ * used to record video on this device. See b/293827733.
+ * </li>
+ * <li>
+ * {@link MediaCodecInfo} searched by {@link MediaCodecList#getCodecInfos()}
* shows the maximum supported resolution of the AVC encoder is 1920x1072.
* However, the 1920x1080 option can be successfully configured properly.
- * See b/216583006, b/278843124, b/278855948.
- * Device(s): Nokia 1, Motc C, X650, LG-X230, Positivo Twist 2 Pro, Huawei Mate9, Redmi note 4
- * , LG K10 LTE K430, Samsung Galaxy A03 Core, Vivo Y75, Realme C11 2021
+ * See b/216583006, b/278843124, b/278855948, b/293827733.
+ * </li>
+ * </ul>
+ * Device(s): Nokia 1, Motc C, X650, LG-X230, Positivo Twist 2 Pro, Huawei Mate9,
+ * Redmi Note 8 Pro, Redmi Note 4, Redmi Note 9, LG K10 LTE K430,
+ * Samsung Galaxy A03 Core, Vivo Y75, Realme C11 2021
*/
@RequiresApi(21) // TODO(b/200306659): Remove and replace with annotation on package-info.java
public class MediaCodecInfoReportIncorrectInfoQuirk implements Quirk {
static boolean load() {
return isNokia1() || isMotoC() || isX650() || isX230() || isHuaweiMate9()
- || isPositivoTwist2Pro() || isFHDProblematicDevice();
+ || isRedmiNote8Pro() || isPositivoTwist2Pro() || isFHDProblematicDevice();
}
private static boolean isNokia1() {
@@ -101,6 +120,11 @@
return "Huawei".equalsIgnoreCase(Build.BRAND) && "mha-l29".equalsIgnoreCase(Build.MODEL);
}
+ private static boolean isRedmiNote8Pro() {
+ return "Redmi".equalsIgnoreCase(Build.BRAND) && "Redmi Note 8 Pro".equalsIgnoreCase(
+ Build.MODEL);
+ }
+
private static boolean isPositivoTwist2Pro() {
return "positivo".equalsIgnoreCase(Build.BRAND) && "twist 2 pro".equalsIgnoreCase(
Build.MODEL);
@@ -109,6 +133,7 @@
public static final List<String> INCORRECT_FHD_PROFILE_MODEL_LIST = Arrays.asList(
"lg-k430",
"redmi note 4",
+ "m2003j15sc", // Redmi Note 9
"rmx3231",
"v2117",
"sm-a032f",
@@ -121,7 +146,7 @@
MediaFormatResolver formatResolver = new MediaFormatResolver(mediaFormat);
if (isNokia1() || isMotoC() || isX650() || isX230() || isPositivoTwist2Pro()) {
return formatResolver.isMpeg4();
- } else if (isHuaweiMate9()) {
+ } else if (isHuaweiMate9() || isRedmiNote8Pro()) {
return formatResolver.isVideo() && formatResolver.isSize(3840, 2160);
} else if (isFHDProblematicDevice()) {
return formatResolver.isAvc() && formatResolver.isSize(1920, 1080);
diff --git a/camera/camera-view/api/1.3.0-beta03.txt b/camera/camera-view/api/1.3.0-beta03.txt
new file mode 100644
index 0000000..6184aeb
--- /dev/null
+++ b/camera/camera-view/api/1.3.0-beta03.txt
@@ -0,0 +1,173 @@
+// Signature format: 4.0
+package androidx.camera.view {
+
+ @RequiresApi(21) public abstract class CameraController {
+ method @MainThread public void clearEffects();
+ method @MainThread public void clearImageAnalysisAnalyzer();
+ method @MainThread public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> enableTorch(boolean);
+ method @MainThread public androidx.camera.core.CameraControl? getCameraControl();
+ method @MainThread public androidx.camera.core.CameraInfo? getCameraInfo();
+ method @MainThread public androidx.camera.core.CameraSelector getCameraSelector();
+ method @MainThread public java.util.concurrent.Executor? getImageAnalysisBackgroundExecutor();
+ method @MainThread public int getImageAnalysisBackpressureStrategy();
+ method @MainThread public int getImageAnalysisImageQueueDepth();
+ method @MainThread public androidx.camera.view.CameraController.OutputSize? getImageAnalysisTargetSize();
+ method @MainThread public int getImageCaptureFlashMode();
+ method @MainThread public java.util.concurrent.Executor? getImageCaptureIoExecutor();
+ method @MainThread public int getImageCaptureMode();
+ method @MainThread public androidx.camera.view.CameraController.OutputSize? getImageCaptureTargetSize();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> getInitializationFuture();
+ method @MainThread public androidx.camera.view.CameraController.OutputSize? getPreviewTargetSize();
+ method @MainThread public androidx.lifecycle.LiveData<java.lang.Integer!> getTapToFocusState();
+ method @MainThread public androidx.lifecycle.LiveData<java.lang.Integer!> getTorchState();
+ method @MainThread public androidx.camera.video.QualitySelector getVideoCaptureQualitySelector();
+ method @MainThread public androidx.lifecycle.LiveData<androidx.camera.core.ZoomState!> getZoomState();
+ method @MainThread public boolean hasCamera(androidx.camera.core.CameraSelector);
+ method @MainThread public boolean isImageAnalysisEnabled();
+ method @MainThread public boolean isImageCaptureEnabled();
+ method @MainThread public boolean isPinchToZoomEnabled();
+ method @MainThread public boolean isRecording();
+ method @MainThread public boolean isTapToFocusEnabled();
+ method @MainThread public boolean isVideoCaptureEnabled();
+ method @MainThread public void setCameraSelector(androidx.camera.core.CameraSelector);
+ method @MainThread public void setEffects(java.util.Set<androidx.camera.core.CameraEffect!>);
+ method @MainThread public void setEnabledUseCases(int);
+ method @MainThread public void setImageAnalysisAnalyzer(java.util.concurrent.Executor, androidx.camera.core.ImageAnalysis.Analyzer);
+ method @MainThread public void setImageAnalysisBackgroundExecutor(java.util.concurrent.Executor?);
+ method @MainThread public void setImageAnalysisBackpressureStrategy(int);
+ method @MainThread public void setImageAnalysisImageQueueDepth(int);
+ method @MainThread public void setImageAnalysisTargetSize(androidx.camera.view.CameraController.OutputSize?);
+ method @MainThread public void setImageCaptureFlashMode(int);
+ method @MainThread public void setImageCaptureIoExecutor(java.util.concurrent.Executor?);
+ method @MainThread public void setImageCaptureMode(int);
+ method @MainThread public void setImageCaptureTargetSize(androidx.camera.view.CameraController.OutputSize?);
+ method @MainThread public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setLinearZoom(@FloatRange(from=0.0f, to=1.0f) float);
+ method @MainThread public void setPinchToZoomEnabled(boolean);
+ method @MainThread public void setPreviewTargetSize(androidx.camera.view.CameraController.OutputSize?);
+ method @MainThread public void setTapToFocusEnabled(boolean);
+ method @MainThread public void setVideoCaptureQualitySelector(androidx.camera.video.QualitySelector);
+ method @MainThread public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setZoomRatio(float);
+ method @MainThread @RequiresApi(26) public androidx.camera.video.Recording startRecording(androidx.camera.video.FileDescriptorOutputOptions, androidx.camera.view.video.AudioConfig, java.util.concurrent.Executor, androidx.core.util.Consumer<androidx.camera.video.VideoRecordEvent!>);
+ method @MainThread public androidx.camera.video.Recording startRecording(androidx.camera.video.FileOutputOptions, androidx.camera.view.video.AudioConfig, java.util.concurrent.Executor, androidx.core.util.Consumer<androidx.camera.video.VideoRecordEvent!>);
+ method @MainThread public androidx.camera.video.Recording startRecording(androidx.camera.video.MediaStoreOutputOptions, androidx.camera.view.video.AudioConfig, java.util.concurrent.Executor, androidx.core.util.Consumer<androidx.camera.video.VideoRecordEvent!>);
+ method @MainThread public void takePicture(androidx.camera.core.ImageCapture.OutputFileOptions, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
+ method @MainThread public void takePicture(java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageCapturedCallback);
+ field public static final int COORDINATE_SYSTEM_VIEW_REFERENCED = 1; // 0x1
+ field public static final int IMAGE_ANALYSIS = 2; // 0x2
+ field public static final int IMAGE_CAPTURE = 1; // 0x1
+ field public static final int TAP_TO_FOCUS_FAILED = 4; // 0x4
+ field public static final int TAP_TO_FOCUS_FOCUSED = 2; // 0x2
+ field public static final int TAP_TO_FOCUS_NOT_FOCUSED = 3; // 0x3
+ field public static final int TAP_TO_FOCUS_NOT_STARTED = 0; // 0x0
+ field public static final int TAP_TO_FOCUS_STARTED = 1; // 0x1
+ field public static final int VIDEO_CAPTURE = 4; // 0x4
+ }
+
+ @RequiresApi(21) public static final class CameraController.OutputSize {
+ ctor public CameraController.OutputSize(android.util.Size);
+ ctor public CameraController.OutputSize(int);
+ method public int getAspectRatio();
+ method public android.util.Size? getResolution();
+ field public static final int UNASSIGNED_ASPECT_RATIO = -1; // 0xffffffff
+ }
+
+ @RequiresApi(21) public final class LifecycleCameraController extends androidx.camera.view.CameraController {
+ ctor public LifecycleCameraController(android.content.Context);
+ method @MainThread public void bindToLifecycle(androidx.lifecycle.LifecycleOwner);
+ method @MainThread public void unbind();
+ }
+
+ @RequiresApi(21) public final class PreviewView extends android.widget.FrameLayout {
+ ctor @UiThread public PreviewView(android.content.Context);
+ ctor @UiThread public PreviewView(android.content.Context, android.util.AttributeSet?);
+ ctor @UiThread public PreviewView(android.content.Context, android.util.AttributeSet?, int);
+ ctor @UiThread public PreviewView(android.content.Context, android.util.AttributeSet?, int, int);
+ method @UiThread public android.graphics.Bitmap? getBitmap();
+ method @UiThread public androidx.camera.view.CameraController? getController();
+ method @UiThread public androidx.camera.view.PreviewView.ImplementationMode getImplementationMode();
+ method @UiThread public androidx.camera.core.MeteringPointFactory getMeteringPointFactory();
+ method @SuppressCompatibility public androidx.camera.view.transform.OutputTransform? getOutputTransform();
+ method public androidx.lifecycle.LiveData<androidx.camera.view.PreviewView.StreamState!> getPreviewStreamState();
+ method @UiThread public androidx.camera.view.PreviewView.ScaleType getScaleType();
+ method @UiThread public androidx.camera.core.Preview.SurfaceProvider getSurfaceProvider();
+ method @UiThread public androidx.camera.core.ViewPort? getViewPort();
+ method @UiThread public androidx.camera.core.ViewPort? getViewPort(int);
+ method @UiThread public void setController(androidx.camera.view.CameraController?);
+ method @UiThread public void setImplementationMode(androidx.camera.view.PreviewView.ImplementationMode);
+ method @UiThread public void setScaleType(androidx.camera.view.PreviewView.ScaleType);
+ }
+
+ @RequiresApi(21) public enum PreviewView.ImplementationMode {
+ enum_constant public static final androidx.camera.view.PreviewView.ImplementationMode COMPATIBLE;
+ enum_constant public static final androidx.camera.view.PreviewView.ImplementationMode PERFORMANCE;
+ }
+
+ @RequiresApi(21) public enum PreviewView.ScaleType {
+ enum_constant public static final androidx.camera.view.PreviewView.ScaleType FILL_CENTER;
+ enum_constant public static final androidx.camera.view.PreviewView.ScaleType FILL_END;
+ enum_constant public static final androidx.camera.view.PreviewView.ScaleType FILL_START;
+ enum_constant public static final androidx.camera.view.PreviewView.ScaleType FIT_CENTER;
+ enum_constant public static final androidx.camera.view.PreviewView.ScaleType FIT_END;
+ enum_constant public static final androidx.camera.view.PreviewView.ScaleType FIT_START;
+ }
+
+ public enum PreviewView.StreamState {
+ enum_constant public static final androidx.camera.view.PreviewView.StreamState IDLE;
+ enum_constant public static final androidx.camera.view.PreviewView.StreamState STREAMING;
+ }
+
+ @RequiresApi(21) public final class RotationProvider {
+ ctor public RotationProvider(android.content.Context);
+ method @CheckResult public boolean addListener(java.util.concurrent.Executor, androidx.camera.view.RotationProvider.Listener);
+ method public void removeListener(androidx.camera.view.RotationProvider.Listener);
+ }
+
+ public static interface RotationProvider.Listener {
+ method public void onRotationChanged(int);
+ }
+
+}
+
+package androidx.camera.view.transform {
+
+ @SuppressCompatibility @RequiresApi(21) public final class CoordinateTransform {
+ ctor public CoordinateTransform(androidx.camera.view.transform.OutputTransform, androidx.camera.view.transform.OutputTransform);
+ method public void mapPoint(android.graphics.PointF);
+ method public void mapPoints(float[]);
+ method public void mapRect(android.graphics.RectF);
+ method public void transform(android.graphics.Matrix);
+ }
+
+ @SuppressCompatibility @RequiresApi(21) public final class FileTransformFactory {
+ ctor public FileTransformFactory();
+ method public androidx.camera.view.transform.OutputTransform getOutputTransform(android.content.ContentResolver, android.net.Uri) throws java.io.IOException;
+ method public androidx.camera.view.transform.OutputTransform getOutputTransform(java.io.File) throws java.io.IOException;
+ method public androidx.camera.view.transform.OutputTransform getOutputTransform(java.io.InputStream) throws java.io.IOException;
+ method public boolean isUsingExifOrientation();
+ method public void setUsingExifOrientation(boolean);
+ }
+
+ @SuppressCompatibility @RequiresApi(21) public final class ImageProxyTransformFactory {
+ ctor public ImageProxyTransformFactory();
+ method public androidx.camera.view.transform.OutputTransform getOutputTransform(androidx.camera.core.ImageProxy);
+ method public boolean isUsingCropRect();
+ method public boolean isUsingRotationDegrees();
+ method public void setUsingCropRect(boolean);
+ method public void setUsingRotationDegrees(boolean);
+ }
+
+ @SuppressCompatibility @RequiresApi(21) public final class OutputTransform {
+ }
+
+}
+
+package androidx.camera.view.video {
+
+ @RequiresApi(21) public class AudioConfig {
+ method @RequiresPermission(android.Manifest.permission.RECORD_AUDIO) public static androidx.camera.view.video.AudioConfig create(boolean);
+ method public boolean getAudioEnabled();
+ field public static final androidx.camera.view.video.AudioConfig AUDIO_DISABLED;
+ }
+
+}
+
diff --git a/camera/camera-view/api/res-1.3.0-beta03.txt b/camera/camera-view/api/res-1.3.0-beta03.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/camera/camera-view/api/res-1.3.0-beta03.txt
diff --git a/camera/camera-view/api/restricted_1.3.0-beta03.txt b/camera/camera-view/api/restricted_1.3.0-beta03.txt
new file mode 100644
index 0000000..6184aeb
--- /dev/null
+++ b/camera/camera-view/api/restricted_1.3.0-beta03.txt
@@ -0,0 +1,173 @@
+// Signature format: 4.0
+package androidx.camera.view {
+
+ @RequiresApi(21) public abstract class CameraController {
+ method @MainThread public void clearEffects();
+ method @MainThread public void clearImageAnalysisAnalyzer();
+ method @MainThread public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> enableTorch(boolean);
+ method @MainThread public androidx.camera.core.CameraControl? getCameraControl();
+ method @MainThread public androidx.camera.core.CameraInfo? getCameraInfo();
+ method @MainThread public androidx.camera.core.CameraSelector getCameraSelector();
+ method @MainThread public java.util.concurrent.Executor? getImageAnalysisBackgroundExecutor();
+ method @MainThread public int getImageAnalysisBackpressureStrategy();
+ method @MainThread public int getImageAnalysisImageQueueDepth();
+ method @MainThread public androidx.camera.view.CameraController.OutputSize? getImageAnalysisTargetSize();
+ method @MainThread public int getImageCaptureFlashMode();
+ method @MainThread public java.util.concurrent.Executor? getImageCaptureIoExecutor();
+ method @MainThread public int getImageCaptureMode();
+ method @MainThread public androidx.camera.view.CameraController.OutputSize? getImageCaptureTargetSize();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> getInitializationFuture();
+ method @MainThread public androidx.camera.view.CameraController.OutputSize? getPreviewTargetSize();
+ method @MainThread public androidx.lifecycle.LiveData<java.lang.Integer!> getTapToFocusState();
+ method @MainThread public androidx.lifecycle.LiveData<java.lang.Integer!> getTorchState();
+ method @MainThread public androidx.camera.video.QualitySelector getVideoCaptureQualitySelector();
+ method @MainThread public androidx.lifecycle.LiveData<androidx.camera.core.ZoomState!> getZoomState();
+ method @MainThread public boolean hasCamera(androidx.camera.core.CameraSelector);
+ method @MainThread public boolean isImageAnalysisEnabled();
+ method @MainThread public boolean isImageCaptureEnabled();
+ method @MainThread public boolean isPinchToZoomEnabled();
+ method @MainThread public boolean isRecording();
+ method @MainThread public boolean isTapToFocusEnabled();
+ method @MainThread public boolean isVideoCaptureEnabled();
+ method @MainThread public void setCameraSelector(androidx.camera.core.CameraSelector);
+ method @MainThread public void setEffects(java.util.Set<androidx.camera.core.CameraEffect!>);
+ method @MainThread public void setEnabledUseCases(int);
+ method @MainThread public void setImageAnalysisAnalyzer(java.util.concurrent.Executor, androidx.camera.core.ImageAnalysis.Analyzer);
+ method @MainThread public void setImageAnalysisBackgroundExecutor(java.util.concurrent.Executor?);
+ method @MainThread public void setImageAnalysisBackpressureStrategy(int);
+ method @MainThread public void setImageAnalysisImageQueueDepth(int);
+ method @MainThread public void setImageAnalysisTargetSize(androidx.camera.view.CameraController.OutputSize?);
+ method @MainThread public void setImageCaptureFlashMode(int);
+ method @MainThread public void setImageCaptureIoExecutor(java.util.concurrent.Executor?);
+ method @MainThread public void setImageCaptureMode(int);
+ method @MainThread public void setImageCaptureTargetSize(androidx.camera.view.CameraController.OutputSize?);
+ method @MainThread public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setLinearZoom(@FloatRange(from=0.0f, to=1.0f) float);
+ method @MainThread public void setPinchToZoomEnabled(boolean);
+ method @MainThread public void setPreviewTargetSize(androidx.camera.view.CameraController.OutputSize?);
+ method @MainThread public void setTapToFocusEnabled(boolean);
+ method @MainThread public void setVideoCaptureQualitySelector(androidx.camera.video.QualitySelector);
+ method @MainThread public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setZoomRatio(float);
+ method @MainThread @RequiresApi(26) public androidx.camera.video.Recording startRecording(androidx.camera.video.FileDescriptorOutputOptions, androidx.camera.view.video.AudioConfig, java.util.concurrent.Executor, androidx.core.util.Consumer<androidx.camera.video.VideoRecordEvent!>);
+ method @MainThread public androidx.camera.video.Recording startRecording(androidx.camera.video.FileOutputOptions, androidx.camera.view.video.AudioConfig, java.util.concurrent.Executor, androidx.core.util.Consumer<androidx.camera.video.VideoRecordEvent!>);
+ method @MainThread public androidx.camera.video.Recording startRecording(androidx.camera.video.MediaStoreOutputOptions, androidx.camera.view.video.AudioConfig, java.util.concurrent.Executor, androidx.core.util.Consumer<androidx.camera.video.VideoRecordEvent!>);
+ method @MainThread public void takePicture(androidx.camera.core.ImageCapture.OutputFileOptions, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
+ method @MainThread public void takePicture(java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageCapturedCallback);
+ field public static final int COORDINATE_SYSTEM_VIEW_REFERENCED = 1; // 0x1
+ field public static final int IMAGE_ANALYSIS = 2; // 0x2
+ field public static final int IMAGE_CAPTURE = 1; // 0x1
+ field public static final int TAP_TO_FOCUS_FAILED = 4; // 0x4
+ field public static final int TAP_TO_FOCUS_FOCUSED = 2; // 0x2
+ field public static final int TAP_TO_FOCUS_NOT_FOCUSED = 3; // 0x3
+ field public static final int TAP_TO_FOCUS_NOT_STARTED = 0; // 0x0
+ field public static final int TAP_TO_FOCUS_STARTED = 1; // 0x1
+ field public static final int VIDEO_CAPTURE = 4; // 0x4
+ }
+
+ @RequiresApi(21) public static final class CameraController.OutputSize {
+ ctor public CameraController.OutputSize(android.util.Size);
+ ctor public CameraController.OutputSize(int);
+ method public int getAspectRatio();
+ method public android.util.Size? getResolution();
+ field public static final int UNASSIGNED_ASPECT_RATIO = -1; // 0xffffffff
+ }
+
+ @RequiresApi(21) public final class LifecycleCameraController extends androidx.camera.view.CameraController {
+ ctor public LifecycleCameraController(android.content.Context);
+ method @MainThread public void bindToLifecycle(androidx.lifecycle.LifecycleOwner);
+ method @MainThread public void unbind();
+ }
+
+ @RequiresApi(21) public final class PreviewView extends android.widget.FrameLayout {
+ ctor @UiThread public PreviewView(android.content.Context);
+ ctor @UiThread public PreviewView(android.content.Context, android.util.AttributeSet?);
+ ctor @UiThread public PreviewView(android.content.Context, android.util.AttributeSet?, int);
+ ctor @UiThread public PreviewView(android.content.Context, android.util.AttributeSet?, int, int);
+ method @UiThread public android.graphics.Bitmap? getBitmap();
+ method @UiThread public androidx.camera.view.CameraController? getController();
+ method @UiThread public androidx.camera.view.PreviewView.ImplementationMode getImplementationMode();
+ method @UiThread public androidx.camera.core.MeteringPointFactory getMeteringPointFactory();
+ method @SuppressCompatibility public androidx.camera.view.transform.OutputTransform? getOutputTransform();
+ method public androidx.lifecycle.LiveData<androidx.camera.view.PreviewView.StreamState!> getPreviewStreamState();
+ method @UiThread public androidx.camera.view.PreviewView.ScaleType getScaleType();
+ method @UiThread public androidx.camera.core.Preview.SurfaceProvider getSurfaceProvider();
+ method @UiThread public androidx.camera.core.ViewPort? getViewPort();
+ method @UiThread public androidx.camera.core.ViewPort? getViewPort(int);
+ method @UiThread public void setController(androidx.camera.view.CameraController?);
+ method @UiThread public void setImplementationMode(androidx.camera.view.PreviewView.ImplementationMode);
+ method @UiThread public void setScaleType(androidx.camera.view.PreviewView.ScaleType);
+ }
+
+ @RequiresApi(21) public enum PreviewView.ImplementationMode {
+ enum_constant public static final androidx.camera.view.PreviewView.ImplementationMode COMPATIBLE;
+ enum_constant public static final androidx.camera.view.PreviewView.ImplementationMode PERFORMANCE;
+ }
+
+ @RequiresApi(21) public enum PreviewView.ScaleType {
+ enum_constant public static final androidx.camera.view.PreviewView.ScaleType FILL_CENTER;
+ enum_constant public static final androidx.camera.view.PreviewView.ScaleType FILL_END;
+ enum_constant public static final androidx.camera.view.PreviewView.ScaleType FILL_START;
+ enum_constant public static final androidx.camera.view.PreviewView.ScaleType FIT_CENTER;
+ enum_constant public static final androidx.camera.view.PreviewView.ScaleType FIT_END;
+ enum_constant public static final androidx.camera.view.PreviewView.ScaleType FIT_START;
+ }
+
+ public enum PreviewView.StreamState {
+ enum_constant public static final androidx.camera.view.PreviewView.StreamState IDLE;
+ enum_constant public static final androidx.camera.view.PreviewView.StreamState STREAMING;
+ }
+
+ @RequiresApi(21) public final class RotationProvider {
+ ctor public RotationProvider(android.content.Context);
+ method @CheckResult public boolean addListener(java.util.concurrent.Executor, androidx.camera.view.RotationProvider.Listener);
+ method public void removeListener(androidx.camera.view.RotationProvider.Listener);
+ }
+
+ public static interface RotationProvider.Listener {
+ method public void onRotationChanged(int);
+ }
+
+}
+
+package androidx.camera.view.transform {
+
+ @SuppressCompatibility @RequiresApi(21) public final class CoordinateTransform {
+ ctor public CoordinateTransform(androidx.camera.view.transform.OutputTransform, androidx.camera.view.transform.OutputTransform);
+ method public void mapPoint(android.graphics.PointF);
+ method public void mapPoints(float[]);
+ method public void mapRect(android.graphics.RectF);
+ method public void transform(android.graphics.Matrix);
+ }
+
+ @SuppressCompatibility @RequiresApi(21) public final class FileTransformFactory {
+ ctor public FileTransformFactory();
+ method public androidx.camera.view.transform.OutputTransform getOutputTransform(android.content.ContentResolver, android.net.Uri) throws java.io.IOException;
+ method public androidx.camera.view.transform.OutputTransform getOutputTransform(java.io.File) throws java.io.IOException;
+ method public androidx.camera.view.transform.OutputTransform getOutputTransform(java.io.InputStream) throws java.io.IOException;
+ method public boolean isUsingExifOrientation();
+ method public void setUsingExifOrientation(boolean);
+ }
+
+ @SuppressCompatibility @RequiresApi(21) public final class ImageProxyTransformFactory {
+ ctor public ImageProxyTransformFactory();
+ method public androidx.camera.view.transform.OutputTransform getOutputTransform(androidx.camera.core.ImageProxy);
+ method public boolean isUsingCropRect();
+ method public boolean isUsingRotationDegrees();
+ method public void setUsingCropRect(boolean);
+ method public void setUsingRotationDegrees(boolean);
+ }
+
+ @SuppressCompatibility @RequiresApi(21) public final class OutputTransform {
+ }
+
+}
+
+package androidx.camera.view.video {
+
+ @RequiresApi(21) public class AudioConfig {
+ method @RequiresPermission(android.Manifest.permission.RECORD_AUDIO) public static androidx.camera.view.video.AudioConfig create(boolean);
+ method public boolean getAudioEnabled();
+ field public static final androidx.camera.view.video.AudioConfig AUDIO_DISABLED;
+ }
+
+}
+
diff --git a/camera/camera-viewfinder-compose/api/1.3.0-beta03.txt b/camera/camera-viewfinder-compose/api/1.3.0-beta03.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/camera/camera-viewfinder-compose/api/1.3.0-beta03.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/camera/camera-viewfinder-compose/api/res-1.3.0-beta03.txt b/camera/camera-viewfinder-compose/api/res-1.3.0-beta03.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/camera/camera-viewfinder-compose/api/res-1.3.0-beta03.txt
diff --git a/camera/camera-viewfinder-compose/api/restricted_1.3.0-beta03.txt b/camera/camera-viewfinder-compose/api/restricted_1.3.0-beta03.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/camera/camera-viewfinder-compose/api/restricted_1.3.0-beta03.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/camera/camera-viewfinder-core/api/1.3.0-beta03.txt b/camera/camera-viewfinder-core/api/1.3.0-beta03.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/camera/camera-viewfinder-core/api/1.3.0-beta03.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/camera/camera-viewfinder-core/api/res-1.3.0-beta03.txt b/camera/camera-viewfinder-core/api/res-1.3.0-beta03.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/camera/camera-viewfinder-core/api/res-1.3.0-beta03.txt
diff --git a/camera/camera-viewfinder-core/api/restricted_1.3.0-beta03.txt b/camera/camera-viewfinder-core/api/restricted_1.3.0-beta03.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/camera/camera-viewfinder-core/api/restricted_1.3.0-beta03.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/camera/camera-viewfinder/api/1.3.0-beta03.txt b/camera/camera-viewfinder/api/1.3.0-beta03.txt
new file mode 100644
index 0000000..a7333d7
--- /dev/null
+++ b/camera/camera-viewfinder/api/1.3.0-beta03.txt
@@ -0,0 +1,58 @@
+// Signature format: 4.0
+package androidx.camera.viewfinder {
+
+ @RequiresApi(21) public final class CameraViewfinder extends android.widget.FrameLayout {
+ ctor @UiThread public CameraViewfinder(android.content.Context);
+ ctor @UiThread public CameraViewfinder(android.content.Context, android.util.AttributeSet?);
+ ctor @UiThread public CameraViewfinder(android.content.Context, android.util.AttributeSet?, int);
+ ctor @UiThread public CameraViewfinder(android.content.Context, android.util.AttributeSet?, int, int);
+ method @UiThread public android.graphics.Bitmap? getBitmap();
+ method @UiThread public androidx.camera.viewfinder.CameraViewfinder.ImplementationMode getImplementationMode();
+ method @UiThread public androidx.camera.viewfinder.CameraViewfinder.ScaleType getScaleType();
+ method @UiThread public com.google.common.util.concurrent.ListenableFuture<android.view.Surface!> requestSurfaceAsync(androidx.camera.viewfinder.ViewfinderSurfaceRequest);
+ method @UiThread public void setScaleType(androidx.camera.viewfinder.CameraViewfinder.ScaleType);
+ }
+
+ @RequiresApi(21) public enum CameraViewfinder.ImplementationMode {
+ enum_constant public static final androidx.camera.viewfinder.CameraViewfinder.ImplementationMode COMPATIBLE;
+ enum_constant public static final androidx.camera.viewfinder.CameraViewfinder.ImplementationMode PERFORMANCE;
+ }
+
+ @RequiresApi(21) public enum CameraViewfinder.ScaleType {
+ enum_constant public static final androidx.camera.viewfinder.CameraViewfinder.ScaleType FILL_CENTER;
+ enum_constant public static final androidx.camera.viewfinder.CameraViewfinder.ScaleType FILL_END;
+ enum_constant public static final androidx.camera.viewfinder.CameraViewfinder.ScaleType FILL_START;
+ enum_constant public static final androidx.camera.viewfinder.CameraViewfinder.ScaleType FIT_CENTER;
+ enum_constant public static final androidx.camera.viewfinder.CameraViewfinder.ScaleType FIT_END;
+ enum_constant public static final androidx.camera.viewfinder.CameraViewfinder.ScaleType FIT_START;
+ }
+
+ @RequiresApi(21) public final class CameraViewfinderExt {
+ method public suspend Object? requestSurface(androidx.camera.viewfinder.CameraViewfinder, androidx.camera.viewfinder.ViewfinderSurfaceRequest viewfinderSurfaceRequest, kotlin.coroutines.Continuation<? super android.view.Surface>);
+ field public static final androidx.camera.viewfinder.CameraViewfinderExt INSTANCE;
+ }
+
+ @RequiresApi(21) public class ViewfinderSurfaceRequest {
+ method public androidx.camera.viewfinder.CameraViewfinder.ImplementationMode? getImplementationMode();
+ method public int getLensFacing();
+ method public android.util.Size getResolution();
+ method public int getSensorOrientation();
+ method public void markSurfaceSafeToRelease();
+ }
+
+ public static final class ViewfinderSurfaceRequest.Builder {
+ ctor public ViewfinderSurfaceRequest.Builder(android.util.Size);
+ ctor public ViewfinderSurfaceRequest.Builder(androidx.camera.viewfinder.ViewfinderSurfaceRequest);
+ ctor public ViewfinderSurfaceRequest.Builder(androidx.camera.viewfinder.ViewfinderSurfaceRequest.Builder);
+ method public androidx.camera.viewfinder.ViewfinderSurfaceRequest build();
+ method public androidx.camera.viewfinder.ViewfinderSurfaceRequest.Builder setImplementationMode(androidx.camera.viewfinder.CameraViewfinder.ImplementationMode?);
+ method public androidx.camera.viewfinder.ViewfinderSurfaceRequest.Builder setLensFacing(int);
+ method public androidx.camera.viewfinder.ViewfinderSurfaceRequest.Builder setSensorOrientation(int);
+ }
+
+ public final class ViewfinderSurfaceRequestUtil {
+ method @RequiresApi(21) public static androidx.camera.viewfinder.ViewfinderSurfaceRequest.Builder populateFromCharacteristics(androidx.camera.viewfinder.ViewfinderSurfaceRequest.Builder, android.hardware.camera2.CameraCharacteristics cameraCharacteristics);
+ }
+
+}
+
diff --git a/camera/camera-viewfinder/api/res-1.3.0-beta03.txt b/camera/camera-viewfinder/api/res-1.3.0-beta03.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/camera/camera-viewfinder/api/res-1.3.0-beta03.txt
diff --git a/camera/camera-viewfinder/api/restricted_1.3.0-beta03.txt b/camera/camera-viewfinder/api/restricted_1.3.0-beta03.txt
new file mode 100644
index 0000000..a7333d7
--- /dev/null
+++ b/camera/camera-viewfinder/api/restricted_1.3.0-beta03.txt
@@ -0,0 +1,58 @@
+// Signature format: 4.0
+package androidx.camera.viewfinder {
+
+ @RequiresApi(21) public final class CameraViewfinder extends android.widget.FrameLayout {
+ ctor @UiThread public CameraViewfinder(android.content.Context);
+ ctor @UiThread public CameraViewfinder(android.content.Context, android.util.AttributeSet?);
+ ctor @UiThread public CameraViewfinder(android.content.Context, android.util.AttributeSet?, int);
+ ctor @UiThread public CameraViewfinder(android.content.Context, android.util.AttributeSet?, int, int);
+ method @UiThread public android.graphics.Bitmap? getBitmap();
+ method @UiThread public androidx.camera.viewfinder.CameraViewfinder.ImplementationMode getImplementationMode();
+ method @UiThread public androidx.camera.viewfinder.CameraViewfinder.ScaleType getScaleType();
+ method @UiThread public com.google.common.util.concurrent.ListenableFuture<android.view.Surface!> requestSurfaceAsync(androidx.camera.viewfinder.ViewfinderSurfaceRequest);
+ method @UiThread public void setScaleType(androidx.camera.viewfinder.CameraViewfinder.ScaleType);
+ }
+
+ @RequiresApi(21) public enum CameraViewfinder.ImplementationMode {
+ enum_constant public static final androidx.camera.viewfinder.CameraViewfinder.ImplementationMode COMPATIBLE;
+ enum_constant public static final androidx.camera.viewfinder.CameraViewfinder.ImplementationMode PERFORMANCE;
+ }
+
+ @RequiresApi(21) public enum CameraViewfinder.ScaleType {
+ enum_constant public static final androidx.camera.viewfinder.CameraViewfinder.ScaleType FILL_CENTER;
+ enum_constant public static final androidx.camera.viewfinder.CameraViewfinder.ScaleType FILL_END;
+ enum_constant public static final androidx.camera.viewfinder.CameraViewfinder.ScaleType FILL_START;
+ enum_constant public static final androidx.camera.viewfinder.CameraViewfinder.ScaleType FIT_CENTER;
+ enum_constant public static final androidx.camera.viewfinder.CameraViewfinder.ScaleType FIT_END;
+ enum_constant public static final androidx.camera.viewfinder.CameraViewfinder.ScaleType FIT_START;
+ }
+
+ @RequiresApi(21) public final class CameraViewfinderExt {
+ method public suspend Object? requestSurface(androidx.camera.viewfinder.CameraViewfinder, androidx.camera.viewfinder.ViewfinderSurfaceRequest viewfinderSurfaceRequest, kotlin.coroutines.Continuation<? super android.view.Surface>);
+ field public static final androidx.camera.viewfinder.CameraViewfinderExt INSTANCE;
+ }
+
+ @RequiresApi(21) public class ViewfinderSurfaceRequest {
+ method public androidx.camera.viewfinder.CameraViewfinder.ImplementationMode? getImplementationMode();
+ method public int getLensFacing();
+ method public android.util.Size getResolution();
+ method public int getSensorOrientation();
+ method public void markSurfaceSafeToRelease();
+ }
+
+ public static final class ViewfinderSurfaceRequest.Builder {
+ ctor public ViewfinderSurfaceRequest.Builder(android.util.Size);
+ ctor public ViewfinderSurfaceRequest.Builder(androidx.camera.viewfinder.ViewfinderSurfaceRequest);
+ ctor public ViewfinderSurfaceRequest.Builder(androidx.camera.viewfinder.ViewfinderSurfaceRequest.Builder);
+ method public androidx.camera.viewfinder.ViewfinderSurfaceRequest build();
+ method public androidx.camera.viewfinder.ViewfinderSurfaceRequest.Builder setImplementationMode(androidx.camera.viewfinder.CameraViewfinder.ImplementationMode?);
+ method public androidx.camera.viewfinder.ViewfinderSurfaceRequest.Builder setLensFacing(int);
+ method public androidx.camera.viewfinder.ViewfinderSurfaceRequest.Builder setSensorOrientation(int);
+ }
+
+ public final class ViewfinderSurfaceRequestUtil {
+ method @RequiresApi(21) public static androidx.camera.viewfinder.ViewfinderSurfaceRequest.Builder populateFromCharacteristics(androidx.camera.viewfinder.ViewfinderSurfaceRequest.Builder, android.hardware.camera2.CameraCharacteristics cameraCharacteristics);
+ }
+
+}
+
diff --git a/camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/VideoCameraSwitchingActivity.java b/camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/VideoCameraSwitchingActivity.java
index dd14319..13c9cbd 100644
--- a/camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/VideoCameraSwitchingActivity.java
+++ b/camera/integration-tests/coretestapp/src/main/java/androidx/camera/integration/core/VideoCameraSwitchingActivity.java
@@ -26,7 +26,6 @@
import android.widget.EditText;
import android.widget.Toast;
-import androidx.annotation.IntRange;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.OptIn;
@@ -35,7 +34,6 @@
import androidx.camera.core.CameraSelector;
import androidx.camera.core.Logger;
import androidx.camera.core.Preview;
-import androidx.camera.core.impl.utils.executor.CameraXExecutors;
import androidx.camera.lifecycle.ProcessCameraProvider;
import androidx.camera.video.ExperimentalPersistentRecording;
import androidx.camera.video.FileOutputOptions;
@@ -98,6 +96,7 @@
private Camera mCamera;
@Nullable
private Recording mRecording;
+ private boolean mNotYetSwitched = true;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -197,9 +196,9 @@
@OptIn(markerClass = ExperimentalPersistentRecording.class)
private void startRecording() {
Preconditions.checkNotNull(mVideoCapture, "The video capture use case should not be null.");
- final long durationMillis = Long.parseLong(mDurationText.getText().toString());
- final long switchTimeMillis = Long.parseLong(mSwitchTimeText.getText().toString());
- if (switchTimeMillis >= durationMillis) {
+ final long expectedDurationMillis = Long.parseLong(mDurationText.getText().toString());
+ final long expectedSwitchTimeMillis = Long.parseLong(mSwitchTimeText.getText().toString());
+ if (expectedSwitchTimeMillis >= expectedDurationMillis) {
String msg = "The switch time should be less than the duration.";
Logger.d(TAG, msg);
Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
@@ -214,23 +213,35 @@
if (DeviceQuirks.get(MediaStoreVideoCannotWrite.class) != null) {
// Use FileOutputOption for devices in MediaStoreVideoCannotWrite Quirk.
pendingRecording = mVideoCapture.getOutput().prepareRecording(
- this, generateFileOutputOptions(durationMillis));
+ this, generateFileOutputOptions());
} else {
// Use MediaStoreOutputOptions for public share media storage.
pendingRecording = mVideoCapture.getOutput().prepareRecording(
- this, generateMediaStoreOutputOptions(durationMillis));
+ this, generateMediaStoreOutputOptions());
}
mRecording = pendingRecording
.asPersistentRecording() // Perform the recording as a persistent recording.
.start(ContextCompat.getMainExecutor(this),
videoRecordEvent -> {
- if (videoRecordEvent instanceof VideoRecordEvent.Start) {
- // Switch camera after the specified time.
- CameraXExecutors.mainThreadExecutor().schedule(this::switchCamera,
- switchTimeMillis, TimeUnit.MILLISECONDS);
+ if (videoRecordEvent instanceof VideoRecordEvent.Status) {
+ long currentDurationMillis = TimeUnit.NANOSECONDS.toMillis(
+ videoRecordEvent.getRecordingStats()
+ .getRecordedDurationNanos());
+ if (currentDurationMillis >= expectedSwitchTimeMillis) {
+ if (mNotYetSwitched) {
+ switchCamera();
+ mNotYetSwitched = false;
+ }
+ if (currentDurationMillis >= expectedDurationMillis) {
+ Preconditions.checkNotNull(mRecording, "The in-progress "
+ + "recording should not be null.");
+ mRecording.stop();
+ }
+ }
}
if (videoRecordEvent instanceof VideoRecordEvent.Finalize) {
mRecording = null;
+ mNotYetSwitched = true;
mStartButton.setClickable(true);
mStartButton.setText(R.string.record_button_idling);
mDurationText.setClickable(true);
@@ -240,21 +251,18 @@
}
@NonNull
- private FileOutputOptions generateFileOutputOptions(@IntRange(from = 0) long durationMillis) {
+ private FileOutputOptions generateFileOutputOptions() {
String videoFileName = "video_" + System.currentTimeMillis() + ".mp4";
File videoFolder = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_MOVIES);
if (!videoFolder.exists() && !videoFolder.mkdirs()) {
Logger.e(TAG, "Failed to create directory: " + videoFolder);
}
- return new FileOutputOptions.Builder(
- new File(videoFolder, videoFileName)).setDurationLimitMillis(
- durationMillis).build();
+ return new FileOutputOptions.Builder(new File(videoFolder, videoFileName)).build();
}
@NonNull
- private MediaStoreOutputOptions generateMediaStoreOutputOptions(
- @IntRange(from = 0) long durationMillis) {
+ private MediaStoreOutputOptions generateMediaStoreOutputOptions() {
String videoFileName = "video_" + System.currentTimeMillis();
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "video/mp4");
@@ -265,7 +273,6 @@
return new MediaStoreOutputOptions.Builder(getContentResolver(),
MediaStore.Video.Media.EXTERNAL_CONTENT_URI)
.setContentValues(contentValues)
- .setDurationLimitMillis(durationMillis)
.build();
}
diff --git a/collection/collection-benchmark/build.gradle b/collection/collection-benchmark/build.gradle
index 931098c..11b20b6 100644
--- a/collection/collection-benchmark/build.gradle
+++ b/collection/collection-benchmark/build.gradle
@@ -65,12 +65,12 @@
androidTest {
dependsOn(commonTest)
dependencies {
- implementation(projectOrArtifact(":benchmark:benchmark-junit4"))
+ implementation("androidx.benchmark:benchmark-junit4:1.1.1")
implementation(libs.junit)
- implementation(libs.testExtJunit)
- implementation(libs.testCore)
- implementation(libs.testRunner)
- implementation(libs.testRules)
+ implementation("androidx.test.ext:junit:1.1.5")
+ implementation("androidx.test:core:1.5.0")
+ implementation("androidx.test:runner:1.5.2")
+ implementation("androidx.test:rules:1.5.0")
}
}
diff --git a/collection/collection-benchmark/src/androidTest/java/androidx/collection/ArraySetBenchmarkTest.kt b/collection/collection-benchmark/src/androidTest/java/androidx/collection/ArraySetBenchmarkTest.kt
index 1f38347..e80eb0a 100644
--- a/collection/collection-benchmark/src/androidTest/java/androidx/collection/ArraySetBenchmarkTest.kt
+++ b/collection/collection-benchmark/src/androidTest/java/androidx/collection/ArraySetBenchmarkTest.kt
@@ -17,6 +17,7 @@
package androidx.collection
import androidx.benchmark.junit4.BenchmarkRule
+import org.junit.Ignore
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@@ -40,11 +41,13 @@
benchmark.runCollectionBenchmark(ArraySetContainsElementBenchmark(sourceSet))
}
+ @Ignore("b/293929098") // Flaky / failing in presubmit.
@Test
fun indexOf() {
benchmark.runCollectionBenchmark(ArraySetIndexOfBenchmark(sourceSet))
}
+ @Ignore("b/293929098") // Flaky / failing in presubmit.
@Test
fun addAllThenRemoveIndividually() {
benchmark.runCollectionBenchmark(ArraySetAddAllThenRemoveIndividuallyBenchmark(sourceSet))
diff --git a/collection/collection-ktx/api/1.3.0-beta01.txt b/collection/collection-ktx/api/1.3.0-beta01.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/collection/collection-ktx/api/1.3.0-beta01.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/collection/collection-ktx/api/restricted_1.3.0-beta01.txt b/collection/collection-ktx/api/restricted_1.3.0-beta01.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/collection/collection-ktx/api/restricted_1.3.0-beta01.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/collection/collection/api/1.3.0-beta01.txt b/collection/collection/api/1.3.0-beta01.txt
new file mode 100644
index 0000000..a2fdada
--- /dev/null
+++ b/collection/collection/api/1.3.0-beta01.txt
@@ -0,0 +1,236 @@
+// Signature format: 4.0
+package androidx.collection {
+
+ public class ArrayMap<K, V> extends androidx.collection.SimpleArrayMap<K,V> implements java.util.Map<K,V> {
+ ctor public ArrayMap();
+ ctor public ArrayMap(androidx.collection.SimpleArrayMap?);
+ ctor public ArrayMap(int);
+ method public boolean containsAll(java.util.Collection<?>);
+ method public boolean containsKey(Object?);
+ method public boolean containsValue(Object?);
+ method public java.util.Set<java.util.Map.Entry<K!,V!>!> entrySet();
+ method public V! get(Object?);
+ method public java.util.Set<K!> keySet();
+ method public void putAll(java.util.Map<? extends K,? extends V>);
+ method public V! remove(Object?);
+ method public boolean removeAll(java.util.Collection<?>);
+ method public boolean retainAll(java.util.Collection<?>);
+ method public java.util.Collection<V!> values();
+ }
+
+ public final class ArrayMapKt {
+ method public static inline <K, V> androidx.collection.ArrayMap<K,V> arrayMapOf();
+ method public static <K, V> androidx.collection.ArrayMap<K,V> arrayMapOf(kotlin.Pair<? extends K,? extends V>... pairs);
+ }
+
+ public final class ArraySet<E> implements java.util.Collection<E> kotlin.jvm.internal.markers.KMutableCollection kotlin.jvm.internal.markers.KMutableSet java.util.Set<E> {
+ ctor public ArraySet();
+ ctor public ArraySet(androidx.collection.ArraySet<? extends E>? set);
+ ctor public ArraySet(E![]? array);
+ ctor public ArraySet(optional int capacity);
+ ctor public ArraySet(java.util.Collection<? extends E>? set);
+ method public boolean add(E element);
+ method public void addAll(androidx.collection.ArraySet<? extends E> array);
+ method public boolean addAll(java.util.Collection<? extends E> elements);
+ method public void clear();
+ method public operator boolean contains(E element);
+ method public boolean containsAll(java.util.Collection<E!> elements);
+ method public void ensureCapacity(int minimumCapacity);
+ method public int getSize();
+ method public int indexOf(Object? key);
+ method public boolean isEmpty();
+ method public java.util.Iterator<E> iterator();
+ method public boolean remove(E element);
+ method public boolean removeAll(androidx.collection.ArraySet<? extends E> array);
+ method public boolean removeAll(java.util.Collection<E!> elements);
+ method public E removeAt(int index);
+ method public boolean retainAll(java.util.Collection<E!> elements);
+ method public Object![] toArray();
+ method public <T> T![] toArray(T![] array);
+ method public E valueAt(int index);
+ property public int size;
+ }
+
+ public final class ArraySetKt {
+ method public static inline <T> androidx.collection.ArraySet<T> arraySetOf();
+ method public static <T> androidx.collection.ArraySet<T> arraySetOf(T?... values);
+ }
+
+ public final class CircularArray<E> {
+ ctor public CircularArray();
+ ctor public CircularArray(optional int minCapacity);
+ method public void addFirst(E element);
+ method public void addLast(E element);
+ method public void clear();
+ method public operator E get(int index);
+ method public E getFirst();
+ method public E getLast();
+ method public boolean isEmpty();
+ method public E popFirst();
+ method public E popLast();
+ method public void removeFromEnd(int count);
+ method public void removeFromStart(int count);
+ method public int size();
+ property public final E first;
+ property public final E last;
+ }
+
+ public final class CircularIntArray {
+ ctor public CircularIntArray();
+ ctor public CircularIntArray(optional int minCapacity);
+ method public void addFirst(int element);
+ method public void addLast(int element);
+ method public void clear();
+ method public operator int get(int index);
+ method public int getFirst();
+ method public int getLast();
+ method public boolean isEmpty();
+ method public int popFirst();
+ method public int popLast();
+ method public void removeFromEnd(int count);
+ method public void removeFromStart(int count);
+ method public int size();
+ property public final int first;
+ property public final int last;
+ }
+
+ public class LongSparseArray<E> implements java.lang.Cloneable {
+ ctor public LongSparseArray();
+ ctor public LongSparseArray(optional int initialCapacity);
+ method public void append(long key, E value);
+ method public void clear();
+ method public androidx.collection.LongSparseArray<E> clone();
+ method public boolean containsKey(long key);
+ method public boolean containsValue(E value);
+ method @Deprecated public void delete(long key);
+ method public operator E? get(long key);
+ method public E get(long key, E defaultValue);
+ method public int indexOfKey(long key);
+ method public int indexOfValue(E value);
+ method public boolean isEmpty();
+ method public long keyAt(int index);
+ method public void put(long key, E value);
+ method public void putAll(androidx.collection.LongSparseArray<? extends E> other);
+ method public E? putIfAbsent(long key, E value);
+ method public void remove(long key);
+ method public boolean remove(long key, E value);
+ method public void removeAt(int index);
+ method public E? replace(long key, E value);
+ method public boolean replace(long key, E oldValue, E newValue);
+ method public void setValueAt(int index, E value);
+ method public int size();
+ method public E valueAt(int index);
+ }
+
+ public final class LongSparseArrayKt {
+ method public static inline operator <T> boolean contains(androidx.collection.LongSparseArray<T>, long key);
+ method public static inline <T> void forEach(androidx.collection.LongSparseArray<T>, kotlin.jvm.functions.Function2<? super java.lang.Long,? super T,kotlin.Unit> action);
+ method public static inline <T> T getOrDefault(androidx.collection.LongSparseArray<T>, long key, T defaultValue);
+ method public static inline <T> T getOrElse(androidx.collection.LongSparseArray<T>, long key, kotlin.jvm.functions.Function0<? extends T> defaultValue);
+ method public static inline <T> int getSize(androidx.collection.LongSparseArray<T>);
+ method public static inline <T> boolean isNotEmpty(androidx.collection.LongSparseArray<T>);
+ method public static <T> kotlin.collections.LongIterator keyIterator(androidx.collection.LongSparseArray<T>);
+ method public static operator <T> androidx.collection.LongSparseArray<T> plus(androidx.collection.LongSparseArray<T>, androidx.collection.LongSparseArray<T> other);
+ method @Deprecated public static <T> boolean remove(androidx.collection.LongSparseArray<T>, long key, T value);
+ method public static inline operator <T> void set(androidx.collection.LongSparseArray<T>, long key, T value);
+ method public static <T> java.util.Iterator<T> valueIterator(androidx.collection.LongSparseArray<T>);
+ }
+
+ public class LruCache<K, V> {
+ ctor public LruCache(@IntRange(from=1L, to=kotlin.jvm.internal.LongCompanionObject.MAX_VALUE) int maxSize);
+ method protected V? create(K key);
+ method public final int createCount();
+ method protected void entryRemoved(boolean evicted, K key, V oldValue, V? newValue);
+ method public final void evictAll();
+ method public final int evictionCount();
+ method public final operator V? get(K key);
+ method public final int hitCount();
+ method public final int maxSize();
+ method public final int missCount();
+ method public final V? put(K key, V value);
+ method public final int putCount();
+ method public final V? remove(K key);
+ method public void resize(@IntRange(from=1L, to=kotlin.jvm.internal.LongCompanionObject.MAX_VALUE) int maxSize);
+ method public final int size();
+ method protected int sizeOf(K key, V value);
+ method public final java.util.Map<K,V> snapshot();
+ method public void trimToSize(int maxSize);
+ }
+
+ public final class LruCacheKt {
+ method public static inline <K, V> androidx.collection.LruCache<K,V> lruCache(int maxSize, optional kotlin.jvm.functions.Function2<? super K,? super V,java.lang.Integer> sizeOf, optional kotlin.jvm.functions.Function1<? super K,? extends V> create, optional kotlin.jvm.functions.Function4<? super java.lang.Boolean,? super K,? super V,? super V,kotlin.Unit> onEntryRemoved);
+ }
+
+ public class SimpleArrayMap<K, V> {
+ ctor public SimpleArrayMap();
+ ctor public SimpleArrayMap(androidx.collection.SimpleArrayMap<? extends K,? extends V>? map);
+ ctor public SimpleArrayMap(optional int capacity);
+ method public void clear();
+ method public boolean containsKey(K key);
+ method public boolean containsValue(V value);
+ method public void ensureCapacity(int minimumCapacity);
+ method public operator V? get(K key);
+ method public V getOrDefault(Object? key, V defaultValue);
+ method public int indexOfKey(K key);
+ method public boolean isEmpty();
+ method public K keyAt(int index);
+ method public V? put(K key, V value);
+ method public void putAll(androidx.collection.SimpleArrayMap<? extends K,? extends V> map);
+ method public V? putIfAbsent(K key, V value);
+ method public V? remove(K key);
+ method public boolean remove(K key, V value);
+ method public V removeAt(int index);
+ method public V? replace(K key, V value);
+ method public boolean replace(K key, V oldValue, V newValue);
+ method public V setValueAt(int index, V value);
+ method public int size();
+ method public V valueAt(int index);
+ }
+
+ public class SparseArrayCompat<E> implements java.lang.Cloneable {
+ ctor public SparseArrayCompat();
+ ctor public SparseArrayCompat(optional int initialCapacity);
+ method public void append(int key, E value);
+ method public void clear();
+ method public androidx.collection.SparseArrayCompat<E> clone();
+ method public boolean containsKey(int key);
+ method public boolean containsValue(E value);
+ method @Deprecated public void delete(int key);
+ method public operator E? get(int key);
+ method public E get(int key, E defaultValue);
+ method public final boolean getIsEmpty();
+ method public int indexOfKey(int key);
+ method public int indexOfValue(E value);
+ method public boolean isEmpty();
+ method public int keyAt(int index);
+ method public void put(int key, E value);
+ method public void putAll(androidx.collection.SparseArrayCompat<? extends E> other);
+ method public E? putIfAbsent(int key, E value);
+ method public void remove(int key);
+ method public boolean remove(int key, Object? value);
+ method public void removeAt(int index);
+ method public void removeAtRange(int index, int size);
+ method public E? replace(int key, E value);
+ method public boolean replace(int key, E oldValue, E newValue);
+ method public void setValueAt(int index, E value);
+ method public int size();
+ method public E valueAt(int index);
+ property public final boolean isEmpty;
+ }
+
+ public final class SparseArrayKt {
+ method public static inline operator <T> boolean contains(androidx.collection.SparseArrayCompat<T>, int key);
+ method public static inline <T> void forEach(androidx.collection.SparseArrayCompat<T>, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,kotlin.Unit> action);
+ method public static inline <T> T getOrDefault(androidx.collection.SparseArrayCompat<T>, int key, T defaultValue);
+ method public static inline <T> T getOrElse(androidx.collection.SparseArrayCompat<T>, int key, kotlin.jvm.functions.Function0<? extends T> defaultValue);
+ method public static inline <T> int getSize(androidx.collection.SparseArrayCompat<T>);
+ method public static inline <T> boolean isNotEmpty(androidx.collection.SparseArrayCompat<T>);
+ method public static <T> kotlin.collections.IntIterator keyIterator(androidx.collection.SparseArrayCompat<T>);
+ method public static operator <T> androidx.collection.SparseArrayCompat<T> plus(androidx.collection.SparseArrayCompat<T>, androidx.collection.SparseArrayCompat<T> other);
+ method @Deprecated public static <T> boolean remove(androidx.collection.SparseArrayCompat<T>, int key, T value);
+ method public static inline operator <T> void set(androidx.collection.SparseArrayCompat<T>, int key, T value);
+ method public static <T> java.util.Iterator<T> valueIterator(androidx.collection.SparseArrayCompat<T>);
+ }
+
+}
+
diff --git a/collection/collection/api/restricted_1.3.0-beta01.txt b/collection/collection/api/restricted_1.3.0-beta01.txt
new file mode 100644
index 0000000..a2fdada
--- /dev/null
+++ b/collection/collection/api/restricted_1.3.0-beta01.txt
@@ -0,0 +1,236 @@
+// Signature format: 4.0
+package androidx.collection {
+
+ public class ArrayMap<K, V> extends androidx.collection.SimpleArrayMap<K,V> implements java.util.Map<K,V> {
+ ctor public ArrayMap();
+ ctor public ArrayMap(androidx.collection.SimpleArrayMap?);
+ ctor public ArrayMap(int);
+ method public boolean containsAll(java.util.Collection<?>);
+ method public boolean containsKey(Object?);
+ method public boolean containsValue(Object?);
+ method public java.util.Set<java.util.Map.Entry<K!,V!>!> entrySet();
+ method public V! get(Object?);
+ method public java.util.Set<K!> keySet();
+ method public void putAll(java.util.Map<? extends K,? extends V>);
+ method public V! remove(Object?);
+ method public boolean removeAll(java.util.Collection<?>);
+ method public boolean retainAll(java.util.Collection<?>);
+ method public java.util.Collection<V!> values();
+ }
+
+ public final class ArrayMapKt {
+ method public static inline <K, V> androidx.collection.ArrayMap<K,V> arrayMapOf();
+ method public static <K, V> androidx.collection.ArrayMap<K,V> arrayMapOf(kotlin.Pair<? extends K,? extends V>... pairs);
+ }
+
+ public final class ArraySet<E> implements java.util.Collection<E> kotlin.jvm.internal.markers.KMutableCollection kotlin.jvm.internal.markers.KMutableSet java.util.Set<E> {
+ ctor public ArraySet();
+ ctor public ArraySet(androidx.collection.ArraySet<? extends E>? set);
+ ctor public ArraySet(E![]? array);
+ ctor public ArraySet(optional int capacity);
+ ctor public ArraySet(java.util.Collection<? extends E>? set);
+ method public boolean add(E element);
+ method public void addAll(androidx.collection.ArraySet<? extends E> array);
+ method public boolean addAll(java.util.Collection<? extends E> elements);
+ method public void clear();
+ method public operator boolean contains(E element);
+ method public boolean containsAll(java.util.Collection<E!> elements);
+ method public void ensureCapacity(int minimumCapacity);
+ method public int getSize();
+ method public int indexOf(Object? key);
+ method public boolean isEmpty();
+ method public java.util.Iterator<E> iterator();
+ method public boolean remove(E element);
+ method public boolean removeAll(androidx.collection.ArraySet<? extends E> array);
+ method public boolean removeAll(java.util.Collection<E!> elements);
+ method public E removeAt(int index);
+ method public boolean retainAll(java.util.Collection<E!> elements);
+ method public Object![] toArray();
+ method public <T> T![] toArray(T![] array);
+ method public E valueAt(int index);
+ property public int size;
+ }
+
+ public final class ArraySetKt {
+ method public static inline <T> androidx.collection.ArraySet<T> arraySetOf();
+ method public static <T> androidx.collection.ArraySet<T> arraySetOf(T?... values);
+ }
+
+ public final class CircularArray<E> {
+ ctor public CircularArray();
+ ctor public CircularArray(optional int minCapacity);
+ method public void addFirst(E element);
+ method public void addLast(E element);
+ method public void clear();
+ method public operator E get(int index);
+ method public E getFirst();
+ method public E getLast();
+ method public boolean isEmpty();
+ method public E popFirst();
+ method public E popLast();
+ method public void removeFromEnd(int count);
+ method public void removeFromStart(int count);
+ method public int size();
+ property public final E first;
+ property public final E last;
+ }
+
+ public final class CircularIntArray {
+ ctor public CircularIntArray();
+ ctor public CircularIntArray(optional int minCapacity);
+ method public void addFirst(int element);
+ method public void addLast(int element);
+ method public void clear();
+ method public operator int get(int index);
+ method public int getFirst();
+ method public int getLast();
+ method public boolean isEmpty();
+ method public int popFirst();
+ method public int popLast();
+ method public void removeFromEnd(int count);
+ method public void removeFromStart(int count);
+ method public int size();
+ property public final int first;
+ property public final int last;
+ }
+
+ public class LongSparseArray<E> implements java.lang.Cloneable {
+ ctor public LongSparseArray();
+ ctor public LongSparseArray(optional int initialCapacity);
+ method public void append(long key, E value);
+ method public void clear();
+ method public androidx.collection.LongSparseArray<E> clone();
+ method public boolean containsKey(long key);
+ method public boolean containsValue(E value);
+ method @Deprecated public void delete(long key);
+ method public operator E? get(long key);
+ method public E get(long key, E defaultValue);
+ method public int indexOfKey(long key);
+ method public int indexOfValue(E value);
+ method public boolean isEmpty();
+ method public long keyAt(int index);
+ method public void put(long key, E value);
+ method public void putAll(androidx.collection.LongSparseArray<? extends E> other);
+ method public E? putIfAbsent(long key, E value);
+ method public void remove(long key);
+ method public boolean remove(long key, E value);
+ method public void removeAt(int index);
+ method public E? replace(long key, E value);
+ method public boolean replace(long key, E oldValue, E newValue);
+ method public void setValueAt(int index, E value);
+ method public int size();
+ method public E valueAt(int index);
+ }
+
+ public final class LongSparseArrayKt {
+ method public static inline operator <T> boolean contains(androidx.collection.LongSparseArray<T>, long key);
+ method public static inline <T> void forEach(androidx.collection.LongSparseArray<T>, kotlin.jvm.functions.Function2<? super java.lang.Long,? super T,kotlin.Unit> action);
+ method public static inline <T> T getOrDefault(androidx.collection.LongSparseArray<T>, long key, T defaultValue);
+ method public static inline <T> T getOrElse(androidx.collection.LongSparseArray<T>, long key, kotlin.jvm.functions.Function0<? extends T> defaultValue);
+ method public static inline <T> int getSize(androidx.collection.LongSparseArray<T>);
+ method public static inline <T> boolean isNotEmpty(androidx.collection.LongSparseArray<T>);
+ method public static <T> kotlin.collections.LongIterator keyIterator(androidx.collection.LongSparseArray<T>);
+ method public static operator <T> androidx.collection.LongSparseArray<T> plus(androidx.collection.LongSparseArray<T>, androidx.collection.LongSparseArray<T> other);
+ method @Deprecated public static <T> boolean remove(androidx.collection.LongSparseArray<T>, long key, T value);
+ method public static inline operator <T> void set(androidx.collection.LongSparseArray<T>, long key, T value);
+ method public static <T> java.util.Iterator<T> valueIterator(androidx.collection.LongSparseArray<T>);
+ }
+
+ public class LruCache<K, V> {
+ ctor public LruCache(@IntRange(from=1L, to=kotlin.jvm.internal.LongCompanionObject.MAX_VALUE) int maxSize);
+ method protected V? create(K key);
+ method public final int createCount();
+ method protected void entryRemoved(boolean evicted, K key, V oldValue, V? newValue);
+ method public final void evictAll();
+ method public final int evictionCount();
+ method public final operator V? get(K key);
+ method public final int hitCount();
+ method public final int maxSize();
+ method public final int missCount();
+ method public final V? put(K key, V value);
+ method public final int putCount();
+ method public final V? remove(K key);
+ method public void resize(@IntRange(from=1L, to=kotlin.jvm.internal.LongCompanionObject.MAX_VALUE) int maxSize);
+ method public final int size();
+ method protected int sizeOf(K key, V value);
+ method public final java.util.Map<K,V> snapshot();
+ method public void trimToSize(int maxSize);
+ }
+
+ public final class LruCacheKt {
+ method public static inline <K, V> androidx.collection.LruCache<K,V> lruCache(int maxSize, optional kotlin.jvm.functions.Function2<? super K,? super V,java.lang.Integer> sizeOf, optional kotlin.jvm.functions.Function1<? super K,? extends V> create, optional kotlin.jvm.functions.Function4<? super java.lang.Boolean,? super K,? super V,? super V,kotlin.Unit> onEntryRemoved);
+ }
+
+ public class SimpleArrayMap<K, V> {
+ ctor public SimpleArrayMap();
+ ctor public SimpleArrayMap(androidx.collection.SimpleArrayMap<? extends K,? extends V>? map);
+ ctor public SimpleArrayMap(optional int capacity);
+ method public void clear();
+ method public boolean containsKey(K key);
+ method public boolean containsValue(V value);
+ method public void ensureCapacity(int minimumCapacity);
+ method public operator V? get(K key);
+ method public V getOrDefault(Object? key, V defaultValue);
+ method public int indexOfKey(K key);
+ method public boolean isEmpty();
+ method public K keyAt(int index);
+ method public V? put(K key, V value);
+ method public void putAll(androidx.collection.SimpleArrayMap<? extends K,? extends V> map);
+ method public V? putIfAbsent(K key, V value);
+ method public V? remove(K key);
+ method public boolean remove(K key, V value);
+ method public V removeAt(int index);
+ method public V? replace(K key, V value);
+ method public boolean replace(K key, V oldValue, V newValue);
+ method public V setValueAt(int index, V value);
+ method public int size();
+ method public V valueAt(int index);
+ }
+
+ public class SparseArrayCompat<E> implements java.lang.Cloneable {
+ ctor public SparseArrayCompat();
+ ctor public SparseArrayCompat(optional int initialCapacity);
+ method public void append(int key, E value);
+ method public void clear();
+ method public androidx.collection.SparseArrayCompat<E> clone();
+ method public boolean containsKey(int key);
+ method public boolean containsValue(E value);
+ method @Deprecated public void delete(int key);
+ method public operator E? get(int key);
+ method public E get(int key, E defaultValue);
+ method public final boolean getIsEmpty();
+ method public int indexOfKey(int key);
+ method public int indexOfValue(E value);
+ method public boolean isEmpty();
+ method public int keyAt(int index);
+ method public void put(int key, E value);
+ method public void putAll(androidx.collection.SparseArrayCompat<? extends E> other);
+ method public E? putIfAbsent(int key, E value);
+ method public void remove(int key);
+ method public boolean remove(int key, Object? value);
+ method public void removeAt(int index);
+ method public void removeAtRange(int index, int size);
+ method public E? replace(int key, E value);
+ method public boolean replace(int key, E oldValue, E newValue);
+ method public void setValueAt(int index, E value);
+ method public int size();
+ method public E valueAt(int index);
+ property public final boolean isEmpty;
+ }
+
+ public final class SparseArrayKt {
+ method public static inline operator <T> boolean contains(androidx.collection.SparseArrayCompat<T>, int key);
+ method public static inline <T> void forEach(androidx.collection.SparseArrayCompat<T>, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,kotlin.Unit> action);
+ method public static inline <T> T getOrDefault(androidx.collection.SparseArrayCompat<T>, int key, T defaultValue);
+ method public static inline <T> T getOrElse(androidx.collection.SparseArrayCompat<T>, int key, kotlin.jvm.functions.Function0<? extends T> defaultValue);
+ method public static inline <T> int getSize(androidx.collection.SparseArrayCompat<T>);
+ method public static inline <T> boolean isNotEmpty(androidx.collection.SparseArrayCompat<T>);
+ method public static <T> kotlin.collections.IntIterator keyIterator(androidx.collection.SparseArrayCompat<T>);
+ method public static operator <T> androidx.collection.SparseArrayCompat<T> plus(androidx.collection.SparseArrayCompat<T>, androidx.collection.SparseArrayCompat<T> other);
+ method @Deprecated public static <T> boolean remove(androidx.collection.SparseArrayCompat<T>, int key, T value);
+ method public static inline operator <T> void set(androidx.collection.SparseArrayCompat<T>, int key, T value);
+ method public static <T> java.util.Iterator<T> valueIterator(androidx.collection.SparseArrayCompat<T>);
+ }
+
+}
+
diff --git a/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text2/TextFieldKeyEventTest.kt b/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text2/TextFieldKeyEventTest.kt
index a3379dd..735e1e755 100644
--- a/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text2/TextFieldKeyEventTest.kt
+++ b/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text2/TextFieldKeyEventTest.kt
@@ -570,6 +570,7 @@
}
}
+ @Ignore // b/293919923
@Test
fun textField_withActiveSelection_shiftTabSingleLine() {
keysSequenceTest("text", singleLine = true) {
diff --git a/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/graphics/vector/VectorTest.kt b/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/graphics/vector/VectorTest.kt
index f99c430..0bcfbd9c 100644
--- a/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/graphics/vector/VectorTest.kt
+++ b/compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/graphics/vector/VectorTest.kt
@@ -34,6 +34,7 @@
import androidx.compose.foundation.layout.wrapContentSize
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
+import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.testutils.assertPixels
@@ -164,6 +165,50 @@
}
}
+ @Test
+ fun testVectorSkipsRecompositionOnNoChange() {
+ val state = mutableIntStateOf(0)
+ var composeCount = 0
+ var vectorComposeCount = 0
+
+ val composeVector: @Composable @VectorComposable (Float, Float) -> Unit = {
+ viewportWidth, viewportHeight ->
+
+ vectorComposeCount++
+ Path(
+ fill = SolidColor(Color.Blue),
+ pathData = PathData {
+ lineTo(viewportWidth, 0f)
+ lineTo(viewportWidth, viewportHeight)
+ lineTo(0f, viewportHeight)
+ close()
+ }
+ )
+ }
+
+ rule.setContent {
+ composeCount++
+ // Arbitrary read to force composition here and verify the subcomposition below skips
+ state.value
+ val vectorPainter = rememberVectorPainter(
+ defaultWidth = 10.dp,
+ defaultHeight = 10.dp,
+ autoMirror = false,
+ content = composeVector
+ )
+ Image(
+ vectorPainter,
+ null,
+ modifier = Modifier.size(20.dp)
+ )
+ }
+
+ state.value = 1
+ rule.waitForIdle()
+ assertEquals(2, composeCount) // Arbitrary state read should compose twice
+ assertEquals(1, vectorComposeCount) // Vector is identical so should compose once
+ }
+
@SdkSuppress(minSdkVersion = Build.VERSION_CODES.O)
@Test
fun testVectorInvalidation() {
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/Vector.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/Vector.kt
index 2eed50f..4690c99 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/Vector.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/Vector.kt
@@ -19,6 +19,8 @@
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
+import androidx.compose.ui.geometry.Offset
+import androidx.compose.ui.geometry.Size
import androidx.compose.ui.geometry.Size.Companion.Unspecified
import androidx.compose.ui.graphics.BlendMode
import androidx.compose.ui.graphics.Brush
@@ -32,6 +34,7 @@
import androidx.compose.ui.graphics.StrokeJoin
import androidx.compose.ui.graphics.drawscope.DrawScope
import androidx.compose.ui.graphics.drawscope.Stroke
+import androidx.compose.ui.graphics.drawscope.scale
import androidx.compose.ui.graphics.drawscope.withTransform
import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.util.fastForEach
@@ -88,18 +91,12 @@
internal class VectorComponent : VNode() {
val root = GroupComponent().apply {
- pivotX = 0.0f
- pivotY = 0.0f
invalidateListener = {
doInvalidate()
}
}
- var name: String
- get() = root.name
- set(value) {
- root.name = value
- }
+ var name: String = DefaultGroupName
private fun doInvalidate() {
isDirty = true
@@ -114,29 +111,22 @@
internal var intrinsicColorFilter: ColorFilter? by mutableStateOf(null)
- var viewportWidth = 0f
- set(value) {
- if (field != value) {
- field = value
- doInvalidate()
- }
- }
-
- var viewportHeight = 0f
- set(value) {
- if (field != value) {
- field = value
- doInvalidate()
- }
- }
+ internal var viewportSize by mutableStateOf(Size.Zero)
private var previousDrawSize = Unspecified
+ private var rootScaleX = 1f
+ private var rootScaleY = 1f
+
/**
* Cached lambda used to avoid allocating the lambda on each draw invocation
*/
private val drawVectorBlock: DrawScope.() -> Unit = {
- with(root) { draw() }
+ with(root) {
+ scale(rootScaleX, rootScaleY, pivot = Offset.Zero) {
+ draw()
+ }
+ }
}
fun DrawScope.draw(alpha: Float, colorFilter: ColorFilter?) {
@@ -144,8 +134,8 @@
// If the content of the vector has changed, or we are drawing a different size
// update the cached image to ensure we are scaling the vector appropriately
if (isDirty || previousDrawSize != size) {
- root.scaleX = size.width / viewportWidth
- root.scaleY = size.height / viewportHeight
+ rootScaleX = size.width / viewportSize.width
+ rootScaleY = size.height / viewportSize.height
cacheDrawScope.drawCachedImage(
IntSize(ceil(size.width).toInt(), ceil(size.height).toInt()),
this@draw,
@@ -166,8 +156,8 @@
return buildString {
append("Params: ")
append("\tname: ").append(name).append("\n")
- append("\tviewportWidth: ").append(viewportWidth).append("\n")
- append("\tviewportHeight: ").append(viewportHeight).append("\n")
+ append("\tviewportWidth: ").append(viewportSize.width).append("\n")
+ append("\tviewportHeight: ").append(viewportSize.height).append("\n")
}
}
}
@@ -247,29 +237,23 @@
var trimPathStart = DefaultTrimPathStart
set(value) {
- if (field != value) {
- field = value
- isTrimPathDirty = true
- invalidate()
- }
+ field = value
+ isTrimPathDirty = true
+ invalidate()
}
var trimPathEnd = DefaultTrimPathEnd
set(value) {
- if (field != value) {
- field = value
- isTrimPathDirty = true
- invalidate()
- }
+ field = value
+ isTrimPathDirty = true
+ invalidate()
}
var trimPathOffset = DefaultTrimPathOffset
set(value) {
- if (field != value) {
- field = value
- isTrimPathDirty = true
- invalidate()
- }
+ field = value
+ isTrimPathDirty = true
+ invalidate()
}
private var isPathDirty = true
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/VectorPainter.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/VectorPainter.kt
index 648babc7..aafdf94 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/VectorPainter.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/graphics/vector/VectorPainter.kt
@@ -19,8 +19,6 @@
import androidx.compose.runtime.Composable
import androidx.compose.runtime.ComposableOpenTarget
import androidx.compose.runtime.Composition
-import androidx.compose.runtime.CompositionContext
-import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf
@@ -145,7 +143,25 @@
size = Size(widthPx, heightPx)
this.autoMirror = autoMirror
this.intrinsicColorFilter = intrinsicColorFilter
- RenderVector(name, vpWidth, vpHeight, content)
+ this.viewportSize = Size(vpWidth, vpHeight)
+ this.name = name
+
+ val compositionContext = rememberCompositionContext()
+ this.composition = remember(viewportWidth, viewportHeight, content) {
+ val curComp = this.composition
+ val next = if (curComp == null || curComp.isDisposed) {
+ Composition(
+ VectorApplier(this.vector.root),
+ compositionContext
+ )
+ } else {
+ curComp
+ }
+ next.setContent {
+ content(vpWidth, vpHeight)
+ }
+ next
+ }
}
}
@@ -170,6 +186,15 @@
)
/**
+ * Functional interface to avoid "PrimitiveInLambda" lint errors
+ */
+internal fun interface ComposeVector {
+
+ @Composable
+ fun Content(viewportWidth: Float, viewportHeight: Float)
+}
+
+/**
* [Painter] implementation that abstracts the drawing of a Vector graphic.
* This can be represented by either a [ImageVector] or a programmatic
* composition of a vector
@@ -189,7 +214,19 @@
vector.intrinsicColorFilter = value
}
- private val vector = VectorComponent().apply {
+ internal var viewportSize: Size
+ get() = vector.viewportSize
+ set(value) {
+ vector.viewportSize = value
+ }
+
+ internal var name: String
+ get() = vector.name
+ set(value) {
+ vector.name = value
+ }
+
+ internal val vector = VectorComponent().apply {
invalidateCallback = {
if (drawCount == invalidateCount) {
invalidateCount++
@@ -197,55 +234,11 @@
}
}
- private var composition: Composition? = null
-
- private fun composeVector(
- parent: CompositionContext,
- composable: @Composable (viewportWidth: Float, viewportHeight: Float) -> Unit
- ): Composition {
- val existing = composition
- val next = if (existing == null || existing.isDisposed) {
- Composition(
- VectorApplier(vector.root),
- parent
- )
- } else {
- existing
- }
- composition = next
- next.setContent {
- composable(vector.viewportWidth, vector.viewportHeight)
- }
- return next
- }
+ internal var composition: Composition? = null
// TODO replace with mutableStateOf(Unit, neverEqualPolicy()) after b/291647821 is addressed
private var invalidateCount by mutableIntStateOf(0)
- @Composable
- internal fun RenderVector(
- name: String,
- viewportWidth: Float,
- viewportHeight: Float,
- content: @Composable (viewportWidth: Float, viewportHeight: Float) -> Unit
- ) {
- vector.apply {
- this.name = name
- this.viewportWidth = viewportWidth
- this.viewportHeight = viewportHeight
- }
- val composition = composeVector(
- rememberCompositionContext(),
- content
- )
-
- DisposableEffect(composition) {
- onDispose {
- composition.dispose()
- }
- }
- }
-
private var currentAlpha: Float = 1.0f
private var currentColorFilter: ColorFilter? = null
diff --git a/constraintlayout/constraintlayout-core/lint-baseline.xml b/constraintlayout/constraintlayout-core/lint-baseline.xml
index bff62dd..1c3b73f 100644
--- a/constraintlayout/constraintlayout-core/lint-baseline.xml
+++ b/constraintlayout/constraintlayout-core/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 7.4.0-alpha08" type="baseline" client="gradle" dependencies="false" name="AGP (7.4.0-alpha08)" variant="all" version="7.4.0-alpha08">
+<issues format="6" by="lint 8.1.0" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0)" variant="all" version="8.1.0">
<issue
id="PrivateConstructorForUtilityClass"
@@ -74,645 +74,6 @@
</issue>
<issue
- id="SyntheticAccessor"
- message="Access to `private` field `mId` of class `Constraint` requires synthetic accessor"
- errorLine1=" return mId;"
- errorLine2=" ~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/dsl/Constraint.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mHorizontalGap` of class `Flow` requires synthetic accessor"
- errorLine1=" return mWidth - mHorizontalGap;"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mVerticalGap` of class `Flow` requires synthetic accessor"
- errorLine1=" return mHeight - mVerticalGap;"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getWidgetWidth` of class `Flow` requires synthetic accessor"
- errorLine1=" int width = getWidgetWidth(widget, mMax);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mHorizontalGap` of class `Flow` requires synthetic accessor"
- errorLine1=" int gap = mHorizontalGap;"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getWidgetHeight` of class `Flow` requires synthetic accessor"
- errorLine1=" int height = getWidgetHeight(widget, mMax);"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getWidgetWidth` of class `Flow` requires synthetic accessor"
- errorLine1=" int width = getWidgetWidth(widget, mMax);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getWidgetHeight` of class `Flow` requires synthetic accessor"
- errorLine1=" int height = getWidgetHeight(widget, mMax);"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mVerticalGap` of class `Flow` requires synthetic accessor"
- errorLine1=" int gap = mVerticalGap;"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDisplayedWidgetsCount` of class `Flow` requires synthetic accessor"
- errorLine1=" if (mStartIndex + i >= mDisplayedWidgetsCount) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDisplayedWidgets` of class `Flow` requires synthetic accessor"
- errorLine1=" ConstraintWidget widget = mDisplayedWidgets[mStartIndex + i];"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDisplayedWidgetsCount` of class `Flow` requires synthetic accessor"
- errorLine1=" if (mStartIndex + index >= mDisplayedWidgetsCount) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDisplayedWidgets` of class `Flow` requires synthetic accessor"
- errorLine1=" ConstraintWidget widget = mDisplayedWidgets[mStartIndex + index];"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mVerticalStyle` of class `Flow` requires synthetic accessor"
- errorLine1=" verticalWidget.setVerticalChainStyle(mVerticalStyle);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mVerticalGap` of class `Flow` requires synthetic accessor"
- errorLine1=" padding += mVerticalGap;"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mVerticalAlign` of class `Flow` requires synthetic accessor"
- errorLine1=" if (mVerticalAlign == VERTICAL_ALIGN_BASELINE && !verticalWidget.hasBaseline()) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDisplayedWidgetsCount` of class `Flow` requires synthetic accessor"
- errorLine1=" if (mStartIndex + index >= mDisplayedWidgetsCount) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDisplayedWidgets` of class `Flow` requires synthetic accessor"
- errorLine1=" ConstraintWidget widget = mDisplayedWidgets[mStartIndex + index];"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDisplayedWidgetsCount` of class `Flow` requires synthetic accessor"
- errorLine1=" if (mStartIndex + index >= mDisplayedWidgetsCount) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDisplayedWidgets` of class `Flow` requires synthetic accessor"
- errorLine1=" ConstraintWidget widget = mDisplayedWidgets[mStartIndex + index];"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mHorizontalStyle` of class `Flow` requires synthetic accessor"
- errorLine1=" int style = mHorizontalStyle;"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mHorizontalBias` of class `Flow` requires synthetic accessor"
- errorLine1=" float bias = isInRtl ? (1 - mHorizontalBias) : mHorizontalBias;"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mHorizontalBias` of class `Flow` requires synthetic accessor"
- errorLine1=" float bias = isInRtl ? (1 - mHorizontalBias) : mHorizontalBias;"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mFirstHorizontalStyle` of class `Flow` requires synthetic accessor"
- errorLine1=" if (mStartIndex == 0 && mFirstHorizontalStyle != UNKNOWN) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mFirstHorizontalStyle` of class `Flow` requires synthetic accessor"
- errorLine1=" style = mFirstHorizontalStyle;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mFirstHorizontalBias` of class `Flow` requires synthetic accessor"
- errorLine1=" bias = isInRtl ? (1 - mFirstHorizontalBias) : mFirstHorizontalBias;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mFirstHorizontalBias` of class `Flow` requires synthetic accessor"
- errorLine1=" bias = isInRtl ? (1 - mFirstHorizontalBias) : mFirstHorizontalBias;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mLastHorizontalStyle` of class `Flow` requires synthetic accessor"
- errorLine1=" } else if (isLastChain && mLastHorizontalStyle != UNKNOWN) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mLastHorizontalStyle` of class `Flow` requires synthetic accessor"
- errorLine1=" style = mLastHorizontalStyle;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mLastHorizontalBias` of class `Flow` requires synthetic accessor"
- errorLine1=" bias = isInRtl ? (1 - mLastHorizontalBias) : mLastHorizontalBias;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mLastHorizontalBias` of class `Flow` requires synthetic accessor"
- errorLine1=" bias = isInRtl ? (1 - mLastHorizontalBias) : mLastHorizontalBias;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mHorizontalGap` of class `Flow` requires synthetic accessor"
- errorLine1=" widget.mLeft.connect(previous.mRight, mHorizontalGap);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mVerticalAlign` of class `Flow` requires synthetic accessor"
- errorLine1=" if (mVerticalAlign == VERTICAL_ALIGN_BASELINE"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mVerticalAlign` of class `Flow` requires synthetic accessor"
- errorLine1=" switch (mVerticalAlign) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mHorizontalStyle` of class `Flow` requires synthetic accessor"
- errorLine1=" horizontalWidget.setHorizontalChainStyle(mHorizontalStyle);"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mHorizontalGap` of class `Flow` requires synthetic accessor"
- errorLine1=" padding += mHorizontalGap;"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDisplayedWidgetsCount` of class `Flow` requires synthetic accessor"
- errorLine1=" if (mStartIndex + i >= mDisplayedWidgetsCount) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDisplayedWidgets` of class `Flow` requires synthetic accessor"
- errorLine1=" ConstraintWidget widget = mDisplayedWidgets[mStartIndex + i];"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mVerticalStyle` of class `Flow` requires synthetic accessor"
- errorLine1=" int style = mVerticalStyle;"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mVerticalBias` of class `Flow` requires synthetic accessor"
- errorLine1=" float bias = mVerticalBias;"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mFirstVerticalStyle` of class `Flow` requires synthetic accessor"
- errorLine1=" if (mStartIndex == 0 && mFirstVerticalStyle != UNKNOWN) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mFirstVerticalStyle` of class `Flow` requires synthetic accessor"
- errorLine1=" style = mFirstVerticalStyle;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mFirstVerticalBias` of class `Flow` requires synthetic accessor"
- errorLine1=" bias = mFirstVerticalBias;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mLastVerticalStyle` of class `Flow` requires synthetic accessor"
- errorLine1=" } else if (isLastChain && mLastVerticalStyle != UNKNOWN) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mLastVerticalStyle` of class `Flow` requires synthetic accessor"
- errorLine1=" style = mLastVerticalStyle;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mLastVerticalBias` of class `Flow` requires synthetic accessor"
- errorLine1=" bias = mLastVerticalBias;"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mVerticalGap` of class `Flow` requires synthetic accessor"
- errorLine1=" widget.mTop.connect(previous.mBottom, mVerticalGap);"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mHorizontalAlign` of class `Flow` requires synthetic accessor"
- errorLine1=" switch (mHorizontalAlign) {"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mHorizontalAlign` of class `Flow` requires synthetic accessor"
- errorLine1=" switch (mHorizontalAlign) {"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDisplayedWidgetsCount` of class `Flow` requires synthetic accessor"
- errorLine1=" if (mStartIndex + i >= mDisplayedWidgetsCount) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDisplayedWidgets` of class `Flow` requires synthetic accessor"
- errorLine1=" ConstraintWidget widget = mDisplayedWidgets[mStartIndex + i];"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDisplayedWidgetsCount` of class `Flow` requires synthetic accessor"
- errorLine1=" if (mStartIndex + i >= mDisplayedWidgetsCount) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDisplayedWidgets` of class `Flow` requires synthetic accessor"
- errorLine1=" ConstraintWidget widget = mDisplayedWidgets[mStartIndex + i];"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mHorizontalGap` of class `Flow` requires synthetic accessor"
- errorLine1=" int gap = mHorizontalGap;"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getWidgetHeight` of class `Flow` requires synthetic accessor"
- errorLine1=" int height = getWidgetHeight(widget, mMax);"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getWidgetWidth` of class `Flow` requires synthetic accessor"
- errorLine1=" int width = getWidgetWidth(widget, mMax);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getWidgetHeight` of class `Flow` requires synthetic accessor"
- errorLine1=" int height = getWidgetHeight(widget, mMax);"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mVerticalGap` of class `Flow` requires synthetic accessor"
- errorLine1=" int gap = mVerticalGap;"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mBiggest` of class `WidgetsList` requires synthetic accessor"
- errorLine1=" && list.mBiggest != null;"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mBiggest` of class `WidgetsList` requires synthetic accessor"
- errorLine1=" && list.mBiggest != null;"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mBiggest` of class `WidgetsList` requires synthetic accessor"
- errorLine1=" bottom = next.mBiggest.mTop;"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mBiggest` of class `WidgetsList` requires synthetic accessor"
- errorLine1=" ConstraintAnchor currentBottom = current.mBiggest.mBottom;"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mBiggest` of class `WidgetsList` requires synthetic accessor"
- errorLine1=" right = next.mBiggest.mLeft;"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mBiggest` of class `WidgetsList` requires synthetic accessor"
- errorLine1=" ConstraintAnchor currentRight = current.mBiggest.mRight;"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mBiggest` of class `WidgetsList` requires synthetic accessor"
- errorLine1=" && list.mBiggest != null;"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mBiggest` of class `WidgetsList` requires synthetic accessor"
- errorLine1=" && list.mBiggest != null;"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mBiggest` of class `WidgetsList` requires synthetic accessor"
- errorLine1=" bottom = next.mBiggest.mTop;"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mBiggest` of class `WidgetsList` requires synthetic accessor"
- errorLine1=" ConstraintAnchor currentBottom = current.mBiggest.mBottom;"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mBiggest` of class `WidgetsList` requires synthetic accessor"
- errorLine1=" right = next.mBiggest.mLeft;"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mBiggest` of class `WidgetsList` requires synthetic accessor"
- errorLine1=" ConstraintAnchor currentRight = current.mBiggest.mRight;"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/widgets/Flow.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `removeGoal` of class `PriorityGoalRow` requires synthetic accessor"
- errorLine1=" removeGoal(mVariable);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/core/PriorityGoalRow.java"/>
- </issue>
-
- <issue
id="KotlinPropertyAccess"
message="The getter return type (`CLElement`) and setter parameter type (`CLContainer`) getter and setter methods for property `container` should have exactly the same type to allow be accessed as a property from Kotlin; see https://android.github.io/kotlin-guides/interop.html#property-prefixes"
errorLine1=" public CLElement getContainer() {"
diff --git a/constraintlayout/constraintlayout/lint-baseline.xml b/constraintlayout/constraintlayout/lint-baseline.xml
index a9b5204..03b1210 100644
--- a/constraintlayout/constraintlayout/lint-baseline.xml
+++ b/constraintlayout/constraintlayout/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.0.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (8.0.0-alpha07)" variant="all" version="8.0.0-alpha07">
+<issues format="6" by="lint 8.1.0" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0)" variant="all" version="8.1.0">
<issue
id="NewApi"
@@ -1118,3138 +1118,6 @@
</issue>
<issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionLayout` of class `Carousel` requires synthetic accessor"
- errorLine1=" mMotionLayout.setProgress(0);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `updateItems` of class `Carousel` requires synthetic accessor"
- errorLine1=" updateItems();"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mAdapter` of class `Carousel` requires synthetic accessor"
- errorLine1=" mAdapter.onNewItem(mIndex);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mIndex` of class `Carousel` requires synthetic accessor"
- errorLine1=" mAdapter.onNewItem(mIndex);"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionLayout` of class `Carousel` requires synthetic accessor"
- errorLine1=" float velocity = mMotionLayout.getVelocity();"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchUpMode` of class `Carousel` requires synthetic accessor"
- errorLine1=" if (mTouchUpMode == TOUCH_UP_CARRY_ON && velocity > mVelocityThreshold"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mVelocityThreshold` of class `Carousel` requires synthetic accessor"
- errorLine1=" if (mTouchUpMode == TOUCH_UP_CARRY_ON && velocity > mVelocityThreshold"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mAdapter` of class `Carousel` requires synthetic accessor"
- errorLine1=" && mIndex < mAdapter.count() - 1) {"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mIndex` of class `Carousel` requires synthetic accessor"
- errorLine1=" && mIndex < mAdapter.count() - 1) {"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDampening` of class `Carousel` requires synthetic accessor"
- errorLine1=" final float v = velocity * mDampening;"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mIndex` of class `Carousel` requires synthetic accessor"
- errorLine1=" if (mIndex == 0 && mPreviousIndex > mIndex) {"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mIndex` of class `Carousel` requires synthetic accessor"
- errorLine1=" if (mIndex == 0 && mPreviousIndex > mIndex) {"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mPreviousIndex` of class `Carousel` requires synthetic accessor"
- errorLine1=" if (mIndex == 0 && mPreviousIndex > mIndex) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mAdapter` of class `Carousel` requires synthetic accessor"
- errorLine1=" if (mIndex == mAdapter.count() - 1 && mPreviousIndex < mIndex) {"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mIndex` of class `Carousel` requires synthetic accessor"
- errorLine1=" if (mIndex == mAdapter.count() - 1 && mPreviousIndex < mIndex) {"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mIndex` of class `Carousel` requires synthetic accessor"
- errorLine1=" if (mIndex == mAdapter.count() - 1 && mPreviousIndex < mIndex) {"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mPreviousIndex` of class `Carousel` requires synthetic accessor"
- errorLine1=" if (mIndex == mAdapter.count() - 1 && mPreviousIndex < mIndex) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionLayout` of class `Carousel` requires synthetic accessor"
- errorLine1=" mMotionLayout.post(new Runnable() {"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionLayout` of class `Carousel` requires synthetic accessor"
- errorLine1=" mMotionLayout.touchAnimateTo(MotionLayout.TOUCH_UP_DECELERATE_AND_COMPLETE,"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/helper/widget/Carousel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMetrics` of class `ConstraintLayout` requires synthetic accessor"
- errorLine1=" if (mMetrics != null) {"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMetrics` of class `ConstraintLayout` requires synthetic accessor"
- errorLine1=" mMetrics.mNumberOfMeasures++;"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mOptimizationLevel` of class `ConstraintLayout` requires synthetic accessor"
- errorLine1=" if (container != null && Optimizer.enabled(mOptimizationLevel,"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mOptimizationLevel` of class `ConstraintLayout` requires synthetic accessor"
- errorLine1=" boolean optimizeDirect = Optimizer.enabled(mOptimizationLevel,"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMetrics` of class `ConstraintLayout` requires synthetic accessor"
- errorLine1=" if (mMetrics != null) {"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMetrics` of class `ConstraintLayout` requires synthetic accessor"
- errorLine1=" mMetrics.measuresWidgetsDuration += (endMeasure - startMeasure);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintHelpers` of class `ConstraintLayout` requires synthetic accessor"
- errorLine1=" final int helperCount = mLayout.mConstraintHelpers.size();"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintHelpers` of class `ConstraintLayout` requires synthetic accessor"
- errorLine1=" ConstraintHelper helper = mLayout.mConstraintHelpers.get(i);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `fillFrom` of class `Constraint` requires synthetic accessor"
- errorLine1=" constraint.fillFrom(id, param);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" leftToLeft = lookupID(a, attr, leftToLeft);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" leftToRight = lookupID(a, attr, leftToRight);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" rightToLeft = lookupID(a, attr, rightToLeft);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" rightToRight = lookupID(a, attr, rightToRight);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" topToTop = lookupID(a, attr, topToTop);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" topToBottom = lookupID(a, attr, topToBottom);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" bottomToTop = lookupID(a, attr, bottomToTop);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" bottomToBottom = lookupID(a, attr, bottomToBottom);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" baselineToBaseline = lookupID(a, attr, baselineToBaseline);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" baselineToTop = lookupID(a, attr, baselineToTop);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" baselineToBottom = lookupID(a, attr, baselineToBottom);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" startToEnd = lookupID(a, attr, startToEnd);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" startToStart = lookupID(a, attr, startToStart);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" endToStart = lookupID(a, attr, endToStart);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" endToEnd = lookupID(a, attr, endToEnd);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" circleConstraint = lookupID(a, attr, circleConstraint);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" transformPivotTarget = lookupID(a, attr, transformPivotTarget);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `lookupID` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" mAnimateRelativeTo = lookupID(a, attr, mAnimateRelativeTo);"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `setDeltaValue` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" setDeltaValue(c, mTypeInt[i], mValueInt[i]);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `setDeltaValue` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" setDeltaValue(c, mTypeFloat[i], mValueFloat[i]);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `setDeltaValue` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" setDeltaValue(c, mTypeString[i], mValueString[i]);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `setDeltaValue` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" setDeltaValue(c, mTypeBoolean[i], mValueBoolean[i]);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `fillFrom` of class `Constraint` requires synthetic accessor"
- errorLine1=" constraint.fillFrom(id, param);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `fillFromConstraints` of class `Constraint` requires synthetic accessor"
- errorLine1=" constraint.fillFromConstraints(helper, id, param);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `fillFromConstraints` of class `Constraint` requires synthetic accessor"
- errorLine1=" constraint.fillFromConstraints(id, param);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `setIntValue` of class `Constraint` requires synthetic accessor"
- errorLine1=" get(viewId).setIntValue(attributeName, value);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `setColorValue` of class `Constraint` requires synthetic accessor"
- errorLine1=" get(viewId).setColorValue(attributeName, value);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `setFloatValue` of class `Constraint` requires synthetic accessor"
- errorLine1=" get(viewId).setFloatValue(attributeName, value);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `setStringValue` of class `Constraint` requires synthetic accessor"
- errorLine1=" get(viewId).setStringValue(attributeName, value);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `setFloatValue` of class `Constraint` requires synthetic accessor"
- errorLine1=" set.setFloatValue(attr[0], Integer.decode(attr[1]));"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `setColorValue` of class `Constraint` requires synthetic accessor"
- errorLine1=" set.setColorValue(attr[0], Color.parseColor(attr[1]));"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `setFloatValue` of class `Constraint` requires synthetic accessor"
- errorLine1=" set.setFloatValue(attr[0], Float.parseFloat(attr[1]));"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `setStringValue` of class `Constraint` requires synthetic accessor"
- errorLine1=" set.setStringValue(attr[0], attr[1]);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraints` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" for (Integer id : mConstraints.keySet()) {"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraints` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" Constraint c = mConstraints.get(id);"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraints` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" for (Integer id : mConstraints.keySet()) {"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraints` of class `ConstraintSet` requires synthetic accessor"
- errorLine1=" Constraint c = mConstraints.get(id);"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/widget/ConstraintSet.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRoundPercent` of class `ImageFilterButton` requires synthetic accessor"
- errorLine1=" float r = Math.min(w, h) * mRoundPercent / 2;"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/utils/widget/ImageFilterButton.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRound` of class `ImageFilterButton` requires synthetic accessor"
- errorLine1=" outline.setRoundRect(0, 0, w, h, mRound);"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/utils/widget/ImageFilterButton.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRoundPercent` of class `ImageFilterView` requires synthetic accessor"
- errorLine1=" float r = Math.min(w, h) * mRoundPercent / 2;"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/utils/widget/ImageFilterView.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRound` of class `ImageFilterView` requires synthetic accessor"
- errorLine1=" outline.setRoundRect(0, 0, w, h, mRound);"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/utils/widget/ImageFilterView.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mAlpha` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mAlpha = a.getFloat(attr, c.mAlpha);"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mAlpha` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mAlpha = a.getFloat(attr, c.mAlpha);"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mElevation` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mElevation = a.getDimension(attr, c.mElevation);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mElevation` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mElevation = a.getDimension(attr, c.mElevation);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotation` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mRotation = a.getFloat(attr, c.mRotation);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotation` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mRotation = a.getFloat(attr, c.mRotation);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mCurveFit` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mCurveFit = a.getInteger(attr, c.mCurveFit);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mCurveFit` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mCurveFit = a.getInteger(attr, c.mCurveFit);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mScaleX` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mScaleX = a.getFloat(attr, c.mScaleX);"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mScaleX` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mScaleX = a.getFloat(attr, c.mScaleX);"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotationX` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mRotationX = a.getFloat(attr, c.mRotationX);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotationX` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mRotationX = a.getFloat(attr, c.mRotationX);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotationY` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mRotationY = a.getFloat(attr, c.mRotationY);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotationY` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mRotationY = a.getFloat(attr, c.mRotationY);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mPivotX` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mPivotX = a.getDimension(attr, c.mPivotX);"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mPivotX` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mPivotX = a.getDimension(attr, c.mPivotX);"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mPivotY` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mPivotY = a.getDimension(attr, c.mPivotY);"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mPivotY` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mPivotY = a.getDimension(attr, c.mPivotY);"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTransitionEasing` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mTransitionEasing = a.getString(attr);"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mScaleY` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mScaleY = a.getFloat(attr, c.mScaleY);"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mScaleY` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mScaleY = a.getFloat(attr, c.mScaleY);"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTransitionPathRotate` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mTransitionPathRotate = a.getFloat(attr, c.mTransitionPathRotate);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTransitionPathRotate` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mTransitionPathRotate = a.getFloat(attr, c.mTransitionPathRotate);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationX` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mTranslationX = a.getDimension(attr, c.mTranslationX);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationX` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mTranslationX = a.getDimension(attr, c.mTranslationX);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationY` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mTranslationY = a.getDimension(attr, c.mTranslationY);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationY` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mTranslationY = a.getDimension(attr, c.mTranslationY);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationZ` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mTranslationZ = a.getDimension(attr, c.mTranslationZ);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationZ` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mTranslationZ = a.getDimension(attr, c.mTranslationZ);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mProgress` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mProgress = a.getFloat(attr, c.mProgress);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mProgress` of class `KeyAttributes` requires synthetic accessor"
- errorLine1=" c.mProgress = a.getFloat(attr, c.mProgress);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyAttributes.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `read` of class `Loader` requires synthetic accessor"
- errorLine1=" Loader.read(this, a);"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTransitionEasing` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mTransitionEasing = a.getString(attr);"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mCurveFit` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mCurveFit = a.getInteger(attr, c.mCurveFit);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mCurveFit` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mCurveFit = a.getInteger(attr, c.mCurveFit);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mCustomWaveShape` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mCustomWaveShape = a.getString(attr);"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWaveShape` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mWaveShape = Oscillator.CUSTOM;"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWaveShape` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mWaveShape = a.getInt(attr, c.mWaveShape);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWaveShape` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mWaveShape = a.getInt(attr, c.mWaveShape);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWavePeriod` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mWavePeriod = a.getFloat(attr, c.mWavePeriod);"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWavePeriod` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mWavePeriod = a.getFloat(attr, c.mWavePeriod);"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWaveOffset` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mWaveOffset = a.getDimension(attr, c.mWaveOffset);"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWaveOffset` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mWaveOffset = a.getDimension(attr, c.mWaveOffset);"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWaveOffset` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mWaveOffset = a.getFloat(attr, c.mWaveOffset);"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWaveOffset` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mWaveOffset = a.getFloat(attr, c.mWaveOffset);"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWaveVariesBy` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mWaveVariesBy = a.getInt(attr, c.mWaveVariesBy);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWaveVariesBy` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mWaveVariesBy = a.getInt(attr, c.mWaveVariesBy);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mAlpha` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mAlpha = a.getFloat(attr, c.mAlpha);"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mAlpha` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mAlpha = a.getFloat(attr, c.mAlpha);"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mElevation` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mElevation = a.getDimension(attr, c.mElevation);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mElevation` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mElevation = a.getDimension(attr, c.mElevation);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotation` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mRotation = a.getFloat(attr, c.mRotation);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotation` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mRotation = a.getFloat(attr, c.mRotation);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotationX` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mRotationX = a.getFloat(attr, c.mRotationX);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotationX` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mRotationX = a.getFloat(attr, c.mRotationX);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotationY` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mRotationY = a.getFloat(attr, c.mRotationY);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotationY` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mRotationY = a.getFloat(attr, c.mRotationY);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTransitionPathRotate` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mTransitionPathRotate = a.getFloat(attr, c.mTransitionPathRotate);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTransitionPathRotate` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mTransitionPathRotate = a.getFloat(attr, c.mTransitionPathRotate);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mScaleX` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mScaleX = a.getFloat(attr, c.mScaleX);"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mScaleX` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mScaleX = a.getFloat(attr, c.mScaleX);"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mScaleY` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mScaleY = a.getFloat(attr, c.mScaleY);"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mScaleY` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mScaleY = a.getFloat(attr, c.mScaleY);"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationX` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mTranslationX = a.getDimension(attr, c.mTranslationX);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationX` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mTranslationX = a.getDimension(attr, c.mTranslationX);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationY` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mTranslationY = a.getDimension(attr, c.mTranslationY);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationY` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mTranslationY = a.getDimension(attr, c.mTranslationY);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationZ` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mTranslationZ = a.getDimension(attr, c.mTranslationZ);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationZ` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mTranslationZ = a.getDimension(attr, c.mTranslationZ);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mProgress` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mProgress = a.getFloat(attr, c.mProgress);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mProgress` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mProgress = a.getFloat(attr, c.mProgress);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWavePhase` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mWavePhase = a.getFloat(attr, c.mWavePhase) / 360;"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWavePhase` of class `KeyCycle` requires synthetic accessor"
- errorLine1=" c.mWavePhase = a.getFloat(attr, c.mWavePhase) / 360;"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `read` of class `Loader` requires synthetic accessor"
- errorLine1=" Loader.read(this, a);"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyPosition.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mAlpha` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mAlpha = a.getFloat(attr, c.mAlpha);"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mAlpha` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mAlpha = a.getFloat(attr, c.mAlpha);"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mElevation` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mElevation = a.getDimension(attr, c.mElevation);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mElevation` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mElevation = a.getDimension(attr, c.mElevation);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotation` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mRotation = a.getFloat(attr, c.mRotation);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotation` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mRotation = a.getFloat(attr, c.mRotation);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mCurveFit` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mCurveFit = a.getInteger(attr, c.mCurveFit);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mCurveFit` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mCurveFit = a.getInteger(attr, c.mCurveFit);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mCustomWaveShape` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mCustomWaveShape = a.getString(attr);"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWaveShape` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mWaveShape = Oscillator.CUSTOM;"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWaveShape` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mWaveShape = a.getInt(attr, c.mWaveShape);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWaveShape` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mWaveShape = a.getInt(attr, c.mWaveShape);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWavePeriod` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mWavePeriod = a.getFloat(attr, c.mWavePeriod);"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWavePeriod` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mWavePeriod = a.getFloat(attr, c.mWavePeriod);"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWaveOffset` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mWaveOffset = a.getDimension(attr, c.mWaveOffset);"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWaveOffset` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mWaveOffset = a.getDimension(attr, c.mWaveOffset);"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWaveOffset` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mWaveOffset = a.getFloat(attr, c.mWaveOffset);"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mWaveOffset` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mWaveOffset = a.getFloat(attr, c.mWaveOffset);"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mScaleX` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mScaleX = a.getFloat(attr, c.mScaleX);"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mScaleX` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mScaleX = a.getFloat(attr, c.mScaleX);"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotationX` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mRotationX = a.getFloat(attr, c.mRotationX);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotationX` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mRotationX = a.getFloat(attr, c.mRotationX);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotationY` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mRotationY = a.getFloat(attr, c.mRotationY);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRotationY` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mRotationY = a.getFloat(attr, c.mRotationY);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTransitionEasing` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mTransitionEasing = a.getString(attr);"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mScaleY` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mScaleY = a.getFloat(attr, c.mScaleY);"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mScaleY` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mScaleY = a.getFloat(attr, c.mScaleY);"
- errorLine2=" ~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTransitionPathRotate` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mTransitionPathRotate = a.getFloat(attr, c.mTransitionPathRotate);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTransitionPathRotate` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mTransitionPathRotate = a.getFloat(attr, c.mTransitionPathRotate);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationX` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mTranslationX = a.getDimension(attr, c.mTranslationX);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationX` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mTranslationX = a.getDimension(attr, c.mTranslationX);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationY` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mTranslationY = a.getDimension(attr, c.mTranslationY);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationY` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mTranslationY = a.getDimension(attr, c.mTranslationY);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationZ` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mTranslationZ = a.getDimension(attr, c.mTranslationZ);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTranslationZ` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mTranslationZ = a.getDimension(attr, c.mTranslationZ);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mProgress` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mProgress = a.getFloat(attr, c.mProgress);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mProgress` of class `KeyTimeCycle` requires synthetic accessor"
- errorLine1=" c.mProgress = a.getFloat(attr, c.mProgress);"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTimeCycle.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mFireThreshold` of class `KeyTrigger` requires synthetic accessor"
- errorLine1=" c.mFireThreshold = (c.mFramePosition + .5f) / 100f;"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTrigger.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mNegativeCross` of class `KeyTrigger` requires synthetic accessor"
- errorLine1=" c.mNegativeCross = a.getString(attr);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTrigger.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mPositiveCross` of class `KeyTrigger` requires synthetic accessor"
- errorLine1=" c.mPositiveCross = a.getString(attr);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTrigger.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mCross` of class `KeyTrigger` requires synthetic accessor"
- errorLine1=" c.mCross = a.getString(attr);"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTrigger.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTriggerID` of class `KeyTrigger` requires synthetic accessor"
- errorLine1=" c.mTriggerID = a.getResourceId(attr, c.mTriggerID);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTrigger.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTriggerID` of class `KeyTrigger` requires synthetic accessor"
- errorLine1=" c.mTriggerID = a.getResourceId(attr, c.mTriggerID);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTrigger.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTriggerCollisionId` of class `KeyTrigger` requires synthetic accessor"
- errorLine1=" c.mTriggerCollisionId = a.getResourceId(attr, c.mTriggerCollisionId);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTrigger.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTriggerCollisionId` of class `KeyTrigger` requires synthetic accessor"
- errorLine1=" c.mTriggerCollisionId = a.getResourceId(attr, c.mTriggerCollisionId);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTrigger.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mPostLayout` of class `KeyTrigger` requires synthetic accessor"
- errorLine1=" c.mPostLayout = a.getBoolean(attr, c.mPostLayout);"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTrigger.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mPostLayout` of class `KeyTrigger` requires synthetic accessor"
- errorLine1=" c.mPostLayout = a.getBoolean(attr, c.mPostLayout);"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTrigger.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTriggerReceiver` of class `KeyTrigger` requires synthetic accessor"
- errorLine1=" c.mTriggerReceiver = a.getResourceId(attr, c.mTriggerReceiver);"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTrigger.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTriggerReceiver` of class `KeyTrigger` requires synthetic accessor"
- errorLine1=" c.mTriggerReceiver = a.getResourceId(attr, c.mTriggerReceiver);"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/KeyTrigger.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRoundPercent` of class `MotionButton` requires synthetic accessor"
- errorLine1=" float r = Math.min(w, h) * mRoundPercent / 2;"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/utils/widget/MotionButton.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRound` of class `MotionButton` requires synthetic accessor"
- errorLine1=" outline.setRoundRect(0, 0, w, h, mRound);"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/utils/widget/MotionButton.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRoundPercent` of class `MotionLabel` requires synthetic accessor"
- errorLine1=" float r = Math.min(w, h) * mRoundPercent / 2;"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/utils/widget/MotionLabel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mRound` of class `MotionLabel` requires synthetic accessor"
- errorLine1=" outline.setRoundRect(0, 0, w, h, mRound);"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/utils/widget/MotionLabel.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mStateCache` of class `MotionLayout` requires synthetic accessor"
- errorLine1=" mStateCache.apply();"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mEndState` of class `MotionLayout` requires synthetic accessor"
- errorLine1=" mEndState = MotionLayout.this.mEndState;"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mBeginState` of class `MotionLayout` requires synthetic accessor"
- errorLine1=" mStartState = MotionLayout.this.mBeginState;"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mInRotation` of class `MotionLayout` requires synthetic accessor"
- errorLine1=" mInRotation = false;"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mLastHeightMeasureSpec` of class `MotionLayout` requires synthetic accessor"
- errorLine1=" measure(mLastWidthMeasureSpec, mLastHeightMeasureSpec);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mLastWidthMeasureSpec` of class `MotionLayout` requires synthetic accessor"
- errorLine1=" measure(mLastWidthMeasureSpec, mLastHeightMeasureSpec);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `setupMotionViews` of class `MotionLayout` requires synthetic accessor"
- errorLine1=" setupMotionViews();"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `toRect` of class `MotionLayout` requires synthetic accessor"
- errorLine1=" motionController.setStartState(toRect(startWidget), mStart,"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mInRotation` of class `MotionLayout` requires synthetic accessor"
- errorLine1=" if (mInRotation) {"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mPreRotateHeight` of class `MotionLayout` requires synthetic accessor"
- errorLine1=" mPreRotateWidth, mPreRotateHeight);"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mPreRotateWidth` of class `MotionLayout` requires synthetic accessor"
- errorLine1=" mPreRotateWidth, mPreRotateHeight);"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `toRect` of class `MotionLayout` requires synthetic accessor"
- errorLine1=" motionController.setEndState(toRect(endWidget), mEnd,"
- errorLine2=" ~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mEndState` of class `MotionLayout` requires synthetic accessor"
- errorLine1=" String str = getContext().getResources().getResourceName(mEndState)"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mStateCache` of class `MotionLayout` requires synthetic accessor"
- errorLine1=" mStateCache.apply();"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionLayout.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetEnd` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition.mConstraintSetEnd == endId"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetStart` of class `Transition` requires synthetic accessor"
- errorLine1=" && mCurrentTransition.mConstraintSetStart == beginId) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetEnd` of class `Transition` requires synthetic accessor"
- errorLine1=" if ((transition.mConstraintSetEnd == end"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetStart` of class `Transition` requires synthetic accessor"
- errorLine1=" && transition.mConstraintSetStart == start)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetEnd` of class `Transition` requires synthetic accessor"
- errorLine1=" || (transition.mConstraintSetEnd == endId"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetStart` of class `Transition` requires synthetic accessor"
- errorLine1=" && transition.mConstraintSetStart == beginId)) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" mCurrentTransition.mTouchResponse.setRTL(mRtl);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetEnd` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mConstraintSetEnd == endId) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetStart` of class `Transition` requires synthetic accessor"
- errorLine1=" t.mConstraintSetStart = start;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetEnd` of class `Transition` requires synthetic accessor"
- errorLine1=" t.mConstraintSetEnd = end;"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mId` of class `Transition` requires synthetic accessor"
- errorLine1=" int id = transition.mId;"
- errorLine2=" ~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mId` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mTransitionList.get(index).mId == id) {"
- errorLine2=" ~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" mCurrentTransition.mTouchResponse.setRTL(mRtl);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetStart` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mConstraintSetStart == stateId"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetEnd` of class `Transition` requires synthetic accessor"
- errorLine1=" || transition.mConstraintSetEnd == stateId) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mOnClicks` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mOnClicks.size() > 0) {"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mOnClicks` of class `Transition` requires synthetic accessor"
- errorLine1=" for (Transition.TransitionOnClick onClick : transition.mOnClicks) {"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mOnClicks` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mOnClicks.size() > 0) {"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mOnClicks` of class `Transition` requires synthetic accessor"
- errorLine1=" for (Transition.TransitionOnClick onClick : transition.mOnClicks) {"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mOnClicks` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mOnClicks.size() > 0) {"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mOnClicks` of class `Transition` requires synthetic accessor"
- errorLine1=" for (Transition.TransitionOnClick onClick : transition.mOnClicks) {"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mOnClicks` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mOnClicks.size() > 0) {"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mOnClicks` of class `Transition` requires synthetic accessor"
- errorLine1=" for (Transition.TransitionOnClick onClick : transition.mOnClicks) {"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDisable` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mDisable) {"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" transition.mTouchResponse.setRTL(mRtl);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" RectF region = transition.mTouchResponse.getTouchRegion(mMotionLayout, cache);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" region = transition.mTouchResponse.getLimitBoundsTo(mMotionLayout, cache);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" float val = transition.mTouchResponse.dot(dx, dy);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mTouchResponse.mIsRotateMode && lastTouchDown != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" - transition.mTouchResponse.mRotateCenterX;"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" - transition.mTouchResponse.mRotateCenterY;"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetEnd` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mConstraintSetEnd == currentState) { // flip because backwards"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mId` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mId == id) {"
- errorLine2=" ~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mAutoTransition` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mAutoTransition == Transition.AUTO_NONE) {"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetStart` of class `Transition` requires synthetic accessor"
- errorLine1=" if (currentState == transition.mConstraintSetStart && ("
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mAutoTransition` of class `Transition` requires synthetic accessor"
- errorLine1=" transition.mAutoTransition == Transition.AUTO_ANIMATE_TO_END"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mAutoTransition` of class `Transition` requires synthetic accessor"
- errorLine1=" || transition.mAutoTransition == Transition.AUTO_JUMP_TO_END)) {"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mAutoTransition` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mAutoTransition == Transition.AUTO_ANIMATE_TO_END) {"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetEnd` of class `Transition` requires synthetic accessor"
- errorLine1=" if (currentState == transition.mConstraintSetEnd && ("
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mAutoTransition` of class `Transition` requires synthetic accessor"
- errorLine1=" transition.mAutoTransition == Transition.AUTO_ANIMATE_TO_START"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mAutoTransition` of class `Transition` requires synthetic accessor"
- errorLine1=" || transition.mAutoTransition == Transition.AUTO_JUMP_TO_START)) {"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mAutoTransition` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mAutoTransition == Transition.AUTO_ANIMATE_TO_START) {"
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" mCurrentTransition.mTouchResponse.setRTL(mRtl);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionLayout` of class `MotionScene` requires synthetic accessor"
- errorLine1=" : new TouchResponse(mMotionScene.mMotionLayout, onSwipe);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetStart` of class `Transition` requires synthetic accessor"
- errorLine1=" int start = transition.mConstraintSetStart;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetEnd` of class `Transition` requires synthetic accessor"
- errorLine1=" int end = transition.mConstraintSetEnd;"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetEnd` of class `Transition` requires synthetic accessor"
- errorLine1=" int dest = mTransition.mConstraintSetEnd;"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetStart` of class `Transition` requires synthetic accessor"
- errorLine1=" int from = mTransition.mConstraintSetStart;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionLayout` of class `MotionScene` requires synthetic accessor"
- errorLine1=" MotionLayout tl = mTransition.mMotionScene.mMotionLayout;"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionScene` of class `Transition` requires synthetic accessor"
- errorLine1=" MotionLayout tl = mTransition.mMotionScene.mMotionLayout;"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetStart` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mTransition.mConstraintSetStart == UNSET) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetEnd` of class `Transition` requires synthetic accessor"
- errorLine1=" tl.transitionToState(mTransition.mConstraintSetEnd);"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionScene` of class `Transition` requires synthetic accessor"
- errorLine1=" Transition t = new Transition(mTransition.mMotionScene, mTransition);"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetStart` of class `Transition` requires synthetic accessor"
- errorLine1=" t.mConstraintSetStart = currentState;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetEnd` of class `Transition` requires synthetic accessor"
- errorLine1=" t.mConstraintSetEnd = mTransition.mConstraintSetEnd;"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetEnd` of class `Transition` requires synthetic accessor"
- errorLine1=" t.mConstraintSetEnd = mTransition.mConstraintSetEnd;"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionScene` of class `Transition` requires synthetic accessor"
- errorLine1=" Transition current = mTransition.mMotionScene.mCurrentTransition;"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionScene` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mTransition.mMotionScene.mCurrentTransition != mTransition) {"
- errorLine2=" ~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDefaultDuration` of class `MotionScene` requires synthetic accessor"
- errorLine1=" mDuration = motionScene.mDefaultDuration;"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDefaultDuration` of class `MotionScene` requires synthetic accessor"
- errorLine1=" mDuration = motionScene.mDefaultDuration;"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mLayoutDuringTransition` of class `MotionScene` requires synthetic accessor"
- errorLine1=" mLayoutDuringTransition = motionScene.mLayoutDuringTransition;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDefaultDuration` of class `MotionScene` requires synthetic accessor"
- errorLine1=" mDuration = motionScene.mDefaultDuration;"
- errorLine2=" ~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mLayoutDuringTransition` of class `MotionScene` requires synthetic accessor"
- errorLine1=" mLayoutDuringTransition = motionScene.mLayoutDuringTransition;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetMap` of class `MotionScene` requires synthetic accessor"
- errorLine1=" motionScene.mConstraintSetMap.append(mConstraintSetEnd, cSet);"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `parseInclude` of class `MotionScene` requires synthetic accessor"
- errorLine1=" int id = motionScene.parseInclude(context, mConstraintSetEnd);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetMap` of class `MotionScene` requires synthetic accessor"
- errorLine1=" motionScene.mConstraintSetMap.append(mConstraintSetStart, cSet);"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `parseInclude` of class `MotionScene` requires synthetic accessor"
- errorLine1=" int id = motionScene.parseInclude(context, mConstraintSetStart);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mIsAbstract` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition == null && !transition.mIsAbstract) {"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" mCurrentTransition.mTouchResponse.setRTL(mRtl);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mIsAbstract` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mIsAbstract) { // global transition only one for now"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetEnd` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mConstraintSetEnd == UNSET) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" transition.mTouchResponse ="
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mKeyFramesList` of class `Transition` requires synthetic accessor"
- errorLine1=" transition.mKeyFramesList.add(keyFrames);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mKeyFramesList` of class `Transition` requires synthetic accessor"
- errorLine1=" for (KeyFrames keyFrames : mDefaultTransition.mKeyFramesList) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mKeyFramesList` of class `Transition` requires synthetic accessor"
- errorLine1=" for (KeyFrames keyFrames : mCurrentTransition.mKeyFramesList) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mKeyFramesList` of class `Transition` requires synthetic accessor"
- errorLine1=" for (KeyFrames keyFrames : mCurrentTransition.mKeyFramesList) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetStart` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mConstraintSetStart == stateId) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mKeyFramesList` of class `Transition` requires synthetic accessor"
- errorLine1=" for (KeyFrames keyFrames : mCurrentTransition.mKeyFramesList) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mKeyFramesList` of class `Transition` requires synthetic accessor"
- errorLine1=" for (KeyFrames keyFrames : mCurrentTransition.mKeyFramesList) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (transition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" return mCurrentTransition != null && mCurrentTransition.mTouchResponse != null;"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" region = mCurrentTransition.mTouchResponse"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" region = mCurrentTransition.mTouchResponse"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" mCurrentTransition.mTouchResponse.setDown(mLastTouchX, mLastTouchY);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" .mTouchResponse.getTouchRegion(mMotionLayout, cache);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" mCurrentTransition.mTouchResponse.setUpTouchEvent(mLastTouchX, mLastTouchY);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" mCurrentTransition.mTouchResponse.processTouchEvent(event,"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" mCurrentTransition.mTouchResponse.scrollMove(dx, dy);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" mCurrentTransition.mTouchResponse.scrollUp(dx, dy);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" return mCurrentTransition.mTouchResponse.getProgressDirection(dx, dy);"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetStart` of class `Transition` requires synthetic accessor"
- errorLine1=" return mCurrentTransition.mConstraintSetStart;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConstraintSetEnd` of class `Transition` requires synthetic accessor"
- errorLine1=" return mCurrentTransition.mConstraintSetEnd;"
- errorLine2=" ~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDefaultInterpolator` of class `Transition` requires synthetic accessor"
- errorLine1=" switch (mCurrentTransition.mDefaultInterpolator) {"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDefaultInterpolatorString` of class `Transition` requires synthetic accessor"
- errorLine1=" .getInterpolator(mCurrentTransition.mDefaultInterpolatorString);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDefaultInterpolatorID` of class `Transition` requires synthetic accessor"
- errorLine1=" mCurrentTransition.mDefaultInterpolatorID);"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mDuration` of class `Transition` requires synthetic accessor"
- errorLine1=" return mCurrentTransition.mDuration;"
- errorLine2=" ~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mPathMotionArc` of class `Transition` requires synthetic accessor"
- errorLine1=" return (mCurrentTransition != null) ? mCurrentTransition.mPathMotionArc : UNSET;"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mStagger` of class `Transition` requires synthetic accessor"
- errorLine1=" return mCurrentTransition.mStagger;"
- errorLine2=" ~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" return mCurrentTransition.mTouchResponse.getMaxAcceleration();"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" return mCurrentTransition.mTouchResponse.getMaxVelocity();"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" return mCurrentTransition.mTouchResponse.getSpringStiffness();"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" return mCurrentTransition.mTouchResponse.getSpringMass();"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" return mCurrentTransition.mTouchResponse.getSpringDamping();"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" return mCurrentTransition.mTouchResponse.getSpringStopThreshold();"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" return mCurrentTransition.mTouchResponse.getSpringBoundary();"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" return mCurrentTransition.mTouchResponse.getAutoCompleteMode();"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" mCurrentTransition.mTouchResponse.setupTouch();"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" if (mCurrentTransition != null && mCurrentTransition.mTouchResponse != null) {"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mTouchResponse` of class `Transition` requires synthetic accessor"
- errorLine1=" return mCurrentTransition.mTouchResponse.getMoveWhenScrollAtTop();"
- errorLine2=" ~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/MotionScene.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionLayout` of class `ViewTransitionController` requires synthetic accessor"
- errorLine1=" int count = mMotionLayout.getChildCount();"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/ViewTransitionController.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionLayout` of class `ViewTransitionController` requires synthetic accessor"
- errorLine1=" View view = mMotionLayout.getChildAt(i);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/ViewTransitionController.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionLayout` of class `ViewTransitionController` requires synthetic accessor"
- errorLine1=" int currentId = mMotionLayout.getCurrentState();"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/ViewTransitionController.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionLayout` of class `ViewTransitionController` requires synthetic accessor"
- errorLine1=" mMotionLayout.getConstraintSet(currentId);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/ViewTransitionController.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionLayout` of class `ViewTransitionController` requires synthetic accessor"
- errorLine1=" ViewTransitionController.this, mMotionLayout,"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/ViewTransitionController.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionLayout` of class `ViewTransitionController` requires synthetic accessor"
- errorLine1=" int count = mMotionLayout.getChildCount();"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/ViewTransitionController.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionLayout` of class `ViewTransitionController` requires synthetic accessor"
- errorLine1=" View view = mMotionLayout.getChildAt(i);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/ViewTransitionController.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionLayout` of class `ViewTransitionController` requires synthetic accessor"
- errorLine1=" int currentId = mMotionLayout.getCurrentState();"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/ViewTransitionController.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionLayout` of class `ViewTransitionController` requires synthetic accessor"
- errorLine1=" mMotionLayout.getConstraintSet(currentId);"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/ViewTransitionController.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mMotionLayout` of class `ViewTransitionController` requires synthetic accessor"
- errorLine1=" ViewTransitionController.this, mMotionLayout,"
- errorLine2=" ~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/constraintlayout/motion/widget/ViewTransitionController.java"/>
- </issue>
-
- <issue
id="KotlinPropertyAccess"
message="The getter return type (`String[]`) and setter parameter type (`String`) getter and setter methods for property `stateLabels` should have exactly the same type to allow be accessed as a property from Kotlin; see https://android.github.io/kotlin-guides/interop.html#property-prefixes"
errorLine1=" public String[] getStateLabels() {"
diff --git a/core/core-performance/src/main/java/androidx/core/performance/DefaultDevicePerformance.kt b/core/core-performance/src/main/java/androidx/core/performance/DefaultDevicePerformance.kt
new file mode 100644
index 0000000..386cf33
--- /dev/null
+++ b/core/core-performance/src/main/java/androidx/core/performance/DefaultDevicePerformance.kt
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@file:Suppress("DEPRECATION")
+
+package androidx.core.performance
+
+import android.os.Build
+
+/**
+ * Reports the media performance class of the device. Contains statically specified values
+ * and can be used as a fallback alternative to suppliers with dynamic values.
+ */
+class DefaultDevicePerformance() : DevicePerformance {
+ private val PERFCLASS_11: Int = Build.VERSION_CODES.R
+ private val PERFCLASS_12: Int = Build.VERSION_CODES.S
+ private val PERFCLASS_13: Int = Build.VERSION_CODES.TIRAMISU
+ private val PERFCLASS_NONE: Int = 0
+
+ private val fingerprints: HashMap<String, Int> = hashMapOf(
+ // for unit testing, no actual products with these
+ "robolectric-BrandX/ProductX/Device30:11" to PERFCLASS_11,
+ "robolectric-BrandX/ProductX/Device31:12" to PERFCLASS_12,
+
+ // actual devices in the field
+ "OPPO/CPH2025EEA/OP4BA2L1:12" to PERFCLASS_11,
+ "OPPO/CPH2207EEA/OP4F0BL1:12" to PERFCLASS_11,
+ "OPPO/PENM00/OP4EC1:11" to PERFCLASS_11,
+ "OnePlus/OnePlus7TTMO/OnePlus7TTMO:11" to PERFCLASS_11,
+ "OnePlus/OnePlus8_BETA/OnePlus8:11" to PERFCLASS_11,
+ "Xiaomi/umi_global/umi:11" to PERFCLASS_11,
+ "realme/RMX2085/RMX2085L1:11" to PERFCLASS_11,
+ "samsung/c1qsqw/c1q:12" to PERFCLASS_11,
+ "samsung/o1quew/o1q:12" to PERFCLASS_11,
+ "samsung/r0quew/r0q:12" to PERFCLASS_11,
+ "samsung/r0sxxx/r0s:12" to PERFCLASS_11,
+ )
+
+ override val mediaPerformanceClass = getCalculatedMediaPerformanceClass()
+
+ private fun getMediaPerformanceClassFromFingerprint(): Int {
+
+ val brand = Build.BRAND
+ val product = Build.PRODUCT
+ val device = Build.DEVICE
+ val release = Build.VERSION.RELEASE
+
+ val synthesized = "$brand/$product/$device:$release"
+ var pc = fingerprints[synthesized]
+
+ if (pc == null) {
+ pc = PERFCLASS_NONE
+ }
+ return pc
+ }
+
+ private fun getMediaPerformanceClassFromProperty(): Int {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+ return Build.VERSION.MEDIA_PERFORMANCE_CLASS
+ }
+
+ return PERFCLASS_NONE
+ }
+
+ private fun isPerformanceClassValid(pc: Int): Boolean = pc >= PERFCLASS_11
+
+ private fun getCalculatedMediaPerformanceClass(): Int {
+
+ // device's declared property takes precedence over our in-library table.
+ val mpcViaProperty: Int =
+ getMediaPerformanceClassFromProperty()
+
+ if (isPerformanceClassValid(mpcViaProperty)) {
+ return mpcViaProperty
+ }
+
+ val mpcViaFingerprint: Int =
+ getMediaPerformanceClassFromFingerprint()
+
+ if (isPerformanceClassValid(mpcViaFingerprint)) {
+ return mpcViaFingerprint
+ }
+
+ return PERFCLASS_NONE
+ }
+}
diff --git a/core/core-performance/src/main/java/androidx/core/performance/DevicePerformance.kt b/core/core-performance/src/main/java/androidx/core/performance/DevicePerformance.kt
index 264ba89..98e947c 100644
--- a/core/core-performance/src/main/java/androidx/core/performance/DevicePerformance.kt
+++ b/core/core-performance/src/main/java/androidx/core/performance/DevicePerformance.kt
@@ -77,13 +77,6 @@
}
/**
- * Default DevicePerformance implementation that always provides 0.
- */
-class DefaultDevicePerformance() : DevicePerformance {
- override val mediaPerformanceClass = 0
-}
-
-/**
* Supplies a flow of mediaPerformanceClass
*/
@Deprecated(
diff --git a/core/core-performance/src/test/java/androidx/core/performance/DefaultDevicePerformanceTest.kt b/core/core-performance/src/test/java/androidx/core/performance/DefaultDevicePerformanceTest.kt
index 33eafcf..5a5b514 100644
--- a/core/core-performance/src/test/java/androidx/core/performance/DefaultDevicePerformanceTest.kt
+++ b/core/core-performance/src/test/java/androidx/core/performance/DefaultDevicePerformanceTest.kt
@@ -16,15 +16,61 @@
package androidx.core.performance
+import android.os.Build.VERSION_CODES.R
+import android.os.Build.VERSION_CODES.S
import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.test.runTest
import org.junit.Test
+import org.junit.runner.RunWith
+import org.robolectric.RobolectricTestRunner
+import org.robolectric.annotation.Config
+import org.robolectric.shadows.ShadowBuild
+import org.robolectric.shadows.ShadowSystemProperties
/** Unit tests for [DefaultDevicePerformance]. */
+@RunWith(RobolectricTestRunner::class)
class DefaultDevicePerformanceTest {
@Test
- fun mediaPerformanceClass() {
+ @Config(maxSdk = R, minSdk = R)
+ fun mediaPerformanceClass_SdkR_DeclaredMpc() = runTest {
+ ShadowSystemProperties.override("ro.odm.build.media_performance_class", "30")
+ ShadowBuild.reset()
val mpc = DefaultDevicePerformance().mediaPerformanceClass
assertThat(mpc).isEqualTo(0)
}
+
+ @Test
+ @Config(minSdk = S)
+ fun mediaPerformanceClass_SdkS_DeclaredMpc() = runTest {
+ ShadowSystemProperties.override("ro.odm.build.media_performance_class", "30")
+ ShadowBuild.reset()
+ val mpc = DefaultDevicePerformance().mediaPerformanceClass
+ assertThat(mpc).isEqualTo(30)
+ }
+
+ @Test
+ @Config(minSdk = S)
+ fun mediaPerformanceClass_SdkS_BuildFingerprintMatch() = runTest {
+ ShadowBuild.reset()
+ ShadowBuild.setBrand("robolectric-BrandX")
+ ShadowBuild.setProduct("ProductX")
+ ShadowBuild.setDevice("Device31")
+ ShadowBuild.setVersionRelease("12")
+ val mpc = DefaultDevicePerformance().mediaPerformanceClass
+ assertThat(mpc).isEqualTo(31)
+ }
+
+ @Test
+ @Config(minSdk = S)
+ fun mediaPerformanceClass_SdkS_DeclaredMpc_BuildFingerprintMatch() = runTest {
+ ShadowSystemProperties.override("ro.odm.build.media_performance_class", "30")
+ ShadowBuild.reset()
+ ShadowBuild.setBrand("robolectric-BrandX")
+ ShadowBuild.setProduct("ProductX")
+ ShadowBuild.setDevice("Device31")
+ ShadowBuild.setVersionRelease("12")
+ val mpc = DefaultDevicePerformance().mediaPerformanceClass
+ assertThat(mpc).isEqualTo(30)
+ }
}
diff --git a/credentials/credentials-play-services-auth/api/1.2.0-beta02.txt b/credentials/credentials-play-services-auth/api/1.2.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/credentials/credentials-play-services-auth/api/1.2.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/credentials/credentials-play-services-auth/api/res-1.2.0-beta02.txt b/credentials/credentials-play-services-auth/api/res-1.2.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/credentials/credentials-play-services-auth/api/res-1.2.0-beta02.txt
diff --git a/credentials/credentials-play-services-auth/api/restricted_1.2.0-beta02.txt b/credentials/credentials-play-services-auth/api/restricted_1.2.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/credentials/credentials-play-services-auth/api/restricted_1.2.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/credentials/credentials/api/1.2.0-beta02.txt b/credentials/credentials/api/1.2.0-beta02.txt
new file mode 100644
index 0000000..8c9cf86
--- /dev/null
+++ b/credentials/credentials/api/1.2.0-beta02.txt
@@ -0,0 +1,902 @@
+// Signature format: 4.0
+package androidx.credentials {
+
+ public final class ClearCredentialStateRequest {
+ ctor public ClearCredentialStateRequest();
+ }
+
+ public abstract class CreateCredentialRequest {
+ method public final android.os.Bundle getCandidateQueryData();
+ method public final android.os.Bundle getCredentialData();
+ method public final androidx.credentials.CreateCredentialRequest.DisplayInfo getDisplayInfo();
+ method public final String? getOrigin();
+ method public final boolean getPreferImmediatelyAvailableCredentials();
+ method public final String getType();
+ method public final boolean isAutoSelectAllowed();
+ method public final boolean isSystemProviderRequired();
+ property public final android.os.Bundle candidateQueryData;
+ property public final android.os.Bundle credentialData;
+ property public final androidx.credentials.CreateCredentialRequest.DisplayInfo displayInfo;
+ property public final boolean isAutoSelectAllowed;
+ property public final boolean isSystemProviderRequired;
+ property public final String? origin;
+ property public final boolean preferImmediatelyAvailableCredentials;
+ property public final String type;
+ }
+
+ public static final class CreateCredentialRequest.DisplayInfo {
+ ctor public CreateCredentialRequest.DisplayInfo(CharSequence userId);
+ ctor public CreateCredentialRequest.DisplayInfo(CharSequence userId, optional CharSequence? userDisplayName);
+ ctor public CreateCredentialRequest.DisplayInfo(CharSequence userId, CharSequence? userDisplayName, String? preferDefaultProvider);
+ method public CharSequence? getUserDisplayName();
+ method public CharSequence getUserId();
+ property public final CharSequence? userDisplayName;
+ property public final CharSequence userId;
+ }
+
+ public abstract class CreateCredentialResponse {
+ method public final android.os.Bundle getData();
+ method public final String getType();
+ property public final android.os.Bundle data;
+ property public final String type;
+ }
+
+ public class CreateCustomCredentialRequest extends androidx.credentials.CreateCredentialRequest {
+ ctor public CreateCustomCredentialRequest(String type, android.os.Bundle credentialData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired, androidx.credentials.CreateCredentialRequest.DisplayInfo displayInfo);
+ ctor public CreateCustomCredentialRequest(String type, android.os.Bundle credentialData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired, androidx.credentials.CreateCredentialRequest.DisplayInfo displayInfo, optional boolean isAutoSelectAllowed);
+ ctor public CreateCustomCredentialRequest(String type, android.os.Bundle credentialData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired, androidx.credentials.CreateCredentialRequest.DisplayInfo displayInfo, optional boolean isAutoSelectAllowed, optional String? origin);
+ ctor public CreateCustomCredentialRequest(String type, android.os.Bundle credentialData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired, androidx.credentials.CreateCredentialRequest.DisplayInfo displayInfo, optional boolean isAutoSelectAllowed, optional String? origin, optional boolean preferImmediatelyAvailableCredentials);
+ }
+
+ public class CreateCustomCredentialResponse extends androidx.credentials.CreateCredentialResponse {
+ ctor public CreateCustomCredentialResponse(String type, android.os.Bundle data);
+ }
+
+ public final class CreatePasswordRequest extends androidx.credentials.CreateCredentialRequest {
+ ctor public CreatePasswordRequest(String id, String password);
+ ctor public CreatePasswordRequest(String id, String password, optional String? origin);
+ ctor public CreatePasswordRequest(String id, String password, optional String? origin, optional boolean preferImmediatelyAvailableCredentials);
+ ctor public CreatePasswordRequest(String id, String password, optional String? origin, optional boolean preferImmediatelyAvailableCredentials, optional boolean isAutoSelectAllowed);
+ ctor public CreatePasswordRequest(String id, String password, String? origin, String? preferDefaultProvider, boolean preferImmediatelyAvailableCredentials, boolean isAutoSelectAllowed);
+ method public String getId();
+ method public String getPassword();
+ property public final String id;
+ property public final String password;
+ }
+
+ public final class CreatePasswordResponse extends androidx.credentials.CreateCredentialResponse {
+ ctor public CreatePasswordResponse();
+ }
+
+ public final class CreatePublicKeyCredentialRequest extends androidx.credentials.CreateCredentialRequest {
+ ctor public CreatePublicKeyCredentialRequest(String requestJson);
+ ctor public CreatePublicKeyCredentialRequest(String requestJson, optional byte[]? clientDataHash);
+ ctor public CreatePublicKeyCredentialRequest(String requestJson, optional byte[]? clientDataHash, optional boolean preferImmediatelyAvailableCredentials);
+ ctor public CreatePublicKeyCredentialRequest(String requestJson, optional byte[]? clientDataHash, optional boolean preferImmediatelyAvailableCredentials, optional String? origin);
+ ctor public CreatePublicKeyCredentialRequest(String requestJson, optional byte[]? clientDataHash, optional boolean preferImmediatelyAvailableCredentials, optional String? origin, optional boolean isAutoSelectAllowed);
+ ctor public CreatePublicKeyCredentialRequest(String requestJson, byte[]? clientDataHash, boolean preferImmediatelyAvailableCredentials, String? origin, String? preferDefaultProvider, boolean isAutoSelectAllowed);
+ method public byte[]? getClientDataHash();
+ method public String getRequestJson();
+ property public final byte[]? clientDataHash;
+ property public final String requestJson;
+ }
+
+ public final class CreatePublicKeyCredentialResponse extends androidx.credentials.CreateCredentialResponse {
+ ctor public CreatePublicKeyCredentialResponse(String registrationResponseJson);
+ method public String getRegistrationResponseJson();
+ property public final String registrationResponseJson;
+ }
+
+ public abstract class Credential {
+ method public final android.os.Bundle getData();
+ method public final String getType();
+ property public final android.os.Bundle data;
+ property public final String type;
+ }
+
+ @RequiresApi(16) public interface CredentialManager {
+ method public default suspend Object? clearCredentialState(androidx.credentials.ClearCredentialStateRequest request, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method public void clearCredentialStateAsync(androidx.credentials.ClearCredentialStateRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<java.lang.Void,androidx.credentials.exceptions.ClearCredentialException> callback);
+ method public static androidx.credentials.CredentialManager create(android.content.Context context);
+ method public default suspend Object? createCredential(android.content.Context context, androidx.credentials.CreateCredentialRequest request, kotlin.coroutines.Continuation<? super androidx.credentials.CreateCredentialResponse>);
+ method public void createCredentialAsync(android.content.Context context, androidx.credentials.CreateCredentialRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.CreateCredentialResponse,androidx.credentials.exceptions.CreateCredentialException> callback);
+ method @RequiresApi(34) public android.app.PendingIntent createSettingsPendingIntent();
+ method public default suspend Object? getCredential(android.content.Context context, androidx.credentials.GetCredentialRequest request, kotlin.coroutines.Continuation<? super androidx.credentials.GetCredentialResponse>);
+ method @RequiresApi(34) public default suspend Object? getCredential(android.content.Context context, androidx.credentials.PrepareGetCredentialResponse.PendingGetCredentialHandle pendingGetCredentialHandle, kotlin.coroutines.Continuation<? super androidx.credentials.GetCredentialResponse>);
+ method public void getCredentialAsync(android.content.Context context, androidx.credentials.GetCredentialRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.GetCredentialResponse,androidx.credentials.exceptions.GetCredentialException> callback);
+ method @RequiresApi(34) public void getCredentialAsync(android.content.Context context, androidx.credentials.PrepareGetCredentialResponse.PendingGetCredentialHandle pendingGetCredentialHandle, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.GetCredentialResponse,androidx.credentials.exceptions.GetCredentialException> callback);
+ method @RequiresApi(34) public default suspend Object? prepareGetCredential(androidx.credentials.GetCredentialRequest request, kotlin.coroutines.Continuation<? super androidx.credentials.PrepareGetCredentialResponse>);
+ method @RequiresApi(34) public void prepareGetCredentialAsync(androidx.credentials.GetCredentialRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.PrepareGetCredentialResponse,androidx.credentials.exceptions.GetCredentialException> callback);
+ field public static final androidx.credentials.CredentialManager.Companion Companion;
+ }
+
+ public static final class CredentialManager.Companion {
+ method public androidx.credentials.CredentialManager create(android.content.Context context);
+ }
+
+ public interface CredentialManagerCallback<R, E> {
+ method public void onError(E e);
+ method public void onResult(R result);
+ }
+
+ public abstract class CredentialOption {
+ method public final java.util.Set<android.content.ComponentName> getAllowedProviders();
+ method public final android.os.Bundle getCandidateQueryData();
+ method public final android.os.Bundle getRequestData();
+ method public final String getType();
+ method public final boolean isAutoSelectAllowed();
+ method public final boolean isSystemProviderRequired();
+ property public final java.util.Set<android.content.ComponentName> allowedProviders;
+ property public final android.os.Bundle candidateQueryData;
+ property public final boolean isAutoSelectAllowed;
+ property public final boolean isSystemProviderRequired;
+ property public final android.os.Bundle requestData;
+ property public final String type;
+ }
+
+ public interface CredentialProvider {
+ method public boolean isAvailableOnDevice();
+ method public void onClearCredential(androidx.credentials.ClearCredentialStateRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<java.lang.Void,androidx.credentials.exceptions.ClearCredentialException> callback);
+ method public void onCreateCredential(android.content.Context context, androidx.credentials.CreateCredentialRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.CreateCredentialResponse,androidx.credentials.exceptions.CreateCredentialException> callback);
+ method public void onGetCredential(android.content.Context context, androidx.credentials.GetCredentialRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.GetCredentialResponse,androidx.credentials.exceptions.GetCredentialException> callback);
+ method @RequiresApi(34) public default void onGetCredential(android.content.Context context, androidx.credentials.PrepareGetCredentialResponse.PendingGetCredentialHandle pendingGetCredentialHandle, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.GetCredentialResponse,androidx.credentials.exceptions.GetCredentialException> callback);
+ method @RequiresApi(34) public default void onPrepareCredential(androidx.credentials.GetCredentialRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.PrepareGetCredentialResponse,androidx.credentials.exceptions.GetCredentialException> callback);
+ }
+
+ public class CustomCredential extends androidx.credentials.Credential {
+ ctor public CustomCredential(String type, android.os.Bundle data);
+ }
+
+ public final class GetCredentialRequest {
+ ctor public GetCredentialRequest(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions);
+ ctor public GetCredentialRequest(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions, optional String? origin);
+ ctor public GetCredentialRequest(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions, optional String? origin, optional boolean preferIdentityDocUi);
+ ctor public GetCredentialRequest(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions, optional String? origin, optional boolean preferIdentityDocUi, optional android.content.ComponentName? preferUiBrandingComponentName);
+ ctor public GetCredentialRequest(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions, optional String? origin, optional boolean preferIdentityDocUi, optional android.content.ComponentName? preferUiBrandingComponentName, optional boolean preferImmediatelyAvailableCredentials);
+ method public java.util.List<androidx.credentials.CredentialOption> getCredentialOptions();
+ method public String? getOrigin();
+ method public boolean getPreferIdentityDocUi();
+ method public boolean getPreferImmediatelyAvailableCredentials();
+ method public android.content.ComponentName? getPreferUiBrandingComponentName();
+ property public final java.util.List<androidx.credentials.CredentialOption> credentialOptions;
+ property public final String? origin;
+ property public final boolean preferIdentityDocUi;
+ property public final boolean preferImmediatelyAvailableCredentials;
+ property public final android.content.ComponentName? preferUiBrandingComponentName;
+ }
+
+ public static final class GetCredentialRequest.Builder {
+ ctor public GetCredentialRequest.Builder();
+ method public androidx.credentials.GetCredentialRequest.Builder addCredentialOption(androidx.credentials.CredentialOption credentialOption);
+ method public androidx.credentials.GetCredentialRequest build();
+ method public androidx.credentials.GetCredentialRequest.Builder setCredentialOptions(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions);
+ method public androidx.credentials.GetCredentialRequest.Builder setOrigin(String origin);
+ method public androidx.credentials.GetCredentialRequest.Builder setPreferIdentityDocUi(boolean preferIdentityDocUi);
+ method public androidx.credentials.GetCredentialRequest.Builder setPreferImmediatelyAvailableCredentials(boolean preferImmediatelyAvailableCredentials);
+ method public androidx.credentials.GetCredentialRequest.Builder setPreferUiBrandingComponentName(android.content.ComponentName? component);
+ }
+
+ public final class GetCredentialResponse {
+ ctor public GetCredentialResponse(androidx.credentials.Credential credential);
+ method public androidx.credentials.Credential getCredential();
+ property public final androidx.credentials.Credential credential;
+ }
+
+ public class GetCustomCredentialOption extends androidx.credentials.CredentialOption {
+ ctor public GetCustomCredentialOption(String type, android.os.Bundle requestData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired);
+ ctor public GetCustomCredentialOption(String type, android.os.Bundle requestData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired, optional boolean isAutoSelectAllowed);
+ ctor public GetCustomCredentialOption(String type, android.os.Bundle requestData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired, optional boolean isAutoSelectAllowed, optional java.util.Set<android.content.ComponentName> allowedProviders);
+ }
+
+ public final class GetPasswordOption extends androidx.credentials.CredentialOption {
+ ctor public GetPasswordOption();
+ ctor public GetPasswordOption(optional java.util.Set<java.lang.String> allowedUserIds);
+ ctor public GetPasswordOption(optional java.util.Set<java.lang.String> allowedUserIds, optional boolean isAutoSelectAllowed);
+ ctor public GetPasswordOption(optional java.util.Set<java.lang.String> allowedUserIds, optional boolean isAutoSelectAllowed, optional java.util.Set<android.content.ComponentName> allowedProviders);
+ method public java.util.Set<java.lang.String> getAllowedUserIds();
+ property public final java.util.Set<java.lang.String> allowedUserIds;
+ }
+
+ public final class GetPublicKeyCredentialOption extends androidx.credentials.CredentialOption {
+ ctor public GetPublicKeyCredentialOption(String requestJson);
+ ctor public GetPublicKeyCredentialOption(String requestJson, optional byte[]? clientDataHash);
+ ctor public GetPublicKeyCredentialOption(String requestJson, optional byte[]? clientDataHash, optional java.util.Set<android.content.ComponentName> allowedProviders);
+ method public byte[]? getClientDataHash();
+ method public String getRequestJson();
+ property public final byte[]? clientDataHash;
+ property public final String requestJson;
+ }
+
+ public final class PasswordCredential extends androidx.credentials.Credential {
+ ctor public PasswordCredential(String id, String password);
+ method public String getId();
+ method public String getPassword();
+ property public final String id;
+ property public final String password;
+ field public static final androidx.credentials.PasswordCredential.Companion Companion;
+ field public static final String TYPE_PASSWORD_CREDENTIAL = "android.credentials.TYPE_PASSWORD_CREDENTIAL";
+ }
+
+ public static final class PasswordCredential.Companion {
+ }
+
+ @RequiresApi(34) public final class PrepareGetCredentialResponse {
+ method public kotlin.jvm.functions.Function1<java.lang.String,java.lang.Boolean>? getCredentialTypeDelegate();
+ method public kotlin.jvm.functions.Function0<java.lang.Boolean>? getHasAuthResultsDelegate();
+ method public kotlin.jvm.functions.Function0<java.lang.Boolean>? getHasRemoteResultsDelegate();
+ method public androidx.credentials.PrepareGetCredentialResponse.PendingGetCredentialHandle? getPendingGetCredentialHandle();
+ method @RequiresPermission(android.Manifest.permission.CREDENTIAL_MANAGER_QUERY_CANDIDATE_CREDENTIALS) public boolean hasAuthenticationResults();
+ method @RequiresPermission(android.Manifest.permission.CREDENTIAL_MANAGER_QUERY_CANDIDATE_CREDENTIALS) public boolean hasCredentialResults(String credentialType);
+ method @RequiresPermission(android.Manifest.permission.CREDENTIAL_MANAGER_QUERY_CANDIDATE_CREDENTIALS) public boolean hasRemoteResults();
+ method public boolean isNullHandlesForTest();
+ property public final kotlin.jvm.functions.Function1<java.lang.String,java.lang.Boolean>? credentialTypeDelegate;
+ property public final kotlin.jvm.functions.Function0<java.lang.Boolean>? hasAuthResultsDelegate;
+ property public final kotlin.jvm.functions.Function0<java.lang.Boolean>? hasRemoteResultsDelegate;
+ property public final boolean isNullHandlesForTest;
+ property public final androidx.credentials.PrepareGetCredentialResponse.PendingGetCredentialHandle? pendingGetCredentialHandle;
+ }
+
+ @RequiresApi(34) public static final class PrepareGetCredentialResponse.PendingGetCredentialHandle {
+ ctor public PrepareGetCredentialResponse.PendingGetCredentialHandle(android.credentials.PrepareGetCredentialResponse.PendingGetCredentialHandle? frameworkHandle);
+ }
+
+ @VisibleForTesting public static final class PrepareGetCredentialResponse.TestBuilder {
+ ctor public PrepareGetCredentialResponse.TestBuilder();
+ method public androidx.credentials.PrepareGetCredentialResponse build();
+ method @VisibleForTesting public androidx.credentials.PrepareGetCredentialResponse.TestBuilder setCredentialTypeDelegate(kotlin.jvm.functions.Function1<? super java.lang.String,java.lang.Boolean> handler);
+ method @VisibleForTesting public androidx.credentials.PrepareGetCredentialResponse.TestBuilder setHasAuthResultsDelegate(kotlin.jvm.functions.Function0<java.lang.Boolean> handler);
+ method @VisibleForTesting public androidx.credentials.PrepareGetCredentialResponse.TestBuilder setHasRemoteResultsDelegate(kotlin.jvm.functions.Function0<java.lang.Boolean> handler);
+ }
+
+ public final class PublicKeyCredential extends androidx.credentials.Credential {
+ ctor public PublicKeyCredential(String authenticationResponseJson);
+ method public String getAuthenticationResponseJson();
+ property public final String authenticationResponseJson;
+ field public static final androidx.credentials.PublicKeyCredential.Companion Companion;
+ field public static final String TYPE_PUBLIC_KEY_CREDENTIAL = "androidx.credentials.TYPE_PUBLIC_KEY_CREDENTIAL";
+ }
+
+ public static final class PublicKeyCredential.Companion {
+ }
+
+}
+
+package androidx.credentials.exceptions {
+
+ public final class ClearCredentialCustomException extends androidx.credentials.exceptions.ClearCredentialException {
+ ctor public ClearCredentialCustomException(String type);
+ ctor public ClearCredentialCustomException(String type, optional CharSequence? errorMessage);
+ method public String getType();
+ property public String type;
+ }
+
+ public abstract class ClearCredentialException extends java.lang.Exception {
+ }
+
+ public final class ClearCredentialInterruptedException extends androidx.credentials.exceptions.ClearCredentialException {
+ ctor public ClearCredentialInterruptedException();
+ ctor public ClearCredentialInterruptedException(optional CharSequence? errorMessage);
+ }
+
+ public final class ClearCredentialProviderConfigurationException extends androidx.credentials.exceptions.ClearCredentialException {
+ ctor public ClearCredentialProviderConfigurationException();
+ ctor public ClearCredentialProviderConfigurationException(optional CharSequence? errorMessage);
+ }
+
+ public final class ClearCredentialUnknownException extends androidx.credentials.exceptions.ClearCredentialException {
+ ctor public ClearCredentialUnknownException();
+ ctor public ClearCredentialUnknownException(optional CharSequence? errorMessage);
+ }
+
+ public final class ClearCredentialUnsupportedException extends androidx.credentials.exceptions.ClearCredentialException {
+ ctor public ClearCredentialUnsupportedException();
+ ctor public ClearCredentialUnsupportedException(optional CharSequence? errorMessage);
+ }
+
+ public final class CreateCredentialCancellationException extends androidx.credentials.exceptions.CreateCredentialException {
+ ctor public CreateCredentialCancellationException();
+ ctor public CreateCredentialCancellationException(optional CharSequence? errorMessage);
+ }
+
+ public final class CreateCredentialCustomException extends androidx.credentials.exceptions.CreateCredentialException {
+ ctor public CreateCredentialCustomException(String type);
+ ctor public CreateCredentialCustomException(String type, optional CharSequence? errorMessage);
+ method public String getType();
+ property public String type;
+ }
+
+ public abstract class CreateCredentialException extends java.lang.Exception {
+ }
+
+ public final class CreateCredentialInterruptedException extends androidx.credentials.exceptions.CreateCredentialException {
+ ctor public CreateCredentialInterruptedException();
+ ctor public CreateCredentialInterruptedException(optional CharSequence? errorMessage);
+ }
+
+ public final class CreateCredentialNoCreateOptionException extends androidx.credentials.exceptions.CreateCredentialException {
+ ctor public CreateCredentialNoCreateOptionException();
+ ctor public CreateCredentialNoCreateOptionException(optional CharSequence? errorMessage);
+ }
+
+ public final class CreateCredentialProviderConfigurationException extends androidx.credentials.exceptions.CreateCredentialException {
+ ctor public CreateCredentialProviderConfigurationException();
+ ctor public CreateCredentialProviderConfigurationException(optional CharSequence? errorMessage);
+ }
+
+ public final class CreateCredentialUnknownException extends androidx.credentials.exceptions.CreateCredentialException {
+ ctor public CreateCredentialUnknownException();
+ ctor public CreateCredentialUnknownException(optional CharSequence? errorMessage);
+ }
+
+ public final class CreateCredentialUnsupportedException extends androidx.credentials.exceptions.CreateCredentialException {
+ ctor public CreateCredentialUnsupportedException();
+ ctor public CreateCredentialUnsupportedException(optional CharSequence? errorMessage);
+ }
+
+ public final class GetCredentialCancellationException extends androidx.credentials.exceptions.GetCredentialException {
+ ctor public GetCredentialCancellationException();
+ ctor public GetCredentialCancellationException(optional CharSequence? errorMessage);
+ }
+
+ public final class GetCredentialCustomException extends androidx.credentials.exceptions.GetCredentialException {
+ ctor public GetCredentialCustomException(String type);
+ ctor public GetCredentialCustomException(String type, optional CharSequence? errorMessage);
+ method public String getType();
+ property public String type;
+ }
+
+ public abstract class GetCredentialException extends java.lang.Exception {
+ }
+
+ public final class GetCredentialInterruptedException extends androidx.credentials.exceptions.GetCredentialException {
+ ctor public GetCredentialInterruptedException();
+ ctor public GetCredentialInterruptedException(optional CharSequence? errorMessage);
+ }
+
+ public final class GetCredentialProviderConfigurationException extends androidx.credentials.exceptions.GetCredentialException {
+ ctor public GetCredentialProviderConfigurationException();
+ ctor public GetCredentialProviderConfigurationException(optional CharSequence? errorMessage);
+ }
+
+ public final class GetCredentialUnknownException extends androidx.credentials.exceptions.GetCredentialException {
+ ctor public GetCredentialUnknownException();
+ ctor public GetCredentialUnknownException(optional CharSequence? errorMessage);
+ }
+
+ public final class GetCredentialUnsupportedException extends androidx.credentials.exceptions.GetCredentialException {
+ ctor public GetCredentialUnsupportedException();
+ ctor public GetCredentialUnsupportedException(optional CharSequence? errorMessage);
+ }
+
+ public final class NoCredentialException extends androidx.credentials.exceptions.GetCredentialException {
+ ctor public NoCredentialException();
+ ctor public NoCredentialException(optional CharSequence? errorMessage);
+ }
+
+}
+
+package androidx.credentials.exceptions.domerrors {
+
+ public final class AbortError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public AbortError();
+ }
+
+ public final class ConstraintError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public ConstraintError();
+ }
+
+ public final class DataCloneError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public DataCloneError();
+ }
+
+ public final class DataError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public DataError();
+ }
+
+ public abstract class DomError {
+ ctor public DomError(String type);
+ }
+
+ public final class EncodingError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public EncodingError();
+ }
+
+ public final class HierarchyRequestError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public HierarchyRequestError();
+ }
+
+ public final class InUseAttributeError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public InUseAttributeError();
+ }
+
+ public final class InvalidCharacterError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public InvalidCharacterError();
+ }
+
+ public final class InvalidModificationError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public InvalidModificationError();
+ }
+
+ public final class InvalidNodeTypeError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public InvalidNodeTypeError();
+ }
+
+ public final class InvalidStateError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public InvalidStateError();
+ }
+
+ public final class NamespaceError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public NamespaceError();
+ }
+
+ public final class NetworkError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public NetworkError();
+ }
+
+ public final class NoModificationAllowedError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public NoModificationAllowedError();
+ }
+
+ public final class NotAllowedError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public NotAllowedError();
+ }
+
+ public final class NotFoundError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public NotFoundError();
+ }
+
+ public final class NotReadableError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public NotReadableError();
+ }
+
+ public final class NotSupportedError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public NotSupportedError();
+ }
+
+ public final class OperationError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public OperationError();
+ }
+
+ public final class OptOutError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public OptOutError();
+ }
+
+ public final class QuotaExceededError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public QuotaExceededError();
+ }
+
+ public final class ReadOnlyError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public ReadOnlyError();
+ }
+
+ public final class SecurityError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public SecurityError();
+ }
+
+ public final class SyntaxError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public SyntaxError();
+ }
+
+ public final class TimeoutError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public TimeoutError();
+ }
+
+ public final class TransactionInactiveError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public TransactionInactiveError();
+ }
+
+ public final class UnknownError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public UnknownError();
+ }
+
+ public final class VersionError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public VersionError();
+ }
+
+ public final class WrongDocumentError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public WrongDocumentError();
+ }
+
+}
+
+package androidx.credentials.exceptions.publickeycredential {
+
+ public final class CreatePublicKeyCredentialDomException extends androidx.credentials.exceptions.publickeycredential.CreatePublicKeyCredentialException {
+ ctor public CreatePublicKeyCredentialDomException(androidx.credentials.exceptions.domerrors.DomError domError);
+ ctor public CreatePublicKeyCredentialDomException(androidx.credentials.exceptions.domerrors.DomError domError, optional CharSequence? errorMessage);
+ method public androidx.credentials.exceptions.domerrors.DomError getDomError();
+ property public final androidx.credentials.exceptions.domerrors.DomError domError;
+ }
+
+ public class CreatePublicKeyCredentialException extends androidx.credentials.exceptions.CreateCredentialException {
+ }
+
+ public final class GetPublicKeyCredentialDomException extends androidx.credentials.exceptions.publickeycredential.GetPublicKeyCredentialException {
+ ctor public GetPublicKeyCredentialDomException(androidx.credentials.exceptions.domerrors.DomError domError);
+ ctor public GetPublicKeyCredentialDomException(androidx.credentials.exceptions.domerrors.DomError domError, optional CharSequence? errorMessage);
+ method public androidx.credentials.exceptions.domerrors.DomError getDomError();
+ property public final androidx.credentials.exceptions.domerrors.DomError domError;
+ }
+
+ public class GetPublicKeyCredentialException extends androidx.credentials.exceptions.GetCredentialException {
+ }
+
+}
+
+package androidx.credentials.provider {
+
+ public final class Action {
+ ctor public Action(CharSequence title, android.app.PendingIntent pendingIntent, optional CharSequence? subtitle);
+ method public android.app.PendingIntent getPendingIntent();
+ method public CharSequence? getSubtitle();
+ method public CharSequence getTitle();
+ property public final android.app.PendingIntent pendingIntent;
+ property public final CharSequence? subtitle;
+ property public final CharSequence title;
+ }
+
+ public static final class Action.Builder {
+ ctor public Action.Builder(CharSequence title, android.app.PendingIntent pendingIntent);
+ method public androidx.credentials.provider.Action build();
+ method public androidx.credentials.provider.Action.Builder setSubtitle(CharSequence? subtitle);
+ }
+
+ public final class AuthenticationAction {
+ ctor public AuthenticationAction(CharSequence title, android.app.PendingIntent pendingIntent);
+ method public android.app.PendingIntent getPendingIntent();
+ method public CharSequence getTitle();
+ property public final android.app.PendingIntent pendingIntent;
+ property public final CharSequence title;
+ }
+
+ public static final class AuthenticationAction.Builder {
+ ctor public AuthenticationAction.Builder(CharSequence title, android.app.PendingIntent pendingIntent);
+ method public androidx.credentials.provider.AuthenticationAction build();
+ }
+
+ public abstract class BeginCreateCredentialRequest {
+ ctor public BeginCreateCredentialRequest(String type, android.os.Bundle candidateQueryData, androidx.credentials.provider.CallingAppInfo? callingAppInfo);
+ method public static final android.os.Bundle asBundle(androidx.credentials.provider.BeginCreateCredentialRequest request);
+ method public static final androidx.credentials.provider.BeginCreateCredentialRequest? fromBundle(android.os.Bundle bundle);
+ method public final androidx.credentials.provider.CallingAppInfo? getCallingAppInfo();
+ method public final android.os.Bundle getCandidateQueryData();
+ method public final String getType();
+ property public final androidx.credentials.provider.CallingAppInfo? callingAppInfo;
+ property public final android.os.Bundle candidateQueryData;
+ property public final String type;
+ field public static final androidx.credentials.provider.BeginCreateCredentialRequest.Companion Companion;
+ }
+
+ public static final class BeginCreateCredentialRequest.Companion {
+ method public android.os.Bundle asBundle(androidx.credentials.provider.BeginCreateCredentialRequest request);
+ method public androidx.credentials.provider.BeginCreateCredentialRequest? fromBundle(android.os.Bundle bundle);
+ }
+
+ public final class BeginCreateCredentialResponse {
+ ctor public BeginCreateCredentialResponse(optional java.util.List<androidx.credentials.provider.CreateEntry> createEntries, optional androidx.credentials.provider.RemoteEntry? remoteEntry);
+ method public static android.os.Bundle asBundle(androidx.credentials.provider.BeginCreateCredentialResponse response);
+ method public static androidx.credentials.provider.BeginCreateCredentialResponse? fromBundle(android.os.Bundle bundle);
+ method public java.util.List<androidx.credentials.provider.CreateEntry> getCreateEntries();
+ method public androidx.credentials.provider.RemoteEntry? getRemoteEntry();
+ property public final java.util.List<androidx.credentials.provider.CreateEntry> createEntries;
+ property public final androidx.credentials.provider.RemoteEntry? remoteEntry;
+ field public static final androidx.credentials.provider.BeginCreateCredentialResponse.Companion Companion;
+ }
+
+ public static final class BeginCreateCredentialResponse.Builder {
+ ctor public BeginCreateCredentialResponse.Builder();
+ method public androidx.credentials.provider.BeginCreateCredentialResponse.Builder addCreateEntry(androidx.credentials.provider.CreateEntry createEntry);
+ method public androidx.credentials.provider.BeginCreateCredentialResponse build();
+ method public androidx.credentials.provider.BeginCreateCredentialResponse.Builder setCreateEntries(java.util.List<androidx.credentials.provider.CreateEntry> createEntries);
+ method public androidx.credentials.provider.BeginCreateCredentialResponse.Builder setRemoteEntry(androidx.credentials.provider.RemoteEntry? remoteEntry);
+ }
+
+ public static final class BeginCreateCredentialResponse.Companion {
+ method public android.os.Bundle asBundle(androidx.credentials.provider.BeginCreateCredentialResponse response);
+ method public androidx.credentials.provider.BeginCreateCredentialResponse? fromBundle(android.os.Bundle bundle);
+ }
+
+ public class BeginCreateCustomCredentialRequest extends androidx.credentials.provider.BeginCreateCredentialRequest {
+ ctor public BeginCreateCustomCredentialRequest(String type, android.os.Bundle candidateQueryData, androidx.credentials.provider.CallingAppInfo? callingAppInfo);
+ }
+
+ public final class BeginCreatePasswordCredentialRequest extends androidx.credentials.provider.BeginCreateCredentialRequest {
+ ctor public BeginCreatePasswordCredentialRequest(androidx.credentials.provider.CallingAppInfo? callingAppInfo, android.os.Bundle candidateQueryData);
+ }
+
+ public final class BeginCreatePublicKeyCredentialRequest extends androidx.credentials.provider.BeginCreateCredentialRequest {
+ ctor public BeginCreatePublicKeyCredentialRequest(String requestJson, androidx.credentials.provider.CallingAppInfo? callingAppInfo, android.os.Bundle candidateQueryData);
+ ctor public BeginCreatePublicKeyCredentialRequest(String requestJson, androidx.credentials.provider.CallingAppInfo? callingAppInfo, android.os.Bundle candidateQueryData, optional byte[]? clientDataHash);
+ method @VisibleForTesting public static androidx.credentials.provider.BeginCreatePublicKeyCredentialRequest createForTest(android.os.Bundle data, androidx.credentials.provider.CallingAppInfo? callingAppInfo);
+ method public byte[]? getClientDataHash();
+ method public String getRequestJson();
+ property public final byte[]? clientDataHash;
+ property public final String requestJson;
+ }
+
+ public abstract class BeginGetCredentialOption {
+ method public final android.os.Bundle getCandidateQueryData();
+ method public final String getId();
+ method public final String getType();
+ property public final android.os.Bundle candidateQueryData;
+ property public final String id;
+ property public final String type;
+ }
+
+ public final class BeginGetCredentialRequest {
+ ctor public BeginGetCredentialRequest(java.util.List<? extends androidx.credentials.provider.BeginGetCredentialOption> beginGetCredentialOptions);
+ ctor public BeginGetCredentialRequest(java.util.List<? extends androidx.credentials.provider.BeginGetCredentialOption> beginGetCredentialOptions, optional androidx.credentials.provider.CallingAppInfo? callingAppInfo);
+ method public static android.os.Bundle asBundle(androidx.credentials.provider.BeginGetCredentialRequest request);
+ method public static androidx.credentials.provider.BeginGetCredentialRequest? fromBundle(android.os.Bundle bundle);
+ method public java.util.List<androidx.credentials.provider.BeginGetCredentialOption> getBeginGetCredentialOptions();
+ method public androidx.credentials.provider.CallingAppInfo? getCallingAppInfo();
+ property public final java.util.List<androidx.credentials.provider.BeginGetCredentialOption> beginGetCredentialOptions;
+ property public final androidx.credentials.provider.CallingAppInfo? callingAppInfo;
+ field public static final androidx.credentials.provider.BeginGetCredentialRequest.Companion Companion;
+ }
+
+ public static final class BeginGetCredentialRequest.Companion {
+ method public android.os.Bundle asBundle(androidx.credentials.provider.BeginGetCredentialRequest request);
+ method public androidx.credentials.provider.BeginGetCredentialRequest? fromBundle(android.os.Bundle bundle);
+ }
+
+ public final class BeginGetCredentialResponse {
+ ctor public BeginGetCredentialResponse(optional java.util.List<? extends androidx.credentials.provider.CredentialEntry> credentialEntries, optional java.util.List<androidx.credentials.provider.Action> actions, optional java.util.List<androidx.credentials.provider.AuthenticationAction> authenticationActions, optional androidx.credentials.provider.RemoteEntry? remoteEntry);
+ method public static android.os.Bundle asBundle(androidx.credentials.provider.BeginGetCredentialResponse response);
+ method public static androidx.credentials.provider.BeginGetCredentialResponse? fromBundle(android.os.Bundle bundle);
+ method public java.util.List<androidx.credentials.provider.Action> getActions();
+ method public java.util.List<androidx.credentials.provider.AuthenticationAction> getAuthenticationActions();
+ method public java.util.List<androidx.credentials.provider.CredentialEntry> getCredentialEntries();
+ method public androidx.credentials.provider.RemoteEntry? getRemoteEntry();
+ property public final java.util.List<androidx.credentials.provider.Action> actions;
+ property public final java.util.List<androidx.credentials.provider.AuthenticationAction> authenticationActions;
+ property public final java.util.List<androidx.credentials.provider.CredentialEntry> credentialEntries;
+ property public final androidx.credentials.provider.RemoteEntry? remoteEntry;
+ field public static final androidx.credentials.provider.BeginGetCredentialResponse.Companion Companion;
+ }
+
+ public static final class BeginGetCredentialResponse.Builder {
+ ctor public BeginGetCredentialResponse.Builder();
+ method public androidx.credentials.provider.BeginGetCredentialResponse.Builder addAction(androidx.credentials.provider.Action action);
+ method public androidx.credentials.provider.BeginGetCredentialResponse.Builder addAuthenticationAction(androidx.credentials.provider.AuthenticationAction authenticationAction);
+ method public androidx.credentials.provider.BeginGetCredentialResponse.Builder addCredentialEntry(androidx.credentials.provider.CredentialEntry entry);
+ method public androidx.credentials.provider.BeginGetCredentialResponse build();
+ method public androidx.credentials.provider.BeginGetCredentialResponse.Builder setActions(java.util.List<androidx.credentials.provider.Action> actions);
+ method public androidx.credentials.provider.BeginGetCredentialResponse.Builder setAuthenticationActions(java.util.List<androidx.credentials.provider.AuthenticationAction> authenticationEntries);
+ method public androidx.credentials.provider.BeginGetCredentialResponse.Builder setCredentialEntries(java.util.List<? extends androidx.credentials.provider.CredentialEntry> entries);
+ method public androidx.credentials.provider.BeginGetCredentialResponse.Builder setRemoteEntry(androidx.credentials.provider.RemoteEntry? remoteEntry);
+ }
+
+ public static final class BeginGetCredentialResponse.Companion {
+ method public android.os.Bundle asBundle(androidx.credentials.provider.BeginGetCredentialResponse response);
+ method public androidx.credentials.provider.BeginGetCredentialResponse? fromBundle(android.os.Bundle bundle);
+ }
+
+ public class BeginGetCustomCredentialOption extends androidx.credentials.provider.BeginGetCredentialOption {
+ ctor public BeginGetCustomCredentialOption(String id, String type, android.os.Bundle candidateQueryData);
+ }
+
+ public final class BeginGetPasswordOption extends androidx.credentials.provider.BeginGetCredentialOption {
+ ctor public BeginGetPasswordOption(java.util.Set<java.lang.String> allowedUserIds, android.os.Bundle candidateQueryData, String id);
+ method @VisibleForTesting public static androidx.credentials.provider.BeginGetPasswordOption createForTest(android.os.Bundle data, String id);
+ method public java.util.Set<java.lang.String> getAllowedUserIds();
+ property public final java.util.Set<java.lang.String> allowedUserIds;
+ }
+
+ public final class BeginGetPublicKeyCredentialOption extends androidx.credentials.provider.BeginGetCredentialOption {
+ ctor public BeginGetPublicKeyCredentialOption(android.os.Bundle candidateQueryData, String id, String requestJson);
+ ctor public BeginGetPublicKeyCredentialOption(android.os.Bundle candidateQueryData, String id, String requestJson, optional byte[]? clientDataHash);
+ method public byte[]? getClientDataHash();
+ method public String getRequestJson();
+ property public final byte[]? clientDataHash;
+ property public final String requestJson;
+ }
+
+ public final class CallingAppInfo {
+ ctor public CallingAppInfo(String packageName, android.content.pm.SigningInfo signingInfo);
+ ctor public CallingAppInfo(String packageName, android.content.pm.SigningInfo signingInfo, optional String? origin);
+ method public String? getOrigin(String privilegedAllowlist);
+ method public String getPackageName();
+ method public android.content.pm.SigningInfo getSigningInfo();
+ method public boolean isOriginPopulated();
+ property public final String packageName;
+ property public final android.content.pm.SigningInfo signingInfo;
+ }
+
+ @RequiresApi(26) public final class CreateEntry {
+ ctor public CreateEntry(CharSequence accountName, android.app.PendingIntent pendingIntent, optional CharSequence? description, optional java.time.Instant? lastUsedTime, optional android.graphics.drawable.Icon? icon, optional Integer? passwordCredentialCount, optional Integer? publicKeyCredentialCount, optional Integer? totalCredentialCount, optional boolean isAutoSelectAllowed);
+ method public CharSequence getAccountName();
+ method public CharSequence? getDescription();
+ method public android.graphics.drawable.Icon? getIcon();
+ method public java.time.Instant? getLastUsedTime();
+ method public Integer? getPasswordCredentialCount();
+ method public android.app.PendingIntent getPendingIntent();
+ method public Integer? getPublicKeyCredentialCount();
+ method public Integer? getTotalCredentialCount();
+ method public boolean isAutoSelectAllowed();
+ property public final CharSequence accountName;
+ property public final CharSequence? description;
+ property public final android.graphics.drawable.Icon? icon;
+ property public final boolean isAutoSelectAllowed;
+ property public final java.time.Instant? lastUsedTime;
+ property public final android.app.PendingIntent pendingIntent;
+ }
+
+ public static final class CreateEntry.Builder {
+ ctor public CreateEntry.Builder(CharSequence accountName, android.app.PendingIntent pendingIntent);
+ method public androidx.credentials.provider.CreateEntry build();
+ method public androidx.credentials.provider.CreateEntry.Builder setAutoSelectAllowed(boolean autoSelectAllowed);
+ method public androidx.credentials.provider.CreateEntry.Builder setDescription(CharSequence? description);
+ method public androidx.credentials.provider.CreateEntry.Builder setIcon(android.graphics.drawable.Icon? icon);
+ method public androidx.credentials.provider.CreateEntry.Builder setLastUsedTime(java.time.Instant? lastUsedTime);
+ method public androidx.credentials.provider.CreateEntry.Builder setPasswordCredentialCount(int count);
+ method public androidx.credentials.provider.CreateEntry.Builder setPublicKeyCredentialCount(int count);
+ method public androidx.credentials.provider.CreateEntry.Builder setTotalCredentialCount(int count);
+ }
+
+ public abstract class CredentialEntry {
+ method public final androidx.credentials.provider.BeginGetCredentialOption getBeginGetCredentialOption();
+ property public final androidx.credentials.provider.BeginGetCredentialOption beginGetCredentialOption;
+ }
+
+ @RequiresApi(34) public abstract class CredentialProviderService extends android.service.credentials.CredentialProviderService {
+ ctor public CredentialProviderService();
+ method public final void onBeginCreateCredential(android.service.credentials.BeginCreateCredentialRequest request, android.os.CancellationSignal cancellationSignal, android.os.OutcomeReceiver<android.service.credentials.BeginCreateCredentialResponse,android.credentials.CreateCredentialException> callback);
+ method public abstract void onBeginCreateCredentialRequest(androidx.credentials.provider.BeginCreateCredentialRequest request, android.os.CancellationSignal cancellationSignal, android.os.OutcomeReceiver<androidx.credentials.provider.BeginCreateCredentialResponse,androidx.credentials.exceptions.CreateCredentialException> callback);
+ method public final void onBeginGetCredential(android.service.credentials.BeginGetCredentialRequest request, android.os.CancellationSignal cancellationSignal, android.os.OutcomeReceiver<android.service.credentials.BeginGetCredentialResponse,android.credentials.GetCredentialException> callback);
+ method public abstract void onBeginGetCredentialRequest(androidx.credentials.provider.BeginGetCredentialRequest request, android.os.CancellationSignal cancellationSignal, android.os.OutcomeReceiver<androidx.credentials.provider.BeginGetCredentialResponse,androidx.credentials.exceptions.GetCredentialException> callback);
+ method public final void onClearCredentialState(android.service.credentials.ClearCredentialStateRequest request, android.os.CancellationSignal cancellationSignal, android.os.OutcomeReceiver<java.lang.Void,android.credentials.ClearCredentialStateException> callback);
+ method public abstract void onClearCredentialStateRequest(androidx.credentials.provider.ProviderClearCredentialStateRequest request, android.os.CancellationSignal cancellationSignal, android.os.OutcomeReceiver<java.lang.Void,androidx.credentials.exceptions.ClearCredentialException> callback);
+ }
+
+ @RequiresApi(26) public final class CustomCredentialEntry extends androidx.credentials.provider.CredentialEntry {
+ ctor public CustomCredentialEntry(android.content.Context context, CharSequence title, android.app.PendingIntent pendingIntent, androidx.credentials.provider.BeginGetCredentialOption beginGetCredentialOption, optional CharSequence? subtitle, optional CharSequence? typeDisplayName, optional java.time.Instant? lastUsedTime, optional android.graphics.drawable.Icon icon, optional boolean isAutoSelectAllowed);
+ method public android.graphics.drawable.Icon getIcon();
+ method public java.time.Instant? getLastUsedTime();
+ method public android.app.PendingIntent getPendingIntent();
+ method public CharSequence? getSubtitle();
+ method public CharSequence getTitle();
+ method public String getType();
+ method public CharSequence? getTypeDisplayName();
+ method public boolean isAutoSelectAllowed();
+ property public final android.graphics.drawable.Icon icon;
+ property public final boolean isAutoSelectAllowed;
+ property public final java.time.Instant? lastUsedTime;
+ property public final android.app.PendingIntent pendingIntent;
+ property public final CharSequence? subtitle;
+ property public final CharSequence title;
+ property public String type;
+ property public final CharSequence? typeDisplayName;
+ }
+
+ public static final class CustomCredentialEntry.Builder {
+ ctor public CustomCredentialEntry.Builder(android.content.Context context, String type, CharSequence title, android.app.PendingIntent pendingIntent, androidx.credentials.provider.BeginGetCredentialOption beginGetCredentialOption);
+ method public androidx.credentials.provider.CustomCredentialEntry build();
+ method public androidx.credentials.provider.CustomCredentialEntry.Builder setAutoSelectAllowed(boolean autoSelectAllowed);
+ method public androidx.credentials.provider.CustomCredentialEntry.Builder setIcon(android.graphics.drawable.Icon icon);
+ method public androidx.credentials.provider.CustomCredentialEntry.Builder setLastUsedTime(java.time.Instant? lastUsedTime);
+ method public androidx.credentials.provider.CustomCredentialEntry.Builder setSubtitle(CharSequence? subtitle);
+ method public androidx.credentials.provider.CustomCredentialEntry.Builder setTypeDisplayName(CharSequence? typeDisplayName);
+ }
+
+ public final class IntentHandlerConverters {
+ method @RequiresApi(34) public static androidx.credentials.provider.BeginGetCredentialResponse? getBeginGetResponse(android.content.Intent);
+ method @RequiresApi(34) public static android.credentials.CreateCredentialResponse? getCreateCredentialCredentialResponse(android.content.Intent);
+ method @RequiresApi(34) public static android.credentials.CreateCredentialException? getCreateCredentialException(android.content.Intent);
+ method @RequiresApi(34) public static android.credentials.GetCredentialException? getGetCredentialException(android.content.Intent);
+ method @RequiresApi(34) public static android.credentials.GetCredentialResponse? getGetCredentialResponse(android.content.Intent);
+ }
+
+ @RequiresApi(26) public final class PasswordCredentialEntry extends androidx.credentials.provider.CredentialEntry {
+ ctor public PasswordCredentialEntry(android.content.Context context, CharSequence username, android.app.PendingIntent pendingIntent, androidx.credentials.provider.BeginGetPasswordOption beginGetPasswordOption, optional CharSequence? displayName, optional java.time.Instant? lastUsedTime, optional android.graphics.drawable.Icon icon, optional boolean isAutoSelectAllowed);
+ method public CharSequence? getDisplayName();
+ method public android.graphics.drawable.Icon getIcon();
+ method public java.time.Instant? getLastUsedTime();
+ method public android.app.PendingIntent getPendingIntent();
+ method public CharSequence getTypeDisplayName();
+ method public CharSequence getUsername();
+ method public boolean isAutoSelectAllowed();
+ property public final CharSequence? displayName;
+ property public final android.graphics.drawable.Icon icon;
+ property public final boolean isAutoSelectAllowed;
+ property public final java.time.Instant? lastUsedTime;
+ property public final android.app.PendingIntent pendingIntent;
+ property public final CharSequence typeDisplayName;
+ property public final CharSequence username;
+ }
+
+ public static final class PasswordCredentialEntry.Builder {
+ ctor public PasswordCredentialEntry.Builder(android.content.Context context, CharSequence username, android.app.PendingIntent pendingIntent, androidx.credentials.provider.BeginGetPasswordOption beginGetPasswordOption);
+ method public androidx.credentials.provider.PasswordCredentialEntry build();
+ method public androidx.credentials.provider.PasswordCredentialEntry.Builder setAutoSelectAllowed(boolean autoSelectAllowed);
+ method public androidx.credentials.provider.PasswordCredentialEntry.Builder setDisplayName(CharSequence? displayName);
+ method public androidx.credentials.provider.PasswordCredentialEntry.Builder setIcon(android.graphics.drawable.Icon icon);
+ method public androidx.credentials.provider.PasswordCredentialEntry.Builder setLastUsedTime(java.time.Instant? lastUsedTime);
+ }
+
+ @RequiresApi(34) public final class PendingIntentHandler {
+ ctor public PendingIntentHandler();
+ method public static androidx.credentials.provider.BeginGetCredentialRequest? retrieveBeginGetCredentialRequest(android.content.Intent intent);
+ method public static androidx.credentials.provider.ProviderCreateCredentialRequest? retrieveProviderCreateCredentialRequest(android.content.Intent intent);
+ method public static androidx.credentials.provider.ProviderGetCredentialRequest? retrieveProviderGetCredentialRequest(android.content.Intent intent);
+ method public static void setBeginGetCredentialResponse(android.content.Intent intent, androidx.credentials.provider.BeginGetCredentialResponse response);
+ method public static void setCreateCredentialException(android.content.Intent intent, androidx.credentials.exceptions.CreateCredentialException exception);
+ method public static void setCreateCredentialResponse(android.content.Intent intent, androidx.credentials.CreateCredentialResponse response);
+ method public static void setGetCredentialException(android.content.Intent intent, androidx.credentials.exceptions.GetCredentialException exception);
+ method public static void setGetCredentialResponse(android.content.Intent intent, androidx.credentials.GetCredentialResponse response);
+ field public static final androidx.credentials.provider.PendingIntentHandler.Companion Companion;
+ }
+
+ public static final class PendingIntentHandler.Companion {
+ method public androidx.credentials.provider.BeginGetCredentialRequest? retrieveBeginGetCredentialRequest(android.content.Intent intent);
+ method public androidx.credentials.provider.ProviderCreateCredentialRequest? retrieveProviderCreateCredentialRequest(android.content.Intent intent);
+ method public androidx.credentials.provider.ProviderGetCredentialRequest? retrieveProviderGetCredentialRequest(android.content.Intent intent);
+ method public void setBeginGetCredentialResponse(android.content.Intent intent, androidx.credentials.provider.BeginGetCredentialResponse response);
+ method public void setCreateCredentialException(android.content.Intent intent, androidx.credentials.exceptions.CreateCredentialException exception);
+ method public void setCreateCredentialResponse(android.content.Intent intent, androidx.credentials.CreateCredentialResponse response);
+ method public void setGetCredentialException(android.content.Intent intent, androidx.credentials.exceptions.GetCredentialException exception);
+ method public void setGetCredentialResponse(android.content.Intent intent, androidx.credentials.GetCredentialResponse response);
+ }
+
+ public final class ProviderClearCredentialStateRequest {
+ ctor public ProviderClearCredentialStateRequest(androidx.credentials.provider.CallingAppInfo callingAppInfo);
+ method public androidx.credentials.provider.CallingAppInfo getCallingAppInfo();
+ property public final androidx.credentials.provider.CallingAppInfo callingAppInfo;
+ }
+
+ public final class ProviderCreateCredentialRequest {
+ ctor public ProviderCreateCredentialRequest(androidx.credentials.CreateCredentialRequest callingRequest, androidx.credentials.provider.CallingAppInfo callingAppInfo);
+ method public androidx.credentials.provider.CallingAppInfo getCallingAppInfo();
+ method public androidx.credentials.CreateCredentialRequest getCallingRequest();
+ property public final androidx.credentials.provider.CallingAppInfo callingAppInfo;
+ property public final androidx.credentials.CreateCredentialRequest callingRequest;
+ }
+
+ public final class ProviderGetCredentialRequest {
+ ctor public ProviderGetCredentialRequest(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions, androidx.credentials.provider.CallingAppInfo callingAppInfo);
+ method public androidx.credentials.provider.CallingAppInfo getCallingAppInfo();
+ method public java.util.List<androidx.credentials.CredentialOption> getCredentialOptions();
+ property public final androidx.credentials.provider.CallingAppInfo callingAppInfo;
+ property public final java.util.List<androidx.credentials.CredentialOption> credentialOptions;
+ }
+
+ @RequiresApi(26) public final class PublicKeyCredentialEntry extends androidx.credentials.provider.CredentialEntry {
+ ctor public PublicKeyCredentialEntry(android.content.Context context, CharSequence username, android.app.PendingIntent pendingIntent, androidx.credentials.provider.BeginGetPublicKeyCredentialOption beginGetPublicKeyCredentialOption, optional CharSequence? displayName, optional java.time.Instant? lastUsedTime, optional android.graphics.drawable.Icon icon, optional boolean isAutoSelectAllowed);
+ method public CharSequence? getDisplayName();
+ method public android.graphics.drawable.Icon getIcon();
+ method public java.time.Instant? getLastUsedTime();
+ method public android.app.PendingIntent getPendingIntent();
+ method public CharSequence getTypeDisplayName();
+ method public CharSequence getUsername();
+ method public boolean isAutoSelectAllowed();
+ property public final CharSequence? displayName;
+ property public final android.graphics.drawable.Icon icon;
+ property public final boolean isAutoSelectAllowed;
+ property public final java.time.Instant? lastUsedTime;
+ property public final android.app.PendingIntent pendingIntent;
+ property public final CharSequence typeDisplayName;
+ property public final CharSequence username;
+ }
+
+ public static final class PublicKeyCredentialEntry.Builder {
+ ctor public PublicKeyCredentialEntry.Builder(android.content.Context context, CharSequence username, android.app.PendingIntent pendingIntent, androidx.credentials.provider.BeginGetPublicKeyCredentialOption beginGetPublicKeyCredentialOption);
+ method public androidx.credentials.provider.PublicKeyCredentialEntry build();
+ method public androidx.credentials.provider.PublicKeyCredentialEntry.Builder setAutoSelectAllowed(boolean autoSelectAllowed);
+ method public androidx.credentials.provider.PublicKeyCredentialEntry.Builder setDisplayName(CharSequence? displayName);
+ method public androidx.credentials.provider.PublicKeyCredentialEntry.Builder setIcon(android.graphics.drawable.Icon icon);
+ method public androidx.credentials.provider.PublicKeyCredentialEntry.Builder setLastUsedTime(java.time.Instant? lastUsedTime);
+ }
+
+ public final class RemoteEntry {
+ ctor public RemoteEntry(android.app.PendingIntent pendingIntent);
+ method public android.app.PendingIntent getPendingIntent();
+ property public final android.app.PendingIntent pendingIntent;
+ }
+
+ public static final class RemoteEntry.Builder {
+ ctor public RemoteEntry.Builder(android.app.PendingIntent pendingIntent);
+ method public androidx.credentials.provider.RemoteEntry build();
+ }
+
+}
+
diff --git a/credentials/credentials/api/res-1.2.0-beta02.txt b/credentials/credentials/api/res-1.2.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/credentials/credentials/api/res-1.2.0-beta02.txt
diff --git a/credentials/credentials/api/restricted_1.2.0-beta02.txt b/credentials/credentials/api/restricted_1.2.0-beta02.txt
new file mode 100644
index 0000000..8c9cf86
--- /dev/null
+++ b/credentials/credentials/api/restricted_1.2.0-beta02.txt
@@ -0,0 +1,902 @@
+// Signature format: 4.0
+package androidx.credentials {
+
+ public final class ClearCredentialStateRequest {
+ ctor public ClearCredentialStateRequest();
+ }
+
+ public abstract class CreateCredentialRequest {
+ method public final android.os.Bundle getCandidateQueryData();
+ method public final android.os.Bundle getCredentialData();
+ method public final androidx.credentials.CreateCredentialRequest.DisplayInfo getDisplayInfo();
+ method public final String? getOrigin();
+ method public final boolean getPreferImmediatelyAvailableCredentials();
+ method public final String getType();
+ method public final boolean isAutoSelectAllowed();
+ method public final boolean isSystemProviderRequired();
+ property public final android.os.Bundle candidateQueryData;
+ property public final android.os.Bundle credentialData;
+ property public final androidx.credentials.CreateCredentialRequest.DisplayInfo displayInfo;
+ property public final boolean isAutoSelectAllowed;
+ property public final boolean isSystemProviderRequired;
+ property public final String? origin;
+ property public final boolean preferImmediatelyAvailableCredentials;
+ property public final String type;
+ }
+
+ public static final class CreateCredentialRequest.DisplayInfo {
+ ctor public CreateCredentialRequest.DisplayInfo(CharSequence userId);
+ ctor public CreateCredentialRequest.DisplayInfo(CharSequence userId, optional CharSequence? userDisplayName);
+ ctor public CreateCredentialRequest.DisplayInfo(CharSequence userId, CharSequence? userDisplayName, String? preferDefaultProvider);
+ method public CharSequence? getUserDisplayName();
+ method public CharSequence getUserId();
+ property public final CharSequence? userDisplayName;
+ property public final CharSequence userId;
+ }
+
+ public abstract class CreateCredentialResponse {
+ method public final android.os.Bundle getData();
+ method public final String getType();
+ property public final android.os.Bundle data;
+ property public final String type;
+ }
+
+ public class CreateCustomCredentialRequest extends androidx.credentials.CreateCredentialRequest {
+ ctor public CreateCustomCredentialRequest(String type, android.os.Bundle credentialData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired, androidx.credentials.CreateCredentialRequest.DisplayInfo displayInfo);
+ ctor public CreateCustomCredentialRequest(String type, android.os.Bundle credentialData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired, androidx.credentials.CreateCredentialRequest.DisplayInfo displayInfo, optional boolean isAutoSelectAllowed);
+ ctor public CreateCustomCredentialRequest(String type, android.os.Bundle credentialData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired, androidx.credentials.CreateCredentialRequest.DisplayInfo displayInfo, optional boolean isAutoSelectAllowed, optional String? origin);
+ ctor public CreateCustomCredentialRequest(String type, android.os.Bundle credentialData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired, androidx.credentials.CreateCredentialRequest.DisplayInfo displayInfo, optional boolean isAutoSelectAllowed, optional String? origin, optional boolean preferImmediatelyAvailableCredentials);
+ }
+
+ public class CreateCustomCredentialResponse extends androidx.credentials.CreateCredentialResponse {
+ ctor public CreateCustomCredentialResponse(String type, android.os.Bundle data);
+ }
+
+ public final class CreatePasswordRequest extends androidx.credentials.CreateCredentialRequest {
+ ctor public CreatePasswordRequest(String id, String password);
+ ctor public CreatePasswordRequest(String id, String password, optional String? origin);
+ ctor public CreatePasswordRequest(String id, String password, optional String? origin, optional boolean preferImmediatelyAvailableCredentials);
+ ctor public CreatePasswordRequest(String id, String password, optional String? origin, optional boolean preferImmediatelyAvailableCredentials, optional boolean isAutoSelectAllowed);
+ ctor public CreatePasswordRequest(String id, String password, String? origin, String? preferDefaultProvider, boolean preferImmediatelyAvailableCredentials, boolean isAutoSelectAllowed);
+ method public String getId();
+ method public String getPassword();
+ property public final String id;
+ property public final String password;
+ }
+
+ public final class CreatePasswordResponse extends androidx.credentials.CreateCredentialResponse {
+ ctor public CreatePasswordResponse();
+ }
+
+ public final class CreatePublicKeyCredentialRequest extends androidx.credentials.CreateCredentialRequest {
+ ctor public CreatePublicKeyCredentialRequest(String requestJson);
+ ctor public CreatePublicKeyCredentialRequest(String requestJson, optional byte[]? clientDataHash);
+ ctor public CreatePublicKeyCredentialRequest(String requestJson, optional byte[]? clientDataHash, optional boolean preferImmediatelyAvailableCredentials);
+ ctor public CreatePublicKeyCredentialRequest(String requestJson, optional byte[]? clientDataHash, optional boolean preferImmediatelyAvailableCredentials, optional String? origin);
+ ctor public CreatePublicKeyCredentialRequest(String requestJson, optional byte[]? clientDataHash, optional boolean preferImmediatelyAvailableCredentials, optional String? origin, optional boolean isAutoSelectAllowed);
+ ctor public CreatePublicKeyCredentialRequest(String requestJson, byte[]? clientDataHash, boolean preferImmediatelyAvailableCredentials, String? origin, String? preferDefaultProvider, boolean isAutoSelectAllowed);
+ method public byte[]? getClientDataHash();
+ method public String getRequestJson();
+ property public final byte[]? clientDataHash;
+ property public final String requestJson;
+ }
+
+ public final class CreatePublicKeyCredentialResponse extends androidx.credentials.CreateCredentialResponse {
+ ctor public CreatePublicKeyCredentialResponse(String registrationResponseJson);
+ method public String getRegistrationResponseJson();
+ property public final String registrationResponseJson;
+ }
+
+ public abstract class Credential {
+ method public final android.os.Bundle getData();
+ method public final String getType();
+ property public final android.os.Bundle data;
+ property public final String type;
+ }
+
+ @RequiresApi(16) public interface CredentialManager {
+ method public default suspend Object? clearCredentialState(androidx.credentials.ClearCredentialStateRequest request, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method public void clearCredentialStateAsync(androidx.credentials.ClearCredentialStateRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<java.lang.Void,androidx.credentials.exceptions.ClearCredentialException> callback);
+ method public static androidx.credentials.CredentialManager create(android.content.Context context);
+ method public default suspend Object? createCredential(android.content.Context context, androidx.credentials.CreateCredentialRequest request, kotlin.coroutines.Continuation<? super androidx.credentials.CreateCredentialResponse>);
+ method public void createCredentialAsync(android.content.Context context, androidx.credentials.CreateCredentialRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.CreateCredentialResponse,androidx.credentials.exceptions.CreateCredentialException> callback);
+ method @RequiresApi(34) public android.app.PendingIntent createSettingsPendingIntent();
+ method public default suspend Object? getCredential(android.content.Context context, androidx.credentials.GetCredentialRequest request, kotlin.coroutines.Continuation<? super androidx.credentials.GetCredentialResponse>);
+ method @RequiresApi(34) public default suspend Object? getCredential(android.content.Context context, androidx.credentials.PrepareGetCredentialResponse.PendingGetCredentialHandle pendingGetCredentialHandle, kotlin.coroutines.Continuation<? super androidx.credentials.GetCredentialResponse>);
+ method public void getCredentialAsync(android.content.Context context, androidx.credentials.GetCredentialRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.GetCredentialResponse,androidx.credentials.exceptions.GetCredentialException> callback);
+ method @RequiresApi(34) public void getCredentialAsync(android.content.Context context, androidx.credentials.PrepareGetCredentialResponse.PendingGetCredentialHandle pendingGetCredentialHandle, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.GetCredentialResponse,androidx.credentials.exceptions.GetCredentialException> callback);
+ method @RequiresApi(34) public default suspend Object? prepareGetCredential(androidx.credentials.GetCredentialRequest request, kotlin.coroutines.Continuation<? super androidx.credentials.PrepareGetCredentialResponse>);
+ method @RequiresApi(34) public void prepareGetCredentialAsync(androidx.credentials.GetCredentialRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.PrepareGetCredentialResponse,androidx.credentials.exceptions.GetCredentialException> callback);
+ field public static final androidx.credentials.CredentialManager.Companion Companion;
+ }
+
+ public static final class CredentialManager.Companion {
+ method public androidx.credentials.CredentialManager create(android.content.Context context);
+ }
+
+ public interface CredentialManagerCallback<R, E> {
+ method public void onError(E e);
+ method public void onResult(R result);
+ }
+
+ public abstract class CredentialOption {
+ method public final java.util.Set<android.content.ComponentName> getAllowedProviders();
+ method public final android.os.Bundle getCandidateQueryData();
+ method public final android.os.Bundle getRequestData();
+ method public final String getType();
+ method public final boolean isAutoSelectAllowed();
+ method public final boolean isSystemProviderRequired();
+ property public final java.util.Set<android.content.ComponentName> allowedProviders;
+ property public final android.os.Bundle candidateQueryData;
+ property public final boolean isAutoSelectAllowed;
+ property public final boolean isSystemProviderRequired;
+ property public final android.os.Bundle requestData;
+ property public final String type;
+ }
+
+ public interface CredentialProvider {
+ method public boolean isAvailableOnDevice();
+ method public void onClearCredential(androidx.credentials.ClearCredentialStateRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<java.lang.Void,androidx.credentials.exceptions.ClearCredentialException> callback);
+ method public void onCreateCredential(android.content.Context context, androidx.credentials.CreateCredentialRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.CreateCredentialResponse,androidx.credentials.exceptions.CreateCredentialException> callback);
+ method public void onGetCredential(android.content.Context context, androidx.credentials.GetCredentialRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.GetCredentialResponse,androidx.credentials.exceptions.GetCredentialException> callback);
+ method @RequiresApi(34) public default void onGetCredential(android.content.Context context, androidx.credentials.PrepareGetCredentialResponse.PendingGetCredentialHandle pendingGetCredentialHandle, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.GetCredentialResponse,androidx.credentials.exceptions.GetCredentialException> callback);
+ method @RequiresApi(34) public default void onPrepareCredential(androidx.credentials.GetCredentialRequest request, android.os.CancellationSignal? cancellationSignal, java.util.concurrent.Executor executor, androidx.credentials.CredentialManagerCallback<androidx.credentials.PrepareGetCredentialResponse,androidx.credentials.exceptions.GetCredentialException> callback);
+ }
+
+ public class CustomCredential extends androidx.credentials.Credential {
+ ctor public CustomCredential(String type, android.os.Bundle data);
+ }
+
+ public final class GetCredentialRequest {
+ ctor public GetCredentialRequest(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions);
+ ctor public GetCredentialRequest(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions, optional String? origin);
+ ctor public GetCredentialRequest(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions, optional String? origin, optional boolean preferIdentityDocUi);
+ ctor public GetCredentialRequest(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions, optional String? origin, optional boolean preferIdentityDocUi, optional android.content.ComponentName? preferUiBrandingComponentName);
+ ctor public GetCredentialRequest(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions, optional String? origin, optional boolean preferIdentityDocUi, optional android.content.ComponentName? preferUiBrandingComponentName, optional boolean preferImmediatelyAvailableCredentials);
+ method public java.util.List<androidx.credentials.CredentialOption> getCredentialOptions();
+ method public String? getOrigin();
+ method public boolean getPreferIdentityDocUi();
+ method public boolean getPreferImmediatelyAvailableCredentials();
+ method public android.content.ComponentName? getPreferUiBrandingComponentName();
+ property public final java.util.List<androidx.credentials.CredentialOption> credentialOptions;
+ property public final String? origin;
+ property public final boolean preferIdentityDocUi;
+ property public final boolean preferImmediatelyAvailableCredentials;
+ property public final android.content.ComponentName? preferUiBrandingComponentName;
+ }
+
+ public static final class GetCredentialRequest.Builder {
+ ctor public GetCredentialRequest.Builder();
+ method public androidx.credentials.GetCredentialRequest.Builder addCredentialOption(androidx.credentials.CredentialOption credentialOption);
+ method public androidx.credentials.GetCredentialRequest build();
+ method public androidx.credentials.GetCredentialRequest.Builder setCredentialOptions(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions);
+ method public androidx.credentials.GetCredentialRequest.Builder setOrigin(String origin);
+ method public androidx.credentials.GetCredentialRequest.Builder setPreferIdentityDocUi(boolean preferIdentityDocUi);
+ method public androidx.credentials.GetCredentialRequest.Builder setPreferImmediatelyAvailableCredentials(boolean preferImmediatelyAvailableCredentials);
+ method public androidx.credentials.GetCredentialRequest.Builder setPreferUiBrandingComponentName(android.content.ComponentName? component);
+ }
+
+ public final class GetCredentialResponse {
+ ctor public GetCredentialResponse(androidx.credentials.Credential credential);
+ method public androidx.credentials.Credential getCredential();
+ property public final androidx.credentials.Credential credential;
+ }
+
+ public class GetCustomCredentialOption extends androidx.credentials.CredentialOption {
+ ctor public GetCustomCredentialOption(String type, android.os.Bundle requestData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired);
+ ctor public GetCustomCredentialOption(String type, android.os.Bundle requestData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired, optional boolean isAutoSelectAllowed);
+ ctor public GetCustomCredentialOption(String type, android.os.Bundle requestData, android.os.Bundle candidateQueryData, boolean isSystemProviderRequired, optional boolean isAutoSelectAllowed, optional java.util.Set<android.content.ComponentName> allowedProviders);
+ }
+
+ public final class GetPasswordOption extends androidx.credentials.CredentialOption {
+ ctor public GetPasswordOption();
+ ctor public GetPasswordOption(optional java.util.Set<java.lang.String> allowedUserIds);
+ ctor public GetPasswordOption(optional java.util.Set<java.lang.String> allowedUserIds, optional boolean isAutoSelectAllowed);
+ ctor public GetPasswordOption(optional java.util.Set<java.lang.String> allowedUserIds, optional boolean isAutoSelectAllowed, optional java.util.Set<android.content.ComponentName> allowedProviders);
+ method public java.util.Set<java.lang.String> getAllowedUserIds();
+ property public final java.util.Set<java.lang.String> allowedUserIds;
+ }
+
+ public final class GetPublicKeyCredentialOption extends androidx.credentials.CredentialOption {
+ ctor public GetPublicKeyCredentialOption(String requestJson);
+ ctor public GetPublicKeyCredentialOption(String requestJson, optional byte[]? clientDataHash);
+ ctor public GetPublicKeyCredentialOption(String requestJson, optional byte[]? clientDataHash, optional java.util.Set<android.content.ComponentName> allowedProviders);
+ method public byte[]? getClientDataHash();
+ method public String getRequestJson();
+ property public final byte[]? clientDataHash;
+ property public final String requestJson;
+ }
+
+ public final class PasswordCredential extends androidx.credentials.Credential {
+ ctor public PasswordCredential(String id, String password);
+ method public String getId();
+ method public String getPassword();
+ property public final String id;
+ property public final String password;
+ field public static final androidx.credentials.PasswordCredential.Companion Companion;
+ field public static final String TYPE_PASSWORD_CREDENTIAL = "android.credentials.TYPE_PASSWORD_CREDENTIAL";
+ }
+
+ public static final class PasswordCredential.Companion {
+ }
+
+ @RequiresApi(34) public final class PrepareGetCredentialResponse {
+ method public kotlin.jvm.functions.Function1<java.lang.String,java.lang.Boolean>? getCredentialTypeDelegate();
+ method public kotlin.jvm.functions.Function0<java.lang.Boolean>? getHasAuthResultsDelegate();
+ method public kotlin.jvm.functions.Function0<java.lang.Boolean>? getHasRemoteResultsDelegate();
+ method public androidx.credentials.PrepareGetCredentialResponse.PendingGetCredentialHandle? getPendingGetCredentialHandle();
+ method @RequiresPermission(android.Manifest.permission.CREDENTIAL_MANAGER_QUERY_CANDIDATE_CREDENTIALS) public boolean hasAuthenticationResults();
+ method @RequiresPermission(android.Manifest.permission.CREDENTIAL_MANAGER_QUERY_CANDIDATE_CREDENTIALS) public boolean hasCredentialResults(String credentialType);
+ method @RequiresPermission(android.Manifest.permission.CREDENTIAL_MANAGER_QUERY_CANDIDATE_CREDENTIALS) public boolean hasRemoteResults();
+ method public boolean isNullHandlesForTest();
+ property public final kotlin.jvm.functions.Function1<java.lang.String,java.lang.Boolean>? credentialTypeDelegate;
+ property public final kotlin.jvm.functions.Function0<java.lang.Boolean>? hasAuthResultsDelegate;
+ property public final kotlin.jvm.functions.Function0<java.lang.Boolean>? hasRemoteResultsDelegate;
+ property public final boolean isNullHandlesForTest;
+ property public final androidx.credentials.PrepareGetCredentialResponse.PendingGetCredentialHandle? pendingGetCredentialHandle;
+ }
+
+ @RequiresApi(34) public static final class PrepareGetCredentialResponse.PendingGetCredentialHandle {
+ ctor public PrepareGetCredentialResponse.PendingGetCredentialHandle(android.credentials.PrepareGetCredentialResponse.PendingGetCredentialHandle? frameworkHandle);
+ }
+
+ @VisibleForTesting public static final class PrepareGetCredentialResponse.TestBuilder {
+ ctor public PrepareGetCredentialResponse.TestBuilder();
+ method public androidx.credentials.PrepareGetCredentialResponse build();
+ method @VisibleForTesting public androidx.credentials.PrepareGetCredentialResponse.TestBuilder setCredentialTypeDelegate(kotlin.jvm.functions.Function1<? super java.lang.String,java.lang.Boolean> handler);
+ method @VisibleForTesting public androidx.credentials.PrepareGetCredentialResponse.TestBuilder setHasAuthResultsDelegate(kotlin.jvm.functions.Function0<java.lang.Boolean> handler);
+ method @VisibleForTesting public androidx.credentials.PrepareGetCredentialResponse.TestBuilder setHasRemoteResultsDelegate(kotlin.jvm.functions.Function0<java.lang.Boolean> handler);
+ }
+
+ public final class PublicKeyCredential extends androidx.credentials.Credential {
+ ctor public PublicKeyCredential(String authenticationResponseJson);
+ method public String getAuthenticationResponseJson();
+ property public final String authenticationResponseJson;
+ field public static final androidx.credentials.PublicKeyCredential.Companion Companion;
+ field public static final String TYPE_PUBLIC_KEY_CREDENTIAL = "androidx.credentials.TYPE_PUBLIC_KEY_CREDENTIAL";
+ }
+
+ public static final class PublicKeyCredential.Companion {
+ }
+
+}
+
+package androidx.credentials.exceptions {
+
+ public final class ClearCredentialCustomException extends androidx.credentials.exceptions.ClearCredentialException {
+ ctor public ClearCredentialCustomException(String type);
+ ctor public ClearCredentialCustomException(String type, optional CharSequence? errorMessage);
+ method public String getType();
+ property public String type;
+ }
+
+ public abstract class ClearCredentialException extends java.lang.Exception {
+ }
+
+ public final class ClearCredentialInterruptedException extends androidx.credentials.exceptions.ClearCredentialException {
+ ctor public ClearCredentialInterruptedException();
+ ctor public ClearCredentialInterruptedException(optional CharSequence? errorMessage);
+ }
+
+ public final class ClearCredentialProviderConfigurationException extends androidx.credentials.exceptions.ClearCredentialException {
+ ctor public ClearCredentialProviderConfigurationException();
+ ctor public ClearCredentialProviderConfigurationException(optional CharSequence? errorMessage);
+ }
+
+ public final class ClearCredentialUnknownException extends androidx.credentials.exceptions.ClearCredentialException {
+ ctor public ClearCredentialUnknownException();
+ ctor public ClearCredentialUnknownException(optional CharSequence? errorMessage);
+ }
+
+ public final class ClearCredentialUnsupportedException extends androidx.credentials.exceptions.ClearCredentialException {
+ ctor public ClearCredentialUnsupportedException();
+ ctor public ClearCredentialUnsupportedException(optional CharSequence? errorMessage);
+ }
+
+ public final class CreateCredentialCancellationException extends androidx.credentials.exceptions.CreateCredentialException {
+ ctor public CreateCredentialCancellationException();
+ ctor public CreateCredentialCancellationException(optional CharSequence? errorMessage);
+ }
+
+ public final class CreateCredentialCustomException extends androidx.credentials.exceptions.CreateCredentialException {
+ ctor public CreateCredentialCustomException(String type);
+ ctor public CreateCredentialCustomException(String type, optional CharSequence? errorMessage);
+ method public String getType();
+ property public String type;
+ }
+
+ public abstract class CreateCredentialException extends java.lang.Exception {
+ }
+
+ public final class CreateCredentialInterruptedException extends androidx.credentials.exceptions.CreateCredentialException {
+ ctor public CreateCredentialInterruptedException();
+ ctor public CreateCredentialInterruptedException(optional CharSequence? errorMessage);
+ }
+
+ public final class CreateCredentialNoCreateOptionException extends androidx.credentials.exceptions.CreateCredentialException {
+ ctor public CreateCredentialNoCreateOptionException();
+ ctor public CreateCredentialNoCreateOptionException(optional CharSequence? errorMessage);
+ }
+
+ public final class CreateCredentialProviderConfigurationException extends androidx.credentials.exceptions.CreateCredentialException {
+ ctor public CreateCredentialProviderConfigurationException();
+ ctor public CreateCredentialProviderConfigurationException(optional CharSequence? errorMessage);
+ }
+
+ public final class CreateCredentialUnknownException extends androidx.credentials.exceptions.CreateCredentialException {
+ ctor public CreateCredentialUnknownException();
+ ctor public CreateCredentialUnknownException(optional CharSequence? errorMessage);
+ }
+
+ public final class CreateCredentialUnsupportedException extends androidx.credentials.exceptions.CreateCredentialException {
+ ctor public CreateCredentialUnsupportedException();
+ ctor public CreateCredentialUnsupportedException(optional CharSequence? errorMessage);
+ }
+
+ public final class GetCredentialCancellationException extends androidx.credentials.exceptions.GetCredentialException {
+ ctor public GetCredentialCancellationException();
+ ctor public GetCredentialCancellationException(optional CharSequence? errorMessage);
+ }
+
+ public final class GetCredentialCustomException extends androidx.credentials.exceptions.GetCredentialException {
+ ctor public GetCredentialCustomException(String type);
+ ctor public GetCredentialCustomException(String type, optional CharSequence? errorMessage);
+ method public String getType();
+ property public String type;
+ }
+
+ public abstract class GetCredentialException extends java.lang.Exception {
+ }
+
+ public final class GetCredentialInterruptedException extends androidx.credentials.exceptions.GetCredentialException {
+ ctor public GetCredentialInterruptedException();
+ ctor public GetCredentialInterruptedException(optional CharSequence? errorMessage);
+ }
+
+ public final class GetCredentialProviderConfigurationException extends androidx.credentials.exceptions.GetCredentialException {
+ ctor public GetCredentialProviderConfigurationException();
+ ctor public GetCredentialProviderConfigurationException(optional CharSequence? errorMessage);
+ }
+
+ public final class GetCredentialUnknownException extends androidx.credentials.exceptions.GetCredentialException {
+ ctor public GetCredentialUnknownException();
+ ctor public GetCredentialUnknownException(optional CharSequence? errorMessage);
+ }
+
+ public final class GetCredentialUnsupportedException extends androidx.credentials.exceptions.GetCredentialException {
+ ctor public GetCredentialUnsupportedException();
+ ctor public GetCredentialUnsupportedException(optional CharSequence? errorMessage);
+ }
+
+ public final class NoCredentialException extends androidx.credentials.exceptions.GetCredentialException {
+ ctor public NoCredentialException();
+ ctor public NoCredentialException(optional CharSequence? errorMessage);
+ }
+
+}
+
+package androidx.credentials.exceptions.domerrors {
+
+ public final class AbortError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public AbortError();
+ }
+
+ public final class ConstraintError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public ConstraintError();
+ }
+
+ public final class DataCloneError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public DataCloneError();
+ }
+
+ public final class DataError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public DataError();
+ }
+
+ public abstract class DomError {
+ ctor public DomError(String type);
+ }
+
+ public final class EncodingError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public EncodingError();
+ }
+
+ public final class HierarchyRequestError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public HierarchyRequestError();
+ }
+
+ public final class InUseAttributeError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public InUseAttributeError();
+ }
+
+ public final class InvalidCharacterError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public InvalidCharacterError();
+ }
+
+ public final class InvalidModificationError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public InvalidModificationError();
+ }
+
+ public final class InvalidNodeTypeError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public InvalidNodeTypeError();
+ }
+
+ public final class InvalidStateError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public InvalidStateError();
+ }
+
+ public final class NamespaceError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public NamespaceError();
+ }
+
+ public final class NetworkError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public NetworkError();
+ }
+
+ public final class NoModificationAllowedError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public NoModificationAllowedError();
+ }
+
+ public final class NotAllowedError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public NotAllowedError();
+ }
+
+ public final class NotFoundError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public NotFoundError();
+ }
+
+ public final class NotReadableError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public NotReadableError();
+ }
+
+ public final class NotSupportedError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public NotSupportedError();
+ }
+
+ public final class OperationError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public OperationError();
+ }
+
+ public final class OptOutError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public OptOutError();
+ }
+
+ public final class QuotaExceededError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public QuotaExceededError();
+ }
+
+ public final class ReadOnlyError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public ReadOnlyError();
+ }
+
+ public final class SecurityError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public SecurityError();
+ }
+
+ public final class SyntaxError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public SyntaxError();
+ }
+
+ public final class TimeoutError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public TimeoutError();
+ }
+
+ public final class TransactionInactiveError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public TransactionInactiveError();
+ }
+
+ public final class UnknownError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public UnknownError();
+ }
+
+ public final class VersionError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public VersionError();
+ }
+
+ public final class WrongDocumentError extends androidx.credentials.exceptions.domerrors.DomError {
+ ctor public WrongDocumentError();
+ }
+
+}
+
+package androidx.credentials.exceptions.publickeycredential {
+
+ public final class CreatePublicKeyCredentialDomException extends androidx.credentials.exceptions.publickeycredential.CreatePublicKeyCredentialException {
+ ctor public CreatePublicKeyCredentialDomException(androidx.credentials.exceptions.domerrors.DomError domError);
+ ctor public CreatePublicKeyCredentialDomException(androidx.credentials.exceptions.domerrors.DomError domError, optional CharSequence? errorMessage);
+ method public androidx.credentials.exceptions.domerrors.DomError getDomError();
+ property public final androidx.credentials.exceptions.domerrors.DomError domError;
+ }
+
+ public class CreatePublicKeyCredentialException extends androidx.credentials.exceptions.CreateCredentialException {
+ }
+
+ public final class GetPublicKeyCredentialDomException extends androidx.credentials.exceptions.publickeycredential.GetPublicKeyCredentialException {
+ ctor public GetPublicKeyCredentialDomException(androidx.credentials.exceptions.domerrors.DomError domError);
+ ctor public GetPublicKeyCredentialDomException(androidx.credentials.exceptions.domerrors.DomError domError, optional CharSequence? errorMessage);
+ method public androidx.credentials.exceptions.domerrors.DomError getDomError();
+ property public final androidx.credentials.exceptions.domerrors.DomError domError;
+ }
+
+ public class GetPublicKeyCredentialException extends androidx.credentials.exceptions.GetCredentialException {
+ }
+
+}
+
+package androidx.credentials.provider {
+
+ public final class Action {
+ ctor public Action(CharSequence title, android.app.PendingIntent pendingIntent, optional CharSequence? subtitle);
+ method public android.app.PendingIntent getPendingIntent();
+ method public CharSequence? getSubtitle();
+ method public CharSequence getTitle();
+ property public final android.app.PendingIntent pendingIntent;
+ property public final CharSequence? subtitle;
+ property public final CharSequence title;
+ }
+
+ public static final class Action.Builder {
+ ctor public Action.Builder(CharSequence title, android.app.PendingIntent pendingIntent);
+ method public androidx.credentials.provider.Action build();
+ method public androidx.credentials.provider.Action.Builder setSubtitle(CharSequence? subtitle);
+ }
+
+ public final class AuthenticationAction {
+ ctor public AuthenticationAction(CharSequence title, android.app.PendingIntent pendingIntent);
+ method public android.app.PendingIntent getPendingIntent();
+ method public CharSequence getTitle();
+ property public final android.app.PendingIntent pendingIntent;
+ property public final CharSequence title;
+ }
+
+ public static final class AuthenticationAction.Builder {
+ ctor public AuthenticationAction.Builder(CharSequence title, android.app.PendingIntent pendingIntent);
+ method public androidx.credentials.provider.AuthenticationAction build();
+ }
+
+ public abstract class BeginCreateCredentialRequest {
+ ctor public BeginCreateCredentialRequest(String type, android.os.Bundle candidateQueryData, androidx.credentials.provider.CallingAppInfo? callingAppInfo);
+ method public static final android.os.Bundle asBundle(androidx.credentials.provider.BeginCreateCredentialRequest request);
+ method public static final androidx.credentials.provider.BeginCreateCredentialRequest? fromBundle(android.os.Bundle bundle);
+ method public final androidx.credentials.provider.CallingAppInfo? getCallingAppInfo();
+ method public final android.os.Bundle getCandidateQueryData();
+ method public final String getType();
+ property public final androidx.credentials.provider.CallingAppInfo? callingAppInfo;
+ property public final android.os.Bundle candidateQueryData;
+ property public final String type;
+ field public static final androidx.credentials.provider.BeginCreateCredentialRequest.Companion Companion;
+ }
+
+ public static final class BeginCreateCredentialRequest.Companion {
+ method public android.os.Bundle asBundle(androidx.credentials.provider.BeginCreateCredentialRequest request);
+ method public androidx.credentials.provider.BeginCreateCredentialRequest? fromBundle(android.os.Bundle bundle);
+ }
+
+ public final class BeginCreateCredentialResponse {
+ ctor public BeginCreateCredentialResponse(optional java.util.List<androidx.credentials.provider.CreateEntry> createEntries, optional androidx.credentials.provider.RemoteEntry? remoteEntry);
+ method public static android.os.Bundle asBundle(androidx.credentials.provider.BeginCreateCredentialResponse response);
+ method public static androidx.credentials.provider.BeginCreateCredentialResponse? fromBundle(android.os.Bundle bundle);
+ method public java.util.List<androidx.credentials.provider.CreateEntry> getCreateEntries();
+ method public androidx.credentials.provider.RemoteEntry? getRemoteEntry();
+ property public final java.util.List<androidx.credentials.provider.CreateEntry> createEntries;
+ property public final androidx.credentials.provider.RemoteEntry? remoteEntry;
+ field public static final androidx.credentials.provider.BeginCreateCredentialResponse.Companion Companion;
+ }
+
+ public static final class BeginCreateCredentialResponse.Builder {
+ ctor public BeginCreateCredentialResponse.Builder();
+ method public androidx.credentials.provider.BeginCreateCredentialResponse.Builder addCreateEntry(androidx.credentials.provider.CreateEntry createEntry);
+ method public androidx.credentials.provider.BeginCreateCredentialResponse build();
+ method public androidx.credentials.provider.BeginCreateCredentialResponse.Builder setCreateEntries(java.util.List<androidx.credentials.provider.CreateEntry> createEntries);
+ method public androidx.credentials.provider.BeginCreateCredentialResponse.Builder setRemoteEntry(androidx.credentials.provider.RemoteEntry? remoteEntry);
+ }
+
+ public static final class BeginCreateCredentialResponse.Companion {
+ method public android.os.Bundle asBundle(androidx.credentials.provider.BeginCreateCredentialResponse response);
+ method public androidx.credentials.provider.BeginCreateCredentialResponse? fromBundle(android.os.Bundle bundle);
+ }
+
+ public class BeginCreateCustomCredentialRequest extends androidx.credentials.provider.BeginCreateCredentialRequest {
+ ctor public BeginCreateCustomCredentialRequest(String type, android.os.Bundle candidateQueryData, androidx.credentials.provider.CallingAppInfo? callingAppInfo);
+ }
+
+ public final class BeginCreatePasswordCredentialRequest extends androidx.credentials.provider.BeginCreateCredentialRequest {
+ ctor public BeginCreatePasswordCredentialRequest(androidx.credentials.provider.CallingAppInfo? callingAppInfo, android.os.Bundle candidateQueryData);
+ }
+
+ public final class BeginCreatePublicKeyCredentialRequest extends androidx.credentials.provider.BeginCreateCredentialRequest {
+ ctor public BeginCreatePublicKeyCredentialRequest(String requestJson, androidx.credentials.provider.CallingAppInfo? callingAppInfo, android.os.Bundle candidateQueryData);
+ ctor public BeginCreatePublicKeyCredentialRequest(String requestJson, androidx.credentials.provider.CallingAppInfo? callingAppInfo, android.os.Bundle candidateQueryData, optional byte[]? clientDataHash);
+ method @VisibleForTesting public static androidx.credentials.provider.BeginCreatePublicKeyCredentialRequest createForTest(android.os.Bundle data, androidx.credentials.provider.CallingAppInfo? callingAppInfo);
+ method public byte[]? getClientDataHash();
+ method public String getRequestJson();
+ property public final byte[]? clientDataHash;
+ property public final String requestJson;
+ }
+
+ public abstract class BeginGetCredentialOption {
+ method public final android.os.Bundle getCandidateQueryData();
+ method public final String getId();
+ method public final String getType();
+ property public final android.os.Bundle candidateQueryData;
+ property public final String id;
+ property public final String type;
+ }
+
+ public final class BeginGetCredentialRequest {
+ ctor public BeginGetCredentialRequest(java.util.List<? extends androidx.credentials.provider.BeginGetCredentialOption> beginGetCredentialOptions);
+ ctor public BeginGetCredentialRequest(java.util.List<? extends androidx.credentials.provider.BeginGetCredentialOption> beginGetCredentialOptions, optional androidx.credentials.provider.CallingAppInfo? callingAppInfo);
+ method public static android.os.Bundle asBundle(androidx.credentials.provider.BeginGetCredentialRequest request);
+ method public static androidx.credentials.provider.BeginGetCredentialRequest? fromBundle(android.os.Bundle bundle);
+ method public java.util.List<androidx.credentials.provider.BeginGetCredentialOption> getBeginGetCredentialOptions();
+ method public androidx.credentials.provider.CallingAppInfo? getCallingAppInfo();
+ property public final java.util.List<androidx.credentials.provider.BeginGetCredentialOption> beginGetCredentialOptions;
+ property public final androidx.credentials.provider.CallingAppInfo? callingAppInfo;
+ field public static final androidx.credentials.provider.BeginGetCredentialRequest.Companion Companion;
+ }
+
+ public static final class BeginGetCredentialRequest.Companion {
+ method public android.os.Bundle asBundle(androidx.credentials.provider.BeginGetCredentialRequest request);
+ method public androidx.credentials.provider.BeginGetCredentialRequest? fromBundle(android.os.Bundle bundle);
+ }
+
+ public final class BeginGetCredentialResponse {
+ ctor public BeginGetCredentialResponse(optional java.util.List<? extends androidx.credentials.provider.CredentialEntry> credentialEntries, optional java.util.List<androidx.credentials.provider.Action> actions, optional java.util.List<androidx.credentials.provider.AuthenticationAction> authenticationActions, optional androidx.credentials.provider.RemoteEntry? remoteEntry);
+ method public static android.os.Bundle asBundle(androidx.credentials.provider.BeginGetCredentialResponse response);
+ method public static androidx.credentials.provider.BeginGetCredentialResponse? fromBundle(android.os.Bundle bundle);
+ method public java.util.List<androidx.credentials.provider.Action> getActions();
+ method public java.util.List<androidx.credentials.provider.AuthenticationAction> getAuthenticationActions();
+ method public java.util.List<androidx.credentials.provider.CredentialEntry> getCredentialEntries();
+ method public androidx.credentials.provider.RemoteEntry? getRemoteEntry();
+ property public final java.util.List<androidx.credentials.provider.Action> actions;
+ property public final java.util.List<androidx.credentials.provider.AuthenticationAction> authenticationActions;
+ property public final java.util.List<androidx.credentials.provider.CredentialEntry> credentialEntries;
+ property public final androidx.credentials.provider.RemoteEntry? remoteEntry;
+ field public static final androidx.credentials.provider.BeginGetCredentialResponse.Companion Companion;
+ }
+
+ public static final class BeginGetCredentialResponse.Builder {
+ ctor public BeginGetCredentialResponse.Builder();
+ method public androidx.credentials.provider.BeginGetCredentialResponse.Builder addAction(androidx.credentials.provider.Action action);
+ method public androidx.credentials.provider.BeginGetCredentialResponse.Builder addAuthenticationAction(androidx.credentials.provider.AuthenticationAction authenticationAction);
+ method public androidx.credentials.provider.BeginGetCredentialResponse.Builder addCredentialEntry(androidx.credentials.provider.CredentialEntry entry);
+ method public androidx.credentials.provider.BeginGetCredentialResponse build();
+ method public androidx.credentials.provider.BeginGetCredentialResponse.Builder setActions(java.util.List<androidx.credentials.provider.Action> actions);
+ method public androidx.credentials.provider.BeginGetCredentialResponse.Builder setAuthenticationActions(java.util.List<androidx.credentials.provider.AuthenticationAction> authenticationEntries);
+ method public androidx.credentials.provider.BeginGetCredentialResponse.Builder setCredentialEntries(java.util.List<? extends androidx.credentials.provider.CredentialEntry> entries);
+ method public androidx.credentials.provider.BeginGetCredentialResponse.Builder setRemoteEntry(androidx.credentials.provider.RemoteEntry? remoteEntry);
+ }
+
+ public static final class BeginGetCredentialResponse.Companion {
+ method public android.os.Bundle asBundle(androidx.credentials.provider.BeginGetCredentialResponse response);
+ method public androidx.credentials.provider.BeginGetCredentialResponse? fromBundle(android.os.Bundle bundle);
+ }
+
+ public class BeginGetCustomCredentialOption extends androidx.credentials.provider.BeginGetCredentialOption {
+ ctor public BeginGetCustomCredentialOption(String id, String type, android.os.Bundle candidateQueryData);
+ }
+
+ public final class BeginGetPasswordOption extends androidx.credentials.provider.BeginGetCredentialOption {
+ ctor public BeginGetPasswordOption(java.util.Set<java.lang.String> allowedUserIds, android.os.Bundle candidateQueryData, String id);
+ method @VisibleForTesting public static androidx.credentials.provider.BeginGetPasswordOption createForTest(android.os.Bundle data, String id);
+ method public java.util.Set<java.lang.String> getAllowedUserIds();
+ property public final java.util.Set<java.lang.String> allowedUserIds;
+ }
+
+ public final class BeginGetPublicKeyCredentialOption extends androidx.credentials.provider.BeginGetCredentialOption {
+ ctor public BeginGetPublicKeyCredentialOption(android.os.Bundle candidateQueryData, String id, String requestJson);
+ ctor public BeginGetPublicKeyCredentialOption(android.os.Bundle candidateQueryData, String id, String requestJson, optional byte[]? clientDataHash);
+ method public byte[]? getClientDataHash();
+ method public String getRequestJson();
+ property public final byte[]? clientDataHash;
+ property public final String requestJson;
+ }
+
+ public final class CallingAppInfo {
+ ctor public CallingAppInfo(String packageName, android.content.pm.SigningInfo signingInfo);
+ ctor public CallingAppInfo(String packageName, android.content.pm.SigningInfo signingInfo, optional String? origin);
+ method public String? getOrigin(String privilegedAllowlist);
+ method public String getPackageName();
+ method public android.content.pm.SigningInfo getSigningInfo();
+ method public boolean isOriginPopulated();
+ property public final String packageName;
+ property public final android.content.pm.SigningInfo signingInfo;
+ }
+
+ @RequiresApi(26) public final class CreateEntry {
+ ctor public CreateEntry(CharSequence accountName, android.app.PendingIntent pendingIntent, optional CharSequence? description, optional java.time.Instant? lastUsedTime, optional android.graphics.drawable.Icon? icon, optional Integer? passwordCredentialCount, optional Integer? publicKeyCredentialCount, optional Integer? totalCredentialCount, optional boolean isAutoSelectAllowed);
+ method public CharSequence getAccountName();
+ method public CharSequence? getDescription();
+ method public android.graphics.drawable.Icon? getIcon();
+ method public java.time.Instant? getLastUsedTime();
+ method public Integer? getPasswordCredentialCount();
+ method public android.app.PendingIntent getPendingIntent();
+ method public Integer? getPublicKeyCredentialCount();
+ method public Integer? getTotalCredentialCount();
+ method public boolean isAutoSelectAllowed();
+ property public final CharSequence accountName;
+ property public final CharSequence? description;
+ property public final android.graphics.drawable.Icon? icon;
+ property public final boolean isAutoSelectAllowed;
+ property public final java.time.Instant? lastUsedTime;
+ property public final android.app.PendingIntent pendingIntent;
+ }
+
+ public static final class CreateEntry.Builder {
+ ctor public CreateEntry.Builder(CharSequence accountName, android.app.PendingIntent pendingIntent);
+ method public androidx.credentials.provider.CreateEntry build();
+ method public androidx.credentials.provider.CreateEntry.Builder setAutoSelectAllowed(boolean autoSelectAllowed);
+ method public androidx.credentials.provider.CreateEntry.Builder setDescription(CharSequence? description);
+ method public androidx.credentials.provider.CreateEntry.Builder setIcon(android.graphics.drawable.Icon? icon);
+ method public androidx.credentials.provider.CreateEntry.Builder setLastUsedTime(java.time.Instant? lastUsedTime);
+ method public androidx.credentials.provider.CreateEntry.Builder setPasswordCredentialCount(int count);
+ method public androidx.credentials.provider.CreateEntry.Builder setPublicKeyCredentialCount(int count);
+ method public androidx.credentials.provider.CreateEntry.Builder setTotalCredentialCount(int count);
+ }
+
+ public abstract class CredentialEntry {
+ method public final androidx.credentials.provider.BeginGetCredentialOption getBeginGetCredentialOption();
+ property public final androidx.credentials.provider.BeginGetCredentialOption beginGetCredentialOption;
+ }
+
+ @RequiresApi(34) public abstract class CredentialProviderService extends android.service.credentials.CredentialProviderService {
+ ctor public CredentialProviderService();
+ method public final void onBeginCreateCredential(android.service.credentials.BeginCreateCredentialRequest request, android.os.CancellationSignal cancellationSignal, android.os.OutcomeReceiver<android.service.credentials.BeginCreateCredentialResponse,android.credentials.CreateCredentialException> callback);
+ method public abstract void onBeginCreateCredentialRequest(androidx.credentials.provider.BeginCreateCredentialRequest request, android.os.CancellationSignal cancellationSignal, android.os.OutcomeReceiver<androidx.credentials.provider.BeginCreateCredentialResponse,androidx.credentials.exceptions.CreateCredentialException> callback);
+ method public final void onBeginGetCredential(android.service.credentials.BeginGetCredentialRequest request, android.os.CancellationSignal cancellationSignal, android.os.OutcomeReceiver<android.service.credentials.BeginGetCredentialResponse,android.credentials.GetCredentialException> callback);
+ method public abstract void onBeginGetCredentialRequest(androidx.credentials.provider.BeginGetCredentialRequest request, android.os.CancellationSignal cancellationSignal, android.os.OutcomeReceiver<androidx.credentials.provider.BeginGetCredentialResponse,androidx.credentials.exceptions.GetCredentialException> callback);
+ method public final void onClearCredentialState(android.service.credentials.ClearCredentialStateRequest request, android.os.CancellationSignal cancellationSignal, android.os.OutcomeReceiver<java.lang.Void,android.credentials.ClearCredentialStateException> callback);
+ method public abstract void onClearCredentialStateRequest(androidx.credentials.provider.ProviderClearCredentialStateRequest request, android.os.CancellationSignal cancellationSignal, android.os.OutcomeReceiver<java.lang.Void,androidx.credentials.exceptions.ClearCredentialException> callback);
+ }
+
+ @RequiresApi(26) public final class CustomCredentialEntry extends androidx.credentials.provider.CredentialEntry {
+ ctor public CustomCredentialEntry(android.content.Context context, CharSequence title, android.app.PendingIntent pendingIntent, androidx.credentials.provider.BeginGetCredentialOption beginGetCredentialOption, optional CharSequence? subtitle, optional CharSequence? typeDisplayName, optional java.time.Instant? lastUsedTime, optional android.graphics.drawable.Icon icon, optional boolean isAutoSelectAllowed);
+ method public android.graphics.drawable.Icon getIcon();
+ method public java.time.Instant? getLastUsedTime();
+ method public android.app.PendingIntent getPendingIntent();
+ method public CharSequence? getSubtitle();
+ method public CharSequence getTitle();
+ method public String getType();
+ method public CharSequence? getTypeDisplayName();
+ method public boolean isAutoSelectAllowed();
+ property public final android.graphics.drawable.Icon icon;
+ property public final boolean isAutoSelectAllowed;
+ property public final java.time.Instant? lastUsedTime;
+ property public final android.app.PendingIntent pendingIntent;
+ property public final CharSequence? subtitle;
+ property public final CharSequence title;
+ property public String type;
+ property public final CharSequence? typeDisplayName;
+ }
+
+ public static final class CustomCredentialEntry.Builder {
+ ctor public CustomCredentialEntry.Builder(android.content.Context context, String type, CharSequence title, android.app.PendingIntent pendingIntent, androidx.credentials.provider.BeginGetCredentialOption beginGetCredentialOption);
+ method public androidx.credentials.provider.CustomCredentialEntry build();
+ method public androidx.credentials.provider.CustomCredentialEntry.Builder setAutoSelectAllowed(boolean autoSelectAllowed);
+ method public androidx.credentials.provider.CustomCredentialEntry.Builder setIcon(android.graphics.drawable.Icon icon);
+ method public androidx.credentials.provider.CustomCredentialEntry.Builder setLastUsedTime(java.time.Instant? lastUsedTime);
+ method public androidx.credentials.provider.CustomCredentialEntry.Builder setSubtitle(CharSequence? subtitle);
+ method public androidx.credentials.provider.CustomCredentialEntry.Builder setTypeDisplayName(CharSequence? typeDisplayName);
+ }
+
+ public final class IntentHandlerConverters {
+ method @RequiresApi(34) public static androidx.credentials.provider.BeginGetCredentialResponse? getBeginGetResponse(android.content.Intent);
+ method @RequiresApi(34) public static android.credentials.CreateCredentialResponse? getCreateCredentialCredentialResponse(android.content.Intent);
+ method @RequiresApi(34) public static android.credentials.CreateCredentialException? getCreateCredentialException(android.content.Intent);
+ method @RequiresApi(34) public static android.credentials.GetCredentialException? getGetCredentialException(android.content.Intent);
+ method @RequiresApi(34) public static android.credentials.GetCredentialResponse? getGetCredentialResponse(android.content.Intent);
+ }
+
+ @RequiresApi(26) public final class PasswordCredentialEntry extends androidx.credentials.provider.CredentialEntry {
+ ctor public PasswordCredentialEntry(android.content.Context context, CharSequence username, android.app.PendingIntent pendingIntent, androidx.credentials.provider.BeginGetPasswordOption beginGetPasswordOption, optional CharSequence? displayName, optional java.time.Instant? lastUsedTime, optional android.graphics.drawable.Icon icon, optional boolean isAutoSelectAllowed);
+ method public CharSequence? getDisplayName();
+ method public android.graphics.drawable.Icon getIcon();
+ method public java.time.Instant? getLastUsedTime();
+ method public android.app.PendingIntent getPendingIntent();
+ method public CharSequence getTypeDisplayName();
+ method public CharSequence getUsername();
+ method public boolean isAutoSelectAllowed();
+ property public final CharSequence? displayName;
+ property public final android.graphics.drawable.Icon icon;
+ property public final boolean isAutoSelectAllowed;
+ property public final java.time.Instant? lastUsedTime;
+ property public final android.app.PendingIntent pendingIntent;
+ property public final CharSequence typeDisplayName;
+ property public final CharSequence username;
+ }
+
+ public static final class PasswordCredentialEntry.Builder {
+ ctor public PasswordCredentialEntry.Builder(android.content.Context context, CharSequence username, android.app.PendingIntent pendingIntent, androidx.credentials.provider.BeginGetPasswordOption beginGetPasswordOption);
+ method public androidx.credentials.provider.PasswordCredentialEntry build();
+ method public androidx.credentials.provider.PasswordCredentialEntry.Builder setAutoSelectAllowed(boolean autoSelectAllowed);
+ method public androidx.credentials.provider.PasswordCredentialEntry.Builder setDisplayName(CharSequence? displayName);
+ method public androidx.credentials.provider.PasswordCredentialEntry.Builder setIcon(android.graphics.drawable.Icon icon);
+ method public androidx.credentials.provider.PasswordCredentialEntry.Builder setLastUsedTime(java.time.Instant? lastUsedTime);
+ }
+
+ @RequiresApi(34) public final class PendingIntentHandler {
+ ctor public PendingIntentHandler();
+ method public static androidx.credentials.provider.BeginGetCredentialRequest? retrieveBeginGetCredentialRequest(android.content.Intent intent);
+ method public static androidx.credentials.provider.ProviderCreateCredentialRequest? retrieveProviderCreateCredentialRequest(android.content.Intent intent);
+ method public static androidx.credentials.provider.ProviderGetCredentialRequest? retrieveProviderGetCredentialRequest(android.content.Intent intent);
+ method public static void setBeginGetCredentialResponse(android.content.Intent intent, androidx.credentials.provider.BeginGetCredentialResponse response);
+ method public static void setCreateCredentialException(android.content.Intent intent, androidx.credentials.exceptions.CreateCredentialException exception);
+ method public static void setCreateCredentialResponse(android.content.Intent intent, androidx.credentials.CreateCredentialResponse response);
+ method public static void setGetCredentialException(android.content.Intent intent, androidx.credentials.exceptions.GetCredentialException exception);
+ method public static void setGetCredentialResponse(android.content.Intent intent, androidx.credentials.GetCredentialResponse response);
+ field public static final androidx.credentials.provider.PendingIntentHandler.Companion Companion;
+ }
+
+ public static final class PendingIntentHandler.Companion {
+ method public androidx.credentials.provider.BeginGetCredentialRequest? retrieveBeginGetCredentialRequest(android.content.Intent intent);
+ method public androidx.credentials.provider.ProviderCreateCredentialRequest? retrieveProviderCreateCredentialRequest(android.content.Intent intent);
+ method public androidx.credentials.provider.ProviderGetCredentialRequest? retrieveProviderGetCredentialRequest(android.content.Intent intent);
+ method public void setBeginGetCredentialResponse(android.content.Intent intent, androidx.credentials.provider.BeginGetCredentialResponse response);
+ method public void setCreateCredentialException(android.content.Intent intent, androidx.credentials.exceptions.CreateCredentialException exception);
+ method public void setCreateCredentialResponse(android.content.Intent intent, androidx.credentials.CreateCredentialResponse response);
+ method public void setGetCredentialException(android.content.Intent intent, androidx.credentials.exceptions.GetCredentialException exception);
+ method public void setGetCredentialResponse(android.content.Intent intent, androidx.credentials.GetCredentialResponse response);
+ }
+
+ public final class ProviderClearCredentialStateRequest {
+ ctor public ProviderClearCredentialStateRequest(androidx.credentials.provider.CallingAppInfo callingAppInfo);
+ method public androidx.credentials.provider.CallingAppInfo getCallingAppInfo();
+ property public final androidx.credentials.provider.CallingAppInfo callingAppInfo;
+ }
+
+ public final class ProviderCreateCredentialRequest {
+ ctor public ProviderCreateCredentialRequest(androidx.credentials.CreateCredentialRequest callingRequest, androidx.credentials.provider.CallingAppInfo callingAppInfo);
+ method public androidx.credentials.provider.CallingAppInfo getCallingAppInfo();
+ method public androidx.credentials.CreateCredentialRequest getCallingRequest();
+ property public final androidx.credentials.provider.CallingAppInfo callingAppInfo;
+ property public final androidx.credentials.CreateCredentialRequest callingRequest;
+ }
+
+ public final class ProviderGetCredentialRequest {
+ ctor public ProviderGetCredentialRequest(java.util.List<? extends androidx.credentials.CredentialOption> credentialOptions, androidx.credentials.provider.CallingAppInfo callingAppInfo);
+ method public androidx.credentials.provider.CallingAppInfo getCallingAppInfo();
+ method public java.util.List<androidx.credentials.CredentialOption> getCredentialOptions();
+ property public final androidx.credentials.provider.CallingAppInfo callingAppInfo;
+ property public final java.util.List<androidx.credentials.CredentialOption> credentialOptions;
+ }
+
+ @RequiresApi(26) public final class PublicKeyCredentialEntry extends androidx.credentials.provider.CredentialEntry {
+ ctor public PublicKeyCredentialEntry(android.content.Context context, CharSequence username, android.app.PendingIntent pendingIntent, androidx.credentials.provider.BeginGetPublicKeyCredentialOption beginGetPublicKeyCredentialOption, optional CharSequence? displayName, optional java.time.Instant? lastUsedTime, optional android.graphics.drawable.Icon icon, optional boolean isAutoSelectAllowed);
+ method public CharSequence? getDisplayName();
+ method public android.graphics.drawable.Icon getIcon();
+ method public java.time.Instant? getLastUsedTime();
+ method public android.app.PendingIntent getPendingIntent();
+ method public CharSequence getTypeDisplayName();
+ method public CharSequence getUsername();
+ method public boolean isAutoSelectAllowed();
+ property public final CharSequence? displayName;
+ property public final android.graphics.drawable.Icon icon;
+ property public final boolean isAutoSelectAllowed;
+ property public final java.time.Instant? lastUsedTime;
+ property public final android.app.PendingIntent pendingIntent;
+ property public final CharSequence typeDisplayName;
+ property public final CharSequence username;
+ }
+
+ public static final class PublicKeyCredentialEntry.Builder {
+ ctor public PublicKeyCredentialEntry.Builder(android.content.Context context, CharSequence username, android.app.PendingIntent pendingIntent, androidx.credentials.provider.BeginGetPublicKeyCredentialOption beginGetPublicKeyCredentialOption);
+ method public androidx.credentials.provider.PublicKeyCredentialEntry build();
+ method public androidx.credentials.provider.PublicKeyCredentialEntry.Builder setAutoSelectAllowed(boolean autoSelectAllowed);
+ method public androidx.credentials.provider.PublicKeyCredentialEntry.Builder setDisplayName(CharSequence? displayName);
+ method public androidx.credentials.provider.PublicKeyCredentialEntry.Builder setIcon(android.graphics.drawable.Icon icon);
+ method public androidx.credentials.provider.PublicKeyCredentialEntry.Builder setLastUsedTime(java.time.Instant? lastUsedTime);
+ }
+
+ public final class RemoteEntry {
+ ctor public RemoteEntry(android.app.PendingIntent pendingIntent);
+ method public android.app.PendingIntent getPendingIntent();
+ property public final android.app.PendingIntent pendingIntent;
+ }
+
+ public static final class RemoteEntry.Builder {
+ ctor public RemoteEntry.Builder(android.app.PendingIntent pendingIntent);
+ method public androidx.credentials.provider.RemoteEntry build();
+ }
+
+}
+
diff --git a/datastore/datastore-core/lint-baseline.xml b/datastore/datastore-core/lint-baseline.xml
deleted file mode 100644
index b8e7866..0000000
--- a/datastore/datastore-core/lint-baseline.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-beta05" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta05)" variant="all" version="8.1.0-beta05">
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getCoordinator` of class `DataStoreImpl` requires synthetic accessor"
- errorLine1=" coordinator.lock {"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/commonMain/kotlin/androidx/datastore/core/DataStoreImpl.kt"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getCoordinator` of class `DataStoreImpl` requires synthetic accessor"
- errorLine1=" version = coordinator.getVersion()"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/commonMain/kotlin/androidx/datastore/core/DataStoreImpl.kt"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getCoordinator` of class `DataStoreImpl` requires synthetic accessor"
- errorLine1=" coordinator.updateNotifications.conflate().collect {"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/commonMain/kotlin/androidx/datastore/core/DataStoreImpl.kt"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `readDataAndUpdateCache` of class `DataStoreImpl` requires synthetic accessor"
- errorLine1=" readDataAndUpdateCache(requireLock = true)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/commonMain/kotlin/androidx/datastore/core/DataStoreImpl.kt"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getCoordinator` of class `DataStoreImpl` requires synthetic accessor"
- errorLine1=" coordinator.lock { block() }"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/commonMain/kotlin/androidx/datastore/core/DataStoreImpl.kt"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `readDataFromFileOrDefault` of class `DataStoreImpl` requires synthetic accessor"
- errorLine1=" val data = readDataFromFileOrDefault()"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/commonMain/kotlin/androidx/datastore/core/DataStoreImpl.kt"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getCoordinator` of class `DataStoreImpl` requires synthetic accessor"
- errorLine1=" Data(data, data.hashCode(), version = coordinator.getVersion())"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/commonMain/kotlin/androidx/datastore/core/DataStoreImpl.kt"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getCoordinator` of class `DataStoreImpl` requires synthetic accessor"
- errorLine1=" val preLockVersion = coordinator.getVersion()"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/commonMain/kotlin/androidx/datastore/core/DataStoreImpl.kt"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getCoordinator` of class `DataStoreImpl` requires synthetic accessor"
- errorLine1=" coordinator.tryLock { locked ->"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/commonMain/kotlin/androidx/datastore/core/DataStoreImpl.kt"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `readDataFromFileOrDefault` of class `DataStoreImpl` requires synthetic accessor"
- errorLine1=" val data = readDataFromFileOrDefault()"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/commonMain/kotlin/androidx/datastore/core/DataStoreImpl.kt"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getCoordinator` of class `DataStoreImpl` requires synthetic accessor"
- errorLine1=" val version = if (locked) coordinator.getVersion() else preLockVersion"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/commonMain/kotlin/androidx/datastore/core/DataStoreImpl.kt"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `readDataFromFileOrDefault` of class `DataStoreImpl` requires synthetic accessor"
- errorLine1=" newData = readDataFromFileOrDefault()"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/commonMain/kotlin/androidx/datastore/core/DataStoreImpl.kt"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getCoordinator` of class `DataStoreImpl` requires synthetic accessor"
- errorLine1=" version = coordinator.getVersion()"
- errorLine2=" ~~~~~~~~~~~">
- <location
- file="src/commonMain/kotlin/androidx/datastore/core/DataStoreImpl.kt"/>
- </issue>
-
-</issues>
diff --git a/health/health-services-client/lint-baseline.xml b/health/health-services-client/lint-baseline.xml
index c9edad9..f42a2d4 100644
--- a/health/health-services-client/lint-baseline.xml
+++ b/health/health-services-client/lint-baseline.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<issues format="6" by="lint 8.1.0-beta02" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0-beta02)" variant="all" version="8.1.0-beta02">
+<issues format="6" by="lint 8.1.0" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.0)" variant="all" version="8.1.0">
<issue
id="BanParcelableUsage"
@@ -38,78 +38,6 @@
</issue>
<issue
- id="SyntheticAccessor"
- message="Access to `private` field `mCurrentVersion` of class `Client` requires synthetic accessor"
- errorLine1=" mCurrentVersion ="
- errorLine2=" ~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/health/services/client/impl/ipc/Client.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConnectionConfiguration` of class `Client` requires synthetic accessor"
- errorLine1=" return mConnectionConfiguration;"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/health/services/client/impl/ipc/Client.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConnectionManager` of class `Client` requires synthetic accessor"
- errorLine1=" mConnectionManager.scheduleForExecution("
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/health/services/client/impl/ipc/Client.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConnectionConfiguration` of class `Client` requires synthetic accessor"
- errorLine1=" new BaseQueueOperation(mConnectionConfiguration));"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/health/services/client/impl/ipc/Client.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` field `mConnectionManager` of class `Client` requires synthetic accessor"
- errorLine1=" mConnectionManager.scheduleForExecution("
- errorLine2=" ~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/health/services/client/impl/ipc/Client.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `createQueueOperation` of class `Client` requires synthetic accessor"
- errorLine1=" createQueueOperation(operation, settableFuture));"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/health/services/client/impl/ipc/Client.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` method `getService` of class `Client` requires synthetic accessor"
- errorLine1=" operation.execute(getService(binder), settableFuture);"
- errorLine2=" ~~~~~~~~~~">
- <location
- file="src/main/java/androidx/health/services/client/impl/ipc/Client.java"/>
- </issue>
-
- <issue
- id="SyntheticAccessor"
- message="Access to `private` constructor of class `MeasureCallbackStub` requires synthetic accessor"
- errorLine1=" measureCallbackStub = MeasureCallbackStub(callbackKey, measureCallback)"
- errorLine2=" ~~~~~~~~~~~~~~~~~~~">
- <location
- file="src/main/java/androidx/health/services/client/impl/MeasureCallbackStub.kt"/>
- </issue>
-
- <issue
id="LambdaLast"
message="Functional interface parameters (such as parameter 1, "operation", in androidx.health.services.client.impl.ipc.Client.executeWithVersionCheck) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
errorLine1=" RemoteFutureOperation<S, R> operation, int minApiVersion) {"
diff --git a/input/input-motionprediction/api/1.0.0-beta03.txt b/input/input-motionprediction/api/1.0.0-beta03.txt
new file mode 100644
index 0000000..b0eef8e
--- /dev/null
+++ b/input/input-motionprediction/api/1.0.0-beta03.txt
@@ -0,0 +1,11 @@
+// Signature format: 4.0
+package androidx.input.motionprediction {
+
+ public interface MotionEventPredictor {
+ method public static androidx.input.motionprediction.MotionEventPredictor newInstance(android.view.View);
+ method public android.view.MotionEvent? predict();
+ method public void record(android.view.MotionEvent);
+ }
+
+}
+
diff --git a/input/input-motionprediction/api/res-1.0.0-beta03.txt b/input/input-motionprediction/api/res-1.0.0-beta03.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/input/input-motionprediction/api/res-1.0.0-beta03.txt
diff --git a/input/input-motionprediction/api/restricted_1.0.0-beta03.txt b/input/input-motionprediction/api/restricted_1.0.0-beta03.txt
new file mode 100644
index 0000000..b0eef8e
--- /dev/null
+++ b/input/input-motionprediction/api/restricted_1.0.0-beta03.txt
@@ -0,0 +1,11 @@
+// Signature format: 4.0
+package androidx.input.motionprediction {
+
+ public interface MotionEventPredictor {
+ method public static androidx.input.motionprediction.MotionEventPredictor newInstance(android.view.View);
+ method public android.view.MotionEvent? predict();
+ method public void record(android.view.MotionEvent);
+ }
+
+}
+
diff --git a/libraryversions.toml b/libraryversions.toml
index 67979eb..9c45f40 100644
--- a/libraryversions.toml
+++ b/libraryversions.toml
@@ -4,7 +4,7 @@
ANNOTATION_EXPERIMENTAL = "1.4.0-alpha01"
APPACTIONS_BUILTINTYPES = "1.0.0-alpha01"
APPACTIONS_INTERACTION = "1.0.0-alpha01"
-APPCOMPAT = "1.7.0-alpha03"
+APPCOMPAT = "1.7.0-alpha04"
APPSEARCH = "1.1.0-alpha04"
ARCH_CORE = "2.3.0-alpha01"
ASYNCLAYOUTINFLATER = "1.1.0-alpha02"
@@ -12,38 +12,38 @@
BENCHMARK = "1.2.0-beta03"
BIOMETRIC = "1.2.0-alpha06"
BLUETOOTH = "1.0.0-alpha01"
-BROWSER = "1.6.0-rc01"
+BROWSER = "1.7.0-alpha01"
BUILDSRC_TESTS = "1.0.0-alpha01"
-CAMERA = "1.3.0-beta02"
+CAMERA = "1.3.0-beta03"
CAMERA_PIPE = "1.0.0-alpha01"
CARDVIEW = "1.1.0-alpha01"
CAR_APP = "1.4.0-beta01"
-COLLECTION = "1.3.0-alpha05"
-COMPOSE = "1.6.0-alpha02"
+COLLECTION = "1.3.0-beta01"
+COMPOSE = "1.6.0-alpha03"
COMPOSE_COMPILER = "1.5.1"
COMPOSE_MATERIAL3 = "1.2.0-alpha05"
COMPOSE_MATERIAL3_ADAPTIVE = "1.0.0-alpha01"
COMPOSE_RUNTIME_TRACING = "1.0.0-alpha03"
-CONSTRAINTLAYOUT = "2.2.0-alpha11"
-CONSTRAINTLAYOUT_COMPOSE = "1.1.0-alpha11"
-CONSTRAINTLAYOUT_CORE = "1.1.0-alpha11"
+CONSTRAINTLAYOUT = "2.2.0-alpha12"
+CONSTRAINTLAYOUT_COMPOSE = "1.1.0-alpha12"
+CONSTRAINTLAYOUT_CORE = "1.1.0-alpha12"
CONTENTPAGER = "1.1.0-alpha01"
COORDINATORLAYOUT = "1.3.0-alpha01"
CORE = "1.12.0-rc01"
CORE_ANIMATION = "1.0.0-rc01"
CORE_ANIMATION_TESTING = "1.0.0-rc01"
CORE_APPDIGEST = "1.0.0-alpha01"
-CORE_GOOGLE_SHORTCUTS = "1.2.0-alpha01"
+CORE_GOOGLE_SHORTCUTS = "1.2.0-alpha02"
CORE_HAPTICS = "1.0.0-alpha01"
-CORE_I18N = "1.0.0-alpha01"
-CORE_LOCATION_ALTITUDE = "1.0.0-alpha01"
+CORE_I18N = "1.0.0-alpha02"
+CORE_LOCATION_ALTITUDE = "1.0.0-alpha02"
CORE_PERFORMANCE = "1.0.0-alpha03"
-CORE_REMOTEVIEWS = "1.0.0-rc01"
+CORE_REMOTEVIEWS = "1.1.0-alpha01"
CORE_ROLE = "1.2.0-alpha01"
CORE_SPLASHSCREEN = "1.1.0-alpha01"
CORE_TELECOM = "1.0.0-alpha01"
-CORE_UWB = "1.0.0-alpha06"
-CREDENTIALS = "1.2.0-rc01"
+CORE_UWB = "1.0.0-alpha07"
+CREDENTIALS = "1.2.0-beta02"
CURSORADAPTER = "1.1.0-alpha01"
CUSTOMVIEW = "1.2.0-alpha03"
CUSTOMVIEW_POOLINGCONTAINER = "1.1.0-alpha01"
@@ -54,7 +54,7 @@
DYNAMICANIMATION = "1.1.0-alpha04"
DYNAMICANIMATION_KTX = "1.0.0-alpha04"
EMOJI = "1.2.0-alpha03"
-EMOJI2 = "1.4.0-rc01"
+EMOJI2 = "1.5.0-alpha01"
ENTERPRISE = "1.1.0-rc01"
EXIFINTERFACE = "1.4.0-alpha01"
FRAGMENT = "1.7.0-alpha02"
@@ -64,17 +64,17 @@
GLANCE_TEMPLATE = "1.0.0-alpha06"
GLANCE_WEAR_TILES = "1.0.0-alpha06"
GRAPHICS_CORE = "1.0.0-alpha04"
-GRAPHICS_PATH = "1.0.0-alpha02"
GRAPHICS_FILTERS = "1.0.0-alpha01"
+GRAPHICS_PATH = "1.0.0-alpha02"
GRAPHICS_SHAPES = "1.0.0-alpha03"
GRIDLAYOUT = "1.1.0-beta02"
HEALTH_CONNECT = "1.1.0-alpha04"
HEALTH_SERVICES_CLIENT = "1.1.0-alpha01"
-HEIFWRITER = "1.1.0-alpha02"
+HEIFWRITER = "1.1.0-alpha03"
HILT = "1.1.0-alpha01"
HILT_NAVIGATION = "1.1.0-alpha03"
HILT_NAVIGATION_COMPOSE = "1.1.0-alpha02"
-INPUT_MOTIONPREDICTION = "1.0.0-beta02"
+INPUT_MOTIONPREDICTION = "1.0.0-beta03"
INSPECTION = "1.0.0"
INTERPOLATOR = "1.1.0-alpha01"
JAVASCRIPTENGINE = "1.0.0-alpha06"
@@ -86,14 +86,14 @@
LEANBACK_TAB = "1.1.0-beta01"
LEGACY = "1.1.0-alpha01"
LIBYUV = "0.1.0-dev01"
-LIFECYCLE = "2.7.0-alpha01"
+LIFECYCLE = "2.7.0-alpha02"
LIFECYCLE_EXTENSIONS = "2.2.0"
LOADER = "1.2.0-alpha01"
MEDIA = "1.7.0-beta01"
MEDIA2 = "1.3.0-alpha01"
MEDIAROUTER = "1.6.0-beta01"
METRICS = "1.0.0-alpha05"
-NAVIGATION = "2.7.0-rc01"
+NAVIGATION = "2.8.0-alpha01"
PAGING = "3.3.0-alpha01"
PALETTE = "1.1.0-alpha01"
PERCENTLAYOUT = "1.1.0-alpha01"
@@ -101,9 +101,9 @@
PRINT = "1.1.0-beta01"
PRIVACYSANDBOX_ADS = "1.1.0-alpha01"
PRIVACYSANDBOX_PLUGINS = "1.0.0-alpha02"
-PRIVACYSANDBOX_SDKRUNTIME = "1.0.0-alpha07"
+PRIVACYSANDBOX_SDKRUNTIME = "1.0.0-alpha08"
PRIVACYSANDBOX_TOOLS = "1.0.0-alpha05"
-PRIVACYSANDBOX_UI = "1.0.0-alpha04"
+PRIVACYSANDBOX_UI = "1.0.0-alpha05"
PROFILEINSTALLER = "1.4.0-alpha01"
RECOMMENDATION = "1.1.0-alpha01"
RECYCLERVIEW = "1.4.0-alpha01"
@@ -131,12 +131,12 @@
SWIPEREFRESHLAYOUT = "1.2.0-alpha01"
TESTEXT = "1.0.0-alpha02"
TESTSCREENSHOT = "1.0.0-alpha01"
-TEST_UIAUTOMATOR = "2.3.0-alpha04"
+TEST_UIAUTOMATOR = "2.3.0-alpha05"
TEXT = "1.0.0-alpha01"
TRACING = "1.3.0-alpha02"
TRACING_PERFETTO = "1.0.0-beta01"
TRANSITION = "1.5.0-alpha01"
-TV = "1.0.0-alpha08"
+TV = "1.0.0-alpha09"
TVPROVIDER = "1.1.0-alpha02"
VECTORDRAWABLE = "1.2.0-rc01"
VECTORDRAWABLE_ANIMATED = "1.2.0-rc01"
@@ -145,8 +145,8 @@
VIEWPAGER = "1.1.0-alpha02"
VIEWPAGER2 = "1.1.0-beta03"
WEAR = "1.3.0-rc01"
-WEAR_COMPOSE = "1.3.0-alpha02"
-WEAR_COMPOSE_MATERIAL3 = "1.0.0-alpha08"
+WEAR_COMPOSE = "1.3.0-alpha03"
+WEAR_COMPOSE_MATERIAL3 = "1.0.0-alpha09"
WEAR_INPUT = "1.2.0-alpha03"
WEAR_INPUT_TESTING = "1.2.0-alpha03"
WEAR_ONGOING = "1.1.0-alpha01"
@@ -156,11 +156,11 @@
WEAR_TILES = "1.3.0-alpha01"
WEAR_WATCHFACE = "1.2.0-alpha09"
WEBKIT = "1.8.0-rc01"
-WINDOW = "1.2.0-beta01"
+WINDOW = "1.2.0-beta02"
WINDOW_EXTENSIONS = "1.2.0-rc01"
WINDOW_EXTENSIONS_CORE = "1.1.0-alpha01"
WINDOW_SIDECAR = "1.0.0-rc01"
-WORK = "2.9.0-alpha02"
+WORK = "2.9.0-alpha03"
[groups]
ACTIVITY = { group = "androidx.activity", atomicGroupVersion = "versions.ACTIVITY" }
diff --git a/mediarouter/mediarouter/api/1.6.0-beta01.txt b/mediarouter/mediarouter/api/1.6.0-beta01.txt
index 00e0b0a..bc026c9 100644
--- a/mediarouter/mediarouter/api/1.6.0-beta01.txt
+++ b/mediarouter/mediarouter/api/1.6.0-beta01.txt
@@ -572,7 +572,7 @@
public final class RouteListingPreference {
method public java.util.List<androidx.mediarouter.media.RouteListingPreference.Item!> getItems();
method public android.content.ComponentName? getLinkedItemComponentName();
- method public boolean getUseSystemOrdering();
+ method public boolean isSystemOrderingEnabled();
field public static final String ACTION_TRANSFER_MEDIA = "android.media.action.TRANSFER_MEDIA";
field public static final String EXTRA_ROUTE_ID = "android.media.extra.ROUTE_ID";
}
@@ -582,7 +582,7 @@
method public androidx.mediarouter.media.RouteListingPreference build();
method public androidx.mediarouter.media.RouteListingPreference.Builder setItems(java.util.List<androidx.mediarouter.media.RouteListingPreference.Item!>);
method public androidx.mediarouter.media.RouteListingPreference.Builder setLinkedItemComponentName(android.content.ComponentName?);
- method public androidx.mediarouter.media.RouteListingPreference.Builder setUseSystemOrdering(boolean);
+ method public androidx.mediarouter.media.RouteListingPreference.Builder setSystemOrderingEnabled(boolean);
}
public static final class RouteListingPreference.Item {
diff --git a/mediarouter/mediarouter/api/current.ignore b/mediarouter/mediarouter/api/current.ignore
new file mode 100644
index 0000000..e3f190d
--- /dev/null
+++ b/mediarouter/mediarouter/api/current.ignore
@@ -0,0 +1,11 @@
+// Baseline format: 1.0
+AddedMethod: androidx.mediarouter.media.RouteListingPreference#isSystemOrderingEnabled():
+ Added method androidx.mediarouter.media.RouteListingPreference.isSystemOrderingEnabled()
+AddedMethod: androidx.mediarouter.media.RouteListingPreference.Builder#setSystemOrderingEnabled(boolean):
+ Added method androidx.mediarouter.media.RouteListingPreference.Builder.setSystemOrderingEnabled(boolean)
+
+
+RemovedMethod: androidx.mediarouter.media.RouteListingPreference#getUseSystemOrdering():
+ Removed method androidx.mediarouter.media.RouteListingPreference.getUseSystemOrdering()
+RemovedMethod: androidx.mediarouter.media.RouteListingPreference.Builder#setUseSystemOrdering(boolean):
+ Removed method androidx.mediarouter.media.RouteListingPreference.Builder.setUseSystemOrdering(boolean)
diff --git a/mediarouter/mediarouter/api/current.txt b/mediarouter/mediarouter/api/current.txt
index 00e0b0a..bc026c9 100644
--- a/mediarouter/mediarouter/api/current.txt
+++ b/mediarouter/mediarouter/api/current.txt
@@ -572,7 +572,7 @@
public final class RouteListingPreference {
method public java.util.List<androidx.mediarouter.media.RouteListingPreference.Item!> getItems();
method public android.content.ComponentName? getLinkedItemComponentName();
- method public boolean getUseSystemOrdering();
+ method public boolean isSystemOrderingEnabled();
field public static final String ACTION_TRANSFER_MEDIA = "android.media.action.TRANSFER_MEDIA";
field public static final String EXTRA_ROUTE_ID = "android.media.extra.ROUTE_ID";
}
@@ -582,7 +582,7 @@
method public androidx.mediarouter.media.RouteListingPreference build();
method public androidx.mediarouter.media.RouteListingPreference.Builder setItems(java.util.List<androidx.mediarouter.media.RouteListingPreference.Item!>);
method public androidx.mediarouter.media.RouteListingPreference.Builder setLinkedItemComponentName(android.content.ComponentName?);
- method public androidx.mediarouter.media.RouteListingPreference.Builder setUseSystemOrdering(boolean);
+ method public androidx.mediarouter.media.RouteListingPreference.Builder setSystemOrderingEnabled(boolean);
}
public static final class RouteListingPreference.Item {
diff --git a/mediarouter/mediarouter/api/restricted_1.6.0-beta01.txt b/mediarouter/mediarouter/api/restricted_1.6.0-beta01.txt
index 00e0b0a..bc026c9 100644
--- a/mediarouter/mediarouter/api/restricted_1.6.0-beta01.txt
+++ b/mediarouter/mediarouter/api/restricted_1.6.0-beta01.txt
@@ -572,7 +572,7 @@
public final class RouteListingPreference {
method public java.util.List<androidx.mediarouter.media.RouteListingPreference.Item!> getItems();
method public android.content.ComponentName? getLinkedItemComponentName();
- method public boolean getUseSystemOrdering();
+ method public boolean isSystemOrderingEnabled();
field public static final String ACTION_TRANSFER_MEDIA = "android.media.action.TRANSFER_MEDIA";
field public static final String EXTRA_ROUTE_ID = "android.media.extra.ROUTE_ID";
}
@@ -582,7 +582,7 @@
method public androidx.mediarouter.media.RouteListingPreference build();
method public androidx.mediarouter.media.RouteListingPreference.Builder setItems(java.util.List<androidx.mediarouter.media.RouteListingPreference.Item!>);
method public androidx.mediarouter.media.RouteListingPreference.Builder setLinkedItemComponentName(android.content.ComponentName?);
- method public androidx.mediarouter.media.RouteListingPreference.Builder setUseSystemOrdering(boolean);
+ method public androidx.mediarouter.media.RouteListingPreference.Builder setSystemOrderingEnabled(boolean);
}
public static final class RouteListingPreference.Item {
diff --git a/mediarouter/mediarouter/api/restricted_current.ignore b/mediarouter/mediarouter/api/restricted_current.ignore
new file mode 100644
index 0000000..e3f190d
--- /dev/null
+++ b/mediarouter/mediarouter/api/restricted_current.ignore
@@ -0,0 +1,11 @@
+// Baseline format: 1.0
+AddedMethod: androidx.mediarouter.media.RouteListingPreference#isSystemOrderingEnabled():
+ Added method androidx.mediarouter.media.RouteListingPreference.isSystemOrderingEnabled()
+AddedMethod: androidx.mediarouter.media.RouteListingPreference.Builder#setSystemOrderingEnabled(boolean):
+ Added method androidx.mediarouter.media.RouteListingPreference.Builder.setSystemOrderingEnabled(boolean)
+
+
+RemovedMethod: androidx.mediarouter.media.RouteListingPreference#getUseSystemOrdering():
+ Removed method androidx.mediarouter.media.RouteListingPreference.getUseSystemOrdering()
+RemovedMethod: androidx.mediarouter.media.RouteListingPreference.Builder#setUseSystemOrdering(boolean):
+ Removed method androidx.mediarouter.media.RouteListingPreference.Builder.setUseSystemOrdering(boolean)
diff --git a/mediarouter/mediarouter/api/restricted_current.txt b/mediarouter/mediarouter/api/restricted_current.txt
index 00e0b0a..bc026c9 100644
--- a/mediarouter/mediarouter/api/restricted_current.txt
+++ b/mediarouter/mediarouter/api/restricted_current.txt
@@ -572,7 +572,7 @@
public final class RouteListingPreference {
method public java.util.List<androidx.mediarouter.media.RouteListingPreference.Item!> getItems();
method public android.content.ComponentName? getLinkedItemComponentName();
- method public boolean getUseSystemOrdering();
+ method public boolean isSystemOrderingEnabled();
field public static final String ACTION_TRANSFER_MEDIA = "android.media.action.TRANSFER_MEDIA";
field public static final String EXTRA_ROUTE_ID = "android.media.extra.ROUTE_ID";
}
@@ -582,7 +582,7 @@
method public androidx.mediarouter.media.RouteListingPreference build();
method public androidx.mediarouter.media.RouteListingPreference.Builder setItems(java.util.List<androidx.mediarouter.media.RouteListingPreference.Item!>);
method public androidx.mediarouter.media.RouteListingPreference.Builder setLinkedItemComponentName(android.content.ComponentName?);
- method public androidx.mediarouter.media.RouteListingPreference.Builder setUseSystemOrdering(boolean);
+ method public androidx.mediarouter.media.RouteListingPreference.Builder setSystemOrderingEnabled(boolean);
}
public static final class RouteListingPreference.Item {
diff --git a/mediarouter/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouterTest.java b/mediarouter/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouterTest.java
index 4f37053..6f7b964 100644
--- a/mediarouter/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouterTest.java
+++ b/mediarouter/mediarouter/src/androidTest/java/androidx/mediarouter/media/MediaRouterTest.java
@@ -279,13 +279,13 @@
@UiThreadTest
public void testReset() {
assertNotNull(mRouter);
- assertNotNull(MediaRouter.getGlobalRouter());
+ assertNotNull(MediaRouter.sGlobal);
MediaRouterTestHelper.resetMediaRouter();
- assertNull(MediaRouter.getGlobalRouter());
+ assertNull(MediaRouter.sGlobal);
MediaRouter newInstance = MediaRouter.getInstance(mContext);
- assertNotNull(MediaRouter.getGlobalRouter());
+ assertNotNull(MediaRouter.sGlobal);
assertFalse(newInstance.getRoutes().isEmpty());
}
diff --git a/mediarouter/mediarouter/src/androidTest/java/androidx/mediarouter/media/RouteListingPreferenceTest.java b/mediarouter/mediarouter/src/androidTest/java/androidx/mediarouter/media/RouteListingPreferenceTest.java
index e99c4e9..5bcc40d 100644
--- a/mediarouter/mediarouter/src/androidTest/java/androidx/mediarouter/media/RouteListingPreferenceTest.java
+++ b/mediarouter/mediarouter/src/androidTest/java/androidx/mediarouter/media/RouteListingPreferenceTest.java
@@ -93,7 +93,7 @@
new RouteListingPreference.Builder()
.setItems(Collections.singletonList(fakeRlpItem))
.setLinkedItemComponentName(FAKE_COMPONENT_NAME)
- .setUseSystemOrdering(false)
+ .setSystemOrderingEnabled(false)
.build();
android.media.RouteListingPreference platformRlp =
fakeRouteListingPreference.toPlatformRouteListingPreference();
diff --git a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteChooserDialog.java b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteChooserDialog.java
index b18543e..e2f4e1f 100644
--- a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteChooserDialog.java
+++ b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/app/MediaRouteChooserDialog.java
@@ -19,7 +19,10 @@
import static androidx.mediarouter.media.MediaRouter.RouteInfo.CONNECTION_STATE_CONNECTED;
import static androidx.mediarouter.media.MediaRouter.RouteInfo.CONNECTION_STATE_CONNECTING;
+import android.content.BroadcastReceiver;
import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.net.Uri;
@@ -98,6 +101,7 @@
private ProgressBar mSearchingProgressBar;
private ListView mListView;
private RouteAdapter mAdapter;
+ private ScreenOnOffReceiver mScreenOnOffReceiver;
private boolean mAttachedToWindow;
private long mLastUpdateTime;
@@ -140,6 +144,7 @@
mRouter = MediaRouter.getInstance(context);
mCallback = new MediaRouterCallback();
+ mScreenOnOffReceiver = new ScreenOnOffReceiver();
}
/**
@@ -249,6 +254,27 @@
mListView.setEmptyView(findViewById(android.R.id.empty));
updateLayout();
+
+ registerBroadcastReceiver();
+ }
+
+ private void registerBroadcastReceiver() {
+ IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
+ getContext().registerReceiver(mScreenOnOffReceiver, filter);
+ }
+
+ @Override
+ public void dismiss() {
+ unregisterBroadcastReceiver();
+ super.dismiss();
+ }
+
+ private void unregisterBroadcastReceiver() {
+ try {
+ getContext().unregisterReceiver(mScreenOnOffReceiver);
+ } catch (IllegalArgumentException e) {
+ // May already be unregistered; ignore.
+ }
}
/**
@@ -563,4 +589,13 @@
return lhs.getName().compareToIgnoreCase(rhs.getName());
}
}
+
+ final class ScreenOnOffReceiver extends BroadcastReceiver {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (Intent.ACTION_SCREEN_OFF.equals(intent.getAction())) {
+ dismiss();
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouter.java b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouter.java
index 3091883..00c0ad0 100644
--- a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouter.java
+++ b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRouter.java
@@ -142,10 +142,7 @@
*/
public static final int UNSELECT_REASON_ROUTE_CHANGED = 3;
- // Maintains global media router state for the process.
- // This field is initialized lazily when it is necessary.
- // Access this field directly only when you don't want to initialize it.
- // Use {@link #getGlobalRouter()} to get a valid instance.
+ /** Maintains global media router state for the process. */
static GlobalMediaRouter sGlobal;
// Context-bound state of the media router.
@@ -326,14 +323,14 @@
sGlobal = null;
}
- /**
- * Gets the initialized global router.
- */
+ /** Gets the initialized global router. */
+ @RestrictTo(LIBRARY_GROUP)
+ @NonNull
static GlobalMediaRouter getGlobalRouter() {
if (sGlobal == null) {
- return null;
+ throw new IllegalStateException(
+ "getGlobalRouter cannot be called when sGlobal is " + "null");
}
- sGlobal.ensureInitialized();
return sGlobal;
}
@@ -347,9 +344,7 @@
@NonNull
public List<RouteInfo> getRoutes() {
checkCallingThread();
- GlobalMediaRouter globalMediaRouter = getGlobalRouter();
- return globalMediaRouter == null ? Collections.emptyList() :
- globalMediaRouter.getRoutes();
+ return getGlobalRouter().getRoutes();
}
/**
@@ -362,9 +357,7 @@
@NonNull
public List<ProviderInfo> getProviders() {
checkCallingThread();
- GlobalMediaRouter globalMediaRouter = getGlobalRouter();
- return globalMediaRouter == null ? Collections.emptyList() :
- globalMediaRouter.getProviders();
+ return getGlobalRouter().getProviders();
}
/**
@@ -395,8 +388,7 @@
@Nullable
public RouteInfo getBluetoothRoute() {
checkCallingThread();
- GlobalMediaRouter globalMediaRouter = getGlobalRouter();
- return globalMediaRouter == null ? null : globalMediaRouter.getBluetoothRoute();
+ return getGlobalRouter().getBluetoothRoute();
}
/**
@@ -980,8 +972,7 @@
@Nullable
public MediaRouterParams getRouterParams() {
checkCallingThread();
- GlobalMediaRouter globalMediaRouter = getGlobalRouter();
- return globalMediaRouter == null ? null : globalMediaRouter.getRouterParams();
+ return getGlobalRouter().getRouterParams();
}
/**
@@ -1079,8 +1070,7 @@
* Returns whether transferring media from remote to local is enabled.
*/
static boolean isTransferToLocalEnabled() {
- GlobalMediaRouter globalMediaRouter = getGlobalRouter();
- return globalMediaRouter != null && globalMediaRouter.isTransferToLocalEnabled();
+ return getGlobalRouter().isTransferToLocalEnabled();
}
/**
@@ -1534,7 +1524,7 @@
}
checkCallingThread();
- for (IntentFilter intentFilter: mControlFilters) {
+ for (IntentFilter intentFilter : mControlFilters) {
if (intentFilter.hasCategory(category)) {
return true;
}
@@ -1572,7 +1562,7 @@
}
checkCallingThread();
- for (IntentFilter intentFilter: mControlFilters) {
+ for (IntentFilter intentFilter : mControlFilters) {
if (intentFilter.hasCategory(category) && intentFilter.hasAction(action)) {
return true;
}
@@ -1603,7 +1593,7 @@
checkCallingThread();
ContentResolver contentResolver = getGlobalRouter().getContentResolver();
- for (IntentFilter intentFilter: mControlFilters) {
+ for (IntentFilter intentFilter : mControlFilters) {
if (intentFilter.match(contentResolver, intent, true, TAG) >= 0) {
return true;
}
@@ -2264,7 +2254,7 @@
}
RouteInfo findRouteByDescriptorId(String id) {
- for (RouteInfo route: mRoutes) {
+ for (RouteInfo route : mRoutes) {
if (route.mDescriptorId.equals(id)) {
return route;
}
@@ -2561,7 +2551,6 @@
implements SystemMediaRouteProvider.SyncCallback,
RegisteredMediaRouteProviderWatcher.Callback {
final Context mApplicationContext;
- private boolean mIsInitialized;
SystemMediaRouteProvider mSystemProvider;
@VisibleForTesting
@@ -2625,27 +2614,15 @@
ActivityManagerCompat.isLowRamDevice(
(ActivityManager)
applicationContext.getSystemService(Context.ACTIVITY_SERVICE));
- }
- @SuppressLint({"NewApi", "SyntheticAccessor"})
- void ensureInitialized() {
- if (mIsInitialized) {
- return;
- }
- mIsInitialized = true;
-
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
- mTransferReceiverDeclared = MediaTransferReceiver.isDeclared(mApplicationContext);
- } else {
- mTransferReceiverDeclared = false;
- }
-
- if (mTransferReceiverDeclared) {
- mMr2Provider = new MediaRoute2Provider(
- mApplicationContext, new Mr2ProviderCallback());
- } else {
- mMr2Provider = null;
- }
+ mTransferReceiverDeclared =
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.R
+ && MediaTransferReceiver.isDeclared(mApplicationContext);
+ mMr2Provider =
+ Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && mTransferReceiverDeclared
+ ? new MediaRoute2Provider(
+ mApplicationContext, new Mr2ProviderCallback())
+ : null;
// Add the system media route provider for interoperating with
// the framework media router. This one is special and receives
@@ -2655,7 +2632,6 @@
}
private void start() {
- // Using lambda would break some apps.
mActiveScanThrottlingHelper =
new MediaRouterActiveScanThrottlingHelper(this::updateDiscoveryRequest);
addProvider(mSystemProvider, /* treatRouteDescriptorIdsAsUnique= */ true);
@@ -2671,15 +2647,13 @@
}
void reset() {
- if (!mIsInitialized) {
- return;
- }
- mRegisteredProviderWatcher.stop();
mActiveScanThrottlingHelper.reset();
setRouteListingPreference(null);
-
setMediaSessionCompat(null);
+
+ mRegisteredProviderWatcher.stop();
+
for (RemoteControlClientRecord record : mRemoteControlClients) {
record.disconnect();
}
@@ -3036,7 +3010,7 @@
}
// Notify providers.
- for (ProviderInfo providerInfo: mProviders) {
+ for (ProviderInfo providerInfo : mProviders) {
MediaRouteProvider provider = providerInfo.mProviderInstance;
if (provider == mMr2Provider) {
// MediaRoute2Provider is handled by updateMr2ProviderDiscoveryRequest().
@@ -3167,7 +3141,7 @@
}
private ProviderInfo findProviderInfo(MediaRouteProvider providerInstance) {
- for (ProviderInfo providerInfo: mProviders) {
+ for (ProviderInfo providerInfo : mProviders) {
if (providerInfo.mProviderInstance == providerInstance) {
return providerInfo;
}
@@ -3433,31 +3407,7 @@
&& route.mDescriptorId.equals(SystemMediaRouteProvider.DEFAULT_ROUTE_ID);
}
- void selectRouteInternal(@NonNull RouteInfo route,
- @UnselectReason int unselectReason) {
- // TODO: Remove the following logging when no longer needed.
- if (sGlobal == null || (mBluetoothRoute != null && route.isDefault())) {
- final StackTraceElement[] callStack = Thread.currentThread().getStackTrace();
- StringBuilder sb = new StringBuilder();
- // callStack[3] is the caller of this method.
- for (int i = 3; i < callStack.length; i++) {
- StackTraceElement caller = callStack[i];
- sb.append(caller.getClassName())
- .append(".")
- .append(caller.getMethodName())
- .append(":")
- .append(caller.getLineNumber())
- .append(" ");
- }
- if (sGlobal == null) {
- Log.w(TAG, "setSelectedRouteInternal is called while sGlobal is null: pkgName="
- + mApplicationContext.getPackageName() + ", callers=" + sb);
- } else {
- Log.w(TAG, "Default route is selected while a BT route is available: pkgName="
- + mApplicationContext.getPackageName() + ", callers=" + sb);
- }
- }
-
+ void selectRouteInternal(@NonNull RouteInfo route, @UnselectReason int unselectReason) {
if (mSelectedRoute == route) {
return;
}
@@ -3719,7 +3669,7 @@
mPlaybackInfo.volumeControlId = null;
}
- for (RemoteControlClientRecord remoteControlClientRecord: mRemoteControlClients) {
+ for (RemoteControlClientRecord remoteControlClientRecord : mRemoteControlClients) {
remoteControlClientRecord.updatePlaybackInfo();
}
if (mMediaSession != null) {
@@ -3832,32 +3782,30 @@
mVpCompat.setCurrentVolume(current);
} else {
// Otherwise create a new provider and update
- mVpCompat = new VolumeProviderCompat(controlType, max, current,
- volumeControlId) {
- @Override
- public void onSetVolumeTo(final int volume) {
- mCallbackHandler.post(new Runnable() {
+ mVpCompat =
+ new VolumeProviderCompat(
+ controlType, max, current, volumeControlId) {
@Override
- public void run() {
- if (mSelectedRoute != null) {
- mSelectedRoute.requestSetVolume(volume);
- }
+ public void onSetVolumeTo(final int volume) {
+ mCallbackHandler.post(
+ () -> {
+ if (mSelectedRoute != null) {
+ mSelectedRoute.requestSetVolume(volume);
+ }
+ });
}
- });
- }
- @Override
- public void onAdjustVolume(final int direction) {
- mCallbackHandler.post(new Runnable() {
@Override
- public void run() {
- if (mSelectedRoute != null) {
- mSelectedRoute.requestUpdateVolume(direction);
- }
+ public void onAdjustVolume(final int direction) {
+ mCallbackHandler.post(
+ () -> {
+ if (mSelectedRoute != null) {
+ mSelectedRoute.requestUpdateVolume(
+ direction);
+ }
+ });
}
- });
- }
- };
+ };
mMsCompat.setPlaybackToRemote(mVpCompat);
}
}
@@ -3982,9 +3930,8 @@
}
}
- final int callbackCount = mTempCallbackRecords.size();
- for (int i = 0; i < callbackCount; i++) {
- invokeCallback(mTempCallbackRecords.get(i), what, obj, arg);
+ for (CallbackRecord tempCallbackRecord : mTempCallbackRecords) {
+ invokeCallback(tempCallbackRecord, what, obj, arg);
}
} finally {
mTempCallbackRecords.clear();
diff --git a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/RouteListingPreference.java b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/RouteListingPreference.java
index 9f9735b..5ea089f 100644
--- a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/RouteListingPreference.java
+++ b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/RouteListingPreference.java
@@ -73,13 +73,13 @@
public static final String EXTRA_ROUTE_ID = android.media.RouteListingPreference.EXTRA_ROUTE_ID;
@NonNull private final List<RouteListingPreference.Item> mItems;
- private final boolean mUseSystemOrdering;
+ private final boolean mIsSystemOrderingEnabled;
@Nullable private final ComponentName mLinkedItemComponentName;
// Must be package private to avoid a synthetic accessor for the builder.
/* package */ RouteListingPreference(RouteListingPreference.Builder builder) {
mItems = builder.mItems;
- mUseSystemOrdering = builder.mUseSystemOrdering;
+ mIsSystemOrderingEnabled = builder.mIsSystemOrderingEnabled;
mLinkedItemComponentName = builder.mLinkedItemComponentName;
}
@@ -100,8 +100,8 @@
* <p>The system's ordering strategy is implementation-dependent, but may take into account each
* route's recency or frequency of use in order to rank them.
*/
- public boolean getUseSystemOrdering() {
- return mUseSystemOrdering;
+ public boolean isSystemOrderingEnabled() {
+ return mIsSystemOrderingEnabled;
}
/**
@@ -134,13 +134,13 @@
}
RouteListingPreference that = (RouteListingPreference) other;
return mItems.equals(that.mItems)
- && mUseSystemOrdering == that.mUseSystemOrdering
+ && mIsSystemOrderingEnabled == that.mIsSystemOrderingEnabled
&& Objects.equals(mLinkedItemComponentName, that.mLinkedItemComponentName);
}
@Override
public int hashCode() {
- return Objects.hash(mItems, mUseSystemOrdering, mLinkedItemComponentName);
+ return Objects.hash(mItems, mIsSystemOrderingEnabled, mLinkedItemComponentName);
}
// Internal methods.
@@ -158,13 +158,13 @@
// The builder fields must be package private to avoid synthetic accessors.
/* package */ List<RouteListingPreference.Item> mItems;
- /* package */ boolean mUseSystemOrdering;
+ /* package */ boolean mIsSystemOrderingEnabled;
/* package */ ComponentName mLinkedItemComponentName;
/** Creates a new instance with default values (documented in the setters). */
public Builder() {
mItems = Collections.emptyList();
- mUseSystemOrdering = true;
+ mIsSystemOrderingEnabled = true;
}
/**
@@ -180,15 +180,14 @@
}
/**
- * See {@link #getUseSystemOrdering()}
+ * See {@link #isSystemOrderingEnabled()}
*
* <p>The default value is {@code true}.
*/
- // Lint requires "isUseSystemOrdering", but "getUseSystemOrdering" is a better name.
- @SuppressWarnings("MissingGetterMatchingBuilder")
@NonNull
- public RouteListingPreference.Builder setUseSystemOrdering(boolean useSystemOrdering) {
- mUseSystemOrdering = useSystemOrdering;
+ public RouteListingPreference.Builder setSystemOrderingEnabled(
+ boolean systemOrderingEnabled) {
+ mIsSystemOrderingEnabled = systemOrderingEnabled;
return this;
}
@@ -576,7 +575,7 @@
return new android.media.RouteListingPreference.Builder()
.setItems(platformRlpItems)
.setLinkedItemComponentName(routeListingPreference.getLinkedItemComponentName())
- .setUseSystemOrdering(routeListingPreference.getUseSystemOrdering())
+ .setUseSystemOrdering(routeListingPreference.isSystemOrderingEnabled())
.build();
}
diff --git a/privacysandbox/ads/ads-adservices/api/current.txt b/privacysandbox/ads/ads-adservices/api/current.txt
index 6a4905b..7af040f 100644
--- a/privacysandbox/ads/ads-adservices/api/current.txt
+++ b/privacysandbox/ads/ads-adservices/api/current.txt
@@ -100,20 +100,13 @@
package androidx.privacysandbox.ads.adservices.common {
public final class AdData {
- ctor public AdData(optional android.net.Uri renderUri, optional String metadata);
+ ctor public AdData(android.net.Uri renderUri, String metadata);
method public String getMetadata();
method public android.net.Uri getRenderUri();
property public final String metadata;
property public final android.net.Uri renderUri;
}
- @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public static final class AdData.Builder {
- ctor public AdData.Builder();
- method public androidx.privacysandbox.ads.adservices.common.AdData build();
- method public androidx.privacysandbox.ads.adservices.common.AdData.Builder setMetadata(String metadata);
- method public androidx.privacysandbox.ads.adservices.common.AdData.Builder setRenderUri(android.net.Uri renderUri);
- }
-
public final class AdSelectionSignals {
ctor public AdSelectionSignals(String signals);
method public String getSignals();
@@ -198,20 +191,13 @@
}
public final class TrustedBiddingData {
- ctor public TrustedBiddingData(optional android.net.Uri trustedBiddingUri, optional java.util.List<java.lang.String> trustedBiddingKeys);
+ ctor public TrustedBiddingData(android.net.Uri trustedBiddingUri, java.util.List<java.lang.String> trustedBiddingKeys);
method public java.util.List<java.lang.String> getTrustedBiddingKeys();
method public android.net.Uri getTrustedBiddingUri();
property public final java.util.List<java.lang.String> trustedBiddingKeys;
property public final android.net.Uri trustedBiddingUri;
}
- @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public static final class TrustedBiddingData.Builder {
- ctor public TrustedBiddingData.Builder();
- method public androidx.privacysandbox.ads.adservices.customaudience.TrustedBiddingData build();
- method public androidx.privacysandbox.ads.adservices.customaudience.TrustedBiddingData.Builder setTrustedBiddingKeys(java.util.List<java.lang.String> trustedBiddingKeys);
- method public androidx.privacysandbox.ads.adservices.customaudience.TrustedBiddingData.Builder setTrustedBiddingUri(android.net.Uri trustedBiddingUri);
- }
-
}
package androidx.privacysandbox.ads.adservices.measurement {
diff --git a/privacysandbox/ads/ads-adservices/api/restricted_current.txt b/privacysandbox/ads/ads-adservices/api/restricted_current.txt
index 6a4905b..7af040f 100644
--- a/privacysandbox/ads/ads-adservices/api/restricted_current.txt
+++ b/privacysandbox/ads/ads-adservices/api/restricted_current.txt
@@ -100,20 +100,13 @@
package androidx.privacysandbox.ads.adservices.common {
public final class AdData {
- ctor public AdData(optional android.net.Uri renderUri, optional String metadata);
+ ctor public AdData(android.net.Uri renderUri, String metadata);
method public String getMetadata();
method public android.net.Uri getRenderUri();
property public final String metadata;
property public final android.net.Uri renderUri;
}
- @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public static final class AdData.Builder {
- ctor public AdData.Builder();
- method public androidx.privacysandbox.ads.adservices.common.AdData build();
- method public androidx.privacysandbox.ads.adservices.common.AdData.Builder setMetadata(String metadata);
- method public androidx.privacysandbox.ads.adservices.common.AdData.Builder setRenderUri(android.net.Uri renderUri);
- }
-
public final class AdSelectionSignals {
ctor public AdSelectionSignals(String signals);
method public String getSignals();
@@ -198,20 +191,13 @@
}
public final class TrustedBiddingData {
- ctor public TrustedBiddingData(optional android.net.Uri trustedBiddingUri, optional java.util.List<java.lang.String> trustedBiddingKeys);
+ ctor public TrustedBiddingData(android.net.Uri trustedBiddingUri, java.util.List<java.lang.String> trustedBiddingKeys);
method public java.util.List<java.lang.String> getTrustedBiddingKeys();
method public android.net.Uri getTrustedBiddingUri();
property public final java.util.List<java.lang.String> trustedBiddingKeys;
property public final android.net.Uri trustedBiddingUri;
}
- @RequiresApi(android.os.Build.VERSION_CODES.TIRAMISU) public static final class TrustedBiddingData.Builder {
- ctor public TrustedBiddingData.Builder();
- method public androidx.privacysandbox.ads.adservices.customaudience.TrustedBiddingData build();
- method public androidx.privacysandbox.ads.adservices.customaudience.TrustedBiddingData.Builder setTrustedBiddingKeys(java.util.List<java.lang.String> trustedBiddingKeys);
- method public androidx.privacysandbox.ads.adservices.customaudience.TrustedBiddingData.Builder setTrustedBiddingUri(android.net.Uri trustedBiddingUri);
- }
-
}
package androidx.privacysandbox.ads.adservices.measurement {
diff --git a/privacysandbox/ads/ads-adservices/src/androidTest/java/androidx/privacysandbox/ads/adservices/common/AdDataTest.kt b/privacysandbox/ads/ads-adservices/src/androidTest/java/androidx/privacysandbox/ads/adservices/common/AdDataTest.kt
index cc86a64..c140524 100644
--- a/privacysandbox/ads/ads-adservices/src/androidTest/java/androidx/privacysandbox/ads/adservices/common/AdDataTest.kt
+++ b/privacysandbox/ads/ads-adservices/src/androidTest/java/androidx/privacysandbox/ads/adservices/common/AdDataTest.kt
@@ -17,10 +17,7 @@
package androidx.privacysandbox.ads.adservices.common
import android.net.Uri
-import android.os.Build
-import androidx.annotation.RequiresApi
import androidx.test.ext.junit.runners.AndroidJUnit4
-import androidx.test.filters.SdkSuppress
import androidx.test.filters.SmallTest
import com.google.common.truth.Truth
import org.junit.Test
@@ -28,10 +25,10 @@
@SmallTest
@RunWith(AndroidJUnit4::class)
-@SdkSuppress(minSdkVersion = 33)
class AdDataTest {
private val uri: Uri = Uri.parse("abc.com")
private val metadata = "metadata"
+
@Test
fun testToString() {
val result = "AdData: renderUri=$uri, metadata='$metadata'"
@@ -45,14 +42,4 @@
var adData2 = AdData(Uri.parse("abc.com"), "metadata")
Truth.assertThat(adData1 == adData2).isTrue()
}
-
- @Test
- @RequiresApi(Build.VERSION_CODES.TIRAMISU)
- fun testBuilderSetters() {
- val constructed = AdData(uri, metadata)
- val builder = AdData.Builder()
- .setRenderUri(uri)
- .setMetadata(metadata)
- Truth.assertThat(builder.build()).isEqualTo(constructed)
- }
}
diff --git a/privacysandbox/ads/ads-adservices/src/androidTest/java/androidx/privacysandbox/ads/adservices/customaudience/TrustedBiddingDataTest.kt b/privacysandbox/ads/ads-adservices/src/androidTest/java/androidx/privacysandbox/ads/adservices/customaudience/TrustedBiddingDataTest.kt
index 5b74ef1..4cb9357 100644
--- a/privacysandbox/ads/ads-adservices/src/androidTest/java/androidx/privacysandbox/ads/adservices/customaudience/TrustedBiddingDataTest.kt
+++ b/privacysandbox/ads/ads-adservices/src/androidTest/java/androidx/privacysandbox/ads/adservices/customaudience/TrustedBiddingDataTest.kt
@@ -17,10 +17,7 @@
package androidx.privacysandbox.ads.adservices.customaudience
import android.net.Uri
-import android.os.Build
-import androidx.annotation.RequiresApi
import androidx.test.ext.junit.runners.AndroidJUnit4
-import androidx.test.filters.SdkSuppress
import androidx.test.filters.SmallTest
import com.google.common.truth.Truth
import org.junit.Test
@@ -28,24 +25,14 @@
@SmallTest
@RunWith(AndroidJUnit4::class)
-@SdkSuppress(minSdkVersion = 33)
class TrustedBiddingDataTest {
private val uri = Uri.parse("abc.com")
private val keys = listOf("key1", "key2")
+
@Test
fun testToString() {
val result = "TrustedBiddingData: trustedBiddingUri=abc.com trustedBiddingKeys=[key1, key2]"
val trustedBiddingData = TrustedBiddingData(uri, keys)
Truth.assertThat(trustedBiddingData.toString()).isEqualTo(result)
}
-
- @RequiresApi(Build.VERSION_CODES.TIRAMISU)
- @Test
- fun testBuilderSetters() {
- val constructed = TrustedBiddingData(uri, keys)
- val builder = TrustedBiddingData.Builder()
- .setTrustedBiddingUri(uri)
- .setTrustedBiddingKeys(keys)
- Truth.assertThat(builder.build()).isEqualTo(constructed)
- }
}
diff --git a/privacysandbox/ads/ads-adservices/src/main/java/androidx/privacysandbox/ads/adservices/common/AdData.kt b/privacysandbox/ads/ads-adservices/src/main/java/androidx/privacysandbox/ads/adservices/common/AdData.kt
index a274659..c12afe8 100644
--- a/privacysandbox/ads/ads-adservices/src/main/java/androidx/privacysandbox/ads/adservices/common/AdData.kt
+++ b/privacysandbox/ads/ads-adservices/src/main/java/androidx/privacysandbox/ads/adservices/common/AdData.kt
@@ -17,8 +17,6 @@
package androidx.privacysandbox.ads.adservices.common
import android.net.Uri
-import android.os.Build
-import androidx.annotation.RequiresApi
/**
* Represents data specific to an ad that is necessary for ad selection and rendering.
@@ -26,8 +24,8 @@
* @param metadata buyer ad metadata represented as a JSON string
*/
class AdData public constructor(
- val renderUri: Uri = Uri.EMPTY,
- val metadata: String = ""
+ val renderUri: Uri,
+ val metadata: String
) {
/** Checks whether two [AdData] objects contain the same information. */
@@ -49,42 +47,4 @@
override fun toString(): String {
return "AdData: renderUri=$renderUri, metadata='$metadata'"
}
-
- /** Builder for [AdData] objects. */
- @RequiresApi(Build.VERSION_CODES.TIRAMISU)
- public class Builder {
- private var renderUri: Uri = Uri.EMPTY
- private var metadata: String = ""
-
- /**
- * Sets the URI that points to the ad's rendering assets. The URI must use HTTPS.
- *
- * @param renderUri a URI pointing to the ad's rendering assets
- */
- fun setRenderUri(renderUri: Uri): Builder = apply {
- this.renderUri = renderUri
- }
-
- /**
- * Sets the buyer ad metadata used during the ad selection process.
- *
- * @param metadata The metadata should be a valid JSON object serialized as a string.
- * Metadata represents ad-specific bidding information that will be used during ad selection
- * as part of bid generation and used in buyer JavaScript logic, which is executed in an
- * isolated execution environment.
- *
- * If the metadata is not a valid JSON object that can be consumed by the buyer's JS, the
- * ad will not be eligible for ad selection.
- */
- fun setMetadata(metadata: String): Builder = apply {
- this.metadata = metadata
- }
-
- /**
- * Builds an instance of [AdData]
- */
- fun build(): AdData {
- return AdData(renderUri, metadata)
- }
- }
}
diff --git a/privacysandbox/ads/ads-adservices/src/main/java/androidx/privacysandbox/ads/adservices/customaudience/TrustedBiddingData.kt b/privacysandbox/ads/ads-adservices/src/main/java/androidx/privacysandbox/ads/adservices/customaudience/TrustedBiddingData.kt
index 077c397..64c7d67 100644
--- a/privacysandbox/ads/ads-adservices/src/main/java/androidx/privacysandbox/ads/adservices/customaudience/TrustedBiddingData.kt
+++ b/privacysandbox/ads/ads-adservices/src/main/java/androidx/privacysandbox/ads/adservices/customaudience/TrustedBiddingData.kt
@@ -17,8 +17,6 @@
package androidx.privacysandbox.ads.adservices.customaudience
import android.net.Uri
-import android.os.Build
-import androidx.annotation.RequiresApi
/**
* Represents data used during the ad selection process to fetch buyer bidding signals from a
@@ -31,8 +29,8 @@
* bidding signals.
*/
class TrustedBiddingData public constructor(
- val trustedBiddingUri: Uri = Uri.EMPTY,
- val trustedBiddingKeys: List<String> = emptyList()
+ val trustedBiddingUri: Uri,
+ val trustedBiddingKeys: List<String>
) {
/**
* @return `true` if two [TrustedBiddingData] objects contain the same information
@@ -55,38 +53,4 @@
return "TrustedBiddingData: trustedBiddingUri=$trustedBiddingUri " +
"trustedBiddingKeys=$trustedBiddingKeys"
}
-
- /** Builder for [TrustedBiddingData] objects. */
- @RequiresApi(Build.VERSION_CODES.TIRAMISU)
- public class Builder {
- private var trustedBiddingUri: Uri = Uri.EMPTY
- private var trustedBiddingKeys: List<String> = emptyList()
-
- /**
- * Sets the trusted Bidding Uri
- *
- * @param trustedBiddingUri the URI pointing to the trusted key-value server holding bidding
- * signals. The URI must use HTTPS.
- */
- fun setTrustedBiddingUri(trustedBiddingUri: Uri): Builder = apply {
- this.trustedBiddingUri = trustedBiddingUri
- }
-
- /**
- * Sets the trusted Bidding keys.
- *
- * @param trustedBiddingKeys list of keys to query the trusted key-value server with.
- * This list is permitted to be empty.
- */
- fun setTrustedBiddingKeys(trustedBiddingKeys: List<String>): Builder = apply {
- this.trustedBiddingKeys = trustedBiddingKeys
- }
-
- /**
- * Builds and instance of [TrustedBiddingData]
- */
- fun build(): TrustedBiddingData {
- return TrustedBiddingData(trustedBiddingUri, trustedBiddingKeys)
- }
- }
}
diff --git a/privacysandbox/ui/ui-client/src/main/java/androidx/privacysandbox/ui/client/view/SandboxedSdkView.kt b/privacysandbox/ui/ui-client/src/main/java/androidx/privacysandbox/ui/client/view/SandboxedSdkView.kt
index bcae96fd..b3d581a 100644
--- a/privacysandbox/ui/ui-client/src/main/java/androidx/privacysandbox/ui/client/view/SandboxedSdkView.kt
+++ b/privacysandbox/ui/ui-client/src/main/java/androidx/privacysandbox/ui/client/view/SandboxedSdkView.kt
@@ -133,6 +133,10 @@
/**
* Sets the Z-ordering of the [SandboxedSdkView]'s surface, relative to its window.
+ *
+ * When [setOnTop] is true, every [android.view.MotionEvent] on the [SandboxedSdkView] will be
+ * sent to the UI provider. When [setOnTop] is false, every [android.view.MotionEvent] will be
+ * sent to the client. By default, motion events are sent to the UI provider.
*/
fun setZOrderOnTopAndEnableUserInteraction(setOnTop: Boolean) {
if (setOnTop == isZOrderOnTop) return
diff --git a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/RoutesManager.java b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/RoutesManager.java
index 1c4ecff..94676b4 100644
--- a/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/RoutesManager.java
+++ b/samples/MediaRoutingDemo/src/main/java/com/example/androidx/mediarouting/RoutesManager.java
@@ -317,7 +317,7 @@
.setItems(items)
.setLinkedItemComponentName(
new ComponentName(mContext, MainActivity.class))
- .setUseSystemOrdering(mRouteListingSystemOrderingPreferred)
+ .setSystemOrderingEnabled(mRouteListingSystemOrderingPreferred)
.build();
}
mMediaRouter.setRouteListingPreference(routeListingPreference);
diff --git a/wear/compose/compose-foundation/src/androidTest/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyListLayoutInfoTest.kt b/wear/compose/compose-foundation/src/androidTest/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyListLayoutInfoTest.kt
index a04f924..cf0399d 100644
--- a/wear/compose/compose-foundation/src/androidTest/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyListLayoutInfoTest.kt
+++ b/wear/compose/compose-foundation/src/androidTest/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyListLayoutInfoTest.kt
@@ -133,6 +133,7 @@
scope!!.launch {
state.animateScrollBy(scrollDistance.toFloat())
}
+
rule.runOnIdle {
assertThat(state.centerItemIndex).isEqualTo(1)
assertThat(state.centerItemScrollOffset).isEqualTo(scrollDistance)
@@ -419,6 +420,7 @@
}
}
}
+ rule.mainClock.autoAdvance = false
// TODO(b/210654937): Remove the waitUntil once we no longer need 2 stage initialization
rule.waitUntil { state.initialized.value }
@@ -426,7 +428,8 @@
state.animateScrollBy(localItemSizePx.toFloat() * 10)
}
- rule.waitUntil { !state.isScrollInProgress }
+ rule.mainClock.advanceTimeBy(milliseconds = 1000)
+ assert(!state.isScrollInProgress)
assertThat(state.centerItemIndex).isEqualTo(4)
assertThat(state.centerItemScrollOffset).isEqualTo(0)
@@ -434,7 +437,8 @@
state.animateScrollBy(- localItemSizePx.toFloat() * 10)
}
- rule.waitUntil { !state.isScrollInProgress }
+ rule.mainClock.advanceTimeBy(milliseconds = 1000)
+ assert(!state.isScrollInProgress)
assertThat(state.centerItemIndex).isEqualTo(autoCenterItem)
assertThat(state.centerItemScrollOffset).isEqualTo(0)
}
diff --git a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.kt b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.kt
index 7a6eba0..677dca7 100644
--- a/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.kt
+++ b/wear/compose/compose-foundation/src/main/java/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.kt
@@ -34,11 +34,11 @@
import androidx.compose.foundation.lazy.LazyListScope
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Immutable
-import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.Stable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
+import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@@ -58,6 +58,7 @@
import androidx.compose.ui.unit.offset
import androidx.wear.compose.foundation.ExperimentalWearFoundationApi
import androidx.wear.compose.foundation.LocalReduceMotion
+import kotlinx.coroutines.launch
/**
* Receiver scope which is used by [ScalingLazyColumn].
@@ -395,6 +396,7 @@
state.reverseLayout.value = reverseLayout
state.localInspectionMode.value = LocalInspectionMode.current
+ val coroutineScope = rememberCoroutineScope()
LazyColumn(
modifier = Modifier
.clipToBounds()
@@ -406,6 +408,9 @@
layoutInfo.readyForInitialScroll
) {
initialized = true
+ coroutineScope.launch {
+ state.scrollToInitialItem()
+ }
}
},
horizontalAlignment = horizontalAlignment,
@@ -443,11 +448,6 @@
}
}
}
- if (initialized) {
- LaunchedEffect(state) {
- state.scrollToInitialItem()
- }
- }
}
}
}
diff --git a/wear/compose/compose-material/src/androidTest/kotlin/androidx/wear/compose/material/ScalingLazyListLayoutInfoTest.kt b/wear/compose/compose-material/src/androidTest/kotlin/androidx/wear/compose/material/ScalingLazyListLayoutInfoTest.kt
index 75181cf..e57f587 100644
--- a/wear/compose/compose-material/src/androidTest/kotlin/androidx/wear/compose/material/ScalingLazyListLayoutInfoTest.kt
+++ b/wear/compose/compose-material/src/androidTest/kotlin/androidx/wear/compose/material/ScalingLazyListLayoutInfoTest.kt
@@ -134,6 +134,7 @@
scope!!.launch {
state.animateScrollBy(scrollDistance.toFloat())
}
+
rule.runOnIdle {
assertThat(state.centerItemIndex).isEqualTo(1)
assertThat(state.centerItemScrollOffset).isEqualTo(scrollDistance)
@@ -419,6 +420,7 @@
}
}
}
+ rule.mainClock.autoAdvance = false
// TODO(b/210654937): Remove the waitUntil once we no longer need 2 stage initialization
rule.waitUntil { state.initialized.value }
@@ -426,7 +428,8 @@
state.animateScrollBy(localItemSizePx.toFloat() * 10)
}
- rule.waitUntil { !state.isScrollInProgress }
+ rule.mainClock.advanceTimeBy(milliseconds = 1000)
+ assert(!state.isScrollInProgress)
assertThat(state.centerItemIndex).isEqualTo(4)
assertThat(state.centerItemScrollOffset).isEqualTo(0)
@@ -434,7 +437,8 @@
state.animateScrollBy(- localItemSizePx.toFloat() * 10)
}
- rule.waitUntil { !state.isScrollInProgress }
+ rule.mainClock.advanceTimeBy(milliseconds = 1000)
+ assert(!state.isScrollInProgress)
assertThat(state.centerItemIndex).isEqualTo(autoCenterItem)
assertThat(state.centerItemScrollOffset).isEqualTo(0)
}
diff --git a/wear/compose/integration-tests/demos/build.gradle b/wear/compose/integration-tests/demos/build.gradle
index 36e7808d..892fc54 100644
--- a/wear/compose/integration-tests/demos/build.gradle
+++ b/wear/compose/integration-tests/demos/build.gradle
@@ -50,6 +50,8 @@
implementation("androidx.wear:wear:1.1.0")
+ implementation("androidx.tracing:tracing:1.1.0")
+
implementation(project(":compose:foundation:foundation"))
implementation(project(":compose:foundation:foundation-layout"))
implementation(project(":compose:integration-tests:demos:common"))
diff --git a/wear/compose/integration-tests/demos/src/androidTest/java/androidx/wear/compose/integration/demos/test/DemoTest.kt b/wear/compose/integration-tests/demos/src/androidTest/java/androidx/wear/compose/integration/demos/test/DemoTest.kt
index 646addf..0e3f0ea 100644
--- a/wear/compose/integration-tests/demos/src/androidTest/java/androidx/wear/compose/integration/demos/test/DemoTest.kt
+++ b/wear/compose/integration-tests/demos/src/androidTest/java/androidx/wear/compose/integration/demos/test/DemoTest.kt
@@ -16,6 +16,7 @@
package androidx.wear.compose.integration.demos.test
+import android.util.Log
import androidx.compose.ui.test.ExperimentalTestApi
import androidx.compose.ui.test.SemanticsNodeInteractionCollection
import androidx.compose.ui.test.hasClickAction
@@ -33,15 +34,19 @@
import androidx.wear.compose.integration.demos.common.Demo
import androidx.wear.compose.integration.demos.common.DemoCategory
import com.google.common.truth.Truth.assertThat
-import org.junit.Ignore
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
private val ignoredDemos = listOf<String>(
- // Not ignoring any of them \o/
+ // TODO(b/294013164): Reinstate these tests
+ "Material > Curved Text > Basic Styling",
+ "Material > Curved Text > Provider Styling",
)
+// Run this test on a phone emulator.
+// There are issues running on Watch emulators that menu items off screen are not found,
+// given the use of ScalingLAZYColumn.
@LargeTest
@RunWith(AndroidJUnit4::class)
@OptIn(ExperimentalTestApi::class)
@@ -50,7 +55,6 @@
@get:Rule
val rule = createAndroidComposeRule<DemoActivity>()
- @Ignore("b/276935528")
@Test
fun navigateThroughAllDemos() {
// Compose integration-tests are split into batches due to size,
@@ -102,6 +106,7 @@
path: List<DemoCategory>,
fastForwardClock: Boolean
) {
+ Log.d("TEST", "Visit ${this.navigationTitle(path)}")
if (fastForwardClock) {
// Skip through the enter animation of the list screen
fastForwardClock()
diff --git a/wear/watchface/watchface/src/androidTest/java/androidx/wear/watchface/WatchFaceServiceAndroidTest.kt b/wear/watchface/watchface/src/androidTest/java/androidx/wear/watchface/WatchFaceServiceAndroidTest.kt
index 8c7e17e..e76aa06 100644
--- a/wear/watchface/watchface/src/androidTest/java/androidx/wear/watchface/WatchFaceServiceAndroidTest.kt
+++ b/wear/watchface/watchface/src/androidTest/java/androidx/wear/watchface/WatchFaceServiceAndroidTest.kt
@@ -43,9 +43,8 @@
val context: Context = ApplicationProvider.getApplicationContext()
val serviceSpy =
object : SimpleWatchFaceTestService() {
- override val resourcesContext: Context
- get() =
- this.createPackageContext(context.packageName, Context.CONTEXT_RESTRICTED)
+ override fun getResourcesContext(runtimePackage: String): Context =
+ this.createPackageContext(context.packageName, Context.CONTEXT_RESTRICTED)
}
val engine = serviceSpy.onCreateEngine() as WatchFaceService.EngineWrapper
diff --git a/wear/watchface/watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt b/wear/watchface/watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt
index c32fa26..476da70 100644
--- a/wear/watchface/watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt
+++ b/wear/watchface/watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt
@@ -437,9 +437,9 @@
}
}
- /** The context used to resolve resources. Unlocks future work. */
- protected open val resourcesContext: Context
- @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP) get() = this
+ /** Returns the context used to resolve resources. */
+ @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
+ protected open fun getResourcesContext(runtimePackage: String): Context = this
/**
* Returns the id of the XmlSchemaAndComplicationSlotsDefinition XML resource or 0 if it can't
@@ -2644,7 +2644,7 @@
for (styleSetting in schema.userStyleSettings) {
estimatedBytes +=
styleSetting.estimateWireSizeInBytesAndValidateIconDimensions(
- resourcesContext,
+ getResourcesContext(getComponentName().packageName),
MAX_REASONABLE_SCHEMA_ICON_WIDTH,
MAX_REASONABLE_SCHEMA_ICON_HEIGHT,
)
diff --git a/window/window-core/api/1.2.0-beta02.txt b/window/window-core/api/1.2.0-beta02.txt
new file mode 100644
index 0000000..624b2df
--- /dev/null
+++ b/window/window-core/api/1.2.0-beta02.txt
@@ -0,0 +1,38 @@
+// Signature format: 4.0
+package androidx.window.core.layout {
+
+ public final class WindowHeightSizeClass {
+ field public static final androidx.window.core.layout.WindowHeightSizeClass COMPACT;
+ field public static final androidx.window.core.layout.WindowHeightSizeClass.Companion Companion;
+ field public static final androidx.window.core.layout.WindowHeightSizeClass EXPANDED;
+ field public static final androidx.window.core.layout.WindowHeightSizeClass MEDIUM;
+ }
+
+ public static final class WindowHeightSizeClass.Companion {
+ }
+
+ public final class WindowSizeClass {
+ method public static androidx.window.core.layout.WindowSizeClass compute(float dpWidth, float dpHeight);
+ method public androidx.window.core.layout.WindowHeightSizeClass getWindowHeightSizeClass();
+ method public androidx.window.core.layout.WindowWidthSizeClass getWindowWidthSizeClass();
+ property public final androidx.window.core.layout.WindowHeightSizeClass windowHeightSizeClass;
+ property public final androidx.window.core.layout.WindowWidthSizeClass windowWidthSizeClass;
+ field public static final androidx.window.core.layout.WindowSizeClass.Companion Companion;
+ }
+
+ public static final class WindowSizeClass.Companion {
+ method public androidx.window.core.layout.WindowSizeClass compute(float dpWidth, float dpHeight);
+ }
+
+ public final class WindowWidthSizeClass {
+ field public static final androidx.window.core.layout.WindowWidthSizeClass COMPACT;
+ field public static final androidx.window.core.layout.WindowWidthSizeClass.Companion Companion;
+ field public static final androidx.window.core.layout.WindowWidthSizeClass EXPANDED;
+ field public static final androidx.window.core.layout.WindowWidthSizeClass MEDIUM;
+ }
+
+ public static final class WindowWidthSizeClass.Companion {
+ }
+
+}
+
diff --git a/window/window-core/api/res-1.2.0-beta02.txt b/window/window-core/api/res-1.2.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/window/window-core/api/res-1.2.0-beta02.txt
diff --git a/window/window-core/api/restricted_1.2.0-beta02.txt b/window/window-core/api/restricted_1.2.0-beta02.txt
new file mode 100644
index 0000000..624b2df
--- /dev/null
+++ b/window/window-core/api/restricted_1.2.0-beta02.txt
@@ -0,0 +1,38 @@
+// Signature format: 4.0
+package androidx.window.core.layout {
+
+ public final class WindowHeightSizeClass {
+ field public static final androidx.window.core.layout.WindowHeightSizeClass COMPACT;
+ field public static final androidx.window.core.layout.WindowHeightSizeClass.Companion Companion;
+ field public static final androidx.window.core.layout.WindowHeightSizeClass EXPANDED;
+ field public static final androidx.window.core.layout.WindowHeightSizeClass MEDIUM;
+ }
+
+ public static final class WindowHeightSizeClass.Companion {
+ }
+
+ public final class WindowSizeClass {
+ method public static androidx.window.core.layout.WindowSizeClass compute(float dpWidth, float dpHeight);
+ method public androidx.window.core.layout.WindowHeightSizeClass getWindowHeightSizeClass();
+ method public androidx.window.core.layout.WindowWidthSizeClass getWindowWidthSizeClass();
+ property public final androidx.window.core.layout.WindowHeightSizeClass windowHeightSizeClass;
+ property public final androidx.window.core.layout.WindowWidthSizeClass windowWidthSizeClass;
+ field public static final androidx.window.core.layout.WindowSizeClass.Companion Companion;
+ }
+
+ public static final class WindowSizeClass.Companion {
+ method public androidx.window.core.layout.WindowSizeClass compute(float dpWidth, float dpHeight);
+ }
+
+ public final class WindowWidthSizeClass {
+ field public static final androidx.window.core.layout.WindowWidthSizeClass COMPACT;
+ field public static final androidx.window.core.layout.WindowWidthSizeClass.Companion Companion;
+ field public static final androidx.window.core.layout.WindowWidthSizeClass EXPANDED;
+ field public static final androidx.window.core.layout.WindowWidthSizeClass MEDIUM;
+ }
+
+ public static final class WindowWidthSizeClass.Companion {
+ }
+
+}
+
diff --git a/window/window-java/api/1.2.0-beta02.txt b/window/window-java/api/1.2.0-beta02.txt
new file mode 100644
index 0000000..2e19128
--- /dev/null
+++ b/window/window-java/api/1.2.0-beta02.txt
@@ -0,0 +1,32 @@
+// Signature format: 4.0
+package androidx.window.java.area {
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public final class WindowAreaControllerCallbackAdapter implements androidx.window.area.WindowAreaController {
+ ctor public WindowAreaControllerCallbackAdapter(androidx.window.area.WindowAreaController controller);
+ method public void addWindowAreaInfoListListener(java.util.concurrent.Executor executor, androidx.core.util.Consumer<java.util.List<androidx.window.area.WindowAreaInfo>> listener);
+ method public void removeWindowAreaInfoListListener(androidx.core.util.Consumer<java.util.List<androidx.window.area.WindowAreaInfo>> listener);
+ }
+
+}
+
+package androidx.window.java.embedding {
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public final class SplitControllerCallbackAdapter {
+ ctor public SplitControllerCallbackAdapter(androidx.window.embedding.SplitController controller);
+ method public void addSplitListener(android.app.Activity activity, java.util.concurrent.Executor executor, androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
+ method public void removeSplitListener(androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
+ }
+
+}
+
+package androidx.window.java.layout {
+
+ public final class WindowInfoTrackerCallbackAdapter implements androidx.window.layout.WindowInfoTracker {
+ ctor public WindowInfoTrackerCallbackAdapter(androidx.window.layout.WindowInfoTracker tracker);
+ method public void addWindowLayoutInfoListener(android.app.Activity activity, java.util.concurrent.Executor executor, androidx.core.util.Consumer<androidx.window.layout.WindowLayoutInfo> consumer);
+ method public void addWindowLayoutInfoListener(@UiContext android.content.Context context, java.util.concurrent.Executor executor, androidx.core.util.Consumer<androidx.window.layout.WindowLayoutInfo> consumer);
+ method public void removeWindowLayoutInfoListener(androidx.core.util.Consumer<androidx.window.layout.WindowLayoutInfo> consumer);
+ }
+
+}
+
diff --git a/window/window-java/api/res-1.2.0-beta02.txt b/window/window-java/api/res-1.2.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/window/window-java/api/res-1.2.0-beta02.txt
diff --git a/window/window-java/api/restricted_1.2.0-beta02.txt b/window/window-java/api/restricted_1.2.0-beta02.txt
new file mode 100644
index 0000000..2e19128
--- /dev/null
+++ b/window/window-java/api/restricted_1.2.0-beta02.txt
@@ -0,0 +1,32 @@
+// Signature format: 4.0
+package androidx.window.java.area {
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public final class WindowAreaControllerCallbackAdapter implements androidx.window.area.WindowAreaController {
+ ctor public WindowAreaControllerCallbackAdapter(androidx.window.area.WindowAreaController controller);
+ method public void addWindowAreaInfoListListener(java.util.concurrent.Executor executor, androidx.core.util.Consumer<java.util.List<androidx.window.area.WindowAreaInfo>> listener);
+ method public void removeWindowAreaInfoListListener(androidx.core.util.Consumer<java.util.List<androidx.window.area.WindowAreaInfo>> listener);
+ }
+
+}
+
+package androidx.window.java.embedding {
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public final class SplitControllerCallbackAdapter {
+ ctor public SplitControllerCallbackAdapter(androidx.window.embedding.SplitController controller);
+ method public void addSplitListener(android.app.Activity activity, java.util.concurrent.Executor executor, androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
+ method public void removeSplitListener(androidx.core.util.Consumer<java.util.List<androidx.window.embedding.SplitInfo>> consumer);
+ }
+
+}
+
+package androidx.window.java.layout {
+
+ public final class WindowInfoTrackerCallbackAdapter implements androidx.window.layout.WindowInfoTracker {
+ ctor public WindowInfoTrackerCallbackAdapter(androidx.window.layout.WindowInfoTracker tracker);
+ method public void addWindowLayoutInfoListener(android.app.Activity activity, java.util.concurrent.Executor executor, androidx.core.util.Consumer<androidx.window.layout.WindowLayoutInfo> consumer);
+ method public void addWindowLayoutInfoListener(@UiContext android.content.Context context, java.util.concurrent.Executor executor, androidx.core.util.Consumer<androidx.window.layout.WindowLayoutInfo> consumer);
+ method public void removeWindowLayoutInfoListener(androidx.core.util.Consumer<androidx.window.layout.WindowLayoutInfo> consumer);
+ }
+
+}
+
diff --git a/window/window-rxjava2/api/1.2.0-beta02.txt b/window/window-rxjava2/api/1.2.0-beta02.txt
new file mode 100644
index 0000000..5250696
--- /dev/null
+++ b/window/window-rxjava2/api/1.2.0-beta02.txt
@@ -0,0 +1,12 @@
+// Signature format: 4.0
+package androidx.window.rxjava2.layout {
+
+ public final class WindowInfoTrackerRx {
+ method public static io.reactivex.Flowable<androidx.window.layout.WindowLayoutInfo> windowLayoutInfoFlowable(androidx.window.layout.WindowInfoTracker, android.app.Activity activity);
+ method public static io.reactivex.Flowable<androidx.window.layout.WindowLayoutInfo> windowLayoutInfoFlowable(androidx.window.layout.WindowInfoTracker, @UiContext android.content.Context context);
+ method public static io.reactivex.Observable<androidx.window.layout.WindowLayoutInfo> windowLayoutInfoObservable(androidx.window.layout.WindowInfoTracker, android.app.Activity activity);
+ method public static io.reactivex.Observable<androidx.window.layout.WindowLayoutInfo> windowLayoutInfoObservable(androidx.window.layout.WindowInfoTracker, @UiContext android.content.Context context);
+ }
+
+}
+
diff --git a/window/window-rxjava2/api/res-1.2.0-beta02.txt b/window/window-rxjava2/api/res-1.2.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/window/window-rxjava2/api/res-1.2.0-beta02.txt
diff --git a/window/window-rxjava2/api/restricted_1.2.0-beta02.txt b/window/window-rxjava2/api/restricted_1.2.0-beta02.txt
new file mode 100644
index 0000000..5250696
--- /dev/null
+++ b/window/window-rxjava2/api/restricted_1.2.0-beta02.txt
@@ -0,0 +1,12 @@
+// Signature format: 4.0
+package androidx.window.rxjava2.layout {
+
+ public final class WindowInfoTrackerRx {
+ method public static io.reactivex.Flowable<androidx.window.layout.WindowLayoutInfo> windowLayoutInfoFlowable(androidx.window.layout.WindowInfoTracker, android.app.Activity activity);
+ method public static io.reactivex.Flowable<androidx.window.layout.WindowLayoutInfo> windowLayoutInfoFlowable(androidx.window.layout.WindowInfoTracker, @UiContext android.content.Context context);
+ method public static io.reactivex.Observable<androidx.window.layout.WindowLayoutInfo> windowLayoutInfoObservable(androidx.window.layout.WindowInfoTracker, android.app.Activity activity);
+ method public static io.reactivex.Observable<androidx.window.layout.WindowLayoutInfo> windowLayoutInfoObservable(androidx.window.layout.WindowInfoTracker, @UiContext android.content.Context context);
+ }
+
+}
+
diff --git a/window/window-rxjava3/api/1.2.0-beta02.txt b/window/window-rxjava3/api/1.2.0-beta02.txt
new file mode 100644
index 0000000..23510cc
--- /dev/null
+++ b/window/window-rxjava3/api/1.2.0-beta02.txt
@@ -0,0 +1,12 @@
+// Signature format: 4.0
+package androidx.window.rxjava3.layout {
+
+ public final class WindowInfoTrackerRx {
+ method public static io.reactivex.rxjava3.core.Flowable<androidx.window.layout.WindowLayoutInfo> windowLayoutInfoFlowable(androidx.window.layout.WindowInfoTracker, android.app.Activity activity);
+ method public static io.reactivex.rxjava3.core.Flowable<androidx.window.layout.WindowLayoutInfo> windowLayoutInfoFlowable(androidx.window.layout.WindowInfoTracker, @UiContext android.content.Context context);
+ method public static io.reactivex.rxjava3.core.Observable<androidx.window.layout.WindowLayoutInfo> windowLayoutInfoObservable(androidx.window.layout.WindowInfoTracker, android.app.Activity activity);
+ method public static io.reactivex.rxjava3.core.Observable<androidx.window.layout.WindowLayoutInfo> windowLayoutInfoObservable(androidx.window.layout.WindowInfoTracker, @UiContext android.content.Context context);
+ }
+
+}
+
diff --git a/window/window-rxjava3/api/res-1.2.0-beta02.txt b/window/window-rxjava3/api/res-1.2.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/window/window-rxjava3/api/res-1.2.0-beta02.txt
diff --git a/window/window-rxjava3/api/restricted_1.2.0-beta02.txt b/window/window-rxjava3/api/restricted_1.2.0-beta02.txt
new file mode 100644
index 0000000..23510cc
--- /dev/null
+++ b/window/window-rxjava3/api/restricted_1.2.0-beta02.txt
@@ -0,0 +1,12 @@
+// Signature format: 4.0
+package androidx.window.rxjava3.layout {
+
+ public final class WindowInfoTrackerRx {
+ method public static io.reactivex.rxjava3.core.Flowable<androidx.window.layout.WindowLayoutInfo> windowLayoutInfoFlowable(androidx.window.layout.WindowInfoTracker, android.app.Activity activity);
+ method public static io.reactivex.rxjava3.core.Flowable<androidx.window.layout.WindowLayoutInfo> windowLayoutInfoFlowable(androidx.window.layout.WindowInfoTracker, @UiContext android.content.Context context);
+ method public static io.reactivex.rxjava3.core.Observable<androidx.window.layout.WindowLayoutInfo> windowLayoutInfoObservable(androidx.window.layout.WindowInfoTracker, android.app.Activity activity);
+ method public static io.reactivex.rxjava3.core.Observable<androidx.window.layout.WindowLayoutInfo> windowLayoutInfoObservable(androidx.window.layout.WindowInfoTracker, @UiContext android.content.Context context);
+ }
+
+}
+
diff --git a/window/window-testing/api/1.2.0-beta02.txt b/window/window-testing/api/1.2.0-beta02.txt
new file mode 100644
index 0000000..847a9e8
--- /dev/null
+++ b/window/window-testing/api/1.2.0-beta02.txt
@@ -0,0 +1,73 @@
+// Signature format: 4.0
+package androidx.window.testing.embedding {
+
+ public final class ActivityEmbeddingRule implements org.junit.rules.TestRule {
+ ctor public ActivityEmbeddingRule();
+ method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description);
+ method public void overrideIsActivityEmbedded(android.app.Activity activity, boolean isActivityEmbedded);
+ method public void overrideSplitInfo(android.app.Activity activity, java.util.List<androidx.window.embedding.SplitInfo> splitInfoList);
+ method public void overrideSplitSupportStatus(androidx.window.embedding.SplitController.SplitSupportStatus status);
+ }
+
+ public final class TestActivityStack {
+ method public static androidx.window.embedding.ActivityStack createTestActivityStack();
+ method public static androidx.window.embedding.ActivityStack createTestActivityStack(optional java.util.List<? extends android.app.Activity> activitiesInProcess);
+ method public static androidx.window.embedding.ActivityStack createTestActivityStack(optional java.util.List<? extends android.app.Activity> activitiesInProcess, optional boolean isEmpty);
+ }
+
+ public final class TestSplitAttributesCalculatorParams {
+ method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics);
+ method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration);
+ method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo);
+ method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes);
+ method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes, optional boolean areDefaultConstraintsSatisfied);
+ method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes, optional boolean areDefaultConstraintsSatisfied, optional String? splitRuleTag);
+ }
+
+ public final class TestSplitInfo {
+ method public static androidx.window.embedding.SplitInfo createTestSplitInfo();
+ method public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack);
+ method public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack, optional androidx.window.embedding.ActivityStack secondActivityStack);
+ method public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack, optional androidx.window.embedding.ActivityStack secondActivityStack, optional androidx.window.embedding.SplitAttributes splitAttributes);
+ }
+
+}
+
+package androidx.window.testing.layout {
+
+ public final class DisplayFeatureTesting {
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.app.Activity activity);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.app.Activity activity, optional @IntRange(from=-1L) int center);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.app.Activity activity, optional @IntRange(from=-1L) int center, optional int size);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.app.Activity activity, optional @IntRange(from=-1L) int center, optional int size, optional androidx.window.layout.FoldingFeature.State state);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.app.Activity activity, optional @IntRange(from=-1L) int center, optional int size, optional androidx.window.layout.FoldingFeature.State state, optional androidx.window.layout.FoldingFeature.Orientation orientation);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.graphics.Rect windowBounds);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.graphics.Rect windowBounds, optional @IntRange(from=-1L) int center);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.graphics.Rect windowBounds, optional @IntRange(from=-1L) int center, optional int size);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.graphics.Rect windowBounds, optional @IntRange(from=-1L) int center, optional int size, optional androidx.window.layout.FoldingFeature.State state);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.graphics.Rect windowBounds, optional @IntRange(from=-1L) int center, optional int size, optional androidx.window.layout.FoldingFeature.State state, optional androidx.window.layout.FoldingFeature.Orientation orientation);
+ }
+
+ public final class FoldingFeatureTestingConstants {
+ field public static final int FOLDING_FEATURE_CENTER_DEFAULT = -1; // 0xffffffff
+ field public static final androidx.window.testing.layout.FoldingFeatureTestingConstants INSTANCE;
+ }
+
+ public final class WindowLayoutInfoPublisherRule implements org.junit.rules.TestRule {
+ ctor public WindowLayoutInfoPublisherRule();
+ method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description);
+ method public void overrideWindowLayoutInfo(androidx.window.layout.WindowLayoutInfo info);
+ }
+
+ public final class WindowLayoutInfoTesting {
+ method public static androidx.window.layout.WindowLayoutInfo createWindowLayoutInfo();
+ method public static androidx.window.layout.WindowLayoutInfo createWindowLayoutInfo(optional java.util.List<? extends androidx.window.layout.DisplayFeature> displayFeatures);
+ }
+
+ public final class WindowMetricsCalculatorRule implements org.junit.rules.TestRule {
+ ctor public WindowMetricsCalculatorRule();
+ method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description);
+ }
+
+}
+
diff --git a/window/window-testing/api/res-1.2.0-beta02.txt b/window/window-testing/api/res-1.2.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/window/window-testing/api/res-1.2.0-beta02.txt
diff --git a/window/window-testing/api/restricted_1.2.0-beta02.txt b/window/window-testing/api/restricted_1.2.0-beta02.txt
new file mode 100644
index 0000000..847a9e8
--- /dev/null
+++ b/window/window-testing/api/restricted_1.2.0-beta02.txt
@@ -0,0 +1,73 @@
+// Signature format: 4.0
+package androidx.window.testing.embedding {
+
+ public final class ActivityEmbeddingRule implements org.junit.rules.TestRule {
+ ctor public ActivityEmbeddingRule();
+ method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description);
+ method public void overrideIsActivityEmbedded(android.app.Activity activity, boolean isActivityEmbedded);
+ method public void overrideSplitInfo(android.app.Activity activity, java.util.List<androidx.window.embedding.SplitInfo> splitInfoList);
+ method public void overrideSplitSupportStatus(androidx.window.embedding.SplitController.SplitSupportStatus status);
+ }
+
+ public final class TestActivityStack {
+ method public static androidx.window.embedding.ActivityStack createTestActivityStack();
+ method public static androidx.window.embedding.ActivityStack createTestActivityStack(optional java.util.List<? extends android.app.Activity> activitiesInProcess);
+ method public static androidx.window.embedding.ActivityStack createTestActivityStack(optional java.util.List<? extends android.app.Activity> activitiesInProcess, optional boolean isEmpty);
+ }
+
+ public final class TestSplitAttributesCalculatorParams {
+ method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics);
+ method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration);
+ method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo);
+ method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes);
+ method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes, optional boolean areDefaultConstraintsSatisfied);
+ method public static androidx.window.embedding.SplitAttributesCalculatorParams createTestSplitAttributesCalculatorParams(androidx.window.layout.WindowMetrics parentWindowMetrics, optional android.content.res.Configuration parentConfiguration, optional androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo, optional androidx.window.embedding.SplitAttributes defaultSplitAttributes, optional boolean areDefaultConstraintsSatisfied, optional String? splitRuleTag);
+ }
+
+ public final class TestSplitInfo {
+ method public static androidx.window.embedding.SplitInfo createTestSplitInfo();
+ method public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack);
+ method public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack, optional androidx.window.embedding.ActivityStack secondActivityStack);
+ method public static androidx.window.embedding.SplitInfo createTestSplitInfo(optional androidx.window.embedding.ActivityStack primaryActivityStack, optional androidx.window.embedding.ActivityStack secondActivityStack, optional androidx.window.embedding.SplitAttributes splitAttributes);
+ }
+
+}
+
+package androidx.window.testing.layout {
+
+ public final class DisplayFeatureTesting {
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.app.Activity activity);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.app.Activity activity, optional @IntRange(from=-1L) int center);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.app.Activity activity, optional @IntRange(from=-1L) int center, optional int size);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.app.Activity activity, optional @IntRange(from=-1L) int center, optional int size, optional androidx.window.layout.FoldingFeature.State state);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.app.Activity activity, optional @IntRange(from=-1L) int center, optional int size, optional androidx.window.layout.FoldingFeature.State state, optional androidx.window.layout.FoldingFeature.Orientation orientation);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.graphics.Rect windowBounds);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.graphics.Rect windowBounds, optional @IntRange(from=-1L) int center);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.graphics.Rect windowBounds, optional @IntRange(from=-1L) int center, optional int size);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.graphics.Rect windowBounds, optional @IntRange(from=-1L) int center, optional int size, optional androidx.window.layout.FoldingFeature.State state);
+ method public static androidx.window.layout.FoldingFeature createFoldingFeature(android.graphics.Rect windowBounds, optional @IntRange(from=-1L) int center, optional int size, optional androidx.window.layout.FoldingFeature.State state, optional androidx.window.layout.FoldingFeature.Orientation orientation);
+ }
+
+ public final class FoldingFeatureTestingConstants {
+ field public static final int FOLDING_FEATURE_CENTER_DEFAULT = -1; // 0xffffffff
+ field public static final androidx.window.testing.layout.FoldingFeatureTestingConstants INSTANCE;
+ }
+
+ public final class WindowLayoutInfoPublisherRule implements org.junit.rules.TestRule {
+ ctor public WindowLayoutInfoPublisherRule();
+ method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description);
+ method public void overrideWindowLayoutInfo(androidx.window.layout.WindowLayoutInfo info);
+ }
+
+ public final class WindowLayoutInfoTesting {
+ method public static androidx.window.layout.WindowLayoutInfo createWindowLayoutInfo();
+ method public static androidx.window.layout.WindowLayoutInfo createWindowLayoutInfo(optional java.util.List<? extends androidx.window.layout.DisplayFeature> displayFeatures);
+ }
+
+ public final class WindowMetricsCalculatorRule implements org.junit.rules.TestRule {
+ ctor public WindowMetricsCalculatorRule();
+ method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description);
+ }
+
+}
+
diff --git a/window/window/api/1.2.0-beta02.txt b/window/window/api/1.2.0-beta02.txt
new file mode 100644
index 0000000..7c79bde
--- /dev/null
+++ b/window/window/api/1.2.0-beta02.txt
@@ -0,0 +1,465 @@
+// Signature format: 4.0
+package androidx.window {
+
+ public final class WindowProperties {
+ field public static final androidx.window.WindowProperties INSTANCE;
+ field public static final String PROPERTY_ACTIVITY_EMBEDDING_ALLOW_SYSTEM_OVERRIDE = "android.window.PROPERTY_ACTIVITY_EMBEDDING_ALLOW_SYSTEM_OVERRIDE";
+ field public static final String PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED = "android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED";
+ field public static final String PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED = "android.window.PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED";
+ field public static final String PROPERTY_COMPAT_ALLOW_MIN_ASPECT_RATIO_OVERRIDE = "android.window.PROPERTY_COMPAT_ALLOW_MIN_ASPECT_RATIO_OVERRIDE";
+ field public static final String PROPERTY_COMPAT_ALLOW_RESIZEABLE_ACTIVITY_OVERRIDES = "android.window.PROPERTY_COMPAT_ALLOW_RESIZEABLE_ACTIVITY_OVERRIDES";
+ }
+
+}
+
+package androidx.window.area {
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public final class WindowAreaCapability {
+ method public androidx.window.area.WindowAreaCapability.Operation getOperation();
+ method public androidx.window.area.WindowAreaCapability.Status getStatus();
+ property public final androidx.window.area.WindowAreaCapability.Operation operation;
+ property public final androidx.window.area.WindowAreaCapability.Status status;
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public static final class WindowAreaCapability.Operation {
+ field public static final androidx.window.area.WindowAreaCapability.Operation.Companion Companion;
+ field public static final androidx.window.area.WindowAreaCapability.Operation OPERATION_PRESENT_ON_AREA;
+ field public static final androidx.window.area.WindowAreaCapability.Operation OPERATION_TRANSFER_ACTIVITY_TO_AREA;
+ }
+
+ public static final class WindowAreaCapability.Operation.Companion {
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public static final class WindowAreaCapability.Status {
+ field public static final androidx.window.area.WindowAreaCapability.Status.Companion Companion;
+ field public static final androidx.window.area.WindowAreaCapability.Status WINDOW_AREA_STATUS_ACTIVE;
+ field public static final androidx.window.area.WindowAreaCapability.Status WINDOW_AREA_STATUS_AVAILABLE;
+ field public static final androidx.window.area.WindowAreaCapability.Status WINDOW_AREA_STATUS_UNAVAILABLE;
+ field public static final androidx.window.area.WindowAreaCapability.Status WINDOW_AREA_STATUS_UNSUPPORTED;
+ }
+
+ public static final class WindowAreaCapability.Status.Companion {
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public interface WindowAreaController {
+ method public static androidx.window.area.WindowAreaController getOrCreate();
+ method public kotlinx.coroutines.flow.Flow<java.util.List<androidx.window.area.WindowAreaInfo>> getWindowAreaInfos();
+ method public void presentContentOnWindowArea(android.os.Binder token, android.app.Activity activity, java.util.concurrent.Executor executor, androidx.window.area.WindowAreaPresentationSessionCallback windowAreaPresentationSessionCallback);
+ method public void transferActivityToWindowArea(android.os.Binder token, android.app.Activity activity, java.util.concurrent.Executor executor, androidx.window.area.WindowAreaSessionCallback windowAreaSessionCallback);
+ property public abstract kotlinx.coroutines.flow.Flow<java.util.List<androidx.window.area.WindowAreaInfo>> windowAreaInfos;
+ field public static final androidx.window.area.WindowAreaController.Companion Companion;
+ }
+
+ public static final class WindowAreaController.Companion {
+ method public androidx.window.area.WindowAreaController getOrCreate();
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public final class WindowAreaInfo {
+ method public androidx.window.area.WindowAreaSession? getActiveSession(androidx.window.area.WindowAreaCapability.Operation operation);
+ method public androidx.window.area.WindowAreaCapability? getCapability(androidx.window.area.WindowAreaCapability.Operation operation);
+ method public androidx.window.layout.WindowMetrics getMetrics();
+ method public android.os.Binder getToken();
+ method public androidx.window.area.WindowAreaInfo.Type getType();
+ method public void setMetrics(androidx.window.layout.WindowMetrics);
+ property public final androidx.window.layout.WindowMetrics metrics;
+ property public final android.os.Binder token;
+ property public final androidx.window.area.WindowAreaInfo.Type type;
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public static final class WindowAreaInfo.Type {
+ field public static final androidx.window.area.WindowAreaInfo.Type.Companion Companion;
+ field public static final androidx.window.area.WindowAreaInfo.Type TYPE_REAR_FACING;
+ }
+
+ public static final class WindowAreaInfo.Type.Companion {
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public interface WindowAreaPresentationSessionCallback {
+ method public void onContainerVisibilityChanged(boolean isVisible);
+ method public void onSessionEnded(Throwable? t);
+ method public void onSessionStarted(androidx.window.area.WindowAreaSessionPresenter session);
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public interface WindowAreaSession {
+ method public void close();
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public interface WindowAreaSessionCallback {
+ method public void onSessionEnded(Throwable? t);
+ method public void onSessionStarted(androidx.window.area.WindowAreaSession session);
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public interface WindowAreaSessionPresenter extends androidx.window.area.WindowAreaSession {
+ method public android.content.Context getContext();
+ method public void setContentView(android.view.View view);
+ property public abstract android.content.Context context;
+ }
+
+}
+
+package androidx.window.core {
+
+ @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalWindowApi {
+ }
+
+}
+
+package androidx.window.embedding {
+
+ public final class ActivityEmbeddingController {
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public void finishActivityStacks(java.util.Set<androidx.window.embedding.ActivityStack> activityStacks);
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public androidx.window.embedding.ActivityStack? getActivityStack(android.app.Activity activity);
+ method public static androidx.window.embedding.ActivityEmbeddingController getInstance(android.content.Context context);
+ method public boolean isActivityEmbedded(android.app.Activity activity);
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public boolean isFinishingActivityStacksSupported();
+ field public static final androidx.window.embedding.ActivityEmbeddingController.Companion Companion;
+ }
+
+ public static final class ActivityEmbeddingController.Companion {
+ method public androidx.window.embedding.ActivityEmbeddingController getInstance(android.content.Context context);
+ }
+
+ public final class ActivityEmbeddingOptions {
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public static boolean isSetLaunchingActivityStackSupported(android.app.ActivityOptions);
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public static android.app.ActivityOptions setLaunchingActivityStack(android.app.ActivityOptions, android.app.Activity activity);
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public static android.app.ActivityOptions setLaunchingActivityStack(android.app.ActivityOptions, android.content.Context context, androidx.window.embedding.ActivityStack activityStack);
+ }
+
+ public final class ActivityFilter {
+ ctor public ActivityFilter(android.content.ComponentName componentName, String? intentAction);
+ method public android.content.ComponentName getComponentName();
+ method public String? getIntentAction();
+ method public boolean matchesActivity(android.app.Activity activity);
+ method public boolean matchesIntent(android.content.Intent intent);
+ property public final android.content.ComponentName componentName;
+ property public final String? intentAction;
+ }
+
+ public final class ActivityRule extends androidx.window.embedding.EmbeddingRule {
+ method public boolean getAlwaysExpand();
+ method public java.util.Set<androidx.window.embedding.ActivityFilter> getFilters();
+ property public final boolean alwaysExpand;
+ property public final java.util.Set<androidx.window.embedding.ActivityFilter> filters;
+ }
+
+ public static final class ActivityRule.Builder {
+ ctor public ActivityRule.Builder(java.util.Set<androidx.window.embedding.ActivityFilter> filters);
+ method public androidx.window.embedding.ActivityRule build();
+ method public androidx.window.embedding.ActivityRule.Builder setAlwaysExpand(boolean alwaysExpand);
+ method public androidx.window.embedding.ActivityRule.Builder setTag(String? tag);
+ }
+
+ public final class ActivityStack {
+ method public operator boolean contains(android.app.Activity activity);
+ method public boolean isEmpty();
+ property public final boolean isEmpty;
+ }
+
+ public final class EmbeddingAspectRatio {
+ method public static androidx.window.embedding.EmbeddingAspectRatio ratio(@FloatRange(from=1.0, fromInclusive=false) float ratio);
+ field public static final androidx.window.embedding.EmbeddingAspectRatio ALWAYS_ALLOW;
+ field public static final androidx.window.embedding.EmbeddingAspectRatio ALWAYS_DISALLOW;
+ field public static final androidx.window.embedding.EmbeddingAspectRatio.Companion Companion;
+ }
+
+ public static final class EmbeddingAspectRatio.Companion {
+ method public androidx.window.embedding.EmbeddingAspectRatio ratio(@FloatRange(from=1.0, fromInclusive=false) float ratio);
+ }
+
+ public abstract class EmbeddingRule {
+ method public final String? getTag();
+ property public final String? tag;
+ }
+
+ public final class RuleController {
+ method public void addRule(androidx.window.embedding.EmbeddingRule rule);
+ method public void clearRules();
+ method public static androidx.window.embedding.RuleController getInstance(android.content.Context context);
+ method public java.util.Set<androidx.window.embedding.EmbeddingRule> getRules();
+ method public static java.util.Set<androidx.window.embedding.EmbeddingRule> parseRules(android.content.Context context, @XmlRes int staticRuleResourceId);
+ method public void removeRule(androidx.window.embedding.EmbeddingRule rule);
+ method public void setRules(java.util.Set<? extends androidx.window.embedding.EmbeddingRule> rules);
+ field public static final androidx.window.embedding.RuleController.Companion Companion;
+ }
+
+ public static final class RuleController.Companion {
+ method public androidx.window.embedding.RuleController getInstance(android.content.Context context);
+ method public java.util.Set<androidx.window.embedding.EmbeddingRule> parseRules(android.content.Context context, @XmlRes int staticRuleResourceId);
+ }
+
+ public final class SplitAttributes {
+ method public androidx.window.embedding.SplitAttributes.LayoutDirection getLayoutDirection();
+ method public androidx.window.embedding.SplitAttributes.SplitType getSplitType();
+ property public final androidx.window.embedding.SplitAttributes.LayoutDirection layoutDirection;
+ property public final androidx.window.embedding.SplitAttributes.SplitType splitType;
+ field public static final androidx.window.embedding.SplitAttributes.Companion Companion;
+ }
+
+ public static final class SplitAttributes.Builder {
+ ctor public SplitAttributes.Builder();
+ method public androidx.window.embedding.SplitAttributes build();
+ method public androidx.window.embedding.SplitAttributes.Builder setLayoutDirection(androidx.window.embedding.SplitAttributes.LayoutDirection layoutDirection);
+ method public androidx.window.embedding.SplitAttributes.Builder setSplitType(androidx.window.embedding.SplitAttributes.SplitType type);
+ }
+
+ public static final class SplitAttributes.Companion {
+ }
+
+ public static final class SplitAttributes.LayoutDirection {
+ field public static final androidx.window.embedding.SplitAttributes.LayoutDirection BOTTOM_TO_TOP;
+ field public static final androidx.window.embedding.SplitAttributes.LayoutDirection.Companion Companion;
+ field public static final androidx.window.embedding.SplitAttributes.LayoutDirection LEFT_TO_RIGHT;
+ field public static final androidx.window.embedding.SplitAttributes.LayoutDirection LOCALE;
+ field public static final androidx.window.embedding.SplitAttributes.LayoutDirection RIGHT_TO_LEFT;
+ field public static final androidx.window.embedding.SplitAttributes.LayoutDirection TOP_TO_BOTTOM;
+ }
+
+ public static final class SplitAttributes.LayoutDirection.Companion {
+ }
+
+ public static final class SplitAttributes.SplitType {
+ method public static androidx.window.embedding.SplitAttributes.SplitType ratio(@FloatRange(from=0.0, to=1.0, fromInclusive=false, toInclusive=false) float ratio);
+ field public static final androidx.window.embedding.SplitAttributes.SplitType.Companion Companion;
+ field public static final androidx.window.embedding.SplitAttributes.SplitType SPLIT_TYPE_EQUAL;
+ field public static final androidx.window.embedding.SplitAttributes.SplitType SPLIT_TYPE_EXPAND;
+ field public static final androidx.window.embedding.SplitAttributes.SplitType SPLIT_TYPE_HINGE;
+ }
+
+ public static final class SplitAttributes.SplitType.Companion {
+ method public androidx.window.embedding.SplitAttributes.SplitType ratio(@FloatRange(from=0.0, to=1.0, fromInclusive=false, toInclusive=false) float ratio);
+ }
+
+ public final class SplitAttributesCalculatorParams {
+ method public boolean getAreDefaultConstraintsSatisfied();
+ method public androidx.window.embedding.SplitAttributes getDefaultSplitAttributes();
+ method public android.content.res.Configuration getParentConfiguration();
+ method public androidx.window.layout.WindowLayoutInfo getParentWindowLayoutInfo();
+ method public androidx.window.layout.WindowMetrics getParentWindowMetrics();
+ method public String? getSplitRuleTag();
+ property public final boolean areDefaultConstraintsSatisfied;
+ property public final androidx.window.embedding.SplitAttributes defaultSplitAttributes;
+ property public final android.content.res.Configuration parentConfiguration;
+ property public final androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo;
+ property public final androidx.window.layout.WindowMetrics parentWindowMetrics;
+ property public final String? splitRuleTag;
+ }
+
+ public final class SplitController {
+ method public void clearSplitAttributesCalculator();
+ method public static androidx.window.embedding.SplitController getInstance(android.content.Context context);
+ method public androidx.window.embedding.SplitController.SplitSupportStatus getSplitSupportStatus();
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public void invalidateTopVisibleSplitAttributes();
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public boolean isInvalidatingTopVisibleSplitAttributesSupported();
+ method public boolean isSplitAttributesCalculatorSupported();
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public boolean isUpdatingSplitAttributesSupported();
+ method public void setSplitAttributesCalculator(kotlin.jvm.functions.Function1<? super androidx.window.embedding.SplitAttributesCalculatorParams,androidx.window.embedding.SplitAttributes> calculator);
+ method public kotlinx.coroutines.flow.Flow<java.util.List<androidx.window.embedding.SplitInfo>> splitInfoList(android.app.Activity activity);
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public void updateSplitAttributes(androidx.window.embedding.SplitInfo splitInfo, androidx.window.embedding.SplitAttributes splitAttributes);
+ property public final androidx.window.embedding.SplitController.SplitSupportStatus splitSupportStatus;
+ field public static final androidx.window.embedding.SplitController.Companion Companion;
+ }
+
+ public static final class SplitController.Companion {
+ method public androidx.window.embedding.SplitController getInstance(android.content.Context context);
+ }
+
+ public static final class SplitController.SplitSupportStatus {
+ field public static final androidx.window.embedding.SplitController.SplitSupportStatus.Companion Companion;
+ field public static final androidx.window.embedding.SplitController.SplitSupportStatus SPLIT_AVAILABLE;
+ field public static final androidx.window.embedding.SplitController.SplitSupportStatus SPLIT_ERROR_PROPERTY_NOT_DECLARED;
+ field public static final androidx.window.embedding.SplitController.SplitSupportStatus SPLIT_UNAVAILABLE;
+ }
+
+ public static final class SplitController.SplitSupportStatus.Companion {
+ }
+
+ public final class SplitInfo {
+ method public operator boolean contains(android.app.Activity activity);
+ method public androidx.window.embedding.ActivityStack getPrimaryActivityStack();
+ method public androidx.window.embedding.ActivityStack getSecondaryActivityStack();
+ method public androidx.window.embedding.SplitAttributes getSplitAttributes();
+ property public final androidx.window.embedding.ActivityStack primaryActivityStack;
+ property public final androidx.window.embedding.ActivityStack secondaryActivityStack;
+ property public final androidx.window.embedding.SplitAttributes splitAttributes;
+ }
+
+ public final class SplitPairFilter {
+ ctor public SplitPairFilter(android.content.ComponentName primaryActivityName, android.content.ComponentName secondaryActivityName, String? secondaryActivityIntentAction);
+ method public android.content.ComponentName getPrimaryActivityName();
+ method public String? getSecondaryActivityIntentAction();
+ method public android.content.ComponentName getSecondaryActivityName();
+ method public boolean matchesActivityIntentPair(android.app.Activity primaryActivity, android.content.Intent secondaryActivityIntent);
+ method public boolean matchesActivityPair(android.app.Activity primaryActivity, android.app.Activity secondaryActivity);
+ property public final android.content.ComponentName primaryActivityName;
+ property public final String? secondaryActivityIntentAction;
+ property public final android.content.ComponentName secondaryActivityName;
+ }
+
+ public final class SplitPairRule extends androidx.window.embedding.SplitRule {
+ method public boolean getClearTop();
+ method public java.util.Set<androidx.window.embedding.SplitPairFilter> getFilters();
+ method public androidx.window.embedding.SplitRule.FinishBehavior getFinishPrimaryWithSecondary();
+ method public androidx.window.embedding.SplitRule.FinishBehavior getFinishSecondaryWithPrimary();
+ property public final boolean clearTop;
+ property public final java.util.Set<androidx.window.embedding.SplitPairFilter> filters;
+ property public final androidx.window.embedding.SplitRule.FinishBehavior finishPrimaryWithSecondary;
+ property public final androidx.window.embedding.SplitRule.FinishBehavior finishSecondaryWithPrimary;
+ }
+
+ public static final class SplitPairRule.Builder {
+ ctor public SplitPairRule.Builder(java.util.Set<androidx.window.embedding.SplitPairFilter> filters);
+ method public androidx.window.embedding.SplitPairRule build();
+ method public androidx.window.embedding.SplitPairRule.Builder setClearTop(boolean clearTop);
+ method public androidx.window.embedding.SplitPairRule.Builder setDefaultSplitAttributes(androidx.window.embedding.SplitAttributes defaultSplitAttributes);
+ method public androidx.window.embedding.SplitPairRule.Builder setFinishPrimaryWithSecondary(androidx.window.embedding.SplitRule.FinishBehavior finishPrimaryWithSecondary);
+ method public androidx.window.embedding.SplitPairRule.Builder setFinishSecondaryWithPrimary(androidx.window.embedding.SplitRule.FinishBehavior finishSecondaryWithPrimary);
+ method public androidx.window.embedding.SplitPairRule.Builder setMaxAspectRatioInLandscape(androidx.window.embedding.EmbeddingAspectRatio aspectRatio);
+ method public androidx.window.embedding.SplitPairRule.Builder setMaxAspectRatioInPortrait(androidx.window.embedding.EmbeddingAspectRatio aspectRatio);
+ method public androidx.window.embedding.SplitPairRule.Builder setMinHeightDp(@IntRange(from=0L) int minHeightDp);
+ method public androidx.window.embedding.SplitPairRule.Builder setMinSmallestWidthDp(@IntRange(from=0L) int minSmallestWidthDp);
+ method public androidx.window.embedding.SplitPairRule.Builder setMinWidthDp(@IntRange(from=0L) int minWidthDp);
+ method public androidx.window.embedding.SplitPairRule.Builder setTag(String? tag);
+ }
+
+ public final class SplitPlaceholderRule extends androidx.window.embedding.SplitRule {
+ method public java.util.Set<androidx.window.embedding.ActivityFilter> getFilters();
+ method public androidx.window.embedding.SplitRule.FinishBehavior getFinishPrimaryWithPlaceholder();
+ method public android.content.Intent getPlaceholderIntent();
+ method public boolean isSticky();
+ property public final java.util.Set<androidx.window.embedding.ActivityFilter> filters;
+ property public final androidx.window.embedding.SplitRule.FinishBehavior finishPrimaryWithPlaceholder;
+ property public final boolean isSticky;
+ property public final android.content.Intent placeholderIntent;
+ }
+
+ public static final class SplitPlaceholderRule.Builder {
+ ctor public SplitPlaceholderRule.Builder(java.util.Set<androidx.window.embedding.ActivityFilter> filters, android.content.Intent placeholderIntent);
+ method public androidx.window.embedding.SplitPlaceholderRule build();
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setDefaultSplitAttributes(androidx.window.embedding.SplitAttributes defaultSplitAttributes);
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setFinishPrimaryWithPlaceholder(androidx.window.embedding.SplitRule.FinishBehavior finishPrimaryWithPlaceholder);
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setMaxAspectRatioInLandscape(androidx.window.embedding.EmbeddingAspectRatio aspectRatio);
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setMaxAspectRatioInPortrait(androidx.window.embedding.EmbeddingAspectRatio aspectRatio);
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setMinHeightDp(@IntRange(from=0L) int minHeightDp);
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setMinSmallestWidthDp(@IntRange(from=0L) int minSmallestWidthDp);
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setMinWidthDp(@IntRange(from=0L) int minWidthDp);
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setSticky(boolean isSticky);
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setTag(String? tag);
+ }
+
+ public class SplitRule extends androidx.window.embedding.EmbeddingRule {
+ method public final androidx.window.embedding.SplitAttributes getDefaultSplitAttributes();
+ method public final androidx.window.embedding.EmbeddingAspectRatio getMaxAspectRatioInLandscape();
+ method public final androidx.window.embedding.EmbeddingAspectRatio getMaxAspectRatioInPortrait();
+ method public final int getMinHeightDp();
+ method public final int getMinSmallestWidthDp();
+ method public final int getMinWidthDp();
+ property public final androidx.window.embedding.SplitAttributes defaultSplitAttributes;
+ property public final androidx.window.embedding.EmbeddingAspectRatio maxAspectRatioInLandscape;
+ property public final androidx.window.embedding.EmbeddingAspectRatio maxAspectRatioInPortrait;
+ property public final int minHeightDp;
+ property public final int minSmallestWidthDp;
+ property public final int minWidthDp;
+ field public static final androidx.window.embedding.SplitRule.Companion Companion;
+ field public static final androidx.window.embedding.EmbeddingAspectRatio SPLIT_MAX_ASPECT_RATIO_LANDSCAPE_DEFAULT;
+ field public static final androidx.window.embedding.EmbeddingAspectRatio SPLIT_MAX_ASPECT_RATIO_PORTRAIT_DEFAULT;
+ field public static final int SPLIT_MIN_DIMENSION_ALWAYS_ALLOW = 0; // 0x0
+ field public static final int SPLIT_MIN_DIMENSION_DP_DEFAULT = 600; // 0x258
+ }
+
+ public static final class SplitRule.Companion {
+ }
+
+ public static final class SplitRule.FinishBehavior {
+ field public static final androidx.window.embedding.SplitRule.FinishBehavior ADJACENT;
+ field public static final androidx.window.embedding.SplitRule.FinishBehavior ALWAYS;
+ field public static final androidx.window.embedding.SplitRule.FinishBehavior.Companion Companion;
+ field public static final androidx.window.embedding.SplitRule.FinishBehavior NEVER;
+ }
+
+ public static final class SplitRule.FinishBehavior.Companion {
+ }
+
+}
+
+package androidx.window.layout {
+
+ public interface DisplayFeature {
+ method public android.graphics.Rect getBounds();
+ property public abstract android.graphics.Rect bounds;
+ }
+
+ public interface FoldingFeature extends androidx.window.layout.DisplayFeature {
+ method public androidx.window.layout.FoldingFeature.OcclusionType getOcclusionType();
+ method public androidx.window.layout.FoldingFeature.Orientation getOrientation();
+ method public androidx.window.layout.FoldingFeature.State getState();
+ method public boolean isSeparating();
+ property public abstract boolean isSeparating;
+ property public abstract androidx.window.layout.FoldingFeature.OcclusionType occlusionType;
+ property public abstract androidx.window.layout.FoldingFeature.Orientation orientation;
+ property public abstract androidx.window.layout.FoldingFeature.State state;
+ }
+
+ public static final class FoldingFeature.OcclusionType {
+ field public static final androidx.window.layout.FoldingFeature.OcclusionType.Companion Companion;
+ field public static final androidx.window.layout.FoldingFeature.OcclusionType FULL;
+ field public static final androidx.window.layout.FoldingFeature.OcclusionType NONE;
+ }
+
+ public static final class FoldingFeature.OcclusionType.Companion {
+ }
+
+ public static final class FoldingFeature.Orientation {
+ field public static final androidx.window.layout.FoldingFeature.Orientation.Companion Companion;
+ field public static final androidx.window.layout.FoldingFeature.Orientation HORIZONTAL;
+ field public static final androidx.window.layout.FoldingFeature.Orientation VERTICAL;
+ }
+
+ public static final class FoldingFeature.Orientation.Companion {
+ }
+
+ public static final class FoldingFeature.State {
+ field public static final androidx.window.layout.FoldingFeature.State.Companion Companion;
+ field public static final androidx.window.layout.FoldingFeature.State FLAT;
+ field public static final androidx.window.layout.FoldingFeature.State HALF_OPENED;
+ }
+
+ public static final class FoldingFeature.State.Companion {
+ }
+
+ public interface WindowInfoTracker {
+ method public static androidx.window.layout.WindowInfoTracker getOrCreate(android.content.Context context);
+ method public kotlinx.coroutines.flow.Flow<androidx.window.layout.WindowLayoutInfo> windowLayoutInfo(android.app.Activity activity);
+ method public default kotlinx.coroutines.flow.Flow<androidx.window.layout.WindowLayoutInfo> windowLayoutInfo(@UiContext android.content.Context context);
+ field public static final androidx.window.layout.WindowInfoTracker.Companion Companion;
+ }
+
+ public static final class WindowInfoTracker.Companion {
+ method public androidx.window.layout.WindowInfoTracker getOrCreate(android.content.Context context);
+ }
+
+ public final class WindowLayoutInfo {
+ method public java.util.List<androidx.window.layout.DisplayFeature> getDisplayFeatures();
+ property public final java.util.List<androidx.window.layout.DisplayFeature> displayFeatures;
+ }
+
+ public final class WindowMetrics {
+ method public android.graphics.Rect getBounds();
+ method @SuppressCompatibility @RequiresApi(android.os.Build.VERSION_CODES.R) @androidx.window.core.ExperimentalWindowApi public androidx.core.view.WindowInsetsCompat getWindowInsets();
+ property public final android.graphics.Rect bounds;
+ }
+
+ public interface WindowMetricsCalculator {
+ method public androidx.window.layout.WindowMetrics computeCurrentWindowMetrics(android.app.Activity activity);
+ method public default androidx.window.layout.WindowMetrics computeCurrentWindowMetrics(@UiContext android.content.Context context);
+ method public androidx.window.layout.WindowMetrics computeMaximumWindowMetrics(android.app.Activity activity);
+ method public default androidx.window.layout.WindowMetrics computeMaximumWindowMetrics(@UiContext android.content.Context context);
+ method public static androidx.window.layout.WindowMetricsCalculator getOrCreate();
+ field public static final androidx.window.layout.WindowMetricsCalculator.Companion Companion;
+ }
+
+ public static final class WindowMetricsCalculator.Companion {
+ method public androidx.window.layout.WindowMetricsCalculator getOrCreate();
+ }
+
+}
+
diff --git a/window/window/api/res-1.2.0-beta02.txt b/window/window/api/res-1.2.0-beta02.txt
new file mode 100644
index 0000000..185352b
--- /dev/null
+++ b/window/window/api/res-1.2.0-beta02.txt
@@ -0,0 +1,21 @@
+attr activityAction
+attr activityName
+attr alwaysExpand
+attr animationBackgroundColor
+attr clearTop
+attr finishPrimaryWithPlaceholder
+attr finishPrimaryWithSecondary
+attr finishSecondaryWithPrimary
+attr placeholderActivityName
+attr primaryActivityName
+attr secondaryActivityAction
+attr secondaryActivityName
+attr splitLayoutDirection
+attr splitMaxAspectRatioInLandscape
+attr splitMaxAspectRatioInPortrait
+attr splitMinHeightDp
+attr splitMinSmallestWidthDp
+attr splitMinWidthDp
+attr splitRatio
+attr stickyPlaceholder
+attr tag
diff --git a/window/window/api/restricted_1.2.0-beta02.txt b/window/window/api/restricted_1.2.0-beta02.txt
new file mode 100644
index 0000000..7c79bde
--- /dev/null
+++ b/window/window/api/restricted_1.2.0-beta02.txt
@@ -0,0 +1,465 @@
+// Signature format: 4.0
+package androidx.window {
+
+ public final class WindowProperties {
+ field public static final androidx.window.WindowProperties INSTANCE;
+ field public static final String PROPERTY_ACTIVITY_EMBEDDING_ALLOW_SYSTEM_OVERRIDE = "android.window.PROPERTY_ACTIVITY_EMBEDDING_ALLOW_SYSTEM_OVERRIDE";
+ field public static final String PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED = "android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED";
+ field public static final String PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED = "android.window.PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED";
+ field public static final String PROPERTY_COMPAT_ALLOW_MIN_ASPECT_RATIO_OVERRIDE = "android.window.PROPERTY_COMPAT_ALLOW_MIN_ASPECT_RATIO_OVERRIDE";
+ field public static final String PROPERTY_COMPAT_ALLOW_RESIZEABLE_ACTIVITY_OVERRIDES = "android.window.PROPERTY_COMPAT_ALLOW_RESIZEABLE_ACTIVITY_OVERRIDES";
+ }
+
+}
+
+package androidx.window.area {
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public final class WindowAreaCapability {
+ method public androidx.window.area.WindowAreaCapability.Operation getOperation();
+ method public androidx.window.area.WindowAreaCapability.Status getStatus();
+ property public final androidx.window.area.WindowAreaCapability.Operation operation;
+ property public final androidx.window.area.WindowAreaCapability.Status status;
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public static final class WindowAreaCapability.Operation {
+ field public static final androidx.window.area.WindowAreaCapability.Operation.Companion Companion;
+ field public static final androidx.window.area.WindowAreaCapability.Operation OPERATION_PRESENT_ON_AREA;
+ field public static final androidx.window.area.WindowAreaCapability.Operation OPERATION_TRANSFER_ACTIVITY_TO_AREA;
+ }
+
+ public static final class WindowAreaCapability.Operation.Companion {
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public static final class WindowAreaCapability.Status {
+ field public static final androidx.window.area.WindowAreaCapability.Status.Companion Companion;
+ field public static final androidx.window.area.WindowAreaCapability.Status WINDOW_AREA_STATUS_ACTIVE;
+ field public static final androidx.window.area.WindowAreaCapability.Status WINDOW_AREA_STATUS_AVAILABLE;
+ field public static final androidx.window.area.WindowAreaCapability.Status WINDOW_AREA_STATUS_UNAVAILABLE;
+ field public static final androidx.window.area.WindowAreaCapability.Status WINDOW_AREA_STATUS_UNSUPPORTED;
+ }
+
+ public static final class WindowAreaCapability.Status.Companion {
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public interface WindowAreaController {
+ method public static androidx.window.area.WindowAreaController getOrCreate();
+ method public kotlinx.coroutines.flow.Flow<java.util.List<androidx.window.area.WindowAreaInfo>> getWindowAreaInfos();
+ method public void presentContentOnWindowArea(android.os.Binder token, android.app.Activity activity, java.util.concurrent.Executor executor, androidx.window.area.WindowAreaPresentationSessionCallback windowAreaPresentationSessionCallback);
+ method public void transferActivityToWindowArea(android.os.Binder token, android.app.Activity activity, java.util.concurrent.Executor executor, androidx.window.area.WindowAreaSessionCallback windowAreaSessionCallback);
+ property public abstract kotlinx.coroutines.flow.Flow<java.util.List<androidx.window.area.WindowAreaInfo>> windowAreaInfos;
+ field public static final androidx.window.area.WindowAreaController.Companion Companion;
+ }
+
+ public static final class WindowAreaController.Companion {
+ method public androidx.window.area.WindowAreaController getOrCreate();
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public final class WindowAreaInfo {
+ method public androidx.window.area.WindowAreaSession? getActiveSession(androidx.window.area.WindowAreaCapability.Operation operation);
+ method public androidx.window.area.WindowAreaCapability? getCapability(androidx.window.area.WindowAreaCapability.Operation operation);
+ method public androidx.window.layout.WindowMetrics getMetrics();
+ method public android.os.Binder getToken();
+ method public androidx.window.area.WindowAreaInfo.Type getType();
+ method public void setMetrics(androidx.window.layout.WindowMetrics);
+ property public final androidx.window.layout.WindowMetrics metrics;
+ property public final android.os.Binder token;
+ property public final androidx.window.area.WindowAreaInfo.Type type;
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public static final class WindowAreaInfo.Type {
+ field public static final androidx.window.area.WindowAreaInfo.Type.Companion Companion;
+ field public static final androidx.window.area.WindowAreaInfo.Type TYPE_REAR_FACING;
+ }
+
+ public static final class WindowAreaInfo.Type.Companion {
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public interface WindowAreaPresentationSessionCallback {
+ method public void onContainerVisibilityChanged(boolean isVisible);
+ method public void onSessionEnded(Throwable? t);
+ method public void onSessionStarted(androidx.window.area.WindowAreaSessionPresenter session);
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public interface WindowAreaSession {
+ method public void close();
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public interface WindowAreaSessionCallback {
+ method public void onSessionEnded(Throwable? t);
+ method public void onSessionStarted(androidx.window.area.WindowAreaSession session);
+ }
+
+ @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public interface WindowAreaSessionPresenter extends androidx.window.area.WindowAreaSession {
+ method public android.content.Context getContext();
+ method public void setContentView(android.view.View view);
+ property public abstract android.content.Context context;
+ }
+
+}
+
+package androidx.window.core {
+
+ @SuppressCompatibility @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalWindowApi {
+ }
+
+}
+
+package androidx.window.embedding {
+
+ public final class ActivityEmbeddingController {
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public void finishActivityStacks(java.util.Set<androidx.window.embedding.ActivityStack> activityStacks);
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public androidx.window.embedding.ActivityStack? getActivityStack(android.app.Activity activity);
+ method public static androidx.window.embedding.ActivityEmbeddingController getInstance(android.content.Context context);
+ method public boolean isActivityEmbedded(android.app.Activity activity);
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public boolean isFinishingActivityStacksSupported();
+ field public static final androidx.window.embedding.ActivityEmbeddingController.Companion Companion;
+ }
+
+ public static final class ActivityEmbeddingController.Companion {
+ method public androidx.window.embedding.ActivityEmbeddingController getInstance(android.content.Context context);
+ }
+
+ public final class ActivityEmbeddingOptions {
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public static boolean isSetLaunchingActivityStackSupported(android.app.ActivityOptions);
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public static android.app.ActivityOptions setLaunchingActivityStack(android.app.ActivityOptions, android.app.Activity activity);
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public static android.app.ActivityOptions setLaunchingActivityStack(android.app.ActivityOptions, android.content.Context context, androidx.window.embedding.ActivityStack activityStack);
+ }
+
+ public final class ActivityFilter {
+ ctor public ActivityFilter(android.content.ComponentName componentName, String? intentAction);
+ method public android.content.ComponentName getComponentName();
+ method public String? getIntentAction();
+ method public boolean matchesActivity(android.app.Activity activity);
+ method public boolean matchesIntent(android.content.Intent intent);
+ property public final android.content.ComponentName componentName;
+ property public final String? intentAction;
+ }
+
+ public final class ActivityRule extends androidx.window.embedding.EmbeddingRule {
+ method public boolean getAlwaysExpand();
+ method public java.util.Set<androidx.window.embedding.ActivityFilter> getFilters();
+ property public final boolean alwaysExpand;
+ property public final java.util.Set<androidx.window.embedding.ActivityFilter> filters;
+ }
+
+ public static final class ActivityRule.Builder {
+ ctor public ActivityRule.Builder(java.util.Set<androidx.window.embedding.ActivityFilter> filters);
+ method public androidx.window.embedding.ActivityRule build();
+ method public androidx.window.embedding.ActivityRule.Builder setAlwaysExpand(boolean alwaysExpand);
+ method public androidx.window.embedding.ActivityRule.Builder setTag(String? tag);
+ }
+
+ public final class ActivityStack {
+ method public operator boolean contains(android.app.Activity activity);
+ method public boolean isEmpty();
+ property public final boolean isEmpty;
+ }
+
+ public final class EmbeddingAspectRatio {
+ method public static androidx.window.embedding.EmbeddingAspectRatio ratio(@FloatRange(from=1.0, fromInclusive=false) float ratio);
+ field public static final androidx.window.embedding.EmbeddingAspectRatio ALWAYS_ALLOW;
+ field public static final androidx.window.embedding.EmbeddingAspectRatio ALWAYS_DISALLOW;
+ field public static final androidx.window.embedding.EmbeddingAspectRatio.Companion Companion;
+ }
+
+ public static final class EmbeddingAspectRatio.Companion {
+ method public androidx.window.embedding.EmbeddingAspectRatio ratio(@FloatRange(from=1.0, fromInclusive=false) float ratio);
+ }
+
+ public abstract class EmbeddingRule {
+ method public final String? getTag();
+ property public final String? tag;
+ }
+
+ public final class RuleController {
+ method public void addRule(androidx.window.embedding.EmbeddingRule rule);
+ method public void clearRules();
+ method public static androidx.window.embedding.RuleController getInstance(android.content.Context context);
+ method public java.util.Set<androidx.window.embedding.EmbeddingRule> getRules();
+ method public static java.util.Set<androidx.window.embedding.EmbeddingRule> parseRules(android.content.Context context, @XmlRes int staticRuleResourceId);
+ method public void removeRule(androidx.window.embedding.EmbeddingRule rule);
+ method public void setRules(java.util.Set<? extends androidx.window.embedding.EmbeddingRule> rules);
+ field public static final androidx.window.embedding.RuleController.Companion Companion;
+ }
+
+ public static final class RuleController.Companion {
+ method public androidx.window.embedding.RuleController getInstance(android.content.Context context);
+ method public java.util.Set<androidx.window.embedding.EmbeddingRule> parseRules(android.content.Context context, @XmlRes int staticRuleResourceId);
+ }
+
+ public final class SplitAttributes {
+ method public androidx.window.embedding.SplitAttributes.LayoutDirection getLayoutDirection();
+ method public androidx.window.embedding.SplitAttributes.SplitType getSplitType();
+ property public final androidx.window.embedding.SplitAttributes.LayoutDirection layoutDirection;
+ property public final androidx.window.embedding.SplitAttributes.SplitType splitType;
+ field public static final androidx.window.embedding.SplitAttributes.Companion Companion;
+ }
+
+ public static final class SplitAttributes.Builder {
+ ctor public SplitAttributes.Builder();
+ method public androidx.window.embedding.SplitAttributes build();
+ method public androidx.window.embedding.SplitAttributes.Builder setLayoutDirection(androidx.window.embedding.SplitAttributes.LayoutDirection layoutDirection);
+ method public androidx.window.embedding.SplitAttributes.Builder setSplitType(androidx.window.embedding.SplitAttributes.SplitType type);
+ }
+
+ public static final class SplitAttributes.Companion {
+ }
+
+ public static final class SplitAttributes.LayoutDirection {
+ field public static final androidx.window.embedding.SplitAttributes.LayoutDirection BOTTOM_TO_TOP;
+ field public static final androidx.window.embedding.SplitAttributes.LayoutDirection.Companion Companion;
+ field public static final androidx.window.embedding.SplitAttributes.LayoutDirection LEFT_TO_RIGHT;
+ field public static final androidx.window.embedding.SplitAttributes.LayoutDirection LOCALE;
+ field public static final androidx.window.embedding.SplitAttributes.LayoutDirection RIGHT_TO_LEFT;
+ field public static final androidx.window.embedding.SplitAttributes.LayoutDirection TOP_TO_BOTTOM;
+ }
+
+ public static final class SplitAttributes.LayoutDirection.Companion {
+ }
+
+ public static final class SplitAttributes.SplitType {
+ method public static androidx.window.embedding.SplitAttributes.SplitType ratio(@FloatRange(from=0.0, to=1.0, fromInclusive=false, toInclusive=false) float ratio);
+ field public static final androidx.window.embedding.SplitAttributes.SplitType.Companion Companion;
+ field public static final androidx.window.embedding.SplitAttributes.SplitType SPLIT_TYPE_EQUAL;
+ field public static final androidx.window.embedding.SplitAttributes.SplitType SPLIT_TYPE_EXPAND;
+ field public static final androidx.window.embedding.SplitAttributes.SplitType SPLIT_TYPE_HINGE;
+ }
+
+ public static final class SplitAttributes.SplitType.Companion {
+ method public androidx.window.embedding.SplitAttributes.SplitType ratio(@FloatRange(from=0.0, to=1.0, fromInclusive=false, toInclusive=false) float ratio);
+ }
+
+ public final class SplitAttributesCalculatorParams {
+ method public boolean getAreDefaultConstraintsSatisfied();
+ method public androidx.window.embedding.SplitAttributes getDefaultSplitAttributes();
+ method public android.content.res.Configuration getParentConfiguration();
+ method public androidx.window.layout.WindowLayoutInfo getParentWindowLayoutInfo();
+ method public androidx.window.layout.WindowMetrics getParentWindowMetrics();
+ method public String? getSplitRuleTag();
+ property public final boolean areDefaultConstraintsSatisfied;
+ property public final androidx.window.embedding.SplitAttributes defaultSplitAttributes;
+ property public final android.content.res.Configuration parentConfiguration;
+ property public final androidx.window.layout.WindowLayoutInfo parentWindowLayoutInfo;
+ property public final androidx.window.layout.WindowMetrics parentWindowMetrics;
+ property public final String? splitRuleTag;
+ }
+
+ public final class SplitController {
+ method public void clearSplitAttributesCalculator();
+ method public static androidx.window.embedding.SplitController getInstance(android.content.Context context);
+ method public androidx.window.embedding.SplitController.SplitSupportStatus getSplitSupportStatus();
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public void invalidateTopVisibleSplitAttributes();
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public boolean isInvalidatingTopVisibleSplitAttributesSupported();
+ method public boolean isSplitAttributesCalculatorSupported();
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public boolean isUpdatingSplitAttributesSupported();
+ method public void setSplitAttributesCalculator(kotlin.jvm.functions.Function1<? super androidx.window.embedding.SplitAttributesCalculatorParams,androidx.window.embedding.SplitAttributes> calculator);
+ method public kotlinx.coroutines.flow.Flow<java.util.List<androidx.window.embedding.SplitInfo>> splitInfoList(android.app.Activity activity);
+ method @SuppressCompatibility @androidx.window.core.ExperimentalWindowApi public void updateSplitAttributes(androidx.window.embedding.SplitInfo splitInfo, androidx.window.embedding.SplitAttributes splitAttributes);
+ property public final androidx.window.embedding.SplitController.SplitSupportStatus splitSupportStatus;
+ field public static final androidx.window.embedding.SplitController.Companion Companion;
+ }
+
+ public static final class SplitController.Companion {
+ method public androidx.window.embedding.SplitController getInstance(android.content.Context context);
+ }
+
+ public static final class SplitController.SplitSupportStatus {
+ field public static final androidx.window.embedding.SplitController.SplitSupportStatus.Companion Companion;
+ field public static final androidx.window.embedding.SplitController.SplitSupportStatus SPLIT_AVAILABLE;
+ field public static final androidx.window.embedding.SplitController.SplitSupportStatus SPLIT_ERROR_PROPERTY_NOT_DECLARED;
+ field public static final androidx.window.embedding.SplitController.SplitSupportStatus SPLIT_UNAVAILABLE;
+ }
+
+ public static final class SplitController.SplitSupportStatus.Companion {
+ }
+
+ public final class SplitInfo {
+ method public operator boolean contains(android.app.Activity activity);
+ method public androidx.window.embedding.ActivityStack getPrimaryActivityStack();
+ method public androidx.window.embedding.ActivityStack getSecondaryActivityStack();
+ method public androidx.window.embedding.SplitAttributes getSplitAttributes();
+ property public final androidx.window.embedding.ActivityStack primaryActivityStack;
+ property public final androidx.window.embedding.ActivityStack secondaryActivityStack;
+ property public final androidx.window.embedding.SplitAttributes splitAttributes;
+ }
+
+ public final class SplitPairFilter {
+ ctor public SplitPairFilter(android.content.ComponentName primaryActivityName, android.content.ComponentName secondaryActivityName, String? secondaryActivityIntentAction);
+ method public android.content.ComponentName getPrimaryActivityName();
+ method public String? getSecondaryActivityIntentAction();
+ method public android.content.ComponentName getSecondaryActivityName();
+ method public boolean matchesActivityIntentPair(android.app.Activity primaryActivity, android.content.Intent secondaryActivityIntent);
+ method public boolean matchesActivityPair(android.app.Activity primaryActivity, android.app.Activity secondaryActivity);
+ property public final android.content.ComponentName primaryActivityName;
+ property public final String? secondaryActivityIntentAction;
+ property public final android.content.ComponentName secondaryActivityName;
+ }
+
+ public final class SplitPairRule extends androidx.window.embedding.SplitRule {
+ method public boolean getClearTop();
+ method public java.util.Set<androidx.window.embedding.SplitPairFilter> getFilters();
+ method public androidx.window.embedding.SplitRule.FinishBehavior getFinishPrimaryWithSecondary();
+ method public androidx.window.embedding.SplitRule.FinishBehavior getFinishSecondaryWithPrimary();
+ property public final boolean clearTop;
+ property public final java.util.Set<androidx.window.embedding.SplitPairFilter> filters;
+ property public final androidx.window.embedding.SplitRule.FinishBehavior finishPrimaryWithSecondary;
+ property public final androidx.window.embedding.SplitRule.FinishBehavior finishSecondaryWithPrimary;
+ }
+
+ public static final class SplitPairRule.Builder {
+ ctor public SplitPairRule.Builder(java.util.Set<androidx.window.embedding.SplitPairFilter> filters);
+ method public androidx.window.embedding.SplitPairRule build();
+ method public androidx.window.embedding.SplitPairRule.Builder setClearTop(boolean clearTop);
+ method public androidx.window.embedding.SplitPairRule.Builder setDefaultSplitAttributes(androidx.window.embedding.SplitAttributes defaultSplitAttributes);
+ method public androidx.window.embedding.SplitPairRule.Builder setFinishPrimaryWithSecondary(androidx.window.embedding.SplitRule.FinishBehavior finishPrimaryWithSecondary);
+ method public androidx.window.embedding.SplitPairRule.Builder setFinishSecondaryWithPrimary(androidx.window.embedding.SplitRule.FinishBehavior finishSecondaryWithPrimary);
+ method public androidx.window.embedding.SplitPairRule.Builder setMaxAspectRatioInLandscape(androidx.window.embedding.EmbeddingAspectRatio aspectRatio);
+ method public androidx.window.embedding.SplitPairRule.Builder setMaxAspectRatioInPortrait(androidx.window.embedding.EmbeddingAspectRatio aspectRatio);
+ method public androidx.window.embedding.SplitPairRule.Builder setMinHeightDp(@IntRange(from=0L) int minHeightDp);
+ method public androidx.window.embedding.SplitPairRule.Builder setMinSmallestWidthDp(@IntRange(from=0L) int minSmallestWidthDp);
+ method public androidx.window.embedding.SplitPairRule.Builder setMinWidthDp(@IntRange(from=0L) int minWidthDp);
+ method public androidx.window.embedding.SplitPairRule.Builder setTag(String? tag);
+ }
+
+ public final class SplitPlaceholderRule extends androidx.window.embedding.SplitRule {
+ method public java.util.Set<androidx.window.embedding.ActivityFilter> getFilters();
+ method public androidx.window.embedding.SplitRule.FinishBehavior getFinishPrimaryWithPlaceholder();
+ method public android.content.Intent getPlaceholderIntent();
+ method public boolean isSticky();
+ property public final java.util.Set<androidx.window.embedding.ActivityFilter> filters;
+ property public final androidx.window.embedding.SplitRule.FinishBehavior finishPrimaryWithPlaceholder;
+ property public final boolean isSticky;
+ property public final android.content.Intent placeholderIntent;
+ }
+
+ public static final class SplitPlaceholderRule.Builder {
+ ctor public SplitPlaceholderRule.Builder(java.util.Set<androidx.window.embedding.ActivityFilter> filters, android.content.Intent placeholderIntent);
+ method public androidx.window.embedding.SplitPlaceholderRule build();
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setDefaultSplitAttributes(androidx.window.embedding.SplitAttributes defaultSplitAttributes);
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setFinishPrimaryWithPlaceholder(androidx.window.embedding.SplitRule.FinishBehavior finishPrimaryWithPlaceholder);
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setMaxAspectRatioInLandscape(androidx.window.embedding.EmbeddingAspectRatio aspectRatio);
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setMaxAspectRatioInPortrait(androidx.window.embedding.EmbeddingAspectRatio aspectRatio);
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setMinHeightDp(@IntRange(from=0L) int minHeightDp);
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setMinSmallestWidthDp(@IntRange(from=0L) int minSmallestWidthDp);
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setMinWidthDp(@IntRange(from=0L) int minWidthDp);
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setSticky(boolean isSticky);
+ method public androidx.window.embedding.SplitPlaceholderRule.Builder setTag(String? tag);
+ }
+
+ public class SplitRule extends androidx.window.embedding.EmbeddingRule {
+ method public final androidx.window.embedding.SplitAttributes getDefaultSplitAttributes();
+ method public final androidx.window.embedding.EmbeddingAspectRatio getMaxAspectRatioInLandscape();
+ method public final androidx.window.embedding.EmbeddingAspectRatio getMaxAspectRatioInPortrait();
+ method public final int getMinHeightDp();
+ method public final int getMinSmallestWidthDp();
+ method public final int getMinWidthDp();
+ property public final androidx.window.embedding.SplitAttributes defaultSplitAttributes;
+ property public final androidx.window.embedding.EmbeddingAspectRatio maxAspectRatioInLandscape;
+ property public final androidx.window.embedding.EmbeddingAspectRatio maxAspectRatioInPortrait;
+ property public final int minHeightDp;
+ property public final int minSmallestWidthDp;
+ property public final int minWidthDp;
+ field public static final androidx.window.embedding.SplitRule.Companion Companion;
+ field public static final androidx.window.embedding.EmbeddingAspectRatio SPLIT_MAX_ASPECT_RATIO_LANDSCAPE_DEFAULT;
+ field public static final androidx.window.embedding.EmbeddingAspectRatio SPLIT_MAX_ASPECT_RATIO_PORTRAIT_DEFAULT;
+ field public static final int SPLIT_MIN_DIMENSION_ALWAYS_ALLOW = 0; // 0x0
+ field public static final int SPLIT_MIN_DIMENSION_DP_DEFAULT = 600; // 0x258
+ }
+
+ public static final class SplitRule.Companion {
+ }
+
+ public static final class SplitRule.FinishBehavior {
+ field public static final androidx.window.embedding.SplitRule.FinishBehavior ADJACENT;
+ field public static final androidx.window.embedding.SplitRule.FinishBehavior ALWAYS;
+ field public static final androidx.window.embedding.SplitRule.FinishBehavior.Companion Companion;
+ field public static final androidx.window.embedding.SplitRule.FinishBehavior NEVER;
+ }
+
+ public static final class SplitRule.FinishBehavior.Companion {
+ }
+
+}
+
+package androidx.window.layout {
+
+ public interface DisplayFeature {
+ method public android.graphics.Rect getBounds();
+ property public abstract android.graphics.Rect bounds;
+ }
+
+ public interface FoldingFeature extends androidx.window.layout.DisplayFeature {
+ method public androidx.window.layout.FoldingFeature.OcclusionType getOcclusionType();
+ method public androidx.window.layout.FoldingFeature.Orientation getOrientation();
+ method public androidx.window.layout.FoldingFeature.State getState();
+ method public boolean isSeparating();
+ property public abstract boolean isSeparating;
+ property public abstract androidx.window.layout.FoldingFeature.OcclusionType occlusionType;
+ property public abstract androidx.window.layout.FoldingFeature.Orientation orientation;
+ property public abstract androidx.window.layout.FoldingFeature.State state;
+ }
+
+ public static final class FoldingFeature.OcclusionType {
+ field public static final androidx.window.layout.FoldingFeature.OcclusionType.Companion Companion;
+ field public static final androidx.window.layout.FoldingFeature.OcclusionType FULL;
+ field public static final androidx.window.layout.FoldingFeature.OcclusionType NONE;
+ }
+
+ public static final class FoldingFeature.OcclusionType.Companion {
+ }
+
+ public static final class FoldingFeature.Orientation {
+ field public static final androidx.window.layout.FoldingFeature.Orientation.Companion Companion;
+ field public static final androidx.window.layout.FoldingFeature.Orientation HORIZONTAL;
+ field public static final androidx.window.layout.FoldingFeature.Orientation VERTICAL;
+ }
+
+ public static final class FoldingFeature.Orientation.Companion {
+ }
+
+ public static final class FoldingFeature.State {
+ field public static final androidx.window.layout.FoldingFeature.State.Companion Companion;
+ field public static final androidx.window.layout.FoldingFeature.State FLAT;
+ field public static final androidx.window.layout.FoldingFeature.State HALF_OPENED;
+ }
+
+ public static final class FoldingFeature.State.Companion {
+ }
+
+ public interface WindowInfoTracker {
+ method public static androidx.window.layout.WindowInfoTracker getOrCreate(android.content.Context context);
+ method public kotlinx.coroutines.flow.Flow<androidx.window.layout.WindowLayoutInfo> windowLayoutInfo(android.app.Activity activity);
+ method public default kotlinx.coroutines.flow.Flow<androidx.window.layout.WindowLayoutInfo> windowLayoutInfo(@UiContext android.content.Context context);
+ field public static final androidx.window.layout.WindowInfoTracker.Companion Companion;
+ }
+
+ public static final class WindowInfoTracker.Companion {
+ method public androidx.window.layout.WindowInfoTracker getOrCreate(android.content.Context context);
+ }
+
+ public final class WindowLayoutInfo {
+ method public java.util.List<androidx.window.layout.DisplayFeature> getDisplayFeatures();
+ property public final java.util.List<androidx.window.layout.DisplayFeature> displayFeatures;
+ }
+
+ public final class WindowMetrics {
+ method public android.graphics.Rect getBounds();
+ method @SuppressCompatibility @RequiresApi(android.os.Build.VERSION_CODES.R) @androidx.window.core.ExperimentalWindowApi public androidx.core.view.WindowInsetsCompat getWindowInsets();
+ property public final android.graphics.Rect bounds;
+ }
+
+ public interface WindowMetricsCalculator {
+ method public androidx.window.layout.WindowMetrics computeCurrentWindowMetrics(android.app.Activity activity);
+ method public default androidx.window.layout.WindowMetrics computeCurrentWindowMetrics(@UiContext android.content.Context context);
+ method public androidx.window.layout.WindowMetrics computeMaximumWindowMetrics(android.app.Activity activity);
+ method public default androidx.window.layout.WindowMetrics computeMaximumWindowMetrics(@UiContext android.content.Context context);
+ method public static androidx.window.layout.WindowMetricsCalculator getOrCreate();
+ field public static final androidx.window.layout.WindowMetricsCalculator.Companion Companion;
+ }
+
+ public static final class WindowMetricsCalculator.Companion {
+ method public androidx.window.layout.WindowMetricsCalculator getOrCreate();
+ }
+
+}
+