Merge "Update coroutines to 1.6.1" into androidx-main
diff --git a/.github/workflows/presubmit.yml b/.github/workflows/presubmit.yml
index 9c01ad3..71423ac 100644
--- a/.github/workflows/presubmit.yml
+++ b/.github/workflows/presubmit.yml
@@ -7,6 +7,7 @@
# Allow precise monitoring of the save/restore of Gradle User Home by `gradle-build-action`
# See https://github.com/marketplace/actions/gradle-build-action?version=v2.1.1#cache-debugging-and-analysis
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
+ GRADLE_BUILD_ACTION_CACHE_KEY_PREFIX: "GoldBlooded" #GSW!!!
jobs:
setup:
runs-on: ubuntu-latest
diff --git a/activity/activity-compose/api/1.5.0-beta02.txt b/activity/activity-compose/api/1.5.0-beta02.txt
new file mode 100644
index 0000000..66989c4
--- /dev/null
+++ b/activity/activity-compose/api/1.5.0-beta02.txt
@@ -0,0 +1,40 @@
+// Signature format: 4.0
+package androidx.activity.compose {
+
+ public final class ActivityComposeUtilsKt {
+ }
+
+ public final class ActivityResultRegistryKt {
+ method @androidx.compose.runtime.Composable public static <I, O> androidx.activity.compose.ManagedActivityResultLauncher<I,O> rememberLauncherForActivityResult(androidx.activity.result.contract.ActivityResultContract<I,O> contract, kotlin.jvm.functions.Function1<? super O,kotlin.Unit> onResult);
+ }
+
+ public final class BackHandlerKt {
+ method @androidx.compose.runtime.Composable public static void BackHandler(optional boolean enabled, kotlin.jvm.functions.Function0<kotlin.Unit> onBack);
+ }
+
+ public final class ComponentActivityKt {
+ method public static void setContent(androidx.activity.ComponentActivity, optional androidx.compose.runtime.CompositionContext? parent, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+ }
+
+ public final class LocalActivityResultRegistryOwner {
+ method @androidx.compose.runtime.Composable public androidx.activity.result.ActivityResultRegistryOwner? getCurrent();
+ method public infix androidx.compose.runtime.ProvidedValue<androidx.activity.result.ActivityResultRegistryOwner> provides(androidx.activity.result.ActivityResultRegistryOwner registryOwner);
+ property @androidx.compose.runtime.Composable public final androidx.activity.result.ActivityResultRegistryOwner? current;
+ field public static final androidx.activity.compose.LocalActivityResultRegistryOwner INSTANCE;
+ }
+
+ public final class LocalOnBackPressedDispatcherOwner {
+ method @androidx.compose.runtime.Composable public androidx.activity.OnBackPressedDispatcherOwner? getCurrent();
+ method public infix androidx.compose.runtime.ProvidedValue<androidx.activity.OnBackPressedDispatcherOwner> provides(androidx.activity.OnBackPressedDispatcherOwner dispatcherOwner);
+ property @androidx.compose.runtime.Composable public final androidx.activity.OnBackPressedDispatcherOwner? current;
+ field public static final androidx.activity.compose.LocalOnBackPressedDispatcherOwner INSTANCE;
+ }
+
+ public final class ManagedActivityResultLauncher<I, O> extends androidx.activity.result.ActivityResultLauncher<I> {
+ method public androidx.activity.result.contract.ActivityResultContract<I,?> getContract();
+ method public void launch(I? input, androidx.core.app.ActivityOptionsCompat? options);
+ method @Deprecated public void unregister();
+ }
+
+}
+
diff --git a/activity/activity-compose/api/public_plus_experimental_1.5.0-beta02.txt b/activity/activity-compose/api/public_plus_experimental_1.5.0-beta02.txt
new file mode 100644
index 0000000..66989c4
--- /dev/null
+++ b/activity/activity-compose/api/public_plus_experimental_1.5.0-beta02.txt
@@ -0,0 +1,40 @@
+// Signature format: 4.0
+package androidx.activity.compose {
+
+ public final class ActivityComposeUtilsKt {
+ }
+
+ public final class ActivityResultRegistryKt {
+ method @androidx.compose.runtime.Composable public static <I, O> androidx.activity.compose.ManagedActivityResultLauncher<I,O> rememberLauncherForActivityResult(androidx.activity.result.contract.ActivityResultContract<I,O> contract, kotlin.jvm.functions.Function1<? super O,kotlin.Unit> onResult);
+ }
+
+ public final class BackHandlerKt {
+ method @androidx.compose.runtime.Composable public static void BackHandler(optional boolean enabled, kotlin.jvm.functions.Function0<kotlin.Unit> onBack);
+ }
+
+ public final class ComponentActivityKt {
+ method public static void setContent(androidx.activity.ComponentActivity, optional androidx.compose.runtime.CompositionContext? parent, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+ }
+
+ public final class LocalActivityResultRegistryOwner {
+ method @androidx.compose.runtime.Composable public androidx.activity.result.ActivityResultRegistryOwner? getCurrent();
+ method public infix androidx.compose.runtime.ProvidedValue<androidx.activity.result.ActivityResultRegistryOwner> provides(androidx.activity.result.ActivityResultRegistryOwner registryOwner);
+ property @androidx.compose.runtime.Composable public final androidx.activity.result.ActivityResultRegistryOwner? current;
+ field public static final androidx.activity.compose.LocalActivityResultRegistryOwner INSTANCE;
+ }
+
+ public final class LocalOnBackPressedDispatcherOwner {
+ method @androidx.compose.runtime.Composable public androidx.activity.OnBackPressedDispatcherOwner? getCurrent();
+ method public infix androidx.compose.runtime.ProvidedValue<androidx.activity.OnBackPressedDispatcherOwner> provides(androidx.activity.OnBackPressedDispatcherOwner dispatcherOwner);
+ property @androidx.compose.runtime.Composable public final androidx.activity.OnBackPressedDispatcherOwner? current;
+ field public static final androidx.activity.compose.LocalOnBackPressedDispatcherOwner INSTANCE;
+ }
+
+ public final class ManagedActivityResultLauncher<I, O> extends androidx.activity.result.ActivityResultLauncher<I> {
+ method public androidx.activity.result.contract.ActivityResultContract<I,?> getContract();
+ method public void launch(I? input, androidx.core.app.ActivityOptionsCompat? options);
+ method @Deprecated public void unregister();
+ }
+
+}
+
diff --git a/activity/activity-compose/api/res-1.5.0-beta02.txt b/activity/activity-compose/api/res-1.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/activity/activity-compose/api/res-1.5.0-beta02.txt
diff --git a/activity/activity-compose/api/restricted_1.5.0-beta02.txt b/activity/activity-compose/api/restricted_1.5.0-beta02.txt
new file mode 100644
index 0000000..66989c4
--- /dev/null
+++ b/activity/activity-compose/api/restricted_1.5.0-beta02.txt
@@ -0,0 +1,40 @@
+// Signature format: 4.0
+package androidx.activity.compose {
+
+ public final class ActivityComposeUtilsKt {
+ }
+
+ public final class ActivityResultRegistryKt {
+ method @androidx.compose.runtime.Composable public static <I, O> androidx.activity.compose.ManagedActivityResultLauncher<I,O> rememberLauncherForActivityResult(androidx.activity.result.contract.ActivityResultContract<I,O> contract, kotlin.jvm.functions.Function1<? super O,kotlin.Unit> onResult);
+ }
+
+ public final class BackHandlerKt {
+ method @androidx.compose.runtime.Composable public static void BackHandler(optional boolean enabled, kotlin.jvm.functions.Function0<kotlin.Unit> onBack);
+ }
+
+ public final class ComponentActivityKt {
+ method public static void setContent(androidx.activity.ComponentActivity, optional androidx.compose.runtime.CompositionContext? parent, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+ }
+
+ public final class LocalActivityResultRegistryOwner {
+ method @androidx.compose.runtime.Composable public androidx.activity.result.ActivityResultRegistryOwner? getCurrent();
+ method public infix androidx.compose.runtime.ProvidedValue<androidx.activity.result.ActivityResultRegistryOwner> provides(androidx.activity.result.ActivityResultRegistryOwner registryOwner);
+ property @androidx.compose.runtime.Composable public final androidx.activity.result.ActivityResultRegistryOwner? current;
+ field public static final androidx.activity.compose.LocalActivityResultRegistryOwner INSTANCE;
+ }
+
+ public final class LocalOnBackPressedDispatcherOwner {
+ method @androidx.compose.runtime.Composable public androidx.activity.OnBackPressedDispatcherOwner? getCurrent();
+ method public infix androidx.compose.runtime.ProvidedValue<androidx.activity.OnBackPressedDispatcherOwner> provides(androidx.activity.OnBackPressedDispatcherOwner dispatcherOwner);
+ property @androidx.compose.runtime.Composable public final androidx.activity.OnBackPressedDispatcherOwner? current;
+ field public static final androidx.activity.compose.LocalOnBackPressedDispatcherOwner INSTANCE;
+ }
+
+ public final class ManagedActivityResultLauncher<I, O> extends androidx.activity.result.ActivityResultLauncher<I> {
+ method public androidx.activity.result.contract.ActivityResultContract<I,?> getContract();
+ method public void launch(I? input, androidx.core.app.ActivityOptionsCompat? options);
+ method @Deprecated public void unregister();
+ }
+
+}
+
diff --git a/activity/activity-compose/build.gradle b/activity/activity-compose/build.gradle
index b89c2b2..8ef2c0b 100644
--- a/activity/activity-compose/build.gradle
+++ b/activity/activity-compose/build.gradle
@@ -37,7 +37,7 @@
// Outside of androidx this is resolved via constraint added to lifecycle-common,
// but it doesn't work in androidx.
// See aosp/1804059
- implementation(project(":lifecycle:lifecycle-common-java8"))
+ implementation("androidx.lifecycle:lifecycle-common-java8:2.5.0-rc01")
androidTestImplementation projectOrArtifact(":compose:ui:ui-test-junit4")
androidTestImplementation projectOrArtifact(":compose:material:material")
diff --git a/activity/activity-ktx/api/1.5.0-beta02.txt b/activity/activity-ktx/api/1.5.0-beta02.txt
new file mode 100644
index 0000000..822d245
--- /dev/null
+++ b/activity/activity-ktx/api/1.5.0-beta02.txt
@@ -0,0 +1,44 @@
+// Signature format: 4.0
+package androidx.activity {
+
+ public final class ActivityViewModelLazyKt {
+ method @Deprecated @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! viewModels(androidx.activity.ComponentActivity, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! viewModels(androidx.activity.ComponentActivity, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras>? extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ }
+
+ public final class OnBackPressedDispatcherKt {
+ method public static androidx.activity.OnBackPressedCallback addCallback(androidx.activity.OnBackPressedDispatcher, optional androidx.lifecycle.LifecycleOwner? owner, optional boolean enabled, kotlin.jvm.functions.Function1<? super androidx.activity.OnBackPressedCallback,kotlin.Unit> onBackPressed);
+ }
+
+ public final class PipHintTrackerKt {
+ }
+
+}
+
+package androidx.activity.contextaware {
+
+ public final class ContextAwareKt {
+ method public static suspend inline <R> Object? withContextAvailable(androidx.activity.contextaware.ContextAware, kotlin.jvm.functions.Function1<? super android.content.Context,? extends R> onContextAvailable, kotlin.coroutines.Continuation<? super R>);
+ }
+
+}
+
+package androidx.activity.result {
+
+ public final class ActivityResultCallerKt {
+ method public static <I, O> androidx.activity.result.ActivityResultLauncher<kotlin.Unit> registerForActivityResult(androidx.activity.result.ActivityResultCaller, androidx.activity.result.contract.ActivityResultContract<I,O> contract, I? input, androidx.activity.result.ActivityResultRegistry registry, kotlin.jvm.functions.Function1<? super O,kotlin.Unit> callback);
+ method public static <I, O> androidx.activity.result.ActivityResultLauncher<kotlin.Unit> registerForActivityResult(androidx.activity.result.ActivityResultCaller, androidx.activity.result.contract.ActivityResultContract<I,O> contract, I? input, kotlin.jvm.functions.Function1<? super O,kotlin.Unit> callback);
+ }
+
+ public final class ActivityResultKt {
+ method public static operator int component1(androidx.activity.result.ActivityResult);
+ method public static operator android.content.Intent? component2(androidx.activity.result.ActivityResult);
+ }
+
+ public final class ActivityResultLauncherKt {
+ method public static void launch(androidx.activity.result.ActivityResultLauncher<java.lang.Void>, optional androidx.core.app.ActivityOptionsCompat? options);
+ method public static void launchUnit(androidx.activity.result.ActivityResultLauncher<kotlin.Unit>, optional androidx.core.app.ActivityOptionsCompat? options);
+ }
+
+}
+
diff --git a/activity/activity-ktx/api/public_plus_experimental_1.5.0-beta02.txt b/activity/activity-ktx/api/public_plus_experimental_1.5.0-beta02.txt
new file mode 100644
index 0000000..f690f03
--- /dev/null
+++ b/activity/activity-ktx/api/public_plus_experimental_1.5.0-beta02.txt
@@ -0,0 +1,45 @@
+// Signature format: 4.0
+package androidx.activity {
+
+ public final class ActivityViewModelLazyKt {
+ method @Deprecated @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! viewModels(androidx.activity.ComponentActivity, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! viewModels(androidx.activity.ComponentActivity, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras>? extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ }
+
+ public final class OnBackPressedDispatcherKt {
+ method public static androidx.activity.OnBackPressedCallback addCallback(androidx.activity.OnBackPressedDispatcher, optional androidx.lifecycle.LifecycleOwner? owner, optional boolean enabled, kotlin.jvm.functions.Function1<? super androidx.activity.OnBackPressedCallback,kotlin.Unit> onBackPressed);
+ }
+
+ public final class PipHintTrackerKt {
+ method @RequiresApi(android.os.Build.VERSION_CODES.O) @kotlinx.coroutines.ExperimentalCoroutinesApi public static suspend Object? trackPipAnimationHintView(android.app.Activity, android.view.View view, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ }
+
+}
+
+package androidx.activity.contextaware {
+
+ public final class ContextAwareKt {
+ method public static suspend inline <R> Object? withContextAvailable(androidx.activity.contextaware.ContextAware, kotlin.jvm.functions.Function1<? super android.content.Context,? extends R> onContextAvailable, kotlin.coroutines.Continuation<? super R>);
+ }
+
+}
+
+package androidx.activity.result {
+
+ public final class ActivityResultCallerKt {
+ method public static <I, O> androidx.activity.result.ActivityResultLauncher<kotlin.Unit> registerForActivityResult(androidx.activity.result.ActivityResultCaller, androidx.activity.result.contract.ActivityResultContract<I,O> contract, I? input, androidx.activity.result.ActivityResultRegistry registry, kotlin.jvm.functions.Function1<? super O,kotlin.Unit> callback);
+ method public static <I, O> androidx.activity.result.ActivityResultLauncher<kotlin.Unit> registerForActivityResult(androidx.activity.result.ActivityResultCaller, androidx.activity.result.contract.ActivityResultContract<I,O> contract, I? input, kotlin.jvm.functions.Function1<? super O,kotlin.Unit> callback);
+ }
+
+ public final class ActivityResultKt {
+ method public static operator int component1(androidx.activity.result.ActivityResult);
+ method public static operator android.content.Intent? component2(androidx.activity.result.ActivityResult);
+ }
+
+ public final class ActivityResultLauncherKt {
+ method public static void launch(androidx.activity.result.ActivityResultLauncher<java.lang.Void>, optional androidx.core.app.ActivityOptionsCompat? options);
+ method public static void launchUnit(androidx.activity.result.ActivityResultLauncher<kotlin.Unit>, optional androidx.core.app.ActivityOptionsCompat? options);
+ }
+
+}
+
diff --git a/activity/activity-ktx/api/res-1.5.0-beta02.txt b/activity/activity-ktx/api/res-1.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/activity/activity-ktx/api/res-1.5.0-beta02.txt
diff --git a/activity/activity-ktx/api/restricted_1.5.0-beta02.txt b/activity/activity-ktx/api/restricted_1.5.0-beta02.txt
new file mode 100644
index 0000000..822d245
--- /dev/null
+++ b/activity/activity-ktx/api/restricted_1.5.0-beta02.txt
@@ -0,0 +1,44 @@
+// Signature format: 4.0
+package androidx.activity {
+
+ public final class ActivityViewModelLazyKt {
+ method @Deprecated @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! viewModels(androidx.activity.ComponentActivity, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! viewModels(androidx.activity.ComponentActivity, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras>? extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ }
+
+ public final class OnBackPressedDispatcherKt {
+ method public static androidx.activity.OnBackPressedCallback addCallback(androidx.activity.OnBackPressedDispatcher, optional androidx.lifecycle.LifecycleOwner? owner, optional boolean enabled, kotlin.jvm.functions.Function1<? super androidx.activity.OnBackPressedCallback,kotlin.Unit> onBackPressed);
+ }
+
+ public final class PipHintTrackerKt {
+ }
+
+}
+
+package androidx.activity.contextaware {
+
+ public final class ContextAwareKt {
+ method public static suspend inline <R> Object? withContextAvailable(androidx.activity.contextaware.ContextAware, kotlin.jvm.functions.Function1<? super android.content.Context,? extends R> onContextAvailable, kotlin.coroutines.Continuation<? super R>);
+ }
+
+}
+
+package androidx.activity.result {
+
+ public final class ActivityResultCallerKt {
+ method public static <I, O> androidx.activity.result.ActivityResultLauncher<kotlin.Unit> registerForActivityResult(androidx.activity.result.ActivityResultCaller, androidx.activity.result.contract.ActivityResultContract<I,O> contract, I? input, androidx.activity.result.ActivityResultRegistry registry, kotlin.jvm.functions.Function1<? super O,kotlin.Unit> callback);
+ method public static <I, O> androidx.activity.result.ActivityResultLauncher<kotlin.Unit> registerForActivityResult(androidx.activity.result.ActivityResultCaller, androidx.activity.result.contract.ActivityResultContract<I,O> contract, I? input, kotlin.jvm.functions.Function1<? super O,kotlin.Unit> callback);
+ }
+
+ public final class ActivityResultKt {
+ method public static operator int component1(androidx.activity.result.ActivityResult);
+ method public static operator android.content.Intent? component2(androidx.activity.result.ActivityResult);
+ }
+
+ public final class ActivityResultLauncherKt {
+ method public static void launch(androidx.activity.result.ActivityResultLauncher<java.lang.Void>, optional androidx.core.app.ActivityOptionsCompat? options);
+ method public static void launchUnit(androidx.activity.result.ActivityResultLauncher<kotlin.Unit>, optional androidx.core.app.ActivityOptionsCompat? options);
+ }
+
+}
+
diff --git a/activity/activity-ktx/build.gradle b/activity/activity-ktx/build.gradle
index 8c0d82b..21e4e1a 100644
--- a/activity/activity-ktx/build.gradle
+++ b/activity/activity-ktx/build.gradle
@@ -28,11 +28,11 @@
api("androidx.core:core-ktx:1.1.0") {
because "Mirror activity dependency graph for -ktx artifacts"
}
- api(projectOrArtifact(":lifecycle:lifecycle-runtime-ktx")) {
+ api("androidx.lifecycle:lifecycle-runtime-ktx:2.5.0-rc01") {
because 'Mirror activity dependency graph for -ktx artifacts'
}
- api(projectOrArtifact(":lifecycle:lifecycle-viewmodel-ktx"))
- api(projectOrArtifact(":savedstate:savedstate-ktx")) {
+ api("androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.0-rc01")
+ api("androidx.savedstate:savedstate-ktx:1.2.0-rc01") {
because 'Mirror activity dependency graph for -ktx artifacts'
}
api(libs.kotlinStdlib)
diff --git a/activity/activity/api/1.5.0-beta02.txt b/activity/activity/api/1.5.0-beta02.txt
new file mode 100644
index 0000000..e01b95c
--- /dev/null
+++ b/activity/activity/api/1.5.0-beta02.txt
@@ -0,0 +1,309 @@
+// Signature format: 4.0
+package androidx.activity {
+
+ public class ComponentActivity extends android.app.Activity implements androidx.activity.result.ActivityResultCaller androidx.activity.result.ActivityResultRegistryOwner androidx.activity.contextaware.ContextAware androidx.lifecycle.HasDefaultViewModelProviderFactory androidx.lifecycle.LifecycleOwner androidx.core.view.MenuHost androidx.activity.OnBackPressedDispatcherOwner androidx.core.content.OnConfigurationChangedProvider androidx.core.app.OnMultiWindowModeChangedProvider androidx.core.app.OnNewIntentProvider androidx.core.app.OnPictureInPictureModeChangedProvider androidx.core.content.OnTrimMemoryProvider androidx.savedstate.SavedStateRegistryOwner androidx.lifecycle.ViewModelStoreOwner {
+ ctor public ComponentActivity();
+ ctor @ContentView public ComponentActivity(@LayoutRes int);
+ method public void addMenuProvider(androidx.core.view.MenuProvider);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State);
+ method public final void addOnConfigurationChangedListener(androidx.core.util.Consumer<android.content.res.Configuration!>);
+ method public final void addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ method public final void addOnMultiWindowModeChangedListener(androidx.core.util.Consumer<androidx.core.app.MultiWindowModeChangedInfo!>);
+ method public final void addOnNewIntentListener(androidx.core.util.Consumer<android.content.Intent!>);
+ method public final void addOnPictureInPictureModeChangedListener(androidx.core.util.Consumer<androidx.core.app.PictureInPictureModeChangedInfo!>);
+ method public final void addOnTrimMemoryListener(androidx.core.util.Consumer<java.lang.Integer!>);
+ method public final androidx.activity.result.ActivityResultRegistry getActivityResultRegistry();
+ method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory();
+ method @Deprecated public Object? getLastCustomNonConfigurationInstance();
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ method public final androidx.activity.OnBackPressedDispatcher getOnBackPressedDispatcher();
+ method public final androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
+ method public androidx.lifecycle.ViewModelStore getViewModelStore();
+ method public void invalidateMenu();
+ method @Deprecated @CallSuper protected void onActivityResult(int, int, android.content.Intent?);
+ method @CallSuper public void onMultiWindowModeChanged(boolean);
+ method @CallSuper public void onPictureInPictureModeChanged(boolean);
+ method @Deprecated @CallSuper public void onRequestPermissionsResult(int, String![], int[]);
+ method @Deprecated public Object? onRetainCustomNonConfigurationInstance();
+ method public final Object? onRetainNonConfigurationInstance();
+ method public android.content.Context? peekAvailableContext();
+ method public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultRegistry, androidx.activity.result.ActivityResultCallback<O!>);
+ method public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
+ method public void removeMenuProvider(androidx.core.view.MenuProvider);
+ method public final void removeOnConfigurationChangedListener(androidx.core.util.Consumer<android.content.res.Configuration!>);
+ method public final void removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ method public final void removeOnMultiWindowModeChangedListener(androidx.core.util.Consumer<androidx.core.app.MultiWindowModeChangedInfo!>);
+ method public final void removeOnNewIntentListener(androidx.core.util.Consumer<android.content.Intent!>);
+ method public final void removeOnPictureInPictureModeChangedListener(androidx.core.util.Consumer<androidx.core.app.PictureInPictureModeChangedInfo!>);
+ method public final void removeOnTrimMemoryListener(androidx.core.util.Consumer<java.lang.Integer!>);
+ method @Deprecated public void startActivityForResult(android.content.Intent!, int);
+ method @Deprecated public void startActivityForResult(android.content.Intent!, int, android.os.Bundle?);
+ method @Deprecated public void startIntentSenderForResult(android.content.IntentSender!, int, android.content.Intent?, int, int, int) throws android.content.IntentSender.SendIntentException;
+ method @Deprecated public void startIntentSenderForResult(android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
+ }
+
+ public class ComponentDialog extends android.app.Dialog implements androidx.lifecycle.LifecycleOwner androidx.activity.OnBackPressedDispatcherOwner {
+ ctor public ComponentDialog(android.content.Context context, optional @StyleRes int themeResId);
+ ctor public ComponentDialog(android.content.Context context);
+ method public final androidx.lifecycle.Lifecycle getLifecycle();
+ method public final androidx.activity.OnBackPressedDispatcher getOnBackPressedDispatcher();
+ }
+
+ public abstract class OnBackPressedCallback {
+ ctor public OnBackPressedCallback(boolean);
+ method @MainThread public abstract void handleOnBackPressed();
+ method @MainThread public final boolean isEnabled();
+ method @MainThread public final void remove();
+ method @MainThread public final void setEnabled(boolean);
+ }
+
+ public final class OnBackPressedDispatcher {
+ ctor public OnBackPressedDispatcher();
+ ctor public OnBackPressedDispatcher(Runnable?);
+ method @MainThread public void addCallback(androidx.activity.OnBackPressedCallback);
+ method @MainThread public void addCallback(androidx.lifecycle.LifecycleOwner, androidx.activity.OnBackPressedCallback);
+ method @MainThread public boolean hasEnabledCallbacks();
+ method @MainThread public void onBackPressed();
+ }
+
+ public interface OnBackPressedDispatcherOwner extends androidx.lifecycle.LifecycleOwner {
+ method public androidx.activity.OnBackPressedDispatcher getOnBackPressedDispatcher();
+ }
+
+ public final class ViewTreeOnBackPressedDispatcherOwner {
+ method public static androidx.activity.OnBackPressedDispatcherOwner? get(android.view.View);
+ method public static void set(android.view.View, androidx.activity.OnBackPressedDispatcherOwner onBackPressedDispatcherOwner);
+ }
+
+}
+
+package androidx.activity.contextaware {
+
+ public interface ContextAware {
+ method public void addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ method public android.content.Context? peekAvailableContext();
+ method public void removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ }
+
+ public final class ContextAwareHelper {
+ ctor public ContextAwareHelper();
+ method public void addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ method public void clearAvailableContext();
+ method public void dispatchOnContextAvailable(android.content.Context);
+ method public android.content.Context? peekAvailableContext();
+ method public void removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ }
+
+ public interface OnContextAvailableListener {
+ method public void onContextAvailable(android.content.Context);
+ }
+
+}
+
+package androidx.activity.result {
+
+ public final class ActivityResult implements android.os.Parcelable {
+ ctor public ActivityResult(int, android.content.Intent?);
+ method public int describeContents();
+ method public android.content.Intent? getData();
+ method public int getResultCode();
+ method public static String resultCodeToString(int);
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.activity.result.ActivityResult!> CREATOR;
+ }
+
+ public interface ActivityResultCallback<O> {
+ method public void onActivityResult(O!);
+ }
+
+ public interface ActivityResultCaller {
+ method public <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
+ method public <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultRegistry, androidx.activity.result.ActivityResultCallback<O!>);
+ }
+
+ public abstract class ActivityResultLauncher<I> {
+ ctor public ActivityResultLauncher();
+ method public abstract androidx.activity.result.contract.ActivityResultContract<I!,?> getContract();
+ method public void launch(I!);
+ method public abstract void launch(I!, androidx.core.app.ActivityOptionsCompat?);
+ method @MainThread public abstract void unregister();
+ }
+
+ public abstract class ActivityResultRegistry {
+ ctor public ActivityResultRegistry();
+ method @MainThread public final boolean dispatchResult(int, int, android.content.Intent?);
+ method @MainThread public final <O> boolean dispatchResult(int, O!);
+ method @MainThread public abstract <I, O> void onLaunch(int, androidx.activity.result.contract.ActivityResultContract<I!,O!>, I!, androidx.core.app.ActivityOptionsCompat?);
+ method public final void onRestoreInstanceState(android.os.Bundle?);
+ method public final void onSaveInstanceState(android.os.Bundle);
+ method public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> register(String, androidx.lifecycle.LifecycleOwner, androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
+ method public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> register(String, androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
+ }
+
+ public interface ActivityResultRegistryOwner {
+ method public androidx.activity.result.ActivityResultRegistry getActivityResultRegistry();
+ }
+
+ public final class IntentSenderRequest implements android.os.Parcelable {
+ method public int describeContents();
+ method public android.content.Intent? getFillInIntent();
+ method public int getFlagsMask();
+ method public int getFlagsValues();
+ method public android.content.IntentSender getIntentSender();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.activity.result.IntentSenderRequest!> CREATOR;
+ }
+
+ public static final class IntentSenderRequest.Builder {
+ ctor public IntentSenderRequest.Builder(android.content.IntentSender);
+ ctor public IntentSenderRequest.Builder(android.app.PendingIntent);
+ method public androidx.activity.result.IntentSenderRequest build();
+ method public androidx.activity.result.IntentSenderRequest.Builder setFillInIntent(android.content.Intent?);
+ method public androidx.activity.result.IntentSenderRequest.Builder setFlags(int, int);
+ }
+
+}
+
+package androidx.activity.result.contract {
+
+ public abstract class ActivityResultContract<I, O> {
+ ctor public ActivityResultContract();
+ method public abstract android.content.Intent createIntent(android.content.Context context, I? input);
+ method public androidx.activity.result.contract.ActivityResultContract.SynchronousResult<O>? getSynchronousResult(android.content.Context context, I? input);
+ method public abstract O! parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static final class ActivityResultContract.SynchronousResult<T> {
+ ctor public ActivityResultContract.SynchronousResult(T? value);
+ method public T! getValue();
+ property public final T! value;
+ }
+
+ public final class ActivityResultContracts {
+ }
+
+ public static class ActivityResultContracts.CaptureVideo extends androidx.activity.result.contract.ActivityResultContract<android.net.Uri,java.lang.Boolean> {
+ ctor public ActivityResultContracts.CaptureVideo();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, android.net.Uri input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.lang.Boolean>? getSynchronousResult(android.content.Context context, android.net.Uri input);
+ method public final Boolean parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @RequiresApi(19) public static class ActivityResultContracts.CreateDocument extends androidx.activity.result.contract.ActivityResultContract<java.lang.String,android.net.Uri> {
+ ctor public ActivityResultContracts.CreateDocument(String mimeType);
+ ctor @Deprecated public ActivityResultContracts.CreateDocument();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, String input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, String input);
+ method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static class ActivityResultContracts.GetContent extends androidx.activity.result.contract.ActivityResultContract<java.lang.String,android.net.Uri> {
+ ctor public ActivityResultContracts.GetContent();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, String input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, String input);
+ method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @RequiresApi(18) public static class ActivityResultContracts.GetMultipleContents extends androidx.activity.result.contract.ActivityResultContract<java.lang.String,java.util.List<android.net.Uri>> {
+ ctor public ActivityResultContracts.GetMultipleContents();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, String input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.util.List<android.net.Uri>>? getSynchronousResult(android.content.Context context, String input);
+ method public final java.util.List<android.net.Uri> parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @RequiresApi(19) public static class ActivityResultContracts.OpenDocument extends androidx.activity.result.contract.ActivityResultContract<java.lang.String[],android.net.Uri> {
+ ctor public ActivityResultContracts.OpenDocument();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, String![] input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, String![] input);
+ method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @RequiresApi(21) public static class ActivityResultContracts.OpenDocumentTree extends androidx.activity.result.contract.ActivityResultContract<android.net.Uri,android.net.Uri> {
+ ctor public ActivityResultContracts.OpenDocumentTree();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, android.net.Uri? input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, android.net.Uri? input);
+ method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @RequiresApi(19) public static class ActivityResultContracts.OpenMultipleDocuments extends androidx.activity.result.contract.ActivityResultContract<java.lang.String[],java.util.List<android.net.Uri>> {
+ ctor public ActivityResultContracts.OpenMultipleDocuments();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, String![] input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.util.List<android.net.Uri>>? getSynchronousResult(android.content.Context context, String![] input);
+ method public final java.util.List<android.net.Uri> parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static final class ActivityResultContracts.PickContact extends androidx.activity.result.contract.ActivityResultContract<java.lang.Void,android.net.Uri> {
+ ctor public ActivityResultContracts.PickContact();
+ method public android.content.Intent createIntent(android.content.Context context, Void? input);
+ method public android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static final class ActivityResultContracts.RequestMultiplePermissions extends androidx.activity.result.contract.ActivityResultContract<java.lang.String[],java.util.Map<java.lang.String,java.lang.Boolean>> {
+ ctor public ActivityResultContracts.RequestMultiplePermissions();
+ method public android.content.Intent createIntent(android.content.Context context, String![] input);
+ method public androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.util.Map<java.lang.String,java.lang.Boolean>>? getSynchronousResult(android.content.Context context, String![] input);
+ method public java.util.Map<java.lang.String,java.lang.Boolean> parseResult(int resultCode, android.content.Intent? intent);
+ field public static final String ACTION_REQUEST_PERMISSIONS = "androidx.activity.result.contract.action.REQUEST_PERMISSIONS";
+ field public static final androidx.activity.result.contract.ActivityResultContracts.RequestMultiplePermissions.Companion Companion;
+ field public static final String EXTRA_PERMISSIONS = "androidx.activity.result.contract.extra.PERMISSIONS";
+ field public static final String EXTRA_PERMISSION_GRANT_RESULTS = "androidx.activity.result.contract.extra.PERMISSION_GRANT_RESULTS";
+ }
+
+ public static final class ActivityResultContracts.RequestMultiplePermissions.Companion {
+ }
+
+ public static final class ActivityResultContracts.RequestPermission extends androidx.activity.result.contract.ActivityResultContract<java.lang.String,java.lang.Boolean> {
+ ctor public ActivityResultContracts.RequestPermission();
+ method public android.content.Intent createIntent(android.content.Context context, String input);
+ method public androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.lang.Boolean>? getSynchronousResult(android.content.Context context, String input);
+ method public Boolean parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static final class ActivityResultContracts.StartActivityForResult extends androidx.activity.result.contract.ActivityResultContract<android.content.Intent,androidx.activity.result.ActivityResult> {
+ ctor public ActivityResultContracts.StartActivityForResult();
+ method public android.content.Intent createIntent(android.content.Context context, android.content.Intent input);
+ method public androidx.activity.result.ActivityResult parseResult(int resultCode, android.content.Intent? intent);
+ field public static final androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult.Companion Companion;
+ field public static final String EXTRA_ACTIVITY_OPTIONS_BUNDLE = "androidx.activity.result.contract.extra.ACTIVITY_OPTIONS_BUNDLE";
+ }
+
+ public static final class ActivityResultContracts.StartActivityForResult.Companion {
+ }
+
+ public static final class ActivityResultContracts.StartIntentSenderForResult extends androidx.activity.result.contract.ActivityResultContract<androidx.activity.result.IntentSenderRequest,androidx.activity.result.ActivityResult> {
+ ctor public ActivityResultContracts.StartIntentSenderForResult();
+ method public android.content.Intent createIntent(android.content.Context context, androidx.activity.result.IntentSenderRequest input);
+ method public androidx.activity.result.ActivityResult parseResult(int resultCode, android.content.Intent? intent);
+ field public static final String ACTION_INTENT_SENDER_REQUEST = "androidx.activity.result.contract.action.INTENT_SENDER_REQUEST";
+ field public static final androidx.activity.result.contract.ActivityResultContracts.StartIntentSenderForResult.Companion Companion;
+ field public static final String EXTRA_INTENT_SENDER_REQUEST = "androidx.activity.result.contract.extra.INTENT_SENDER_REQUEST";
+ field public static final String EXTRA_SEND_INTENT_EXCEPTION = "androidx.activity.result.contract.extra.SEND_INTENT_EXCEPTION";
+ }
+
+ public static final class ActivityResultContracts.StartIntentSenderForResult.Companion {
+ }
+
+ public static class ActivityResultContracts.TakePicture extends androidx.activity.result.contract.ActivityResultContract<android.net.Uri,java.lang.Boolean> {
+ ctor public ActivityResultContracts.TakePicture();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, android.net.Uri input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.lang.Boolean>? getSynchronousResult(android.content.Context context, android.net.Uri input);
+ method public final Boolean parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static class ActivityResultContracts.TakePicturePreview extends androidx.activity.result.contract.ActivityResultContract<java.lang.Void,android.graphics.Bitmap> {
+ ctor public ActivityResultContracts.TakePicturePreview();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, Void? input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.graphics.Bitmap>? getSynchronousResult(android.content.Context context, Void? input);
+ method public final android.graphics.Bitmap? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @Deprecated public static class ActivityResultContracts.TakeVideo extends androidx.activity.result.contract.ActivityResultContract<android.net.Uri,android.graphics.Bitmap> {
+ ctor @Deprecated public ActivityResultContracts.TakeVideo();
+ method @Deprecated @CallSuper public android.content.Intent createIntent(android.content.Context context, android.net.Uri input);
+ method @Deprecated public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.graphics.Bitmap>? getSynchronousResult(android.content.Context context, android.net.Uri input);
+ method @Deprecated public final android.graphics.Bitmap? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+}
+
diff --git a/activity/activity/api/public_plus_experimental_1.5.0-beta02.txt b/activity/activity/api/public_plus_experimental_1.5.0-beta02.txt
new file mode 100644
index 0000000..e01b95c
--- /dev/null
+++ b/activity/activity/api/public_plus_experimental_1.5.0-beta02.txt
@@ -0,0 +1,309 @@
+// Signature format: 4.0
+package androidx.activity {
+
+ public class ComponentActivity extends android.app.Activity implements androidx.activity.result.ActivityResultCaller androidx.activity.result.ActivityResultRegistryOwner androidx.activity.contextaware.ContextAware androidx.lifecycle.HasDefaultViewModelProviderFactory androidx.lifecycle.LifecycleOwner androidx.core.view.MenuHost androidx.activity.OnBackPressedDispatcherOwner androidx.core.content.OnConfigurationChangedProvider androidx.core.app.OnMultiWindowModeChangedProvider androidx.core.app.OnNewIntentProvider androidx.core.app.OnPictureInPictureModeChangedProvider androidx.core.content.OnTrimMemoryProvider androidx.savedstate.SavedStateRegistryOwner androidx.lifecycle.ViewModelStoreOwner {
+ ctor public ComponentActivity();
+ ctor @ContentView public ComponentActivity(@LayoutRes int);
+ method public void addMenuProvider(androidx.core.view.MenuProvider);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State);
+ method public final void addOnConfigurationChangedListener(androidx.core.util.Consumer<android.content.res.Configuration!>);
+ method public final void addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ method public final void addOnMultiWindowModeChangedListener(androidx.core.util.Consumer<androidx.core.app.MultiWindowModeChangedInfo!>);
+ method public final void addOnNewIntentListener(androidx.core.util.Consumer<android.content.Intent!>);
+ method public final void addOnPictureInPictureModeChangedListener(androidx.core.util.Consumer<androidx.core.app.PictureInPictureModeChangedInfo!>);
+ method public final void addOnTrimMemoryListener(androidx.core.util.Consumer<java.lang.Integer!>);
+ method public final androidx.activity.result.ActivityResultRegistry getActivityResultRegistry();
+ method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory();
+ method @Deprecated public Object? getLastCustomNonConfigurationInstance();
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ method public final androidx.activity.OnBackPressedDispatcher getOnBackPressedDispatcher();
+ method public final androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
+ method public androidx.lifecycle.ViewModelStore getViewModelStore();
+ method public void invalidateMenu();
+ method @Deprecated @CallSuper protected void onActivityResult(int, int, android.content.Intent?);
+ method @CallSuper public void onMultiWindowModeChanged(boolean);
+ method @CallSuper public void onPictureInPictureModeChanged(boolean);
+ method @Deprecated @CallSuper public void onRequestPermissionsResult(int, String![], int[]);
+ method @Deprecated public Object? onRetainCustomNonConfigurationInstance();
+ method public final Object? onRetainNonConfigurationInstance();
+ method public android.content.Context? peekAvailableContext();
+ method public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultRegistry, androidx.activity.result.ActivityResultCallback<O!>);
+ method public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
+ method public void removeMenuProvider(androidx.core.view.MenuProvider);
+ method public final void removeOnConfigurationChangedListener(androidx.core.util.Consumer<android.content.res.Configuration!>);
+ method public final void removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ method public final void removeOnMultiWindowModeChangedListener(androidx.core.util.Consumer<androidx.core.app.MultiWindowModeChangedInfo!>);
+ method public final void removeOnNewIntentListener(androidx.core.util.Consumer<android.content.Intent!>);
+ method public final void removeOnPictureInPictureModeChangedListener(androidx.core.util.Consumer<androidx.core.app.PictureInPictureModeChangedInfo!>);
+ method public final void removeOnTrimMemoryListener(androidx.core.util.Consumer<java.lang.Integer!>);
+ method @Deprecated public void startActivityForResult(android.content.Intent!, int);
+ method @Deprecated public void startActivityForResult(android.content.Intent!, int, android.os.Bundle?);
+ method @Deprecated public void startIntentSenderForResult(android.content.IntentSender!, int, android.content.Intent?, int, int, int) throws android.content.IntentSender.SendIntentException;
+ method @Deprecated public void startIntentSenderForResult(android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
+ }
+
+ public class ComponentDialog extends android.app.Dialog implements androidx.lifecycle.LifecycleOwner androidx.activity.OnBackPressedDispatcherOwner {
+ ctor public ComponentDialog(android.content.Context context, optional @StyleRes int themeResId);
+ ctor public ComponentDialog(android.content.Context context);
+ method public final androidx.lifecycle.Lifecycle getLifecycle();
+ method public final androidx.activity.OnBackPressedDispatcher getOnBackPressedDispatcher();
+ }
+
+ public abstract class OnBackPressedCallback {
+ ctor public OnBackPressedCallback(boolean);
+ method @MainThread public abstract void handleOnBackPressed();
+ method @MainThread public final boolean isEnabled();
+ method @MainThread public final void remove();
+ method @MainThread public final void setEnabled(boolean);
+ }
+
+ public final class OnBackPressedDispatcher {
+ ctor public OnBackPressedDispatcher();
+ ctor public OnBackPressedDispatcher(Runnable?);
+ method @MainThread public void addCallback(androidx.activity.OnBackPressedCallback);
+ method @MainThread public void addCallback(androidx.lifecycle.LifecycleOwner, androidx.activity.OnBackPressedCallback);
+ method @MainThread public boolean hasEnabledCallbacks();
+ method @MainThread public void onBackPressed();
+ }
+
+ public interface OnBackPressedDispatcherOwner extends androidx.lifecycle.LifecycleOwner {
+ method public androidx.activity.OnBackPressedDispatcher getOnBackPressedDispatcher();
+ }
+
+ public final class ViewTreeOnBackPressedDispatcherOwner {
+ method public static androidx.activity.OnBackPressedDispatcherOwner? get(android.view.View);
+ method public static void set(android.view.View, androidx.activity.OnBackPressedDispatcherOwner onBackPressedDispatcherOwner);
+ }
+
+}
+
+package androidx.activity.contextaware {
+
+ public interface ContextAware {
+ method public void addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ method public android.content.Context? peekAvailableContext();
+ method public void removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ }
+
+ public final class ContextAwareHelper {
+ ctor public ContextAwareHelper();
+ method public void addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ method public void clearAvailableContext();
+ method public void dispatchOnContextAvailable(android.content.Context);
+ method public android.content.Context? peekAvailableContext();
+ method public void removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ }
+
+ public interface OnContextAvailableListener {
+ method public void onContextAvailable(android.content.Context);
+ }
+
+}
+
+package androidx.activity.result {
+
+ public final class ActivityResult implements android.os.Parcelable {
+ ctor public ActivityResult(int, android.content.Intent?);
+ method public int describeContents();
+ method public android.content.Intent? getData();
+ method public int getResultCode();
+ method public static String resultCodeToString(int);
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.activity.result.ActivityResult!> CREATOR;
+ }
+
+ public interface ActivityResultCallback<O> {
+ method public void onActivityResult(O!);
+ }
+
+ public interface ActivityResultCaller {
+ method public <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
+ method public <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultRegistry, androidx.activity.result.ActivityResultCallback<O!>);
+ }
+
+ public abstract class ActivityResultLauncher<I> {
+ ctor public ActivityResultLauncher();
+ method public abstract androidx.activity.result.contract.ActivityResultContract<I!,?> getContract();
+ method public void launch(I!);
+ method public abstract void launch(I!, androidx.core.app.ActivityOptionsCompat?);
+ method @MainThread public abstract void unregister();
+ }
+
+ public abstract class ActivityResultRegistry {
+ ctor public ActivityResultRegistry();
+ method @MainThread public final boolean dispatchResult(int, int, android.content.Intent?);
+ method @MainThread public final <O> boolean dispatchResult(int, O!);
+ method @MainThread public abstract <I, O> void onLaunch(int, androidx.activity.result.contract.ActivityResultContract<I!,O!>, I!, androidx.core.app.ActivityOptionsCompat?);
+ method public final void onRestoreInstanceState(android.os.Bundle?);
+ method public final void onSaveInstanceState(android.os.Bundle);
+ method public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> register(String, androidx.lifecycle.LifecycleOwner, androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
+ method public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> register(String, androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
+ }
+
+ public interface ActivityResultRegistryOwner {
+ method public androidx.activity.result.ActivityResultRegistry getActivityResultRegistry();
+ }
+
+ public final class IntentSenderRequest implements android.os.Parcelable {
+ method public int describeContents();
+ method public android.content.Intent? getFillInIntent();
+ method public int getFlagsMask();
+ method public int getFlagsValues();
+ method public android.content.IntentSender getIntentSender();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.activity.result.IntentSenderRequest!> CREATOR;
+ }
+
+ public static final class IntentSenderRequest.Builder {
+ ctor public IntentSenderRequest.Builder(android.content.IntentSender);
+ ctor public IntentSenderRequest.Builder(android.app.PendingIntent);
+ method public androidx.activity.result.IntentSenderRequest build();
+ method public androidx.activity.result.IntentSenderRequest.Builder setFillInIntent(android.content.Intent?);
+ method public androidx.activity.result.IntentSenderRequest.Builder setFlags(int, int);
+ }
+
+}
+
+package androidx.activity.result.contract {
+
+ public abstract class ActivityResultContract<I, O> {
+ ctor public ActivityResultContract();
+ method public abstract android.content.Intent createIntent(android.content.Context context, I? input);
+ method public androidx.activity.result.contract.ActivityResultContract.SynchronousResult<O>? getSynchronousResult(android.content.Context context, I? input);
+ method public abstract O! parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static final class ActivityResultContract.SynchronousResult<T> {
+ ctor public ActivityResultContract.SynchronousResult(T? value);
+ method public T! getValue();
+ property public final T! value;
+ }
+
+ public final class ActivityResultContracts {
+ }
+
+ public static class ActivityResultContracts.CaptureVideo extends androidx.activity.result.contract.ActivityResultContract<android.net.Uri,java.lang.Boolean> {
+ ctor public ActivityResultContracts.CaptureVideo();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, android.net.Uri input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.lang.Boolean>? getSynchronousResult(android.content.Context context, android.net.Uri input);
+ method public final Boolean parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @RequiresApi(19) public static class ActivityResultContracts.CreateDocument extends androidx.activity.result.contract.ActivityResultContract<java.lang.String,android.net.Uri> {
+ ctor public ActivityResultContracts.CreateDocument(String mimeType);
+ ctor @Deprecated public ActivityResultContracts.CreateDocument();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, String input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, String input);
+ method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static class ActivityResultContracts.GetContent extends androidx.activity.result.contract.ActivityResultContract<java.lang.String,android.net.Uri> {
+ ctor public ActivityResultContracts.GetContent();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, String input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, String input);
+ method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @RequiresApi(18) public static class ActivityResultContracts.GetMultipleContents extends androidx.activity.result.contract.ActivityResultContract<java.lang.String,java.util.List<android.net.Uri>> {
+ ctor public ActivityResultContracts.GetMultipleContents();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, String input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.util.List<android.net.Uri>>? getSynchronousResult(android.content.Context context, String input);
+ method public final java.util.List<android.net.Uri> parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @RequiresApi(19) public static class ActivityResultContracts.OpenDocument extends androidx.activity.result.contract.ActivityResultContract<java.lang.String[],android.net.Uri> {
+ ctor public ActivityResultContracts.OpenDocument();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, String![] input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, String![] input);
+ method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @RequiresApi(21) public static class ActivityResultContracts.OpenDocumentTree extends androidx.activity.result.contract.ActivityResultContract<android.net.Uri,android.net.Uri> {
+ ctor public ActivityResultContracts.OpenDocumentTree();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, android.net.Uri? input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, android.net.Uri? input);
+ method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @RequiresApi(19) public static class ActivityResultContracts.OpenMultipleDocuments extends androidx.activity.result.contract.ActivityResultContract<java.lang.String[],java.util.List<android.net.Uri>> {
+ ctor public ActivityResultContracts.OpenMultipleDocuments();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, String![] input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.util.List<android.net.Uri>>? getSynchronousResult(android.content.Context context, String![] input);
+ method public final java.util.List<android.net.Uri> parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static final class ActivityResultContracts.PickContact extends androidx.activity.result.contract.ActivityResultContract<java.lang.Void,android.net.Uri> {
+ ctor public ActivityResultContracts.PickContact();
+ method public android.content.Intent createIntent(android.content.Context context, Void? input);
+ method public android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static final class ActivityResultContracts.RequestMultiplePermissions extends androidx.activity.result.contract.ActivityResultContract<java.lang.String[],java.util.Map<java.lang.String,java.lang.Boolean>> {
+ ctor public ActivityResultContracts.RequestMultiplePermissions();
+ method public android.content.Intent createIntent(android.content.Context context, String![] input);
+ method public androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.util.Map<java.lang.String,java.lang.Boolean>>? getSynchronousResult(android.content.Context context, String![] input);
+ method public java.util.Map<java.lang.String,java.lang.Boolean> parseResult(int resultCode, android.content.Intent? intent);
+ field public static final String ACTION_REQUEST_PERMISSIONS = "androidx.activity.result.contract.action.REQUEST_PERMISSIONS";
+ field public static final androidx.activity.result.contract.ActivityResultContracts.RequestMultiplePermissions.Companion Companion;
+ field public static final String EXTRA_PERMISSIONS = "androidx.activity.result.contract.extra.PERMISSIONS";
+ field public static final String EXTRA_PERMISSION_GRANT_RESULTS = "androidx.activity.result.contract.extra.PERMISSION_GRANT_RESULTS";
+ }
+
+ public static final class ActivityResultContracts.RequestMultiplePermissions.Companion {
+ }
+
+ public static final class ActivityResultContracts.RequestPermission extends androidx.activity.result.contract.ActivityResultContract<java.lang.String,java.lang.Boolean> {
+ ctor public ActivityResultContracts.RequestPermission();
+ method public android.content.Intent createIntent(android.content.Context context, String input);
+ method public androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.lang.Boolean>? getSynchronousResult(android.content.Context context, String input);
+ method public Boolean parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static final class ActivityResultContracts.StartActivityForResult extends androidx.activity.result.contract.ActivityResultContract<android.content.Intent,androidx.activity.result.ActivityResult> {
+ ctor public ActivityResultContracts.StartActivityForResult();
+ method public android.content.Intent createIntent(android.content.Context context, android.content.Intent input);
+ method public androidx.activity.result.ActivityResult parseResult(int resultCode, android.content.Intent? intent);
+ field public static final androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult.Companion Companion;
+ field public static final String EXTRA_ACTIVITY_OPTIONS_BUNDLE = "androidx.activity.result.contract.extra.ACTIVITY_OPTIONS_BUNDLE";
+ }
+
+ public static final class ActivityResultContracts.StartActivityForResult.Companion {
+ }
+
+ public static final class ActivityResultContracts.StartIntentSenderForResult extends androidx.activity.result.contract.ActivityResultContract<androidx.activity.result.IntentSenderRequest,androidx.activity.result.ActivityResult> {
+ ctor public ActivityResultContracts.StartIntentSenderForResult();
+ method public android.content.Intent createIntent(android.content.Context context, androidx.activity.result.IntentSenderRequest input);
+ method public androidx.activity.result.ActivityResult parseResult(int resultCode, android.content.Intent? intent);
+ field public static final String ACTION_INTENT_SENDER_REQUEST = "androidx.activity.result.contract.action.INTENT_SENDER_REQUEST";
+ field public static final androidx.activity.result.contract.ActivityResultContracts.StartIntentSenderForResult.Companion Companion;
+ field public static final String EXTRA_INTENT_SENDER_REQUEST = "androidx.activity.result.contract.extra.INTENT_SENDER_REQUEST";
+ field public static final String EXTRA_SEND_INTENT_EXCEPTION = "androidx.activity.result.contract.extra.SEND_INTENT_EXCEPTION";
+ }
+
+ public static final class ActivityResultContracts.StartIntentSenderForResult.Companion {
+ }
+
+ public static class ActivityResultContracts.TakePicture extends androidx.activity.result.contract.ActivityResultContract<android.net.Uri,java.lang.Boolean> {
+ ctor public ActivityResultContracts.TakePicture();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, android.net.Uri input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.lang.Boolean>? getSynchronousResult(android.content.Context context, android.net.Uri input);
+ method public final Boolean parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static class ActivityResultContracts.TakePicturePreview extends androidx.activity.result.contract.ActivityResultContract<java.lang.Void,android.graphics.Bitmap> {
+ ctor public ActivityResultContracts.TakePicturePreview();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, Void? input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.graphics.Bitmap>? getSynchronousResult(android.content.Context context, Void? input);
+ method public final android.graphics.Bitmap? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @Deprecated public static class ActivityResultContracts.TakeVideo extends androidx.activity.result.contract.ActivityResultContract<android.net.Uri,android.graphics.Bitmap> {
+ ctor @Deprecated public ActivityResultContracts.TakeVideo();
+ method @Deprecated @CallSuper public android.content.Intent createIntent(android.content.Context context, android.net.Uri input);
+ method @Deprecated public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.graphics.Bitmap>? getSynchronousResult(android.content.Context context, android.net.Uri input);
+ method @Deprecated public final android.graphics.Bitmap? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+}
+
diff --git a/activity/activity/api/res-1.5.0-beta02.txt b/activity/activity/api/res-1.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/activity/activity/api/res-1.5.0-beta02.txt
diff --git a/activity/activity/api/restricted_1.5.0-beta02.txt b/activity/activity/api/restricted_1.5.0-beta02.txt
new file mode 100644
index 0000000..5fdb966
--- /dev/null
+++ b/activity/activity/api/restricted_1.5.0-beta02.txt
@@ -0,0 +1,308 @@
+// Signature format: 4.0
+package androidx.activity {
+
+ public class ComponentActivity extends androidx.core.app.ComponentActivity implements androidx.activity.result.ActivityResultCaller androidx.activity.result.ActivityResultRegistryOwner androidx.activity.contextaware.ContextAware androidx.lifecycle.HasDefaultViewModelProviderFactory androidx.lifecycle.LifecycleOwner androidx.core.view.MenuHost androidx.activity.OnBackPressedDispatcherOwner androidx.core.content.OnConfigurationChangedProvider androidx.core.app.OnMultiWindowModeChangedProvider androidx.core.app.OnNewIntentProvider androidx.core.app.OnPictureInPictureModeChangedProvider androidx.core.content.OnTrimMemoryProvider androidx.savedstate.SavedStateRegistryOwner androidx.lifecycle.ViewModelStoreOwner {
+ ctor public ComponentActivity();
+ ctor @ContentView public ComponentActivity(@LayoutRes int);
+ method public void addMenuProvider(androidx.core.view.MenuProvider);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State);
+ method public final void addOnConfigurationChangedListener(androidx.core.util.Consumer<android.content.res.Configuration!>);
+ method public final void addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ method public final void addOnMultiWindowModeChangedListener(androidx.core.util.Consumer<androidx.core.app.MultiWindowModeChangedInfo!>);
+ method public final void addOnNewIntentListener(androidx.core.util.Consumer<android.content.Intent!>);
+ method public final void addOnPictureInPictureModeChangedListener(androidx.core.util.Consumer<androidx.core.app.PictureInPictureModeChangedInfo!>);
+ method public final void addOnTrimMemoryListener(androidx.core.util.Consumer<java.lang.Integer!>);
+ method public final androidx.activity.result.ActivityResultRegistry getActivityResultRegistry();
+ method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory();
+ method @Deprecated public Object? getLastCustomNonConfigurationInstance();
+ method public final androidx.activity.OnBackPressedDispatcher getOnBackPressedDispatcher();
+ method public final androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
+ method public androidx.lifecycle.ViewModelStore getViewModelStore();
+ method public void invalidateMenu();
+ method @Deprecated @CallSuper protected void onActivityResult(int, int, android.content.Intent?);
+ method @CallSuper public void onMultiWindowModeChanged(boolean);
+ method @CallSuper public void onPictureInPictureModeChanged(boolean);
+ method @Deprecated @CallSuper public void onRequestPermissionsResult(int, String![], int[]);
+ method @Deprecated public Object? onRetainCustomNonConfigurationInstance();
+ method public final Object? onRetainNonConfigurationInstance();
+ method public android.content.Context? peekAvailableContext();
+ method public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultRegistry, androidx.activity.result.ActivityResultCallback<O!>);
+ method public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
+ method public void removeMenuProvider(androidx.core.view.MenuProvider);
+ method public final void removeOnConfigurationChangedListener(androidx.core.util.Consumer<android.content.res.Configuration!>);
+ method public final void removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ method public final void removeOnMultiWindowModeChangedListener(androidx.core.util.Consumer<androidx.core.app.MultiWindowModeChangedInfo!>);
+ method public final void removeOnNewIntentListener(androidx.core.util.Consumer<android.content.Intent!>);
+ method public final void removeOnPictureInPictureModeChangedListener(androidx.core.util.Consumer<androidx.core.app.PictureInPictureModeChangedInfo!>);
+ method public final void removeOnTrimMemoryListener(androidx.core.util.Consumer<java.lang.Integer!>);
+ method @Deprecated public void startActivityForResult(android.content.Intent!, int);
+ method @Deprecated public void startActivityForResult(android.content.Intent!, int, android.os.Bundle?);
+ method @Deprecated public void startIntentSenderForResult(android.content.IntentSender!, int, android.content.Intent?, int, int, int) throws android.content.IntentSender.SendIntentException;
+ method @Deprecated public void startIntentSenderForResult(android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
+ }
+
+ public class ComponentDialog extends android.app.Dialog implements androidx.lifecycle.LifecycleOwner androidx.activity.OnBackPressedDispatcherOwner {
+ ctor public ComponentDialog(android.content.Context context, optional @StyleRes int themeResId);
+ ctor public ComponentDialog(android.content.Context context);
+ method public final androidx.lifecycle.Lifecycle getLifecycle();
+ method public final androidx.activity.OnBackPressedDispatcher getOnBackPressedDispatcher();
+ }
+
+ public abstract class OnBackPressedCallback {
+ ctor public OnBackPressedCallback(boolean);
+ method @MainThread public abstract void handleOnBackPressed();
+ method @MainThread public final boolean isEnabled();
+ method @MainThread public final void remove();
+ method @MainThread public final void setEnabled(boolean);
+ }
+
+ public final class OnBackPressedDispatcher {
+ ctor public OnBackPressedDispatcher();
+ ctor public OnBackPressedDispatcher(Runnable?);
+ method @MainThread public void addCallback(androidx.activity.OnBackPressedCallback);
+ method @MainThread public void addCallback(androidx.lifecycle.LifecycleOwner, androidx.activity.OnBackPressedCallback);
+ method @MainThread public boolean hasEnabledCallbacks();
+ method @MainThread public void onBackPressed();
+ }
+
+ public interface OnBackPressedDispatcherOwner extends androidx.lifecycle.LifecycleOwner {
+ method public androidx.activity.OnBackPressedDispatcher getOnBackPressedDispatcher();
+ }
+
+ public final class ViewTreeOnBackPressedDispatcherOwner {
+ method public static androidx.activity.OnBackPressedDispatcherOwner? get(android.view.View);
+ method public static void set(android.view.View, androidx.activity.OnBackPressedDispatcherOwner onBackPressedDispatcherOwner);
+ }
+
+}
+
+package androidx.activity.contextaware {
+
+ public interface ContextAware {
+ method public void addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ method public android.content.Context? peekAvailableContext();
+ method public void removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ }
+
+ public final class ContextAwareHelper {
+ ctor public ContextAwareHelper();
+ method public void addOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ method public void clearAvailableContext();
+ method public void dispatchOnContextAvailable(android.content.Context);
+ method public android.content.Context? peekAvailableContext();
+ method public void removeOnContextAvailableListener(androidx.activity.contextaware.OnContextAvailableListener);
+ }
+
+ public interface OnContextAvailableListener {
+ method public void onContextAvailable(android.content.Context);
+ }
+
+}
+
+package androidx.activity.result {
+
+ public final class ActivityResult implements android.os.Parcelable {
+ ctor public ActivityResult(int, android.content.Intent?);
+ method public int describeContents();
+ method public android.content.Intent? getData();
+ method public int getResultCode();
+ method public static String resultCodeToString(int);
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.activity.result.ActivityResult!> CREATOR;
+ }
+
+ public interface ActivityResultCallback<O> {
+ method public void onActivityResult(O!);
+ }
+
+ public interface ActivityResultCaller {
+ method public <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
+ method public <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultRegistry, androidx.activity.result.ActivityResultCallback<O!>);
+ }
+
+ public abstract class ActivityResultLauncher<I> {
+ ctor public ActivityResultLauncher();
+ method public abstract androidx.activity.result.contract.ActivityResultContract<I!,?> getContract();
+ method public void launch(I!);
+ method public abstract void launch(I!, androidx.core.app.ActivityOptionsCompat?);
+ method @MainThread public abstract void unregister();
+ }
+
+ public abstract class ActivityResultRegistry {
+ ctor public ActivityResultRegistry();
+ method @MainThread public final boolean dispatchResult(int, int, android.content.Intent?);
+ method @MainThread public final <O> boolean dispatchResult(int, O!);
+ method @MainThread public abstract <I, O> void onLaunch(int, androidx.activity.result.contract.ActivityResultContract<I!,O!>, I!, androidx.core.app.ActivityOptionsCompat?);
+ method public final void onRestoreInstanceState(android.os.Bundle?);
+ method public final void onSaveInstanceState(android.os.Bundle);
+ method public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> register(String, androidx.lifecycle.LifecycleOwner, androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
+ method public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> register(String, androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
+ }
+
+ public interface ActivityResultRegistryOwner {
+ method public androidx.activity.result.ActivityResultRegistry getActivityResultRegistry();
+ }
+
+ public final class IntentSenderRequest implements android.os.Parcelable {
+ method public int describeContents();
+ method public android.content.Intent? getFillInIntent();
+ method public int getFlagsMask();
+ method public int getFlagsValues();
+ method public android.content.IntentSender getIntentSender();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.activity.result.IntentSenderRequest!> CREATOR;
+ }
+
+ public static final class IntentSenderRequest.Builder {
+ ctor public IntentSenderRequest.Builder(android.content.IntentSender);
+ ctor public IntentSenderRequest.Builder(android.app.PendingIntent);
+ method public androidx.activity.result.IntentSenderRequest build();
+ method public androidx.activity.result.IntentSenderRequest.Builder setFillInIntent(android.content.Intent?);
+ method public androidx.activity.result.IntentSenderRequest.Builder setFlags(int, int);
+ }
+
+}
+
+package androidx.activity.result.contract {
+
+ public abstract class ActivityResultContract<I, O> {
+ ctor public ActivityResultContract();
+ method public abstract android.content.Intent createIntent(android.content.Context context, I? input);
+ method public androidx.activity.result.contract.ActivityResultContract.SynchronousResult<O>? getSynchronousResult(android.content.Context context, I? input);
+ method public abstract O! parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static final class ActivityResultContract.SynchronousResult<T> {
+ ctor public ActivityResultContract.SynchronousResult(T? value);
+ method public T! getValue();
+ property public final T! value;
+ }
+
+ public final class ActivityResultContracts {
+ }
+
+ public static class ActivityResultContracts.CaptureVideo extends androidx.activity.result.contract.ActivityResultContract<android.net.Uri,java.lang.Boolean> {
+ ctor public ActivityResultContracts.CaptureVideo();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, android.net.Uri input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.lang.Boolean>? getSynchronousResult(android.content.Context context, android.net.Uri input);
+ method public final Boolean parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @RequiresApi(19) public static class ActivityResultContracts.CreateDocument extends androidx.activity.result.contract.ActivityResultContract<java.lang.String,android.net.Uri> {
+ ctor public ActivityResultContracts.CreateDocument(String mimeType);
+ ctor @Deprecated public ActivityResultContracts.CreateDocument();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, String input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, String input);
+ method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static class ActivityResultContracts.GetContent extends androidx.activity.result.contract.ActivityResultContract<java.lang.String,android.net.Uri> {
+ ctor public ActivityResultContracts.GetContent();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, String input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, String input);
+ method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @RequiresApi(18) public static class ActivityResultContracts.GetMultipleContents extends androidx.activity.result.contract.ActivityResultContract<java.lang.String,java.util.List<android.net.Uri>> {
+ ctor public ActivityResultContracts.GetMultipleContents();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, String input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.util.List<android.net.Uri>>? getSynchronousResult(android.content.Context context, String input);
+ method public final java.util.List<android.net.Uri> parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @RequiresApi(19) public static class ActivityResultContracts.OpenDocument extends androidx.activity.result.contract.ActivityResultContract<java.lang.String[],android.net.Uri> {
+ ctor public ActivityResultContracts.OpenDocument();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, String![] input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, String![] input);
+ method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @RequiresApi(21) public static class ActivityResultContracts.OpenDocumentTree extends androidx.activity.result.contract.ActivityResultContract<android.net.Uri,android.net.Uri> {
+ ctor public ActivityResultContracts.OpenDocumentTree();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, android.net.Uri? input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.net.Uri>? getSynchronousResult(android.content.Context context, android.net.Uri? input);
+ method public final android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @RequiresApi(19) public static class ActivityResultContracts.OpenMultipleDocuments extends androidx.activity.result.contract.ActivityResultContract<java.lang.String[],java.util.List<android.net.Uri>> {
+ ctor public ActivityResultContracts.OpenMultipleDocuments();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, String![] input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.util.List<android.net.Uri>>? getSynchronousResult(android.content.Context context, String![] input);
+ method public final java.util.List<android.net.Uri> parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static final class ActivityResultContracts.PickContact extends androidx.activity.result.contract.ActivityResultContract<java.lang.Void,android.net.Uri> {
+ ctor public ActivityResultContracts.PickContact();
+ method public android.content.Intent createIntent(android.content.Context context, Void? input);
+ method public android.net.Uri? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static final class ActivityResultContracts.RequestMultiplePermissions extends androidx.activity.result.contract.ActivityResultContract<java.lang.String[],java.util.Map<java.lang.String,java.lang.Boolean>> {
+ ctor public ActivityResultContracts.RequestMultiplePermissions();
+ method public android.content.Intent createIntent(android.content.Context context, String![] input);
+ method public androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.util.Map<java.lang.String,java.lang.Boolean>>? getSynchronousResult(android.content.Context context, String![] input);
+ method public java.util.Map<java.lang.String,java.lang.Boolean> parseResult(int resultCode, android.content.Intent? intent);
+ field public static final String ACTION_REQUEST_PERMISSIONS = "androidx.activity.result.contract.action.REQUEST_PERMISSIONS";
+ field public static final androidx.activity.result.contract.ActivityResultContracts.RequestMultiplePermissions.Companion Companion;
+ field public static final String EXTRA_PERMISSIONS = "androidx.activity.result.contract.extra.PERMISSIONS";
+ field public static final String EXTRA_PERMISSION_GRANT_RESULTS = "androidx.activity.result.contract.extra.PERMISSION_GRANT_RESULTS";
+ }
+
+ public static final class ActivityResultContracts.RequestMultiplePermissions.Companion {
+ }
+
+ public static final class ActivityResultContracts.RequestPermission extends androidx.activity.result.contract.ActivityResultContract<java.lang.String,java.lang.Boolean> {
+ ctor public ActivityResultContracts.RequestPermission();
+ method public android.content.Intent createIntent(android.content.Context context, String input);
+ method public androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.lang.Boolean>? getSynchronousResult(android.content.Context context, String input);
+ method public Boolean parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static final class ActivityResultContracts.StartActivityForResult extends androidx.activity.result.contract.ActivityResultContract<android.content.Intent,androidx.activity.result.ActivityResult> {
+ ctor public ActivityResultContracts.StartActivityForResult();
+ method public android.content.Intent createIntent(android.content.Context context, android.content.Intent input);
+ method public androidx.activity.result.ActivityResult parseResult(int resultCode, android.content.Intent? intent);
+ field public static final androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult.Companion Companion;
+ field public static final String EXTRA_ACTIVITY_OPTIONS_BUNDLE = "androidx.activity.result.contract.extra.ACTIVITY_OPTIONS_BUNDLE";
+ }
+
+ public static final class ActivityResultContracts.StartActivityForResult.Companion {
+ }
+
+ public static final class ActivityResultContracts.StartIntentSenderForResult extends androidx.activity.result.contract.ActivityResultContract<androidx.activity.result.IntentSenderRequest,androidx.activity.result.ActivityResult> {
+ ctor public ActivityResultContracts.StartIntentSenderForResult();
+ method public android.content.Intent createIntent(android.content.Context context, androidx.activity.result.IntentSenderRequest input);
+ method public androidx.activity.result.ActivityResult parseResult(int resultCode, android.content.Intent? intent);
+ field public static final String ACTION_INTENT_SENDER_REQUEST = "androidx.activity.result.contract.action.INTENT_SENDER_REQUEST";
+ field public static final androidx.activity.result.contract.ActivityResultContracts.StartIntentSenderForResult.Companion Companion;
+ field public static final String EXTRA_INTENT_SENDER_REQUEST = "androidx.activity.result.contract.extra.INTENT_SENDER_REQUEST";
+ field public static final String EXTRA_SEND_INTENT_EXCEPTION = "androidx.activity.result.contract.extra.SEND_INTENT_EXCEPTION";
+ }
+
+ public static final class ActivityResultContracts.StartIntentSenderForResult.Companion {
+ }
+
+ public static class ActivityResultContracts.TakePicture extends androidx.activity.result.contract.ActivityResultContract<android.net.Uri,java.lang.Boolean> {
+ ctor public ActivityResultContracts.TakePicture();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, android.net.Uri input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<java.lang.Boolean>? getSynchronousResult(android.content.Context context, android.net.Uri input);
+ method public final Boolean parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ public static class ActivityResultContracts.TakePicturePreview extends androidx.activity.result.contract.ActivityResultContract<java.lang.Void,android.graphics.Bitmap> {
+ ctor public ActivityResultContracts.TakePicturePreview();
+ method @CallSuper public android.content.Intent createIntent(android.content.Context context, Void? input);
+ method public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.graphics.Bitmap>? getSynchronousResult(android.content.Context context, Void? input);
+ method public final android.graphics.Bitmap? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+ @Deprecated public static class ActivityResultContracts.TakeVideo extends androidx.activity.result.contract.ActivityResultContract<android.net.Uri,android.graphics.Bitmap> {
+ ctor @Deprecated public ActivityResultContracts.TakeVideo();
+ method @Deprecated @CallSuper public android.content.Intent createIntent(android.content.Context context, android.net.Uri input);
+ method @Deprecated public final androidx.activity.result.contract.ActivityResultContract.SynchronousResult<android.graphics.Bitmap>? getSynchronousResult(android.content.Context context, android.net.Uri input);
+ method @Deprecated public final android.graphics.Bitmap? parseResult(int resultCode, android.content.Intent? intent);
+ }
+
+}
+
diff --git a/activity/activity/build.gradle b/activity/activity/build.gradle
index f30a135..91a8e4d 100644
--- a/activity/activity/build.gradle
+++ b/activity/activity/build.gradle
@@ -17,11 +17,11 @@
dependencies {
api("androidx.annotation:annotation:1.1.0")
implementation("androidx.collection:collection:1.0.0")
- api(projectOrArtifact(":core:core"))
- api(projectOrArtifact(":lifecycle:lifecycle-runtime"))
- api(projectOrArtifact(":lifecycle:lifecycle-viewmodel"))
- api(projectOrArtifact(":savedstate:savedstate"))
- api(projectOrArtifact(":lifecycle:lifecycle-viewmodel-savedstate"))
+ api("androidx.core:core:1.8.0-rc01")
+ api("androidx.lifecycle:lifecycle-runtime:2.5.0-rc01")
+ api("androidx.lifecycle:lifecycle-viewmodel:2.5.0-rc01")
+ api("androidx.savedstate:savedstate:1.2.0-rc01")
+ api("androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.0-rc01")
implementation("androidx.tracing:tracing:1.0.0")
api(libs.kotlinStdlib)
diff --git a/activity/activity/lint-baseline.xml b/activity/activity/lint-baseline.xml
new file mode 100644
index 0000000..57e0a5f
--- /dev/null
+++ b/activity/activity/lint-baseline.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.3.0-alpha07" type="baseline" client="gradle" dependencies="false" name="AGP (7.3.0-alpha07)" variant="all" version="7.3.0-alpha07">
+
+ <issue
+ id="NewApi"
+ message="Call requires API level 33 (current min is 14): `android.os.ext.SdkExtensions#getExtensionVersion`"
+ errorLine1=" getExtensionVersion(Build.VERSION_CODES.R) >= 2"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/result/contract/ActivityResultContracts.kt"
+ line="626"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="NewApi"
+ message="Call requires API level 33 (current min is 14): `android.os.ext.SdkExtensions#getExtensionVersion`"
+ errorLine1=" getExtensionVersion(Build.VERSION_CODES.R) >= 2"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/result/contract/ActivityResultContracts.kt"
+ line="626"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="NewApi"
+ message="Call requires API level 33 (current min is 19): `android.provider.MediaStore#getPickImagesMaxLimit`"
+ errorLine1=" require(maxItems <= MediaStore.getPickImagesMaxLimit()) {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/result/contract/ActivityResultContracts.kt"
+ line="734"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="NewApi"
+ message="Call requires API level 33 (current min is 19): `android.provider.MediaStore#getPickImagesMaxLimit`"
+ errorLine1=" MediaStore.getPickImagesMaxLimit()"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/result/contract/ActivityResultContracts.kt"
+ line="779"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" getExtensionVersion(Build.VERSION_CODES.R) >= 2"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/result/contract/ActivityResultContracts.kt"
+ line="626"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.activity.result.contract.ActivityResultContracts.PickVisualMedia.Companion is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" getExtensionVersion(Build.VERSION_CODES.R) >= 2"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/result/contract/ActivityResultContracts.kt"
+ line="626"
+ column="21"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.activity.result.contract.ActivityResultContracts.PickMultipleVisualMedia is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" require(maxItems <= MediaStore.getPickImagesMaxLimit()) {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/result/contract/ActivityResultContracts.kt"
+ line="734"
+ column="52"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.activity.result.contract.ActivityResultContracts.PickMultipleVisualMedia.Companion is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" MediaStore.getPickImagesMaxLimit()"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/result/contract/ActivityResultContracts.kt"
+ line="779"
+ column="28"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.activity.ComponentActivity is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" mOnBackPressedDispatcher.setOnBackInvokedDispatcher(getOnBackInvokedDispatcher());"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/activity/ComponentActivity.java"
+ line="357"
+ column="65"/>
+ </issue>
+
+</issues>
\ No newline at end of file
diff --git a/activity/settings.gradle b/activity/settings.gradle
index 5907a5b..34492d9 100644
--- a/activity/settings.gradle
+++ b/activity/settings.gradle
@@ -28,8 +28,10 @@
setupPlayground("..")
selectProjectsFromAndroidX({ name ->
if (name.startsWith(":activity")) return true
- if (name == ":annotation:annotation-sampled") return true
+ if (name.startsWith(":lifecycle")) return true
+ if (name.startsWith(":annotation")) return true
if (name == ":internal-testutils-runtime") return true
+ if (name == ":internal-testutils-truth") return true
if (isNeededForComposePlayground(name)) return true
return false
})
diff --git a/appcompat/appcompat/build.gradle b/appcompat/appcompat/build.gradle
index ca45019..06820cb 100644
--- a/appcompat/appcompat/build.gradle
+++ b/appcompat/appcompat/build.gradle
@@ -11,8 +11,8 @@
api("androidx.annotation:annotation:1.3.0")
api(project(":core:core"))
- implementation(project(":emoji2:emoji2"))
- implementation(project(":emoji2:emoji2-views-helper"))
+ implementation("androidx.emoji2:emoji2:1.2.0-alpha04")
+ implementation("androidx.emoji2:emoji2-views-helper:1.2.0-alpha04")
implementation("androidx.collection:collection:1.0.0")
api("androidx.cursoradapter:cursoradapter:1.0.0")
api(project(":activity:activity"))
diff --git a/appsearch/appsearch-platform-storage/lint-baseline.xml b/appsearch/appsearch-platform-storage/lint-baseline.xml
index c293d09..b9f27c8 100644
--- a/appsearch/appsearch-platform-storage/lint-baseline.xml
+++ b/appsearch/appsearch-platform-storage/lint-baseline.xml
@@ -474,4 +474,114 @@
column="21"/>
</issue>
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.appsearch.platformstorage.converter.GetSchemaResponseToPlatformConverter is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" platformResponse.getSchemaTypesNotDisplayedBySystem()) {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appsearch/platformstorage/converter/GetSchemaResponseToPlatformConverter.java"
+ line="64"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.appsearch.platformstorage.converter.GetSchemaResponseToPlatformConverter is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" platformResponse.getRequiredPermissionsForSchemaTypeVisibility().entrySet()) {"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appsearch/platformstorage/converter/GetSchemaResponseToPlatformConverter.java"
+ line="71"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.appsearch.platformstorage.converter.GetSchemaResponseToPlatformConverter is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" platformResponse.getSchemaTypesVisibleToPackages();"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appsearch/platformstorage/converter/GetSchemaResponseToPlatformConverter.java"
+ line="91"
+ column="34"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.appsearch.platformstorage.GlobalSearchSessionImpl is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" mPlatformSession.getByDocumentId(packageName, databaseName,"
+ errorLine2=" ~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appsearch/platformstorage/GlobalSearchSessionImpl.java"
+ line="95"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.appsearch.platformstorage.GlobalSearchSessionImpl is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" mPlatformSession.getSchema("
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appsearch/platformstorage/GlobalSearchSessionImpl.java"
+ line="144"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.appsearch.platformstorage.GlobalSearchSessionImpl is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" mPlatformSession.registerObserverCallback("
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appsearch/platformstorage/GlobalSearchSessionImpl.java"
+ line="210"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.appsearch.platformstorage.GlobalSearchSessionImpl is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" mPlatformSession.unregisterObserverCallback(targetPackageName,"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appsearch/platformstorage/GlobalSearchSessionImpl.java"
+ line="249"
+ column="38"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.appsearch.platformstorage.converter.SearchResultToPlatformConverter is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" platformMatchInfo.getSubmatchRange().getStart(),"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appsearch/platformstorage/converter/SearchResultToPlatformConverter.java"
+ line="76"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.appsearch.platformstorage.converter.SearchResultToPlatformConverter is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" platformMatchInfo.getSubmatchRange().getEnd()));"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appsearch/platformstorage/converter/SearchResultToPlatformConverter.java"
+ line="77"
+ column="47"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.appsearch.platformstorage.converter.SetSchemaRequestToPlatformConverter is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" platformBuilder.addRequiredPermissionsForSchemaTypeVisibility("
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/appsearch/platformstorage/converter/SetSchemaRequestToPlatformConverter.java"
+ line="83"
+ column="37"/>
+ </issue>
+
</issues>
diff --git a/benchmark/integration-tests/macrobenchmark-target/src/main/AndroidManifest.xml b/benchmark/integration-tests/macrobenchmark-target/src/main/AndroidManifest.xml
index abd247c..b42a78b 100644
--- a/benchmark/integration-tests/macrobenchmark-target/src/main/AndroidManifest.xml
+++ b/benchmark/integration-tests/macrobenchmark-target/src/main/AndroidManifest.xml
@@ -98,5 +98,14 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
+
+ <activity
+ android:name=".GridRecyclerActivity"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="androidx.benchmark.integration.macrobenchmark.target.GRID_RECYCLER_ACTIVITY" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
</application>
</manifest>
diff --git a/benchmark/integration-tests/macrobenchmark-target/src/main/java/androidx/benchmark/integration/macrobenchmark/target/Entry.kt b/benchmark/integration-tests/macrobenchmark-target/src/main/java/androidx/benchmark/integration/macrobenchmark/target/Entry.kt
index 9903ed1..2a0e8e5 100644
--- a/benchmark/integration-tests/macrobenchmark-target/src/main/java/androidx/benchmark/integration/macrobenchmark/target/Entry.kt
+++ b/benchmark/integration-tests/macrobenchmark-target/src/main/java/androidx/benchmark/integration/macrobenchmark/target/Entry.kt
@@ -20,6 +20,7 @@
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
+import androidx.annotation.LayoutRes
import androidx.recyclerview.widget.RecyclerView
data class Entry(val contents: String)
@@ -28,10 +29,13 @@
val content: TextView = itemView.findViewById(R.id.content)
}
-class EntryAdapter(private val entries: List<Entry>) : RecyclerView.Adapter<EntryViewHolder>() {
+class EntryAdapter(
+ private val entries: List<Entry>,
+ @LayoutRes val itemResId: Int = R.layout.recycler_row
+) : RecyclerView.Adapter<EntryViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): EntryViewHolder {
val inflater = LayoutInflater.from(parent.context)
- val itemView = inflater.inflate(R.layout.recycler_row, parent, false)
+ val itemView = inflater.inflate(itemResId, parent, false)
return EntryViewHolder(itemView)
}
diff --git a/benchmark/integration-tests/macrobenchmark-target/src/main/java/androidx/benchmark/integration/macrobenchmark/target/GridRecyclerActivity.kt b/benchmark/integration-tests/macrobenchmark-target/src/main/java/androidx/benchmark/integration/macrobenchmark/target/GridRecyclerActivity.kt
new file mode 100644
index 0000000..dc965ec
--- /dev/null
+++ b/benchmark/integration-tests/macrobenchmark-target/src/main/java/androidx/benchmark/integration/macrobenchmark/target/GridRecyclerActivity.kt
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2022 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.
+ */
+
+package androidx.benchmark.integration.macrobenchmark.target
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import androidx.recyclerview.widget.GridLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+
+class GridRecyclerActivity : AppCompatActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ title = "Grid Sample"
+ setContentView(R.layout.activity_recycler_view)
+ val recycler = findViewById<RecyclerView>(R.id.recycler)
+ val itemCount = intent.getIntExtra(EXTRA_ITEM_COUNT, 12000)
+ val adapter = EntryAdapter(entries(itemCount), itemResId = R.layout.recycler_grid_cell)
+ recycler.layoutManager = GridLayoutManager(this, 4)
+ recycler.adapter = adapter
+ }
+
+ private fun entries(size: Int) = List(size) {
+ Entry("$it")
+ }
+
+ companion object {
+ const val EXTRA_ITEM_COUNT = "ITEM_COUNT"
+ }
+}
diff --git a/benchmark/integration-tests/macrobenchmark-target/src/main/res/layout/recycler_grid_cell.xml b/benchmark/integration-tests/macrobenchmark-target/src/main/res/layout/recycler_grid_cell.xml
new file mode 100644
index 0000000..ededd47
--- /dev/null
+++ b/benchmark/integration-tests/macrobenchmark-target/src/main/res/layout/recycler_grid_cell.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+ Copyright 2022 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.
+ -->
+<androidx.cardview.widget.CardView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/card"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_margin="8dp">
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/content"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="16dp"
+ android:textSize="24sp"
+ android:layout_gravity="center"
+ tools:text="Sample text" />
+
+</androidx.cardview.widget.CardView>
\ No newline at end of file
diff --git a/benchmark/integration-tests/macrobenchmark/src/androidTest/java/androidx/benchmark/integration/macrobenchmark/GridBenchmark.kt b/benchmark/integration-tests/macrobenchmark/src/androidTest/java/androidx/benchmark/integration/macrobenchmark/GridBenchmark.kt
new file mode 100644
index 0000000..6a71552
--- /dev/null
+++ b/benchmark/integration-tests/macrobenchmark/src/androidTest/java/androidx/benchmark/integration/macrobenchmark/GridBenchmark.kt
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2022 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.
+ */
+
+package androidx.benchmark.integration.macrobenchmark
+
+import android.content.Intent
+import android.graphics.Point
+import androidx.benchmark.macro.CompilationMode
+import androidx.benchmark.macro.FrameTimingGfxInfoMetric
+import androidx.benchmark.macro.FrameTimingMetric
+import androidx.benchmark.macro.junit4.MacrobenchmarkRule
+import androidx.test.filters.LargeTest
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.By
+import androidx.test.uiautomator.UiDevice
+import androidx.testutils.createCompilationParams
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.Parameterized
+
+@LargeTest
+@RunWith(Parameterized::class)
+class GridBenchmark(
+ private val compilationMode: CompilationMode
+) {
+ @get:Rule
+ val benchmarkRule = MacrobenchmarkRule()
+
+ private lateinit var device: UiDevice
+
+ @Before
+ fun setUp() {
+ val instrumentation = InstrumentationRegistry.getInstrumentation()
+ device = UiDevice.getInstance(instrumentation)
+ }
+
+ @Test
+ fun scroll() {
+ benchmarkRule.measureRepeated(
+ packageName = PACKAGE_NAME,
+ metrics = listOf(FrameTimingMetric(), FrameTimingGfxInfoMetric()),
+ compilationMode = compilationMode,
+ iterations = 10,
+ setupBlock = {
+ val intent = Intent()
+ intent.action = ACTION
+ startActivityAndWait(intent)
+ }
+ ) {
+ val recycler = device.findObject(By.res(PACKAGE_NAME, RESOURCE_ID))
+ // Setting a gesture margin is important otherwise gesture nav is triggered.
+ recycler.setGestureMargin(device.displayWidth / 5)
+ repeat(10) {
+ // From center we scroll 2/3 of it which is 1/3 of the screen.
+ recycler.drag(Point(0, recycler.visibleCenter.y / 3))
+ device.waitForIdle()
+ }
+ }
+ }
+
+ companion object {
+ private const val PACKAGE_NAME = "androidx.benchmark.integration.macrobenchmark.target"
+ private const val ACTION =
+ "androidx.benchmark.integration.macrobenchmark.target.GRID_RECYCLER_ACTIVITY"
+ private const val RESOURCE_ID = "recycler"
+
+ @Parameterized.Parameters(name = "compilation={0}")
+ @JvmStatic
+ fun parameters() = createCompilationParams()
+ }
+}
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
index c688f1a..1ff8834 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/AndroidXImplPlugin.kt
@@ -319,7 +319,7 @@
}
}
- @Suppress("UnstableApiUsage") // AGP DSL APIs
+ @Suppress("UnstableApiUsage", "DEPRECATION") // AGP DSL APIs
private fun configureWithLibraryPlugin(
project: Project,
androidXExtension: AndroidXExtension
@@ -327,6 +327,20 @@
val libraryExtension = project.extensions.getByType<LibraryExtension>().apply {
configureAndroidBaseOptions(project, androidXExtension)
configureAndroidLibraryOptions(project, androidXExtension)
+
+ // Make sure the main Kotlin source set doesn't contain anything under src/main/kotlin.
+ val mainKotlinSrcDir = (sourceSets.findByName("main")?.kotlin
+ as com.android.build.gradle.api.AndroidSourceDirectorySet)
+ .srcDirs
+ .filter { it.name == "kotlin" }
+ .getOrNull(0)
+ if (mainKotlinSrcDir?.isDirectory == true) {
+ throw GradleException(
+ "Invalid project structure! AndroidX does not support \"kotlin\" as a " +
+ "top-level source directory for libraries, use \"java\" instead: " +
+ mainKotlinSrcDir.path
+ )
+ }
}
project.extensions.getByType<com.android.build.api.dsl.LibraryExtension>().apply {
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/playground/VerifyPlaygroundGradleConfigurationTask.kt b/buildSrc/private/src/main/kotlin/androidx/build/playground/VerifyPlaygroundGradleConfigurationTask.kt
index 21d5323..1fff94c 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/playground/VerifyPlaygroundGradleConfigurationTask.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/playground/VerifyPlaygroundGradleConfigurationTask.kt
@@ -17,6 +17,8 @@
package androidx.build.playground
import com.google.common.annotations.VisibleForTesting
+import java.io.File
+import java.util.Properties
import org.gradle.api.DefaultTask
import org.gradle.api.GradleException
import org.gradle.api.Project
@@ -25,8 +27,6 @@
import org.gradle.api.tasks.OutputFile
import org.gradle.api.tasks.TaskAction
import org.gradle.api.tasks.TaskProvider
-import java.io.File
-import java.util.Properties
/**
* Compares the playground Gradle configuration with the main androidx Gradle configuration
@@ -71,10 +71,12 @@
playgroundGradleWrapper.get().asFile
)
if (androidxGradleVersion != playgroundGradleVersion) {
- throw GradleException("""
+ throw GradleException(
+ """
Playground gradle version ($playgroundGradleVersion) must match the AndroidX main
build gradle version ($androidxGradleVersion).
- """.trimIndent())
+ """.trimIndent()
+ )
}
}
@@ -99,15 +101,26 @@
// this includes properties that are not defined in the root androidx build as they might
// be properties which can alter the build output. We might consider allow listing certain
// properties in the future if necessary.
- playgroundProperties.forEach {
- val rootValue = rootProperties[it.key]
- if (rootValue != it.value && it.key != "org.gradle.jvmargs") {
+ val propertyKeys = rootProperties.keys + playgroundProperties.keys
+ propertyKeys.forEach { key ->
+ val rootValue = rootProperties[key]
+ val playgroundValue = playgroundProperties[key]
+
+ if (rootValue != playgroundValue &&
+ !ignoredProperties.contains(key) &&
+ exceptedProperties[key] != playgroundValue
+ ) {
throw GradleException(
"""
- ${it.key} is defined as ${it.value} in playground properties but
- it does not match the value defined in root properties file ($rootValue).
- Having inconsistent properties in playground projects might trigger wrong
- compilation output in the main AndroidX build, thus not allowed.
+ $key is defined in ${androidxProperties.get().asFile.absolutePath} as
+ $rootValue, which differs from $playgroundValue defined in
+ ${this.playgroundProperties.get().asFile.absolutePath}. If this change is
+ intentional, you can ignore it by adding it to ignoredProperties in
+ VerifyPlaygroundGradleConfigurationTask.kt
+
+ Note: Having inconsistent properties in playground projects might trigger wrong
+ compilation output in the main AndroidX build, so if a property is defined in
+ playground properties, its value **MUST** match that of regular AndroidX build.
""".trimIndent()
)
}
@@ -123,6 +136,21 @@
companion object {
private const val TASK_NAME = "verifyPlaygroundGradleConfiguration"
+ // A mapping of the expected override in playground, which should generally follow AOSP on
+ // androidx-main. Generally, should only be used for conflicting properties which have
+ // different values in different built targets on AOSP, but still should be declared in
+ // playground.
+ private val exceptedProperties = mapOf(
+ "androidx.writeVersionedApiFiles" to "true",
+ )
+
+ private val ignoredProperties = setOf(
+ "org.gradle.jvmargs",
+ "org.gradle.daemon",
+ "android.builder.sdkDownload",
+ "android.suppressUnsupportedCompileSdk",
+ )
+
/**
* Regular expression to extract the gradle version from a distributionUrl property.
* Sample input looks like: <some-path>/gradle-7.3-rc-2-all.zip
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/util/ArrayRingBuffer.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/util/ArrayRingBuffer.java
new file mode 100644
index 0000000..aca7060
--- /dev/null
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/util/ArrayRingBuffer.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2022 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.
+ */
+
+package androidx.camera.camera2.internal.util;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import java.util.ArrayDeque;
+
+/**
+ * Implements {@link RingBuffer} with an {@link ArrayDeque}.
+ *
+ * @param <T> the type of elements stored in the RingBuffer.
+ */
+public class ArrayRingBuffer<T> implements RingBuffer<T> {
+
+ private final int mRingBufferCapacity;
+ private final ArrayDeque<T> mBuffer;
+ @Nullable final OnRemoveCallback<T> mOnRemoveCallback;
+
+ public ArrayRingBuffer(int ringBufferCapacity) {
+ this(ringBufferCapacity, null);
+ }
+
+ public ArrayRingBuffer(int ringBufferCapacity, @Nullable OnRemoveCallback<T> onRemoveCallback) {
+ mRingBufferCapacity = ringBufferCapacity;
+ mBuffer = new ArrayDeque<>(mRingBufferCapacity);
+ mOnRemoveCallback = onRemoveCallback;
+ }
+
+ @Override
+ public void enqueue(@NonNull T element) {
+ if (mBuffer.size() >= mRingBufferCapacity) {
+ T removedItem = this.dequeue();
+ if (mOnRemoveCallback != null) {
+ mOnRemoveCallback.onRemove(removedItem);
+ }
+ }
+ mBuffer.addFirst(element);
+ }
+
+ @Override
+ public @NonNull T dequeue() {
+ T removedElement = mBuffer.removeLast();
+ return removedElement;
+ }
+
+ @Override
+ public int getMaxCapacity() {
+ return mRingBufferCapacity;
+ }
+}
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/util/ArrayRingBufferTest.kt b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/util/ArrayRingBufferTest.kt
new file mode 100644
index 0000000..d147aa7
--- /dev/null
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/util/ArrayRingBufferTest.kt
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2022 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.
+ */
+package androidx.camera.camera2.internal.util
+
+import androidx.camera.camera2.internal.util.RingBuffer.OnRemoveCallback
+import androidx.testutils.assertThrows
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+import org.mockito.Mockito.any
+import org.mockito.Mockito.mock
+import org.mockito.Mockito.times
+import org.mockito.Mockito.verify
+
+@RunWith(JUnit4::class)
+class ArrayRingBufferTest {
+
+ @Test
+ fun testEnqueue() {
+ val testBuffer: RingBuffer<Int> =
+ androidx.camera.camera2.internal.util.ArrayRingBuffer(3)
+ testBuffer.enqueue(1)
+ testBuffer.enqueue(2)
+ testBuffer.enqueue(3)
+ testBuffer.enqueue(4)
+ assertThat(testBuffer.dequeue()).isEqualTo(2)
+ }
+
+ @Test
+ fun testDequeue_correctValueIsDequeued() {
+ @Suppress("UNCHECKED_CAST")
+ val mockCallback: OnRemoveCallback<Int> = mock(
+ OnRemoveCallback::class.java) as OnRemoveCallback<Int>
+
+ val testBuffer: RingBuffer<Int> =
+ androidx.camera.camera2.internal.util.ArrayRingBuffer(
+ 3,
+ mockCallback
+ )
+ testBuffer.enqueue(1)
+ testBuffer.enqueue(2)
+ testBuffer.enqueue(3)
+ assertThat(testBuffer.dequeue()).isEqualTo(1)
+ verify(mockCallback, times(0)).onRemove(any())
+ }
+
+ @Test
+ fun testDequeue_OnRemoveCallbackCalledOnlyWhenDiscardingItemsDueToCapacity() {
+ @Suppress("UNCHECKED_CAST")
+ val mockCallback: OnRemoveCallback<Int> = mock(
+ OnRemoveCallback::class.java) as OnRemoveCallback<Int>
+
+ val testBuffer: RingBuffer<Int> =
+ androidx.camera.camera2.internal.util.ArrayRingBuffer(
+ 3,
+ mockCallback
+ )
+ testBuffer.enqueue(1)
+ testBuffer.enqueue(2)
+ testBuffer.enqueue(3)
+ testBuffer.enqueue(4)
+ verify(mockCallback).onRemove(1)
+ assertThat(testBuffer.dequeue()).isEqualTo(2)
+ verify(mockCallback, times(1)).onRemove(any())
+ }
+
+ @Test()
+ fun testDequeue_exceptionThrownWhenBufferEmpty() {
+ val testBuffer: RingBuffer<Int> =
+ androidx.camera.camera2.internal.util.ArrayRingBuffer(5)
+ assertThrows(NoSuchElementException::class.java, testBuffer::dequeue)
+ }
+}
\ No newline at end of file
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/util/ZslRingBuffer.java b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/util/ZslRingBuffer.java
new file mode 100644
index 0000000..0b70d28
--- /dev/null
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/util/ZslRingBuffer.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2022 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.
+ */
+
+package androidx.camera.camera2.internal.util;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+import androidx.camera.core.ImageInfo;
+import androidx.camera.core.ImageProxy;
+import androidx.camera.core.impl.CameraCaptureMetaData.AeState;
+import androidx.camera.core.impl.CameraCaptureMetaData.AfState;
+import androidx.camera.core.impl.CameraCaptureMetaData.AwbState;
+import androidx.camera.core.impl.CameraCaptureResult;
+import androidx.camera.core.impl.CameraCaptureResults;
+
+/**
+ * Used for storing frames for ZSL capture.
+ *
+ * <p>Enqueueing process ignores frames when the quality is inadequate for ZSL capture.</p>
+ *
+ * <p>Adequate quality is defined as:
+ * - AF Focused
+ * - AE Converged
+ * - AWB Converged
+ * </p>
+ */
+@RequiresApi(21)
+public final class ZslRingBuffer extends ArrayRingBuffer<ImageProxy> {
+
+ public ZslRingBuffer(int ringBufferCapacity,
+ @NonNull OnRemoveCallback<ImageProxy> onRemoveCallback) {
+ super(ringBufferCapacity, onRemoveCallback);
+ }
+
+ @Override
+ public void enqueue(@NonNull ImageProxy imageProxy) {
+ if (isValidZslFrame(imageProxy.getImageInfo())) {
+ super.enqueue(imageProxy);
+ } else {
+ mOnRemoveCallback.onRemove(imageProxy);
+ }
+ }
+
+ private boolean isValidZslFrame(@NonNull ImageInfo imageInfo) {
+ CameraCaptureResult cameraCaptureResult =
+ CameraCaptureResults.retrieveCameraCaptureResult(imageInfo);
+
+ if (cameraCaptureResult.getAfState() != AfState.LOCKED_FOCUSED
+ && cameraCaptureResult.getAfState() != AfState.PASSIVE_FOCUSED) {
+ return false;
+ }
+
+ if (cameraCaptureResult.getAeState() != AeState.CONVERGED) {
+ return false;
+ }
+
+ if (cameraCaptureResult.getAwbState() != AwbState.CONVERGED) {
+ return false;
+ }
+
+ return true;
+ }
+}
diff --git a/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/util/ZslRingBufferTest.kt b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/util/ZslRingBufferTest.kt
new file mode 100644
index 0000000..4fcaff0
--- /dev/null
+++ b/camera/camera-camera2/src/androidTest/java/androidx/camera/camera2/internal/util/ZslRingBufferTest.kt
@@ -0,0 +1,109 @@
+/*
+ * Copyright 2022 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.
+ */
+package androidx.camera.camera2.internal.util
+
+import android.os.Build
+import androidx.annotation.RequiresApi
+import androidx.camera.core.ImageInfo
+import androidx.camera.core.ImageProxy
+import androidx.camera.core.impl.CameraCaptureMetaData.AeState
+import androidx.camera.core.impl.CameraCaptureMetaData.AfState
+import androidx.camera.core.impl.CameraCaptureMetaData.AwbState
+import androidx.camera.core.impl.CameraCaptureResult
+import androidx.camera.core.internal.CameraCaptureResultImageInfo
+import androidx.camera.camera2.internal.util.RingBuffer.OnRemoveCallback
+import androidx.camera.testing.fakes.FakeImageProxy
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+import org.mockito.Mockito.`when`
+import org.mockito.Mockito.any
+import org.mockito.Mockito.mock
+import org.mockito.Mockito.times
+import org.mockito.Mockito.verify
+
+@RunWith(JUnit4::class)
+@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
+class ZslRingBufferTest {
+
+ lateinit var mMockedCameraCaptureResult: CameraCaptureResult
+
+ @Before
+ fun setup() {
+ mMockedCameraCaptureResult = mock(CameraCaptureResult::class.java)
+ `when`(mMockedCameraCaptureResult.aeState).thenReturn(AeState.CONVERGED)
+ `when`(mMockedCameraCaptureResult.afState).thenReturn(AfState.LOCKED_FOCUSED)
+ `when`(mMockedCameraCaptureResult.awbState).thenReturn(AwbState.CONVERGED)
+ }
+
+ @Test
+ fun enqueue_ensureOldFramesAreRemoved() {
+ @Suppress("UNCHECKED_CAST")
+ val onRemoveCallback = mock(OnRemoveCallback::class.java) as OnRemoveCallback<ImageProxy>
+ val ringBuffer = androidx.camera.camera2.internal.util.ZslRingBuffer(
+ 2,
+ onRemoveCallback
+ )
+
+ val imageInfo: ImageInfo = CameraCaptureResultImageInfo(mMockedCameraCaptureResult)
+
+ val imageProxy1 = FakeImageProxy(imageInfo)
+ ringBuffer.enqueue(imageProxy1)
+ ringBuffer.enqueue(FakeImageProxy(imageInfo))
+ ringBuffer.enqueue(FakeImageProxy(imageInfo))
+
+ verify(onRemoveCallback).onRemove(imageProxy1)
+ verify(onRemoveCallback, times(1)).onRemove(any())
+ }
+
+ @Test
+ fun enqueue_framesWithBad3AStatesNotQueued() {
+ @Suppress("UNCHECKED_CAST")
+ val onRemoveCallback = mock(OnRemoveCallback::class.java) as OnRemoveCallback<ImageProxy>
+ val ringBuffer = androidx.camera.camera2.internal.util.ZslRingBuffer(
+ 2,
+ onRemoveCallback
+ )
+
+ val imageInfo: ImageInfo = CameraCaptureResultImageInfo(mMockedCameraCaptureResult)
+
+ val imageProxy1 = FakeImageProxy(imageInfo)
+ ringBuffer.enqueue(imageProxy1)
+
+ `when`(mMockedCameraCaptureResult.aeState).thenReturn(AeState.SEARCHING)
+ val imageProxy2 = FakeImageProxy(imageInfo)
+ ringBuffer.enqueue(imageProxy2)
+ verify(onRemoveCallback, times(1)).onRemove(imageProxy2)
+ `when`(mMockedCameraCaptureResult.aeState).thenReturn(AeState.CONVERGED)
+
+ `when`(mMockedCameraCaptureResult.afState).thenReturn(AfState.PASSIVE_NOT_FOCUSED)
+ val imageProxy3 = FakeImageProxy(imageInfo)
+ ringBuffer.enqueue(imageProxy3)
+ verify(onRemoveCallback, times(1)).onRemove(imageProxy3)
+ `when`(mMockedCameraCaptureResult.afState).thenReturn(AfState.PASSIVE_NOT_FOCUSED)
+
+ `when`(mMockedCameraCaptureResult.awbState).thenReturn(AwbState.METERING)
+ val imageProxy4 = FakeImageProxy(imageInfo)
+ ringBuffer.enqueue(imageProxy4)
+ verify(onRemoveCallback, times(1)).onRemove(imageProxy4)
+ `when`(mMockedCameraCaptureResult.awbState).thenReturn(AwbState.CONVERGED)
+
+ verify(onRemoveCallback, times(3)).onRemove(any())
+ assertThat(ringBuffer.dequeue()).isEqualTo(imageProxy1)
+ }
+}
\ No newline at end of file
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/SupportedSurfaceCombination.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/SupportedSurfaceCombination.java
index bbbe4d1..d0b4e82 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/SupportedSurfaceCombination.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/SupportedSurfaceCombination.java
@@ -38,7 +38,7 @@
import androidx.camera.camera2.internal.compat.CameraManagerCompat;
import androidx.camera.camera2.internal.compat.workaround.ExcludedSupportedSizesContainer;
import androidx.camera.camera2.internal.compat.workaround.ExtraSupportedSurfaceCombinationsContainer;
-import androidx.camera.camera2.internal.compat.workaround.ResolutionSelector;
+import androidx.camera.camera2.internal.compat.workaround.ResolutionCorrector;
import androidx.camera.camera2.internal.compat.workaround.TargetAspectRatio;
import androidx.camera.core.AspectRatio;
import androidx.camera.core.CameraUnavailableException;
@@ -101,7 +101,7 @@
private Map<Integer, Size[]> mOutputSizesCache = new HashMap<>();
@NonNull
private final DisplayInfoManager mDisplayInfoManager;
- private final ResolutionSelector mResolutionSelector = new ResolutionSelector();
+ private final ResolutionCorrector mResolutionCorrector = new ResolutionCorrector();
SupportedSurfaceCombination(@NonNull Context context, @NonNull String cameraId,
@NonNull CameraManagerCompat cameraManagerCompat,
@@ -478,7 +478,7 @@
}
}
- supportedResolutions = mResolutionSelector.insertOrPrioritize(
+ supportedResolutions = mResolutionCorrector.insertOrPrioritize(
getConfigType(config.getInputFormat()),
supportedResolutions);
diff --git a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/workaround/ResolutionSelector.java b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/workaround/ResolutionCorrector.java
similarity index 91%
rename from camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/workaround/ResolutionSelector.java
rename to camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/workaround/ResolutionCorrector.java
index 8812500..467ceb8 100644
--- a/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/workaround/ResolutionSelector.java
+++ b/camera/camera-camera2/src/main/java/androidx/camera/camera2/internal/compat/workaround/ResolutionCorrector.java
@@ -34,23 +34,23 @@
* quirks.
*/
@RequiresApi(21)
-public class ResolutionSelector {
+public class ResolutionCorrector {
@Nullable
private final ExtraCroppingQuirk mExtraCroppingQuirk;
/**
- * Constructs new {@link ResolutionSelector}.
+ * Constructs new {@link ResolutionCorrector}.
*/
- public ResolutionSelector() {
+ public ResolutionCorrector() {
this(DeviceQuirks.get(ExtraCroppingQuirk.class));
}
/**
- * Constructs new {@link ResolutionSelector}.
+ * Constructs new {@link ResolutionCorrector}.
*/
@VisibleForTesting
- ResolutionSelector(@Nullable ExtraCroppingQuirk extraCroppingQuirk) {
+ ResolutionCorrector(@Nullable ExtraCroppingQuirk extraCroppingQuirk) {
mExtraCroppingQuirk = extraCroppingQuirk;
}
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2CapturePipelineTest.kt b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2CapturePipelineTest.kt
index 70e9f8d..a0d5b7f 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2CapturePipelineTest.kt
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/Camera2CapturePipelineTest.kt
@@ -55,7 +55,6 @@
import androidx.camera.testing.fakes.FakeImageProxy
import androidx.concurrent.futures.await
import androidx.test.core.app.ApplicationProvider
-import androidx.test.filters.FlakyTest
import com.google.common.truth.Truth
import com.google.common.truth.Truth.assertThat
import com.google.common.util.concurrent.ListenableFuture
@@ -132,7 +131,7 @@
executorService.shutdown()
}
- @FlakyTest(bugId = 228856476)
+ @Ignore // b/228856476
@Test
fun pipelineTest_preCapturePostCaptureShouldCalled() {
// Arrange.
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/quirk/ResolutionSelectorQuirkTest.java b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/quirk/ResolutionCorrectorQuirkTest.java
similarity index 97%
rename from camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/quirk/ResolutionSelectorQuirkTest.java
rename to camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/quirk/ResolutionCorrectorQuirkTest.java
index e1ce2e4..6faf911 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/quirk/ResolutionSelectorQuirkTest.java
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/quirk/ResolutionCorrectorQuirkTest.java
@@ -33,7 +33,7 @@
@RunWith(RobolectricTestRunner.class)
@DoNotInstrument
@Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
-public class ResolutionSelectorQuirkTest {
+public class ResolutionCorrectorQuirkTest {
@Test
diff --git a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/workaround/ResolutionSelectorTest.kt b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/workaround/ResolutionCorrectorTest.kt
similarity index 89%
rename from camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/workaround/ResolutionSelectorTest.kt
rename to camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/workaround/ResolutionCorrectorTest.kt
index 6f2d99f..98426d4 100644
--- a/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/workaround/ResolutionSelectorTest.kt
+++ b/camera/camera-camera2/src/test/java/androidx/camera/camera2/internal/compat/workaround/ResolutionCorrectorTest.kt
@@ -38,14 +38,14 @@
private val SUPPORTED_RESOLUTIONS = listOf(RESOLUTION_1, RESOLUTION_2)
/**
- * Unit test for [ResolutionSelector].
+ * Unit test for [ResolutionCorrector].
*/
@RunWith(RobolectricTestRunner::class)
@DoNotInstrument
@Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
-class ResolutionSelectorTest {
+class ResolutionCorrectorTest {
- private val mResolutionSelector = ResolutionSelector(object : ExtraCroppingQuirk() {
+ private val mResolutionCorrector = ResolutionCorrector(object : ExtraCroppingQuirk() {
override fun getVerifiedResolution(configType: SurfaceConfig.ConfigType): Size? {
return when (configType) {
SurfaceConfig.ConfigType.YUV -> SELECT_RESOLUTION_YUV
@@ -77,7 +77,7 @@
) {
val resolutions: MutableList<Size> = ArrayList<Size>(SUPPORTED_RESOLUTIONS)
resolutions.add(resolution)
- Truth.assertThat(mResolutionSelector.insertOrPrioritize(configType, resolutions))
+ Truth.assertThat(mResolutionCorrector.insertOrPrioritize(configType, resolutions))
.containsExactly(resolution, RESOLUTION_1, RESOLUTION_2).inOrder()
}
@@ -100,7 +100,7 @@
configType: SurfaceConfig.ConfigType,
resolution: Size
) {
- Truth.assertThat(mResolutionSelector.insertOrPrioritize(configType, SUPPORTED_RESOLUTIONS))
+ Truth.assertThat(mResolutionCorrector.insertOrPrioritize(configType, SUPPORTED_RESOLUTIONS))
.containsExactly(resolution, RESOLUTION_1, RESOLUTION_2).inOrder()
}
@@ -117,8 +117,8 @@
private fun noQuirk_returnsOriginalSupportedResolutions(
quirk: ExtraCroppingQuirk?
) {
- val resolutionSelector = ResolutionSelector(quirk)
- val result = resolutionSelector.insertOrPrioritize(
+ val resolutionCorrector = ResolutionCorrector(quirk)
+ val result = resolutionCorrector.insertOrPrioritize(
SurfaceConfig.ConfigType.PRIV,
SUPPORTED_RESOLUTIONS
)
diff --git a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/util/ExtensionsTestUtil.java b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/util/ExtensionsTestUtil.java
index d171589..57d7a47 100644
--- a/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/util/ExtensionsTestUtil.java
+++ b/camera/camera-extensions/src/androidTest/java/androidx/camera/extensions/util/ExtensionsTestUtil.java
@@ -43,8 +43,6 @@
import androidx.camera.extensions.impl.NightImageCaptureExtenderImpl;
import androidx.camera.extensions.impl.NightPreviewExtenderImpl;
import androidx.camera.extensions.impl.PreviewExtenderImpl;
-import androidx.camera.extensions.internal.ExtensionVersion;
-import androidx.camera.extensions.internal.Version;
import androidx.camera.extensions.internal.compat.workaround.ExtensionDisabledValidator;
import androidx.camera.testing.CameraUtil;
@@ -212,14 +210,7 @@
public static boolean extensionsDisabledByQuirk(@CameraSelector.LensFacing int lensFacing,
@ExtensionMode.Mode int extensionMode) {
- boolean isAdvancedExtenderSupported = false;
-
- if (ExtensionVersion.getRuntimeVersion().compareTo(Version.VERSION_1_2) >= 0) {
- isAdvancedExtenderSupported = ExtensionVersion.isAdvancedExtenderSupported();
- }
-
return new ExtensionDisabledValidator().shouldDisableExtension(
- CameraUtil.getCameraIdWithLensFacing(lensFacing), extensionMode,
- isAdvancedExtenderSupported);
+ CameraUtil.getCameraIdWithLensFacing(lensFacing), extensionMode);
}
}
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/AdvancedVendorExtender.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/AdvancedVendorExtender.java
index 831af2d..7715f57 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/AdvancedVendorExtender.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/AdvancedVendorExtender.java
@@ -101,7 +101,7 @@
public boolean isExtensionAvailable(@NonNull String cameraId,
@NonNull Map<String, CameraCharacteristics> characteristicsMap) {
- if (mExtensionDisabledValidator.shouldDisableExtension(cameraId, mMode, true)) {
+ if (mExtensionDisabledValidator.shouldDisableExtension(cameraId, mMode)) {
return false;
}
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/BasicVendorExtender.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/BasicVendorExtender.java
index a11ff2b..2a9f2d0 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/BasicVendorExtender.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/BasicVendorExtender.java
@@ -123,7 +123,7 @@
public boolean isExtensionAvailable(@NonNull String cameraId,
@NonNull Map<String, CameraCharacteristics> characteristicsMap) {
- if (mExtensionDisabledValidator.shouldDisableExtension(cameraId, mMode, false)) {
+ if (mExtensionDisabledValidator.shouldDisableExtension(cameraId, mMode)) {
return false;
}
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/compat/quirk/ExtensionDisabledQuirk.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/compat/quirk/ExtensionDisabledQuirk.java
index 75a3ee9..e746dc8 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/compat/quirk/ExtensionDisabledQuirk.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/compat/quirk/ExtensionDisabledQuirk.java
@@ -22,6 +22,8 @@
import androidx.annotation.RequiresApi;
import androidx.camera.core.impl.Quirk;
import androidx.camera.extensions.ExtensionMode;
+import androidx.camera.extensions.internal.ExtensionVersion;
+import androidx.camera.extensions.internal.Version;
/**
@@ -39,16 +41,21 @@
*/
@RequiresApi(21) // TODO(b/200306659): Remove and replace with annotation on package-info.java
public class ExtensionDisabledQuirk implements Quirk {
+ private boolean mIsAdvancedInterface = isAdvancedExtenderSupported();
+
static boolean load() {
- return isPixel5() || isMotoRazr5G();
+ return isPixel5() || isMotoRazr5G() || isAdvancedExtenderSupported();
}
/**
* Checks whether extension should be disabled.
*/
public boolean shouldDisableExtension(@NonNull String cameraId,
- @ExtensionMode.Mode int extensionMode, boolean isAdvancedInterface) {
- if (isPixel5() && !isAdvancedInterface) {
+ @ExtensionMode.Mode int extensionMode) {
+ if (mIsAdvancedInterface) {
+ // Force disable advanced interface until it is well tested
+ return true;
+ } else if (isPixel5() && !mIsAdvancedInterface) {
// 1. Disables Pixel 5's Basic Extender capability.
return true;
} else if (isMotoRazr5G() && ("0".equals(cameraId) || "1".equals(cameraId)) && (
@@ -67,4 +74,11 @@
private static boolean isMotoRazr5G() {
return "motorola".equalsIgnoreCase(Build.BRAND) && "smith".equalsIgnoreCase(Build.DEVICE);
}
+
+ private static boolean isAdvancedExtenderSupported() {
+ if (ExtensionVersion.getRuntimeVersion().compareTo(Version.VERSION_1_2) < 0) {
+ return false;
+ }
+ return ExtensionVersion.isAdvancedExtenderSupported();
+ }
}
diff --git a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/compat/workaround/ExtensionDisabledValidator.java b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/compat/workaround/ExtensionDisabledValidator.java
index ff7403e..3b9bcd1 100644
--- a/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/compat/workaround/ExtensionDisabledValidator.java
+++ b/camera/camera-extensions/src/main/java/androidx/camera/extensions/internal/compat/workaround/ExtensionDisabledValidator.java
@@ -41,8 +41,7 @@
* Checks whether extension should be disabled.
*/
public boolean shouldDisableExtension(@NonNull String cameraId,
- @ExtensionMode.Mode int extensionMode, boolean isAdvancedInterface) {
- return mQuirk != null && mQuirk.shouldDisableExtension(cameraId, extensionMode,
- isAdvancedInterface);
+ @ExtensionMode.Mode int extensionMode) {
+ return mQuirk != null && mQuirk.shouldDisableExtension(cameraId, extensionMode);
}
}
diff --git a/camera/camera-extensions/src/test/java/androidx/camera/extensions/internal/ExtensionVersionTest.java b/camera/camera-extensions/src/test/java/androidx/camera/extensions/internal/ExtensionVersionTest.java
index e3debf9..3d5fc8e 100644
--- a/camera/camera-extensions/src/test/java/androidx/camera/extensions/internal/ExtensionVersionTest.java
+++ b/camera/camera-extensions/src/test/java/androidx/camera/extensions/internal/ExtensionVersionTest.java
@@ -16,18 +16,16 @@
package androidx.camera.extensions.internal;
+import static androidx.camera.extensions.internal.util.ExtensionsTestUtil.resetSingleton;
+import static androidx.camera.extensions.internal.util.ExtensionsTestUtil.setTestApiVersion;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
import android.os.Build;
-import androidx.camera.extensions.impl.ExtensionVersionImpl;
-
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
@@ -103,34 +101,4 @@
public void clear() {
resetSingleton(ExtensionVersion.class, "sExtensionVersion");
}
-
- private void resetSingleton(Class clazz, String fieldName) {
- Field instance;
- try {
- instance = clazz.getDeclaredField(fieldName);
- instance.setAccessible(true);
- instance.set(null, null);
- } catch (Exception e) {
- throw new RuntimeException();
- }
- }
-
- private void setTestApiVersion(String testString) throws NoSuchFieldException,
- IllegalAccessException {
- ExtensionVersionImpl mockExtensionVersionImpl = mock(ExtensionVersionImpl.class);
- when(mockExtensionVersionImpl.checkApiVersion(anyString())).thenReturn(testString);
-
- Class<?> vendorExtenderVersioningClass = null;
-
- for (Class<?> clazz : ExtensionVersion.class.getDeclaredClasses()) {
- if (clazz.getSimpleName().equals("VendorExtenderVersioning")) {
- vendorExtenderVersioningClass = clazz;
- break;
- }
- }
-
- Field field = vendorExtenderVersioningClass.getDeclaredField("sImpl");
- field.setAccessible(true);
- field.set(null, mockExtensionVersionImpl);
- }
}
diff --git a/camera/camera-extensions/src/test/java/androidx/camera/extensions/internal/compat/workaround/ExtensionDisabledValidatorTest.kt b/camera/camera-extensions/src/test/java/androidx/camera/extensions/internal/compat/workaround/ExtensionDisabledValidatorTest.kt
index 2f4ddb0..8ed13da 100644
--- a/camera/camera-extensions/src/test/java/androidx/camera/extensions/internal/compat/workaround/ExtensionDisabledValidatorTest.kt
+++ b/camera/camera-extensions/src/test/java/androidx/camera/extensions/internal/compat/workaround/ExtensionDisabledValidatorTest.kt
@@ -18,7 +18,12 @@
import android.os.Build
import androidx.camera.extensions.ExtensionMode
+import androidx.camera.extensions.internal.ExtensionVersion
+import androidx.camera.extensions.internal.util.ExtensionsTestUtil.resetSingleton
+import androidx.camera.extensions.internal.util.ExtensionsTestUtil.setTestApiVersionAndAdvancedExtender
import com.google.common.truth.Truth.assertThat
+import org.junit.After
+import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.ParameterizedRobolectricTestRunner
@@ -28,9 +33,22 @@
@RunWith(ParameterizedRobolectricTestRunner::class)
@DoNotInstrument
-@Config(minSdk = Build.VERSION_CODES.LOLLIPOP)
+@Config(
+ minSdk = Build.VERSION_CODES.LOLLIPOP,
+ instrumentedPackages = arrayOf("androidx.camera.extensions.internal")
+)
class ExtensionDisabledValidatorTest(private val config: TestConfig) {
+ @Before
+ fun setUp() {
+ setTestApiVersionAndAdvancedExtender("1.2.0", config.isAdvancedInterface)
+ }
+
+ @After
+ fun tearDown() {
+ resetSingleton(ExtensionVersion::class.java, "sExtensionVersion")
+ }
+
@Test
fun shouldDisableExtensionMode() {
// Set up device properties
@@ -41,8 +59,7 @@
assertThat(
validator.shouldDisableExtension(
config.cameraId,
- config.extensionMode,
- config.isAdvancedInterface
+ config.extensionMode
)
).isEqualTo(config.shouldDisableExtension)
}
@@ -73,9 +90,9 @@
TestConfig("Google", "Redfin", "1", ExtensionMode.FACE_RETOUCH, false, true),
TestConfig("Google", "Redfin", "1", ExtensionMode.AUTO, false, true),
- // Pixel 5 extension capability is not disabled on advanced extender
- TestConfig("Google", "Redfin", "0", ExtensionMode.NIGHT, true, false),
- TestConfig("Google", "Redfin", "1", ExtensionMode.NIGHT, true, false),
+ // Pixel 5 extension capability is disabled on advanced extender until it is well tested
+ TestConfig("Google", "Redfin", "0", ExtensionMode.NIGHT, true, true),
+ TestConfig("Google", "Redfin", "1", ExtensionMode.NIGHT, true, true),
// Motorola Razr 5G bokeh mode is disabled. Other extension modes should still work.
TestConfig("Motorola", "Smith", "0", ExtensionMode.BOKEH, false, true),
@@ -87,7 +104,11 @@
// Other cases should be kept normal.
TestConfig("", "", "0", ExtensionMode.BOKEH, false, false),
- TestConfig("", "", "1", ExtensionMode.BOKEH, false, false)
+ TestConfig("", "", "1", ExtensionMode.BOKEH, false, false),
+
+ // Advanced extender is disabled for all devices until it is well tested
+ TestConfig("", "", "0", ExtensionMode.BOKEH, true, true),
+ TestConfig("", "", "1", ExtensionMode.BOKEH, true, true),
)
}
}
diff --git a/camera/camera-extensions/src/test/java/androidx/camera/extensions/internal/util/ExtensionsTestUtil.kt b/camera/camera-extensions/src/test/java/androidx/camera/extensions/internal/util/ExtensionsTestUtil.kt
new file mode 100644
index 0000000..445330e
--- /dev/null
+++ b/camera/camera-extensions/src/test/java/androidx/camera/extensions/internal/util/ExtensionsTestUtil.kt
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2022 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.
+ */
+
+package androidx.camera.extensions.internal.util
+
+import androidx.camera.extensions.impl.ExtensionVersionImpl
+import androidx.camera.extensions.internal.ExtensionVersion
+import java.lang.reflect.Field
+import org.mockito.ArgumentMatchers
+import org.mockito.Mockito
+
+/**
+ * Util functions for extensions related robolectric test
+ */
+object ExtensionsTestUtil {
+
+ /**
+ * Resets the field of the specified class
+ */
+ @JvmStatic
+ fun resetSingleton(clazz: Class<*>, fieldName: String) {
+ val instance: Field
+ try {
+ instance = clazz.getDeclaredField(fieldName)
+ instance.isAccessible = true
+ instance[null] = null
+ } catch (e: Exception) {
+ throw RuntimeException()
+ }
+ }
+
+ /**
+ * Sets vendor library extension version to the specified value.
+ */
+ @JvmStatic
+ fun setTestApiVersion(testString: String) {
+ setTestApiVersionAndAdvancedExtender(testString, false)
+ }
+
+ /**
+ * Sets vendor library extension version to the specified value.
+ */
+ @JvmStatic
+ fun setTestApiVersionAndAdvancedExtender(
+ testString: String,
+ isAdvancedExtenderImplemented: Boolean
+ ) {
+ val mockExtensionVersionImpl = Mockito.mock(
+ ExtensionVersionImpl::class.java
+ )
+ Mockito.`when`(mockExtensionVersionImpl.checkApiVersion(ArgumentMatchers.anyString()))
+ .thenReturn(testString)
+ Mockito.`when`(mockExtensionVersionImpl.isAdvancedExtenderImplemented())
+ .thenReturn(isAdvancedExtenderImplemented)
+ var vendorExtenderVersioningClass: Class<*>? = null
+ for (clazz in ExtensionVersion::class.java.declaredClasses) {
+ if (clazz.simpleName == "VendorExtenderVersioning") {
+ vendorExtenderVersioningClass = clazz
+ break
+ }
+ }
+ val field = vendorExtenderVersioningClass!!.getDeclaredField("sImpl")
+ field.isAccessible = true
+ field[null] = mockExtensionVersionImpl
+ }
+}
\ No newline at end of file
diff --git a/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/workaround/EncoderFinderTest.kt b/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/workaround/EncoderFinderTest.kt
index 51a363b..9a2d3db 100644
--- a/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/workaround/EncoderFinderTest.kt
+++ b/camera/camera-video/src/androidTest/java/androidx/camera/video/internal/workaround/EncoderFinderTest.kt
@@ -42,7 +42,6 @@
import org.junit.Assert.assertTrue
import org.junit.Assume
import org.junit.Before
-import org.junit.Ignore
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@@ -108,7 +107,6 @@
CameraXUtil.shutdown()[10, TimeUnit.SECONDS]
}
- @Ignore("b/228838778")
@LabTestRule.LabTestOnly
@Test
fun findEncoderForFormat_CamcorderProfile() {
diff --git a/camera/integration-tests/uiwidgetstestapp/build.gradle b/camera/integration-tests/uiwidgetstestapp/build.gradle
index 87fc3e1..3b12c88b 100644
--- a/camera/integration-tests/uiwidgetstestapp/build.gradle
+++ b/camera/integration-tests/uiwidgetstestapp/build.gradle
@@ -64,6 +64,9 @@
implementation(project(":window:window"))
implementation(project(":window:window-java"))
implementation(libs.constraintLayout)
+ implementation(libs.material) {
+ exclude group: "androidx.viewpager2", module: "viewpager2"
+ }
// Guava
implementation(libs.guavaAndroid)
diff --git a/camera/integration-tests/uiwidgetstestapp/src/androidTest/java/androidx/camera/integration/uiwidgets/viewpager/ViewPager2ActivityTest.kt b/camera/integration-tests/uiwidgetstestapp/src/androidTest/java/androidx/camera/integration/uiwidgets/viewpager/ViewPager2ActivityTest.kt
index 2eac455..1f21a3d 100644
--- a/camera/integration-tests/uiwidgetstestapp/src/androidTest/java/androidx/camera/integration/uiwidgets/viewpager/ViewPager2ActivityTest.kt
+++ b/camera/integration-tests/uiwidgetstestapp/src/androidTest/java/androidx/camera/integration/uiwidgets/viewpager/ViewPager2ActivityTest.kt
@@ -31,8 +31,7 @@
import androidx.test.core.app.ActivityScenario
import androidx.test.core.app.ApplicationProvider
import androidx.test.espresso.Espresso.onView
-import androidx.test.espresso.action.ViewActions.swipeLeft
-import androidx.test.espresso.action.ViewActions.swipeRight
+import androidx.test.espresso.action.ViewActions.click
import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
import androidx.test.espresso.matcher.ViewMatchers.withId
@@ -103,19 +102,20 @@
}
}
- // The test makes sure the TextureView surface texture keeps the same after swipe out/in.
+ // The test makes sure the TextureView surface texture keeps the same after switch.
@Test
- fun testPreviewViewUpdateAfterSwipeOutIn() {
+ fun testPreviewViewUpdateAfterSwitch() {
launchActivity(lensFacing).use { scenario ->
// At first, check Preview in stream state
assertStreamState(scenario, PreviewView.StreamState.STREAMING)
- // swipe out CameraFragment and then swipe in to check Preview update
- onView(withId(R.id.viewPager2)).perform(swipeLeft())
+ // Switch from CameraFragment to BlankFragment, and then switch back to check Preview
+ // update
+ onView(withId(ViewPager2Activity.BLANK_VIEW_ID)).perform(click())
onView(withId(R.id.blank_textview)).check(matches(isDisplayed()))
- onView(withId(R.id.viewPager2)).perform(swipeRight())
+ onView(withId(ViewPager2Activity.CAMERA_VIEW_ID)).perform(click())
onView(withId(R.id.preview_textureview)).check(matches(isDisplayed()))
// For b/149877652, need to check if the surface texture of TextureView continues
@@ -125,26 +125,27 @@
}
@Test
- fun testPreviewViewUpdateAfterSwipeOutAndStop_ResumeAndSwipeIn() {
+ fun testPreviewViewUpdateAfterSwitchAndStop_ResumeAndSwitchBack() {
launchActivity(lensFacing).use { scenario ->
// At first, check Preview in stream state
assertStreamState(scenario, PreviewView.StreamState.STREAMING)
- // swipe out CameraFragment and then Stop and Resume ViewPager2Activity
- onView(withId(R.id.viewPager2)).perform(swipeLeft())
+ // Switch from CameraFragment to BlankFragment, and then Stop and Resume
+ // ViewPager2Activity
+ onView(withId(ViewPager2Activity.BLANK_VIEW_ID)).perform(click())
onView(withId(R.id.blank_textview)).check(matches(isDisplayed()))
scenario.moveToState(State.CREATED)
scenario.moveToState(State.RESUMED)
mDevice.waitForIdle(ACTION_IDLE_TIMEOUT)
- // After resume, swipe in CameraFragment to check Preview in stream state
- onView(withId(R.id.viewPager2)).perform(swipeRight())
+ // After resume, switch back to CameraFragment, to check Preview in stream state
+ onView(withId(ViewPager2Activity.CAMERA_VIEW_ID)).perform(click())
onView(withId(R.id.preview_textureview)).check(matches(isDisplayed()))
assertStreamState(scenario, PreviewView.StreamState.STREAMING)
- // The test covers pause/resume and ViewPager2 swipe out/in behaviors. Hence, need to
+ // The test covers pause/resume and ViewPager2 switch behaviors. Hence, need to
// check the surface texture of TextureView continues getting updates for b/149877652.
assertSurfaceTextureFramesUpdate(scenario)
}
diff --git a/camera/integration-tests/uiwidgetstestapp/src/main/java/androidx/camera/integration/uiwidgets/viewpager/ViewPager2Activity.kt b/camera/integration-tests/uiwidgetstestapp/src/main/java/androidx/camera/integration/uiwidgets/viewpager/ViewPager2Activity.kt
index 10e5b05..da49e16 100644
--- a/camera/integration-tests/uiwidgetstestapp/src/main/java/androidx/camera/integration/uiwidgets/viewpager/ViewPager2Activity.kt
+++ b/camera/integration-tests/uiwidgetstestapp/src/main/java/androidx/camera/integration/uiwidgets/viewpager/ViewPager2Activity.kt
@@ -21,12 +21,15 @@
import android.os.Build
import android.os.Bundle
import android.util.Log
+import android.view.View
+import androidx.annotation.VisibleForTesting
import androidx.camera.integration.uiwidgets.databinding.ActivityViewpager2Binding
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.viewpager2.adapter.FragmentStateAdapter
+import com.google.android.material.tabs.TabLayoutMediator
/** A activity uses ViewPager2 as container to include {@link CameraFragment} and
* {@link TextViewFragment} */
@@ -38,6 +41,10 @@
)
private const val TAG = " ViewPager2Activity"
private const val REQUEST_CODE_PERMISSIONS = 6
+ @VisibleForTesting
+ val BLANK_VIEW_ID = View.generateViewId()
+ @VisibleForTesting
+ val CAMERA_VIEW_ID = View.generateViewId()
}
private lateinit var binding: ActivityViewpager2Binding
@@ -66,6 +73,19 @@
private fun setupAdapter() {
binding.viewPager2.adapter = ViewPager2Adapter(this@ViewPager2Activity)
+ TabLayoutMediator(binding.tabLayout, binding.viewPager2) { tab, position ->
+ when (position) {
+ 0 -> {
+ tab.text = "CAMERA_VIEW"
+ tab.view.id = CAMERA_VIEW_ID
+ }
+ 1 -> {
+ tab.text = "BLANK_VIEW"
+ tab.view.id = BLANK_VIEW_ID
+ }
+ else -> throw IllegalArgumentException()
+ }
+ }.attach()
}
override fun onRequestPermissionsResult(
diff --git a/camera/integration-tests/uiwidgetstestapp/src/main/res/layout/activity_viewpager2.xml b/camera/integration-tests/uiwidgetstestapp/src/main/res/layout/activity_viewpager2.xml
index 91e8944..906ff66 100644
--- a/camera/integration-tests/uiwidgetstestapp/src/main/res/layout/activity_viewpager2.xml
+++ b/camera/integration-tests/uiwidgetstestapp/src/main/res/layout/activity_viewpager2.xml
@@ -15,9 +15,22 @@
limitations under the License.
-->
-<androidx.viewpager2.widget.ViewPager2 xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/viewPager2"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context=".viewpager.ViewPager2Activity" />
\ No newline at end of file
+ android:orientation="vertical">
+
+ <androidx.viewpager2.widget.ViewPager2 xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/viewPager2"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ tools:context=".viewpager.ViewPager2Activity" />
+
+ <com.google.android.material.tabs.TabLayout
+ android:id="@+id/tab_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+</LinearLayout>
\ No newline at end of file
diff --git a/compose/animation/animation-core-lint/src/main/java/androidx/compose/animation/core/lint/UnrememberedAnimatableDetector.kt b/compose/animation/animation-core-lint/src/main/java/androidx/compose/animation/core/lint/UnrememberedAnimatableDetector.kt
index 18d29c2..adcf925 100644
--- a/compose/animation/animation-core-lint/src/main/java/androidx/compose/animation/core/lint/UnrememberedAnimatableDetector.kt
+++ b/compose/animation/animation-core-lint/src/main/java/androidx/compose/animation/core/lint/UnrememberedAnimatableDetector.kt
@@ -21,7 +21,7 @@
import androidx.compose.lint.Name
import androidx.compose.lint.Names
import androidx.compose.lint.isInPackageName
-import androidx.compose.lint.invokedInComposableBodyAndNotRemembered
+import androidx.compose.lint.isNotRemembered
import com.android.tools.lint.client.api.UElementHandler
import com.android.tools.lint.detector.api.Category
import com.android.tools.lint.detector.api.Detector
@@ -61,7 +61,7 @@
if (!returnType.rawType().equalsToText(Animatable.javaFqn)) return
}
- if (node.invokedInComposableBodyAndNotRemembered()) {
+ if (node.isNotRemembered()) {
context.report(
UnrememberedAnimatable,
node,
diff --git a/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/VersionChecker.kt b/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/VersionChecker.kt
index 6b421fe..442a6aa 100644
--- a/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/VersionChecker.kt
+++ b/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/VersionChecker.kt
@@ -76,6 +76,7 @@
6500 to "1.2.0-alpha06",
6600 to "1.2.0-alpha07",
6700 to "1.2.0-alpha08",
+ 6800 to "1.2.0-alpha09",
)
/**
@@ -88,7 +89,7 @@
* The maven version string of this compiler. This string should be updated before/after every
* release.
*/
- const val compilerVersion: String = "1.2.0-alpha08"
+ const val compilerVersion: String = "1.2.0-alpha09"
private val minimumRuntimeVersion: String
get() = versionTable[minimumRuntimeVersionInt] ?: "unknown"
}
diff --git a/compose/integration-tests/docs-snippets/src/main/java/androidx/compose/integration/docs/libraries/Libraries.kt b/compose/integration-tests/docs-snippets/src/main/java/androidx/compose/integration/docs/libraries/Libraries.kt
index 89e8c65..10d886e 100644
--- a/compose/integration-tests/docs-snippets/src/main/java/androidx/compose/integration/docs/libraries/Libraries.kt
+++ b/compose/integration-tests/docs-snippets/src/main/java/androidx/compose/integration/docs/libraries/Libraries.kt
@@ -139,7 +139,9 @@
navigation(startDestination = innerStartRoute, route = "Parent") {
// ...
composable("exampleWithRoute") { backStackEntry ->
- val parentEntry = remember { navController.getBackStackEntry("Parent") }
+ val parentEntry = remember(backStackEntry) {
+ navController.getBackStackEntry("Parent")
+ }
val parentViewModel = hiltViewModel<ParentViewModel>(parentEntry)
ExampleWithRouteScreen(parentViewModel)
}
diff --git a/compose/integration-tests/macrobenchmark-target/src/main/AndroidManifest.xml b/compose/integration-tests/macrobenchmark-target/src/main/AndroidManifest.xml
index f8cbb57..333c84e 100644
--- a/compose/integration-tests/macrobenchmark-target/src/main/AndroidManifest.xml
+++ b/compose/integration-tests/macrobenchmark-target/src/main/AndroidManifest.xml
@@ -95,5 +95,13 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
+ <activity
+ android:name=".LazyVerticalGridActivity"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="androidx.compose.integration.macrobenchmark.target.LAZY_VERTICAL_GRID_ACTIVITY" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
</application>
</manifest>
diff --git a/compose/integration-tests/macrobenchmark-target/src/main/java/androidx/compose/integration/macrobenchmark/target/LazyVerticalGridActivity.kt b/compose/integration-tests/macrobenchmark-target/src/main/java/androidx/compose/integration/macrobenchmark/target/LazyVerticalGridActivity.kt
new file mode 100644
index 0000000..9f0da27
--- /dev/null
+++ b/compose/integration-tests/macrobenchmark-target/src/main/java/androidx/compose/integration/macrobenchmark/target/LazyVerticalGridActivity.kt
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2022 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.
+ */
+
+package androidx.compose.integration.macrobenchmark.target
+
+import android.os.Bundle
+import androidx.activity.ComponentActivity
+import androidx.activity.compose.setContent
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.lazy.grid.GridCells
+import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
+import androidx.compose.foundation.lazy.grid.items
+import androidx.compose.material.Card
+import androidx.compose.material.MaterialTheme
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.semantics.contentDescription
+import androidx.compose.ui.semantics.semantics
+import androidx.compose.ui.text.style.TextAlign
+import androidx.compose.ui.unit.dp
+
+class LazyVerticalGridActivity : ComponentActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ val itemCount = intent.getIntExtra(EXTRA_ITEM_COUNT, 12000)
+ val entries = List(itemCount) { Entry("$it") }
+
+ setContent {
+ MaterialTheme {
+ LazyVerticalGrid(
+ columns = GridCells.Fixed(4),
+ modifier = Modifier.fillMaxWidth().semantics { contentDescription = "IamLazy" }
+ ) {
+ items(entries) {
+ ListCell(it)
+ }
+ }
+ }
+ }
+
+ launchIdlenessTracking()
+ }
+
+ companion object {
+ const val EXTRA_ITEM_COUNT = "ITEM_COUNT"
+ }
+}
+
+@Composable
+private fun ListCell(entry: Entry) {
+ Card(
+ modifier = Modifier
+ .fillMaxWidth()
+ .padding(8.dp)
+ ) {
+ Text(
+ text = entry.contents,
+ textAlign = TextAlign.Center,
+ style = MaterialTheme.typography.h5,
+ modifier = Modifier.padding(16.dp)
+ )
+ }
+}
\ No newline at end of file
diff --git a/compose/integration-tests/macrobenchmark/src/androidTest/java/androidx/compose/integration/macrobenchmark/GridBenchmark.kt b/compose/integration-tests/macrobenchmark/src/androidTest/java/androidx/compose/integration/macrobenchmark/GridBenchmark.kt
new file mode 100644
index 0000000..6efb912
--- /dev/null
+++ b/compose/integration-tests/macrobenchmark/src/androidTest/java/androidx/compose/integration/macrobenchmark/GridBenchmark.kt
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2022 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.
+ */
+
+package androidx.compose.integration.macrobenchmark
+
+import android.content.Intent
+import android.graphics.Point
+import androidx.benchmark.macro.CompilationMode
+import androidx.benchmark.macro.FrameTimingGfxInfoMetric
+import androidx.benchmark.macro.FrameTimingMetric
+import androidx.benchmark.macro.junit4.MacrobenchmarkRule
+import androidx.test.filters.LargeTest
+import androidx.test.platform.app.InstrumentationRegistry
+import androidx.test.uiautomator.By
+import androidx.test.uiautomator.UiDevice
+import androidx.test.uiautomator.Until
+import androidx.testutils.createCompilationParams
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.Parameterized
+
+@LargeTest
+@RunWith(Parameterized::class)
+class GridBenchmark(
+ private val compilationMode: CompilationMode
+) {
+ @get:Rule
+ val benchmarkRule = MacrobenchmarkRule()
+
+ private lateinit var device: UiDevice
+
+ @Before
+ fun setUp() {
+ val instrumentation = InstrumentationRegistry.getInstrumentation()
+ device = UiDevice.getInstance(instrumentation)
+ }
+
+ @Test
+ fun scroll() {
+ benchmarkRule.measureRepeated(
+ packageName = PACKAGE_NAME,
+ metrics = listOf(FrameTimingMetric(), FrameTimingGfxInfoMetric()),
+ compilationMode = compilationMode,
+ iterations = 10,
+ setupBlock = {
+ val intent = Intent()
+ intent.action = ACTION
+ startActivityAndWait(intent)
+ }
+ ) {
+ val lazyColumn = device.findObject(By.desc(CONTENT_DESCRIPTION))
+ // Setting a gesture margin is important otherwise gesture nav is triggered.
+ lazyColumn.setGestureMargin(device.displayWidth / 5)
+ for (i in 1..10) {
+ // From center we scroll 2/3 of it which is 1/3 of the screen.
+ lazyColumn.drag(Point(0, lazyColumn.visibleCenter.y / 3))
+ device.wait(Until.findObject(By.desc(COMPOSE_IDLE)), 3000)
+ }
+ }
+ }
+
+ companion object {
+ private const val PACKAGE_NAME = "androidx.compose.integration.macrobenchmark.target"
+ private const val ACTION =
+ "androidx.compose.integration.macrobenchmark.target.LAZY_VERTICAL_GRID_ACTIVITY"
+ private const val CONTENT_DESCRIPTION = "IamLazy"
+
+ private const val COMPOSE_IDLE = "COMPOSE-IDLE"
+
+ @Parameterized.Parameters(name = "compilation={0}")
+ @JvmStatic
+ fun parameters() = createCompilationParams()
+ }
+}
diff --git a/compose/lint/common-test/src/main/java/androidx/compose/lint/test/Stubs.kt b/compose/lint/common-test/src/main/java/androidx/compose/lint/test/Stubs.kt
index 7429971..f601de0 100644
--- a/compose/lint/common-test/src/main/java/androidx/compose/lint/test/Stubs.kt
+++ b/compose/lint/common-test/src/main/java/androidx/compose/lint/test/Stubs.kt
@@ -348,6 +348,37 @@
"""
)
+ val PaddingValues: TestFile = compiledStub(
+ filename = "Padding.kt",
+ filepath = "androidx/compose/foundation/layout",
+ checksum = 0xeedd3f96,
+ """
+
+ package androidx.compose.foundation.layout
+
+ import androidx.compose.ui.Modifier
+
+ interface PaddingValues
+
+ """,
+ """
+ META-INF/main.kotlin_module:
+ H4sIAAAAAAAAAGNgYGBmYGBgBGI2BijgUueSTMxLKcrPTKnQS87PLcgvTtXL
+ TSxJLcpMzBHiCk5OTEvLz0nxLuHi5WJOy88XYgtJLS7xLlFi0GIAACJwI+tQ
+ AAAA
+ """,
+ """
+ androidx/compose/foundation/layout/PaddingValues.class:
+ H4sIAAAAAAAAAJVOTUvDQBB9s9Gkxq9ULdQ/YdrizZMXIVBRFHrJaZtsyzbp
+ rnQ3pd76uzxIz/4ocVL9A87Amzfz4L35+v74BHCLHmEgTbmyutykhV2+WafS
+ mW1MKb22Jq3lu218+izLUpv5RNaNchGIkCzkWrJs5unTdKEKHyEgdMeV9bU2
+ 6aPyki3kHUEs1wFnUQthCyBQxfeNbrcBs3JI6O22nVj0RSwSZrP+bjsSA2rF
+ EWE0/u+THMw58d/tpvK8vNpmVagHXSvC9UtjvF6qiXZ6Wqt7Y6zfu7mQM3GA
+ 3xK43OMFrngO2fKQO8wRZIgydDIcIWaK4wwnOM1BDmc4zyEcEofuD692uKBp
+ AQAA
+ """
+ )
+
val Remember: TestFile = compiledStub(
filename = "Remember.kt",
filepath = "androidx/compose/runtime",
diff --git a/compose/lint/common/src/main/java/androidx/compose/lint/ComposableUtils.kt b/compose/lint/common/src/main/java/androidx/compose/lint/ComposableUtils.kt
index e725baf..339c299 100644
--- a/compose/lint/common/src/main/java/androidx/compose/lint/ComposableUtils.kt
+++ b/compose/lint/common/src/main/java/androidx/compose/lint/ComposableUtils.kt
@@ -45,21 +45,44 @@
import org.jetbrains.uast.withContainingElements
/**
- * Returns whether this [UCallExpression] is invoked within the body of a Composable function or
- * lambda, and is not `remember`ed.
- *
- * This searches parent declarations until we find a lambda expression or a function, and looks
- * to see if these are Composable. If they are Composable, this function returns whether or not
- * this call expression is inside the block of a `remember` call.
+ * Returns whether this [UCallExpression] is directly invoked within the body of a Composable
+ * function or lambda without being `remember`ed.
*/
-fun UCallExpression.invokedInComposableBodyAndNotRemembered(): Boolean {
+fun UCallExpression.isNotRemembered(): Boolean = isNotRememberedWithKeys()
+
+/**
+ * Returns whether this [UCallExpression] is directly invoked within the body of a Composable
+ * function or lambda without being `remember`ed, or whether it is invoked inside a `remember call
+ * without the provided [keys][keyClassNames].
+ * - Returns true if this [UCallExpression] is directly invoked inside a Composable function or
+ * lambda without being `remember`ed
+ * - Returns true if this [UCallExpression] is invoked inside a call to `remember`, but without all
+ * of the provided [keys][keyClassNames] being used as key parameters to `remember`
+ * - Returns false if this [UCallExpression] is correctly `remember`ed with the provided
+ * [keys][keyClassNames], or is not called inside a `remember` block, and is not called inside a
+ * Composable function or lambda
+ *
+ * @param keyClassNames [Name]s representing the expected classes that should be used as a key
+ * parameter to the `remember` call
+ */
+fun UCallExpression.isNotRememberedWithKeys(vararg keyClassNames: Name): Boolean {
val visitor = ComposableBodyVisitor(this)
- if (!visitor.isComposable()) return false
- return visitor.parentUElements().none {
- (it as? UCallExpression)?.let { element ->
- element.methodName == Names.Runtime.Remember.shortName &&
- element.resolve()?.isInPackageName(Names.Runtime.PackageName) == true
- } == true
+ // The nearest method or lambda expression that contains this call expression
+ val boundaryElement = visitor.parentUElements().last()
+ // Check if the nearest lambda expression is actually a call to remember
+ val rememberCall: UCallExpression? = (boundaryElement.uastParent as? UCallExpression)?.takeIf {
+ it.methodName == Names.Runtime.Remember.shortName &&
+ it.resolve()?.isInPackageName(Names.Runtime.PackageName) == true
+ }
+ return if (rememberCall == null) {
+ visitor.isComposable()
+ } else {
+ val parameterTypes = rememberCall.valueArguments.mapNotNull {
+ it.getExpressionType()?.canonicalText
+ }
+ !keyClassNames.all {
+ parameterTypes.contains(it.javaFqn)
+ }
}
}
diff --git a/compose/lint/common/src/main/java/androidx/compose/lint/Names.kt b/compose/lint/common/src/main/java/androidx/compose/lint/Names.kt
index 7423dbe..016e112 100644
--- a/compose/lint/common/src/main/java/androidx/compose/lint/Names.kt
+++ b/compose/lint/common/src/main/java/androidx/compose/lint/Names.kt
@@ -28,9 +28,6 @@
object AnimationCore {
val PackageName = Package("androidx.compose.animation.core")
}
- object Material {
- val PackageName = Package("androidx.compose.material")
- }
object Runtime {
val PackageName = Package("androidx.compose.runtime")
diff --git a/compose/material/material-lint/src/main/java/androidx/compose/material/lint/ColorsDetector.kt b/compose/material/material-lint/src/main/java/androidx/compose/material/lint/ColorsDetector.kt
index 11cbd84..0e1a911 100644
--- a/compose/material/material-lint/src/main/java/androidx/compose/material/lint/ColorsDetector.kt
+++ b/compose/material/material-lint/src/main/java/androidx/compose/material/lint/ColorsDetector.kt
@@ -19,8 +19,8 @@
package androidx.compose.material.lint
import androidx.compose.lint.Name
-import androidx.compose.lint.Names
import androidx.compose.lint.isInPackageName
+import androidx.compose.material.lint.MaterialNames.Material
import com.android.tools.lint.client.api.UElementHandler
import com.android.tools.lint.detector.api.Category
import com.android.tools.lint.detector.api.Detector
@@ -55,7 +55,7 @@
override fun createUastHandler(context: JavaContext) = object : UElementHandler() {
override fun visitCallExpression(node: UCallExpression) {
val method = node.resolve() ?: return
- if (!method.isInPackageName(Names.Material.PackageName)) return
+ if (!method.isInPackageName(Material.PackageName)) return
if (node.isConstructorCall()) {
if (method.containingClass?.name != Colors.shortName) return
@@ -229,6 +229,6 @@
"error" to "onError"
)
-private val LightColors = Name(Names.Material.PackageName, "lightColors")
-private val DarkColors = Name(Names.Material.PackageName, "darkColors")
-private val Colors = Name(Names.Material.PackageName, "Colors")
+private val LightColors = Name(Material.PackageName, "lightColors")
+private val DarkColors = Name(Material.PackageName, "darkColors")
+private val Colors = Name(Material.PackageName, "Colors")
diff --git a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl b/compose/material/material-lint/src/main/java/androidx/compose/material/lint/MaterialNames.kt
similarity index 64%
copy from health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl
copy to compose/material/material-lint/src/main/java/androidx/compose/material/lint/MaterialNames.kt
index 1b59985..dae87fd 100644
--- a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl
+++ b/compose/material/material-lint/src/main/java/androidx/compose/material/lint/MaterialNames.kt
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright 2022 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.
@@ -14,7 +14,15 @@
* limitations under the License.
*/
-package androidx.health.services.client.impl.request;
+package androidx.compose.material.lint
-/** @hide */
-parcelable EventRequest;
\ No newline at end of file
+import androidx.compose.lint.Package
+
+/**
+ * Contains common names used for Material lint checks.
+ */
+object MaterialNames {
+ object Material {
+ val PackageName = Package("androidx.compose.material")
+ }
+}
diff --git a/compose/material/material-lint/src/main/java/androidx/compose/material/lint/ScaffoldPaddingDetector.kt b/compose/material/material-lint/src/main/java/androidx/compose/material/lint/ScaffoldPaddingDetector.kt
index 252ab25..870a673 100644
--- a/compose/material/material-lint/src/main/java/androidx/compose/material/lint/ScaffoldPaddingDetector.kt
+++ b/compose/material/material-lint/src/main/java/androidx/compose/material/lint/ScaffoldPaddingDetector.kt
@@ -17,9 +17,9 @@
package androidx.compose.material.lint
import androidx.compose.lint.Name
-import androidx.compose.lint.Names
import androidx.compose.lint.findUnreferencedParameters
import androidx.compose.lint.isInPackageName
+import androidx.compose.material.lint.MaterialNames.Material
import com.android.tools.lint.detector.api.Category
import com.android.tools.lint.detector.api.Detector
import com.android.tools.lint.detector.api.Implementation
@@ -44,7 +44,7 @@
override fun getApplicableMethodNames(): List<String> = listOf(Scaffold.shortName)
override fun visitMethodCall(context: JavaContext, node: UCallExpression, method: PsiMethod) {
- if (method.isInPackageName(Names.Material.PackageName)) {
+ if (method.isInPackageName(Material.PackageName)) {
val contentArgument = computeKotlinArgumentMapping(node, method)
.orEmpty()
.filter { (_, parameter) ->
@@ -86,4 +86,4 @@
}
}
-private val Scaffold = Name(Names.Material.PackageName, "Scaffold")
\ No newline at end of file
+private val Scaffold = Name(Material.PackageName, "Scaffold")
\ No newline at end of file
diff --git a/compose/material/material-lint/src/test/java/androidx/compose/material/lint/ScaffoldPaddingDetectorTest.kt b/compose/material/material-lint/src/test/java/androidx/compose/material/lint/ScaffoldPaddingDetectorTest.kt
index 88b9576..7537ea8 100644
--- a/compose/material/material-lint/src/test/java/androidx/compose/material/lint/ScaffoldPaddingDetectorTest.kt
+++ b/compose/material/material-lint/src/test/java/androidx/compose/material/lint/ScaffoldPaddingDetectorTest.kt
@@ -39,38 +39,6 @@
override fun getIssues(): MutableList<Issue> =
mutableListOf(ScaffoldPaddingDetector.UnusedMaterialScaffoldPaddingParameter)
- private val PaddingValuesStub = compiledStub(
- filename = "Padding.kt",
- filepath = "androidx/compose/foundation/layout",
- checksum = 0xeedd3f96,
- """
-
- package androidx.compose.foundation.layout
-
- import androidx.compose.ui.Modifier
-
- interface PaddingValues
-
- """,
- """
- META-INF/main.kotlin_module:
- H4sIAAAAAAAAAGNgYGBmYGBgBGI2BijgUueSTMxLKcrPTKnQS87PLcgvTtXL
- TSxJLcpMzBHiCk5OTEvLz0nxLuHi5WJOy88XYgtJLS7xLlFi0GIAACJwI+tQ
- AAAA
- """,
- """
- androidx/compose/foundation/layout/PaddingValues.class:
- H4sIAAAAAAAAAJVOTUvDQBB9s9Gkxq9ULdQ/YdrizZMXIVBRFHrJaZtsyzbp
- rnQ3pd76uzxIz/4ocVL9A87Amzfz4L35+v74BHCLHmEgTbmyutykhV2+WafS
- mW1MKb22Jq3lu218+izLUpv5RNaNchGIkCzkWrJs5unTdKEKHyEgdMeV9bU2
- 6aPyki3kHUEs1wFnUQthCyBQxfeNbrcBs3JI6O22nVj0RSwSZrP+bjsSA2rF
- EWE0/u+THMw58d/tpvK8vNpmVagHXSvC9UtjvF6qiXZ6Wqt7Y6zfu7mQM3GA
- 3xK43OMFrngO2fKQO8wRZIgydDIcIWaK4wwnOM1BDmc4zyEcEofuD692uKBp
- AQAA
- """
-
- )
-
// Simplified Scaffold.kt stubs
private val ScaffoldStub = compiledStub(
filename = "Scaffold.kt",
@@ -185,9 +153,9 @@
}
"""
),
- PaddingValuesStub,
ScaffoldStub,
Stubs.Modifier,
+ Stubs.PaddingValues,
Stubs.Composable
)
.run()
@@ -252,9 +220,9 @@
}
"""
),
- PaddingValuesStub,
ScaffoldStub,
Stubs.Modifier,
+ Stubs.PaddingValues,
Stubs.Composable
)
.run()
@@ -293,9 +261,9 @@
}
"""
),
- PaddingValuesStub,
ScaffoldStub,
Stubs.Modifier,
+ Stubs.PaddingValues,
Stubs.Composable
)
.run()
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Chip.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Chip.kt
index 731e868..3de524a 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Chip.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Chip.kt
@@ -69,8 +69,7 @@
* Alternatively, use Accompanist's [Flow Layouts](https://google.github.io/accompanist/flowlayout/)
* to wrap chips to a new line.
*
- * @param onClick called when the chip is clicked. If null, then this chip will be considered
- * read-only unless something else handles its input events and updates its state.
+ * @param onClick called when the chip is clicked.
* @param modifier Modifier to be applied to the chip
* @param enabled When disabled, chip will not respond to user input. It will also appear visually
* disabled and disabled to accessibility services.
diff --git a/compose/material3/material3-lint/build.gradle b/compose/material3/material3-lint/build.gradle
new file mode 100644
index 0000000..c626c35
--- /dev/null
+++ b/compose/material3/material3-lint/build.gradle
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2022 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.
+ */
+
+
+import androidx.build.BundleInsideHelper
+import androidx.build.LibraryType
+
+plugins {
+ id("AndroidXPlugin")
+ id("kotlin")
+}
+
+BundleInsideHelper.forInsideLintJar(project)
+
+dependencies {
+ compileOnly libs.androidLintMinComposeApi
+ compileOnly libs.kotlinStdlib
+ bundleInside(project(":compose:lint:common"))
+
+ testImplementation(project(":compose:lint:common-test"))
+ testImplementation libs.kotlinStdlib
+ testImplementation libs.androidLint
+ testImplementation libs.androidLintTests
+ testImplementation libs.junit
+ testImplementation libs.truth
+}
+
+androidx {
+ name = "Compose Material3 Lint Checks"
+ type = LibraryType.LINT
+ mavenGroup = LibraryGroups.COMPOSE_MATERIAL3
+ inceptionYear = "2022"
+ description = "Compose Material3 Lint Checks"
+}
diff --git a/compose/material3/material3-lint/src/main/java/androidx/compose/material3/lint/Material3IssueRegistry.kt b/compose/material3/material3-lint/src/main/java/androidx/compose/material3/lint/Material3IssueRegistry.kt
new file mode 100644
index 0000000..8529446
--- /dev/null
+++ b/compose/material3/material3-lint/src/main/java/androidx/compose/material3/lint/Material3IssueRegistry.kt
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2022 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.
+ */
+
+package androidx.compose.material3.lint
+
+import com.android.tools.lint.client.api.IssueRegistry
+import com.android.tools.lint.client.api.Vendor
+import com.android.tools.lint.detector.api.CURRENT_API
+
+/**
+ * [IssueRegistry] containing Material3 specific lint issues.
+ */
+class Material3IssueRegistry : IssueRegistry() {
+ // Tests are run with this version. We ensure that with ApiLintVersionsTest
+ override val api = 13
+ override val minApi = CURRENT_API
+ override val issues get() = listOf(
+ ScaffoldPaddingDetector.UnusedMaterial3ScaffoldPaddingParameter
+ )
+ override val vendor = Vendor(
+ vendorName = "Jetpack Compose",
+ identifier = "androidx.compose.material3",
+ feedbackUrl = "https://issuetracker.google.com/issues/new?component=612128"
+ )
+}
diff --git a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl b/compose/material3/material3-lint/src/main/java/androidx/compose/material3/lint/Material3Names.kt
similarity index 63%
copy from health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl
copy to compose/material3/material3-lint/src/main/java/androidx/compose/material3/lint/Material3Names.kt
index 1b59985..733fd2e 100644
--- a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl
+++ b/compose/material3/material3-lint/src/main/java/androidx/compose/material3/lint/Material3Names.kt
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright 2022 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.
@@ -14,7 +14,15 @@
* limitations under the License.
*/
-package androidx.health.services.client.impl.request;
+package androidx.compose.material3.lint
-/** @hide */
-parcelable EventRequest;
\ No newline at end of file
+import androidx.compose.lint.Package
+
+/**
+ * Contains common names used for Material3 lint checks.
+ */
+object Material3Names {
+ object Material3 {
+ val PackageName = Package("androidx.compose.material3")
+ }
+}
diff --git a/compose/material3/material3-lint/src/main/java/androidx/compose/material3/lint/ScaffoldPaddingDetector.kt b/compose/material3/material3-lint/src/main/java/androidx/compose/material3/lint/ScaffoldPaddingDetector.kt
new file mode 100644
index 0000000..eba6ffd
--- /dev/null
+++ b/compose/material3/material3-lint/src/main/java/androidx/compose/material3/lint/ScaffoldPaddingDetector.kt
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2022 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.
+ */
+
+package androidx.compose.material3.lint
+
+import androidx.compose.lint.Name
+import androidx.compose.lint.findUnreferencedParameters
+import androidx.compose.lint.isInPackageName
+import androidx.compose.material3.lint.Material3Names.Material3
+import com.android.tools.lint.detector.api.Category
+import com.android.tools.lint.detector.api.Detector
+import com.android.tools.lint.detector.api.Implementation
+import com.android.tools.lint.detector.api.Issue
+import com.android.tools.lint.detector.api.JavaContext
+import com.android.tools.lint.detector.api.Scope
+import com.android.tools.lint.detector.api.Severity
+import com.android.tools.lint.detector.api.SourceCodeScanner
+import com.android.tools.lint.detector.api.computeKotlinArgumentMapping
+import com.intellij.psi.PsiMethod
+import java.util.EnumSet
+import org.jetbrains.uast.UCallExpression
+import org.jetbrains.uast.ULambdaExpression
+
+/**
+ * [Detector] that checks `Scaffold` usages for correctness.
+ *
+ * Scaffold provides an padding parameter to the `content` lambda. If this value is unused,
+ * then the content may be obscured by app bars defined by the scaffold.
+ */
+class ScaffoldPaddingDetector : Detector(), SourceCodeScanner {
+ override fun getApplicableMethodNames(): List<String> = listOf(Scaffold.shortName)
+
+ override fun visitMethodCall(context: JavaContext, node: UCallExpression, method: PsiMethod) {
+ if (method.isInPackageName(Material3.PackageName)) {
+ val contentArgument = computeKotlinArgumentMapping(node, method)
+ .orEmpty()
+ .filter { (_, parameter) ->
+ parameter.name == "content"
+ }
+ .keys
+ .filterIsInstance<ULambdaExpression>()
+ .firstOrNull() ?: return
+
+ contentArgument.findUnreferencedParameters().forEach { unreferencedParameter ->
+ val location = unreferencedParameter.parameter
+ ?.let { context.getLocation(it) }
+ ?: context.getLocation(contentArgument)
+ val name = unreferencedParameter.name
+ context.report(
+ UnusedMaterial3ScaffoldPaddingParameter,
+ node,
+ location,
+ "Content padding parameter $name is not used"
+ )
+ }
+ }
+ }
+
+ companion object {
+ val UnusedMaterial3ScaffoldPaddingParameter = Issue.create(
+ "UnusedMaterial3ScaffoldPaddingParameter",
+ "Scaffold content should use the padding provided as a lambda parameter",
+ "The `content` lambda in Scaffold has a padding parameter " +
+ "which will include any inner padding for the content due to app bars. If this " +
+ "parameter is ignored, then content may be obscured by the app bars resulting in " +
+ "visual issues or elements that can't be interacted with.",
+ Category.CORRECTNESS, 3, Severity.ERROR,
+ Implementation(
+ ScaffoldPaddingDetector::class.java,
+ EnumSet.of(Scope.JAVA_FILE, Scope.TEST_SOURCES)
+ )
+ )
+ }
+}
+
+private val Scaffold = Name(Material3.PackageName, "Scaffold")
\ No newline at end of file
diff --git a/compose/material3/material3-lint/src/main/resources/META-INF/services/com.android.tools.lint.client.api.IssueRegistry b/compose/material3/material3-lint/src/main/resources/META-INF/services/com.android.tools.lint.client.api.IssueRegistry
new file mode 100644
index 0000000..ffddc1d
--- /dev/null
+++ b/compose/material3/material3-lint/src/main/resources/META-INF/services/com.android.tools.lint.client.api.IssueRegistry
@@ -0,0 +1 @@
+androidx.compose.material3.lint.Material3IssueRegistry
diff --git a/compose/material3/material3-lint/src/test/java/androidx/compose/material3/lint/ApiLintVersionsTest.kt b/compose/material3/material3-lint/src/test/java/androidx/compose/material3/lint/ApiLintVersionsTest.kt
new file mode 100644
index 0000000..6bb46ba
--- /dev/null
+++ b/compose/material3/material3-lint/src/test/java/androidx/compose/material3/lint/ApiLintVersionsTest.kt
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2022 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("UnstableApiUsage")
+
+package androidx.compose.material3.lint
+
+import com.android.tools.lint.client.api.LintClient
+import com.android.tools.lint.detector.api.CURRENT_API
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+
+@RunWith(JUnit4::class)
+class ApiLintVersionsTest {
+
+ @Test
+ fun versionsCheck() {
+ LintClient.clientName = LintClient.CLIENT_UNIT_TESTS
+
+ val registry = Material3IssueRegistry()
+ assertThat(registry.api).isEqualTo(CURRENT_API)
+ assertThat(registry.minApi).isEqualTo(10)
+ }
+}
diff --git a/compose/material3/material3-lint/src/test/java/androidx/compose/material3/lint/ScaffoldPaddingDetectorTest.kt b/compose/material3/material3-lint/src/test/java/androidx/compose/material3/lint/ScaffoldPaddingDetectorTest.kt
new file mode 100644
index 0000000..1fb1874
--- /dev/null
+++ b/compose/material3/material3-lint/src/test/java/androidx/compose/material3/lint/ScaffoldPaddingDetectorTest.kt
@@ -0,0 +1,273 @@
+/*
+ * Copyright 2022 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("UnstableApiUsage")
+
+package androidx.compose.material3.lint
+
+import androidx.compose.lint.test.Stubs
+import androidx.compose.lint.test.compiledStub
+import com.android.tools.lint.checks.infrastructure.LintDetectorTest
+import com.android.tools.lint.detector.api.Detector
+import com.android.tools.lint.detector.api.Issue
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+
+/* ktlint-disable max-line-length */
+@RunWith(JUnit4::class)
+
+/**
+ * Test for [ScaffoldPaddingDetector].
+ */
+class ScaffoldPaddingDetectorTest : LintDetectorTest() {
+ override fun getDetector(): Detector = ScaffoldPaddingDetector()
+
+ override fun getIssues(): MutableList<Issue> =
+ mutableListOf(ScaffoldPaddingDetector.UnusedMaterial3ScaffoldPaddingParameter)
+
+ // Simplified Scaffold.kt stubs
+ private val ScaffoldStub = compiledStub(
+ filename = "Scaffold.kt",
+ filepath = "androidx/compose/material3",
+ checksum = 0xfee46355,
+ """
+ package androidx.compose.material3
+
+ import androidx.compose.foundation.layout.PaddingValues
+ import androidx.compose.runtime.Composable
+ import androidx.compose.ui.Modifier
+
+ @Composable
+ fun Scaffold(
+ modifier: Modifier = Modifier,
+ topBar: @Composable () -> Unit = {},
+ bottomBar: @Composable () -> Unit = {},
+ content: @Composable (PaddingValues) -> Unit
+ ) {}
+
+ """,
+ """
+ META-INF/main.kotlin_module:
+ H4sIAAAAAAAAAGNgYGBmYGBgBGI2Bijg0uCSSsxLKcrPTKnQS87PLcgvTtXL
+ TSxJLcpMzDEW4gpOTkxLy89J8S7h4uViTsvPF2ILSS0u8S5RYtBiAACpks1u
+ UQAAAA==
+ """,
+ """
+ androidx/compose/material3/ScaffoldKt$Scaffold$1.class:
+ H4sIAAAAAAAAAKVU604TQRT+Zlt62RZbEOUi3kFbULYt3ktICIG4oWBisYnh
+ 17S7haG7s6a7bfAfD+ET+ASiiSSaGOJPH8p4ZmkNhogaN9mzJ+d835lzm/32
+ /dMXAPfwhKHApdX2hLVnNDz3lefbhssDuy24M29UG7zZ9BxrLZjqq1PFOBjD
+ WqXlBY6Qxm7XNYQkguSOUeFu3eLlk75mRzYC4UnfWO1phYW+/4UUQXmxzDDx
+ +2BxRBmunB0wjhhDbEFQuEWGSC5fY4jmzHwtjQR0HQNIkSHYET5DqfKv9VJ+
+ MSG7XstmGMnlK7u8yw2Hy23jWX3XbgTlNDJI6tAwxJA6UVoc5xkS5kZ1c2lj
+ eYVh8Je607iAi0mMYJRACw0nzF4lHIaaUO5zSdImGYb6xHU74BYPOKWkud0I
+ jZApEVMCDKyllAg594TSCqRZRYbJo/2EfrSva1mNPtmj/QmtwJ7qX9/GtISm
+ MCVKfIFLT752vY5PPaRg03/VpzjuMGR/Nsuym7zjBAxvcqf73BHGumeJprDb
+ f1qR//QXy+bpMal1mINBpfbTnWtRptFlz6LJDle8BndqnAqsO/amEgyZipD2
+ Rset2+2eJW1KabeXHe77Nm1TZkU2HM8XcptGs+NZDMmq2JY86LQJrFe9Trth
+ rwrFHH/ekYFw7ZrwBYVaktILeJg2CjTmAWo53SyMq7nT7KL00i6QpUTaFCGY
+ mvRM5BDpg3Da8yTTx1YMhpwhtYg9xmyIoVeBNbrqCqYMqRNEdkzMLhEx2yOW
+ 1CKpw2c+Yvg9xt6dwU/0Dk5Q2v2DRwmtntRnaC8PcekDLh+EhgHcJ6kT7Bgw
+ hgdhnXep/ofhIRE8Cr9FPA7/TnTxiXV1CxET10xcN3EDN01qxrSJW7i9BeYj
+ hzz5fcz4mPWR+QHL6C/y2gQAAA==
+ """,
+ """
+ androidx/compose/material3/ScaffoldKt$Scaffold$2.class:
+ H4sIAAAAAAAAAKVUbU/TUBR+bjf2xnADUV7Ed9ANlI7h+wgJIRAbBiYOlxg+
+ 3bUdXNbemrVd8Bs/wl/gLxBNNNHEED/6o4znlk0xRNTYpKcn5zzPueft9uu3
+ j58B3MEjhhKXVtsT1p5ueu4Lz7d1lwd2W3BnXq+ZvNn0HGstmOypk+UkGMNa
+ teUFjpD6bsfVhSSC5I5e5W7D4pXjvmYozUB40tdXu1ppoed/JkVQWawwjP8+
+ WBJxhkunB0wiwZBYEBRukSFWKNYZ4gWjWM8ihUwGfegnQ7AjfIZy9V/rpfwS
+ Qna8ls0wXChWd3mH6w6X2/qTxq5tBpUsckhnoGGQof9YaUmcZUgZG7XNpY3l
+ FYaBX+rO4hzOpzGMEQItmE6UvUo4CjWu3GfSpE0wDPaI63bALR5wSklzOzEa
+ IVMioQQYWEspMXLuCaWVSLPmGCYO91OZw/2Mltfokz/cH9dK7HHmy+uEltIU
+ pkyJL3DpyZeuF/rUQwo29Vd9SuIWQ/5Hsyy7yUMnYHhVONnnUOjrniWawm7/
+ aUX+0z9XMU6OSa3DLHQqtZfubIsyjS97Fk12qOqZ3KlzKrDh2JtKMOSqQtob
+ oduw211L1pDSbi873Pdt2qbcijQdzxdym0az41kM6ZrYljwI2wTO1Lywbdqr
+ QjHHnoYyEK5dF76gUEtSegGP0kaJxtxHLaebhTE1d5pdnF7aBbKUSZskBFOT
+ no59QPYgmvY8yeyRFQMRZ1AtYpcxE2HoVWCNrrqCsYjyk8iOiPklIua7xLJa
+ JHX49HsMvcXom1P4qe7BKUq7d/AIodXT/wna8w+48A4XDyJDH+6SzBDsCDCK
+ e1Gdt6n++9EhMTyIvnN4GP2d6OIT6/IWYgauGLhq4BquG9SMKQM3cHMLzEcB
+ RfL7mPYx4yP3HfQNQiHaBAAA
+ """,
+ """
+ androidx/compose/material3/ScaffoldKt.class:
+ H4sIAAAAAAAAAMVUS3PbVBT+ru1YkmOnrhKniVtCaRya5lHZbnk6FFLTtCK2
+ 6eA2m6yuZdkolq8yemTKhgnDX2DDln8Aqw4LxsOSf8EfYXok2yGNOwm0zLDQ
+ Pc97zneOzj1//PXrbwDuos6wwkXbdaz2M81w+oeOZ2p97puuxe07WtPgnY5j
+ t3d9CYwhe8CPuGZz0dW+bB2YBmnjDPLYi+G71dpEtMDS6k7b6limW6n1HN+2
+ hHZw1Nc6gTB8yxGetjPiim9oL1Vu7TH8+WYYtsb2p8LyK/f+W/fS1uYkuI4T
+ iDYPzdTab5zA1x7zdtsS3T1uB6ZXOZMhrHFlMoobCN/qm1o1knnLNisMyzXH
+ 7WoHpt9yuUU4uBCOz4eYGo7fCGybvOT+qDcyUgxLpyqwBE2C4LamC9+lAJbh
+ SUgz5IyvTaM3ivCYu7xvkiPDzdXa2RGpnNI0wyBdqiCNGVxKIYMsQ9J3Du9z
+ yq0yKC3H951+JM4xSIZDAIQvY55wnf9bGa5fND0XupTIJTue5kLb7PDA9hl+
+ +J+nWp9sajgE184DJeEtamc4DFxQEIbzayiceFbSeBvXFSzhHYbiP9oNhZOW
+ lSQs0zzpjeaT7Ub1AUN5MusFESj/Ct5VUMDNl2fxFZ2TcOvfYyxLWH8NYOUI
+ 2KaCDdxOYwrJFGIoMlwe/7266XN6xpxmKNY/itN6ZeGRDA8wsF7IxMj4zAo5
+ uhprlxi+HxzfSA2OU7FsLCILJyT65NiYzz/NDo7zsSIryzI5ExcvzxKXyGfU
+ hEr64tTvPyVjcjLSShPaK1k5PxvpUiOLMrQ8kkIoZRaiVMfVnH41E8rwnbyi
+ gRctMobpcTtv9+hdJapO22S4VLOE2Qj6LdN9Eu6tMKFjcHuP098geaRUmlZX
+ cD9wib/61XDb6eLI8iwyb/+92BgKZ60nG+olt0zT50avzg9HCdK6EKZbtbnn
+ mWRONZ3ANcwdK7QtjkLuTaRDieYgEf5joovhYJBUJYmP9Itr6vRzXF5XZ+nc
+ UHN0bqpX6Pw5uvJ5OCPU+QVaiQ+IXxteQoo0iDiVPhZxc/TFIm4eecSxE0WQ
+ 8HAUQyb6KLQnSFCisTtzZhVcxTXiQ4R9SpUkWs4lEt/+iNQvuDHA0m4uMTWU
+ VgdYq+US0lDSSKqvrW9sPkdpCF2ncwrxmUwmqmKJkICSSIR9hmgO05RKwTLS
+ VJVCeL8gu0oXC1FlC/SUhnQ3CncfNaI1AlemsHf2EddxV8d7Ot7HBzo+xEc6
+ PkZlH8zDFj7Zx7SHKQ/3PKQ8LHhQPXzqQfYw52Hew2cetl8ABZTb8egIAAA=
+ """
+ )
+
+ @Test
+ fun unreferencedParameters() {
+ lint().files(
+ kotlin(
+ """
+ package foo
+
+ import androidx.compose.material3.*
+ import androidx.compose.runtime.*
+ import androidx.compose.ui.*
+
+ @Composable
+ fun Test() {
+ Scaffold { /**/ }
+ Scaffold(Modifier) { /**/ }
+ Scaffold(Modifier, topBar = {}, bottomBar = {}) { /**/ }
+ Scaffold(Modifier, topBar = {}, bottomBar = {}, content = { /**/ })
+ Scaffold(Modifier, topBar = {}, bottomBar = {}) { _ -> /**/ }
+ Scaffold(Modifier, topBar = {}, bottomBar = {}) { innerPadding -> /**/ }
+ }
+ """
+ ),
+ ScaffoldStub,
+ Stubs.Modifier,
+ Stubs.PaddingValues,
+ Stubs.Composable
+ )
+ .run()
+ .expect(
+ """
+src/foo/test.kt:10: Error: Content padding parameter it is not used [UnusedMaterial3ScaffoldPaddingParameter]
+ Scaffold { /**/ }
+ ~~~~~~~~
+src/foo/test.kt:11: Error: Content padding parameter it is not used [UnusedMaterial3ScaffoldPaddingParameter]
+ Scaffold(Modifier) { /**/ }
+ ~~~~~~~~
+src/foo/test.kt:12: Error: Content padding parameter it is not used [UnusedMaterial3ScaffoldPaddingParameter]
+ Scaffold(Modifier, topBar = {}, bottomBar = {}) { /**/ }
+ ~~~~~~~~
+src/foo/test.kt:13: Error: Content padding parameter it is not used [UnusedMaterial3ScaffoldPaddingParameter]
+ Scaffold(Modifier, topBar = {}, bottomBar = {}, content = { /**/ })
+ ~~~~~~~~
+src/foo/test.kt:14: Error: Content padding parameter _ is not used [UnusedMaterial3ScaffoldPaddingParameter]
+ Scaffold(Modifier, topBar = {}, bottomBar = {}) { _ -> /**/ }
+ ~
+src/foo/test.kt:15: Error: Content padding parameter innerPadding is not used [UnusedMaterial3ScaffoldPaddingParameter]
+ Scaffold(Modifier, topBar = {}, bottomBar = {}) { innerPadding -> /**/ }
+ ~~~~~~~~~~~~
+6 errors, 0 warnings
+ """
+ )
+ }
+
+ @Test
+ fun unreferencedParameter_shadowedNames() {
+ lint().files(
+ kotlin(
+ """
+ package foo
+
+ import androidx.compose.material3.*
+ import androidx.compose.runtime.*
+ import androidx.compose.ui.*
+
+ val foo = false
+
+ @Composable
+ fun Test() {
+ Scaffold {
+ foo.let {
+ // These `it`s refer to the `let`, not the `Scaffold`, so we
+ // should still report an error
+ it.let {
+ if (it) { /**/ } else { /**/ }
+ }
+ }
+ }
+ Scaffold(Modifier, topBar = {}, bottomBar = {}) { innerPadding ->
+ foo.let { innerPadding ->
+ // These `innerPadding`s refer to the `let`, not the `Scaffold`, so we
+ // should still report an error
+ innerPadding.let {
+ if (innerPadding) { /**/ } else { /**/ }
+ }
+ }
+ }
+ }
+ """
+ ),
+ ScaffoldStub,
+ Stubs.Modifier,
+ Stubs.PaddingValues,
+ Stubs.Composable
+ )
+ .run()
+ .expect(
+ """
+src/foo/test.kt:12: Error: Content padding parameter it is not used [UnusedMaterial3ScaffoldPaddingParameter]
+ Scaffold {
+ ^
+src/foo/test.kt:21: Error: Content padding parameter innerPadding is not used [UnusedMaterial3ScaffoldPaddingParameter]
+ Scaffold(Modifier, topBar = {}, bottomBar = {}) { innerPadding ->
+ ~~~~~~~~~~~~
+2 errors, 0 warnings
+ """
+ )
+ }
+
+ @Test
+ fun noErrors() {
+ lint().files(
+ kotlin(
+ """
+ package foo
+
+ import androidx.compose.material3.*
+ import androidx.compose.runtime.*
+ import androidx.compose.ui.*
+
+ @Composable
+ fun Test() {
+ Scaffold {
+ it
+ }
+ Scaffold(Modifier, topBar = {}, bottomBar = {}) { innerPadding ->
+ innerPadding
+ }
+ }
+ """
+ ),
+ ScaffoldStub,
+ Stubs.Modifier,
+ Stubs.PaddingValues,
+ Stubs.Composable
+ )
+ .run()
+ .expectClean()
+ }
+}
+/* ktlint-enable max-line-length */
diff --git a/compose/material3/material3/build.gradle b/compose/material3/material3/build.gradle
index 80a15e0..1a20d20 100644
--- a/compose/material3/material3/build.gradle
+++ b/compose/material3/material3/build.gradle
@@ -68,6 +68,8 @@
androidTestImplementation(libs.mockitoCore)
androidTestImplementation(libs.mockitoKotlin)
androidTestImplementation(libs.testUiautomator)
+
+ lintPublish project(":compose:material3:material3-lint")
}
}
diff --git a/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/UnrememberedMutableStateDetector.kt b/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/UnrememberedMutableStateDetector.kt
index 1310a6c..0a820be 100644
--- a/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/UnrememberedMutableStateDetector.kt
+++ b/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/UnrememberedMutableStateDetector.kt
@@ -20,7 +20,7 @@
import androidx.compose.lint.Names
import androidx.compose.lint.isInPackageName
-import androidx.compose.lint.invokedInComposableBodyAndNotRemembered
+import androidx.compose.lint.isNotRemembered
import com.android.tools.lint.detector.api.Category
import com.android.tools.lint.detector.api.Detector
import com.android.tools.lint.detector.api.Implementation
@@ -47,7 +47,7 @@
override fun visitMethodCall(context: JavaContext, node: UCallExpression, method: PsiMethod) {
if (!method.isInPackageName(Names.Runtime.PackageName)) return
- if (node.invokedInComposableBodyAndNotRemembered()) {
+ if (node.isNotRemembered()) {
context.report(
UnrememberedMutableState,
node,
diff --git a/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/SaveableStateHolderTest.kt b/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/SaveableStateHolderTest.kt
index 7170fd85..29dd6fc 100644
--- a/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/SaveableStateHolderTest.kt
+++ b/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/SaveableStateHolderTest.kt
@@ -18,6 +18,7 @@
import android.os.Bundle
import androidx.activity.ComponentActivity
+import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
@@ -292,6 +293,29 @@
}
}
+ @Test
+ fun saveNothingWhenNoRememberSaveableIsUsedInternally() {
+ var showFirstPage by mutableStateOf(true)
+ val registry = SaveableStateRegistry(null) { true }
+
+ rule.setContent {
+ CompositionLocalProvider(LocalSaveableStateRegistry provides registry) {
+ val holder = rememberSaveableStateHolder()
+ holder.SaveableStateProvider(showFirstPage) {
+ }
+ }
+ }
+
+ rule.runOnIdle {
+ showFirstPage = false
+ }
+
+ rule.runOnIdle {
+ val savedData = registry.performSave()
+ assertThat(savedData).isEqualTo(emptyMap<String, List<Any?>>())
+ }
+ }
+
class Activity : ComponentActivity() {
fun doFakeSave() {
onSaveInstanceState(Bundle())
diff --git a/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/SaveableStateHolder.kt b/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/SaveableStateHolder.kt
index 30224a5..a34e0bf 100644
--- a/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/SaveableStateHolder.kt
+++ b/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/SaveableStateHolder.kt
@@ -97,10 +97,10 @@
}
}
- private fun saveAll(): MutableMap<Any, Map<String, List<Any?>>> {
+ private fun saveAll(): MutableMap<Any, Map<String, List<Any?>>>? {
val map = savedStates.toMutableMap()
registryHolders.values.forEach { it.saveTo(map) }
- return map
+ return map.ifEmpty { null }
}
override fun removeState(key: Any) {
@@ -122,7 +122,12 @@
fun saveTo(map: MutableMap<Any, Map<String, List<Any?>>>) {
if (shouldSave) {
- map[key] = registry.performSave()
+ val savedData = registry.performSave()
+ if (savedData.isEmpty()) {
+ map -= key
+ } else {
+ map[key] = savedData
+ }
}
}
}
diff --git a/compose/runtime/runtime/api/public_plus_experimental_current.txt b/compose/runtime/runtime/api/public_plus_experimental_current.txt
index 6e27e40..4a2b67c 100644
--- a/compose/runtime/runtime/api/public_plus_experimental_current.txt
+++ b/compose/runtime/runtime/api/public_plus_experimental_current.txt
@@ -845,6 +845,8 @@
method public abstract androidx.compose.runtime.snapshots.Snapshot getRoot();
method public abstract boolean hasPendingChanges();
method public abstract androidx.compose.runtime.snapshots.Snapshot takeNestedSnapshot(optional kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver);
+ method @androidx.compose.runtime.ExperimentalComposeApi public final androidx.compose.runtime.snapshots.Snapshot? unsafeEnter();
+ method @androidx.compose.runtime.ExperimentalComposeApi public final void unsafeLeave(androidx.compose.runtime.snapshots.Snapshot? oldSnapshot);
property public int id;
property public abstract boolean readOnly;
property public abstract androidx.compose.runtime.snapshots.Snapshot root;
diff --git a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/ComposeVersion.kt b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/ComposeVersion.kt
index 969fcda..6a212d9 100644
--- a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/ComposeVersion.kt
+++ b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/ComposeVersion.kt
@@ -28,5 +28,5 @@
* IMPORTANT: Whenever updating this value, please make sure to also update `versionTable` and
* `minimumRuntimeVersionInt` in `VersionChecker.kt` of the compiler.
*/
- const val version: Int = 6700
+ const val version: Int = 6800
}
diff --git a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/Snapshot.kt b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/Snapshot.kt
index f8ffc53..fcb4815 100644
--- a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/Snapshot.kt
+++ b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/Snapshot.kt
@@ -21,6 +21,7 @@
import androidx.compose.runtime.AtomicReference
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisallowComposableCalls
+import androidx.compose.runtime.ExperimentalComposeApi
import androidx.compose.runtime.InternalComposeApi
import androidx.compose.runtime.SnapshotThreadLocal
import androidx.compose.runtime.synchronized
@@ -104,7 +105,7 @@
* or a nested call to [enter] is called. When [block] returns, the previous current snapshot
* is restored if there was one.
*
- * All changes to state object inside [block] are isolated to this snapshot and are not
+ * All changes to state objects inside [block] are isolated to this snapshot and are not
* visible to other snapshot or as global state. If this is a [readOnly] snapshot, any
* changes to state objects will throw an [IllegalStateException].
*
@@ -137,6 +138,40 @@
threadSnapshot.set(snapshot)
}
+ /**
+ * Enter the snapshot, returning the previous [Snapshot] for leaving this snapshot later
+ * using [unsafeLeave]. Prefer [enter] or [asContextElement] instead of using [unsafeEnter]
+ * directly to prevent mismatched [unsafeEnter]/[unsafeLeave] calls.
+ *
+ * After returning all state objects have the value associated with this snapshot.
+ * The value of [currentSnapshot] will be this snapshot until [unsafeLeave] is called
+ * with the returned [Snapshot] or another call to [unsafeEnter] or [enter]
+ * is made.
+ *
+ * All changes to state objects until another snapshot is entered or this snapshot is left
+ * are isolated to this snapshot and are not visible to other snapshot or as global state.
+ * If this is a [readOnly] snapshot, any changes to state objects will throw an
+ * [IllegalStateException].
+ *
+ * For a [MutableSnapshot], changes made to a snapshot can be applied
+ * atomically to the global state (or to its parent snapshot if it is a nested snapshot) by
+ * calling [MutableSnapshot.apply].
+ */
+ @ExperimentalComposeApi
+ fun unsafeEnter(): Snapshot? = makeCurrent()
+
+ /**
+ * Leave the snapshot, restoring the [oldSnapshot] before returning.
+ * See [unsafeEnter].
+ */
+ @ExperimentalComposeApi
+ fun unsafeLeave(oldSnapshot: Snapshot?) {
+ check(threadSnapshot.get() === this) {
+ "Cannot leave snapshot; $this is not the current snapshot"
+ }
+ restoreCurrent(oldSnapshot)
+ }
+
internal var disposed = false
/*
diff --git a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/SnapshotContextElement.kt b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/SnapshotContextElement.kt
index 1ecd64b..b4a7f86 100644
--- a/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/SnapshotContextElement.kt
+++ b/compose/runtime/runtime/src/commonMain/kotlin/androidx/compose/runtime/snapshots/SnapshotContextElement.kt
@@ -52,9 +52,9 @@
get() = SnapshotContextElement
override fun updateThreadContext(context: CoroutineContext): Snapshot? =
- snapshot.makeCurrent()
+ snapshot.unsafeEnter()
override fun restoreThreadContext(context: CoroutineContext, oldState: Snapshot?) {
- snapshot.restoreCurrent(oldState)
+ snapshot.unsafeLeave(oldState)
}
}
diff --git a/compose/runtime/runtime/src/commonTest/kotlin/androidx/compose/runtime/snapshots/SnapshotTests.kt b/compose/runtime/runtime/src/commonTest/kotlin/androidx/compose/runtime/snapshots/SnapshotTests.kt
index b51a20a..8d279be 100644
--- a/compose/runtime/runtime/src/commonTest/kotlin/androidx/compose/runtime/snapshots/SnapshotTests.kt
+++ b/compose/runtime/runtime/src/commonTest/kotlin/androidx/compose/runtime/snapshots/SnapshotTests.kt
@@ -18,6 +18,7 @@
package androidx.compose.runtime.snapshots
+import androidx.compose.runtime.ExperimentalComposeApi
import androidx.compose.runtime.InternalComposeApi
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.State
@@ -27,6 +28,7 @@
import androidx.compose.runtime.neverEqualPolicy
import androidx.compose.runtime.referentialEqualityPolicy
import androidx.compose.runtime.setValue
+import androidx.compose.runtime.snapshots.Snapshot.Companion.current
import androidx.compose.runtime.snapshots.Snapshot.Companion.openSnapshotCount
import androidx.compose.runtime.snapshots.Snapshot.Companion.takeMutableSnapshot
import androidx.compose.runtime.snapshots.Snapshot.Companion.takeSnapshot
@@ -37,6 +39,8 @@
import kotlin.test.assertEquals
import kotlin.test.assertFailsWith
import kotlin.test.assertFalse
+import kotlin.test.assertNotSame
+import kotlin.test.assertSame
import kotlin.test.assertTrue
import kotlin.test.fail
@@ -899,6 +903,39 @@
mutable1.dispose()
}
+ @OptIn(ExperimentalComposeApi::class)
+ @Test
+ fun testUnsafeSnapshotEnterAndLeave() {
+ val snapshot = takeSnapshot()
+ try {
+ val oldSnapshot = snapshot.unsafeEnter()
+ try {
+ assertSame(snapshot, current, "expected taken snapshot to be current")
+ } finally {
+ snapshot.unsafeLeave(oldSnapshot)
+ }
+ assertNotSame(snapshot, current, "expected taken snapshot not to be current")
+ } finally {
+ snapshot.dispose()
+ }
+ }
+
+ @OptIn(ExperimentalComposeApi::class)
+ @Test
+ fun testUnsafeSnapshotLeaveThrowsIfNotCurrent() {
+ val snapshot = takeSnapshot()
+ try {
+ try {
+ snapshot.unsafeLeave(null)
+ fail("unsafeLeave should have thrown")
+ } catch (ise: IllegalStateException) {
+ // expected
+ }
+ } finally {
+ snapshot.dispose()
+ }
+ }
+
private var count = 0
@BeforeTest
diff --git a/compose/ui/ui-inspection/src/androidTest/java/androidx/compose/ui/inspection/inspector/ParameterFactoryTest.kt b/compose/ui/ui-inspection/src/androidTest/java/androidx/compose/ui/inspection/inspector/ParameterFactoryTest.kt
index 7eb7645..75198d6 100644
--- a/compose/ui/ui-inspection/src/androidTest/java/androidx/compose/ui/inspection/inspector/ParameterFactoryTest.kt
+++ b/compose/ui/ui-inspection/src/androidTest/java/androidx/compose/ui/inspection/inspector/ParameterFactoryTest.kt
@@ -884,22 +884,12 @@
)
validate(create("style", style)) {
parameter("style", ParameterType.String, TextStyle::class.java.simpleName) {
- parameter("background", ParameterType.String, "Unspecified")
- parameter("color", ParameterType.Color, Color.Red.toArgb(), index = 2)
- parameter("fontSize", ParameterType.String, "Unspecified", index = 5)
- parameter("letterSpacing", ParameterType.String, "Unspecified", index = 9)
- parameter("lineHeight", ParameterType.String, "Unspecified", index = 10)
- parameter("paragraphStyle", ParameterType.String, "ParagraphStyle", index = 13) {
- parameter("lineHeight", ParameterType.String, "Unspecified", index = 0)
- }
- parameter("spanStyle", ParameterType.String, "SpanStyle", index = 16) {
- parameter("background", ParameterType.String, "Unspecified")
- parameter("color", ParameterType.Color, Color.Red.toArgb(), index = 2)
- parameter("fontSize", ParameterType.String, "Unspecified", index = 5)
- parameter("letterSpacing", ParameterType.String, "Unspecified", index = 9)
- parameter("textDecoration", ParameterType.String, "Underline", index = 13)
- }
- parameter("textDecoration", ParameterType.String, "Underline", index = 18)
+ parameter("color", ParameterType.Color, Color.Red.toArgb())
+ parameter("fontSize", ParameterType.String, "Unspecified", index = 1)
+ parameter("letterSpacing", ParameterType.String, "Unspecified", index = 7)
+ parameter("background", ParameterType.String, "Unspecified", index = 11)
+ parameter("textDecoration", ParameterType.String, "Underline", index = 12)
+ parameter("lineHeight", ParameterType.String, "Unspecified", index = 15)
}
}
}
diff --git a/compose/ui/ui-inspection/src/main/java/androidx/compose/ui/inspection/inspector/ParameterFactory.kt b/compose/ui/ui-inspection/src/main/java/androidx/compose/ui/inspection/inspector/ParameterFactory.kt
index 984fa4a..752ff77 100644
--- a/compose/ui/ui-inspection/src/main/java/androidx/compose/ui/inspection/inspector/ParameterFactory.kt
+++ b/compose/ui/ui-inspection/src/main/java/androidx/compose/ui/inspection/inspector/ParameterFactory.kt
@@ -33,6 +33,7 @@
import androidx.compose.ui.platform.InspectableModifier
import androidx.compose.ui.platform.InspectableValue
import androidx.compose.ui.text.AnnotatedString
+import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontListFontFamily
import androidx.compose.ui.text.font.FontStyle
import androidx.compose.ui.text.font.FontWeight
@@ -423,6 +424,14 @@
return createReferenceToExistingValue(name, value, parentValue, existing)
}
+ private fun create(
+ name: String,
+ value: Any?,
+ parentValue: Any?,
+ specifiedIndex: Int = 0
+ ): NodeParameter? =
+ create(name, value, parentValue)?.apply { index = specifiedIndex }
+
private fun createFromSimpleValue(name: String, value: Any?): NodeParameter? {
if (value == null) {
return null
@@ -474,6 +483,7 @@
value.javaClass.isArray -> createFromArray(name, value, startIndex, maxElements)
value is Offset -> createFromOffset(name, value)
value is Shadow -> createFromShadow(name, value)
+ value is TextStyle -> createFromTextStyle(name, value)
else -> createFromKotlinReflection(name, value)
}
@@ -488,6 +498,7 @@
value.javaClass.isArray -> findFromArray(value, index)
value is Offset -> findFromOffset(value, index)
value is Shadow -> findFromShadow(value, index)
+ value is TextStyle -> findFromTextStyle(value, index)
else -> findFromKotlinReflection(value, index)
}
@@ -912,6 +923,58 @@
return Pair("blurRadius", with(density) { value.blurRadius.toDp() })
}
+ // Temporary handling of TextStyle: remove when TextStyle implements InspectableValue
+ // Hide: paragraphStyle, spanStyle, platformStyle, lineHeightBehavior
+ private fun createFromTextStyle(name: String, value: TextStyle): NodeParameter? {
+ val parameter =
+ NodeParameter(name, ParameterType.String, TextStyle::class.java.simpleName)
+ val elements = parameter.elements
+ create("color", value.color, value)?.let { elements.add(it) }
+ create("fontSize", value.fontSize, value, 1)?.let { elements.add(it) }
+ create("fontWeight", value.fontWeight, value, 2)?.let { elements.add(it) }
+ create("fontStyle", value.fontStyle, value, 3)?.let { elements.add(it) }
+ create("fontSynthesis", value.fontSynthesis, value, 4)?.let { elements.add(it) }
+ create("fontFamily", value.fontFamily, value, 5)?.let { elements.add(it) }
+ create("fontFeatureSettings", value.fontFeatureSettings, value, 6)?.let {
+ elements.add(it)
+ }
+ create("letterSpacing", value.letterSpacing, value, 7)?.let { elements.add(it) }
+ create("baselineShift", value.baselineShift, value, 8)?.let { elements.add(it) }
+ create("textGeometricTransform", value.textGeometricTransform, value, 9)?.let {
+ elements.add(it)
+ }
+ create("localeList", value.localeList, value, 10)?.let { elements.add(it) }
+ create("background", value.background, value, 11)?.let { elements.add(it) }
+ create("textDecoration", value.textDecoration, value, 12)?.let { elements.add(it) }
+ create("shadow", value.shadow, value, 13)?.let { elements.add(it) }
+ create("textDirection", value.textDirection, value, 14)?.let { elements.add(it) }
+ create("lineHeight", value.lineHeight, value, 15)?.let { elements.add(it) }
+ create("textIndent", value.textIndent, value, 16)?.let { elements.add(it) }
+ return parameter
+ }
+
+ private fun findFromTextStyle(value: TextStyle, index: Int): Pair<String, Any?>? =
+ when (index) {
+ 0 -> Pair("color", value.color)
+ 1 -> Pair("fontSize", value.fontSize)
+ 2 -> Pair("fontWeight", value.fontWeight)
+ 3 -> Pair("fontStyle", value.fontStyle)
+ 4 -> Pair("fontSynthesis", value.fontSynthesis)
+ 5 -> Pair("fontFamily", value.fontFamily)
+ 6 -> Pair("fontFeatureSettings", value.fontFeatureSettings)
+ 7 -> Pair("letterSpacing", value.letterSpacing)
+ 8 -> Pair("baselineShift", value.baselineShift)
+ 9 -> Pair("textGeometricTransform", value.textGeometricTransform)
+ 10 -> Pair("localeList", value.localeList)
+ 11 -> Pair("background", value.background)
+ 12 -> Pair("textDecoration", value.textDecoration)
+ 13 -> Pair("shadow", value.shadow)
+ 14 -> Pair("textDirection", value.textDirection)
+ 15 -> Pair("lineHeight", value.lineHeight)
+ 16 -> Pair("textIndent", value.textIndent)
+ else -> null
+ }
+
@Suppress("DEPRECATION")
private fun createFromTextUnit(name: String, value: TextUnit): NodeParameter =
when (value.type) {
diff --git a/compose/ui/ui/api/current.txt b/compose/ui/ui/api/current.txt
index d1e7571..f203b26 100644
--- a/compose/ui/ui/api/current.txt
+++ b/compose/ui/ui/api/current.txt
@@ -113,6 +113,10 @@
public final class ComposedModifierKt {
method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+ method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+ method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, Object? key2, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+ method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, Object? key2, Object? key3, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+ method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object![]? keys, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
method public static androidx.compose.ui.Modifier materialize(androidx.compose.runtime.Composer, androidx.compose.ui.Modifier modifier);
}
diff --git a/compose/ui/ui/api/public_plus_experimental_current.txt b/compose/ui/ui/api/public_plus_experimental_current.txt
index 1aebd5a..8cd62e2 100644
--- a/compose/ui/ui/api/public_plus_experimental_current.txt
+++ b/compose/ui/ui/api/public_plus_experimental_current.txt
@@ -113,10 +113,10 @@
public final class ComposedModifierKt {
method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
- method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
- method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, Object? key2, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
- method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, Object? key2, Object? key3, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
- method @androidx.compose.ui.ExperimentalComposeUiApi public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object![]? keys, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+ method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+ method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, Object? key2, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+ method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, Object? key2, Object? key3, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+ method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object![]? keys, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
method public static androidx.compose.ui.Modifier materialize(androidx.compose.runtime.Composer, androidx.compose.ui.Modifier modifier);
}
diff --git a/compose/ui/ui/api/restricted_current.txt b/compose/ui/ui/api/restricted_current.txt
index 9b0aade..1b85c50 100644
--- a/compose/ui/ui/api/restricted_current.txt
+++ b/compose/ui/ui/api/restricted_current.txt
@@ -113,6 +113,10 @@
public final class ComposedModifierKt {
method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+ method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+ method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, Object? key2, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+ method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object? key1, Object? key2, Object? key3, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
+ method public static androidx.compose.ui.Modifier composed(androidx.compose.ui.Modifier, String fullyQualifiedName, Object![]? keys, optional kotlin.jvm.functions.Function1<? super androidx.compose.ui.platform.InspectorInfo,kotlin.Unit> inspectorInfo, kotlin.jvm.functions.Function1<? super androidx.compose.ui.Modifier,? extends androidx.compose.ui.Modifier> factory);
method public static androidx.compose.ui.Modifier materialize(androidx.compose.runtime.Composer, androidx.compose.ui.Modifier modifier);
}
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/ComposedModifier.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/ComposedModifier.kt
index 51901fc..6bca085 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/ComposedModifier.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/ComposedModifier.kt
@@ -71,7 +71,6 @@
* [materialize] must be called to create instance-specific modifiers if you are directly
* applying a [Modifier] to an element tree node.
*/
-@ExperimentalComposeUiApi
fun Modifier.composed(
fullyQualifiedName: String,
key1: Any?,
@@ -102,7 +101,6 @@
* [materialize] must be called to create instance-specific modifiers if you are directly
* applying a [Modifier] to an element tree node.
*/
-@ExperimentalComposeUiApi
fun Modifier.composed(
fullyQualifiedName: String,
key1: Any?,
@@ -134,7 +132,6 @@
* [materialize] must be called to create instance-specific modifiers if you are directly
* applying a [Modifier] to an element tree node.
*/
-@ExperimentalComposeUiApi
fun Modifier.composed(
fullyQualifiedName: String,
key1: Any?,
@@ -167,7 +164,6 @@
* [materialize] must be called to create instance-specific modifiers if you are directly
* applying a [Modifier] to an element tree node.
*/
-@ExperimentalComposeUiApi
fun Modifier.composed(
fullyQualifiedName: String,
vararg keys: Any?,
diff --git a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/modifier/ModifierLocal.kt b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/modifier/ModifierLocal.kt
index e82c42e..b98ef0a 100644
--- a/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/modifier/ModifierLocal.kt
+++ b/compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/modifier/ModifierLocal.kt
@@ -24,7 +24,7 @@
* current layout node. The provided [ModifierLocal]s are also available to layout nodes that are
* children of the current layout node.
*
- * One must create a [ModifierLocal] instance, which cah be referenced by consumers statically.
+ * One must create a [ModifierLocal] instance, which can be referenced by consumers statically.
* [ModifierLocal] instances themselves hold no data, and can be thought of as a type-safe
* identifier for the data being passed to other modifiers to the right of the providing
* modifier or down the tree. [ModifierLocal] factory functions take a single parameter: a
diff --git a/core/core-animation/api/1.0.0-beta02.txt b/core/core-animation/api/1.0.0-beta02.txt
new file mode 100644
index 0000000..3477c13
--- /dev/null
+++ b/core/core-animation/api/1.0.0-beta02.txt
@@ -0,0 +1,372 @@
+// Signature format: 4.0
+package androidx.core.animation {
+
+ public class AccelerateDecelerateInterpolator implements androidx.core.animation.Interpolator {
+ ctor public AccelerateDecelerateInterpolator();
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class AccelerateInterpolator implements androidx.core.animation.Interpolator {
+ ctor public AccelerateInterpolator();
+ ctor public AccelerateInterpolator(float);
+ ctor public AccelerateInterpolator(android.content.Context, android.util.AttributeSet);
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public abstract class Animator implements java.lang.Cloneable {
+ ctor public Animator();
+ method public void addListener(androidx.core.animation.Animator.AnimatorListener);
+ method public void addPauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+ method public void addUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+ method public void cancel();
+ method public androidx.core.animation.Animator clone();
+ method public void end();
+ method public abstract long getDuration();
+ method public androidx.core.animation.Interpolator? getInterpolator();
+ method public abstract long getStartDelay();
+ method public long getTotalDuration();
+ method public boolean isPaused();
+ method public abstract boolean isRunning();
+ method public boolean isStarted();
+ method public void pause();
+ method public void removeAllListeners();
+ method public void removeAllUpdateListeners();
+ method public void removeListener(androidx.core.animation.Animator.AnimatorListener);
+ method public void removePauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+ method public void removeUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+ method public void resume();
+ method public abstract androidx.core.animation.Animator setDuration(@IntRange(from=0) long);
+ method public abstract void setInterpolator(androidx.core.animation.Interpolator?);
+ method public abstract void setStartDelay(@IntRange(from=0) long);
+ method public void setTarget(Object?);
+ method public void setupEndValues();
+ method public void setupStartValues();
+ method public void start();
+ field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
+ }
+
+ public static interface Animator.AnimatorListener {
+ method public void onAnimationCancel(androidx.core.animation.Animator);
+ method public default void onAnimationEnd(androidx.core.animation.Animator, boolean);
+ method public void onAnimationEnd(androidx.core.animation.Animator);
+ method public void onAnimationRepeat(androidx.core.animation.Animator);
+ method public default void onAnimationStart(androidx.core.animation.Animator, boolean);
+ method public void onAnimationStart(androidx.core.animation.Animator);
+ }
+
+ public static interface Animator.AnimatorPauseListener {
+ method public void onAnimationPause(androidx.core.animation.Animator);
+ method public void onAnimationResume(androidx.core.animation.Animator);
+ }
+
+ public static interface Animator.AnimatorUpdateListener {
+ method public void onAnimationUpdate(androidx.core.animation.Animator);
+ }
+
+ public class AnimatorInflater {
+ method public static androidx.core.animation.Animator loadAnimator(android.content.Context, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+ method public static androidx.core.animation.Animator loadAnimator(android.content.res.Resources, android.content.res.Resources.Theme?, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+ method public static androidx.core.animation.Interpolator loadInterpolator(android.content.Context, @AnimatorRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException;
+ }
+
+ public abstract class AnimatorListenerAdapter implements androidx.core.animation.Animator.AnimatorListener androidx.core.animation.Animator.AnimatorPauseListener {
+ ctor public AnimatorListenerAdapter();
+ method public void onAnimationCancel(androidx.core.animation.Animator);
+ method public void onAnimationEnd(androidx.core.animation.Animator);
+ method public void onAnimationPause(androidx.core.animation.Animator);
+ method public void onAnimationRepeat(androidx.core.animation.Animator);
+ method public void onAnimationResume(androidx.core.animation.Animator);
+ method public void onAnimationStart(androidx.core.animation.Animator);
+ }
+
+ public final class AnimatorSet extends androidx.core.animation.Animator {
+ ctor public AnimatorSet();
+ method public boolean canReverse();
+ method public androidx.core.animation.AnimatorSet clone();
+ method public java.util.ArrayList<androidx.core.animation.Animator!> getChildAnimations();
+ method public long getCurrentPlayTime();
+ method public long getDuration();
+ method public long getStartDelay();
+ method public boolean isRunning();
+ method public androidx.core.animation.AnimatorSet.Builder play(androidx.core.animation.Animator);
+ method public void playSequentially(androidx.core.animation.Animator!...);
+ method public void playSequentially(java.util.List<androidx.core.animation.Animator!>);
+ method public void playTogether(androidx.core.animation.Animator!...);
+ method public void playTogether(java.util.Collection<androidx.core.animation.Animator!>);
+ method public void reverse();
+ method public void setCurrentPlayTime(long);
+ method public androidx.core.animation.AnimatorSet setDuration(long);
+ method public void setInterpolator(androidx.core.animation.Interpolator?);
+ method public void setStartDelay(long);
+ }
+
+ public class AnimatorSet.Builder {
+ method public androidx.core.animation.AnimatorSet.Builder after(androidx.core.animation.Animator);
+ method public androidx.core.animation.AnimatorSet.Builder after(long);
+ method public androidx.core.animation.AnimatorSet.Builder before(androidx.core.animation.Animator);
+ method public androidx.core.animation.AnimatorSet.Builder with(androidx.core.animation.Animator);
+ }
+
+ public class AnticipateInterpolator implements androidx.core.animation.Interpolator {
+ ctor public AnticipateInterpolator();
+ ctor public AnticipateInterpolator(float);
+ ctor public AnticipateInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class AnticipateOvershootInterpolator implements androidx.core.animation.Interpolator {
+ ctor public AnticipateOvershootInterpolator();
+ ctor public AnticipateOvershootInterpolator(float);
+ ctor public AnticipateOvershootInterpolator(float, float);
+ ctor public AnticipateOvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public final class ArgbEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+ method public Integer evaluate(float, Integer, Integer);
+ method public static androidx.core.animation.ArgbEvaluator getInstance();
+ }
+
+ public abstract class BidirectionalTypeConverter<T, V> extends androidx.core.animation.TypeConverter<T,V> {
+ ctor public BidirectionalTypeConverter(Class<T!>, Class<V!>);
+ method public abstract T convertBack(V);
+ method public androidx.core.animation.BidirectionalTypeConverter<V!,T!> invert();
+ }
+
+ public class BounceInterpolator implements androidx.core.animation.Interpolator {
+ ctor public BounceInterpolator();
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class CycleInterpolator implements androidx.core.animation.Interpolator {
+ ctor public CycleInterpolator(float);
+ ctor public CycleInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class DecelerateInterpolator implements androidx.core.animation.Interpolator {
+ ctor public DecelerateInterpolator();
+ ctor public DecelerateInterpolator(float);
+ ctor public DecelerateInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public final class FloatArrayEvaluator implements androidx.core.animation.TypeEvaluator<float[]> {
+ ctor public FloatArrayEvaluator();
+ ctor public FloatArrayEvaluator(float[]?);
+ method public float[] evaluate(float, float[], float[]);
+ }
+
+ public final class FloatEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Float> {
+ method public Float evaluate(float, Float, Float);
+ method public static androidx.core.animation.FloatEvaluator getInstance();
+ }
+
+ public abstract class FloatProperty<T> extends android.util.Property<T,java.lang.Float> {
+ ctor public FloatProperty(String);
+ ctor public FloatProperty();
+ method public final void set(T, Float);
+ method public abstract void setValue(T, float);
+ }
+
+ public class IntArrayEvaluator implements androidx.core.animation.TypeEvaluator<int[]> {
+ ctor public IntArrayEvaluator();
+ ctor public IntArrayEvaluator(int[]?);
+ method public int[] evaluate(float, int[], int[]);
+ }
+
+ public class IntEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+ method public Integer evaluate(float, Integer, Integer);
+ method public static androidx.core.animation.IntEvaluator getInstance();
+ }
+
+ public abstract class IntProperty<T> extends android.util.Property<T,java.lang.Integer> {
+ ctor public IntProperty(String);
+ ctor public IntProperty();
+ method public final void set(T, Integer);
+ method public abstract void setValue(T, int);
+ }
+
+ public interface Interpolator {
+ method public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public abstract class Keyframe<T> implements java.lang.Cloneable {
+ ctor public Keyframe();
+ method public abstract androidx.core.animation.Keyframe<T!> clone();
+ method @FloatRange(from=0, to=1) public float getFraction();
+ method public androidx.core.animation.Interpolator? getInterpolator();
+ method public Class<?> getType();
+ method public abstract T? getValue();
+ method public boolean hasValue();
+ method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float, float);
+ method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float);
+ method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float, int);
+ method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float);
+ method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float, T?);
+ method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float);
+ method public void setFraction(@FloatRange(from=0, to=1) float);
+ method public void setInterpolator(androidx.core.animation.Interpolator?);
+ method public abstract void setValue(T?);
+ }
+
+ public class LinearInterpolator implements androidx.core.animation.Interpolator {
+ ctor public LinearInterpolator();
+ ctor public LinearInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public final class ObjectAnimator extends androidx.core.animation.ValueAnimator {
+ ctor public ObjectAnimator();
+ method public androidx.core.animation.ObjectAnimator clone();
+ method public String getPropertyName();
+ method public Object? getTarget();
+ method public static androidx.core.animation.ObjectAnimator ofArgb(Object, String, int...);
+ method public static <T> androidx.core.animation.ObjectAnimator ofArgb(T, android.util.Property<T!,java.lang.Integer!>, int...);
+ method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String, float...);
+ method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String?, String?, android.graphics.Path);
+ method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>, float...);
+ method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>?, android.util.Property<T!,java.lang.Float!>?, android.graphics.Path);
+ method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, int...);
+ method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, String, android.graphics.Path);
+ method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>, int...);
+ method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>?, android.util.Property<T!,java.lang.Integer!>?, android.graphics.Path);
+ method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, float[]![]);
+ method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, androidx.core.animation.TypeConverter<T!,float[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+ method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, int[]![]);
+ method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, androidx.core.animation.TypeConverter<T!,int[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+ method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+ method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+ method @java.lang.SafeVarargs public static <T, V, P> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,P!>, androidx.core.animation.TypeConverter<V!,P!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+ method public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>?, android.graphics.Path);
+ method public static androidx.core.animation.ObjectAnimator ofPropertyValuesHolder(Object, androidx.core.animation.PropertyValuesHolder!...);
+ method public void setAutoCancel(boolean);
+ method public androidx.core.animation.ObjectAnimator setDuration(long);
+ method public void setProperty(android.util.Property);
+ method public void setPropertyName(String);
+ }
+
+ public class OvershootInterpolator implements androidx.core.animation.Interpolator {
+ ctor public OvershootInterpolator();
+ ctor public OvershootInterpolator(float);
+ ctor public OvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(from=0) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class PathInterpolator implements androidx.core.animation.Interpolator {
+ ctor public PathInterpolator(android.graphics.Path);
+ ctor public PathInterpolator(float, float);
+ ctor public PathInterpolator(float, float, float, float);
+ ctor public PathInterpolator(android.content.Context, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+ ctor public PathInterpolator(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+ method public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class PointFEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.PointF> {
+ ctor public PointFEvaluator();
+ ctor public PointFEvaluator(android.graphics.PointF);
+ method public android.graphics.PointF evaluate(float, android.graphics.PointF, android.graphics.PointF);
+ }
+
+ public class PropertyValuesHolder implements java.lang.Cloneable {
+ method public androidx.core.animation.PropertyValuesHolder clone();
+ method public String getPropertyName();
+ method public static androidx.core.animation.PropertyValuesHolder ofFloat(String, float...);
+ method public static androidx.core.animation.PropertyValuesHolder ofFloat(android.util.Property<?,java.lang.Float!>, float...);
+ method public static androidx.core.animation.PropertyValuesHolder ofInt(String, int...);
+ method public static androidx.core.animation.PropertyValuesHolder ofInt(android.util.Property<?,java.lang.Integer!>, int...);
+ method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(String, androidx.core.animation.Keyframe!...);
+ method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(android.util.Property, androidx.core.animation.Keyframe!...);
+ method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, float[]![]);
+ method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<V!,float[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+ method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<T!,float[]!>?, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+ method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, int[]![]);
+ method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<V!,int[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+ method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<T!,int[]!>?, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+ method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+ method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property, androidx.core.animation.TypeEvaluator<V!>, V!...);
+ method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<T!,V!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+ method public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>?, android.graphics.Path);
+ method public void setConverter(androidx.core.animation.TypeConverter?);
+ method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+ method public void setFloatValues(float...);
+ method public void setIntValues(int...);
+ method public void setKeyframes(androidx.core.animation.Keyframe!...);
+ method public void setObjectValues(java.lang.Object!...);
+ method public void setProperty(android.util.Property);
+ method public void setPropertyName(String);
+ }
+
+ public class RectEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.Rect> {
+ ctor public RectEvaluator();
+ ctor public RectEvaluator(android.graphics.Rect);
+ method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
+ }
+
+ public class TimeAnimator extends androidx.core.animation.ValueAnimator {
+ ctor public TimeAnimator();
+ method public void setTimeListener(androidx.core.animation.TimeAnimator.TimeListener?);
+ }
+
+ public static interface TimeAnimator.TimeListener {
+ method public void onTimeUpdate(androidx.core.animation.TimeAnimator, long, long);
+ }
+
+ public abstract class TypeConverter<T, V> {
+ ctor public TypeConverter(Class<T!>, Class<V!>);
+ method public abstract V convert(T);
+ }
+
+ public interface TypeEvaluator<T> {
+ method public T evaluate(float, T, T);
+ }
+
+ public class ValueAnimator extends androidx.core.animation.Animator {
+ ctor public ValueAnimator();
+ method public static boolean areAnimatorsEnabled();
+ method public androidx.core.animation.ValueAnimator clone();
+ method public float getAnimatedFraction();
+ method public Object getAnimatedValue();
+ method public Object? getAnimatedValue(String);
+ method public long getCurrentPlayTime();
+ method public long getDuration();
+ method public static long getFrameDelay();
+ method public String getNameForTrace();
+ method public int getRepeatCount();
+ method public int getRepeatMode();
+ method public long getStartDelay();
+ method public androidx.core.animation.PropertyValuesHolder![] getValues();
+ method public boolean isRunning();
+ method public static androidx.core.animation.ValueAnimator ofArgb(int...);
+ method public static androidx.core.animation.ValueAnimator ofFloat(float...);
+ method public static androidx.core.animation.ValueAnimator ofInt(int...);
+ method public static androidx.core.animation.ValueAnimator ofObject(androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+ method public static androidx.core.animation.ValueAnimator ofPropertyValuesHolder(androidx.core.animation.PropertyValuesHolder!...);
+ method public void reverse();
+ method public void setCurrentFraction(float);
+ method public void setCurrentPlayTime(long);
+ method public androidx.core.animation.ValueAnimator setDuration(long);
+ method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+ method public void setFloatValues(float...);
+ method public static void setFrameDelay(long);
+ method public void setIntValues(int...);
+ method public void setInterpolator(androidx.core.animation.Interpolator?);
+ method public void setNameForTrace(String);
+ method public void setObjectValues(java.lang.Object!...);
+ method public void setRepeatCount(int);
+ method public void setRepeatMode(int);
+ method public void setStartDelay(long);
+ method public void setValues(androidx.core.animation.PropertyValuesHolder!...);
+ field public static final int INFINITE = -1; // 0xffffffff
+ field public static final int RESTART = 1; // 0x1
+ field public static final int REVERSE = 2; // 0x2
+ }
+
+}
+
diff --git a/core/core-animation/api/public_plus_experimental_1.0.0-beta02.txt b/core/core-animation/api/public_plus_experimental_1.0.0-beta02.txt
new file mode 100644
index 0000000..3477c13
--- /dev/null
+++ b/core/core-animation/api/public_plus_experimental_1.0.0-beta02.txt
@@ -0,0 +1,372 @@
+// Signature format: 4.0
+package androidx.core.animation {
+
+ public class AccelerateDecelerateInterpolator implements androidx.core.animation.Interpolator {
+ ctor public AccelerateDecelerateInterpolator();
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class AccelerateInterpolator implements androidx.core.animation.Interpolator {
+ ctor public AccelerateInterpolator();
+ ctor public AccelerateInterpolator(float);
+ ctor public AccelerateInterpolator(android.content.Context, android.util.AttributeSet);
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public abstract class Animator implements java.lang.Cloneable {
+ ctor public Animator();
+ method public void addListener(androidx.core.animation.Animator.AnimatorListener);
+ method public void addPauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+ method public void addUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+ method public void cancel();
+ method public androidx.core.animation.Animator clone();
+ method public void end();
+ method public abstract long getDuration();
+ method public androidx.core.animation.Interpolator? getInterpolator();
+ method public abstract long getStartDelay();
+ method public long getTotalDuration();
+ method public boolean isPaused();
+ method public abstract boolean isRunning();
+ method public boolean isStarted();
+ method public void pause();
+ method public void removeAllListeners();
+ method public void removeAllUpdateListeners();
+ method public void removeListener(androidx.core.animation.Animator.AnimatorListener);
+ method public void removePauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+ method public void removeUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+ method public void resume();
+ method public abstract androidx.core.animation.Animator setDuration(@IntRange(from=0) long);
+ method public abstract void setInterpolator(androidx.core.animation.Interpolator?);
+ method public abstract void setStartDelay(@IntRange(from=0) long);
+ method public void setTarget(Object?);
+ method public void setupEndValues();
+ method public void setupStartValues();
+ method public void start();
+ field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
+ }
+
+ public static interface Animator.AnimatorListener {
+ method public void onAnimationCancel(androidx.core.animation.Animator);
+ method public default void onAnimationEnd(androidx.core.animation.Animator, boolean);
+ method public void onAnimationEnd(androidx.core.animation.Animator);
+ method public void onAnimationRepeat(androidx.core.animation.Animator);
+ method public default void onAnimationStart(androidx.core.animation.Animator, boolean);
+ method public void onAnimationStart(androidx.core.animation.Animator);
+ }
+
+ public static interface Animator.AnimatorPauseListener {
+ method public void onAnimationPause(androidx.core.animation.Animator);
+ method public void onAnimationResume(androidx.core.animation.Animator);
+ }
+
+ public static interface Animator.AnimatorUpdateListener {
+ method public void onAnimationUpdate(androidx.core.animation.Animator);
+ }
+
+ public class AnimatorInflater {
+ method public static androidx.core.animation.Animator loadAnimator(android.content.Context, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+ method public static androidx.core.animation.Animator loadAnimator(android.content.res.Resources, android.content.res.Resources.Theme?, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+ method public static androidx.core.animation.Interpolator loadInterpolator(android.content.Context, @AnimatorRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException;
+ }
+
+ public abstract class AnimatorListenerAdapter implements androidx.core.animation.Animator.AnimatorListener androidx.core.animation.Animator.AnimatorPauseListener {
+ ctor public AnimatorListenerAdapter();
+ method public void onAnimationCancel(androidx.core.animation.Animator);
+ method public void onAnimationEnd(androidx.core.animation.Animator);
+ method public void onAnimationPause(androidx.core.animation.Animator);
+ method public void onAnimationRepeat(androidx.core.animation.Animator);
+ method public void onAnimationResume(androidx.core.animation.Animator);
+ method public void onAnimationStart(androidx.core.animation.Animator);
+ }
+
+ public final class AnimatorSet extends androidx.core.animation.Animator {
+ ctor public AnimatorSet();
+ method public boolean canReverse();
+ method public androidx.core.animation.AnimatorSet clone();
+ method public java.util.ArrayList<androidx.core.animation.Animator!> getChildAnimations();
+ method public long getCurrentPlayTime();
+ method public long getDuration();
+ method public long getStartDelay();
+ method public boolean isRunning();
+ method public androidx.core.animation.AnimatorSet.Builder play(androidx.core.animation.Animator);
+ method public void playSequentially(androidx.core.animation.Animator!...);
+ method public void playSequentially(java.util.List<androidx.core.animation.Animator!>);
+ method public void playTogether(androidx.core.animation.Animator!...);
+ method public void playTogether(java.util.Collection<androidx.core.animation.Animator!>);
+ method public void reverse();
+ method public void setCurrentPlayTime(long);
+ method public androidx.core.animation.AnimatorSet setDuration(long);
+ method public void setInterpolator(androidx.core.animation.Interpolator?);
+ method public void setStartDelay(long);
+ }
+
+ public class AnimatorSet.Builder {
+ method public androidx.core.animation.AnimatorSet.Builder after(androidx.core.animation.Animator);
+ method public androidx.core.animation.AnimatorSet.Builder after(long);
+ method public androidx.core.animation.AnimatorSet.Builder before(androidx.core.animation.Animator);
+ method public androidx.core.animation.AnimatorSet.Builder with(androidx.core.animation.Animator);
+ }
+
+ public class AnticipateInterpolator implements androidx.core.animation.Interpolator {
+ ctor public AnticipateInterpolator();
+ ctor public AnticipateInterpolator(float);
+ ctor public AnticipateInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class AnticipateOvershootInterpolator implements androidx.core.animation.Interpolator {
+ ctor public AnticipateOvershootInterpolator();
+ ctor public AnticipateOvershootInterpolator(float);
+ ctor public AnticipateOvershootInterpolator(float, float);
+ ctor public AnticipateOvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public final class ArgbEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+ method public Integer evaluate(float, Integer, Integer);
+ method public static androidx.core.animation.ArgbEvaluator getInstance();
+ }
+
+ public abstract class BidirectionalTypeConverter<T, V> extends androidx.core.animation.TypeConverter<T,V> {
+ ctor public BidirectionalTypeConverter(Class<T!>, Class<V!>);
+ method public abstract T convertBack(V);
+ method public androidx.core.animation.BidirectionalTypeConverter<V!,T!> invert();
+ }
+
+ public class BounceInterpolator implements androidx.core.animation.Interpolator {
+ ctor public BounceInterpolator();
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class CycleInterpolator implements androidx.core.animation.Interpolator {
+ ctor public CycleInterpolator(float);
+ ctor public CycleInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class DecelerateInterpolator implements androidx.core.animation.Interpolator {
+ ctor public DecelerateInterpolator();
+ ctor public DecelerateInterpolator(float);
+ ctor public DecelerateInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public final class FloatArrayEvaluator implements androidx.core.animation.TypeEvaluator<float[]> {
+ ctor public FloatArrayEvaluator();
+ ctor public FloatArrayEvaluator(float[]?);
+ method public float[] evaluate(float, float[], float[]);
+ }
+
+ public final class FloatEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Float> {
+ method public Float evaluate(float, Float, Float);
+ method public static androidx.core.animation.FloatEvaluator getInstance();
+ }
+
+ public abstract class FloatProperty<T> extends android.util.Property<T,java.lang.Float> {
+ ctor public FloatProperty(String);
+ ctor public FloatProperty();
+ method public final void set(T, Float);
+ method public abstract void setValue(T, float);
+ }
+
+ public class IntArrayEvaluator implements androidx.core.animation.TypeEvaluator<int[]> {
+ ctor public IntArrayEvaluator();
+ ctor public IntArrayEvaluator(int[]?);
+ method public int[] evaluate(float, int[], int[]);
+ }
+
+ public class IntEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+ method public Integer evaluate(float, Integer, Integer);
+ method public static androidx.core.animation.IntEvaluator getInstance();
+ }
+
+ public abstract class IntProperty<T> extends android.util.Property<T,java.lang.Integer> {
+ ctor public IntProperty(String);
+ ctor public IntProperty();
+ method public final void set(T, Integer);
+ method public abstract void setValue(T, int);
+ }
+
+ public interface Interpolator {
+ method public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public abstract class Keyframe<T> implements java.lang.Cloneable {
+ ctor public Keyframe();
+ method public abstract androidx.core.animation.Keyframe<T!> clone();
+ method @FloatRange(from=0, to=1) public float getFraction();
+ method public androidx.core.animation.Interpolator? getInterpolator();
+ method public Class<?> getType();
+ method public abstract T? getValue();
+ method public boolean hasValue();
+ method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float, float);
+ method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float);
+ method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float, int);
+ method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float);
+ method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float, T?);
+ method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float);
+ method public void setFraction(@FloatRange(from=0, to=1) float);
+ method public void setInterpolator(androidx.core.animation.Interpolator?);
+ method public abstract void setValue(T?);
+ }
+
+ public class LinearInterpolator implements androidx.core.animation.Interpolator {
+ ctor public LinearInterpolator();
+ ctor public LinearInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public final class ObjectAnimator extends androidx.core.animation.ValueAnimator {
+ ctor public ObjectAnimator();
+ method public androidx.core.animation.ObjectAnimator clone();
+ method public String getPropertyName();
+ method public Object? getTarget();
+ method public static androidx.core.animation.ObjectAnimator ofArgb(Object, String, int...);
+ method public static <T> androidx.core.animation.ObjectAnimator ofArgb(T, android.util.Property<T!,java.lang.Integer!>, int...);
+ method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String, float...);
+ method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String?, String?, android.graphics.Path);
+ method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>, float...);
+ method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>?, android.util.Property<T!,java.lang.Float!>?, android.graphics.Path);
+ method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, int...);
+ method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, String, android.graphics.Path);
+ method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>, int...);
+ method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>?, android.util.Property<T!,java.lang.Integer!>?, android.graphics.Path);
+ method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, float[]![]);
+ method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, androidx.core.animation.TypeConverter<T!,float[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+ method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, int[]![]);
+ method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, androidx.core.animation.TypeConverter<T!,int[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+ method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+ method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+ method @java.lang.SafeVarargs public static <T, V, P> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,P!>, androidx.core.animation.TypeConverter<V!,P!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+ method public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>?, android.graphics.Path);
+ method public static androidx.core.animation.ObjectAnimator ofPropertyValuesHolder(Object, androidx.core.animation.PropertyValuesHolder!...);
+ method public void setAutoCancel(boolean);
+ method public androidx.core.animation.ObjectAnimator setDuration(long);
+ method public void setProperty(android.util.Property);
+ method public void setPropertyName(String);
+ }
+
+ public class OvershootInterpolator implements androidx.core.animation.Interpolator {
+ ctor public OvershootInterpolator();
+ ctor public OvershootInterpolator(float);
+ ctor public OvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(from=0) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class PathInterpolator implements androidx.core.animation.Interpolator {
+ ctor public PathInterpolator(android.graphics.Path);
+ ctor public PathInterpolator(float, float);
+ ctor public PathInterpolator(float, float, float, float);
+ ctor public PathInterpolator(android.content.Context, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+ ctor public PathInterpolator(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+ method public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class PointFEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.PointF> {
+ ctor public PointFEvaluator();
+ ctor public PointFEvaluator(android.graphics.PointF);
+ method public android.graphics.PointF evaluate(float, android.graphics.PointF, android.graphics.PointF);
+ }
+
+ public class PropertyValuesHolder implements java.lang.Cloneable {
+ method public androidx.core.animation.PropertyValuesHolder clone();
+ method public String getPropertyName();
+ method public static androidx.core.animation.PropertyValuesHolder ofFloat(String, float...);
+ method public static androidx.core.animation.PropertyValuesHolder ofFloat(android.util.Property<?,java.lang.Float!>, float...);
+ method public static androidx.core.animation.PropertyValuesHolder ofInt(String, int...);
+ method public static androidx.core.animation.PropertyValuesHolder ofInt(android.util.Property<?,java.lang.Integer!>, int...);
+ method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(String, androidx.core.animation.Keyframe!...);
+ method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(android.util.Property, androidx.core.animation.Keyframe!...);
+ method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, float[]![]);
+ method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<V!,float[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+ method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<T!,float[]!>?, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+ method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, int[]![]);
+ method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<V!,int[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+ method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<T!,int[]!>?, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+ method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+ method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property, androidx.core.animation.TypeEvaluator<V!>, V!...);
+ method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<T!,V!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+ method public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>?, android.graphics.Path);
+ method public void setConverter(androidx.core.animation.TypeConverter?);
+ method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+ method public void setFloatValues(float...);
+ method public void setIntValues(int...);
+ method public void setKeyframes(androidx.core.animation.Keyframe!...);
+ method public void setObjectValues(java.lang.Object!...);
+ method public void setProperty(android.util.Property);
+ method public void setPropertyName(String);
+ }
+
+ public class RectEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.Rect> {
+ ctor public RectEvaluator();
+ ctor public RectEvaluator(android.graphics.Rect);
+ method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
+ }
+
+ public class TimeAnimator extends androidx.core.animation.ValueAnimator {
+ ctor public TimeAnimator();
+ method public void setTimeListener(androidx.core.animation.TimeAnimator.TimeListener?);
+ }
+
+ public static interface TimeAnimator.TimeListener {
+ method public void onTimeUpdate(androidx.core.animation.TimeAnimator, long, long);
+ }
+
+ public abstract class TypeConverter<T, V> {
+ ctor public TypeConverter(Class<T!>, Class<V!>);
+ method public abstract V convert(T);
+ }
+
+ public interface TypeEvaluator<T> {
+ method public T evaluate(float, T, T);
+ }
+
+ public class ValueAnimator extends androidx.core.animation.Animator {
+ ctor public ValueAnimator();
+ method public static boolean areAnimatorsEnabled();
+ method public androidx.core.animation.ValueAnimator clone();
+ method public float getAnimatedFraction();
+ method public Object getAnimatedValue();
+ method public Object? getAnimatedValue(String);
+ method public long getCurrentPlayTime();
+ method public long getDuration();
+ method public static long getFrameDelay();
+ method public String getNameForTrace();
+ method public int getRepeatCount();
+ method public int getRepeatMode();
+ method public long getStartDelay();
+ method public androidx.core.animation.PropertyValuesHolder![] getValues();
+ method public boolean isRunning();
+ method public static androidx.core.animation.ValueAnimator ofArgb(int...);
+ method public static androidx.core.animation.ValueAnimator ofFloat(float...);
+ method public static androidx.core.animation.ValueAnimator ofInt(int...);
+ method public static androidx.core.animation.ValueAnimator ofObject(androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+ method public static androidx.core.animation.ValueAnimator ofPropertyValuesHolder(androidx.core.animation.PropertyValuesHolder!...);
+ method public void reverse();
+ method public void setCurrentFraction(float);
+ method public void setCurrentPlayTime(long);
+ method public androidx.core.animation.ValueAnimator setDuration(long);
+ method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+ method public void setFloatValues(float...);
+ method public static void setFrameDelay(long);
+ method public void setIntValues(int...);
+ method public void setInterpolator(androidx.core.animation.Interpolator?);
+ method public void setNameForTrace(String);
+ method public void setObjectValues(java.lang.Object!...);
+ method public void setRepeatCount(int);
+ method public void setRepeatMode(int);
+ method public void setStartDelay(long);
+ method public void setValues(androidx.core.animation.PropertyValuesHolder!...);
+ field public static final int INFINITE = -1; // 0xffffffff
+ field public static final int RESTART = 1; // 0x1
+ field public static final int REVERSE = 2; // 0x2
+ }
+
+}
+
diff --git a/core/core-animation/api/res-1.0.0-beta02.txt b/core/core-animation/api/res-1.0.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/core/core-animation/api/res-1.0.0-beta02.txt
diff --git a/core/core-animation/api/restricted_1.0.0-beta02.txt b/core/core-animation/api/restricted_1.0.0-beta02.txt
new file mode 100644
index 0000000..3477c13
--- /dev/null
+++ b/core/core-animation/api/restricted_1.0.0-beta02.txt
@@ -0,0 +1,372 @@
+// Signature format: 4.0
+package androidx.core.animation {
+
+ public class AccelerateDecelerateInterpolator implements androidx.core.animation.Interpolator {
+ ctor public AccelerateDecelerateInterpolator();
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class AccelerateInterpolator implements androidx.core.animation.Interpolator {
+ ctor public AccelerateInterpolator();
+ ctor public AccelerateInterpolator(float);
+ ctor public AccelerateInterpolator(android.content.Context, android.util.AttributeSet);
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public abstract class Animator implements java.lang.Cloneable {
+ ctor public Animator();
+ method public void addListener(androidx.core.animation.Animator.AnimatorListener);
+ method public void addPauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+ method public void addUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+ method public void cancel();
+ method public androidx.core.animation.Animator clone();
+ method public void end();
+ method public abstract long getDuration();
+ method public androidx.core.animation.Interpolator? getInterpolator();
+ method public abstract long getStartDelay();
+ method public long getTotalDuration();
+ method public boolean isPaused();
+ method public abstract boolean isRunning();
+ method public boolean isStarted();
+ method public void pause();
+ method public void removeAllListeners();
+ method public void removeAllUpdateListeners();
+ method public void removeListener(androidx.core.animation.Animator.AnimatorListener);
+ method public void removePauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+ method public void removeUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+ method public void resume();
+ method public abstract androidx.core.animation.Animator setDuration(@IntRange(from=0) long);
+ method public abstract void setInterpolator(androidx.core.animation.Interpolator?);
+ method public abstract void setStartDelay(@IntRange(from=0) long);
+ method public void setTarget(Object?);
+ method public void setupEndValues();
+ method public void setupStartValues();
+ method public void start();
+ field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
+ }
+
+ public static interface Animator.AnimatorListener {
+ method public void onAnimationCancel(androidx.core.animation.Animator);
+ method public default void onAnimationEnd(androidx.core.animation.Animator, boolean);
+ method public void onAnimationEnd(androidx.core.animation.Animator);
+ method public void onAnimationRepeat(androidx.core.animation.Animator);
+ method public default void onAnimationStart(androidx.core.animation.Animator, boolean);
+ method public void onAnimationStart(androidx.core.animation.Animator);
+ }
+
+ public static interface Animator.AnimatorPauseListener {
+ method public void onAnimationPause(androidx.core.animation.Animator);
+ method public void onAnimationResume(androidx.core.animation.Animator);
+ }
+
+ public static interface Animator.AnimatorUpdateListener {
+ method public void onAnimationUpdate(androidx.core.animation.Animator);
+ }
+
+ public class AnimatorInflater {
+ method public static androidx.core.animation.Animator loadAnimator(android.content.Context, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+ method public static androidx.core.animation.Animator loadAnimator(android.content.res.Resources, android.content.res.Resources.Theme?, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+ method public static androidx.core.animation.Interpolator loadInterpolator(android.content.Context, @AnimatorRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException;
+ }
+
+ public abstract class AnimatorListenerAdapter implements androidx.core.animation.Animator.AnimatorListener androidx.core.animation.Animator.AnimatorPauseListener {
+ ctor public AnimatorListenerAdapter();
+ method public void onAnimationCancel(androidx.core.animation.Animator);
+ method public void onAnimationEnd(androidx.core.animation.Animator);
+ method public void onAnimationPause(androidx.core.animation.Animator);
+ method public void onAnimationRepeat(androidx.core.animation.Animator);
+ method public void onAnimationResume(androidx.core.animation.Animator);
+ method public void onAnimationStart(androidx.core.animation.Animator);
+ }
+
+ public final class AnimatorSet extends androidx.core.animation.Animator {
+ ctor public AnimatorSet();
+ method public boolean canReverse();
+ method public androidx.core.animation.AnimatorSet clone();
+ method public java.util.ArrayList<androidx.core.animation.Animator!> getChildAnimations();
+ method public long getCurrentPlayTime();
+ method public long getDuration();
+ method public long getStartDelay();
+ method public boolean isRunning();
+ method public androidx.core.animation.AnimatorSet.Builder play(androidx.core.animation.Animator);
+ method public void playSequentially(androidx.core.animation.Animator!...);
+ method public void playSequentially(java.util.List<androidx.core.animation.Animator!>);
+ method public void playTogether(androidx.core.animation.Animator!...);
+ method public void playTogether(java.util.Collection<androidx.core.animation.Animator!>);
+ method public void reverse();
+ method public void setCurrentPlayTime(long);
+ method public androidx.core.animation.AnimatorSet setDuration(long);
+ method public void setInterpolator(androidx.core.animation.Interpolator?);
+ method public void setStartDelay(long);
+ }
+
+ public class AnimatorSet.Builder {
+ method public androidx.core.animation.AnimatorSet.Builder after(androidx.core.animation.Animator);
+ method public androidx.core.animation.AnimatorSet.Builder after(long);
+ method public androidx.core.animation.AnimatorSet.Builder before(androidx.core.animation.Animator);
+ method public androidx.core.animation.AnimatorSet.Builder with(androidx.core.animation.Animator);
+ }
+
+ public class AnticipateInterpolator implements androidx.core.animation.Interpolator {
+ ctor public AnticipateInterpolator();
+ ctor public AnticipateInterpolator(float);
+ ctor public AnticipateInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class AnticipateOvershootInterpolator implements androidx.core.animation.Interpolator {
+ ctor public AnticipateOvershootInterpolator();
+ ctor public AnticipateOvershootInterpolator(float);
+ ctor public AnticipateOvershootInterpolator(float, float);
+ ctor public AnticipateOvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public final class ArgbEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+ method public Integer evaluate(float, Integer, Integer);
+ method public static androidx.core.animation.ArgbEvaluator getInstance();
+ }
+
+ public abstract class BidirectionalTypeConverter<T, V> extends androidx.core.animation.TypeConverter<T,V> {
+ ctor public BidirectionalTypeConverter(Class<T!>, Class<V!>);
+ method public abstract T convertBack(V);
+ method public androidx.core.animation.BidirectionalTypeConverter<V!,T!> invert();
+ }
+
+ public class BounceInterpolator implements androidx.core.animation.Interpolator {
+ ctor public BounceInterpolator();
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class CycleInterpolator implements androidx.core.animation.Interpolator {
+ ctor public CycleInterpolator(float);
+ ctor public CycleInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class DecelerateInterpolator implements androidx.core.animation.Interpolator {
+ ctor public DecelerateInterpolator();
+ ctor public DecelerateInterpolator(float);
+ ctor public DecelerateInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public final class FloatArrayEvaluator implements androidx.core.animation.TypeEvaluator<float[]> {
+ ctor public FloatArrayEvaluator();
+ ctor public FloatArrayEvaluator(float[]?);
+ method public float[] evaluate(float, float[], float[]);
+ }
+
+ public final class FloatEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Float> {
+ method public Float evaluate(float, Float, Float);
+ method public static androidx.core.animation.FloatEvaluator getInstance();
+ }
+
+ public abstract class FloatProperty<T> extends android.util.Property<T,java.lang.Float> {
+ ctor public FloatProperty(String);
+ ctor public FloatProperty();
+ method public final void set(T, Float);
+ method public abstract void setValue(T, float);
+ }
+
+ public class IntArrayEvaluator implements androidx.core.animation.TypeEvaluator<int[]> {
+ ctor public IntArrayEvaluator();
+ ctor public IntArrayEvaluator(int[]?);
+ method public int[] evaluate(float, int[], int[]);
+ }
+
+ public class IntEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+ method public Integer evaluate(float, Integer, Integer);
+ method public static androidx.core.animation.IntEvaluator getInstance();
+ }
+
+ public abstract class IntProperty<T> extends android.util.Property<T,java.lang.Integer> {
+ ctor public IntProperty(String);
+ ctor public IntProperty();
+ method public final void set(T, Integer);
+ method public abstract void setValue(T, int);
+ }
+
+ public interface Interpolator {
+ method public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public abstract class Keyframe<T> implements java.lang.Cloneable {
+ ctor public Keyframe();
+ method public abstract androidx.core.animation.Keyframe<T!> clone();
+ method @FloatRange(from=0, to=1) public float getFraction();
+ method public androidx.core.animation.Interpolator? getInterpolator();
+ method public Class<?> getType();
+ method public abstract T? getValue();
+ method public boolean hasValue();
+ method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float, float);
+ method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float);
+ method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float, int);
+ method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float);
+ method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float, T?);
+ method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float);
+ method public void setFraction(@FloatRange(from=0, to=1) float);
+ method public void setInterpolator(androidx.core.animation.Interpolator?);
+ method public abstract void setValue(T?);
+ }
+
+ public class LinearInterpolator implements androidx.core.animation.Interpolator {
+ ctor public LinearInterpolator();
+ ctor public LinearInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public final class ObjectAnimator extends androidx.core.animation.ValueAnimator {
+ ctor public ObjectAnimator();
+ method public androidx.core.animation.ObjectAnimator clone();
+ method public String getPropertyName();
+ method public Object? getTarget();
+ method public static androidx.core.animation.ObjectAnimator ofArgb(Object, String, int...);
+ method public static <T> androidx.core.animation.ObjectAnimator ofArgb(T, android.util.Property<T!,java.lang.Integer!>, int...);
+ method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String, float...);
+ method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String?, String?, android.graphics.Path);
+ method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>, float...);
+ method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>?, android.util.Property<T!,java.lang.Float!>?, android.graphics.Path);
+ method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, int...);
+ method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, String, android.graphics.Path);
+ method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>, int...);
+ method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>?, android.util.Property<T!,java.lang.Integer!>?, android.graphics.Path);
+ method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, float[]![]);
+ method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, androidx.core.animation.TypeConverter<T!,float[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+ method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, int[]![]);
+ method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, androidx.core.animation.TypeConverter<T!,int[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+ method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+ method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+ method @java.lang.SafeVarargs public static <T, V, P> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,P!>, androidx.core.animation.TypeConverter<V!,P!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+ method public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>?, android.graphics.Path);
+ method public static androidx.core.animation.ObjectAnimator ofPropertyValuesHolder(Object, androidx.core.animation.PropertyValuesHolder!...);
+ method public void setAutoCancel(boolean);
+ method public androidx.core.animation.ObjectAnimator setDuration(long);
+ method public void setProperty(android.util.Property);
+ method public void setPropertyName(String);
+ }
+
+ public class OvershootInterpolator implements androidx.core.animation.Interpolator {
+ ctor public OvershootInterpolator();
+ ctor public OvershootInterpolator(float);
+ ctor public OvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+ method @FloatRange(from=0) public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class PathInterpolator implements androidx.core.animation.Interpolator {
+ ctor public PathInterpolator(android.graphics.Path);
+ ctor public PathInterpolator(float, float);
+ ctor public PathInterpolator(float, float, float, float);
+ ctor public PathInterpolator(android.content.Context, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+ ctor public PathInterpolator(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+ method public float getInterpolation(@FloatRange(from=0, to=1) float);
+ }
+
+ public class PointFEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.PointF> {
+ ctor public PointFEvaluator();
+ ctor public PointFEvaluator(android.graphics.PointF);
+ method public android.graphics.PointF evaluate(float, android.graphics.PointF, android.graphics.PointF);
+ }
+
+ public class PropertyValuesHolder implements java.lang.Cloneable {
+ method public androidx.core.animation.PropertyValuesHolder clone();
+ method public String getPropertyName();
+ method public static androidx.core.animation.PropertyValuesHolder ofFloat(String, float...);
+ method public static androidx.core.animation.PropertyValuesHolder ofFloat(android.util.Property<?,java.lang.Float!>, float...);
+ method public static androidx.core.animation.PropertyValuesHolder ofInt(String, int...);
+ method public static androidx.core.animation.PropertyValuesHolder ofInt(android.util.Property<?,java.lang.Integer!>, int...);
+ method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(String, androidx.core.animation.Keyframe!...);
+ method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(android.util.Property, androidx.core.animation.Keyframe!...);
+ method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, float[]![]);
+ method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<V!,float[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+ method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<T!,float[]!>?, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+ method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, int[]![]);
+ method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<V!,int[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+ method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<T!,int[]!>?, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+ method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+ method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
+ method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property, androidx.core.animation.TypeEvaluator<V!>, V!...);
+ method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<T!,V!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+ method public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>?, android.graphics.Path);
+ method public void setConverter(androidx.core.animation.TypeConverter?);
+ method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+ method public void setFloatValues(float...);
+ method public void setIntValues(int...);
+ method public void setKeyframes(androidx.core.animation.Keyframe!...);
+ method public void setObjectValues(java.lang.Object!...);
+ method public void setProperty(android.util.Property);
+ method public void setPropertyName(String);
+ }
+
+ public class RectEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.Rect> {
+ ctor public RectEvaluator();
+ ctor public RectEvaluator(android.graphics.Rect);
+ method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
+ }
+
+ public class TimeAnimator extends androidx.core.animation.ValueAnimator {
+ ctor public TimeAnimator();
+ method public void setTimeListener(androidx.core.animation.TimeAnimator.TimeListener?);
+ }
+
+ public static interface TimeAnimator.TimeListener {
+ method public void onTimeUpdate(androidx.core.animation.TimeAnimator, long, long);
+ }
+
+ public abstract class TypeConverter<T, V> {
+ ctor public TypeConverter(Class<T!>, Class<V!>);
+ method public abstract V convert(T);
+ }
+
+ public interface TypeEvaluator<T> {
+ method public T evaluate(float, T, T);
+ }
+
+ public class ValueAnimator extends androidx.core.animation.Animator {
+ ctor public ValueAnimator();
+ method public static boolean areAnimatorsEnabled();
+ method public androidx.core.animation.ValueAnimator clone();
+ method public float getAnimatedFraction();
+ method public Object getAnimatedValue();
+ method public Object? getAnimatedValue(String);
+ method public long getCurrentPlayTime();
+ method public long getDuration();
+ method public static long getFrameDelay();
+ method public String getNameForTrace();
+ method public int getRepeatCount();
+ method public int getRepeatMode();
+ method public long getStartDelay();
+ method public androidx.core.animation.PropertyValuesHolder![] getValues();
+ method public boolean isRunning();
+ method public static androidx.core.animation.ValueAnimator ofArgb(int...);
+ method public static androidx.core.animation.ValueAnimator ofFloat(float...);
+ method public static androidx.core.animation.ValueAnimator ofInt(int...);
+ method public static androidx.core.animation.ValueAnimator ofObject(androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+ method public static androidx.core.animation.ValueAnimator ofPropertyValuesHolder(androidx.core.animation.PropertyValuesHolder!...);
+ method public void reverse();
+ method public void setCurrentFraction(float);
+ method public void setCurrentPlayTime(long);
+ method public androidx.core.animation.ValueAnimator setDuration(long);
+ method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+ method public void setFloatValues(float...);
+ method public static void setFrameDelay(long);
+ method public void setIntValues(int...);
+ method public void setInterpolator(androidx.core.animation.Interpolator?);
+ method public void setNameForTrace(String);
+ method public void setObjectValues(java.lang.Object!...);
+ method public void setRepeatCount(int);
+ method public void setRepeatMode(int);
+ method public void setStartDelay(long);
+ method public void setValues(androidx.core.animation.PropertyValuesHolder!...);
+ field public static final int INFINITE = -1; // 0xffffffff
+ field public static final int RESTART = 1; // 0x1
+ field public static final int REVERSE = 2; // 0x2
+ }
+
+}
+
diff --git a/core/core-ktx/api/1.8.0-beta02.txt b/core/core-ktx/api/1.8.0-beta02.txt
new file mode 100644
index 0000000..521f26c
--- /dev/null
+++ b/core/core-ktx/api/1.8.0-beta02.txt
@@ -0,0 +1,629 @@
+// Signature format: 4.0
+package androidx.core.animation {
+
+ public final class AnimatorKt {
+ method public static inline android.animation.Animator.AnimatorListener addListener(android.animation.Animator, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onEnd, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onStart, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onCancel, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onRepeat);
+ method @RequiresApi(19) public static inline android.animation.Animator.AnimatorPauseListener addPauseListener(android.animation.Animator, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onResume, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onPause);
+ method public static inline android.animation.Animator.AnimatorListener doOnCancel(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ method public static inline android.animation.Animator.AnimatorListener doOnEnd(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.animation.Animator.AnimatorPauseListener doOnPause(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ method public static inline android.animation.Animator.AnimatorListener doOnRepeat(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.animation.Animator.AnimatorPauseListener doOnResume(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ method public static inline android.animation.Animator.AnimatorListener doOnStart(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ }
+
+}
+
+package androidx.core.content {
+
+ public final class ContentValuesKt {
+ method public static android.content.ContentValues contentValuesOf(kotlin.Pair<java.lang.String,?>... pairs);
+ }
+
+ public final class ContextKt {
+ method public static inline <reified T> T! getSystemService(android.content.Context);
+ method public static inline void withStyledAttributes(android.content.Context, optional android.util.AttributeSet? set, int[] attrs, optional @AttrRes int defStyleAttr, optional @StyleRes int defStyleRes, kotlin.jvm.functions.Function1<? super android.content.res.TypedArray,kotlin.Unit> block);
+ method public static inline void withStyledAttributes(android.content.Context, @StyleRes int resourceId, int[] attrs, kotlin.jvm.functions.Function1<? super android.content.res.TypedArray,kotlin.Unit> block);
+ }
+
+ public final class SharedPreferencesKt {
+ method public static inline void edit(android.content.SharedPreferences, optional boolean commit, kotlin.jvm.functions.Function1<? super android.content.SharedPreferences.Editor,kotlin.Unit> action);
+ }
+
+}
+
+package androidx.core.content.res {
+
+ public final class TypedArrayKt {
+ method public static boolean getBooleanOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method @ColorInt public static int getColorOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static android.content.res.ColorStateList getColorStateListOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static float getDimensionOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method @Dimension public static int getDimensionPixelOffsetOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method @Dimension public static int getDimensionPixelSizeOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static android.graphics.drawable.Drawable getDrawableOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static float getFloatOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method @RequiresApi(26) public static android.graphics.Typeface getFontOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static int getIntOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static int getIntegerOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method @AnyRes public static int getResourceIdOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static String getStringOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static CharSequence![] getTextArrayOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static CharSequence getTextOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static inline <R> R! use(android.content.res.TypedArray, kotlin.jvm.functions.Function1<? super android.content.res.TypedArray,? extends R> block);
+ }
+
+}
+
+package androidx.core.database {
+
+ public final class CursorKt {
+ method public static inline byte[]? getBlobOrNull(android.database.Cursor, int index);
+ method public static inline Double? getDoubleOrNull(android.database.Cursor, int index);
+ method public static inline Float? getFloatOrNull(android.database.Cursor, int index);
+ method public static inline Integer? getIntOrNull(android.database.Cursor, int index);
+ method public static inline Long? getLongOrNull(android.database.Cursor, int index);
+ method public static inline Short? getShortOrNull(android.database.Cursor, int index);
+ method public static inline String? getStringOrNull(android.database.Cursor, int index);
+ }
+
+}
+
+package androidx.core.database.sqlite {
+
+ public final class SQLiteDatabaseKt {
+ method public static inline <T> T! transaction(android.database.sqlite.SQLiteDatabase, optional boolean exclusive, kotlin.jvm.functions.Function1<? super android.database.sqlite.SQLiteDatabase,? extends T> body);
+ }
+
+}
+
+package androidx.core.graphics {
+
+ public final class BitmapKt {
+ method public static inline android.graphics.Bitmap applyCanvas(android.graphics.Bitmap, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline operator boolean contains(android.graphics.Bitmap, android.graphics.Point p);
+ method public static inline operator boolean contains(android.graphics.Bitmap, android.graphics.PointF p);
+ method public static inline android.graphics.Bitmap createBitmap(int width, int height, optional android.graphics.Bitmap.Config config);
+ method @RequiresApi(26) public static inline android.graphics.Bitmap createBitmap(int width, int height, optional android.graphics.Bitmap.Config config, optional boolean hasAlpha, optional android.graphics.ColorSpace colorSpace);
+ method public static inline operator int get(android.graphics.Bitmap, int x, int y);
+ method public static inline android.graphics.Bitmap scale(android.graphics.Bitmap, int width, int height, optional boolean filter);
+ method public static inline operator void set(android.graphics.Bitmap, int x, int y, @ColorInt int color);
+ }
+
+ public final class CanvasKt {
+ method public static inline void withClip(android.graphics.Canvas, android.graphics.Rect clipRect, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withClip(android.graphics.Canvas, android.graphics.RectF clipRect, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withClip(android.graphics.Canvas, int left, int top, int right, int bottom, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withClip(android.graphics.Canvas, float left, float top, float right, float bottom, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withClip(android.graphics.Canvas, android.graphics.Path clipPath, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withMatrix(android.graphics.Canvas, optional android.graphics.Matrix matrix, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withRotation(android.graphics.Canvas, optional float degrees, optional float pivotX, optional float pivotY, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withSave(android.graphics.Canvas, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withScale(android.graphics.Canvas, optional float x, optional float y, optional float pivotX, optional float pivotY, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withSkew(android.graphics.Canvas, optional float x, optional float y, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withTranslation(android.graphics.Canvas, optional float x, optional float y, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ }
+
+ public final class ColorKt {
+ method @RequiresApi(26) public static inline operator float component1(android.graphics.Color);
+ method public static inline operator int component1(@ColorInt int);
+ method @RequiresApi(26) public static inline operator float component1(@ColorLong long);
+ method @RequiresApi(26) public static inline operator float component2(android.graphics.Color);
+ method public static inline operator int component2(@ColorInt int);
+ method @RequiresApi(26) public static inline operator float component2(@ColorLong long);
+ method @RequiresApi(26) public static inline operator float component3(android.graphics.Color);
+ method public static inline operator int component3(@ColorInt int);
+ method @RequiresApi(26) public static inline operator float component3(@ColorLong long);
+ method @RequiresApi(26) public static inline operator float component4(android.graphics.Color);
+ method public static inline operator int component4(@ColorInt int);
+ method @RequiresApi(26) public static inline operator float component4(@ColorLong long);
+ method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorInt int, android.graphics.ColorSpace.Named colorSpace);
+ method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorInt int, android.graphics.ColorSpace colorSpace);
+ method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorLong long, android.graphics.ColorSpace.Named colorSpace);
+ method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorLong long, android.graphics.ColorSpace colorSpace);
+ method @RequiresApi(26) public static inline infix android.graphics.Color convertTo(android.graphics.Color, android.graphics.ColorSpace.Named colorSpace);
+ method @RequiresApi(26) public static inline infix android.graphics.Color convertTo(android.graphics.Color, android.graphics.ColorSpace colorSpace);
+ method public static inline int getAlpha(@ColorInt int);
+ method @RequiresApi(26) public static inline float getAlpha(@ColorLong long);
+ method public static inline int getBlue(@ColorInt int);
+ method @RequiresApi(26) public static inline float getBlue(@ColorLong long);
+ method @RequiresApi(26) public static inline android.graphics.ColorSpace getColorSpace(@ColorLong long);
+ method public static inline int getGreen(@ColorInt int);
+ method @RequiresApi(26) public static inline float getGreen(@ColorLong long);
+ method @RequiresApi(26) public static inline float getLuminance(@ColorInt int);
+ method @RequiresApi(26) public static inline float getLuminance(@ColorLong long);
+ method public static inline int getRed(@ColorInt int);
+ method @RequiresApi(26) public static inline float getRed(@ColorLong long);
+ method @RequiresApi(26) public static inline boolean isSrgb(@ColorLong long);
+ method @RequiresApi(26) public static inline boolean isWideGamut(@ColorLong long);
+ method @RequiresApi(26) public static operator android.graphics.Color plus(android.graphics.Color, android.graphics.Color c);
+ method @RequiresApi(26) public static inline android.graphics.Color toColor(@ColorInt int);
+ method @RequiresApi(26) public static inline android.graphics.Color toColor(@ColorLong long);
+ method @ColorInt @RequiresApi(26) public static inline int toColorInt(@ColorLong long);
+ method @ColorInt public static inline int toColorInt(String);
+ method @ColorLong @RequiresApi(26) public static inline long toColorLong(@ColorInt int);
+ }
+
+ public final class ImageDecoderKt {
+ method @RequiresApi(28) public static inline android.graphics.Bitmap decodeBitmap(android.graphics.ImageDecoder.Source, kotlin.jvm.functions.Function3<? super android.graphics.ImageDecoder,? super android.graphics.ImageDecoder.ImageInfo,? super android.graphics.ImageDecoder.Source,kotlin.Unit> action);
+ method @RequiresApi(28) public static inline android.graphics.drawable.Drawable decodeDrawable(android.graphics.ImageDecoder.Source, kotlin.jvm.functions.Function3<? super android.graphics.ImageDecoder,? super android.graphics.ImageDecoder.ImageInfo,? super android.graphics.ImageDecoder.Source,kotlin.Unit> action);
+ }
+
+ public final class MatrixKt {
+ method public static android.graphics.Matrix rotationMatrix(float degrees, optional float px, optional float py);
+ method public static android.graphics.Matrix scaleMatrix(optional float sx, optional float sy);
+ method public static inline operator android.graphics.Matrix times(android.graphics.Matrix, android.graphics.Matrix m);
+ method public static android.graphics.Matrix translationMatrix(optional float tx, optional float ty);
+ method public static inline float[] values(android.graphics.Matrix);
+ }
+
+ public final class PaintKt {
+ method public static inline boolean setBlendMode(android.graphics.Paint, androidx.core.graphics.BlendModeCompat? blendModeCompat);
+ }
+
+ public final class PathKt {
+ method @RequiresApi(19) public static inline infix android.graphics.Path and(android.graphics.Path, android.graphics.Path p);
+ method @RequiresApi(26) public static Iterable<androidx.core.graphics.PathSegment> flatten(android.graphics.Path, optional float error);
+ method @RequiresApi(19) public static inline operator android.graphics.Path minus(android.graphics.Path, android.graphics.Path p);
+ method @RequiresApi(19) public static inline infix android.graphics.Path or(android.graphics.Path, android.graphics.Path p);
+ method @RequiresApi(19) public static inline operator android.graphics.Path plus(android.graphics.Path, android.graphics.Path p);
+ method @RequiresApi(19) public static inline infix android.graphics.Path xor(android.graphics.Path, android.graphics.Path p);
+ }
+
+ public final class PictureKt {
+ method public static inline android.graphics.Picture record(android.graphics.Picture, int width, int height, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ }
+
+ public final class PointKt {
+ method public static inline operator int component1(android.graphics.Point);
+ method public static inline operator float component1(android.graphics.PointF);
+ method public static inline operator int component2(android.graphics.Point);
+ method public static inline operator float component2(android.graphics.PointF);
+ method public static inline operator android.graphics.Point minus(android.graphics.Point, android.graphics.Point p);
+ method public static inline operator android.graphics.PointF minus(android.graphics.PointF, android.graphics.PointF p);
+ method public static inline operator android.graphics.Point minus(android.graphics.Point, int xy);
+ method public static inline operator android.graphics.PointF minus(android.graphics.PointF, float xy);
+ method public static inline operator android.graphics.Point plus(android.graphics.Point, android.graphics.Point p);
+ method public static inline operator android.graphics.PointF plus(android.graphics.PointF, android.graphics.PointF p);
+ method public static inline operator android.graphics.Point plus(android.graphics.Point, int xy);
+ method public static inline operator android.graphics.PointF plus(android.graphics.PointF, float xy);
+ method public static inline android.graphics.Point toPoint(android.graphics.PointF);
+ method public static inline android.graphics.PointF toPointF(android.graphics.Point);
+ method public static inline operator android.graphics.Point unaryMinus(android.graphics.Point);
+ method public static inline operator android.graphics.PointF unaryMinus(android.graphics.PointF);
+ }
+
+ public final class PorterDuffKt {
+ method public static inline android.graphics.PorterDuffColorFilter toColorFilter(android.graphics.PorterDuff.Mode, int color);
+ method public static inline android.graphics.PorterDuffXfermode toXfermode(android.graphics.PorterDuff.Mode);
+ }
+
+ public final class RectKt {
+ method public static inline infix android.graphics.Rect and(android.graphics.Rect, android.graphics.Rect r);
+ method public static inline infix android.graphics.RectF and(android.graphics.RectF, android.graphics.RectF r);
+ method public static inline operator int component1(android.graphics.Rect);
+ method public static inline operator float component1(android.graphics.RectF);
+ method public static inline operator int component2(android.graphics.Rect);
+ method public static inline operator float component2(android.graphics.RectF);
+ method public static inline operator int component3(android.graphics.Rect);
+ method public static inline operator float component3(android.graphics.RectF);
+ method public static inline operator int component4(android.graphics.Rect);
+ method public static inline operator float component4(android.graphics.RectF);
+ method public static inline operator boolean contains(android.graphics.Rect, android.graphics.Point p);
+ method public static inline operator boolean contains(android.graphics.RectF, android.graphics.PointF p);
+ method public static inline operator android.graphics.Region minus(android.graphics.Rect, android.graphics.Rect r);
+ method public static inline operator android.graphics.Region minus(android.graphics.RectF, android.graphics.RectF r);
+ method public static inline operator android.graphics.Rect minus(android.graphics.Rect, int xy);
+ method public static inline operator android.graphics.RectF minus(android.graphics.RectF, float xy);
+ method public static inline operator android.graphics.Rect minus(android.graphics.Rect, android.graphics.Point xy);
+ method public static inline operator android.graphics.RectF minus(android.graphics.RectF, android.graphics.PointF xy);
+ method public static inline infix android.graphics.Rect or(android.graphics.Rect, android.graphics.Rect r);
+ method public static inline infix android.graphics.RectF or(android.graphics.RectF, android.graphics.RectF r);
+ method public static inline operator android.graphics.Rect plus(android.graphics.Rect, android.graphics.Rect r);
+ method public static inline operator android.graphics.RectF plus(android.graphics.RectF, android.graphics.RectF r);
+ method public static inline operator android.graphics.Rect plus(android.graphics.Rect, int xy);
+ method public static inline operator android.graphics.RectF plus(android.graphics.RectF, float xy);
+ method public static inline operator android.graphics.Rect plus(android.graphics.Rect, android.graphics.Point xy);
+ method public static inline operator android.graphics.RectF plus(android.graphics.RectF, android.graphics.PointF xy);
+ method public static inline operator android.graphics.Rect times(android.graphics.Rect, int factor);
+ method public static inline operator android.graphics.RectF times(android.graphics.RectF, int factor);
+ method public static inline operator android.graphics.RectF times(android.graphics.RectF, float factor);
+ method public static inline android.graphics.Rect toRect(android.graphics.RectF);
+ method public static inline android.graphics.RectF toRectF(android.graphics.Rect);
+ method public static inline android.graphics.Region toRegion(android.graphics.Rect);
+ method public static inline android.graphics.Region toRegion(android.graphics.RectF);
+ method public static inline android.graphics.RectF transform(android.graphics.RectF, android.graphics.Matrix m);
+ method public static inline infix android.graphics.Region xor(android.graphics.Rect, android.graphics.Rect r);
+ method public static inline infix android.graphics.Region xor(android.graphics.RectF, android.graphics.RectF r);
+ }
+
+ public final class RegionKt {
+ method public static inline infix android.graphics.Region and(android.graphics.Region, android.graphics.Rect r);
+ method public static inline infix android.graphics.Region and(android.graphics.Region, android.graphics.Region r);
+ method public static inline operator boolean contains(android.graphics.Region, android.graphics.Point p);
+ method public static inline void forEach(android.graphics.Region, kotlin.jvm.functions.Function1<? super android.graphics.Rect,kotlin.Unit> action);
+ method public static operator java.util.Iterator<android.graphics.Rect> iterator(android.graphics.Region);
+ method public static inline operator android.graphics.Region minus(android.graphics.Region, android.graphics.Rect r);
+ method public static inline operator android.graphics.Region minus(android.graphics.Region, android.graphics.Region r);
+ method public static inline operator android.graphics.Region not(android.graphics.Region);
+ method public static inline infix android.graphics.Region or(android.graphics.Region, android.graphics.Rect r);
+ method public static inline infix android.graphics.Region or(android.graphics.Region, android.graphics.Region r);
+ method public static inline operator android.graphics.Region plus(android.graphics.Region, android.graphics.Rect r);
+ method public static inline operator android.graphics.Region plus(android.graphics.Region, android.graphics.Region r);
+ method public static inline operator android.graphics.Region unaryMinus(android.graphics.Region);
+ method public static inline infix android.graphics.Region xor(android.graphics.Region, android.graphics.Rect r);
+ method public static inline infix android.graphics.Region xor(android.graphics.Region, android.graphics.Region r);
+ }
+
+ public final class ShaderKt {
+ method public static inline void transform(android.graphics.Shader, kotlin.jvm.functions.Function1<? super android.graphics.Matrix,kotlin.Unit> block);
+ }
+
+}
+
+package androidx.core.graphics.drawable {
+
+ public final class BitmapDrawableKt {
+ method public static inline android.graphics.drawable.BitmapDrawable toDrawable(android.graphics.Bitmap, android.content.res.Resources resources);
+ }
+
+ public final class ColorDrawableKt {
+ method public static inline android.graphics.drawable.ColorDrawable toDrawable(@ColorInt int);
+ method @RequiresApi(26) public static inline android.graphics.drawable.ColorDrawable toDrawable(android.graphics.Color);
+ }
+
+ public final class DrawableKt {
+ method public static android.graphics.Bitmap toBitmap(android.graphics.drawable.Drawable, optional @Px int width, optional @Px int height, optional android.graphics.Bitmap.Config? config);
+ method public static android.graphics.Bitmap? toBitmapOrNull(android.graphics.drawable.Drawable, optional @Px int width, optional @Px int height, optional android.graphics.Bitmap.Config? config);
+ method public static void updateBounds(android.graphics.drawable.Drawable, optional @Px int left, optional @Px int top, optional @Px int right, optional @Px int bottom);
+ }
+
+ public final class IconKt {
+ method @RequiresApi(26) public static inline android.graphics.drawable.Icon toAdaptiveIcon(android.graphics.Bitmap);
+ method @RequiresApi(26) public static inline android.graphics.drawable.Icon toIcon(android.graphics.Bitmap);
+ method @RequiresApi(26) public static inline android.graphics.drawable.Icon toIcon(android.net.Uri);
+ method @RequiresApi(26) public static inline android.graphics.drawable.Icon toIcon(byte[]);
+ }
+
+}
+
+package androidx.core.location {
+
+ public final class LocationKt {
+ method public static inline operator double component1(android.location.Location);
+ method public static inline operator double component2(android.location.Location);
+ }
+
+}
+
+package androidx.core.net {
+
+ public final class UriKt {
+ method public static java.io.File toFile(android.net.Uri);
+ method public static inline android.net.Uri toUri(String);
+ method public static inline android.net.Uri toUri(java.io.File);
+ }
+
+}
+
+package androidx.core.os {
+
+ public final class BundleKt {
+ method public static android.os.Bundle bundleOf(kotlin.Pair<java.lang.String,?>... pairs);
+ method public static android.os.Bundle bundleOf();
+ }
+
+ public final class HandlerKt {
+ method public static inline Runnable postAtTime(android.os.Handler, long uptimeMillis, optional Object? token, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+ method public static inline Runnable postDelayed(android.os.Handler, long delayInMillis, optional Object? token, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+ }
+
+ @RequiresApi(31) public final class OutcomeReceiverKt {
+ method @RequiresApi(31) public static <R, E extends java.lang.Throwable> android.os.OutcomeReceiver<R,E> asOutcomeReceiver(kotlin.coroutines.Continuation<? super R>);
+ }
+
+ public final class PersistableBundleKt {
+ method @RequiresApi(21) public static android.os.PersistableBundle persistableBundleOf(kotlin.Pair<java.lang.String,?>... pairs);
+ method @RequiresApi(21) public static android.os.PersistableBundle persistableBundleOf();
+ method @RequiresApi(21) public static android.os.PersistableBundle toPersistableBundle(java.util.Map<java.lang.String,?>);
+ }
+
+ public final class TraceKt {
+ method @Deprecated public static inline <T> T! trace(String sectionName, kotlin.jvm.functions.Function0<? extends T> block);
+ }
+
+}
+
+package androidx.core.text {
+
+ public final class CharSequenceKt {
+ method public static inline boolean isDigitsOnly(CharSequence);
+ method public static inline int trimmedLength(CharSequence);
+ }
+
+ public final class HtmlKt {
+ method public static inline android.text.Spanned parseAsHtml(String, optional int flags, optional android.text.Html.ImageGetter? imageGetter, optional android.text.Html.TagHandler? tagHandler);
+ method public static inline String toHtml(android.text.Spanned, optional int option);
+ }
+
+ public final class LocaleKt {
+ method @RequiresApi(17) public static inline int getLayoutDirection(java.util.Locale);
+ }
+
+ public final class SpannableStringBuilderKt {
+ method public static inline android.text.SpannableStringBuilder backgroundColor(android.text.SpannableStringBuilder, @ColorInt int color, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder bold(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannedString buildSpannedString(kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder color(android.text.SpannableStringBuilder, @ColorInt int color, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder inSpans(android.text.SpannableStringBuilder, Object![] spans, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder inSpans(android.text.SpannableStringBuilder, Object span, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder italic(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder scale(android.text.SpannableStringBuilder, float proportion, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder strikeThrough(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder subscript(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder superscript(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder underline(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ }
+
+ public final class SpannableStringKt {
+ method public static inline void clearSpans(android.text.Spannable);
+ method public static inline operator void set(android.text.Spannable, int start, int end, Object span);
+ method public static inline operator void set(android.text.Spannable, kotlin.ranges.IntRange range, Object span);
+ method public static inline android.text.Spannable toSpannable(CharSequence);
+ }
+
+ public final class SpannedStringKt {
+ method public static inline <reified T> T![]! getSpans(android.text.Spanned, optional int start, optional int end);
+ method public static inline android.text.Spanned toSpanned(CharSequence);
+ }
+
+ public final class StringKt {
+ method public static inline String htmlEncode(String);
+ }
+
+}
+
+package androidx.core.transition {
+
+ public final class TransitionKt {
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener addListener(android.transition.Transition, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onEnd, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onStart, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onCancel, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onResume, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onPause);
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnCancel(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnEnd(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnPause(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnResume(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnStart(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+ }
+
+}
+
+package androidx.core.util {
+
+ public final class AndroidXConsumerKt {
+ method public static <T> androidx.core.util.Consumer<T> asAndroidXConsumer(kotlin.coroutines.Continuation<? super T>);
+ }
+
+ public final class AtomicFileKt {
+ method @RequiresApi(17) public static inline byte[] readBytes(android.util.AtomicFile);
+ method @RequiresApi(17) public static String readText(android.util.AtomicFile, optional java.nio.charset.Charset charset);
+ method @RequiresApi(17) public static inline void tryWrite(android.util.AtomicFile, kotlin.jvm.functions.Function1<? super java.io.FileOutputStream,kotlin.Unit> block);
+ method @RequiresApi(17) public static void writeBytes(android.util.AtomicFile, byte[] array);
+ method @RequiresApi(17) public static void writeText(android.util.AtomicFile, String text, optional java.nio.charset.Charset charset);
+ }
+
+ @RequiresApi(24) public final class ConsumerKt {
+ method @RequiresApi(24) public static <T> java.util.function.Consumer<T> asConsumer(kotlin.coroutines.Continuation<? super T>);
+ }
+
+ public final class HalfKt {
+ method @RequiresApi(26) public static inline android.util.Half toHalf(@HalfFloat short);
+ method @RequiresApi(26) public static inline android.util.Half toHalf(float);
+ method @RequiresApi(26) public static inline android.util.Half toHalf(double);
+ method @RequiresApi(26) public static inline android.util.Half toHalf(String);
+ }
+
+ public final class LongSparseArrayKt {
+ method @RequiresApi(16) public static inline operator <T> boolean contains(android.util.LongSparseArray<T>, long key);
+ method @RequiresApi(16) public static inline <T> boolean containsKey(android.util.LongSparseArray<T>, long key);
+ method @RequiresApi(16) public static inline <T> boolean containsValue(android.util.LongSparseArray<T>, T? value);
+ method @RequiresApi(16) public static inline <T> void forEach(android.util.LongSparseArray<T>, kotlin.jvm.functions.Function2<? super java.lang.Long,? super T,kotlin.Unit> action);
+ method @RequiresApi(16) public static inline <T> T! getOrDefault(android.util.LongSparseArray<T>, long key, T? defaultValue);
+ method @RequiresApi(16) public static inline <T> T! getOrElse(android.util.LongSparseArray<T>, long key, kotlin.jvm.functions.Function0<? extends T> defaultValue);
+ method @RequiresApi(16) public static inline <T> int getSize(android.util.LongSparseArray<T>);
+ method @RequiresApi(16) public static inline <T> boolean isEmpty(android.util.LongSparseArray<T>);
+ method @RequiresApi(16) public static inline <T> boolean isNotEmpty(android.util.LongSparseArray<T>);
+ method @RequiresApi(16) public static <T> kotlin.collections.LongIterator keyIterator(android.util.LongSparseArray<T>);
+ method @RequiresApi(16) public static operator <T> android.util.LongSparseArray<T> plus(android.util.LongSparseArray<T>, android.util.LongSparseArray<T> other);
+ method @RequiresApi(16) public static <T> void putAll(android.util.LongSparseArray<T>, android.util.LongSparseArray<T> other);
+ method @RequiresApi(16) public static <T> boolean remove(android.util.LongSparseArray<T>, long key, T? value);
+ method @RequiresApi(16) public static inline operator <T> void set(android.util.LongSparseArray<T>, long key, T? value);
+ method @RequiresApi(16) public static <T> java.util.Iterator<T> valueIterator(android.util.LongSparseArray<T>);
+ }
+
+ public final class LruCacheKt {
+ method public static inline <K, V> android.util.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 final class PairKt {
+ method public static inline operator <F, S> F! component1(androidx.core.util.Pair<F,S>);
+ method public static inline operator <F, S> F! component1(android.util.Pair<F,S>);
+ method public static inline operator <F, S> S! component2(androidx.core.util.Pair<F,S>);
+ method public static inline operator <F, S> S! component2(android.util.Pair<F,S>);
+ method public static inline <F, S> android.util.Pair<F,S> toAndroidPair(kotlin.Pair<? extends F,? extends S>);
+ method public static inline <F, S> androidx.core.util.Pair<F,S> toAndroidXPair(kotlin.Pair<? extends F,? extends S>);
+ method public static inline <F, S> kotlin.Pair<F,S> toKotlinPair(androidx.core.util.Pair<F,S>);
+ method public static inline <F, S> kotlin.Pair<F,S> toKotlinPair(android.util.Pair<F,S>);
+ }
+
+ public final class RangeKt {
+ method @RequiresApi(21) public static inline infix <T extends java.lang.Comparable<? super T>> android.util.Range<T> and(android.util.Range<T>, android.util.Range<T> other);
+ method @RequiresApi(21) public static inline operator <T extends java.lang.Comparable<? super T>> android.util.Range<T> plus(android.util.Range<T>, T value);
+ method @RequiresApi(21) public static inline operator <T extends java.lang.Comparable<? super T>> android.util.Range<T> plus(android.util.Range<T>, android.util.Range<T> other);
+ method @RequiresApi(21) public static inline infix <T extends java.lang.Comparable<? super T>> android.util.Range<T> rangeTo(T, T that);
+ method @RequiresApi(21) public static <T extends java.lang.Comparable<? super T>> kotlin.ranges.ClosedRange<T> toClosedRange(android.util.Range<T>);
+ method @RequiresApi(21) public static <T extends java.lang.Comparable<? super T>> android.util.Range<T> toRange(kotlin.ranges.ClosedRange<T>);
+ }
+
+ public final class RunnableKt {
+ method public static Runnable asRunnable(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ }
+
+ public final class SizeKt {
+ method @RequiresApi(21) public static inline operator int component1(android.util.Size);
+ method @RequiresApi(21) public static inline operator float component1(android.util.SizeF);
+ method public static inline operator float component1(androidx.core.util.SizeFCompat);
+ method @RequiresApi(21) public static inline operator int component2(android.util.Size);
+ method @RequiresApi(21) public static inline operator float component2(android.util.SizeF);
+ method public static inline operator float component2(androidx.core.util.SizeFCompat);
+ }
+
+ public final class SparseArrayKt {
+ method public static inline operator <T> boolean contains(android.util.SparseArray<T>, int key);
+ method public static inline <T> boolean containsKey(android.util.SparseArray<T>, int key);
+ method public static inline <T> boolean containsValue(android.util.SparseArray<T>, T? value);
+ method public static inline <T> void forEach(android.util.SparseArray<T>, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,kotlin.Unit> action);
+ method public static inline <T> T! getOrDefault(android.util.SparseArray<T>, int key, T? defaultValue);
+ method public static inline <T> T! getOrElse(android.util.SparseArray<T>, int key, kotlin.jvm.functions.Function0<? extends T> defaultValue);
+ method public static inline <T> int getSize(android.util.SparseArray<T>);
+ method public static inline <T> boolean isEmpty(android.util.SparseArray<T>);
+ method public static inline <T> boolean isNotEmpty(android.util.SparseArray<T>);
+ method public static <T> kotlin.collections.IntIterator keyIterator(android.util.SparseArray<T>);
+ method public static operator <T> android.util.SparseArray<T> plus(android.util.SparseArray<T>, android.util.SparseArray<T> other);
+ method public static <T> void putAll(android.util.SparseArray<T>, android.util.SparseArray<T> other);
+ method public static <T> boolean remove(android.util.SparseArray<T>, int key, T? value);
+ method public static inline operator <T> void set(android.util.SparseArray<T>, int key, T? value);
+ method public static <T> java.util.Iterator<T> valueIterator(android.util.SparseArray<T>);
+ }
+
+ public final class SparseBooleanArrayKt {
+ method public static inline operator boolean contains(android.util.SparseBooleanArray, int key);
+ method public static inline boolean containsKey(android.util.SparseBooleanArray, int key);
+ method public static inline boolean containsValue(android.util.SparseBooleanArray, boolean value);
+ method public static inline void forEach(android.util.SparseBooleanArray, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Boolean,kotlin.Unit> action);
+ method public static inline boolean getOrDefault(android.util.SparseBooleanArray, int key, boolean defaultValue);
+ method public static inline boolean getOrElse(android.util.SparseBooleanArray, int key, kotlin.jvm.functions.Function0<java.lang.Boolean> defaultValue);
+ method public static inline int getSize(android.util.SparseBooleanArray);
+ method public static inline boolean isEmpty(android.util.SparseBooleanArray);
+ method public static inline boolean isNotEmpty(android.util.SparseBooleanArray);
+ method public static kotlin.collections.IntIterator keyIterator(android.util.SparseBooleanArray);
+ method public static operator android.util.SparseBooleanArray plus(android.util.SparseBooleanArray, android.util.SparseBooleanArray other);
+ method public static void putAll(android.util.SparseBooleanArray, android.util.SparseBooleanArray other);
+ method public static boolean remove(android.util.SparseBooleanArray, int key, boolean value);
+ method public static inline operator void set(android.util.SparseBooleanArray, int key, boolean value);
+ method public static kotlin.collections.BooleanIterator valueIterator(android.util.SparseBooleanArray);
+ }
+
+ public final class SparseIntArrayKt {
+ method public static inline operator boolean contains(android.util.SparseIntArray, int key);
+ method public static inline boolean containsKey(android.util.SparseIntArray, int key);
+ method public static inline boolean containsValue(android.util.SparseIntArray, int value);
+ method public static inline void forEach(android.util.SparseIntArray, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> action);
+ method public static inline int getOrDefault(android.util.SparseIntArray, int key, int defaultValue);
+ method public static inline int getOrElse(android.util.SparseIntArray, int key, kotlin.jvm.functions.Function0<java.lang.Integer> defaultValue);
+ method public static inline int getSize(android.util.SparseIntArray);
+ method public static inline boolean isEmpty(android.util.SparseIntArray);
+ method public static inline boolean isNotEmpty(android.util.SparseIntArray);
+ method public static kotlin.collections.IntIterator keyIterator(android.util.SparseIntArray);
+ method public static operator android.util.SparseIntArray plus(android.util.SparseIntArray, android.util.SparseIntArray other);
+ method public static void putAll(android.util.SparseIntArray, android.util.SparseIntArray other);
+ method public static boolean remove(android.util.SparseIntArray, int key, int value);
+ method public static inline operator void set(android.util.SparseIntArray, int key, int value);
+ method public static kotlin.collections.IntIterator valueIterator(android.util.SparseIntArray);
+ }
+
+ public final class SparseLongArrayKt {
+ method @RequiresApi(18) public static inline operator boolean contains(android.util.SparseLongArray, int key);
+ method @RequiresApi(18) public static inline boolean containsKey(android.util.SparseLongArray, int key);
+ method @RequiresApi(18) public static inline boolean containsValue(android.util.SparseLongArray, long value);
+ method @RequiresApi(18) public static inline void forEach(android.util.SparseLongArray, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Long,kotlin.Unit> action);
+ method @RequiresApi(18) public static inline long getOrDefault(android.util.SparseLongArray, int key, long defaultValue);
+ method @RequiresApi(18) public static inline long getOrElse(android.util.SparseLongArray, int key, kotlin.jvm.functions.Function0<java.lang.Long> defaultValue);
+ method @RequiresApi(18) public static inline int getSize(android.util.SparseLongArray);
+ method @RequiresApi(18) public static inline boolean isEmpty(android.util.SparseLongArray);
+ method @RequiresApi(18) public static inline boolean isNotEmpty(android.util.SparseLongArray);
+ method @RequiresApi(18) public static kotlin.collections.IntIterator keyIterator(android.util.SparseLongArray);
+ method @RequiresApi(18) public static operator android.util.SparseLongArray plus(android.util.SparseLongArray, android.util.SparseLongArray other);
+ method @RequiresApi(18) public static void putAll(android.util.SparseLongArray, android.util.SparseLongArray other);
+ method @RequiresApi(18) public static boolean remove(android.util.SparseLongArray, int key, long value);
+ method @RequiresApi(18) public static inline operator void set(android.util.SparseLongArray, int key, long value);
+ method @RequiresApi(18) public static kotlin.collections.LongIterator valueIterator(android.util.SparseLongArray);
+ }
+
+}
+
+package androidx.core.view {
+
+ public final class MenuKt {
+ method public static operator boolean contains(android.view.Menu, android.view.MenuItem item);
+ method public static inline void forEach(android.view.Menu, kotlin.jvm.functions.Function1<? super android.view.MenuItem,kotlin.Unit> action);
+ method public static inline void forEachIndexed(android.view.Menu, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super android.view.MenuItem,kotlin.Unit> action);
+ method public static inline operator android.view.MenuItem get(android.view.Menu, int index);
+ method public static kotlin.sequences.Sequence<android.view.MenuItem> getChildren(android.view.Menu);
+ method public static inline int getSize(android.view.Menu);
+ method public static inline boolean isEmpty(android.view.Menu);
+ method public static inline boolean isNotEmpty(android.view.Menu);
+ method public static operator java.util.Iterator<android.view.MenuItem> iterator(android.view.Menu);
+ method public static inline operator void minusAssign(android.view.Menu, android.view.MenuItem item);
+ }
+
+ public final class ViewGroupKt {
+ method public static inline operator boolean contains(android.view.ViewGroup, android.view.View view);
+ method public static inline void forEach(android.view.ViewGroup, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static inline void forEachIndexed(android.view.ViewGroup, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super android.view.View,kotlin.Unit> action);
+ method public static operator android.view.View get(android.view.ViewGroup, int index);
+ method public static kotlin.sequences.Sequence<android.view.View> getChildren(android.view.ViewGroup);
+ method public static kotlin.sequences.Sequence<android.view.View> getDescendants(android.view.ViewGroup);
+ method public static inline kotlin.ranges.IntRange getIndices(android.view.ViewGroup);
+ method public static inline int getSize(android.view.ViewGroup);
+ method public static inline boolean isEmpty(android.view.ViewGroup);
+ method public static inline boolean isNotEmpty(android.view.ViewGroup);
+ method public static operator java.util.Iterator<android.view.View> iterator(android.view.ViewGroup);
+ method public static inline operator void minusAssign(android.view.ViewGroup, android.view.View view);
+ method public static inline operator void plusAssign(android.view.ViewGroup, android.view.View view);
+ method public static inline void setMargins(android.view.ViewGroup.MarginLayoutParams, @Px int size);
+ method public static inline void updateMargins(android.view.ViewGroup.MarginLayoutParams, optional @Px int left, optional @Px int top, optional @Px int right, optional @Px int bottom);
+ method @RequiresApi(17) public static inline void updateMarginsRelative(android.view.ViewGroup.MarginLayoutParams, optional @Px int start, optional @Px int top, optional @Px int end, optional @Px int bottom);
+ }
+
+ public final class ViewKt {
+ method public static inline void doOnAttach(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static inline void doOnDetach(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static inline void doOnLayout(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static inline void doOnNextLayout(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static inline androidx.core.view.OneShotPreDrawListener doOnPreDraw(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static android.graphics.Bitmap drawToBitmap(android.view.View, optional android.graphics.Bitmap.Config config);
+ method public static kotlin.sequences.Sequence<android.view.View> getAllViews(android.view.View);
+ method public static kotlin.sequences.Sequence<android.view.ViewParent> getAncestors(android.view.View);
+ method public static inline int getMarginBottom(android.view.View);
+ method public static inline int getMarginEnd(android.view.View);
+ method public static inline int getMarginLeft(android.view.View);
+ method public static inline int getMarginRight(android.view.View);
+ method public static inline int getMarginStart(android.view.View);
+ method public static inline int getMarginTop(android.view.View);
+ method public static inline boolean isGone(android.view.View);
+ method public static inline boolean isInvisible(android.view.View);
+ method public static inline boolean isVisible(android.view.View);
+ method public static inline Runnable postDelayed(android.view.View, long delayInMillis, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+ method @RequiresApi(16) public static inline Runnable postOnAnimationDelayed(android.view.View, long delayInMillis, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+ method public static inline void setGone(android.view.View, boolean);
+ method public static inline void setInvisible(android.view.View, boolean);
+ method public static inline void setPadding(android.view.View, @Px int size);
+ method public static inline void setVisible(android.view.View, boolean);
+ method public static inline void updateLayoutParams(android.view.View, kotlin.jvm.functions.Function1<? super android.view.ViewGroup.LayoutParams,kotlin.Unit> block);
+ method public static inline <reified T extends android.view.ViewGroup.LayoutParams> void updateLayoutParams(android.view.View, kotlin.jvm.functions.Function1<? super T,? extends kotlin.Unit> block);
+ method public static inline void updatePadding(android.view.View, optional @Px int left, optional @Px int top, optional @Px int right, optional @Px int bottom);
+ method @RequiresApi(17) public static inline void updatePaddingRelative(android.view.View, optional @Px int start, optional @Px int top, optional @Px int end, optional @Px int bottom);
+ }
+
+}
+
+package androidx.core.widget {
+
+ public final class TextViewKt {
+ method public static inline android.text.TextWatcher addTextChangedListener(android.widget.TextView, optional kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> beforeTextChanged, optional kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> onTextChanged, optional kotlin.jvm.functions.Function1<? super android.text.Editable,kotlin.Unit> afterTextChanged);
+ method public static inline android.text.TextWatcher doAfterTextChanged(android.widget.TextView, kotlin.jvm.functions.Function1<? super android.text.Editable,kotlin.Unit> action);
+ method public static inline android.text.TextWatcher doBeforeTextChanged(android.widget.TextView, kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> action);
+ method public static inline android.text.TextWatcher doOnTextChanged(android.widget.TextView, kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> action);
+ }
+
+}
+
diff --git a/core/core-ktx/api/public_plus_experimental_1.8.0-beta02.txt b/core/core-ktx/api/public_plus_experimental_1.8.0-beta02.txt
new file mode 100644
index 0000000..521f26c
--- /dev/null
+++ b/core/core-ktx/api/public_plus_experimental_1.8.0-beta02.txt
@@ -0,0 +1,629 @@
+// Signature format: 4.0
+package androidx.core.animation {
+
+ public final class AnimatorKt {
+ method public static inline android.animation.Animator.AnimatorListener addListener(android.animation.Animator, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onEnd, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onStart, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onCancel, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onRepeat);
+ method @RequiresApi(19) public static inline android.animation.Animator.AnimatorPauseListener addPauseListener(android.animation.Animator, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onResume, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onPause);
+ method public static inline android.animation.Animator.AnimatorListener doOnCancel(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ method public static inline android.animation.Animator.AnimatorListener doOnEnd(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.animation.Animator.AnimatorPauseListener doOnPause(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ method public static inline android.animation.Animator.AnimatorListener doOnRepeat(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.animation.Animator.AnimatorPauseListener doOnResume(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ method public static inline android.animation.Animator.AnimatorListener doOnStart(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ }
+
+}
+
+package androidx.core.content {
+
+ public final class ContentValuesKt {
+ method public static android.content.ContentValues contentValuesOf(kotlin.Pair<java.lang.String,?>... pairs);
+ }
+
+ public final class ContextKt {
+ method public static inline <reified T> T! getSystemService(android.content.Context);
+ method public static inline void withStyledAttributes(android.content.Context, optional android.util.AttributeSet? set, int[] attrs, optional @AttrRes int defStyleAttr, optional @StyleRes int defStyleRes, kotlin.jvm.functions.Function1<? super android.content.res.TypedArray,kotlin.Unit> block);
+ method public static inline void withStyledAttributes(android.content.Context, @StyleRes int resourceId, int[] attrs, kotlin.jvm.functions.Function1<? super android.content.res.TypedArray,kotlin.Unit> block);
+ }
+
+ public final class SharedPreferencesKt {
+ method public static inline void edit(android.content.SharedPreferences, optional boolean commit, kotlin.jvm.functions.Function1<? super android.content.SharedPreferences.Editor,kotlin.Unit> action);
+ }
+
+}
+
+package androidx.core.content.res {
+
+ public final class TypedArrayKt {
+ method public static boolean getBooleanOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method @ColorInt public static int getColorOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static android.content.res.ColorStateList getColorStateListOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static float getDimensionOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method @Dimension public static int getDimensionPixelOffsetOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method @Dimension public static int getDimensionPixelSizeOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static android.graphics.drawable.Drawable getDrawableOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static float getFloatOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method @RequiresApi(26) public static android.graphics.Typeface getFontOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static int getIntOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static int getIntegerOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method @AnyRes public static int getResourceIdOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static String getStringOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static CharSequence![] getTextArrayOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static CharSequence getTextOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static inline <R> R! use(android.content.res.TypedArray, kotlin.jvm.functions.Function1<? super android.content.res.TypedArray,? extends R> block);
+ }
+
+}
+
+package androidx.core.database {
+
+ public final class CursorKt {
+ method public static inline byte[]? getBlobOrNull(android.database.Cursor, int index);
+ method public static inline Double? getDoubleOrNull(android.database.Cursor, int index);
+ method public static inline Float? getFloatOrNull(android.database.Cursor, int index);
+ method public static inline Integer? getIntOrNull(android.database.Cursor, int index);
+ method public static inline Long? getLongOrNull(android.database.Cursor, int index);
+ method public static inline Short? getShortOrNull(android.database.Cursor, int index);
+ method public static inline String? getStringOrNull(android.database.Cursor, int index);
+ }
+
+}
+
+package androidx.core.database.sqlite {
+
+ public final class SQLiteDatabaseKt {
+ method public static inline <T> T! transaction(android.database.sqlite.SQLiteDatabase, optional boolean exclusive, kotlin.jvm.functions.Function1<? super android.database.sqlite.SQLiteDatabase,? extends T> body);
+ }
+
+}
+
+package androidx.core.graphics {
+
+ public final class BitmapKt {
+ method public static inline android.graphics.Bitmap applyCanvas(android.graphics.Bitmap, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline operator boolean contains(android.graphics.Bitmap, android.graphics.Point p);
+ method public static inline operator boolean contains(android.graphics.Bitmap, android.graphics.PointF p);
+ method public static inline android.graphics.Bitmap createBitmap(int width, int height, optional android.graphics.Bitmap.Config config);
+ method @RequiresApi(26) public static inline android.graphics.Bitmap createBitmap(int width, int height, optional android.graphics.Bitmap.Config config, optional boolean hasAlpha, optional android.graphics.ColorSpace colorSpace);
+ method public static inline operator int get(android.graphics.Bitmap, int x, int y);
+ method public static inline android.graphics.Bitmap scale(android.graphics.Bitmap, int width, int height, optional boolean filter);
+ method public static inline operator void set(android.graphics.Bitmap, int x, int y, @ColorInt int color);
+ }
+
+ public final class CanvasKt {
+ method public static inline void withClip(android.graphics.Canvas, android.graphics.Rect clipRect, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withClip(android.graphics.Canvas, android.graphics.RectF clipRect, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withClip(android.graphics.Canvas, int left, int top, int right, int bottom, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withClip(android.graphics.Canvas, float left, float top, float right, float bottom, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withClip(android.graphics.Canvas, android.graphics.Path clipPath, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withMatrix(android.graphics.Canvas, optional android.graphics.Matrix matrix, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withRotation(android.graphics.Canvas, optional float degrees, optional float pivotX, optional float pivotY, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withSave(android.graphics.Canvas, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withScale(android.graphics.Canvas, optional float x, optional float y, optional float pivotX, optional float pivotY, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withSkew(android.graphics.Canvas, optional float x, optional float y, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withTranslation(android.graphics.Canvas, optional float x, optional float y, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ }
+
+ public final class ColorKt {
+ method @RequiresApi(26) public static inline operator float component1(android.graphics.Color);
+ method public static inline operator int component1(@ColorInt int);
+ method @RequiresApi(26) public static inline operator float component1(@ColorLong long);
+ method @RequiresApi(26) public static inline operator float component2(android.graphics.Color);
+ method public static inline operator int component2(@ColorInt int);
+ method @RequiresApi(26) public static inline operator float component2(@ColorLong long);
+ method @RequiresApi(26) public static inline operator float component3(android.graphics.Color);
+ method public static inline operator int component3(@ColorInt int);
+ method @RequiresApi(26) public static inline operator float component3(@ColorLong long);
+ method @RequiresApi(26) public static inline operator float component4(android.graphics.Color);
+ method public static inline operator int component4(@ColorInt int);
+ method @RequiresApi(26) public static inline operator float component4(@ColorLong long);
+ method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorInt int, android.graphics.ColorSpace.Named colorSpace);
+ method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorInt int, android.graphics.ColorSpace colorSpace);
+ method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorLong long, android.graphics.ColorSpace.Named colorSpace);
+ method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorLong long, android.graphics.ColorSpace colorSpace);
+ method @RequiresApi(26) public static inline infix android.graphics.Color convertTo(android.graphics.Color, android.graphics.ColorSpace.Named colorSpace);
+ method @RequiresApi(26) public static inline infix android.graphics.Color convertTo(android.graphics.Color, android.graphics.ColorSpace colorSpace);
+ method public static inline int getAlpha(@ColorInt int);
+ method @RequiresApi(26) public static inline float getAlpha(@ColorLong long);
+ method public static inline int getBlue(@ColorInt int);
+ method @RequiresApi(26) public static inline float getBlue(@ColorLong long);
+ method @RequiresApi(26) public static inline android.graphics.ColorSpace getColorSpace(@ColorLong long);
+ method public static inline int getGreen(@ColorInt int);
+ method @RequiresApi(26) public static inline float getGreen(@ColorLong long);
+ method @RequiresApi(26) public static inline float getLuminance(@ColorInt int);
+ method @RequiresApi(26) public static inline float getLuminance(@ColorLong long);
+ method public static inline int getRed(@ColorInt int);
+ method @RequiresApi(26) public static inline float getRed(@ColorLong long);
+ method @RequiresApi(26) public static inline boolean isSrgb(@ColorLong long);
+ method @RequiresApi(26) public static inline boolean isWideGamut(@ColorLong long);
+ method @RequiresApi(26) public static operator android.graphics.Color plus(android.graphics.Color, android.graphics.Color c);
+ method @RequiresApi(26) public static inline android.graphics.Color toColor(@ColorInt int);
+ method @RequiresApi(26) public static inline android.graphics.Color toColor(@ColorLong long);
+ method @ColorInt @RequiresApi(26) public static inline int toColorInt(@ColorLong long);
+ method @ColorInt public static inline int toColorInt(String);
+ method @ColorLong @RequiresApi(26) public static inline long toColorLong(@ColorInt int);
+ }
+
+ public final class ImageDecoderKt {
+ method @RequiresApi(28) public static inline android.graphics.Bitmap decodeBitmap(android.graphics.ImageDecoder.Source, kotlin.jvm.functions.Function3<? super android.graphics.ImageDecoder,? super android.graphics.ImageDecoder.ImageInfo,? super android.graphics.ImageDecoder.Source,kotlin.Unit> action);
+ method @RequiresApi(28) public static inline android.graphics.drawable.Drawable decodeDrawable(android.graphics.ImageDecoder.Source, kotlin.jvm.functions.Function3<? super android.graphics.ImageDecoder,? super android.graphics.ImageDecoder.ImageInfo,? super android.graphics.ImageDecoder.Source,kotlin.Unit> action);
+ }
+
+ public final class MatrixKt {
+ method public static android.graphics.Matrix rotationMatrix(float degrees, optional float px, optional float py);
+ method public static android.graphics.Matrix scaleMatrix(optional float sx, optional float sy);
+ method public static inline operator android.graphics.Matrix times(android.graphics.Matrix, android.graphics.Matrix m);
+ method public static android.graphics.Matrix translationMatrix(optional float tx, optional float ty);
+ method public static inline float[] values(android.graphics.Matrix);
+ }
+
+ public final class PaintKt {
+ method public static inline boolean setBlendMode(android.graphics.Paint, androidx.core.graphics.BlendModeCompat? blendModeCompat);
+ }
+
+ public final class PathKt {
+ method @RequiresApi(19) public static inline infix android.graphics.Path and(android.graphics.Path, android.graphics.Path p);
+ method @RequiresApi(26) public static Iterable<androidx.core.graphics.PathSegment> flatten(android.graphics.Path, optional float error);
+ method @RequiresApi(19) public static inline operator android.graphics.Path minus(android.graphics.Path, android.graphics.Path p);
+ method @RequiresApi(19) public static inline infix android.graphics.Path or(android.graphics.Path, android.graphics.Path p);
+ method @RequiresApi(19) public static inline operator android.graphics.Path plus(android.graphics.Path, android.graphics.Path p);
+ method @RequiresApi(19) public static inline infix android.graphics.Path xor(android.graphics.Path, android.graphics.Path p);
+ }
+
+ public final class PictureKt {
+ method public static inline android.graphics.Picture record(android.graphics.Picture, int width, int height, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ }
+
+ public final class PointKt {
+ method public static inline operator int component1(android.graphics.Point);
+ method public static inline operator float component1(android.graphics.PointF);
+ method public static inline operator int component2(android.graphics.Point);
+ method public static inline operator float component2(android.graphics.PointF);
+ method public static inline operator android.graphics.Point minus(android.graphics.Point, android.graphics.Point p);
+ method public static inline operator android.graphics.PointF minus(android.graphics.PointF, android.graphics.PointF p);
+ method public static inline operator android.graphics.Point minus(android.graphics.Point, int xy);
+ method public static inline operator android.graphics.PointF minus(android.graphics.PointF, float xy);
+ method public static inline operator android.graphics.Point plus(android.graphics.Point, android.graphics.Point p);
+ method public static inline operator android.graphics.PointF plus(android.graphics.PointF, android.graphics.PointF p);
+ method public static inline operator android.graphics.Point plus(android.graphics.Point, int xy);
+ method public static inline operator android.graphics.PointF plus(android.graphics.PointF, float xy);
+ method public static inline android.graphics.Point toPoint(android.graphics.PointF);
+ method public static inline android.graphics.PointF toPointF(android.graphics.Point);
+ method public static inline operator android.graphics.Point unaryMinus(android.graphics.Point);
+ method public static inline operator android.graphics.PointF unaryMinus(android.graphics.PointF);
+ }
+
+ public final class PorterDuffKt {
+ method public static inline android.graphics.PorterDuffColorFilter toColorFilter(android.graphics.PorterDuff.Mode, int color);
+ method public static inline android.graphics.PorterDuffXfermode toXfermode(android.graphics.PorterDuff.Mode);
+ }
+
+ public final class RectKt {
+ method public static inline infix android.graphics.Rect and(android.graphics.Rect, android.graphics.Rect r);
+ method public static inline infix android.graphics.RectF and(android.graphics.RectF, android.graphics.RectF r);
+ method public static inline operator int component1(android.graphics.Rect);
+ method public static inline operator float component1(android.graphics.RectF);
+ method public static inline operator int component2(android.graphics.Rect);
+ method public static inline operator float component2(android.graphics.RectF);
+ method public static inline operator int component3(android.graphics.Rect);
+ method public static inline operator float component3(android.graphics.RectF);
+ method public static inline operator int component4(android.graphics.Rect);
+ method public static inline operator float component4(android.graphics.RectF);
+ method public static inline operator boolean contains(android.graphics.Rect, android.graphics.Point p);
+ method public static inline operator boolean contains(android.graphics.RectF, android.graphics.PointF p);
+ method public static inline operator android.graphics.Region minus(android.graphics.Rect, android.graphics.Rect r);
+ method public static inline operator android.graphics.Region minus(android.graphics.RectF, android.graphics.RectF r);
+ method public static inline operator android.graphics.Rect minus(android.graphics.Rect, int xy);
+ method public static inline operator android.graphics.RectF minus(android.graphics.RectF, float xy);
+ method public static inline operator android.graphics.Rect minus(android.graphics.Rect, android.graphics.Point xy);
+ method public static inline operator android.graphics.RectF minus(android.graphics.RectF, android.graphics.PointF xy);
+ method public static inline infix android.graphics.Rect or(android.graphics.Rect, android.graphics.Rect r);
+ method public static inline infix android.graphics.RectF or(android.graphics.RectF, android.graphics.RectF r);
+ method public static inline operator android.graphics.Rect plus(android.graphics.Rect, android.graphics.Rect r);
+ method public static inline operator android.graphics.RectF plus(android.graphics.RectF, android.graphics.RectF r);
+ method public static inline operator android.graphics.Rect plus(android.graphics.Rect, int xy);
+ method public static inline operator android.graphics.RectF plus(android.graphics.RectF, float xy);
+ method public static inline operator android.graphics.Rect plus(android.graphics.Rect, android.graphics.Point xy);
+ method public static inline operator android.graphics.RectF plus(android.graphics.RectF, android.graphics.PointF xy);
+ method public static inline operator android.graphics.Rect times(android.graphics.Rect, int factor);
+ method public static inline operator android.graphics.RectF times(android.graphics.RectF, int factor);
+ method public static inline operator android.graphics.RectF times(android.graphics.RectF, float factor);
+ method public static inline android.graphics.Rect toRect(android.graphics.RectF);
+ method public static inline android.graphics.RectF toRectF(android.graphics.Rect);
+ method public static inline android.graphics.Region toRegion(android.graphics.Rect);
+ method public static inline android.graphics.Region toRegion(android.graphics.RectF);
+ method public static inline android.graphics.RectF transform(android.graphics.RectF, android.graphics.Matrix m);
+ method public static inline infix android.graphics.Region xor(android.graphics.Rect, android.graphics.Rect r);
+ method public static inline infix android.graphics.Region xor(android.graphics.RectF, android.graphics.RectF r);
+ }
+
+ public final class RegionKt {
+ method public static inline infix android.graphics.Region and(android.graphics.Region, android.graphics.Rect r);
+ method public static inline infix android.graphics.Region and(android.graphics.Region, android.graphics.Region r);
+ method public static inline operator boolean contains(android.graphics.Region, android.graphics.Point p);
+ method public static inline void forEach(android.graphics.Region, kotlin.jvm.functions.Function1<? super android.graphics.Rect,kotlin.Unit> action);
+ method public static operator java.util.Iterator<android.graphics.Rect> iterator(android.graphics.Region);
+ method public static inline operator android.graphics.Region minus(android.graphics.Region, android.graphics.Rect r);
+ method public static inline operator android.graphics.Region minus(android.graphics.Region, android.graphics.Region r);
+ method public static inline operator android.graphics.Region not(android.graphics.Region);
+ method public static inline infix android.graphics.Region or(android.graphics.Region, android.graphics.Rect r);
+ method public static inline infix android.graphics.Region or(android.graphics.Region, android.graphics.Region r);
+ method public static inline operator android.graphics.Region plus(android.graphics.Region, android.graphics.Rect r);
+ method public static inline operator android.graphics.Region plus(android.graphics.Region, android.graphics.Region r);
+ method public static inline operator android.graphics.Region unaryMinus(android.graphics.Region);
+ method public static inline infix android.graphics.Region xor(android.graphics.Region, android.graphics.Rect r);
+ method public static inline infix android.graphics.Region xor(android.graphics.Region, android.graphics.Region r);
+ }
+
+ public final class ShaderKt {
+ method public static inline void transform(android.graphics.Shader, kotlin.jvm.functions.Function1<? super android.graphics.Matrix,kotlin.Unit> block);
+ }
+
+}
+
+package androidx.core.graphics.drawable {
+
+ public final class BitmapDrawableKt {
+ method public static inline android.graphics.drawable.BitmapDrawable toDrawable(android.graphics.Bitmap, android.content.res.Resources resources);
+ }
+
+ public final class ColorDrawableKt {
+ method public static inline android.graphics.drawable.ColorDrawable toDrawable(@ColorInt int);
+ method @RequiresApi(26) public static inline android.graphics.drawable.ColorDrawable toDrawable(android.graphics.Color);
+ }
+
+ public final class DrawableKt {
+ method public static android.graphics.Bitmap toBitmap(android.graphics.drawable.Drawable, optional @Px int width, optional @Px int height, optional android.graphics.Bitmap.Config? config);
+ method public static android.graphics.Bitmap? toBitmapOrNull(android.graphics.drawable.Drawable, optional @Px int width, optional @Px int height, optional android.graphics.Bitmap.Config? config);
+ method public static void updateBounds(android.graphics.drawable.Drawable, optional @Px int left, optional @Px int top, optional @Px int right, optional @Px int bottom);
+ }
+
+ public final class IconKt {
+ method @RequiresApi(26) public static inline android.graphics.drawable.Icon toAdaptiveIcon(android.graphics.Bitmap);
+ method @RequiresApi(26) public static inline android.graphics.drawable.Icon toIcon(android.graphics.Bitmap);
+ method @RequiresApi(26) public static inline android.graphics.drawable.Icon toIcon(android.net.Uri);
+ method @RequiresApi(26) public static inline android.graphics.drawable.Icon toIcon(byte[]);
+ }
+
+}
+
+package androidx.core.location {
+
+ public final class LocationKt {
+ method public static inline operator double component1(android.location.Location);
+ method public static inline operator double component2(android.location.Location);
+ }
+
+}
+
+package androidx.core.net {
+
+ public final class UriKt {
+ method public static java.io.File toFile(android.net.Uri);
+ method public static inline android.net.Uri toUri(String);
+ method public static inline android.net.Uri toUri(java.io.File);
+ }
+
+}
+
+package androidx.core.os {
+
+ public final class BundleKt {
+ method public static android.os.Bundle bundleOf(kotlin.Pair<java.lang.String,?>... pairs);
+ method public static android.os.Bundle bundleOf();
+ }
+
+ public final class HandlerKt {
+ method public static inline Runnable postAtTime(android.os.Handler, long uptimeMillis, optional Object? token, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+ method public static inline Runnable postDelayed(android.os.Handler, long delayInMillis, optional Object? token, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+ }
+
+ @RequiresApi(31) public final class OutcomeReceiverKt {
+ method @RequiresApi(31) public static <R, E extends java.lang.Throwable> android.os.OutcomeReceiver<R,E> asOutcomeReceiver(kotlin.coroutines.Continuation<? super R>);
+ }
+
+ public final class PersistableBundleKt {
+ method @RequiresApi(21) public static android.os.PersistableBundle persistableBundleOf(kotlin.Pair<java.lang.String,?>... pairs);
+ method @RequiresApi(21) public static android.os.PersistableBundle persistableBundleOf();
+ method @RequiresApi(21) public static android.os.PersistableBundle toPersistableBundle(java.util.Map<java.lang.String,?>);
+ }
+
+ public final class TraceKt {
+ method @Deprecated public static inline <T> T! trace(String sectionName, kotlin.jvm.functions.Function0<? extends T> block);
+ }
+
+}
+
+package androidx.core.text {
+
+ public final class CharSequenceKt {
+ method public static inline boolean isDigitsOnly(CharSequence);
+ method public static inline int trimmedLength(CharSequence);
+ }
+
+ public final class HtmlKt {
+ method public static inline android.text.Spanned parseAsHtml(String, optional int flags, optional android.text.Html.ImageGetter? imageGetter, optional android.text.Html.TagHandler? tagHandler);
+ method public static inline String toHtml(android.text.Spanned, optional int option);
+ }
+
+ public final class LocaleKt {
+ method @RequiresApi(17) public static inline int getLayoutDirection(java.util.Locale);
+ }
+
+ public final class SpannableStringBuilderKt {
+ method public static inline android.text.SpannableStringBuilder backgroundColor(android.text.SpannableStringBuilder, @ColorInt int color, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder bold(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannedString buildSpannedString(kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder color(android.text.SpannableStringBuilder, @ColorInt int color, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder inSpans(android.text.SpannableStringBuilder, Object![] spans, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder inSpans(android.text.SpannableStringBuilder, Object span, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder italic(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder scale(android.text.SpannableStringBuilder, float proportion, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder strikeThrough(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder subscript(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder superscript(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder underline(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ }
+
+ public final class SpannableStringKt {
+ method public static inline void clearSpans(android.text.Spannable);
+ method public static inline operator void set(android.text.Spannable, int start, int end, Object span);
+ method public static inline operator void set(android.text.Spannable, kotlin.ranges.IntRange range, Object span);
+ method public static inline android.text.Spannable toSpannable(CharSequence);
+ }
+
+ public final class SpannedStringKt {
+ method public static inline <reified T> T![]! getSpans(android.text.Spanned, optional int start, optional int end);
+ method public static inline android.text.Spanned toSpanned(CharSequence);
+ }
+
+ public final class StringKt {
+ method public static inline String htmlEncode(String);
+ }
+
+}
+
+package androidx.core.transition {
+
+ public final class TransitionKt {
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener addListener(android.transition.Transition, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onEnd, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onStart, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onCancel, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onResume, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onPause);
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnCancel(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnEnd(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnPause(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnResume(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnStart(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+ }
+
+}
+
+package androidx.core.util {
+
+ public final class AndroidXConsumerKt {
+ method public static <T> androidx.core.util.Consumer<T> asAndroidXConsumer(kotlin.coroutines.Continuation<? super T>);
+ }
+
+ public final class AtomicFileKt {
+ method @RequiresApi(17) public static inline byte[] readBytes(android.util.AtomicFile);
+ method @RequiresApi(17) public static String readText(android.util.AtomicFile, optional java.nio.charset.Charset charset);
+ method @RequiresApi(17) public static inline void tryWrite(android.util.AtomicFile, kotlin.jvm.functions.Function1<? super java.io.FileOutputStream,kotlin.Unit> block);
+ method @RequiresApi(17) public static void writeBytes(android.util.AtomicFile, byte[] array);
+ method @RequiresApi(17) public static void writeText(android.util.AtomicFile, String text, optional java.nio.charset.Charset charset);
+ }
+
+ @RequiresApi(24) public final class ConsumerKt {
+ method @RequiresApi(24) public static <T> java.util.function.Consumer<T> asConsumer(kotlin.coroutines.Continuation<? super T>);
+ }
+
+ public final class HalfKt {
+ method @RequiresApi(26) public static inline android.util.Half toHalf(@HalfFloat short);
+ method @RequiresApi(26) public static inline android.util.Half toHalf(float);
+ method @RequiresApi(26) public static inline android.util.Half toHalf(double);
+ method @RequiresApi(26) public static inline android.util.Half toHalf(String);
+ }
+
+ public final class LongSparseArrayKt {
+ method @RequiresApi(16) public static inline operator <T> boolean contains(android.util.LongSparseArray<T>, long key);
+ method @RequiresApi(16) public static inline <T> boolean containsKey(android.util.LongSparseArray<T>, long key);
+ method @RequiresApi(16) public static inline <T> boolean containsValue(android.util.LongSparseArray<T>, T? value);
+ method @RequiresApi(16) public static inline <T> void forEach(android.util.LongSparseArray<T>, kotlin.jvm.functions.Function2<? super java.lang.Long,? super T,kotlin.Unit> action);
+ method @RequiresApi(16) public static inline <T> T! getOrDefault(android.util.LongSparseArray<T>, long key, T? defaultValue);
+ method @RequiresApi(16) public static inline <T> T! getOrElse(android.util.LongSparseArray<T>, long key, kotlin.jvm.functions.Function0<? extends T> defaultValue);
+ method @RequiresApi(16) public static inline <T> int getSize(android.util.LongSparseArray<T>);
+ method @RequiresApi(16) public static inline <T> boolean isEmpty(android.util.LongSparseArray<T>);
+ method @RequiresApi(16) public static inline <T> boolean isNotEmpty(android.util.LongSparseArray<T>);
+ method @RequiresApi(16) public static <T> kotlin.collections.LongIterator keyIterator(android.util.LongSparseArray<T>);
+ method @RequiresApi(16) public static operator <T> android.util.LongSparseArray<T> plus(android.util.LongSparseArray<T>, android.util.LongSparseArray<T> other);
+ method @RequiresApi(16) public static <T> void putAll(android.util.LongSparseArray<T>, android.util.LongSparseArray<T> other);
+ method @RequiresApi(16) public static <T> boolean remove(android.util.LongSparseArray<T>, long key, T? value);
+ method @RequiresApi(16) public static inline operator <T> void set(android.util.LongSparseArray<T>, long key, T? value);
+ method @RequiresApi(16) public static <T> java.util.Iterator<T> valueIterator(android.util.LongSparseArray<T>);
+ }
+
+ public final class LruCacheKt {
+ method public static inline <K, V> android.util.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 final class PairKt {
+ method public static inline operator <F, S> F! component1(androidx.core.util.Pair<F,S>);
+ method public static inline operator <F, S> F! component1(android.util.Pair<F,S>);
+ method public static inline operator <F, S> S! component2(androidx.core.util.Pair<F,S>);
+ method public static inline operator <F, S> S! component2(android.util.Pair<F,S>);
+ method public static inline <F, S> android.util.Pair<F,S> toAndroidPair(kotlin.Pair<? extends F,? extends S>);
+ method public static inline <F, S> androidx.core.util.Pair<F,S> toAndroidXPair(kotlin.Pair<? extends F,? extends S>);
+ method public static inline <F, S> kotlin.Pair<F,S> toKotlinPair(androidx.core.util.Pair<F,S>);
+ method public static inline <F, S> kotlin.Pair<F,S> toKotlinPair(android.util.Pair<F,S>);
+ }
+
+ public final class RangeKt {
+ method @RequiresApi(21) public static inline infix <T extends java.lang.Comparable<? super T>> android.util.Range<T> and(android.util.Range<T>, android.util.Range<T> other);
+ method @RequiresApi(21) public static inline operator <T extends java.lang.Comparable<? super T>> android.util.Range<T> plus(android.util.Range<T>, T value);
+ method @RequiresApi(21) public static inline operator <T extends java.lang.Comparable<? super T>> android.util.Range<T> plus(android.util.Range<T>, android.util.Range<T> other);
+ method @RequiresApi(21) public static inline infix <T extends java.lang.Comparable<? super T>> android.util.Range<T> rangeTo(T, T that);
+ method @RequiresApi(21) public static <T extends java.lang.Comparable<? super T>> kotlin.ranges.ClosedRange<T> toClosedRange(android.util.Range<T>);
+ method @RequiresApi(21) public static <T extends java.lang.Comparable<? super T>> android.util.Range<T> toRange(kotlin.ranges.ClosedRange<T>);
+ }
+
+ public final class RunnableKt {
+ method public static Runnable asRunnable(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ }
+
+ public final class SizeKt {
+ method @RequiresApi(21) public static inline operator int component1(android.util.Size);
+ method @RequiresApi(21) public static inline operator float component1(android.util.SizeF);
+ method public static inline operator float component1(androidx.core.util.SizeFCompat);
+ method @RequiresApi(21) public static inline operator int component2(android.util.Size);
+ method @RequiresApi(21) public static inline operator float component2(android.util.SizeF);
+ method public static inline operator float component2(androidx.core.util.SizeFCompat);
+ }
+
+ public final class SparseArrayKt {
+ method public static inline operator <T> boolean contains(android.util.SparseArray<T>, int key);
+ method public static inline <T> boolean containsKey(android.util.SparseArray<T>, int key);
+ method public static inline <T> boolean containsValue(android.util.SparseArray<T>, T? value);
+ method public static inline <T> void forEach(android.util.SparseArray<T>, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,kotlin.Unit> action);
+ method public static inline <T> T! getOrDefault(android.util.SparseArray<T>, int key, T? defaultValue);
+ method public static inline <T> T! getOrElse(android.util.SparseArray<T>, int key, kotlin.jvm.functions.Function0<? extends T> defaultValue);
+ method public static inline <T> int getSize(android.util.SparseArray<T>);
+ method public static inline <T> boolean isEmpty(android.util.SparseArray<T>);
+ method public static inline <T> boolean isNotEmpty(android.util.SparseArray<T>);
+ method public static <T> kotlin.collections.IntIterator keyIterator(android.util.SparseArray<T>);
+ method public static operator <T> android.util.SparseArray<T> plus(android.util.SparseArray<T>, android.util.SparseArray<T> other);
+ method public static <T> void putAll(android.util.SparseArray<T>, android.util.SparseArray<T> other);
+ method public static <T> boolean remove(android.util.SparseArray<T>, int key, T? value);
+ method public static inline operator <T> void set(android.util.SparseArray<T>, int key, T? value);
+ method public static <T> java.util.Iterator<T> valueIterator(android.util.SparseArray<T>);
+ }
+
+ public final class SparseBooleanArrayKt {
+ method public static inline operator boolean contains(android.util.SparseBooleanArray, int key);
+ method public static inline boolean containsKey(android.util.SparseBooleanArray, int key);
+ method public static inline boolean containsValue(android.util.SparseBooleanArray, boolean value);
+ method public static inline void forEach(android.util.SparseBooleanArray, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Boolean,kotlin.Unit> action);
+ method public static inline boolean getOrDefault(android.util.SparseBooleanArray, int key, boolean defaultValue);
+ method public static inline boolean getOrElse(android.util.SparseBooleanArray, int key, kotlin.jvm.functions.Function0<java.lang.Boolean> defaultValue);
+ method public static inline int getSize(android.util.SparseBooleanArray);
+ method public static inline boolean isEmpty(android.util.SparseBooleanArray);
+ method public static inline boolean isNotEmpty(android.util.SparseBooleanArray);
+ method public static kotlin.collections.IntIterator keyIterator(android.util.SparseBooleanArray);
+ method public static operator android.util.SparseBooleanArray plus(android.util.SparseBooleanArray, android.util.SparseBooleanArray other);
+ method public static void putAll(android.util.SparseBooleanArray, android.util.SparseBooleanArray other);
+ method public static boolean remove(android.util.SparseBooleanArray, int key, boolean value);
+ method public static inline operator void set(android.util.SparseBooleanArray, int key, boolean value);
+ method public static kotlin.collections.BooleanIterator valueIterator(android.util.SparseBooleanArray);
+ }
+
+ public final class SparseIntArrayKt {
+ method public static inline operator boolean contains(android.util.SparseIntArray, int key);
+ method public static inline boolean containsKey(android.util.SparseIntArray, int key);
+ method public static inline boolean containsValue(android.util.SparseIntArray, int value);
+ method public static inline void forEach(android.util.SparseIntArray, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> action);
+ method public static inline int getOrDefault(android.util.SparseIntArray, int key, int defaultValue);
+ method public static inline int getOrElse(android.util.SparseIntArray, int key, kotlin.jvm.functions.Function0<java.lang.Integer> defaultValue);
+ method public static inline int getSize(android.util.SparseIntArray);
+ method public static inline boolean isEmpty(android.util.SparseIntArray);
+ method public static inline boolean isNotEmpty(android.util.SparseIntArray);
+ method public static kotlin.collections.IntIterator keyIterator(android.util.SparseIntArray);
+ method public static operator android.util.SparseIntArray plus(android.util.SparseIntArray, android.util.SparseIntArray other);
+ method public static void putAll(android.util.SparseIntArray, android.util.SparseIntArray other);
+ method public static boolean remove(android.util.SparseIntArray, int key, int value);
+ method public static inline operator void set(android.util.SparseIntArray, int key, int value);
+ method public static kotlin.collections.IntIterator valueIterator(android.util.SparseIntArray);
+ }
+
+ public final class SparseLongArrayKt {
+ method @RequiresApi(18) public static inline operator boolean contains(android.util.SparseLongArray, int key);
+ method @RequiresApi(18) public static inline boolean containsKey(android.util.SparseLongArray, int key);
+ method @RequiresApi(18) public static inline boolean containsValue(android.util.SparseLongArray, long value);
+ method @RequiresApi(18) public static inline void forEach(android.util.SparseLongArray, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Long,kotlin.Unit> action);
+ method @RequiresApi(18) public static inline long getOrDefault(android.util.SparseLongArray, int key, long defaultValue);
+ method @RequiresApi(18) public static inline long getOrElse(android.util.SparseLongArray, int key, kotlin.jvm.functions.Function0<java.lang.Long> defaultValue);
+ method @RequiresApi(18) public static inline int getSize(android.util.SparseLongArray);
+ method @RequiresApi(18) public static inline boolean isEmpty(android.util.SparseLongArray);
+ method @RequiresApi(18) public static inline boolean isNotEmpty(android.util.SparseLongArray);
+ method @RequiresApi(18) public static kotlin.collections.IntIterator keyIterator(android.util.SparseLongArray);
+ method @RequiresApi(18) public static operator android.util.SparseLongArray plus(android.util.SparseLongArray, android.util.SparseLongArray other);
+ method @RequiresApi(18) public static void putAll(android.util.SparseLongArray, android.util.SparseLongArray other);
+ method @RequiresApi(18) public static boolean remove(android.util.SparseLongArray, int key, long value);
+ method @RequiresApi(18) public static inline operator void set(android.util.SparseLongArray, int key, long value);
+ method @RequiresApi(18) public static kotlin.collections.LongIterator valueIterator(android.util.SparseLongArray);
+ }
+
+}
+
+package androidx.core.view {
+
+ public final class MenuKt {
+ method public static operator boolean contains(android.view.Menu, android.view.MenuItem item);
+ method public static inline void forEach(android.view.Menu, kotlin.jvm.functions.Function1<? super android.view.MenuItem,kotlin.Unit> action);
+ method public static inline void forEachIndexed(android.view.Menu, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super android.view.MenuItem,kotlin.Unit> action);
+ method public static inline operator android.view.MenuItem get(android.view.Menu, int index);
+ method public static kotlin.sequences.Sequence<android.view.MenuItem> getChildren(android.view.Menu);
+ method public static inline int getSize(android.view.Menu);
+ method public static inline boolean isEmpty(android.view.Menu);
+ method public static inline boolean isNotEmpty(android.view.Menu);
+ method public static operator java.util.Iterator<android.view.MenuItem> iterator(android.view.Menu);
+ method public static inline operator void minusAssign(android.view.Menu, android.view.MenuItem item);
+ }
+
+ public final class ViewGroupKt {
+ method public static inline operator boolean contains(android.view.ViewGroup, android.view.View view);
+ method public static inline void forEach(android.view.ViewGroup, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static inline void forEachIndexed(android.view.ViewGroup, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super android.view.View,kotlin.Unit> action);
+ method public static operator android.view.View get(android.view.ViewGroup, int index);
+ method public static kotlin.sequences.Sequence<android.view.View> getChildren(android.view.ViewGroup);
+ method public static kotlin.sequences.Sequence<android.view.View> getDescendants(android.view.ViewGroup);
+ method public static inline kotlin.ranges.IntRange getIndices(android.view.ViewGroup);
+ method public static inline int getSize(android.view.ViewGroup);
+ method public static inline boolean isEmpty(android.view.ViewGroup);
+ method public static inline boolean isNotEmpty(android.view.ViewGroup);
+ method public static operator java.util.Iterator<android.view.View> iterator(android.view.ViewGroup);
+ method public static inline operator void minusAssign(android.view.ViewGroup, android.view.View view);
+ method public static inline operator void plusAssign(android.view.ViewGroup, android.view.View view);
+ method public static inline void setMargins(android.view.ViewGroup.MarginLayoutParams, @Px int size);
+ method public static inline void updateMargins(android.view.ViewGroup.MarginLayoutParams, optional @Px int left, optional @Px int top, optional @Px int right, optional @Px int bottom);
+ method @RequiresApi(17) public static inline void updateMarginsRelative(android.view.ViewGroup.MarginLayoutParams, optional @Px int start, optional @Px int top, optional @Px int end, optional @Px int bottom);
+ }
+
+ public final class ViewKt {
+ method public static inline void doOnAttach(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static inline void doOnDetach(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static inline void doOnLayout(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static inline void doOnNextLayout(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static inline androidx.core.view.OneShotPreDrawListener doOnPreDraw(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static android.graphics.Bitmap drawToBitmap(android.view.View, optional android.graphics.Bitmap.Config config);
+ method public static kotlin.sequences.Sequence<android.view.View> getAllViews(android.view.View);
+ method public static kotlin.sequences.Sequence<android.view.ViewParent> getAncestors(android.view.View);
+ method public static inline int getMarginBottom(android.view.View);
+ method public static inline int getMarginEnd(android.view.View);
+ method public static inline int getMarginLeft(android.view.View);
+ method public static inline int getMarginRight(android.view.View);
+ method public static inline int getMarginStart(android.view.View);
+ method public static inline int getMarginTop(android.view.View);
+ method public static inline boolean isGone(android.view.View);
+ method public static inline boolean isInvisible(android.view.View);
+ method public static inline boolean isVisible(android.view.View);
+ method public static inline Runnable postDelayed(android.view.View, long delayInMillis, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+ method @RequiresApi(16) public static inline Runnable postOnAnimationDelayed(android.view.View, long delayInMillis, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+ method public static inline void setGone(android.view.View, boolean);
+ method public static inline void setInvisible(android.view.View, boolean);
+ method public static inline void setPadding(android.view.View, @Px int size);
+ method public static inline void setVisible(android.view.View, boolean);
+ method public static inline void updateLayoutParams(android.view.View, kotlin.jvm.functions.Function1<? super android.view.ViewGroup.LayoutParams,kotlin.Unit> block);
+ method public static inline <reified T extends android.view.ViewGroup.LayoutParams> void updateLayoutParams(android.view.View, kotlin.jvm.functions.Function1<? super T,? extends kotlin.Unit> block);
+ method public static inline void updatePadding(android.view.View, optional @Px int left, optional @Px int top, optional @Px int right, optional @Px int bottom);
+ method @RequiresApi(17) public static inline void updatePaddingRelative(android.view.View, optional @Px int start, optional @Px int top, optional @Px int end, optional @Px int bottom);
+ }
+
+}
+
+package androidx.core.widget {
+
+ public final class TextViewKt {
+ method public static inline android.text.TextWatcher addTextChangedListener(android.widget.TextView, optional kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> beforeTextChanged, optional kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> onTextChanged, optional kotlin.jvm.functions.Function1<? super android.text.Editable,kotlin.Unit> afterTextChanged);
+ method public static inline android.text.TextWatcher doAfterTextChanged(android.widget.TextView, kotlin.jvm.functions.Function1<? super android.text.Editable,kotlin.Unit> action);
+ method public static inline android.text.TextWatcher doBeforeTextChanged(android.widget.TextView, kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> action);
+ method public static inline android.text.TextWatcher doOnTextChanged(android.widget.TextView, kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> action);
+ }
+
+}
+
diff --git a/core/core-ktx/api/res-1.8.0-beta02.txt b/core/core-ktx/api/res-1.8.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/core/core-ktx/api/res-1.8.0-beta02.txt
diff --git a/core/core-ktx/api/restricted_1.8.0-beta02.txt b/core/core-ktx/api/restricted_1.8.0-beta02.txt
new file mode 100644
index 0000000..521f26c
--- /dev/null
+++ b/core/core-ktx/api/restricted_1.8.0-beta02.txt
@@ -0,0 +1,629 @@
+// Signature format: 4.0
+package androidx.core.animation {
+
+ public final class AnimatorKt {
+ method public static inline android.animation.Animator.AnimatorListener addListener(android.animation.Animator, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onEnd, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onStart, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onCancel, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onRepeat);
+ method @RequiresApi(19) public static inline android.animation.Animator.AnimatorPauseListener addPauseListener(android.animation.Animator, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onResume, optional kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> onPause);
+ method public static inline android.animation.Animator.AnimatorListener doOnCancel(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ method public static inline android.animation.Animator.AnimatorListener doOnEnd(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.animation.Animator.AnimatorPauseListener doOnPause(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ method public static inline android.animation.Animator.AnimatorListener doOnRepeat(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.animation.Animator.AnimatorPauseListener doOnResume(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ method public static inline android.animation.Animator.AnimatorListener doOnStart(android.animation.Animator, kotlin.jvm.functions.Function1<? super android.animation.Animator,kotlin.Unit> action);
+ }
+
+}
+
+package androidx.core.content {
+
+ public final class ContentValuesKt {
+ method public static android.content.ContentValues contentValuesOf(kotlin.Pair<java.lang.String,?>... pairs);
+ }
+
+ public final class ContextKt {
+ method public static inline <reified T> T! getSystemService(android.content.Context);
+ method public static inline void withStyledAttributes(android.content.Context, optional android.util.AttributeSet? set, int[] attrs, optional @AttrRes int defStyleAttr, optional @StyleRes int defStyleRes, kotlin.jvm.functions.Function1<? super android.content.res.TypedArray,kotlin.Unit> block);
+ method public static inline void withStyledAttributes(android.content.Context, @StyleRes int resourceId, int[] attrs, kotlin.jvm.functions.Function1<? super android.content.res.TypedArray,kotlin.Unit> block);
+ }
+
+ public final class SharedPreferencesKt {
+ method public static inline void edit(android.content.SharedPreferences, optional boolean commit, kotlin.jvm.functions.Function1<? super android.content.SharedPreferences.Editor,kotlin.Unit> action);
+ }
+
+}
+
+package androidx.core.content.res {
+
+ public final class TypedArrayKt {
+ method public static boolean getBooleanOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method @ColorInt public static int getColorOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static android.content.res.ColorStateList getColorStateListOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static float getDimensionOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method @Dimension public static int getDimensionPixelOffsetOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method @Dimension public static int getDimensionPixelSizeOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static android.graphics.drawable.Drawable getDrawableOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static float getFloatOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method @RequiresApi(26) public static android.graphics.Typeface getFontOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static int getIntOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static int getIntegerOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method @AnyRes public static int getResourceIdOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static String getStringOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static CharSequence![] getTextArrayOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static CharSequence getTextOrThrow(android.content.res.TypedArray, @StyleableRes int index);
+ method public static inline <R> R! use(android.content.res.TypedArray, kotlin.jvm.functions.Function1<? super android.content.res.TypedArray,? extends R> block);
+ }
+
+}
+
+package androidx.core.database {
+
+ public final class CursorKt {
+ method public static inline byte[]? getBlobOrNull(android.database.Cursor, int index);
+ method public static inline Double? getDoubleOrNull(android.database.Cursor, int index);
+ method public static inline Float? getFloatOrNull(android.database.Cursor, int index);
+ method public static inline Integer? getIntOrNull(android.database.Cursor, int index);
+ method public static inline Long? getLongOrNull(android.database.Cursor, int index);
+ method public static inline Short? getShortOrNull(android.database.Cursor, int index);
+ method public static inline String? getStringOrNull(android.database.Cursor, int index);
+ }
+
+}
+
+package androidx.core.database.sqlite {
+
+ public final class SQLiteDatabaseKt {
+ method public static inline <T> T! transaction(android.database.sqlite.SQLiteDatabase, optional boolean exclusive, kotlin.jvm.functions.Function1<? super android.database.sqlite.SQLiteDatabase,? extends T> body);
+ }
+
+}
+
+package androidx.core.graphics {
+
+ public final class BitmapKt {
+ method public static inline android.graphics.Bitmap applyCanvas(android.graphics.Bitmap, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline operator boolean contains(android.graphics.Bitmap, android.graphics.Point p);
+ method public static inline operator boolean contains(android.graphics.Bitmap, android.graphics.PointF p);
+ method public static inline android.graphics.Bitmap createBitmap(int width, int height, optional android.graphics.Bitmap.Config config);
+ method @RequiresApi(26) public static inline android.graphics.Bitmap createBitmap(int width, int height, optional android.graphics.Bitmap.Config config, optional boolean hasAlpha, optional android.graphics.ColorSpace colorSpace);
+ method public static inline operator int get(android.graphics.Bitmap, int x, int y);
+ method public static inline android.graphics.Bitmap scale(android.graphics.Bitmap, int width, int height, optional boolean filter);
+ method public static inline operator void set(android.graphics.Bitmap, int x, int y, @ColorInt int color);
+ }
+
+ public final class CanvasKt {
+ method public static inline void withClip(android.graphics.Canvas, android.graphics.Rect clipRect, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withClip(android.graphics.Canvas, android.graphics.RectF clipRect, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withClip(android.graphics.Canvas, int left, int top, int right, int bottom, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withClip(android.graphics.Canvas, float left, float top, float right, float bottom, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withClip(android.graphics.Canvas, android.graphics.Path clipPath, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withMatrix(android.graphics.Canvas, optional android.graphics.Matrix matrix, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withRotation(android.graphics.Canvas, optional float degrees, optional float pivotX, optional float pivotY, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withSave(android.graphics.Canvas, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withScale(android.graphics.Canvas, optional float x, optional float y, optional float pivotX, optional float pivotY, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withSkew(android.graphics.Canvas, optional float x, optional float y, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ method public static inline void withTranslation(android.graphics.Canvas, optional float x, optional float y, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ }
+
+ public final class ColorKt {
+ method @RequiresApi(26) public static inline operator float component1(android.graphics.Color);
+ method public static inline operator int component1(@ColorInt int);
+ method @RequiresApi(26) public static inline operator float component1(@ColorLong long);
+ method @RequiresApi(26) public static inline operator float component2(android.graphics.Color);
+ method public static inline operator int component2(@ColorInt int);
+ method @RequiresApi(26) public static inline operator float component2(@ColorLong long);
+ method @RequiresApi(26) public static inline operator float component3(android.graphics.Color);
+ method public static inline operator int component3(@ColorInt int);
+ method @RequiresApi(26) public static inline operator float component3(@ColorLong long);
+ method @RequiresApi(26) public static inline operator float component4(android.graphics.Color);
+ method public static inline operator int component4(@ColorInt int);
+ method @RequiresApi(26) public static inline operator float component4(@ColorLong long);
+ method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorInt int, android.graphics.ColorSpace.Named colorSpace);
+ method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorInt int, android.graphics.ColorSpace colorSpace);
+ method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorLong long, android.graphics.ColorSpace.Named colorSpace);
+ method @ColorLong @RequiresApi(26) public static inline infix long convertTo(@ColorLong long, android.graphics.ColorSpace colorSpace);
+ method @RequiresApi(26) public static inline infix android.graphics.Color convertTo(android.graphics.Color, android.graphics.ColorSpace.Named colorSpace);
+ method @RequiresApi(26) public static inline infix android.graphics.Color convertTo(android.graphics.Color, android.graphics.ColorSpace colorSpace);
+ method public static inline int getAlpha(@ColorInt int);
+ method @RequiresApi(26) public static inline float getAlpha(@ColorLong long);
+ method public static inline int getBlue(@ColorInt int);
+ method @RequiresApi(26) public static inline float getBlue(@ColorLong long);
+ method @RequiresApi(26) public static inline android.graphics.ColorSpace getColorSpace(@ColorLong long);
+ method public static inline int getGreen(@ColorInt int);
+ method @RequiresApi(26) public static inline float getGreen(@ColorLong long);
+ method @RequiresApi(26) public static inline float getLuminance(@ColorInt int);
+ method @RequiresApi(26) public static inline float getLuminance(@ColorLong long);
+ method public static inline int getRed(@ColorInt int);
+ method @RequiresApi(26) public static inline float getRed(@ColorLong long);
+ method @RequiresApi(26) public static inline boolean isSrgb(@ColorLong long);
+ method @RequiresApi(26) public static inline boolean isWideGamut(@ColorLong long);
+ method @RequiresApi(26) public static operator android.graphics.Color plus(android.graphics.Color, android.graphics.Color c);
+ method @RequiresApi(26) public static inline android.graphics.Color toColor(@ColorInt int);
+ method @RequiresApi(26) public static inline android.graphics.Color toColor(@ColorLong long);
+ method @ColorInt @RequiresApi(26) public static inline int toColorInt(@ColorLong long);
+ method @ColorInt public static inline int toColorInt(String);
+ method @ColorLong @RequiresApi(26) public static inline long toColorLong(@ColorInt int);
+ }
+
+ public final class ImageDecoderKt {
+ method @RequiresApi(28) public static inline android.graphics.Bitmap decodeBitmap(android.graphics.ImageDecoder.Source, kotlin.jvm.functions.Function3<? super android.graphics.ImageDecoder,? super android.graphics.ImageDecoder.ImageInfo,? super android.graphics.ImageDecoder.Source,kotlin.Unit> action);
+ method @RequiresApi(28) public static inline android.graphics.drawable.Drawable decodeDrawable(android.graphics.ImageDecoder.Source, kotlin.jvm.functions.Function3<? super android.graphics.ImageDecoder,? super android.graphics.ImageDecoder.ImageInfo,? super android.graphics.ImageDecoder.Source,kotlin.Unit> action);
+ }
+
+ public final class MatrixKt {
+ method public static android.graphics.Matrix rotationMatrix(float degrees, optional float px, optional float py);
+ method public static android.graphics.Matrix scaleMatrix(optional float sx, optional float sy);
+ method public static inline operator android.graphics.Matrix times(android.graphics.Matrix, android.graphics.Matrix m);
+ method public static android.graphics.Matrix translationMatrix(optional float tx, optional float ty);
+ method public static inline float[] values(android.graphics.Matrix);
+ }
+
+ public final class PaintKt {
+ method public static inline boolean setBlendMode(android.graphics.Paint, androidx.core.graphics.BlendModeCompat? blendModeCompat);
+ }
+
+ public final class PathKt {
+ method @RequiresApi(19) public static inline infix android.graphics.Path and(android.graphics.Path, android.graphics.Path p);
+ method @RequiresApi(26) public static Iterable<androidx.core.graphics.PathSegment> flatten(android.graphics.Path, optional float error);
+ method @RequiresApi(19) public static inline operator android.graphics.Path minus(android.graphics.Path, android.graphics.Path p);
+ method @RequiresApi(19) public static inline infix android.graphics.Path or(android.graphics.Path, android.graphics.Path p);
+ method @RequiresApi(19) public static inline operator android.graphics.Path plus(android.graphics.Path, android.graphics.Path p);
+ method @RequiresApi(19) public static inline infix android.graphics.Path xor(android.graphics.Path, android.graphics.Path p);
+ }
+
+ public final class PictureKt {
+ method public static inline android.graphics.Picture record(android.graphics.Picture, int width, int height, kotlin.jvm.functions.Function1<? super android.graphics.Canvas,kotlin.Unit> block);
+ }
+
+ public final class PointKt {
+ method public static inline operator int component1(android.graphics.Point);
+ method public static inline operator float component1(android.graphics.PointF);
+ method public static inline operator int component2(android.graphics.Point);
+ method public static inline operator float component2(android.graphics.PointF);
+ method public static inline operator android.graphics.Point minus(android.graphics.Point, android.graphics.Point p);
+ method public static inline operator android.graphics.PointF minus(android.graphics.PointF, android.graphics.PointF p);
+ method public static inline operator android.graphics.Point minus(android.graphics.Point, int xy);
+ method public static inline operator android.graphics.PointF minus(android.graphics.PointF, float xy);
+ method public static inline operator android.graphics.Point plus(android.graphics.Point, android.graphics.Point p);
+ method public static inline operator android.graphics.PointF plus(android.graphics.PointF, android.graphics.PointF p);
+ method public static inline operator android.graphics.Point plus(android.graphics.Point, int xy);
+ method public static inline operator android.graphics.PointF plus(android.graphics.PointF, float xy);
+ method public static inline android.graphics.Point toPoint(android.graphics.PointF);
+ method public static inline android.graphics.PointF toPointF(android.graphics.Point);
+ method public static inline operator android.graphics.Point unaryMinus(android.graphics.Point);
+ method public static inline operator android.graphics.PointF unaryMinus(android.graphics.PointF);
+ }
+
+ public final class PorterDuffKt {
+ method public static inline android.graphics.PorterDuffColorFilter toColorFilter(android.graphics.PorterDuff.Mode, int color);
+ method public static inline android.graphics.PorterDuffXfermode toXfermode(android.graphics.PorterDuff.Mode);
+ }
+
+ public final class RectKt {
+ method public static inline infix android.graphics.Rect and(android.graphics.Rect, android.graphics.Rect r);
+ method public static inline infix android.graphics.RectF and(android.graphics.RectF, android.graphics.RectF r);
+ method public static inline operator int component1(android.graphics.Rect);
+ method public static inline operator float component1(android.graphics.RectF);
+ method public static inline operator int component2(android.graphics.Rect);
+ method public static inline operator float component2(android.graphics.RectF);
+ method public static inline operator int component3(android.graphics.Rect);
+ method public static inline operator float component3(android.graphics.RectF);
+ method public static inline operator int component4(android.graphics.Rect);
+ method public static inline operator float component4(android.graphics.RectF);
+ method public static inline operator boolean contains(android.graphics.Rect, android.graphics.Point p);
+ method public static inline operator boolean contains(android.graphics.RectF, android.graphics.PointF p);
+ method public static inline operator android.graphics.Region minus(android.graphics.Rect, android.graphics.Rect r);
+ method public static inline operator android.graphics.Region minus(android.graphics.RectF, android.graphics.RectF r);
+ method public static inline operator android.graphics.Rect minus(android.graphics.Rect, int xy);
+ method public static inline operator android.graphics.RectF minus(android.graphics.RectF, float xy);
+ method public static inline operator android.graphics.Rect minus(android.graphics.Rect, android.graphics.Point xy);
+ method public static inline operator android.graphics.RectF minus(android.graphics.RectF, android.graphics.PointF xy);
+ method public static inline infix android.graphics.Rect or(android.graphics.Rect, android.graphics.Rect r);
+ method public static inline infix android.graphics.RectF or(android.graphics.RectF, android.graphics.RectF r);
+ method public static inline operator android.graphics.Rect plus(android.graphics.Rect, android.graphics.Rect r);
+ method public static inline operator android.graphics.RectF plus(android.graphics.RectF, android.graphics.RectF r);
+ method public static inline operator android.graphics.Rect plus(android.graphics.Rect, int xy);
+ method public static inline operator android.graphics.RectF plus(android.graphics.RectF, float xy);
+ method public static inline operator android.graphics.Rect plus(android.graphics.Rect, android.graphics.Point xy);
+ method public static inline operator android.graphics.RectF plus(android.graphics.RectF, android.graphics.PointF xy);
+ method public static inline operator android.graphics.Rect times(android.graphics.Rect, int factor);
+ method public static inline operator android.graphics.RectF times(android.graphics.RectF, int factor);
+ method public static inline operator android.graphics.RectF times(android.graphics.RectF, float factor);
+ method public static inline android.graphics.Rect toRect(android.graphics.RectF);
+ method public static inline android.graphics.RectF toRectF(android.graphics.Rect);
+ method public static inline android.graphics.Region toRegion(android.graphics.Rect);
+ method public static inline android.graphics.Region toRegion(android.graphics.RectF);
+ method public static inline android.graphics.RectF transform(android.graphics.RectF, android.graphics.Matrix m);
+ method public static inline infix android.graphics.Region xor(android.graphics.Rect, android.graphics.Rect r);
+ method public static inline infix android.graphics.Region xor(android.graphics.RectF, android.graphics.RectF r);
+ }
+
+ public final class RegionKt {
+ method public static inline infix android.graphics.Region and(android.graphics.Region, android.graphics.Rect r);
+ method public static inline infix android.graphics.Region and(android.graphics.Region, android.graphics.Region r);
+ method public static inline operator boolean contains(android.graphics.Region, android.graphics.Point p);
+ method public static inline void forEach(android.graphics.Region, kotlin.jvm.functions.Function1<? super android.graphics.Rect,kotlin.Unit> action);
+ method public static operator java.util.Iterator<android.graphics.Rect> iterator(android.graphics.Region);
+ method public static inline operator android.graphics.Region minus(android.graphics.Region, android.graphics.Rect r);
+ method public static inline operator android.graphics.Region minus(android.graphics.Region, android.graphics.Region r);
+ method public static inline operator android.graphics.Region not(android.graphics.Region);
+ method public static inline infix android.graphics.Region or(android.graphics.Region, android.graphics.Rect r);
+ method public static inline infix android.graphics.Region or(android.graphics.Region, android.graphics.Region r);
+ method public static inline operator android.graphics.Region plus(android.graphics.Region, android.graphics.Rect r);
+ method public static inline operator android.graphics.Region plus(android.graphics.Region, android.graphics.Region r);
+ method public static inline operator android.graphics.Region unaryMinus(android.graphics.Region);
+ method public static inline infix android.graphics.Region xor(android.graphics.Region, android.graphics.Rect r);
+ method public static inline infix android.graphics.Region xor(android.graphics.Region, android.graphics.Region r);
+ }
+
+ public final class ShaderKt {
+ method public static inline void transform(android.graphics.Shader, kotlin.jvm.functions.Function1<? super android.graphics.Matrix,kotlin.Unit> block);
+ }
+
+}
+
+package androidx.core.graphics.drawable {
+
+ public final class BitmapDrawableKt {
+ method public static inline android.graphics.drawable.BitmapDrawable toDrawable(android.graphics.Bitmap, android.content.res.Resources resources);
+ }
+
+ public final class ColorDrawableKt {
+ method public static inline android.graphics.drawable.ColorDrawable toDrawable(@ColorInt int);
+ method @RequiresApi(26) public static inline android.graphics.drawable.ColorDrawable toDrawable(android.graphics.Color);
+ }
+
+ public final class DrawableKt {
+ method public static android.graphics.Bitmap toBitmap(android.graphics.drawable.Drawable, optional @Px int width, optional @Px int height, optional android.graphics.Bitmap.Config? config);
+ method public static android.graphics.Bitmap? toBitmapOrNull(android.graphics.drawable.Drawable, optional @Px int width, optional @Px int height, optional android.graphics.Bitmap.Config? config);
+ method public static void updateBounds(android.graphics.drawable.Drawable, optional @Px int left, optional @Px int top, optional @Px int right, optional @Px int bottom);
+ }
+
+ public final class IconKt {
+ method @RequiresApi(26) public static inline android.graphics.drawable.Icon toAdaptiveIcon(android.graphics.Bitmap);
+ method @RequiresApi(26) public static inline android.graphics.drawable.Icon toIcon(android.graphics.Bitmap);
+ method @RequiresApi(26) public static inline android.graphics.drawable.Icon toIcon(android.net.Uri);
+ method @RequiresApi(26) public static inline android.graphics.drawable.Icon toIcon(byte[]);
+ }
+
+}
+
+package androidx.core.location {
+
+ public final class LocationKt {
+ method public static inline operator double component1(android.location.Location);
+ method public static inline operator double component2(android.location.Location);
+ }
+
+}
+
+package androidx.core.net {
+
+ public final class UriKt {
+ method public static java.io.File toFile(android.net.Uri);
+ method public static inline android.net.Uri toUri(String);
+ method public static inline android.net.Uri toUri(java.io.File);
+ }
+
+}
+
+package androidx.core.os {
+
+ public final class BundleKt {
+ method public static android.os.Bundle bundleOf(kotlin.Pair<java.lang.String,?>... pairs);
+ method public static android.os.Bundle bundleOf();
+ }
+
+ public final class HandlerKt {
+ method public static inline Runnable postAtTime(android.os.Handler, long uptimeMillis, optional Object? token, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+ method public static inline Runnable postDelayed(android.os.Handler, long delayInMillis, optional Object? token, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+ }
+
+ @RequiresApi(31) public final class OutcomeReceiverKt {
+ method @RequiresApi(31) public static <R, E extends java.lang.Throwable> android.os.OutcomeReceiver<R,E> asOutcomeReceiver(kotlin.coroutines.Continuation<? super R>);
+ }
+
+ public final class PersistableBundleKt {
+ method @RequiresApi(21) public static android.os.PersistableBundle persistableBundleOf(kotlin.Pair<java.lang.String,?>... pairs);
+ method @RequiresApi(21) public static android.os.PersistableBundle persistableBundleOf();
+ method @RequiresApi(21) public static android.os.PersistableBundle toPersistableBundle(java.util.Map<java.lang.String,?>);
+ }
+
+ public final class TraceKt {
+ method @Deprecated public static inline <T> T! trace(String sectionName, kotlin.jvm.functions.Function0<? extends T> block);
+ }
+
+}
+
+package androidx.core.text {
+
+ public final class CharSequenceKt {
+ method public static inline boolean isDigitsOnly(CharSequence);
+ method public static inline int trimmedLength(CharSequence);
+ }
+
+ public final class HtmlKt {
+ method public static inline android.text.Spanned parseAsHtml(String, optional int flags, optional android.text.Html.ImageGetter? imageGetter, optional android.text.Html.TagHandler? tagHandler);
+ method public static inline String toHtml(android.text.Spanned, optional int option);
+ }
+
+ public final class LocaleKt {
+ method @RequiresApi(17) public static inline int getLayoutDirection(java.util.Locale);
+ }
+
+ public final class SpannableStringBuilderKt {
+ method public static inline android.text.SpannableStringBuilder backgroundColor(android.text.SpannableStringBuilder, @ColorInt int color, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder bold(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannedString buildSpannedString(kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder color(android.text.SpannableStringBuilder, @ColorInt int color, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder inSpans(android.text.SpannableStringBuilder, Object![] spans, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder inSpans(android.text.SpannableStringBuilder, Object span, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder italic(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder scale(android.text.SpannableStringBuilder, float proportion, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder strikeThrough(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder subscript(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder superscript(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ method public static inline android.text.SpannableStringBuilder underline(android.text.SpannableStringBuilder, kotlin.jvm.functions.Function1<? super android.text.SpannableStringBuilder,kotlin.Unit> builderAction);
+ }
+
+ public final class SpannableStringKt {
+ method public static inline void clearSpans(android.text.Spannable);
+ method public static inline operator void set(android.text.Spannable, int start, int end, Object span);
+ method public static inline operator void set(android.text.Spannable, kotlin.ranges.IntRange range, Object span);
+ method public static inline android.text.Spannable toSpannable(CharSequence);
+ }
+
+ public final class SpannedStringKt {
+ method public static inline <reified T> T![]! getSpans(android.text.Spanned, optional int start, optional int end);
+ method public static inline android.text.Spanned toSpanned(CharSequence);
+ }
+
+ public final class StringKt {
+ method public static inline String htmlEncode(String);
+ }
+
+}
+
+package androidx.core.transition {
+
+ public final class TransitionKt {
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener addListener(android.transition.Transition, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onEnd, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onStart, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onCancel, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onResume, optional kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> onPause);
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnCancel(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnEnd(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnPause(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnResume(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+ method @RequiresApi(19) public static inline android.transition.Transition.TransitionListener doOnStart(android.transition.Transition, kotlin.jvm.functions.Function1<? super android.transition.Transition,kotlin.Unit> action);
+ }
+
+}
+
+package androidx.core.util {
+
+ public final class AndroidXConsumerKt {
+ method public static <T> androidx.core.util.Consumer<T> asAndroidXConsumer(kotlin.coroutines.Continuation<? super T>);
+ }
+
+ public final class AtomicFileKt {
+ method @RequiresApi(17) public static inline byte[] readBytes(android.util.AtomicFile);
+ method @RequiresApi(17) public static String readText(android.util.AtomicFile, optional java.nio.charset.Charset charset);
+ method @RequiresApi(17) public static inline void tryWrite(android.util.AtomicFile, kotlin.jvm.functions.Function1<? super java.io.FileOutputStream,kotlin.Unit> block);
+ method @RequiresApi(17) public static void writeBytes(android.util.AtomicFile, byte[] array);
+ method @RequiresApi(17) public static void writeText(android.util.AtomicFile, String text, optional java.nio.charset.Charset charset);
+ }
+
+ @RequiresApi(24) public final class ConsumerKt {
+ method @RequiresApi(24) public static <T> java.util.function.Consumer<T> asConsumer(kotlin.coroutines.Continuation<? super T>);
+ }
+
+ public final class HalfKt {
+ method @RequiresApi(26) public static inline android.util.Half toHalf(@HalfFloat short);
+ method @RequiresApi(26) public static inline android.util.Half toHalf(float);
+ method @RequiresApi(26) public static inline android.util.Half toHalf(double);
+ method @RequiresApi(26) public static inline android.util.Half toHalf(String);
+ }
+
+ public final class LongSparseArrayKt {
+ method @RequiresApi(16) public static inline operator <T> boolean contains(android.util.LongSparseArray<T>, long key);
+ method @RequiresApi(16) public static inline <T> boolean containsKey(android.util.LongSparseArray<T>, long key);
+ method @RequiresApi(16) public static inline <T> boolean containsValue(android.util.LongSparseArray<T>, T? value);
+ method @RequiresApi(16) public static inline <T> void forEach(android.util.LongSparseArray<T>, kotlin.jvm.functions.Function2<? super java.lang.Long,? super T,kotlin.Unit> action);
+ method @RequiresApi(16) public static inline <T> T! getOrDefault(android.util.LongSparseArray<T>, long key, T? defaultValue);
+ method @RequiresApi(16) public static inline <T> T! getOrElse(android.util.LongSparseArray<T>, long key, kotlin.jvm.functions.Function0<? extends T> defaultValue);
+ method @RequiresApi(16) public static inline <T> int getSize(android.util.LongSparseArray<T>);
+ method @RequiresApi(16) public static inline <T> boolean isEmpty(android.util.LongSparseArray<T>);
+ method @RequiresApi(16) public static inline <T> boolean isNotEmpty(android.util.LongSparseArray<T>);
+ method @RequiresApi(16) public static <T> kotlin.collections.LongIterator keyIterator(android.util.LongSparseArray<T>);
+ method @RequiresApi(16) public static operator <T> android.util.LongSparseArray<T> plus(android.util.LongSparseArray<T>, android.util.LongSparseArray<T> other);
+ method @RequiresApi(16) public static <T> void putAll(android.util.LongSparseArray<T>, android.util.LongSparseArray<T> other);
+ method @RequiresApi(16) public static <T> boolean remove(android.util.LongSparseArray<T>, long key, T? value);
+ method @RequiresApi(16) public static inline operator <T> void set(android.util.LongSparseArray<T>, long key, T? value);
+ method @RequiresApi(16) public static <T> java.util.Iterator<T> valueIterator(android.util.LongSparseArray<T>);
+ }
+
+ public final class LruCacheKt {
+ method public static inline <K, V> android.util.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 final class PairKt {
+ method public static inline operator <F, S> F! component1(androidx.core.util.Pair<F,S>);
+ method public static inline operator <F, S> F! component1(android.util.Pair<F,S>);
+ method public static inline operator <F, S> S! component2(androidx.core.util.Pair<F,S>);
+ method public static inline operator <F, S> S! component2(android.util.Pair<F,S>);
+ method public static inline <F, S> android.util.Pair<F,S> toAndroidPair(kotlin.Pair<? extends F,? extends S>);
+ method public static inline <F, S> androidx.core.util.Pair<F,S> toAndroidXPair(kotlin.Pair<? extends F,? extends S>);
+ method public static inline <F, S> kotlin.Pair<F,S> toKotlinPair(androidx.core.util.Pair<F,S>);
+ method public static inline <F, S> kotlin.Pair<F,S> toKotlinPair(android.util.Pair<F,S>);
+ }
+
+ public final class RangeKt {
+ method @RequiresApi(21) public static inline infix <T extends java.lang.Comparable<? super T>> android.util.Range<T> and(android.util.Range<T>, android.util.Range<T> other);
+ method @RequiresApi(21) public static inline operator <T extends java.lang.Comparable<? super T>> android.util.Range<T> plus(android.util.Range<T>, T value);
+ method @RequiresApi(21) public static inline operator <T extends java.lang.Comparable<? super T>> android.util.Range<T> plus(android.util.Range<T>, android.util.Range<T> other);
+ method @RequiresApi(21) public static inline infix <T extends java.lang.Comparable<? super T>> android.util.Range<T> rangeTo(T, T that);
+ method @RequiresApi(21) public static <T extends java.lang.Comparable<? super T>> kotlin.ranges.ClosedRange<T> toClosedRange(android.util.Range<T>);
+ method @RequiresApi(21) public static <T extends java.lang.Comparable<? super T>> android.util.Range<T> toRange(kotlin.ranges.ClosedRange<T>);
+ }
+
+ public final class RunnableKt {
+ method public static Runnable asRunnable(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ }
+
+ public final class SizeKt {
+ method @RequiresApi(21) public static inline operator int component1(android.util.Size);
+ method @RequiresApi(21) public static inline operator float component1(android.util.SizeF);
+ method public static inline operator float component1(androidx.core.util.SizeFCompat);
+ method @RequiresApi(21) public static inline operator int component2(android.util.Size);
+ method @RequiresApi(21) public static inline operator float component2(android.util.SizeF);
+ method public static inline operator float component2(androidx.core.util.SizeFCompat);
+ }
+
+ public final class SparseArrayKt {
+ method public static inline operator <T> boolean contains(android.util.SparseArray<T>, int key);
+ method public static inline <T> boolean containsKey(android.util.SparseArray<T>, int key);
+ method public static inline <T> boolean containsValue(android.util.SparseArray<T>, T? value);
+ method public static inline <T> void forEach(android.util.SparseArray<T>, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super T,kotlin.Unit> action);
+ method public static inline <T> T! getOrDefault(android.util.SparseArray<T>, int key, T? defaultValue);
+ method public static inline <T> T! getOrElse(android.util.SparseArray<T>, int key, kotlin.jvm.functions.Function0<? extends T> defaultValue);
+ method public static inline <T> int getSize(android.util.SparseArray<T>);
+ method public static inline <T> boolean isEmpty(android.util.SparseArray<T>);
+ method public static inline <T> boolean isNotEmpty(android.util.SparseArray<T>);
+ method public static <T> kotlin.collections.IntIterator keyIterator(android.util.SparseArray<T>);
+ method public static operator <T> android.util.SparseArray<T> plus(android.util.SparseArray<T>, android.util.SparseArray<T> other);
+ method public static <T> void putAll(android.util.SparseArray<T>, android.util.SparseArray<T> other);
+ method public static <T> boolean remove(android.util.SparseArray<T>, int key, T? value);
+ method public static inline operator <T> void set(android.util.SparseArray<T>, int key, T? value);
+ method public static <T> java.util.Iterator<T> valueIterator(android.util.SparseArray<T>);
+ }
+
+ public final class SparseBooleanArrayKt {
+ method public static inline operator boolean contains(android.util.SparseBooleanArray, int key);
+ method public static inline boolean containsKey(android.util.SparseBooleanArray, int key);
+ method public static inline boolean containsValue(android.util.SparseBooleanArray, boolean value);
+ method public static inline void forEach(android.util.SparseBooleanArray, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Boolean,kotlin.Unit> action);
+ method public static inline boolean getOrDefault(android.util.SparseBooleanArray, int key, boolean defaultValue);
+ method public static inline boolean getOrElse(android.util.SparseBooleanArray, int key, kotlin.jvm.functions.Function0<java.lang.Boolean> defaultValue);
+ method public static inline int getSize(android.util.SparseBooleanArray);
+ method public static inline boolean isEmpty(android.util.SparseBooleanArray);
+ method public static inline boolean isNotEmpty(android.util.SparseBooleanArray);
+ method public static kotlin.collections.IntIterator keyIterator(android.util.SparseBooleanArray);
+ method public static operator android.util.SparseBooleanArray plus(android.util.SparseBooleanArray, android.util.SparseBooleanArray other);
+ method public static void putAll(android.util.SparseBooleanArray, android.util.SparseBooleanArray other);
+ method public static boolean remove(android.util.SparseBooleanArray, int key, boolean value);
+ method public static inline operator void set(android.util.SparseBooleanArray, int key, boolean value);
+ method public static kotlin.collections.BooleanIterator valueIterator(android.util.SparseBooleanArray);
+ }
+
+ public final class SparseIntArrayKt {
+ method public static inline operator boolean contains(android.util.SparseIntArray, int key);
+ method public static inline boolean containsKey(android.util.SparseIntArray, int key);
+ method public static inline boolean containsValue(android.util.SparseIntArray, int value);
+ method public static inline void forEach(android.util.SparseIntArray, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> action);
+ method public static inline int getOrDefault(android.util.SparseIntArray, int key, int defaultValue);
+ method public static inline int getOrElse(android.util.SparseIntArray, int key, kotlin.jvm.functions.Function0<java.lang.Integer> defaultValue);
+ method public static inline int getSize(android.util.SparseIntArray);
+ method public static inline boolean isEmpty(android.util.SparseIntArray);
+ method public static inline boolean isNotEmpty(android.util.SparseIntArray);
+ method public static kotlin.collections.IntIterator keyIterator(android.util.SparseIntArray);
+ method public static operator android.util.SparseIntArray plus(android.util.SparseIntArray, android.util.SparseIntArray other);
+ method public static void putAll(android.util.SparseIntArray, android.util.SparseIntArray other);
+ method public static boolean remove(android.util.SparseIntArray, int key, int value);
+ method public static inline operator void set(android.util.SparseIntArray, int key, int value);
+ method public static kotlin.collections.IntIterator valueIterator(android.util.SparseIntArray);
+ }
+
+ public final class SparseLongArrayKt {
+ method @RequiresApi(18) public static inline operator boolean contains(android.util.SparseLongArray, int key);
+ method @RequiresApi(18) public static inline boolean containsKey(android.util.SparseLongArray, int key);
+ method @RequiresApi(18) public static inline boolean containsValue(android.util.SparseLongArray, long value);
+ method @RequiresApi(18) public static inline void forEach(android.util.SparseLongArray, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super java.lang.Long,kotlin.Unit> action);
+ method @RequiresApi(18) public static inline long getOrDefault(android.util.SparseLongArray, int key, long defaultValue);
+ method @RequiresApi(18) public static inline long getOrElse(android.util.SparseLongArray, int key, kotlin.jvm.functions.Function0<java.lang.Long> defaultValue);
+ method @RequiresApi(18) public static inline int getSize(android.util.SparseLongArray);
+ method @RequiresApi(18) public static inline boolean isEmpty(android.util.SparseLongArray);
+ method @RequiresApi(18) public static inline boolean isNotEmpty(android.util.SparseLongArray);
+ method @RequiresApi(18) public static kotlin.collections.IntIterator keyIterator(android.util.SparseLongArray);
+ method @RequiresApi(18) public static operator android.util.SparseLongArray plus(android.util.SparseLongArray, android.util.SparseLongArray other);
+ method @RequiresApi(18) public static void putAll(android.util.SparseLongArray, android.util.SparseLongArray other);
+ method @RequiresApi(18) public static boolean remove(android.util.SparseLongArray, int key, long value);
+ method @RequiresApi(18) public static inline operator void set(android.util.SparseLongArray, int key, long value);
+ method @RequiresApi(18) public static kotlin.collections.LongIterator valueIterator(android.util.SparseLongArray);
+ }
+
+}
+
+package androidx.core.view {
+
+ public final class MenuKt {
+ method public static operator boolean contains(android.view.Menu, android.view.MenuItem item);
+ method public static inline void forEach(android.view.Menu, kotlin.jvm.functions.Function1<? super android.view.MenuItem,kotlin.Unit> action);
+ method public static inline void forEachIndexed(android.view.Menu, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super android.view.MenuItem,kotlin.Unit> action);
+ method public static inline operator android.view.MenuItem get(android.view.Menu, int index);
+ method public static kotlin.sequences.Sequence<android.view.MenuItem> getChildren(android.view.Menu);
+ method public static inline int getSize(android.view.Menu);
+ method public static inline boolean isEmpty(android.view.Menu);
+ method public static inline boolean isNotEmpty(android.view.Menu);
+ method public static operator java.util.Iterator<android.view.MenuItem> iterator(android.view.Menu);
+ method public static inline operator void minusAssign(android.view.Menu, android.view.MenuItem item);
+ }
+
+ public final class ViewGroupKt {
+ method public static inline operator boolean contains(android.view.ViewGroup, android.view.View view);
+ method public static inline void forEach(android.view.ViewGroup, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static inline void forEachIndexed(android.view.ViewGroup, kotlin.jvm.functions.Function2<? super java.lang.Integer,? super android.view.View,kotlin.Unit> action);
+ method public static operator android.view.View get(android.view.ViewGroup, int index);
+ method public static kotlin.sequences.Sequence<android.view.View> getChildren(android.view.ViewGroup);
+ method public static kotlin.sequences.Sequence<android.view.View> getDescendants(android.view.ViewGroup);
+ method public static inline kotlin.ranges.IntRange getIndices(android.view.ViewGroup);
+ method public static inline int getSize(android.view.ViewGroup);
+ method public static inline boolean isEmpty(android.view.ViewGroup);
+ method public static inline boolean isNotEmpty(android.view.ViewGroup);
+ method public static operator java.util.Iterator<android.view.View> iterator(android.view.ViewGroup);
+ method public static inline operator void minusAssign(android.view.ViewGroup, android.view.View view);
+ method public static inline operator void plusAssign(android.view.ViewGroup, android.view.View view);
+ method public static inline void setMargins(android.view.ViewGroup.MarginLayoutParams, @Px int size);
+ method public static inline void updateMargins(android.view.ViewGroup.MarginLayoutParams, optional @Px int left, optional @Px int top, optional @Px int right, optional @Px int bottom);
+ method @RequiresApi(17) public static inline void updateMarginsRelative(android.view.ViewGroup.MarginLayoutParams, optional @Px int start, optional @Px int top, optional @Px int end, optional @Px int bottom);
+ }
+
+ public final class ViewKt {
+ method public static inline void doOnAttach(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static inline void doOnDetach(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static inline void doOnLayout(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static inline void doOnNextLayout(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static inline androidx.core.view.OneShotPreDrawListener doOnPreDraw(android.view.View, kotlin.jvm.functions.Function1<? super android.view.View,kotlin.Unit> action);
+ method public static android.graphics.Bitmap drawToBitmap(android.view.View, optional android.graphics.Bitmap.Config config);
+ method public static kotlin.sequences.Sequence<android.view.View> getAllViews(android.view.View);
+ method public static kotlin.sequences.Sequence<android.view.ViewParent> getAncestors(android.view.View);
+ method public static inline int getMarginBottom(android.view.View);
+ method public static inline int getMarginEnd(android.view.View);
+ method public static inline int getMarginLeft(android.view.View);
+ method public static inline int getMarginRight(android.view.View);
+ method public static inline int getMarginStart(android.view.View);
+ method public static inline int getMarginTop(android.view.View);
+ method public static inline boolean isGone(android.view.View);
+ method public static inline boolean isInvisible(android.view.View);
+ method public static inline boolean isVisible(android.view.View);
+ method public static inline Runnable postDelayed(android.view.View, long delayInMillis, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+ method @RequiresApi(16) public static inline Runnable postOnAnimationDelayed(android.view.View, long delayInMillis, kotlin.jvm.functions.Function0<kotlin.Unit> action);
+ method public static inline void setGone(android.view.View, boolean);
+ method public static inline void setInvisible(android.view.View, boolean);
+ method public static inline void setPadding(android.view.View, @Px int size);
+ method public static inline void setVisible(android.view.View, boolean);
+ method public static inline void updateLayoutParams(android.view.View, kotlin.jvm.functions.Function1<? super android.view.ViewGroup.LayoutParams,kotlin.Unit> block);
+ method public static inline <reified T extends android.view.ViewGroup.LayoutParams> void updateLayoutParams(android.view.View, kotlin.jvm.functions.Function1<? super T,? extends kotlin.Unit> block);
+ method public static inline void updatePadding(android.view.View, optional @Px int left, optional @Px int top, optional @Px int right, optional @Px int bottom);
+ method @RequiresApi(17) public static inline void updatePaddingRelative(android.view.View, optional @Px int start, optional @Px int top, optional @Px int end, optional @Px int bottom);
+ }
+
+}
+
+package androidx.core.widget {
+
+ public final class TextViewKt {
+ method public static inline android.text.TextWatcher addTextChangedListener(android.widget.TextView, optional kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> beforeTextChanged, optional kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> onTextChanged, optional kotlin.jvm.functions.Function1<? super android.text.Editable,kotlin.Unit> afterTextChanged);
+ method public static inline android.text.TextWatcher doAfterTextChanged(android.widget.TextView, kotlin.jvm.functions.Function1<? super android.text.Editable,kotlin.Unit> action);
+ method public static inline android.text.TextWatcher doBeforeTextChanged(android.widget.TextView, kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> action);
+ method public static inline android.text.TextWatcher doOnTextChanged(android.widget.TextView, kotlin.jvm.functions.Function4<? super java.lang.CharSequence,? super java.lang.Integer,? super java.lang.Integer,? super java.lang.Integer,kotlin.Unit> action);
+ }
+
+}
+
diff --git a/core/core/api/1.8.0-beta02.txt b/core/core/api/1.8.0-beta02.txt
new file mode 100644
index 0000000..ac52137
--- /dev/null
+++ b/core/core/api/1.8.0-beta02.txt
@@ -0,0 +1,3760 @@
+// Signature format: 4.0
+package androidx.core.accessibilityservice {
+
+ public final class AccessibilityServiceInfoCompat {
+ method public static String capabilityToString(int);
+ method public static String feedbackTypeToString(int);
+ method public static String? flagToString(int);
+ method public static int getCapabilities(android.accessibilityservice.AccessibilityServiceInfo);
+ method public static String? loadDescription(android.accessibilityservice.AccessibilityServiceInfo, android.content.pm.PackageManager);
+ field public static final int CAPABILITY_CAN_FILTER_KEY_EVENTS = 8; // 0x8
+ field public static final int CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 4; // 0x4
+ field public static final int CAPABILITY_CAN_REQUEST_TOUCH_EXPLORATION = 2; // 0x2
+ field public static final int CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT = 1; // 0x1
+ field public static final int FEEDBACK_ALL_MASK = -1; // 0xffffffff
+ field public static final int FEEDBACK_BRAILLE = 32; // 0x20
+ field public static final int FLAG_INCLUDE_NOT_IMPORTANT_VIEWS = 2; // 0x2
+ field public static final int FLAG_REPORT_VIEW_IDS = 16; // 0x10
+ field public static final int FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 8; // 0x8
+ field public static final int FLAG_REQUEST_FILTER_KEY_EVENTS = 32; // 0x20
+ field public static final int FLAG_REQUEST_TOUCH_EXPLORATION_MODE = 4; // 0x4
+ }
+
+}
+
+package androidx.core.app {
+
+ public class ActivityCompat extends androidx.core.content.ContextCompat {
+ ctor protected ActivityCompat();
+ method public static void finishAffinity(android.app.Activity);
+ method public static void finishAfterTransition(android.app.Activity);
+ method public static android.net.Uri? getReferrer(android.app.Activity);
+ method @Deprecated public static boolean invalidateOptionsMenu(android.app.Activity!);
+ method public static boolean isLaunchedFromBubble(android.app.Activity);
+ method public static void postponeEnterTransition(android.app.Activity);
+ method public static void recreate(android.app.Activity);
+ method public static androidx.core.view.DragAndDropPermissionsCompat? requestDragAndDropPermissions(android.app.Activity, android.view.DragEvent);
+ method public static void requestPermissions(android.app.Activity, String![], @IntRange(from=0) int);
+ method public static <T extends android.view.View> T requireViewById(android.app.Activity, @IdRes int);
+ method public static void setEnterSharedElementCallback(android.app.Activity, androidx.core.app.SharedElementCallback?);
+ method public static void setExitSharedElementCallback(android.app.Activity, androidx.core.app.SharedElementCallback?);
+ method public static void setLocusContext(android.app.Activity, androidx.core.content.LocusIdCompat?, android.os.Bundle?);
+ method public static void setPermissionCompatDelegate(androidx.core.app.ActivityCompat.PermissionCompatDelegate?);
+ method public static boolean shouldShowRequestPermissionRationale(android.app.Activity, String);
+ method public static void startActivityForResult(android.app.Activity, android.content.Intent, int, android.os.Bundle?);
+ method public static void startIntentSenderForResult(android.app.Activity, android.content.IntentSender, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
+ method public static void startPostponedEnterTransition(android.app.Activity);
+ }
+
+ public static interface ActivityCompat.OnRequestPermissionsResultCallback {
+ method public void onRequestPermissionsResult(int, String![], int[]);
+ }
+
+ public static interface ActivityCompat.PermissionCompatDelegate {
+ method public boolean onActivityResult(android.app.Activity, @IntRange(from=0) int, int, android.content.Intent?);
+ method public boolean requestPermissions(android.app.Activity, String![], @IntRange(from=0) int);
+ }
+
+ public final class ActivityManagerCompat {
+ method public static boolean isLowRamDevice(android.app.ActivityManager);
+ }
+
+ public class ActivityOptionsCompat {
+ ctor protected ActivityOptionsCompat();
+ method public android.graphics.Rect? getLaunchBounds();
+ method public static androidx.core.app.ActivityOptionsCompat makeBasic();
+ method public static androidx.core.app.ActivityOptionsCompat makeClipRevealAnimation(android.view.View, int, int, int, int);
+ method public static androidx.core.app.ActivityOptionsCompat makeCustomAnimation(android.content.Context, int, int);
+ method public static androidx.core.app.ActivityOptionsCompat makeScaleUpAnimation(android.view.View, int, int, int, int);
+ method public static androidx.core.app.ActivityOptionsCompat makeSceneTransitionAnimation(android.app.Activity, android.view.View, String);
+ method public static androidx.core.app.ActivityOptionsCompat makeSceneTransitionAnimation(android.app.Activity, androidx.core.util.Pair<android.view.View!,java.lang.String!>!...);
+ method public static androidx.core.app.ActivityOptionsCompat makeTaskLaunchBehind();
+ method public static androidx.core.app.ActivityOptionsCompat makeThumbnailScaleUpAnimation(android.view.View, android.graphics.Bitmap, int, int);
+ method public void requestUsageTimeReport(android.app.PendingIntent);
+ method public androidx.core.app.ActivityOptionsCompat setLaunchBounds(android.graphics.Rect?);
+ method public android.os.Bundle? toBundle();
+ method public void update(androidx.core.app.ActivityOptionsCompat);
+ field public static final String EXTRA_USAGE_TIME_REPORT = "android.activity.usage_time";
+ field public static final String EXTRA_USAGE_TIME_REPORT_PACKAGES = "android.usage_time_packages";
+ }
+
+ public final class AlarmManagerCompat {
+ method public static void setAlarmClock(android.app.AlarmManager, long, android.app.PendingIntent, android.app.PendingIntent);
+ method public static void setAndAllowWhileIdle(android.app.AlarmManager, int, long, android.app.PendingIntent);
+ method public static void setExact(android.app.AlarmManager, int, long, android.app.PendingIntent);
+ method public static void setExactAndAllowWhileIdle(android.app.AlarmManager, int, long, android.app.PendingIntent);
+ }
+
+ @RequiresApi(28) public class AppComponentFactory extends android.app.AppComponentFactory {
+ ctor public AppComponentFactory();
+ method public final android.app.Activity instantiateActivity(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public android.app.Activity instantiateActivityCompat(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public final android.app.Application instantiateApplication(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public android.app.Application instantiateApplicationCompat(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public final android.content.ContentProvider instantiateProvider(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public android.content.ContentProvider instantiateProviderCompat(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public final android.content.BroadcastReceiver instantiateReceiver(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public android.content.BroadcastReceiver instantiateReceiverCompat(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public final android.app.Service instantiateService(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public android.app.Service instantiateServiceCompat(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ }
+
+ public class AppLaunchChecker {
+ ctor @Deprecated public AppLaunchChecker();
+ method public static boolean hasStartedFromLauncher(android.content.Context);
+ method public static void onActivityCreate(android.app.Activity);
+ }
+
+ public final class AppOpsManagerCompat {
+ method public static int checkOrNoteProxyOp(android.content.Context, int, String, String);
+ method public static int noteOp(android.content.Context, String, int, String);
+ method public static int noteOpNoThrow(android.content.Context, String, int, String);
+ method public static int noteProxyOp(android.content.Context, String, String);
+ method public static int noteProxyOpNoThrow(android.content.Context, String, String);
+ method public static String? permissionToOp(String);
+ field public static final int MODE_ALLOWED = 0; // 0x0
+ field public static final int MODE_DEFAULT = 3; // 0x3
+ field public static final int MODE_ERRORED = 2; // 0x2
+ field public static final int MODE_IGNORED = 1; // 0x1
+ }
+
+ public final class BundleCompat {
+ method public static android.os.IBinder? getBinder(android.os.Bundle, String?);
+ method public static void putBinder(android.os.Bundle, String?, android.os.IBinder?);
+ }
+
+ public class DialogCompat {
+ method public static android.view.View requireViewById(android.app.Dialog, int);
+ }
+
+ public class FrameMetricsAggregator {
+ ctor public FrameMetricsAggregator();
+ ctor public FrameMetricsAggregator(int);
+ method public void add(android.app.Activity);
+ method public android.util.SparseIntArray![]? getMetrics();
+ method public android.util.SparseIntArray![]? remove(android.app.Activity);
+ method public android.util.SparseIntArray![]? reset();
+ method public android.util.SparseIntArray![]? stop();
+ field public static final int ANIMATION_DURATION = 256; // 0x100
+ field public static final int ANIMATION_INDEX = 8; // 0x8
+ field public static final int COMMAND_DURATION = 32; // 0x20
+ field public static final int COMMAND_INDEX = 5; // 0x5
+ field public static final int DELAY_DURATION = 128; // 0x80
+ field public static final int DELAY_INDEX = 7; // 0x7
+ field public static final int DRAW_DURATION = 8; // 0x8
+ field public static final int DRAW_INDEX = 3; // 0x3
+ field public static final int EVERY_DURATION = 511; // 0x1ff
+ field public static final int INPUT_DURATION = 2; // 0x2
+ field public static final int INPUT_INDEX = 1; // 0x1
+ field public static final int LAYOUT_MEASURE_DURATION = 4; // 0x4
+ field public static final int LAYOUT_MEASURE_INDEX = 2; // 0x2
+ field public static final int SWAP_DURATION = 64; // 0x40
+ field public static final int SWAP_INDEX = 6; // 0x6
+ field public static final int SYNC_DURATION = 16; // 0x10
+ field public static final int SYNC_INDEX = 4; // 0x4
+ field public static final int TOTAL_DURATION = 1; // 0x1
+ field public static final int TOTAL_INDEX = 0; // 0x0
+ }
+
+ @Deprecated public abstract class JobIntentService extends android.app.Service {
+ ctor @Deprecated public JobIntentService();
+ method @Deprecated public static void enqueueWork(android.content.Context, Class<?>, int, android.content.Intent);
+ method @Deprecated public static void enqueueWork(android.content.Context, android.content.ComponentName, int, android.content.Intent);
+ method @Deprecated public boolean isStopped();
+ method @Deprecated public android.os.IBinder! onBind(android.content.Intent);
+ method @Deprecated protected abstract void onHandleWork(android.content.Intent);
+ method @Deprecated public boolean onStopCurrentWork();
+ method @Deprecated public void setInterruptIfStopped(boolean);
+ }
+
+ public final class MultiWindowModeChangedInfo {
+ ctor public MultiWindowModeChangedInfo(boolean);
+ ctor @RequiresApi(26) public MultiWindowModeChangedInfo(boolean, android.content.res.Configuration);
+ method @RequiresApi(26) public android.content.res.Configuration getNewConfig();
+ method public boolean isInMultiWindowMode();
+ }
+
+ public final class NavUtils {
+ method public static android.content.Intent? getParentActivityIntent(android.app.Activity);
+ method public static android.content.Intent? getParentActivityIntent(android.content.Context, Class<?>) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public static android.content.Intent? getParentActivityIntent(android.content.Context, android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public static String? getParentActivityName(android.app.Activity);
+ method public static String? getParentActivityName(android.content.Context, android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public static void navigateUpFromSameTask(android.app.Activity);
+ method public static void navigateUpTo(android.app.Activity, android.content.Intent);
+ method public static boolean shouldUpRecreateTask(android.app.Activity, android.content.Intent);
+ field public static final String PARENT_ACTIVITY = "android.support.PARENT_ACTIVITY";
+ }
+
+ public class NotificationChannelCompat {
+ method public boolean canBubble();
+ method public boolean canBypassDnd();
+ method public boolean canShowBadge();
+ method public android.media.AudioAttributes? getAudioAttributes();
+ method public String? getConversationId();
+ method public String? getDescription();
+ method public String? getGroup();
+ method public String getId();
+ method public int getImportance();
+ method public int getLightColor();
+ method public int getLockscreenVisibility();
+ method public CharSequence? getName();
+ method public String? getParentChannelId();
+ method public android.net.Uri? getSound();
+ method public long[]? getVibrationPattern();
+ method public boolean isImportantConversation();
+ method public boolean shouldShowLights();
+ method public boolean shouldVibrate();
+ method public androidx.core.app.NotificationChannelCompat.Builder toBuilder();
+ field public static final String DEFAULT_CHANNEL_ID = "miscellaneous";
+ }
+
+ public static class NotificationChannelCompat.Builder {
+ ctor public NotificationChannelCompat.Builder(String, int);
+ method public androidx.core.app.NotificationChannelCompat build();
+ method public androidx.core.app.NotificationChannelCompat.Builder setConversationId(String, String);
+ method public androidx.core.app.NotificationChannelCompat.Builder setDescription(String?);
+ method public androidx.core.app.NotificationChannelCompat.Builder setGroup(String?);
+ method public androidx.core.app.NotificationChannelCompat.Builder setImportance(int);
+ method public androidx.core.app.NotificationChannelCompat.Builder setLightColor(int);
+ method public androidx.core.app.NotificationChannelCompat.Builder setLightsEnabled(boolean);
+ method public androidx.core.app.NotificationChannelCompat.Builder setName(CharSequence?);
+ method public androidx.core.app.NotificationChannelCompat.Builder setShowBadge(boolean);
+ method public androidx.core.app.NotificationChannelCompat.Builder setSound(android.net.Uri?, android.media.AudioAttributes?);
+ method public androidx.core.app.NotificationChannelCompat.Builder setVibrationEnabled(boolean);
+ method public androidx.core.app.NotificationChannelCompat.Builder setVibrationPattern(long[]?);
+ }
+
+ public class NotificationChannelGroupCompat {
+ method public java.util.List<androidx.core.app.NotificationChannelCompat!> getChannels();
+ method public String? getDescription();
+ method public String getId();
+ method public CharSequence? getName();
+ method public boolean isBlocked();
+ method public androidx.core.app.NotificationChannelGroupCompat.Builder toBuilder();
+ }
+
+ public static class NotificationChannelGroupCompat.Builder {
+ ctor public NotificationChannelGroupCompat.Builder(String);
+ method public androidx.core.app.NotificationChannelGroupCompat build();
+ method public androidx.core.app.NotificationChannelGroupCompat.Builder setDescription(String?);
+ method public androidx.core.app.NotificationChannelGroupCompat.Builder setName(CharSequence?);
+ }
+
+ public class NotificationCompat {
+ ctor @Deprecated public NotificationCompat();
+ method public static androidx.core.app.NotificationCompat.Action? getAction(android.app.Notification, int);
+ method public static int getActionCount(android.app.Notification);
+ method public static boolean getAllowSystemGeneratedContextualActions(android.app.Notification);
+ method public static boolean getAutoCancel(android.app.Notification);
+ method public static int getBadgeIconType(android.app.Notification);
+ method public static androidx.core.app.NotificationCompat.BubbleMetadata? getBubbleMetadata(android.app.Notification);
+ method public static String? getCategory(android.app.Notification);
+ method public static String? getChannelId(android.app.Notification);
+ method public static int getColor(android.app.Notification);
+ method @RequiresApi(19) public static CharSequence? getContentInfo(android.app.Notification);
+ method @RequiresApi(19) public static CharSequence? getContentText(android.app.Notification);
+ method @RequiresApi(19) public static CharSequence? getContentTitle(android.app.Notification);
+ method public static android.os.Bundle? getExtras(android.app.Notification);
+ method public static String? getGroup(android.app.Notification);
+ method public static int getGroupAlertBehavior(android.app.Notification);
+ method @RequiresApi(21) public static java.util.List<androidx.core.app.NotificationCompat.Action!> getInvisibleActions(android.app.Notification);
+ method public static boolean getLocalOnly(android.app.Notification);
+ method public static androidx.core.content.LocusIdCompat? getLocusId(android.app.Notification);
+ method public static boolean getOngoing(android.app.Notification);
+ method public static boolean getOnlyAlertOnce(android.app.Notification);
+ method public static java.util.List<androidx.core.app.Person!> getPeople(android.app.Notification);
+ method public static android.app.Notification? getPublicVersion(android.app.Notification);
+ method public static CharSequence? getSettingsText(android.app.Notification);
+ method public static String? getShortcutId(android.app.Notification);
+ method @RequiresApi(19) public static boolean getShowWhen(android.app.Notification);
+ method public static String? getSortKey(android.app.Notification);
+ method @RequiresApi(19) public static CharSequence? getSubText(android.app.Notification);
+ method public static long getTimeoutAfter(android.app.Notification);
+ method @RequiresApi(19) public static boolean getUsesChronometer(android.app.Notification);
+ method public static int getVisibility(android.app.Notification);
+ method public static boolean isGroupSummary(android.app.Notification);
+ field public static final int BADGE_ICON_LARGE = 2; // 0x2
+ field public static final int BADGE_ICON_NONE = 0; // 0x0
+ field public static final int BADGE_ICON_SMALL = 1; // 0x1
+ field public static final String CATEGORY_ALARM = "alarm";
+ field public static final String CATEGORY_CALL = "call";
+ field public static final String CATEGORY_EMAIL = "email";
+ field public static final String CATEGORY_ERROR = "err";
+ field public static final String CATEGORY_EVENT = "event";
+ field public static final String CATEGORY_LOCATION_SHARING = "location_sharing";
+ field public static final String CATEGORY_MESSAGE = "msg";
+ field public static final String CATEGORY_MISSED_CALL = "missed_call";
+ field public static final String CATEGORY_NAVIGATION = "navigation";
+ field public static final String CATEGORY_PROGRESS = "progress";
+ field public static final String CATEGORY_PROMO = "promo";
+ field public static final String CATEGORY_RECOMMENDATION = "recommendation";
+ field public static final String CATEGORY_REMINDER = "reminder";
+ field public static final String CATEGORY_SERVICE = "service";
+ field public static final String CATEGORY_SOCIAL = "social";
+ field public static final String CATEGORY_STATUS = "status";
+ field public static final String CATEGORY_STOPWATCH = "stopwatch";
+ field public static final String CATEGORY_SYSTEM = "sys";
+ field public static final String CATEGORY_TRANSPORT = "transport";
+ field public static final String CATEGORY_WORKOUT = "workout";
+ field @ColorInt public static final int COLOR_DEFAULT = 0; // 0x0
+ field public static final int DEFAULT_ALL = -1; // 0xffffffff
+ field public static final int DEFAULT_LIGHTS = 4; // 0x4
+ field public static final int DEFAULT_SOUND = 1; // 0x1
+ field public static final int DEFAULT_VIBRATE = 2; // 0x2
+ field public static final String EXTRA_AUDIO_CONTENTS_URI = "android.audioContents";
+ field public static final String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri";
+ field public static final String EXTRA_BIG_TEXT = "android.bigText";
+ field public static final String EXTRA_CHANNEL_GROUP_ID = "android.intent.extra.CHANNEL_GROUP_ID";
+ field public static final String EXTRA_CHANNEL_ID = "android.intent.extra.CHANNEL_ID";
+ field public static final String EXTRA_CHRONOMETER_COUNT_DOWN = "android.chronometerCountDown";
+ field public static final String EXTRA_COLORIZED = "android.colorized";
+ field public static final String EXTRA_COMPACT_ACTIONS = "android.compactActions";
+ field public static final String EXTRA_COMPAT_TEMPLATE = "androidx.core.app.extra.COMPAT_TEMPLATE";
+ field public static final String EXTRA_CONVERSATION_TITLE = "android.conversationTitle";
+ field public static final String EXTRA_HIDDEN_CONVERSATION_TITLE = "android.hiddenConversationTitle";
+ field public static final String EXTRA_HISTORIC_MESSAGES = "android.messages.historic";
+ field public static final String EXTRA_INFO_TEXT = "android.infoText";
+ field public static final String EXTRA_IS_GROUP_CONVERSATION = "android.isGroupConversation";
+ field public static final String EXTRA_LARGE_ICON = "android.largeIcon";
+ field public static final String EXTRA_LARGE_ICON_BIG = "android.largeIcon.big";
+ field public static final String EXTRA_MEDIA_SESSION = "android.mediaSession";
+ field public static final String EXTRA_MESSAGES = "android.messages";
+ field public static final String EXTRA_MESSAGING_STYLE_USER = "android.messagingStyleUser";
+ field public static final String EXTRA_NOTIFICATION_ID = "android.intent.extra.NOTIFICATION_ID";
+ field public static final String EXTRA_NOTIFICATION_TAG = "android.intent.extra.NOTIFICATION_TAG";
+ field @Deprecated public static final String EXTRA_PEOPLE = "android.people";
+ field public static final String EXTRA_PEOPLE_LIST = "android.people.list";
+ field public static final String EXTRA_PICTURE = "android.picture";
+ field public static final String EXTRA_PICTURE_CONTENT_DESCRIPTION = "android.pictureContentDescription";
+ field public static final String EXTRA_PROGRESS = "android.progress";
+ field public static final String EXTRA_PROGRESS_INDETERMINATE = "android.progressIndeterminate";
+ field public static final String EXTRA_PROGRESS_MAX = "android.progressMax";
+ field public static final String EXTRA_REMOTE_INPUT_HISTORY = "android.remoteInputHistory";
+ field public static final String EXTRA_SELF_DISPLAY_NAME = "android.selfDisplayName";
+ field public static final String EXTRA_SHOW_BIG_PICTURE_WHEN_COLLAPSED = "android.showBigPictureWhenCollapsed";
+ field public static final String EXTRA_SHOW_CHRONOMETER = "android.showChronometer";
+ field public static final String EXTRA_SHOW_WHEN = "android.showWhen";
+ field public static final String EXTRA_SMALL_ICON = "android.icon";
+ field public static final String EXTRA_SUB_TEXT = "android.subText";
+ field public static final String EXTRA_SUMMARY_TEXT = "android.summaryText";
+ field public static final String EXTRA_TEMPLATE = "android.template";
+ field public static final String EXTRA_TEXT = "android.text";
+ field public static final String EXTRA_TEXT_LINES = "android.textLines";
+ field public static final String EXTRA_TITLE = "android.title";
+ field public static final String EXTRA_TITLE_BIG = "android.title.big";
+ field public static final int FLAG_AUTO_CANCEL = 16; // 0x10
+ field public static final int FLAG_BUBBLE = 4096; // 0x1000
+ field public static final int FLAG_FOREGROUND_SERVICE = 64; // 0x40
+ field public static final int FLAG_GROUP_SUMMARY = 512; // 0x200
+ field @Deprecated public static final int FLAG_HIGH_PRIORITY = 128; // 0x80
+ field public static final int FLAG_INSISTENT = 4; // 0x4
+ field public static final int FLAG_LOCAL_ONLY = 256; // 0x100
+ field public static final int FLAG_NO_CLEAR = 32; // 0x20
+ field public static final int FLAG_ONGOING_EVENT = 2; // 0x2
+ field public static final int FLAG_ONLY_ALERT_ONCE = 8; // 0x8
+ field public static final int FLAG_SHOW_LIGHTS = 1; // 0x1
+ field public static final int FOREGROUND_SERVICE_DEFAULT = 0; // 0x0
+ field public static final int FOREGROUND_SERVICE_DEFERRED = 2; // 0x2
+ field public static final int FOREGROUND_SERVICE_IMMEDIATE = 1; // 0x1
+ field public static final int GROUP_ALERT_ALL = 0; // 0x0
+ field public static final int GROUP_ALERT_CHILDREN = 2; // 0x2
+ field public static final int GROUP_ALERT_SUMMARY = 1; // 0x1
+ field public static final String GROUP_KEY_SILENT = "silent";
+ field public static final String INTENT_CATEGORY_NOTIFICATION_PREFERENCES = "android.intent.category.NOTIFICATION_PREFERENCES";
+ field public static final int PRIORITY_DEFAULT = 0; // 0x0
+ field public static final int PRIORITY_HIGH = 1; // 0x1
+ field public static final int PRIORITY_LOW = -1; // 0xffffffff
+ field public static final int PRIORITY_MAX = 2; // 0x2
+ field public static final int PRIORITY_MIN = -2; // 0xfffffffe
+ field public static final int STREAM_DEFAULT = -1; // 0xffffffff
+ field public static final int VISIBILITY_PRIVATE = 0; // 0x0
+ field public static final int VISIBILITY_PUBLIC = 1; // 0x1
+ field public static final int VISIBILITY_SECRET = -1; // 0xffffffff
+ }
+
+ public static class NotificationCompat.Action {
+ ctor public NotificationCompat.Action(int, CharSequence?, android.app.PendingIntent?);
+ ctor public NotificationCompat.Action(androidx.core.graphics.drawable.IconCompat?, CharSequence?, android.app.PendingIntent?);
+ method public android.app.PendingIntent? getActionIntent();
+ method public boolean getAllowGeneratedReplies();
+ method public androidx.core.app.RemoteInput![]? getDataOnlyRemoteInputs();
+ method public android.os.Bundle getExtras();
+ method @Deprecated public int getIcon();
+ method public androidx.core.graphics.drawable.IconCompat? getIconCompat();
+ method public androidx.core.app.RemoteInput![]? getRemoteInputs();
+ method @androidx.core.app.NotificationCompat.Action.SemanticAction public int getSemanticAction();
+ method public boolean getShowsUserInterface();
+ method public CharSequence? getTitle();
+ method public boolean isAuthenticationRequired();
+ method public boolean isContextual();
+ field public static final int SEMANTIC_ACTION_ARCHIVE = 5; // 0x5
+ field public static final int SEMANTIC_ACTION_CALL = 10; // 0xa
+ field public static final int SEMANTIC_ACTION_DELETE = 4; // 0x4
+ field public static final int SEMANTIC_ACTION_MARK_AS_READ = 2; // 0x2
+ field public static final int SEMANTIC_ACTION_MARK_AS_UNREAD = 3; // 0x3
+ field public static final int SEMANTIC_ACTION_MUTE = 6; // 0x6
+ field public static final int SEMANTIC_ACTION_NONE = 0; // 0x0
+ field public static final int SEMANTIC_ACTION_REPLY = 1; // 0x1
+ field public static final int SEMANTIC_ACTION_THUMBS_DOWN = 9; // 0x9
+ field public static final int SEMANTIC_ACTION_THUMBS_UP = 8; // 0x8
+ field public static final int SEMANTIC_ACTION_UNMUTE = 7; // 0x7
+ field public android.app.PendingIntent! actionIntent;
+ field @Deprecated public int icon;
+ field public CharSequence! title;
+ }
+
+ public static final class NotificationCompat.Action.Builder {
+ ctor public NotificationCompat.Action.Builder(androidx.core.graphics.drawable.IconCompat?, CharSequence?, android.app.PendingIntent?);
+ ctor public NotificationCompat.Action.Builder(int, CharSequence?, android.app.PendingIntent?);
+ ctor public NotificationCompat.Action.Builder(androidx.core.app.NotificationCompat.Action);
+ method public androidx.core.app.NotificationCompat.Action.Builder addExtras(android.os.Bundle?);
+ method public androidx.core.app.NotificationCompat.Action.Builder addRemoteInput(androidx.core.app.RemoteInput?);
+ method public androidx.core.app.NotificationCompat.Action build();
+ method public androidx.core.app.NotificationCompat.Action.Builder extend(androidx.core.app.NotificationCompat.Action.Extender);
+ method public android.os.Bundle getExtras();
+ method public androidx.core.app.NotificationCompat.Action.Builder setAllowGeneratedReplies(boolean);
+ method public androidx.core.app.NotificationCompat.Action.Builder setAuthenticationRequired(boolean);
+ method public androidx.core.app.NotificationCompat.Action.Builder setContextual(boolean);
+ method public androidx.core.app.NotificationCompat.Action.Builder setSemanticAction(@androidx.core.app.NotificationCompat.Action.SemanticAction int);
+ method public androidx.core.app.NotificationCompat.Action.Builder setShowsUserInterface(boolean);
+ }
+
+ public static interface NotificationCompat.Action.Extender {
+ method public androidx.core.app.NotificationCompat.Action.Builder extend(androidx.core.app.NotificationCompat.Action.Builder);
+ }
+
+ @IntDef({androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_NONE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_REPLY, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_READ, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_UNREAD, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_DELETE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_ARCHIVE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_MUTE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_UNMUTE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_THUMBS_UP, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_THUMBS_DOWN, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_CALL}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationCompat.Action.SemanticAction {
+ }
+
+ public static final class NotificationCompat.Action.WearableExtender implements androidx.core.app.NotificationCompat.Action.Extender {
+ ctor public NotificationCompat.Action.WearableExtender();
+ ctor public NotificationCompat.Action.WearableExtender(androidx.core.app.NotificationCompat.Action);
+ method public androidx.core.app.NotificationCompat.Action.WearableExtender clone();
+ method public androidx.core.app.NotificationCompat.Action.Builder extend(androidx.core.app.NotificationCompat.Action.Builder);
+ method @Deprecated public CharSequence? getCancelLabel();
+ method @Deprecated public CharSequence? getConfirmLabel();
+ method public boolean getHintDisplayActionInline();
+ method public boolean getHintLaunchesActivity();
+ method @Deprecated public CharSequence? getInProgressLabel();
+ method public boolean isAvailableOffline();
+ method public androidx.core.app.NotificationCompat.Action.WearableExtender setAvailableOffline(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.Action.WearableExtender setCancelLabel(CharSequence?);
+ method @Deprecated public androidx.core.app.NotificationCompat.Action.WearableExtender setConfirmLabel(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Action.WearableExtender setHintDisplayActionInline(boolean);
+ method public androidx.core.app.NotificationCompat.Action.WearableExtender setHintLaunchesActivity(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.Action.WearableExtender setInProgressLabel(CharSequence?);
+ }
+
+ public static class NotificationCompat.BigPictureStyle extends androidx.core.app.NotificationCompat.Style {
+ ctor public NotificationCompat.BigPictureStyle();
+ ctor public NotificationCompat.BigPictureStyle(androidx.core.app.NotificationCompat.Builder?);
+ method public androidx.core.app.NotificationCompat.BigPictureStyle bigLargeIcon(android.graphics.Bitmap?);
+ method public androidx.core.app.NotificationCompat.BigPictureStyle bigPicture(android.graphics.Bitmap?);
+ method public androidx.core.app.NotificationCompat.BigPictureStyle setBigContentTitle(CharSequence?);
+ method @RequiresApi(31) public androidx.core.app.NotificationCompat.BigPictureStyle setContentDescription(CharSequence?);
+ method public androidx.core.app.NotificationCompat.BigPictureStyle setSummaryText(CharSequence?);
+ method @RequiresApi(31) public androidx.core.app.NotificationCompat.BigPictureStyle showBigPictureWhenCollapsed(boolean);
+ }
+
+ public static class NotificationCompat.BigTextStyle extends androidx.core.app.NotificationCompat.Style {
+ ctor public NotificationCompat.BigTextStyle();
+ ctor public NotificationCompat.BigTextStyle(androidx.core.app.NotificationCompat.Builder?);
+ method public androidx.core.app.NotificationCompat.BigTextStyle bigText(CharSequence?);
+ method public androidx.core.app.NotificationCompat.BigTextStyle setBigContentTitle(CharSequence?);
+ method public androidx.core.app.NotificationCompat.BigTextStyle setSummaryText(CharSequence?);
+ }
+
+ public static final class NotificationCompat.BubbleMetadata {
+ method public static androidx.core.app.NotificationCompat.BubbleMetadata? fromPlatform(android.app.Notification.BubbleMetadata?);
+ method public boolean getAutoExpandBubble();
+ method public android.app.PendingIntent? getDeleteIntent();
+ method @Dimension(unit=androidx.annotation.Dimension.DP) public int getDesiredHeight();
+ method @DimenRes public int getDesiredHeightResId();
+ method public androidx.core.graphics.drawable.IconCompat? getIcon();
+ method public android.app.PendingIntent? getIntent();
+ method public String? getShortcutId();
+ method public boolean isNotificationSuppressed();
+ method public static android.app.Notification.BubbleMetadata? toPlatform(androidx.core.app.NotificationCompat.BubbleMetadata?);
+ }
+
+ public static final class NotificationCompat.BubbleMetadata.Builder {
+ ctor @Deprecated public NotificationCompat.BubbleMetadata.Builder();
+ ctor @RequiresApi(30) public NotificationCompat.BubbleMetadata.Builder(String);
+ ctor public NotificationCompat.BubbleMetadata.Builder(android.app.PendingIntent, androidx.core.graphics.drawable.IconCompat);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata build();
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setAutoExpandBubble(boolean);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setDeleteIntent(android.app.PendingIntent?);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setDesiredHeight(@Dimension(unit=androidx.annotation.Dimension.DP) int);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setDesiredHeightResId(@DimenRes int);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setIcon(androidx.core.graphics.drawable.IconCompat);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setIntent(android.app.PendingIntent);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setSuppressNotification(boolean);
+ }
+
+ public static class NotificationCompat.Builder {
+ ctor @RequiresApi(19) public NotificationCompat.Builder(android.content.Context, android.app.Notification);
+ ctor public NotificationCompat.Builder(android.content.Context, String);
+ ctor @Deprecated public NotificationCompat.Builder(android.content.Context);
+ method public androidx.core.app.NotificationCompat.Builder addAction(int, CharSequence?, android.app.PendingIntent?);
+ method public androidx.core.app.NotificationCompat.Builder addAction(androidx.core.app.NotificationCompat.Action?);
+ method public androidx.core.app.NotificationCompat.Builder addExtras(android.os.Bundle?);
+ method @RequiresApi(21) public androidx.core.app.NotificationCompat.Builder addInvisibleAction(int, CharSequence?, android.app.PendingIntent?);
+ method @RequiresApi(21) public androidx.core.app.NotificationCompat.Builder addInvisibleAction(androidx.core.app.NotificationCompat.Action?);
+ method @Deprecated public androidx.core.app.NotificationCompat.Builder addPerson(String?);
+ method public androidx.core.app.NotificationCompat.Builder addPerson(androidx.core.app.Person?);
+ method public android.app.Notification build();
+ method public androidx.core.app.NotificationCompat.Builder clearActions();
+ method public androidx.core.app.NotificationCompat.Builder clearInvisibleActions();
+ method public androidx.core.app.NotificationCompat.Builder clearPeople();
+ method public android.widget.RemoteViews? createBigContentView();
+ method public android.widget.RemoteViews? createContentView();
+ method public android.widget.RemoteViews? createHeadsUpContentView();
+ method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Extender);
+ method public android.os.Bundle getExtras();
+ method @Deprecated public android.app.Notification getNotification();
+ method protected static CharSequence? limitCharSequenceLength(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setAllowSystemGeneratedContextualActions(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setAutoCancel(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setBadgeIconType(int);
+ method public androidx.core.app.NotificationCompat.Builder setBubbleMetadata(androidx.core.app.NotificationCompat.BubbleMetadata?);
+ method public androidx.core.app.NotificationCompat.Builder setCategory(String?);
+ method public androidx.core.app.NotificationCompat.Builder setChannelId(String);
+ method @RequiresApi(24) public androidx.core.app.NotificationCompat.Builder setChronometerCountDown(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setColor(@ColorInt int);
+ method public androidx.core.app.NotificationCompat.Builder setColorized(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setContent(android.widget.RemoteViews?);
+ method public androidx.core.app.NotificationCompat.Builder setContentInfo(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setContentIntent(android.app.PendingIntent?);
+ method public androidx.core.app.NotificationCompat.Builder setContentText(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setContentTitle(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setCustomBigContentView(android.widget.RemoteViews?);
+ method public androidx.core.app.NotificationCompat.Builder setCustomContentView(android.widget.RemoteViews?);
+ method public androidx.core.app.NotificationCompat.Builder setCustomHeadsUpContentView(android.widget.RemoteViews?);
+ method public androidx.core.app.NotificationCompat.Builder setDefaults(int);
+ method public androidx.core.app.NotificationCompat.Builder setDeleteIntent(android.app.PendingIntent?);
+ method public androidx.core.app.NotificationCompat.Builder setExtras(android.os.Bundle?);
+ method public androidx.core.app.NotificationCompat.Builder setForegroundServiceBehavior(int);
+ method public androidx.core.app.NotificationCompat.Builder setFullScreenIntent(android.app.PendingIntent?, boolean);
+ method public androidx.core.app.NotificationCompat.Builder setGroup(String?);
+ method public androidx.core.app.NotificationCompat.Builder setGroupAlertBehavior(int);
+ method public androidx.core.app.NotificationCompat.Builder setGroupSummary(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setLargeIcon(android.graphics.Bitmap?);
+ method public androidx.core.app.NotificationCompat.Builder setLights(@ColorInt int, int, int);
+ method public androidx.core.app.NotificationCompat.Builder setLocalOnly(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setLocusId(androidx.core.content.LocusIdCompat?);
+ method @Deprecated public androidx.core.app.NotificationCompat.Builder setNotificationSilent();
+ method public androidx.core.app.NotificationCompat.Builder setNumber(int);
+ method public androidx.core.app.NotificationCompat.Builder setOngoing(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setOnlyAlertOnce(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setPriority(int);
+ method public androidx.core.app.NotificationCompat.Builder setProgress(int, int, boolean);
+ method public androidx.core.app.NotificationCompat.Builder setPublicVersion(android.app.Notification?);
+ method public androidx.core.app.NotificationCompat.Builder setRemoteInputHistory(CharSequence![]?);
+ method public androidx.core.app.NotificationCompat.Builder setSettingsText(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setShortcutId(String?);
+ method public androidx.core.app.NotificationCompat.Builder setShortcutInfo(androidx.core.content.pm.ShortcutInfoCompat?);
+ method public androidx.core.app.NotificationCompat.Builder setShowWhen(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setSilent(boolean);
+ method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(androidx.core.graphics.drawable.IconCompat);
+ method public androidx.core.app.NotificationCompat.Builder setSmallIcon(int);
+ method public androidx.core.app.NotificationCompat.Builder setSmallIcon(int, int);
+ method public androidx.core.app.NotificationCompat.Builder setSortKey(String?);
+ method public androidx.core.app.NotificationCompat.Builder setSound(android.net.Uri?);
+ method public androidx.core.app.NotificationCompat.Builder setSound(android.net.Uri?, int);
+ method public androidx.core.app.NotificationCompat.Builder setStyle(androidx.core.app.NotificationCompat.Style?);
+ method public androidx.core.app.NotificationCompat.Builder setSubText(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setTicker(CharSequence?);
+ method @Deprecated public androidx.core.app.NotificationCompat.Builder setTicker(CharSequence?, android.widget.RemoteViews?);
+ method public androidx.core.app.NotificationCompat.Builder setTimeoutAfter(long);
+ method public androidx.core.app.NotificationCompat.Builder setUsesChronometer(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setVibrate(long[]?);
+ method public androidx.core.app.NotificationCompat.Builder setVisibility(int);
+ method public androidx.core.app.NotificationCompat.Builder setWhen(long);
+ field @Deprecated public java.util.ArrayList<java.lang.String!>! mPeople;
+ }
+
+ public static final class NotificationCompat.CarExtender implements androidx.core.app.NotificationCompat.Extender {
+ ctor public NotificationCompat.CarExtender();
+ ctor public NotificationCompat.CarExtender(android.app.Notification);
+ method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
+ method @ColorInt public int getColor();
+ method public android.graphics.Bitmap? getLargeIcon();
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation? getUnreadConversation();
+ method public androidx.core.app.NotificationCompat.CarExtender setColor(@ColorInt int);
+ method public androidx.core.app.NotificationCompat.CarExtender setLargeIcon(android.graphics.Bitmap?);
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender setUnreadConversation(androidx.core.app.NotificationCompat.CarExtender.UnreadConversation?);
+ }
+
+ @Deprecated public static class NotificationCompat.CarExtender.UnreadConversation {
+ method @Deprecated public long getLatestTimestamp();
+ method @Deprecated public String![]? getMessages();
+ method @Deprecated public String? getParticipant();
+ method @Deprecated public String![]? getParticipants();
+ method @Deprecated public android.app.PendingIntent? getReadPendingIntent();
+ method @Deprecated public androidx.core.app.RemoteInput? getRemoteInput();
+ method @Deprecated public android.app.PendingIntent? getReplyPendingIntent();
+ }
+
+ @Deprecated public static class NotificationCompat.CarExtender.UnreadConversation.Builder {
+ ctor @Deprecated public NotificationCompat.CarExtender.UnreadConversation.Builder(String);
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder addMessage(String?);
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation build();
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder setLatestTimestamp(long);
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder setReadPendingIntent(android.app.PendingIntent?);
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder setReplyAction(android.app.PendingIntent?, androidx.core.app.RemoteInput?);
+ }
+
+ public static class NotificationCompat.DecoratedCustomViewStyle extends androidx.core.app.NotificationCompat.Style {
+ ctor public NotificationCompat.DecoratedCustomViewStyle();
+ }
+
+ public static interface NotificationCompat.Extender {
+ method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
+ }
+
+ public static class NotificationCompat.InboxStyle extends androidx.core.app.NotificationCompat.Style {
+ ctor public NotificationCompat.InboxStyle();
+ ctor public NotificationCompat.InboxStyle(androidx.core.app.NotificationCompat.Builder?);
+ method public androidx.core.app.NotificationCompat.InboxStyle addLine(CharSequence?);
+ method public androidx.core.app.NotificationCompat.InboxStyle setBigContentTitle(CharSequence?);
+ method public androidx.core.app.NotificationCompat.InboxStyle setSummaryText(CharSequence?);
+ }
+
+ public static class NotificationCompat.MessagingStyle extends androidx.core.app.NotificationCompat.Style {
+ ctor @Deprecated public NotificationCompat.MessagingStyle(CharSequence);
+ ctor public NotificationCompat.MessagingStyle(androidx.core.app.Person);
+ method public void addCompatExtras(android.os.Bundle);
+ method public androidx.core.app.NotificationCompat.MessagingStyle addHistoricMessage(androidx.core.app.NotificationCompat.MessagingStyle.Message?);
+ method @Deprecated public androidx.core.app.NotificationCompat.MessagingStyle addMessage(CharSequence?, long, CharSequence?);
+ method public androidx.core.app.NotificationCompat.MessagingStyle addMessage(CharSequence?, long, androidx.core.app.Person?);
+ method public androidx.core.app.NotificationCompat.MessagingStyle addMessage(androidx.core.app.NotificationCompat.MessagingStyle.Message?);
+ method public static androidx.core.app.NotificationCompat.MessagingStyle? extractMessagingStyleFromNotification(android.app.Notification);
+ method public CharSequence? getConversationTitle();
+ method public java.util.List<androidx.core.app.NotificationCompat.MessagingStyle.Message!> getHistoricMessages();
+ method public java.util.List<androidx.core.app.NotificationCompat.MessagingStyle.Message!> getMessages();
+ method public androidx.core.app.Person getUser();
+ method @Deprecated public CharSequence? getUserDisplayName();
+ method public boolean isGroupConversation();
+ method public androidx.core.app.NotificationCompat.MessagingStyle setConversationTitle(CharSequence?);
+ method public androidx.core.app.NotificationCompat.MessagingStyle setGroupConversation(boolean);
+ field public static final int MAXIMUM_RETAINED_MESSAGES = 25; // 0x19
+ }
+
+ public static final class NotificationCompat.MessagingStyle.Message {
+ ctor public NotificationCompat.MessagingStyle.Message(CharSequence?, long, androidx.core.app.Person?);
+ ctor @Deprecated public NotificationCompat.MessagingStyle.Message(CharSequence?, long, CharSequence?);
+ method public String? getDataMimeType();
+ method public android.net.Uri? getDataUri();
+ method public android.os.Bundle getExtras();
+ method public androidx.core.app.Person? getPerson();
+ method @Deprecated public CharSequence? getSender();
+ method public CharSequence? getText();
+ method public long getTimestamp();
+ method public androidx.core.app.NotificationCompat.MessagingStyle.Message setData(String?, android.net.Uri?);
+ }
+
+ public abstract static class NotificationCompat.Style {
+ ctor public NotificationCompat.Style();
+ method public android.app.Notification? build();
+ method public void setBuilder(androidx.core.app.NotificationCompat.Builder?);
+ }
+
+ public static final class NotificationCompat.WearableExtender implements androidx.core.app.NotificationCompat.Extender {
+ ctor public NotificationCompat.WearableExtender();
+ ctor public NotificationCompat.WearableExtender(android.app.Notification);
+ method public androidx.core.app.NotificationCompat.WearableExtender addAction(androidx.core.app.NotificationCompat.Action);
+ method public androidx.core.app.NotificationCompat.WearableExtender addActions(java.util.List<androidx.core.app.NotificationCompat.Action!>);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender addPage(android.app.Notification);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender addPages(java.util.List<android.app.Notification!>);
+ method public androidx.core.app.NotificationCompat.WearableExtender clearActions();
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender clearPages();
+ method public androidx.core.app.NotificationCompat.WearableExtender clone();
+ method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
+ method public java.util.List<androidx.core.app.NotificationCompat.Action!> getActions();
+ method @Deprecated public android.graphics.Bitmap? getBackground();
+ method public String? getBridgeTag();
+ method public int getContentAction();
+ method @Deprecated public int getContentIcon();
+ method @Deprecated public int getContentIconGravity();
+ method public boolean getContentIntentAvailableOffline();
+ method @Deprecated public int getCustomContentHeight();
+ method @Deprecated public int getCustomSizePreset();
+ method public String? getDismissalId();
+ method @Deprecated public android.app.PendingIntent? getDisplayIntent();
+ method @Deprecated public int getGravity();
+ method @Deprecated public boolean getHintAmbientBigPicture();
+ method @Deprecated public boolean getHintAvoidBackgroundClipping();
+ method public boolean getHintContentIntentLaunchesActivity();
+ method @Deprecated public boolean getHintHideIcon();
+ method @Deprecated public int getHintScreenTimeout();
+ method @Deprecated public boolean getHintShowBackgroundOnly();
+ method @Deprecated public java.util.List<android.app.Notification!> getPages();
+ method public boolean getStartScrollBottom();
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setBackground(android.graphics.Bitmap?);
+ method public androidx.core.app.NotificationCompat.WearableExtender setBridgeTag(String?);
+ method public androidx.core.app.NotificationCompat.WearableExtender setContentAction(int);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setContentIcon(int);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setContentIconGravity(int);
+ method public androidx.core.app.NotificationCompat.WearableExtender setContentIntentAvailableOffline(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setCustomContentHeight(int);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setCustomSizePreset(int);
+ method public androidx.core.app.NotificationCompat.WearableExtender setDismissalId(String?);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setDisplayIntent(android.app.PendingIntent?);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setGravity(int);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintAmbientBigPicture(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintAvoidBackgroundClipping(boolean);
+ method public androidx.core.app.NotificationCompat.WearableExtender setHintContentIntentLaunchesActivity(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintHideIcon(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintScreenTimeout(int);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintShowBackgroundOnly(boolean);
+ method public androidx.core.app.NotificationCompat.WearableExtender setStartScrollBottom(boolean);
+ field @Deprecated public static final int SCREEN_TIMEOUT_LONG = -1; // 0xffffffff
+ field @Deprecated public static final int SCREEN_TIMEOUT_SHORT = 0; // 0x0
+ field @Deprecated public static final int SIZE_DEFAULT = 0; // 0x0
+ field @Deprecated public static final int SIZE_FULL_SCREEN = 5; // 0x5
+ field @Deprecated public static final int SIZE_LARGE = 4; // 0x4
+ field @Deprecated public static final int SIZE_MEDIUM = 3; // 0x3
+ field @Deprecated public static final int SIZE_SMALL = 2; // 0x2
+ field @Deprecated public static final int SIZE_XSMALL = 1; // 0x1
+ field public static final int UNSET_ACTION_INDEX = -1; // 0xffffffff
+ }
+
+ public final class NotificationCompatExtras {
+ field public static final String EXTRA_ACTION_EXTRAS = "android.support.actionExtras";
+ field public static final String EXTRA_GROUP_KEY = "android.support.groupKey";
+ field public static final String EXTRA_GROUP_SUMMARY = "android.support.isGroupSummary";
+ field public static final String EXTRA_LOCAL_ONLY = "android.support.localOnly";
+ field public static final String EXTRA_REMOTE_INPUTS = "android.support.remoteInputs";
+ field public static final String EXTRA_SORT_KEY = "android.support.sortKey";
+ }
+
+ public abstract class NotificationCompatSideChannelService extends android.app.Service {
+ ctor public NotificationCompatSideChannelService();
+ method public abstract void cancel(String!, int, String!);
+ method public abstract void cancelAll(String!);
+ method public abstract void notify(String!, int, String!, android.app.Notification!);
+ method public android.os.IBinder! onBind(android.content.Intent!);
+ }
+
+ public final class NotificationManagerCompat {
+ method public boolean areNotificationsEnabled();
+ method public void cancel(int);
+ method public void cancel(String?, int);
+ method public void cancelAll();
+ method public void createNotificationChannel(android.app.NotificationChannel);
+ method public void createNotificationChannel(androidx.core.app.NotificationChannelCompat);
+ method public void createNotificationChannelGroup(android.app.NotificationChannelGroup);
+ method public void createNotificationChannelGroup(androidx.core.app.NotificationChannelGroupCompat);
+ method public void createNotificationChannelGroups(java.util.List<android.app.NotificationChannelGroup!>);
+ method public void createNotificationChannelGroupsCompat(java.util.List<androidx.core.app.NotificationChannelGroupCompat!>);
+ method public void createNotificationChannels(java.util.List<android.app.NotificationChannel!>);
+ method public void createNotificationChannelsCompat(java.util.List<androidx.core.app.NotificationChannelCompat!>);
+ method public void deleteNotificationChannel(String);
+ method public void deleteNotificationChannelGroup(String);
+ method public void deleteUnlistedNotificationChannels(java.util.Collection<java.lang.String!>);
+ method public static androidx.core.app.NotificationManagerCompat from(android.content.Context);
+ method public static java.util.Set<java.lang.String!> getEnabledListenerPackages(android.content.Context);
+ method public int getImportance();
+ method public android.app.NotificationChannel? getNotificationChannel(String);
+ method public android.app.NotificationChannel? getNotificationChannel(String, String);
+ method public androidx.core.app.NotificationChannelCompat? getNotificationChannelCompat(String);
+ method public androidx.core.app.NotificationChannelCompat? getNotificationChannelCompat(String, String);
+ method public android.app.NotificationChannelGroup? getNotificationChannelGroup(String);
+ method public androidx.core.app.NotificationChannelGroupCompat? getNotificationChannelGroupCompat(String);
+ method public java.util.List<android.app.NotificationChannelGroup!> getNotificationChannelGroups();
+ method public java.util.List<androidx.core.app.NotificationChannelGroupCompat!> getNotificationChannelGroupsCompat();
+ method public java.util.List<android.app.NotificationChannel!> getNotificationChannels();
+ method public java.util.List<androidx.core.app.NotificationChannelCompat!> getNotificationChannelsCompat();
+ method public void notify(int, android.app.Notification);
+ method public void notify(String?, int, android.app.Notification);
+ field public static final String ACTION_BIND_SIDE_CHANNEL = "android.support.BIND_NOTIFICATION_SIDE_CHANNEL";
+ field public static final String EXTRA_USE_SIDE_CHANNEL = "android.support.useSideChannel";
+ field public static final int IMPORTANCE_DEFAULT = 3; // 0x3
+ field public static final int IMPORTANCE_HIGH = 4; // 0x4
+ field public static final int IMPORTANCE_LOW = 2; // 0x2
+ field public static final int IMPORTANCE_MAX = 5; // 0x5
+ field public static final int IMPORTANCE_MIN = 1; // 0x1
+ field public static final int IMPORTANCE_NONE = 0; // 0x0
+ field public static final int IMPORTANCE_UNSPECIFIED = -1000; // 0xfffffc18
+ }
+
+ public interface OnMultiWindowModeChangedProvider {
+ method public void addOnMultiWindowModeChangedListener(androidx.core.util.Consumer<androidx.core.app.MultiWindowModeChangedInfo!>);
+ method public void removeOnMultiWindowModeChangedListener(androidx.core.util.Consumer<androidx.core.app.MultiWindowModeChangedInfo!>);
+ }
+
+ public interface OnNewIntentProvider {
+ method public void addOnNewIntentListener(androidx.core.util.Consumer<android.content.Intent!>);
+ method public void removeOnNewIntentListener(androidx.core.util.Consumer<android.content.Intent!>);
+ }
+
+ public interface OnPictureInPictureModeChangedProvider {
+ method public void addOnPictureInPictureModeChangedListener(androidx.core.util.Consumer<androidx.core.app.PictureInPictureModeChangedInfo!>);
+ method public void removeOnPictureInPictureModeChangedListener(androidx.core.util.Consumer<androidx.core.app.PictureInPictureModeChangedInfo!>);
+ }
+
+ public class Person {
+ method public static androidx.core.app.Person fromBundle(android.os.Bundle);
+ method public androidx.core.graphics.drawable.IconCompat? getIcon();
+ method public String? getKey();
+ method public CharSequence? getName();
+ method public String? getUri();
+ method public boolean isBot();
+ method public boolean isImportant();
+ method public androidx.core.app.Person.Builder toBuilder();
+ method public android.os.Bundle toBundle();
+ }
+
+ public static class Person.Builder {
+ ctor public Person.Builder();
+ method public androidx.core.app.Person build();
+ method public androidx.core.app.Person.Builder setBot(boolean);
+ method public androidx.core.app.Person.Builder setIcon(androidx.core.graphics.drawable.IconCompat?);
+ method public androidx.core.app.Person.Builder setImportant(boolean);
+ method public androidx.core.app.Person.Builder setKey(String?);
+ method public androidx.core.app.Person.Builder setName(CharSequence?);
+ method public androidx.core.app.Person.Builder setUri(String?);
+ }
+
+ public final class PictureInPictureModeChangedInfo {
+ ctor public PictureInPictureModeChangedInfo(boolean);
+ ctor @RequiresApi(26) public PictureInPictureModeChangedInfo(boolean, android.content.res.Configuration);
+ method @RequiresApi(26) public android.content.res.Configuration getNewConfig();
+ method public boolean isInPictureInPictureMode();
+ }
+
+ public final class RemoteActionCompat implements androidx.versionedparcelable.VersionedParcelable {
+ ctor public RemoteActionCompat(androidx.core.graphics.drawable.IconCompat, CharSequence, CharSequence, android.app.PendingIntent);
+ ctor public RemoteActionCompat(androidx.core.app.RemoteActionCompat);
+ method @RequiresApi(26) public static androidx.core.app.RemoteActionCompat createFromRemoteAction(android.app.RemoteAction);
+ method public android.app.PendingIntent getActionIntent();
+ method public CharSequence getContentDescription();
+ method public androidx.core.graphics.drawable.IconCompat getIcon();
+ method public CharSequence getTitle();
+ method public boolean isEnabled();
+ method public void setEnabled(boolean);
+ method public void setShouldShowIcon(boolean);
+ method public boolean shouldShowIcon();
+ method @RequiresApi(26) public android.app.RemoteAction toRemoteAction();
+ }
+
+ public final class RemoteInput {
+ method public static void addDataResultToIntent(androidx.core.app.RemoteInput, android.content.Intent, java.util.Map<java.lang.String!,android.net.Uri!>);
+ method public static void addResultsToIntent(androidx.core.app.RemoteInput![], android.content.Intent, android.os.Bundle);
+ method public boolean getAllowFreeFormInput();
+ method public java.util.Set<java.lang.String!>? getAllowedDataTypes();
+ method public CharSequence![]? getChoices();
+ method public static java.util.Map<java.lang.String!,android.net.Uri!>? getDataResultsFromIntent(android.content.Intent, String);
+ method public int getEditChoicesBeforeSending();
+ method public android.os.Bundle getExtras();
+ method public CharSequence? getLabel();
+ method public String getResultKey();
+ method public static android.os.Bundle? getResultsFromIntent(android.content.Intent);
+ method public static int getResultsSource(android.content.Intent);
+ method public boolean isDataOnly();
+ method public static void setResultsSource(android.content.Intent, int);
+ field public static final int EDIT_CHOICES_BEFORE_SENDING_AUTO = 0; // 0x0
+ field public static final int EDIT_CHOICES_BEFORE_SENDING_DISABLED = 1; // 0x1
+ field public static final int EDIT_CHOICES_BEFORE_SENDING_ENABLED = 2; // 0x2
+ field public static final String EXTRA_RESULTS_DATA = "android.remoteinput.resultsData";
+ field public static final String RESULTS_CLIP_LABEL = "android.remoteinput.results";
+ field public static final int SOURCE_CHOICE = 1; // 0x1
+ field public static final int SOURCE_FREE_FORM_INPUT = 0; // 0x0
+ }
+
+ public static final class RemoteInput.Builder {
+ ctor public RemoteInput.Builder(String);
+ method public androidx.core.app.RemoteInput.Builder addExtras(android.os.Bundle);
+ method public androidx.core.app.RemoteInput build();
+ method public android.os.Bundle getExtras();
+ method public androidx.core.app.RemoteInput.Builder setAllowDataType(String, boolean);
+ method public androidx.core.app.RemoteInput.Builder setAllowFreeFormInput(boolean);
+ method public androidx.core.app.RemoteInput.Builder setChoices(CharSequence![]?);
+ method public androidx.core.app.RemoteInput.Builder setEditChoicesBeforeSending(int);
+ method public androidx.core.app.RemoteInput.Builder setLabel(CharSequence?);
+ }
+
+ public final class ServiceCompat {
+ method public static void stopForeground(android.app.Service, int);
+ field public static final int START_STICKY = 1; // 0x1
+ field public static final int STOP_FOREGROUND_DETACH = 2; // 0x2
+ field public static final int STOP_FOREGROUND_REMOVE = 1; // 0x1
+ }
+
+ public final class ShareCompat {
+ method @Deprecated public static void configureMenuItem(android.view.MenuItem, androidx.core.app.ShareCompat.IntentBuilder);
+ method @Deprecated public static void configureMenuItem(android.view.Menu, @IdRes int, androidx.core.app.ShareCompat.IntentBuilder);
+ method public static android.content.ComponentName? getCallingActivity(android.app.Activity);
+ method public static String? getCallingPackage(android.app.Activity);
+ field public static final String EXTRA_CALLING_ACTIVITY = "androidx.core.app.EXTRA_CALLING_ACTIVITY";
+ field public static final String EXTRA_CALLING_ACTIVITY_INTEROP = "android.support.v4.app.EXTRA_CALLING_ACTIVITY";
+ field public static final String EXTRA_CALLING_PACKAGE = "androidx.core.app.EXTRA_CALLING_PACKAGE";
+ field public static final String EXTRA_CALLING_PACKAGE_INTEROP = "android.support.v4.app.EXTRA_CALLING_PACKAGE";
+ }
+
+ public static class ShareCompat.IntentBuilder {
+ ctor public ShareCompat.IntentBuilder(android.content.Context);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailBcc(String);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailBcc(String![]);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailCc(String);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailCc(String![]);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailTo(String);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailTo(String![]);
+ method public androidx.core.app.ShareCompat.IntentBuilder addStream(android.net.Uri);
+ method public android.content.Intent createChooserIntent();
+ method @Deprecated public static androidx.core.app.ShareCompat.IntentBuilder from(android.app.Activity);
+ method public android.content.Intent getIntent();
+ method public androidx.core.app.ShareCompat.IntentBuilder setChooserTitle(CharSequence?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setChooserTitle(@StringRes int);
+ method public androidx.core.app.ShareCompat.IntentBuilder setEmailBcc(String![]?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setEmailCc(String![]?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setEmailTo(String![]?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setHtmlText(String?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setStream(android.net.Uri?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setSubject(String?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setText(CharSequence?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setType(String?);
+ method public void startChooser();
+ }
+
+ public static class ShareCompat.IntentReader {
+ ctor public ShareCompat.IntentReader(android.app.Activity);
+ ctor public ShareCompat.IntentReader(android.content.Context, android.content.Intent);
+ method @Deprecated public static androidx.core.app.ShareCompat.IntentReader from(android.app.Activity);
+ method public android.content.ComponentName? getCallingActivity();
+ method public android.graphics.drawable.Drawable? getCallingActivityIcon();
+ method public android.graphics.drawable.Drawable? getCallingApplicationIcon();
+ method public CharSequence? getCallingApplicationLabel();
+ method public String? getCallingPackage();
+ method public String![]? getEmailBcc();
+ method public String![]? getEmailCc();
+ method public String![]? getEmailTo();
+ method public String? getHtmlText();
+ method public android.net.Uri? getStream();
+ method public android.net.Uri? getStream(int);
+ method public int getStreamCount();
+ method public String? getSubject();
+ method public CharSequence? getText();
+ method public String? getType();
+ method public boolean isMultipleShare();
+ method public boolean isShareIntent();
+ method public boolean isSingleShare();
+ }
+
+ public abstract class SharedElementCallback {
+ ctor public SharedElementCallback();
+ method public android.os.Parcelable! onCaptureSharedElementSnapshot(android.view.View!, android.graphics.Matrix!, android.graphics.RectF!);
+ method public android.view.View! onCreateSnapshotView(android.content.Context!, android.os.Parcelable!);
+ method public void onMapSharedElements(java.util.List<java.lang.String!>!, java.util.Map<java.lang.String!,android.view.View!>!);
+ method public void onRejectSharedElements(java.util.List<android.view.View!>!);
+ method public void onSharedElementEnd(java.util.List<java.lang.String!>!, java.util.List<android.view.View!>!, java.util.List<android.view.View!>!);
+ method public void onSharedElementStart(java.util.List<java.lang.String!>!, java.util.List<android.view.View!>!, java.util.List<android.view.View!>!);
+ method public void onSharedElementsArrived(java.util.List<java.lang.String!>!, java.util.List<android.view.View!>!, androidx.core.app.SharedElementCallback.OnSharedElementsReadyListener!);
+ }
+
+ public static interface SharedElementCallback.OnSharedElementsReadyListener {
+ method public void onSharedElementsReady();
+ }
+
+ public final class TaskStackBuilder implements java.lang.Iterable<android.content.Intent> {
+ method public androidx.core.app.TaskStackBuilder addNextIntent(android.content.Intent);
+ method public androidx.core.app.TaskStackBuilder addNextIntentWithParentStack(android.content.Intent);
+ method public androidx.core.app.TaskStackBuilder addParentStack(android.app.Activity);
+ method public androidx.core.app.TaskStackBuilder addParentStack(Class<?>);
+ method public androidx.core.app.TaskStackBuilder addParentStack(android.content.ComponentName);
+ method public static androidx.core.app.TaskStackBuilder create(android.content.Context);
+ method public android.content.Intent? editIntentAt(int);
+ method @Deprecated public static androidx.core.app.TaskStackBuilder! from(android.content.Context!);
+ method @Deprecated public android.content.Intent! getIntent(int);
+ method public int getIntentCount();
+ method public android.content.Intent![] getIntents();
+ method public android.app.PendingIntent? getPendingIntent(int, int);
+ method public android.app.PendingIntent? getPendingIntent(int, int, android.os.Bundle?);
+ method @Deprecated public java.util.Iterator<android.content.Intent!> iterator();
+ method public void startActivities();
+ method public void startActivities(android.os.Bundle?);
+ }
+
+ public static interface TaskStackBuilder.SupportParentable {
+ method public android.content.Intent? getSupportParentActivityIntent();
+ }
+
+}
+
+package androidx.core.content {
+
+ public final class ContentProviderCompat {
+ method public static android.content.Context requireContext(android.content.ContentProvider);
+ }
+
+ public final class ContentResolverCompat {
+ method public static android.database.Cursor? query(android.content.ContentResolver, android.net.Uri, String![]?, String?, String![]?, String?, androidx.core.os.CancellationSignal?);
+ }
+
+ public class ContextCompat {
+ ctor protected ContextCompat();
+ method public static int checkSelfPermission(android.content.Context, String);
+ method public static android.content.Context? createDeviceProtectedStorageContext(android.content.Context);
+ method public static String? getAttributionTag(android.content.Context);
+ method public static java.io.File getCodeCacheDir(android.content.Context);
+ method @ColorInt public static int getColor(android.content.Context, @ColorRes int);
+ method public static android.content.res.ColorStateList? getColorStateList(android.content.Context, @ColorRes int);
+ method public static java.io.File? getDataDir(android.content.Context);
+ method public static android.graphics.drawable.Drawable? getDrawable(android.content.Context, @DrawableRes int);
+ method public static java.io.File![] getExternalCacheDirs(android.content.Context);
+ method public static java.io.File![] getExternalFilesDirs(android.content.Context, String?);
+ method public static java.util.concurrent.Executor getMainExecutor(android.content.Context);
+ method public static java.io.File? getNoBackupFilesDir(android.content.Context);
+ method public static java.io.File![] getObbDirs(android.content.Context);
+ method public static <T> T? getSystemService(android.content.Context, Class<T!>);
+ method public static String? getSystemServiceName(android.content.Context, Class<?>);
+ method public static boolean isDeviceProtectedStorage(android.content.Context);
+ method public static boolean startActivities(android.content.Context, android.content.Intent![]);
+ method public static boolean startActivities(android.content.Context, android.content.Intent![], android.os.Bundle?);
+ method public static void startActivity(android.content.Context, android.content.Intent, android.os.Bundle?);
+ method public static void startForegroundService(android.content.Context, android.content.Intent);
+ }
+
+ public class FileProvider extends android.content.ContentProvider {
+ ctor public FileProvider();
+ ctor protected FileProvider(@XmlRes int);
+ method public int delete(android.net.Uri, String?, String![]?);
+ method public String? getType(android.net.Uri);
+ method public static android.net.Uri! getUriForFile(android.content.Context, String, java.io.File);
+ method public static android.net.Uri getUriForFile(android.content.Context, String, java.io.File, String);
+ method public android.net.Uri! insert(android.net.Uri, android.content.ContentValues);
+ method public boolean onCreate();
+ method public android.database.Cursor query(android.net.Uri, String![]?, String?, String![]?, String?);
+ method public int update(android.net.Uri, android.content.ContentValues, String?, String![]?);
+ }
+
+ public final class IntentCompat {
+ method public static android.content.Intent createManageUnusedAppRestrictionsIntent(android.content.Context, String);
+ method public static android.content.Intent makeMainSelectorActivity(String, String);
+ field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
+ field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
+ field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
+ field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+ field public static final String EXTRA_TIME = "android.intent.extra.TIME";
+ }
+
+ public final class LocusIdCompat {
+ ctor public LocusIdCompat(String);
+ method public String getId();
+ method @RequiresApi(29) public android.content.LocusId toLocusId();
+ method @RequiresApi(29) public static androidx.core.content.LocusIdCompat toLocusIdCompat(android.content.LocusId);
+ }
+
+ public final class MimeTypeFilter {
+ method public static boolean matches(String?, String);
+ method public static String? matches(String?, String![]);
+ method public static String? matches(String![]?, String);
+ method public static String![] matchesMany(String![]?, String);
+ }
+
+ public interface OnConfigurationChangedProvider {
+ method public void addOnConfigurationChangedListener(androidx.core.util.Consumer<android.content.res.Configuration!>);
+ method public void removeOnConfigurationChangedListener(androidx.core.util.Consumer<android.content.res.Configuration!>);
+ }
+
+ public interface OnTrimMemoryProvider {
+ method public void addOnTrimMemoryListener(androidx.core.util.Consumer<java.lang.Integer!>);
+ method public void removeOnTrimMemoryListener(androidx.core.util.Consumer<java.lang.Integer!>);
+ }
+
+ public final class PackageManagerCompat {
+ method public static com.google.common.util.concurrent.ListenableFuture<java.lang.Integer!> getUnusedAppRestrictionsStatus(android.content.Context);
+ field public static final String ACTION_PERMISSION_REVOCATION_SETTINGS = "android.intent.action.AUTO_REVOKE_PERMISSIONS";
+ }
+
+ public final class PermissionChecker {
+ method public static int checkCallingOrSelfPermission(android.content.Context, String);
+ method public static int checkCallingPermission(android.content.Context, String, String?);
+ method public static int checkPermission(android.content.Context, String, int, int, String?);
+ method public static int checkSelfPermission(android.content.Context, String);
+ field public static final int PERMISSION_DENIED = -1; // 0xffffffff
+ field public static final int PERMISSION_DENIED_APP_OP = -2; // 0xfffffffe
+ field public static final int PERMISSION_GRANTED = 0; // 0x0
+ }
+
+ @Deprecated public final class SharedPreferencesCompat {
+ }
+
+ @Deprecated public static final class SharedPreferencesCompat.EditorCompat {
+ method @Deprecated public void apply(android.content.SharedPreferences.Editor);
+ method @Deprecated public static androidx.core.content.SharedPreferencesCompat.EditorCompat! getInstance();
+ }
+
+ public class UnusedAppRestrictionsBackportCallback {
+ method public void onResult(boolean, boolean) throws android.os.RemoteException;
+ }
+
+ public abstract class UnusedAppRestrictionsBackportService extends android.app.Service {
+ ctor public UnusedAppRestrictionsBackportService();
+ method protected abstract void isPermissionRevocationEnabled(androidx.core.content.UnusedAppRestrictionsBackportCallback);
+ method public android.os.IBinder? onBind(android.content.Intent?);
+ field public static final String ACTION_UNUSED_APP_RESTRICTIONS_BACKPORT_CONNECTION = "android.support.unusedapprestrictions.action.CustomUnusedAppRestrictionsBackportService";
+ }
+
+ public final class UnusedAppRestrictionsConstants {
+ field public static final int API_30 = 4; // 0x4
+ field public static final int API_30_BACKPORT = 3; // 0x3
+ field public static final int API_31 = 5; // 0x5
+ field public static final int DISABLED = 2; // 0x2
+ field public static final int ERROR = 0; // 0x0
+ field public static final int FEATURE_NOT_AVAILABLE = 1; // 0x1
+ }
+
+}
+
+package androidx.core.content.pm {
+
+ @Deprecated public final class ActivityInfoCompat {
+ field @Deprecated public static final int CONFIG_UI_MODE = 512; // 0x200
+ }
+
+ public final class PackageInfoCompat {
+ method public static long getLongVersionCode(android.content.pm.PackageInfo);
+ method public static java.util.List<android.content.pm.Signature!> getSignatures(android.content.pm.PackageManager, String) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public static boolean hasSignatures(android.content.pm.PackageManager, String, @Size(min=1) java.util.Map<byte[]!,java.lang.Integer!>, boolean) throws android.content.pm.PackageManager.NameNotFoundException;
+ }
+
+ public final class PermissionInfoCompat {
+ method public static int getProtection(android.content.pm.PermissionInfo);
+ method public static int getProtectionFlags(android.content.pm.PermissionInfo);
+ }
+
+ public class ShortcutInfoCompat {
+ method public android.content.ComponentName? getActivity();
+ method public java.util.Set<java.lang.String!>? getCategories();
+ method public CharSequence? getDisabledMessage();
+ method public int getDisabledReason();
+ method public int getExcludedFromSurfaces();
+ method public android.os.PersistableBundle? getExtras();
+ method public String getId();
+ method public android.content.Intent getIntent();
+ method public android.content.Intent![] getIntents();
+ method public long getLastChangedTimestamp();
+ method public androidx.core.content.LocusIdCompat? getLocusId();
+ method public CharSequence? getLongLabel();
+ method public String getPackage();
+ method public int getRank();
+ method public CharSequence getShortLabel();
+ method public android.os.UserHandle? getUserHandle();
+ method public boolean hasKeyFieldsOnly();
+ method public boolean isCached();
+ method public boolean isDeclaredInManifest();
+ method public boolean isDynamic();
+ method public boolean isEnabled();
+ method public boolean isExcludedFromSurfaces(int);
+ method public boolean isImmutable();
+ method public boolean isPinned();
+ method @RequiresApi(25) public android.content.pm.ShortcutInfo! toShortcutInfo();
+ field public static final int SURFACE_LAUNCHER = 1; // 0x1
+ }
+
+ public static class ShortcutInfoCompat.Builder {
+ ctor public ShortcutInfoCompat.Builder(android.content.Context, String);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder addCapabilityBinding(String);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder addCapabilityBinding(String, String, java.util.List<java.lang.String!>);
+ method public androidx.core.content.pm.ShortcutInfoCompat build();
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setActivity(android.content.ComponentName);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setAlwaysBadged();
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setCategories(java.util.Set<java.lang.String!>);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setDisabledMessage(CharSequence);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setExcludedFromSurfaces(int);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setExtras(android.os.PersistableBundle);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIcon(androidx.core.graphics.drawable.IconCompat!);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIntent(android.content.Intent);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIntents(android.content.Intent![]);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIsConversation();
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setLocusId(androidx.core.content.LocusIdCompat?);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setLongLabel(CharSequence);
+ method @Deprecated public androidx.core.content.pm.ShortcutInfoCompat.Builder setLongLived();
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setLongLived(boolean);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setPerson(androidx.core.app.Person);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setPersons(androidx.core.app.Person![]);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setRank(int);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setShortLabel(CharSequence);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setSliceUri(android.net.Uri);
+ }
+
+ public class ShortcutManagerCompat {
+ method public static boolean addDynamicShortcuts(android.content.Context, java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+ method public static android.content.Intent createShortcutResultIntent(android.content.Context, androidx.core.content.pm.ShortcutInfoCompat);
+ method public static void disableShortcuts(android.content.Context, java.util.List<java.lang.String!>, CharSequence?);
+ method public static void enableShortcuts(android.content.Context, java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+ method public static java.util.List<androidx.core.content.pm.ShortcutInfoCompat!> getDynamicShortcuts(android.content.Context);
+ method public static int getIconMaxHeight(android.content.Context);
+ method public static int getIconMaxWidth(android.content.Context);
+ method public static int getMaxShortcutCountPerActivity(android.content.Context);
+ method public static java.util.List<androidx.core.content.pm.ShortcutInfoCompat!> getShortcuts(android.content.Context, int);
+ method public static boolean isRateLimitingActive(android.content.Context);
+ method public static boolean isRequestPinShortcutSupported(android.content.Context);
+ method public static boolean pushDynamicShortcut(android.content.Context, androidx.core.content.pm.ShortcutInfoCompat);
+ method public static void removeAllDynamicShortcuts(android.content.Context);
+ method public static void removeDynamicShortcuts(android.content.Context, java.util.List<java.lang.String!>);
+ method public static void removeLongLivedShortcuts(android.content.Context, java.util.List<java.lang.String!>);
+ method public static void reportShortcutUsed(android.content.Context, String);
+ method public static boolean requestPinShortcut(android.content.Context, androidx.core.content.pm.ShortcutInfoCompat, android.content.IntentSender?);
+ method public static boolean setDynamicShortcuts(android.content.Context, java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+ method public static boolean updateShortcuts(android.content.Context, java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+ field public static final String EXTRA_SHORTCUT_ID = "android.intent.extra.shortcut.ID";
+ field public static final int FLAG_MATCH_CACHED = 8; // 0x8
+ field public static final int FLAG_MATCH_DYNAMIC = 2; // 0x2
+ field public static final int FLAG_MATCH_MANIFEST = 1; // 0x1
+ field public static final int FLAG_MATCH_PINNED = 4; // 0x4
+ }
+
+}
+
+package androidx.core.content.res {
+
+ public final class ConfigurationHelper {
+ method public static int getDensityDpi(android.content.res.Resources);
+ }
+
+ public final class ResourcesCompat {
+ method public static void clearCachesForTheme(android.content.res.Resources.Theme);
+ method public static android.graphics.Typeface? getCachedFont(android.content.Context, @FontRes int) throws android.content.res.Resources.NotFoundException;
+ method @ColorInt public static int getColor(android.content.res.Resources, @ColorRes int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+ method public static android.content.res.ColorStateList? getColorStateList(android.content.res.Resources, @ColorRes int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+ method public static android.graphics.drawable.Drawable? getDrawable(android.content.res.Resources, @DrawableRes int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+ method public static android.graphics.drawable.Drawable? getDrawableForDensity(android.content.res.Resources, @DrawableRes int, int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+ method public static float getFloat(android.content.res.Resources, @DimenRes int);
+ method public static android.graphics.Typeface? getFont(android.content.Context, @FontRes int) throws android.content.res.Resources.NotFoundException;
+ method public static void getFont(android.content.Context, @FontRes int, androidx.core.content.res.ResourcesCompat.FontCallback, android.os.Handler?) throws android.content.res.Resources.NotFoundException;
+ field @AnyRes public static final int ID_NULL = 0; // 0x0
+ }
+
+ public abstract static class ResourcesCompat.FontCallback {
+ ctor public ResourcesCompat.FontCallback();
+ method public abstract void onFontRetrievalFailed(int);
+ method public abstract void onFontRetrieved(android.graphics.Typeface);
+ }
+
+ public static final class ResourcesCompat.ThemeCompat {
+ method public static void rebase(android.content.res.Resources.Theme);
+ }
+
+}
+
+package androidx.core.database {
+
+ public final class CursorWindowCompat {
+ method public static android.database.CursorWindow create(String?, long);
+ }
+
+ @Deprecated public final class DatabaseUtilsCompat {
+ method @Deprecated public static String![]! appendSelectionArgs(String![]!, String![]!);
+ method @Deprecated public static String! concatenateWhere(String!, String!);
+ }
+
+}
+
+package androidx.core.database.sqlite {
+
+ public final class SQLiteCursorCompat {
+ method public static void setFillWindowForwardOnly(android.database.sqlite.SQLiteCursor, boolean);
+ }
+
+}
+
+package androidx.core.graphics {
+
+ public final class BitmapCompat {
+ method public static android.graphics.Bitmap createScaledBitmap(android.graphics.Bitmap, int, int, android.graphics.Rect?, boolean);
+ method public static int getAllocationByteCount(android.graphics.Bitmap);
+ method public static boolean hasMipMap(android.graphics.Bitmap);
+ method public static void setHasMipMap(android.graphics.Bitmap, boolean);
+ }
+
+ public class BlendModeColorFilterCompat {
+ method public static android.graphics.ColorFilter? createBlendModeColorFilterCompat(int, androidx.core.graphics.BlendModeCompat);
+ }
+
+ public enum BlendModeCompat {
+ enum_constant public static final androidx.core.graphics.BlendModeCompat CLEAR;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat COLOR;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat COLOR_BURN;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat COLOR_DODGE;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DARKEN;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat DIFFERENCE;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DST;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DST_ATOP;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DST_IN;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DST_OUT;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DST_OVER;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat EXCLUSION;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat HARD_LIGHT;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat HUE;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat LIGHTEN;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat LUMINOSITY;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat MODULATE;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat MULTIPLY;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat OVERLAY;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat PLUS;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat SATURATION;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SCREEN;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat SOFT_LIGHT;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SRC;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SRC_ATOP;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SRC_IN;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SRC_OUT;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SRC_OVER;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat XOR;
+ }
+
+ public final class ColorUtils {
+ method @ColorInt public static int HSLToColor(float[]);
+ method @ColorInt public static int LABToColor(@FloatRange(from=0.0f, to=100) double, @FloatRange(from=0xffffff80, to=127) double, @FloatRange(from=0xffffff80, to=127) double);
+ method public static void LABToXYZ(@FloatRange(from=0.0f, to=100) double, @FloatRange(from=0xffffff80, to=127) double, @FloatRange(from=0xffffff80, to=127) double, double[]);
+ method public static void RGBToHSL(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, float[]);
+ method public static void RGBToLAB(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, double[]);
+ method public static void RGBToXYZ(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, double[]);
+ method @ColorInt public static int XYZToColor(@FloatRange(from=0.0f, to=95.047) double, @FloatRange(from=0.0f, to=0x64) double, @FloatRange(from=0.0f, to=108.883) double);
+ method public static void XYZToLAB(@FloatRange(from=0.0f, to=95.047) double, @FloatRange(from=0.0f, to=0x64) double, @FloatRange(from=0.0f, to=108.883) double, double[]);
+ method @ColorInt public static int blendARGB(@ColorInt int, @ColorInt int, @FloatRange(from=0.0, to=1.0) float);
+ method public static void blendHSL(float[], float[], @FloatRange(from=0.0, to=1.0) float, float[]);
+ method public static void blendLAB(double[], double[], @FloatRange(from=0.0, to=1.0) double, double[]);
+ method public static double calculateContrast(@ColorInt int, @ColorInt int);
+ method @FloatRange(from=0.0, to=1.0) public static double calculateLuminance(@ColorInt int);
+ method public static int calculateMinimumAlpha(@ColorInt int, @ColorInt int, float);
+ method public static void colorToHSL(@ColorInt int, float[]);
+ method public static void colorToLAB(@ColorInt int, double[]);
+ method public static void colorToXYZ(@ColorInt int, double[]);
+ method public static int compositeColors(@ColorInt int, @ColorInt int);
+ method @RequiresApi(26) public static android.graphics.Color compositeColors(android.graphics.Color, android.graphics.Color);
+ method public static double distanceEuclidean(double[], double[]);
+ method @ColorInt public static int setAlphaComponent(@ColorInt int, @IntRange(from=0, to=255) int);
+ }
+
+ public final class Insets {
+ method public static androidx.core.graphics.Insets add(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+ method public static androidx.core.graphics.Insets max(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+ method public static androidx.core.graphics.Insets min(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+ method public static androidx.core.graphics.Insets of(int, int, int, int);
+ method public static androidx.core.graphics.Insets of(android.graphics.Rect);
+ method public static androidx.core.graphics.Insets subtract(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+ method @RequiresApi(api=29) public static androidx.core.graphics.Insets toCompatInsets(android.graphics.Insets);
+ method @RequiresApi(29) public android.graphics.Insets toPlatformInsets();
+ field public static final androidx.core.graphics.Insets NONE;
+ field public final int bottom;
+ field public final int left;
+ field public final int right;
+ field public final int top;
+ }
+
+ public final class PaintCompat {
+ method public static boolean hasGlyph(android.graphics.Paint, String);
+ method public static boolean setBlendMode(android.graphics.Paint, androidx.core.graphics.BlendModeCompat?);
+ }
+
+ public final class PathSegment {
+ ctor public PathSegment(android.graphics.PointF, float, android.graphics.PointF, float);
+ method public android.graphics.PointF getEnd();
+ method public float getEndFraction();
+ method public android.graphics.PointF getStart();
+ method public float getStartFraction();
+ }
+
+ public final class PathUtils {
+ method @RequiresApi(26) public static java.util.Collection<androidx.core.graphics.PathSegment!> flatten(android.graphics.Path);
+ method @RequiresApi(26) public static java.util.Collection<androidx.core.graphics.PathSegment!> flatten(android.graphics.Path, @FloatRange(from=0) float);
+ }
+
+ public class TypefaceCompat {
+ method public static android.graphics.Typeface create(android.content.Context, android.graphics.Typeface?, int);
+ }
+
+}
+
+package androidx.core.graphics.drawable {
+
+ public final class DrawableCompat {
+ method public static void applyTheme(android.graphics.drawable.Drawable, android.content.res.Resources.Theme);
+ method public static boolean canApplyTheme(android.graphics.drawable.Drawable);
+ method public static void clearColorFilter(android.graphics.drawable.Drawable);
+ method public static int getAlpha(android.graphics.drawable.Drawable);
+ method public static android.graphics.ColorFilter? getColorFilter(android.graphics.drawable.Drawable);
+ method public static int getLayoutDirection(android.graphics.drawable.Drawable);
+ method public static void inflate(android.graphics.drawable.Drawable, android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme?) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+ method public static boolean isAutoMirrored(android.graphics.drawable.Drawable);
+ method @Deprecated public static void jumpToCurrentState(android.graphics.drawable.Drawable);
+ method public static void setAutoMirrored(android.graphics.drawable.Drawable, boolean);
+ method public static void setHotspot(android.graphics.drawable.Drawable, float, float);
+ method public static void setHotspotBounds(android.graphics.drawable.Drawable, int, int, int, int);
+ method public static boolean setLayoutDirection(android.graphics.drawable.Drawable, int);
+ method public static void setTint(android.graphics.drawable.Drawable, @ColorInt int);
+ method public static void setTintList(android.graphics.drawable.Drawable, android.content.res.ColorStateList?);
+ method public static void setTintMode(android.graphics.drawable.Drawable, android.graphics.PorterDuff.Mode);
+ method public static <T extends android.graphics.drawable.Drawable> T! unwrap(android.graphics.drawable.Drawable);
+ method public static android.graphics.drawable.Drawable wrap(android.graphics.drawable.Drawable);
+ }
+
+ public class IconCompat implements androidx.versionedparcelable.VersionedParcelable {
+ method public static androidx.core.graphics.drawable.IconCompat? createFromBundle(android.os.Bundle);
+ method @RequiresApi(23) public static androidx.core.graphics.drawable.IconCompat? createFromIcon(android.content.Context, android.graphics.drawable.Icon);
+ method public static androidx.core.graphics.drawable.IconCompat createWithAdaptiveBitmap(android.graphics.Bitmap);
+ method public static androidx.core.graphics.drawable.IconCompat createWithAdaptiveBitmapContentUri(String);
+ method public static androidx.core.graphics.drawable.IconCompat createWithAdaptiveBitmapContentUri(android.net.Uri);
+ method public static androidx.core.graphics.drawable.IconCompat createWithBitmap(android.graphics.Bitmap);
+ method public static androidx.core.graphics.drawable.IconCompat createWithContentUri(String);
+ method public static androidx.core.graphics.drawable.IconCompat createWithContentUri(android.net.Uri);
+ method public static androidx.core.graphics.drawable.IconCompat createWithData(byte[], int, int);
+ method public static androidx.core.graphics.drawable.IconCompat createWithResource(android.content.Context, @DrawableRes int);
+ method @DrawableRes public int getResId();
+ method public String getResPackage();
+ method public int getType();
+ method public android.net.Uri getUri();
+ method public android.graphics.drawable.Drawable? loadDrawable(android.content.Context);
+ method public void onPostParceling();
+ method public void onPreParceling(boolean);
+ method public androidx.core.graphics.drawable.IconCompat setTint(@ColorInt int);
+ method public androidx.core.graphics.drawable.IconCompat setTintList(android.content.res.ColorStateList?);
+ method public androidx.core.graphics.drawable.IconCompat setTintMode(android.graphics.PorterDuff.Mode?);
+ method public android.os.Bundle toBundle();
+ method @Deprecated @RequiresApi(23) public android.graphics.drawable.Icon toIcon();
+ method @RequiresApi(23) public android.graphics.drawable.Icon toIcon(android.content.Context?);
+ field public static final int TYPE_ADAPTIVE_BITMAP = 5; // 0x5
+ field public static final int TYPE_BITMAP = 1; // 0x1
+ field public static final int TYPE_DATA = 3; // 0x3
+ field public static final int TYPE_RESOURCE = 2; // 0x2
+ field public static final int TYPE_UNKNOWN = -1; // 0xffffffff
+ field public static final int TYPE_URI = 4; // 0x4
+ field public static final int TYPE_URI_ADAPTIVE_BITMAP = 6; // 0x6
+ }
+
+ public abstract class RoundedBitmapDrawable extends android.graphics.drawable.Drawable {
+ method public void draw(android.graphics.Canvas);
+ method public final android.graphics.Bitmap? getBitmap();
+ method public float getCornerRadius();
+ method public int getGravity();
+ method public int getOpacity();
+ method public final android.graphics.Paint getPaint();
+ method public boolean hasAntiAlias();
+ method public boolean hasMipMap();
+ method public boolean isCircular();
+ method public void setAlpha(int);
+ method public void setAntiAlias(boolean);
+ method public void setCircular(boolean);
+ method public void setColorFilter(android.graphics.ColorFilter!);
+ method public void setCornerRadius(float);
+ method public void setDither(boolean);
+ method public void setGravity(int);
+ method public void setMipMap(boolean);
+ method public void setTargetDensity(android.graphics.Canvas);
+ method public void setTargetDensity(android.util.DisplayMetrics);
+ method public void setTargetDensity(int);
+ }
+
+ public final class RoundedBitmapDrawableFactory {
+ method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, android.graphics.Bitmap?);
+ method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, String);
+ method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, java.io.InputStream);
+ }
+
+}
+
+package androidx.core.hardware.display {
+
+ public final class DisplayManagerCompat {
+ method public android.view.Display? getDisplay(int);
+ method public android.view.Display![] getDisplays();
+ method public android.view.Display![] getDisplays(String?);
+ method public static androidx.core.hardware.display.DisplayManagerCompat getInstance(android.content.Context);
+ field public static final String DISPLAY_CATEGORY_PRESENTATION = "android.hardware.display.category.PRESENTATION";
+ }
+
+}
+
+package androidx.core.hardware.fingerprint {
+
+ @Deprecated public class FingerprintManagerCompat {
+ method @Deprecated @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public void authenticate(androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject?, int, androidx.core.os.CancellationSignal?, androidx.core.hardware.fingerprint.FingerprintManagerCompat.AuthenticationCallback, android.os.Handler?);
+ method @Deprecated public static androidx.core.hardware.fingerprint.FingerprintManagerCompat from(android.content.Context);
+ method @Deprecated @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public boolean hasEnrolledFingerprints();
+ method @Deprecated @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public boolean isHardwareDetected();
+ }
+
+ @Deprecated public abstract static class FingerprintManagerCompat.AuthenticationCallback {
+ ctor @Deprecated public FingerprintManagerCompat.AuthenticationCallback();
+ method @Deprecated public void onAuthenticationError(int, CharSequence!);
+ method @Deprecated public void onAuthenticationFailed();
+ method @Deprecated public void onAuthenticationHelp(int, CharSequence!);
+ method @Deprecated public void onAuthenticationSucceeded(androidx.core.hardware.fingerprint.FingerprintManagerCompat.AuthenticationResult!);
+ }
+
+ @Deprecated public static final class FingerprintManagerCompat.AuthenticationResult {
+ ctor @Deprecated public FingerprintManagerCompat.AuthenticationResult(androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject!);
+ method @Deprecated public androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject! getCryptoObject();
+ }
+
+ @Deprecated public static class FingerprintManagerCompat.CryptoObject {
+ ctor @Deprecated public FingerprintManagerCompat.CryptoObject(java.security.Signature);
+ ctor @Deprecated public FingerprintManagerCompat.CryptoObject(javax.crypto.Cipher);
+ ctor @Deprecated public FingerprintManagerCompat.CryptoObject(javax.crypto.Mac);
+ method @Deprecated public javax.crypto.Cipher? getCipher();
+ method @Deprecated public javax.crypto.Mac? getMac();
+ method @Deprecated public java.security.Signature? getSignature();
+ }
+
+}
+
+package androidx.core.location {
+
+ public abstract class GnssStatusCompat {
+ method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+ method @FloatRange(from=0, to=63) public abstract float getBasebandCn0DbHz(@IntRange(from=0) int);
+ method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+ method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+ method public abstract int getConstellationType(@IntRange(from=0) int);
+ method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+ method @IntRange(from=0) public abstract int getSatelliteCount();
+ method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+ method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+ method public abstract boolean hasBasebandCn0DbHz(@IntRange(from=0) int);
+ method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+ method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+ method public abstract boolean usedInFix(@IntRange(from=0) int);
+ method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+ method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+ field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+ field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+ field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+ field public static final int CONSTELLATION_GPS = 1; // 0x1
+ field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+ field public static final int CONSTELLATION_QZSS = 4; // 0x4
+ field public static final int CONSTELLATION_SBAS = 2; // 0x2
+ field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+ }
+
+ public abstract static class GnssStatusCompat.Callback {
+ ctor public GnssStatusCompat.Callback();
+ method public void onFirstFix(@IntRange(from=0) int);
+ method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+ method public void onStarted();
+ method public void onStopped();
+ }
+
+ public final class LocationCompat {
+ method public static float getBearingAccuracyDegrees(android.location.Location);
+ method public static long getElapsedRealtimeMillis(android.location.Location);
+ method public static long getElapsedRealtimeNanos(android.location.Location);
+ method public static float getSpeedAccuracyMetersPerSecond(android.location.Location);
+ method public static float getVerticalAccuracyMeters(android.location.Location);
+ method public static boolean hasBearingAccuracy(android.location.Location);
+ method public static boolean hasSpeedAccuracy(android.location.Location);
+ method public static boolean hasVerticalAccuracy(android.location.Location);
+ method public static boolean isMock(android.location.Location);
+ method public static void setBearingAccuracyDegrees(android.location.Location, float);
+ method public static void setMock(android.location.Location, boolean);
+ method public static void setSpeedAccuracyMetersPerSecond(android.location.Location, float);
+ method public static void setVerticalAccuracyMeters(android.location.Location, float);
+ field public static final String EXTRA_BEARING_ACCURACY = "bearingAccuracy";
+ field public static final String EXTRA_IS_MOCK = "mockLocation";
+ field public static final String EXTRA_SPEED_ACCURACY = "speedAccuracy";
+ field public static final String EXTRA_VERTICAL_ACCURACY = "verticalAccuracy";
+ }
+
+ public interface LocationListenerCompat extends android.location.LocationListener {
+ method public default void onStatusChanged(String, int, android.os.Bundle?);
+ }
+
+ public final class LocationManagerCompat {
+ method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static void getCurrentLocation(android.location.LocationManager, String, androidx.core.os.CancellationSignal?, java.util.concurrent.Executor, androidx.core.util.Consumer<android.location.Location!>);
+ method public static String? getGnssHardwareModelName(android.location.LocationManager);
+ method public static int getGnssYearOfHardware(android.location.LocationManager);
+ method public static boolean hasProvider(android.location.LocationManager, String);
+ method public static boolean isLocationEnabled(android.location.LocationManager);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+ method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static void removeUpdates(android.location.LocationManager, androidx.core.location.LocationListenerCompat);
+ method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static void requestLocationUpdates(android.location.LocationManager, String, androidx.core.location.LocationRequestCompat, java.util.concurrent.Executor, androidx.core.location.LocationListenerCompat);
+ method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static void requestLocationUpdates(android.location.LocationManager, String, androidx.core.location.LocationRequestCompat, androidx.core.location.LocationListenerCompat, android.os.Looper);
+ method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
+ }
+
+ public final class LocationRequestCompat {
+ method @IntRange(from=1) public long getDurationMillis();
+ method @IntRange(from=0) public long getIntervalMillis();
+ method @IntRange(from=0) public long getMaxUpdateDelayMillis();
+ method @IntRange(from=1, to=java.lang.Integer.MAX_VALUE) public int getMaxUpdates();
+ method @FloatRange(from=0, to=java.lang.Float.MAX_VALUE) public float getMinUpdateDistanceMeters();
+ method @IntRange(from=0) public long getMinUpdateIntervalMillis();
+ method public int getQuality();
+ method @RequiresApi(31) public android.location.LocationRequest toLocationRequest();
+ method @RequiresApi(19) public android.location.LocationRequest? toLocationRequest(String);
+ field public static final long PASSIVE_INTERVAL = 9223372036854775807L; // 0x7fffffffffffffffL
+ field public static final int QUALITY_BALANCED_POWER_ACCURACY = 102; // 0x66
+ field public static final int QUALITY_HIGH_ACCURACY = 100; // 0x64
+ field public static final int QUALITY_LOW_POWER = 104; // 0x68
+ }
+
+ public static final class LocationRequestCompat.Builder {
+ ctor public LocationRequestCompat.Builder(long);
+ ctor public LocationRequestCompat.Builder(androidx.core.location.LocationRequestCompat);
+ method public androidx.core.location.LocationRequestCompat build();
+ method public androidx.core.location.LocationRequestCompat.Builder clearMinUpdateIntervalMillis();
+ method public androidx.core.location.LocationRequestCompat.Builder setDurationMillis(@IntRange(from=1) long);
+ method public androidx.core.location.LocationRequestCompat.Builder setIntervalMillis(@IntRange(from=0) long);
+ method public androidx.core.location.LocationRequestCompat.Builder setMaxUpdateDelayMillis(@IntRange(from=0) long);
+ method public androidx.core.location.LocationRequestCompat.Builder setMaxUpdates(@IntRange(from=1, to=java.lang.Integer.MAX_VALUE) int);
+ method public androidx.core.location.LocationRequestCompat.Builder setMinUpdateDistanceMeters(@FloatRange(from=0, to=java.lang.Float.MAX_VALUE) float);
+ method public androidx.core.location.LocationRequestCompat.Builder setMinUpdateIntervalMillis(@IntRange(from=0) long);
+ method public androidx.core.location.LocationRequestCompat.Builder setQuality(int);
+ }
+
+}
+
+package androidx.core.math {
+
+ public class MathUtils {
+ method public static int addExact(int, int);
+ method public static long addExact(long, long);
+ method public static float clamp(float, float, float);
+ method public static double clamp(double, double, double);
+ method public static int clamp(int, int, int);
+ method public static long clamp(long, long, long);
+ method public static int decrementExact(int);
+ method public static long decrementExact(long);
+ method public static int incrementExact(int);
+ method public static long incrementExact(long);
+ method public static int multiplyExact(int, int);
+ method public static long multiplyExact(long, long);
+ method public static int negateExact(int);
+ method public static long negateExact(long);
+ method public static int subtractExact(int, int);
+ method public static long subtractExact(long, long);
+ method public static int toIntExact(long);
+ }
+
+}
+
+package androidx.core.net {
+
+ public final class ConnectivityManagerCompat {
+ method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public static android.net.NetworkInfo? getNetworkInfoFromBroadcast(android.net.ConnectivityManager, android.content.Intent);
+ method public static int getRestrictBackgroundStatus(android.net.ConnectivityManager);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public static boolean isActiveNetworkMetered(android.net.ConnectivityManager);
+ field public static final int RESTRICT_BACKGROUND_STATUS_DISABLED = 1; // 0x1
+ field public static final int RESTRICT_BACKGROUND_STATUS_ENABLED = 3; // 0x3
+ field public static final int RESTRICT_BACKGROUND_STATUS_WHITELISTED = 2; // 0x2
+ }
+
+ public final class MailTo {
+ method public String? getBcc();
+ method public String? getBody();
+ method public String? getCc();
+ method public java.util.Map<java.lang.String!,java.lang.String!>? getHeaders();
+ method public String? getSubject();
+ method public String? getTo();
+ method public static boolean isMailTo(String?);
+ method public static boolean isMailTo(android.net.Uri?);
+ method public static androidx.core.net.MailTo parse(String) throws androidx.core.net.ParseException;
+ method public static androidx.core.net.MailTo parse(android.net.Uri) throws androidx.core.net.ParseException;
+ field public static final String MAILTO_SCHEME = "mailto:";
+ }
+
+ public class ParseException extends java.lang.RuntimeException {
+ field public final String response;
+ }
+
+ public final class TrafficStatsCompat {
+ method @Deprecated public static void clearThreadStatsTag();
+ method @Deprecated public static int getThreadStatsTag();
+ method @Deprecated public static void incrementOperationCount(int);
+ method @Deprecated public static void incrementOperationCount(int, int);
+ method @Deprecated public static void setThreadStatsTag(int);
+ method public static void tagDatagramSocket(java.net.DatagramSocket) throws java.net.SocketException;
+ method @Deprecated public static void tagSocket(java.net.Socket!) throws java.net.SocketException;
+ method public static void untagDatagramSocket(java.net.DatagramSocket) throws java.net.SocketException;
+ method @Deprecated public static void untagSocket(java.net.Socket!) throws java.net.SocketException;
+ }
+
+ public final class UriCompat {
+ method public static String toSafeString(android.net.Uri);
+ }
+
+}
+
+package androidx.core.os {
+
+ public class BuildCompat {
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.N) public static boolean isAtLeastN();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.N_MR1) public static boolean isAtLeastNMR1();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.O) public static boolean isAtLeastO();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.O_MR1) public static boolean isAtLeastOMR1();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.P) public static boolean isAtLeastP();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.Q) public static boolean isAtLeastQ();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.R) public static boolean isAtLeastR();
+ method @Deprecated @ChecksSdkIntAtLeast(api=31, codename="S") public static boolean isAtLeastS();
+ }
+
+ public final class CancellationSignal {
+ ctor public CancellationSignal();
+ method public void cancel();
+ method public Object? getCancellationSignalObject();
+ method public boolean isCanceled();
+ method public void setOnCancelListener(androidx.core.os.CancellationSignal.OnCancelListener?);
+ method public void throwIfCanceled();
+ }
+
+ public static interface CancellationSignal.OnCancelListener {
+ method public void onCancel();
+ }
+
+ public final class ConfigurationCompat {
+ method public static androidx.core.os.LocaleListCompat getLocales(android.content.res.Configuration);
+ }
+
+ public final class EnvironmentCompat {
+ method public static String getStorageState(java.io.File);
+ field public static final String MEDIA_UNKNOWN = "unknown";
+ }
+
+ public final class ExecutorCompat {
+ method public static java.util.concurrent.Executor create(android.os.Handler);
+ }
+
+ public final class HandlerCompat {
+ method public static android.os.Handler createAsync(android.os.Looper);
+ method public static android.os.Handler createAsync(android.os.Looper, android.os.Handler.Callback);
+ method @RequiresApi(16) public static boolean hasCallbacks(android.os.Handler, Runnable);
+ method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
+ }
+
+ public final class LocaleListCompat {
+ method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
+ method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
+ method public java.util.Locale? get(int);
+ method @Size(min=1) public static androidx.core.os.LocaleListCompat getAdjustedDefault();
+ method @Size(min=1) public static androidx.core.os.LocaleListCompat getDefault();
+ method public static androidx.core.os.LocaleListCompat getEmptyLocaleList();
+ method public java.util.Locale? getFirstMatch(String![]);
+ method @IntRange(from=0xffffffff) public int indexOf(java.util.Locale?);
+ method public boolean isEmpty();
+ method @IntRange(from=0) public int size();
+ method public String toLanguageTags();
+ method public Object? unwrap();
+ method @Deprecated @RequiresApi(24) public static androidx.core.os.LocaleListCompat! wrap(Object!);
+ method @RequiresApi(24) public static androidx.core.os.LocaleListCompat wrap(android.os.LocaleList);
+ }
+
+ public final class MessageCompat {
+ method public static boolean isAsynchronous(android.os.Message);
+ method public static void setAsynchronous(android.os.Message, boolean);
+ }
+
+ public class OperationCanceledException extends java.lang.RuntimeException {
+ ctor public OperationCanceledException();
+ ctor public OperationCanceledException(String?);
+ }
+
+ public final class ParcelCompat {
+ method public static boolean readBoolean(android.os.Parcel);
+ method public static void writeBoolean(android.os.Parcel, boolean);
+ }
+
+ @Deprecated public final class ParcelableCompat {
+ method @Deprecated public static <T> android.os.Parcelable.Creator<T!>! newCreator(androidx.core.os.ParcelableCompatCreatorCallbacks<T!>!);
+ }
+
+ @Deprecated public interface ParcelableCompatCreatorCallbacks<T> {
+ method @Deprecated public T! createFromParcel(android.os.Parcel!, ClassLoader!);
+ method @Deprecated public T![]! newArray(int);
+ }
+
+ public final class ProcessCompat {
+ method public static boolean isApplicationUid(int);
+ }
+
+ @Deprecated public final class TraceCompat {
+ method @Deprecated public static void beginAsyncSection(String, int);
+ method @Deprecated public static void beginSection(String);
+ method @Deprecated public static void endAsyncSection(String, int);
+ method @Deprecated public static void endSection();
+ method @Deprecated public static boolean isEnabled();
+ method @Deprecated public static void setCounter(String, int);
+ }
+
+ @RequiresApi(17) public class UserHandleCompat {
+ method public static android.os.UserHandle getUserHandleForUid(int);
+ }
+
+ public class UserManagerCompat {
+ method public static boolean isUserUnlocked(android.content.Context);
+ }
+
+}
+
+package androidx.core.provider {
+
+ public final class DocumentsContractCompat {
+ method public static android.net.Uri? buildChildDocumentsUri(String, String?);
+ method public static android.net.Uri? buildChildDocumentsUriUsingTree(android.net.Uri, String);
+ method public static android.net.Uri? buildDocumentUri(String, String);
+ method public static android.net.Uri? buildDocumentUriUsingTree(android.net.Uri, String);
+ method public static android.net.Uri? buildTreeDocumentUri(String, String);
+ method public static android.net.Uri? createDocument(android.content.ContentResolver, android.net.Uri, String, String) throws java.io.FileNotFoundException;
+ method public static String? getDocumentId(android.net.Uri);
+ method public static String? getTreeDocumentId(android.net.Uri);
+ method public static boolean isDocumentUri(android.content.Context, android.net.Uri?);
+ method public static boolean isTreeUri(android.net.Uri);
+ method public static boolean removeDocument(android.content.ContentResolver, android.net.Uri, android.net.Uri) throws java.io.FileNotFoundException;
+ method public static android.net.Uri? renameDocument(android.content.ContentResolver, android.net.Uri, String) throws java.io.FileNotFoundException;
+ }
+
+ public static final class DocumentsContractCompat.DocumentCompat {
+ field public static final int FLAG_VIRTUAL_DOCUMENT = 512; // 0x200
+ }
+
+ public final class FontRequest {
+ ctor public FontRequest(String, String, String, java.util.List<java.util.List<byte[]!>!>);
+ ctor public FontRequest(String, String, String, @ArrayRes int);
+ method public java.util.List<java.util.List<byte[]!>!>? getCertificates();
+ method @ArrayRes public int getCertificatesArrayResId();
+ method public String getProviderAuthority();
+ method public String getProviderPackage();
+ method public String getQuery();
+ }
+
+ public class FontsContractCompat {
+ method public static android.graphics.Typeface? buildTypeface(android.content.Context, android.os.CancellationSignal?, androidx.core.provider.FontsContractCompat.FontInfo![]);
+ method public static androidx.core.provider.FontsContractCompat.FontFamilyResult fetchFonts(android.content.Context, android.os.CancellationSignal?, androidx.core.provider.FontRequest) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public static void requestFont(android.content.Context, androidx.core.provider.FontRequest, androidx.core.provider.FontsContractCompat.FontRequestCallback, android.os.Handler);
+ }
+
+ public static final class FontsContractCompat.Columns implements android.provider.BaseColumns {
+ ctor public FontsContractCompat.Columns();
+ field public static final String FILE_ID = "file_id";
+ field public static final String ITALIC = "font_italic";
+ field public static final String RESULT_CODE = "result_code";
+ field public static final int RESULT_CODE_FONT_NOT_FOUND = 1; // 0x1
+ field public static final int RESULT_CODE_FONT_UNAVAILABLE = 2; // 0x2
+ field public static final int RESULT_CODE_MALFORMED_QUERY = 3; // 0x3
+ field public static final int RESULT_CODE_OK = 0; // 0x0
+ field public static final String TTC_INDEX = "font_ttc_index";
+ field public static final String VARIATION_SETTINGS = "font_variation_settings";
+ field public static final String WEIGHT = "font_weight";
+ }
+
+ public static class FontsContractCompat.FontFamilyResult {
+ method public androidx.core.provider.FontsContractCompat.FontInfo![]! getFonts();
+ method public int getStatusCode();
+ field public static final int STATUS_OK = 0; // 0x0
+ field public static final int STATUS_UNEXPECTED_DATA_PROVIDED = 2; // 0x2
+ field public static final int STATUS_WRONG_CERTIFICATES = 1; // 0x1
+ }
+
+ public static class FontsContractCompat.FontInfo {
+ method public int getResultCode();
+ method @IntRange(from=0) public int getTtcIndex();
+ method public android.net.Uri getUri();
+ method @IntRange(from=1, to=1000) public int getWeight();
+ method public boolean isItalic();
+ }
+
+ public static class FontsContractCompat.FontRequestCallback {
+ ctor public FontsContractCompat.FontRequestCallback();
+ method public void onTypefaceRequestFailed(int);
+ method public void onTypefaceRetrieved(android.graphics.Typeface!);
+ field public static final int FAIL_REASON_FONT_LOAD_ERROR = -3; // 0xfffffffd
+ field public static final int FAIL_REASON_FONT_NOT_FOUND = 1; // 0x1
+ field public static final int FAIL_REASON_FONT_UNAVAILABLE = 2; // 0x2
+ field public static final int FAIL_REASON_MALFORMED_QUERY = 3; // 0x3
+ field public static final int FAIL_REASON_PROVIDER_NOT_FOUND = -1; // 0xffffffff
+ field public static final int FAIL_REASON_SECURITY_VIOLATION = -4; // 0xfffffffc
+ field public static final int FAIL_REASON_WRONG_CERTIFICATES = -2; // 0xfffffffe
+ }
+
+}
+
+package androidx.core.telephony {
+
+ @RequiresApi(22) public class SubscriptionManagerCompat {
+ method public static int getSlotIndex(int);
+ }
+
+ public class TelephonyManagerCompat {
+ method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public static String? getImei(android.telephony.TelephonyManager);
+ method public static int getSubscriptionId(android.telephony.TelephonyManager);
+ }
+
+}
+
+package androidx.core.telephony.mbms {
+
+ public final class MbmsHelper {
+ method public static CharSequence? getBestNameForService(android.content.Context, android.telephony.mbms.ServiceInfo);
+ }
+
+}
+
+package androidx.core.text {
+
+ public final class BidiFormatter {
+ method public static androidx.core.text.BidiFormatter! getInstance();
+ method public static androidx.core.text.BidiFormatter! getInstance(boolean);
+ method public static androidx.core.text.BidiFormatter! getInstance(java.util.Locale!);
+ method public boolean getStereoReset();
+ method public boolean isRtl(String!);
+ method public boolean isRtl(CharSequence!);
+ method public boolean isRtlContext();
+ method public String! unicodeWrap(String!, androidx.core.text.TextDirectionHeuristicCompat!, boolean);
+ method public CharSequence! unicodeWrap(CharSequence!, androidx.core.text.TextDirectionHeuristicCompat!, boolean);
+ method public String! unicodeWrap(String!, androidx.core.text.TextDirectionHeuristicCompat!);
+ method public CharSequence! unicodeWrap(CharSequence!, androidx.core.text.TextDirectionHeuristicCompat!);
+ method public String! unicodeWrap(String!, boolean);
+ method public CharSequence! unicodeWrap(CharSequence!, boolean);
+ method public String! unicodeWrap(String!);
+ method public CharSequence! unicodeWrap(CharSequence!);
+ }
+
+ public static final class BidiFormatter.Builder {
+ ctor public BidiFormatter.Builder();
+ ctor public BidiFormatter.Builder(boolean);
+ ctor public BidiFormatter.Builder(java.util.Locale!);
+ method public androidx.core.text.BidiFormatter! build();
+ method public androidx.core.text.BidiFormatter.Builder! setTextDirectionHeuristic(androidx.core.text.TextDirectionHeuristicCompat!);
+ method public androidx.core.text.BidiFormatter.Builder! stereoReset(boolean);
+ }
+
+ public final class HtmlCompat {
+ method public static android.text.Spanned fromHtml(String, int);
+ method public static android.text.Spanned fromHtml(String, int, android.text.Html.ImageGetter?, android.text.Html.TagHandler?);
+ method public static String toHtml(android.text.Spanned, int);
+ field public static final int FROM_HTML_MODE_COMPACT = 63; // 0x3f
+ field public static final int FROM_HTML_MODE_LEGACY = 0; // 0x0
+ field public static final int FROM_HTML_OPTION_USE_CSS_COLORS = 256; // 0x100
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_BLOCKQUOTE = 32; // 0x20
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_DIV = 16; // 0x10
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_HEADING = 2; // 0x2
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_LIST = 8; // 0x8
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_LIST_ITEM = 4; // 0x4
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_PARAGRAPH = 1; // 0x1
+ field public static final int TO_HTML_PARAGRAPH_LINES_CONSECUTIVE = 0; // 0x0
+ field public static final int TO_HTML_PARAGRAPH_LINES_INDIVIDUAL = 1; // 0x1
+ }
+
+ public final class ICUCompat {
+ method public static String? maximizeAndGetScript(java.util.Locale);
+ }
+
+ public class PrecomputedTextCompat implements android.text.Spannable {
+ method public char charAt(int);
+ method public static androidx.core.text.PrecomputedTextCompat! create(CharSequence, androidx.core.text.PrecomputedTextCompat.Params);
+ method @IntRange(from=0) public int getParagraphCount();
+ method @IntRange(from=0) public int getParagraphEnd(@IntRange(from=0) int);
+ method @IntRange(from=0) public int getParagraphStart(@IntRange(from=0) int);
+ method public androidx.core.text.PrecomputedTextCompat.Params getParams();
+ method public int getSpanEnd(Object!);
+ method public int getSpanFlags(Object!);
+ method public int getSpanStart(Object!);
+ method public <T> T![]! getSpans(int, int, Class<T!>!);
+ method @UiThread public static java.util.concurrent.Future<androidx.core.text.PrecomputedTextCompat!>! getTextFuture(CharSequence, androidx.core.text.PrecomputedTextCompat.Params, java.util.concurrent.Executor?);
+ method public int length();
+ method public int nextSpanTransition(int, int, Class!);
+ method public void removeSpan(Object!);
+ method public void setSpan(Object!, int, int, int);
+ method public CharSequence! subSequence(int, int);
+ }
+
+ public static final class PrecomputedTextCompat.Params {
+ ctor @RequiresApi(28) public PrecomputedTextCompat.Params(android.text.PrecomputedText.Params);
+ method @RequiresApi(23) public int getBreakStrategy();
+ method @RequiresApi(23) public int getHyphenationFrequency();
+ method @RequiresApi(18) public android.text.TextDirectionHeuristic? getTextDirection();
+ method public android.text.TextPaint getTextPaint();
+ }
+
+ public static class PrecomputedTextCompat.Params.Builder {
+ ctor public PrecomputedTextCompat.Params.Builder(android.text.TextPaint);
+ method public androidx.core.text.PrecomputedTextCompat.Params build();
+ method @RequiresApi(23) public androidx.core.text.PrecomputedTextCompat.Params.Builder! setBreakStrategy(int);
+ method @RequiresApi(23) public androidx.core.text.PrecomputedTextCompat.Params.Builder! setHyphenationFrequency(int);
+ method @RequiresApi(18) public androidx.core.text.PrecomputedTextCompat.Params.Builder! setTextDirection(android.text.TextDirectionHeuristic);
+ }
+
+ public interface TextDirectionHeuristicCompat {
+ method public boolean isRtl(char[]!, int, int);
+ method public boolean isRtl(CharSequence!, int, int);
+ }
+
+ public final class TextDirectionHeuristicsCompat {
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! ANYRTL_LTR;
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! FIRSTSTRONG_LTR;
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! FIRSTSTRONG_RTL;
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! LOCALE;
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! LTR;
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! RTL;
+ }
+
+ public final class TextUtilsCompat {
+ method public static int getLayoutDirectionFromLocale(java.util.Locale?);
+ method public static String htmlEncode(String);
+ }
+
+}
+
+package androidx.core.text.util {
+
+ public final class LinkifyCompat {
+ method public static boolean addLinks(android.text.Spannable, int);
+ method public static boolean addLinks(android.widget.TextView, int);
+ method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, String?);
+ method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, String?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+ method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, String?, String![]?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+ method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, String?);
+ method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, String?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+ method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, String?, String![]?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+ }
+
+}
+
+package androidx.core.util {
+
+ public class AtomicFile {
+ ctor public AtomicFile(java.io.File);
+ method public void delete();
+ method public void failWrite(java.io.FileOutputStream?);
+ method public void finishWrite(java.io.FileOutputStream?);
+ method public java.io.File getBaseFile();
+ method public java.io.FileInputStream openRead() throws java.io.FileNotFoundException;
+ method public byte[] readFully() throws java.io.IOException;
+ method public java.io.FileOutputStream startWrite() throws java.io.IOException;
+ }
+
+ public interface Consumer<T> {
+ method public void accept(T!);
+ }
+
+ public class ObjectsCompat {
+ method public static boolean equals(Object?, Object?);
+ method public static int hash(java.lang.Object!...);
+ method public static int hashCode(Object?);
+ method public static <T> T requireNonNull(T?);
+ method public static <T> T requireNonNull(T?, String);
+ method public static String? toString(Object?, String?);
+ }
+
+ public class Pair<F, S> {
+ ctor public Pair(F!, S!);
+ method public static <A, B> androidx.core.util.Pair<A!,B!> create(A!, B!);
+ field public final F! first;
+ field public final S! second;
+ }
+
+ public final class PatternsCompat {
+ field public static final java.util.regex.Pattern DOMAIN_NAME;
+ field public static final java.util.regex.Pattern EMAIL_ADDRESS;
+ field public static final java.util.regex.Pattern IP_ADDRESS;
+ field public static final java.util.regex.Pattern WEB_URL;
+ }
+
+ public final class Pools {
+ }
+
+ public static interface Pools.Pool<T> {
+ method public T? acquire();
+ method public boolean release(T);
+ }
+
+ public static class Pools.SimplePool<T> implements androidx.core.util.Pools.Pool<T> {
+ ctor public Pools.SimplePool(int);
+ method public T! acquire();
+ method public boolean release(T);
+ }
+
+ public static class Pools.SynchronizedPool<T> extends androidx.core.util.Pools.SimplePool<T> {
+ ctor public Pools.SynchronizedPool(int);
+ }
+
+ public interface Predicate<T> {
+ method public boolean test(T!);
+ }
+
+ public final class SizeFCompat {
+ ctor public SizeFCompat(float, float);
+ method public float getHeight();
+ method public float getWidth();
+ method @RequiresApi(21) public android.util.SizeF toSizeF();
+ method @RequiresApi(21) public static androidx.core.util.SizeFCompat toSizeFCompat(android.util.SizeF);
+ }
+
+ public interface Supplier<T> {
+ method public T! get();
+ }
+
+}
+
+package androidx.core.view {
+
+ public class AccessibilityDelegateCompat {
+ ctor public AccessibilityDelegateCompat();
+ method public boolean dispatchPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+ method public androidx.core.view.accessibility.AccessibilityNodeProviderCompat? getAccessibilityNodeProvider(android.view.View);
+ method public void onInitializeAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+ method public void onInitializeAccessibilityNodeInfo(android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat);
+ method public void onPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+ method public boolean onRequestSendAccessibilityEvent(android.view.ViewGroup, android.view.View, android.view.accessibility.AccessibilityEvent);
+ method public boolean performAccessibilityAction(android.view.View, int, android.os.Bundle?);
+ method public void sendAccessibilityEvent(android.view.View, int);
+ method public void sendAccessibilityEventUnchecked(android.view.View, android.view.accessibility.AccessibilityEvent);
+ }
+
+ public abstract class ActionProvider {
+ ctor public ActionProvider(android.content.Context);
+ method public android.content.Context getContext();
+ method public boolean hasSubMenu();
+ method public boolean isVisible();
+ method public abstract android.view.View onCreateActionView();
+ method public android.view.View onCreateActionView(android.view.MenuItem);
+ method public boolean onPerformDefaultAction();
+ method public void onPrepareSubMenu(android.view.SubMenu);
+ method public boolean overridesItemVisibility();
+ method public void refreshVisibility();
+ method public void setVisibilityListener(androidx.core.view.ActionProvider.VisibilityListener?);
+ }
+
+ public static interface ActionProvider.VisibilityListener {
+ method public void onActionProviderVisibilityChanged(boolean);
+ }
+
+ public final class ContentInfoCompat {
+ method public android.content.ClipData getClip();
+ method public android.os.Bundle? getExtras();
+ method public int getFlags();
+ method public android.net.Uri? getLinkUri();
+ method public int getSource();
+ method public android.util.Pair<androidx.core.view.ContentInfoCompat!,androidx.core.view.ContentInfoCompat!> partition(androidx.core.util.Predicate<android.content.ClipData.Item!>);
+ method @RequiresApi(31) public static android.util.Pair<android.view.ContentInfo!,android.view.ContentInfo!> partition(android.view.ContentInfo, java.util.function.Predicate<android.content.ClipData.Item!>);
+ method @RequiresApi(31) public android.view.ContentInfo toContentInfo();
+ method @RequiresApi(31) public static androidx.core.view.ContentInfoCompat toContentInfoCompat(android.view.ContentInfo);
+ field public static final int FLAG_CONVERT_TO_PLAIN_TEXT = 1; // 0x1
+ field public static final int SOURCE_APP = 0; // 0x0
+ field public static final int SOURCE_AUTOFILL = 4; // 0x4
+ field public static final int SOURCE_CLIPBOARD = 1; // 0x1
+ field public static final int SOURCE_DRAG_AND_DROP = 3; // 0x3
+ field public static final int SOURCE_INPUT_METHOD = 2; // 0x2
+ field public static final int SOURCE_PROCESS_TEXT = 5; // 0x5
+ }
+
+ public static final class ContentInfoCompat.Builder {
+ ctor public ContentInfoCompat.Builder(androidx.core.view.ContentInfoCompat);
+ ctor public ContentInfoCompat.Builder(android.content.ClipData, int);
+ method public androidx.core.view.ContentInfoCompat build();
+ method public androidx.core.view.ContentInfoCompat.Builder setClip(android.content.ClipData);
+ method public androidx.core.view.ContentInfoCompat.Builder setExtras(android.os.Bundle?);
+ method public androidx.core.view.ContentInfoCompat.Builder setFlags(int);
+ method public androidx.core.view.ContentInfoCompat.Builder setLinkUri(android.net.Uri?);
+ method public androidx.core.view.ContentInfoCompat.Builder setSource(int);
+ }
+
+ public final class DisplayCompat {
+ method public static androidx.core.view.DisplayCompat.ModeCompat getMode(android.content.Context, android.view.Display);
+ method public static androidx.core.view.DisplayCompat.ModeCompat![] getSupportedModes(android.content.Context, android.view.Display);
+ }
+
+ public static final class DisplayCompat.ModeCompat {
+ method public int getPhysicalHeight();
+ method public int getPhysicalWidth();
+ method @Deprecated public boolean isNative();
+ method @RequiresApi(android.os.Build.VERSION_CODES.M) public android.view.Display.Mode? toMode();
+ }
+
+ public final class DisplayCutoutCompat {
+ ctor public DisplayCutoutCompat(android.graphics.Rect?, java.util.List<android.graphics.Rect!>?);
+ ctor public DisplayCutoutCompat(androidx.core.graphics.Insets, android.graphics.Rect?, android.graphics.Rect?, android.graphics.Rect?, android.graphics.Rect?, androidx.core.graphics.Insets);
+ method public java.util.List<android.graphics.Rect!> getBoundingRects();
+ method public int getSafeInsetBottom();
+ method public int getSafeInsetLeft();
+ method public int getSafeInsetRight();
+ method public int getSafeInsetTop();
+ method public androidx.core.graphics.Insets getWaterfallInsets();
+ }
+
+ public final class DragAndDropPermissionsCompat {
+ method public void release();
+ }
+
+ public class DragStartHelper {
+ ctor public DragStartHelper(android.view.View, androidx.core.view.DragStartHelper.OnDragStartListener);
+ method public void attach();
+ method public void detach();
+ method public void getTouchPosition(android.graphics.Point);
+ method public boolean onLongClick(android.view.View);
+ method public boolean onTouch(android.view.View, android.view.MotionEvent);
+ }
+
+ public static interface DragStartHelper.OnDragStartListener {
+ method public boolean onDragStart(android.view.View, androidx.core.view.DragStartHelper);
+ }
+
+ public final class GestureDetectorCompat {
+ ctor public GestureDetectorCompat(android.content.Context, android.view.GestureDetector.OnGestureListener);
+ ctor public GestureDetectorCompat(android.content.Context, android.view.GestureDetector.OnGestureListener, android.os.Handler?);
+ method public boolean isLongpressEnabled();
+ method public boolean onTouchEvent(android.view.MotionEvent);
+ method public void setIsLongpressEnabled(boolean);
+ method public void setOnDoubleTapListener(android.view.GestureDetector.OnDoubleTapListener?);
+ }
+
+ public final class GravityCompat {
+ method public static void apply(int, int, int, android.graphics.Rect, android.graphics.Rect, int);
+ method public static void apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int);
+ method public static void applyDisplay(int, android.graphics.Rect, android.graphics.Rect, int);
+ method public static int getAbsoluteGravity(int, int);
+ field public static final int END = 8388613; // 0x800005
+ field public static final int RELATIVE_HORIZONTAL_GRAVITY_MASK = 8388615; // 0x800007
+ field public static final int RELATIVE_LAYOUT_DIRECTION = 8388608; // 0x800000
+ field public static final int START = 8388611; // 0x800003
+ }
+
+ public final class InputDeviceCompat {
+ field public static final int SOURCE_ANY = -256; // 0xffffff00
+ field public static final int SOURCE_CLASS_BUTTON = 1; // 0x1
+ field public static final int SOURCE_CLASS_JOYSTICK = 16; // 0x10
+ field public static final int SOURCE_CLASS_MASK = 255; // 0xff
+ field public static final int SOURCE_CLASS_NONE = 0; // 0x0
+ field public static final int SOURCE_CLASS_POINTER = 2; // 0x2
+ field public static final int SOURCE_CLASS_POSITION = 8; // 0x8
+ field public static final int SOURCE_CLASS_TRACKBALL = 4; // 0x4
+ field public static final int SOURCE_DPAD = 513; // 0x201
+ field public static final int SOURCE_GAMEPAD = 1025; // 0x401
+ field public static final int SOURCE_HDMI = 33554433; // 0x2000001
+ field public static final int SOURCE_JOYSTICK = 16777232; // 0x1000010
+ field public static final int SOURCE_KEYBOARD = 257; // 0x101
+ field public static final int SOURCE_MOUSE = 8194; // 0x2002
+ field public static final int SOURCE_ROTARY_ENCODER = 4194304; // 0x400000
+ field public static final int SOURCE_STYLUS = 16386; // 0x4002
+ field public static final int SOURCE_TOUCHPAD = 1048584; // 0x100008
+ field public static final int SOURCE_TOUCHSCREEN = 4098; // 0x1002
+ field public static final int SOURCE_TOUCH_NAVIGATION = 2097152; // 0x200000
+ field public static final int SOURCE_TRACKBALL = 65540; // 0x10004
+ field public static final int SOURCE_UNKNOWN = 0; // 0x0
+ }
+
+ public final class LayoutInflaterCompat {
+ method @Deprecated public static androidx.core.view.LayoutInflaterFactory! getFactory(android.view.LayoutInflater!);
+ method @Deprecated public static void setFactory(android.view.LayoutInflater, androidx.core.view.LayoutInflaterFactory);
+ method public static void setFactory2(android.view.LayoutInflater, android.view.LayoutInflater.Factory2);
+ }
+
+ @Deprecated public interface LayoutInflaterFactory {
+ method @Deprecated public android.view.View! onCreateView(android.view.View!, String!, android.content.Context!, android.util.AttributeSet!);
+ }
+
+ public final class MarginLayoutParamsCompat {
+ method public static int getLayoutDirection(android.view.ViewGroup.MarginLayoutParams);
+ method public static int getMarginEnd(android.view.ViewGroup.MarginLayoutParams);
+ method public static int getMarginStart(android.view.ViewGroup.MarginLayoutParams);
+ method public static boolean isMarginRelative(android.view.ViewGroup.MarginLayoutParams);
+ method public static void resolveLayoutDirection(android.view.ViewGroup.MarginLayoutParams, int);
+ method public static void setLayoutDirection(android.view.ViewGroup.MarginLayoutParams, int);
+ method public static void setMarginEnd(android.view.ViewGroup.MarginLayoutParams, int);
+ method public static void setMarginStart(android.view.ViewGroup.MarginLayoutParams, int);
+ }
+
+ public final class MenuCompat {
+ method public static void setGroupDividerEnabled(android.view.Menu, boolean);
+ method @Deprecated public static void setShowAsAction(android.view.MenuItem!, int);
+ }
+
+ public interface MenuHost {
+ method public void addMenuProvider(androidx.core.view.MenuProvider);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State);
+ method public void invalidateMenu();
+ method public void removeMenuProvider(androidx.core.view.MenuProvider);
+ }
+
+ public class MenuHostHelper {
+ ctor public MenuHostHelper(Runnable);
+ method public void addMenuProvider(androidx.core.view.MenuProvider);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State);
+ method public void onCreateMenu(android.view.Menu, android.view.MenuInflater);
+ method public void onMenuClosed(android.view.Menu);
+ method public boolean onMenuItemSelected(android.view.MenuItem);
+ method public void onPrepareMenu(android.view.Menu);
+ method public void removeMenuProvider(androidx.core.view.MenuProvider);
+ }
+
+ public final class MenuItemCompat {
+ method @Deprecated public static boolean collapseActionView(android.view.MenuItem!);
+ method @Deprecated public static boolean expandActionView(android.view.MenuItem!);
+ method public static androidx.core.view.ActionProvider? getActionProvider(android.view.MenuItem);
+ method @Deprecated public static android.view.View! getActionView(android.view.MenuItem!);
+ method public static int getAlphabeticModifiers(android.view.MenuItem);
+ method public static CharSequence? getContentDescription(android.view.MenuItem);
+ method public static android.content.res.ColorStateList? getIconTintList(android.view.MenuItem);
+ method public static android.graphics.PorterDuff.Mode? getIconTintMode(android.view.MenuItem);
+ method public static int getNumericModifiers(android.view.MenuItem);
+ method public static CharSequence? getTooltipText(android.view.MenuItem);
+ method @Deprecated public static boolean isActionViewExpanded(android.view.MenuItem!);
+ method public static android.view.MenuItem? setActionProvider(android.view.MenuItem, androidx.core.view.ActionProvider?);
+ method @Deprecated public static android.view.MenuItem! setActionView(android.view.MenuItem!, android.view.View!);
+ method @Deprecated public static android.view.MenuItem! setActionView(android.view.MenuItem!, int);
+ method public static void setAlphabeticShortcut(android.view.MenuItem, char, int);
+ method public static void setContentDescription(android.view.MenuItem, CharSequence?);
+ method public static void setIconTintList(android.view.MenuItem, android.content.res.ColorStateList?);
+ method public static void setIconTintMode(android.view.MenuItem, android.graphics.PorterDuff.Mode?);
+ method public static void setNumericShortcut(android.view.MenuItem, char, int);
+ method @Deprecated public static android.view.MenuItem! setOnActionExpandListener(android.view.MenuItem!, androidx.core.view.MenuItemCompat.OnActionExpandListener!);
+ method public static void setShortcut(android.view.MenuItem, char, char, int, int);
+ method @Deprecated public static void setShowAsAction(android.view.MenuItem!, int);
+ method public static void setTooltipText(android.view.MenuItem, CharSequence?);
+ field @Deprecated public static final int SHOW_AS_ACTION_ALWAYS = 2; // 0x2
+ field @Deprecated public static final int SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8; // 0x8
+ field @Deprecated public static final int SHOW_AS_ACTION_IF_ROOM = 1; // 0x1
+ field @Deprecated public static final int SHOW_AS_ACTION_NEVER = 0; // 0x0
+ field @Deprecated public static final int SHOW_AS_ACTION_WITH_TEXT = 4; // 0x4
+ }
+
+ @Deprecated public static interface MenuItemCompat.OnActionExpandListener {
+ method @Deprecated public boolean onMenuItemActionCollapse(android.view.MenuItem!);
+ method @Deprecated public boolean onMenuItemActionExpand(android.view.MenuItem!);
+ }
+
+ public interface MenuProvider {
+ method public void onCreateMenu(android.view.Menu, android.view.MenuInflater);
+ method public default void onMenuClosed(android.view.Menu);
+ method public boolean onMenuItemSelected(android.view.MenuItem);
+ method public default void onPrepareMenu(android.view.Menu);
+ }
+
+ public final class MotionEventCompat {
+ method @Deprecated public static int findPointerIndex(android.view.MotionEvent!, int);
+ method @Deprecated public static int getActionIndex(android.view.MotionEvent!);
+ method @Deprecated public static int getActionMasked(android.view.MotionEvent!);
+ method @Deprecated public static float getAxisValue(android.view.MotionEvent!, int);
+ method @Deprecated public static float getAxisValue(android.view.MotionEvent!, int, int);
+ method @Deprecated public static int getButtonState(android.view.MotionEvent!);
+ method @Deprecated public static int getPointerCount(android.view.MotionEvent!);
+ method @Deprecated public static int getPointerId(android.view.MotionEvent!, int);
+ method @Deprecated public static int getSource(android.view.MotionEvent!);
+ method @Deprecated public static float getX(android.view.MotionEvent!, int);
+ method @Deprecated public static float getY(android.view.MotionEvent!, int);
+ method public static boolean isFromSource(android.view.MotionEvent, int);
+ field @Deprecated public static final int ACTION_HOVER_ENTER = 9; // 0x9
+ field @Deprecated public static final int ACTION_HOVER_EXIT = 10; // 0xa
+ field @Deprecated public static final int ACTION_HOVER_MOVE = 7; // 0x7
+ field @Deprecated public static final int ACTION_MASK = 255; // 0xff
+ field @Deprecated public static final int ACTION_POINTER_DOWN = 5; // 0x5
+ field @Deprecated public static final int ACTION_POINTER_INDEX_MASK = 65280; // 0xff00
+ field @Deprecated public static final int ACTION_POINTER_INDEX_SHIFT = 8; // 0x8
+ field @Deprecated public static final int ACTION_POINTER_UP = 6; // 0x6
+ field @Deprecated public static final int ACTION_SCROLL = 8; // 0x8
+ field @Deprecated public static final int AXIS_BRAKE = 23; // 0x17
+ field @Deprecated public static final int AXIS_DISTANCE = 24; // 0x18
+ field @Deprecated public static final int AXIS_GAS = 22; // 0x16
+ field @Deprecated public static final int AXIS_GENERIC_1 = 32; // 0x20
+ field @Deprecated public static final int AXIS_GENERIC_10 = 41; // 0x29
+ field @Deprecated public static final int AXIS_GENERIC_11 = 42; // 0x2a
+ field @Deprecated public static final int AXIS_GENERIC_12 = 43; // 0x2b
+ field @Deprecated public static final int AXIS_GENERIC_13 = 44; // 0x2c
+ field @Deprecated public static final int AXIS_GENERIC_14 = 45; // 0x2d
+ field @Deprecated public static final int AXIS_GENERIC_15 = 46; // 0x2e
+ field @Deprecated public static final int AXIS_GENERIC_16 = 47; // 0x2f
+ field @Deprecated public static final int AXIS_GENERIC_2 = 33; // 0x21
+ field @Deprecated public static final int AXIS_GENERIC_3 = 34; // 0x22
+ field @Deprecated public static final int AXIS_GENERIC_4 = 35; // 0x23
+ field @Deprecated public static final int AXIS_GENERIC_5 = 36; // 0x24
+ field @Deprecated public static final int AXIS_GENERIC_6 = 37; // 0x25
+ field @Deprecated public static final int AXIS_GENERIC_7 = 38; // 0x26
+ field @Deprecated public static final int AXIS_GENERIC_8 = 39; // 0x27
+ field @Deprecated public static final int AXIS_GENERIC_9 = 40; // 0x28
+ field @Deprecated public static final int AXIS_HAT_X = 15; // 0xf
+ field @Deprecated public static final int AXIS_HAT_Y = 16; // 0x10
+ field @Deprecated public static final int AXIS_HSCROLL = 10; // 0xa
+ field @Deprecated public static final int AXIS_LTRIGGER = 17; // 0x11
+ field @Deprecated public static final int AXIS_ORIENTATION = 8; // 0x8
+ field @Deprecated public static final int AXIS_PRESSURE = 2; // 0x2
+ field public static final int AXIS_RELATIVE_X = 27; // 0x1b
+ field public static final int AXIS_RELATIVE_Y = 28; // 0x1c
+ field @Deprecated public static final int AXIS_RTRIGGER = 18; // 0x12
+ field @Deprecated public static final int AXIS_RUDDER = 20; // 0x14
+ field @Deprecated public static final int AXIS_RX = 12; // 0xc
+ field @Deprecated public static final int AXIS_RY = 13; // 0xd
+ field @Deprecated public static final int AXIS_RZ = 14; // 0xe
+ field public static final int AXIS_SCROLL = 26; // 0x1a
+ field @Deprecated public static final int AXIS_SIZE = 3; // 0x3
+ field @Deprecated public static final int AXIS_THROTTLE = 19; // 0x13
+ field @Deprecated public static final int AXIS_TILT = 25; // 0x19
+ field @Deprecated public static final int AXIS_TOOL_MAJOR = 6; // 0x6
+ field @Deprecated public static final int AXIS_TOOL_MINOR = 7; // 0x7
+ field @Deprecated public static final int AXIS_TOUCH_MAJOR = 4; // 0x4
+ field @Deprecated public static final int AXIS_TOUCH_MINOR = 5; // 0x5
+ field @Deprecated public static final int AXIS_VSCROLL = 9; // 0x9
+ field @Deprecated public static final int AXIS_WHEEL = 21; // 0x15
+ field @Deprecated public static final int AXIS_X = 0; // 0x0
+ field @Deprecated public static final int AXIS_Y = 1; // 0x1
+ field @Deprecated public static final int AXIS_Z = 11; // 0xb
+ field @Deprecated public static final int BUTTON_PRIMARY = 1; // 0x1
+ }
+
+ public interface NestedScrollingChild {
+ method public boolean dispatchNestedFling(float, float, boolean);
+ method public boolean dispatchNestedPreFling(float, float);
+ method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?);
+ method public boolean dispatchNestedScroll(int, int, int, int, int[]?);
+ method public boolean hasNestedScrollingParent();
+ method public boolean isNestedScrollingEnabled();
+ method public void setNestedScrollingEnabled(boolean);
+ method public boolean startNestedScroll(int);
+ method public void stopNestedScroll();
+ }
+
+ public interface NestedScrollingChild2 extends androidx.core.view.NestedScrollingChild {
+ method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?, int);
+ method public boolean dispatchNestedScroll(int, int, int, int, int[]?, int);
+ method public boolean hasNestedScrollingParent(int);
+ method public boolean startNestedScroll(int, int);
+ method public void stopNestedScroll(int);
+ }
+
+ public interface NestedScrollingChild3 extends androidx.core.view.NestedScrollingChild2 {
+ method public void dispatchNestedScroll(int, int, int, int, int[]?, int, int[]);
+ }
+
+ public class NestedScrollingChildHelper {
+ ctor public NestedScrollingChildHelper(android.view.View);
+ method public boolean dispatchNestedFling(float, float, boolean);
+ method public boolean dispatchNestedPreFling(float, float);
+ method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?);
+ method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?, int);
+ method public boolean dispatchNestedScroll(int, int, int, int, int[]?);
+ method public boolean dispatchNestedScroll(int, int, int, int, int[]?, int);
+ method public void dispatchNestedScroll(int, int, int, int, int[]?, int, int[]?);
+ method public boolean hasNestedScrollingParent();
+ method public boolean hasNestedScrollingParent(int);
+ method public boolean isNestedScrollingEnabled();
+ method public void onDetachedFromWindow();
+ method public void onStopNestedScroll(android.view.View);
+ method public void setNestedScrollingEnabled(boolean);
+ method public boolean startNestedScroll(int);
+ method public boolean startNestedScroll(int, int);
+ method public void stopNestedScroll();
+ method public void stopNestedScroll(int);
+ }
+
+ public interface NestedScrollingParent {
+ method public int getNestedScrollAxes();
+ method public boolean onNestedFling(android.view.View, float, float, boolean);
+ method public boolean onNestedPreFling(android.view.View, float, float);
+ method public void onNestedPreScroll(android.view.View, int, int, int[]);
+ method public void onNestedScroll(android.view.View, int, int, int, int);
+ method public void onNestedScrollAccepted(android.view.View, android.view.View, int);
+ method public boolean onStartNestedScroll(android.view.View, android.view.View, int);
+ method public void onStopNestedScroll(android.view.View);
+ }
+
+ public interface NestedScrollingParent2 extends androidx.core.view.NestedScrollingParent {
+ method public void onNestedPreScroll(android.view.View, int, int, int[], int);
+ method public void onNestedScroll(android.view.View, int, int, int, int, int);
+ method public void onNestedScrollAccepted(android.view.View, android.view.View, int, int);
+ method public boolean onStartNestedScroll(android.view.View, android.view.View, int, int);
+ method public void onStopNestedScroll(android.view.View, int);
+ }
+
+ public interface NestedScrollingParent3 extends androidx.core.view.NestedScrollingParent2 {
+ method public void onNestedScroll(android.view.View, int, int, int, int, int, int[]);
+ }
+
+ public class NestedScrollingParentHelper {
+ ctor public NestedScrollingParentHelper(android.view.ViewGroup);
+ method public int getNestedScrollAxes();
+ method public void onNestedScrollAccepted(android.view.View, android.view.View, int);
+ method public void onNestedScrollAccepted(android.view.View, android.view.View, int, int);
+ method public void onStopNestedScroll(android.view.View);
+ method public void onStopNestedScroll(android.view.View, int);
+ }
+
+ public interface OnApplyWindowInsetsListener {
+ method public androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat);
+ }
+
+ public interface OnReceiveContentListener {
+ method public androidx.core.view.ContentInfoCompat? onReceiveContent(android.view.View, androidx.core.view.ContentInfoCompat);
+ }
+
+ public interface OnReceiveContentViewBehavior {
+ method public androidx.core.view.ContentInfoCompat? onReceiveContent(androidx.core.view.ContentInfoCompat);
+ }
+
+ public final class OneShotPreDrawListener implements android.view.View.OnAttachStateChangeListener android.view.ViewTreeObserver.OnPreDrawListener {
+ method public static androidx.core.view.OneShotPreDrawListener add(android.view.View, Runnable);
+ method public boolean onPreDraw();
+ method public void onViewAttachedToWindow(android.view.View);
+ method public void onViewDetachedFromWindow(android.view.View);
+ method public void removeListener();
+ }
+
+ public final class PointerIconCompat {
+ method public static androidx.core.view.PointerIconCompat create(android.graphics.Bitmap, float, float);
+ method public static androidx.core.view.PointerIconCompat getSystemIcon(android.content.Context, int);
+ method public static androidx.core.view.PointerIconCompat load(android.content.res.Resources, int);
+ field public static final int TYPE_ALIAS = 1010; // 0x3f2
+ field public static final int TYPE_ALL_SCROLL = 1013; // 0x3f5
+ field public static final int TYPE_ARROW = 1000; // 0x3e8
+ field public static final int TYPE_CELL = 1006; // 0x3ee
+ field public static final int TYPE_CONTEXT_MENU = 1001; // 0x3e9
+ field public static final int TYPE_COPY = 1011; // 0x3f3
+ field public static final int TYPE_CROSSHAIR = 1007; // 0x3ef
+ field public static final int TYPE_DEFAULT = 1000; // 0x3e8
+ field public static final int TYPE_GRAB = 1020; // 0x3fc
+ field public static final int TYPE_GRABBING = 1021; // 0x3fd
+ field public static final int TYPE_HAND = 1002; // 0x3ea
+ field public static final int TYPE_HELP = 1003; // 0x3eb
+ field public static final int TYPE_HORIZONTAL_DOUBLE_ARROW = 1014; // 0x3f6
+ field public static final int TYPE_NO_DROP = 1012; // 0x3f4
+ field public static final int TYPE_NULL = 0; // 0x0
+ field public static final int TYPE_TEXT = 1008; // 0x3f0
+ field public static final int TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW = 1017; // 0x3f9
+ field public static final int TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW = 1016; // 0x3f8
+ field public static final int TYPE_VERTICAL_DOUBLE_ARROW = 1015; // 0x3f7
+ field public static final int TYPE_VERTICAL_TEXT = 1009; // 0x3f1
+ field public static final int TYPE_WAIT = 1004; // 0x3ec
+ field public static final int TYPE_ZOOM_IN = 1018; // 0x3fa
+ field public static final int TYPE_ZOOM_OUT = 1019; // 0x3fb
+ }
+
+ public final class ScaleGestureDetectorCompat {
+ method @Deprecated public static boolean isQuickScaleEnabled(Object!);
+ method public static boolean isQuickScaleEnabled(android.view.ScaleGestureDetector);
+ method @Deprecated public static void setQuickScaleEnabled(Object!, boolean);
+ method public static void setQuickScaleEnabled(android.view.ScaleGestureDetector, boolean);
+ }
+
+ public interface ScrollingView {
+ method public int computeHorizontalScrollExtent();
+ method public int computeHorizontalScrollOffset();
+ method public int computeHorizontalScrollRange();
+ method public int computeVerticalScrollExtent();
+ method public int computeVerticalScrollOffset();
+ method public int computeVerticalScrollRange();
+ }
+
+ public interface TintableBackgroundView {
+ method public android.content.res.ColorStateList? getSupportBackgroundTintList();
+ method public android.graphics.PorterDuff.Mode? getSupportBackgroundTintMode();
+ method public void setSupportBackgroundTintList(android.content.res.ColorStateList?);
+ method public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode?);
+ }
+
+ @Deprecated public final class VelocityTrackerCompat {
+ method @Deprecated public static float getXVelocity(android.view.VelocityTracker!, int);
+ method @Deprecated public static float getYVelocity(android.view.VelocityTracker!, int);
+ }
+
+ public class ViewCompat {
+ ctor @Deprecated protected ViewCompat();
+ method public static int addAccessibilityAction(android.view.View, CharSequence, androidx.core.view.accessibility.AccessibilityViewCommand);
+ method public static void addKeyboardNavigationClusters(android.view.View, java.util.Collection<android.view.View!>, int);
+ method public static void addOnUnhandledKeyEventListener(android.view.View, androidx.core.view.ViewCompat.OnUnhandledKeyEventListenerCompat);
+ method public static androidx.core.view.ViewPropertyAnimatorCompat animate(android.view.View);
+ method @Deprecated public static boolean canScrollHorizontally(android.view.View!, int);
+ method @Deprecated public static boolean canScrollVertically(android.view.View!, int);
+ method public static void cancelDragAndDrop(android.view.View);
+ method @Deprecated public static int combineMeasuredStates(int, int);
+ method public static androidx.core.view.WindowInsetsCompat computeSystemWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat, android.graphics.Rect);
+ method public static androidx.core.view.WindowInsetsCompat dispatchApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat);
+ method public static void dispatchFinishTemporaryDetach(android.view.View);
+ method public static boolean dispatchNestedFling(android.view.View, float, float, boolean);
+ method public static boolean dispatchNestedPreFling(android.view.View, float, float);
+ method public static boolean dispatchNestedPreScroll(android.view.View, int, int, int[]?, int[]?);
+ method public static boolean dispatchNestedPreScroll(android.view.View, int, int, int[]?, int[]?, int);
+ method public static boolean dispatchNestedScroll(android.view.View, int, int, int, int, int[]?);
+ method public static void dispatchNestedScroll(android.view.View, int, int, int, int, int[]?, int, int[]);
+ method public static boolean dispatchNestedScroll(android.view.View, int, int, int, int, int[]?, int);
+ method public static void dispatchStartTemporaryDetach(android.view.View);
+ method public static void enableAccessibleClickableSpanSupport(android.view.View);
+ method public static int generateViewId();
+ method public static androidx.core.view.AccessibilityDelegateCompat? getAccessibilityDelegate(android.view.View);
+ method public static int getAccessibilityLiveRegion(android.view.View);
+ method public static androidx.core.view.accessibility.AccessibilityNodeProviderCompat? getAccessibilityNodeProvider(android.view.View);
+ method @UiThread public static CharSequence? getAccessibilityPaneTitle(android.view.View);
+ method @Deprecated public static float getAlpha(android.view.View!);
+ method public static android.content.res.ColorStateList? getBackgroundTintList(android.view.View);
+ method public static android.graphics.PorterDuff.Mode? getBackgroundTintMode(android.view.View);
+ method public static android.graphics.Rect? getClipBounds(android.view.View);
+ method public static android.view.Display? getDisplay(android.view.View);
+ method public static float getElevation(android.view.View);
+ method public static boolean getFitsSystemWindows(android.view.View);
+ method public static int getImportantForAccessibility(android.view.View);
+ method public static int getImportantForAutofill(android.view.View);
+ method public static int getLabelFor(android.view.View);
+ method @Deprecated public static int getLayerType(android.view.View!);
+ method public static int getLayoutDirection(android.view.View);
+ method @Deprecated public static android.graphics.Matrix? getMatrix(android.view.View!);
+ method @Deprecated public static int getMeasuredHeightAndState(android.view.View!);
+ method @Deprecated public static int getMeasuredState(android.view.View!);
+ method @Deprecated public static int getMeasuredWidthAndState(android.view.View!);
+ method public static int getMinimumHeight(android.view.View);
+ method public static int getMinimumWidth(android.view.View);
+ method public static int getNextClusterForwardId(android.view.View);
+ method public static String![]? getOnReceiveContentMimeTypes(android.view.View);
+ method @Deprecated public static int getOverScrollMode(android.view.View!);
+ method @Px public static int getPaddingEnd(android.view.View);
+ method @Px public static int getPaddingStart(android.view.View);
+ method public static android.view.ViewParent? getParentForAccessibility(android.view.View);
+ method @Deprecated public static float getPivotX(android.view.View!);
+ method @Deprecated public static float getPivotY(android.view.View!);
+ method public static androidx.core.view.WindowInsetsCompat? getRootWindowInsets(android.view.View);
+ method @Deprecated public static float getRotation(android.view.View!);
+ method @Deprecated public static float getRotationX(android.view.View!);
+ method @Deprecated public static float getRotationY(android.view.View!);
+ method @Deprecated public static float getScaleX(android.view.View!);
+ method @Deprecated public static float getScaleY(android.view.View!);
+ method public static int getScrollIndicators(android.view.View);
+ method @UiThread public static CharSequence? getStateDescription(android.view.View);
+ method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
+ method public static String? getTransitionName(android.view.View);
+ method @Deprecated public static float getTranslationX(android.view.View!);
+ method @Deprecated public static float getTranslationY(android.view.View!);
+ method public static float getTranslationZ(android.view.View);
+ method @Deprecated public static androidx.core.view.WindowInsetsControllerCompat? getWindowInsetsController(android.view.View);
+ method @Deprecated public static int getWindowSystemUiVisibility(android.view.View);
+ method @Deprecated public static float getX(android.view.View!);
+ method @Deprecated public static float getY(android.view.View!);
+ method public static float getZ(android.view.View);
+ method public static boolean hasAccessibilityDelegate(android.view.View);
+ method public static boolean hasExplicitFocusable(android.view.View);
+ method public static boolean hasNestedScrollingParent(android.view.View);
+ method public static boolean hasNestedScrollingParent(android.view.View, int);
+ method public static boolean hasOnClickListeners(android.view.View);
+ method public static boolean hasOverlappingRendering(android.view.View);
+ method public static boolean hasTransientState(android.view.View);
+ method @UiThread public static boolean isAccessibilityHeading(android.view.View);
+ method public static boolean isAttachedToWindow(android.view.View);
+ method public static boolean isFocusedByDefault(android.view.View);
+ method public static boolean isImportantForAccessibility(android.view.View);
+ method public static boolean isImportantForAutofill(android.view.View);
+ method public static boolean isInLayout(android.view.View);
+ method public static boolean isKeyboardNavigationCluster(android.view.View);
+ method public static boolean isLaidOut(android.view.View);
+ method public static boolean isLayoutDirectionResolved(android.view.View);
+ method public static boolean isNestedScrollingEnabled(android.view.View);
+ method @Deprecated public static boolean isOpaque(android.view.View!);
+ method public static boolean isPaddingRelative(android.view.View);
+ method @UiThread public static boolean isScreenReaderFocusable(android.view.View);
+ method @Deprecated public static void jumpDrawablesToCurrentState(android.view.View!);
+ method public static android.view.View? keyboardNavigationClusterSearch(android.view.View, android.view.View?, int);
+ method public static void offsetLeftAndRight(android.view.View, int);
+ method public static void offsetTopAndBottom(android.view.View, int);
+ method public static androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat);
+ method @Deprecated public static void onInitializeAccessibilityEvent(android.view.View!, android.view.accessibility.AccessibilityEvent!);
+ method public static void onInitializeAccessibilityNodeInfo(android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat);
+ method @Deprecated public static void onPopulateAccessibilityEvent(android.view.View!, android.view.accessibility.AccessibilityEvent!);
+ method public static boolean performAccessibilityAction(android.view.View, int, android.os.Bundle?);
+ method public static androidx.core.view.ContentInfoCompat? performReceiveContent(android.view.View, androidx.core.view.ContentInfoCompat);
+ method public static void postInvalidateOnAnimation(android.view.View);
+ method public static void postInvalidateOnAnimation(android.view.View, int, int, int, int);
+ method public static void postOnAnimation(android.view.View, Runnable);
+ method public static void postOnAnimationDelayed(android.view.View, Runnable, long);
+ method public static void removeAccessibilityAction(android.view.View, int);
+ method public static void removeOnUnhandledKeyEventListener(android.view.View, androidx.core.view.ViewCompat.OnUnhandledKeyEventListenerCompat);
+ method public static void replaceAccessibilityAction(android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat, CharSequence?, androidx.core.view.accessibility.AccessibilityViewCommand?);
+ method public static void requestApplyInsets(android.view.View);
+ method public static <T extends android.view.View> T requireViewById(android.view.View, @IdRes int);
+ method @Deprecated public static int resolveSizeAndState(int, int, int);
+ method public static boolean restoreDefaultFocus(android.view.View);
+ method public static void saveAttributeDataForStyleable(android.view.View, android.content.Context, int[], android.util.AttributeSet?, android.content.res.TypedArray, int, int);
+ method public static void setAccessibilityDelegate(android.view.View, androidx.core.view.AccessibilityDelegateCompat?);
+ method @UiThread public static void setAccessibilityHeading(android.view.View, boolean);
+ method public static void setAccessibilityLiveRegion(android.view.View, int);
+ method @UiThread public static void setAccessibilityPaneTitle(android.view.View, CharSequence?);
+ method @Deprecated public static void setActivated(android.view.View!, boolean);
+ method @Deprecated public static void setAlpha(android.view.View!, @FloatRange(from=0.0, to=1.0) float);
+ method public static void setAutofillHints(android.view.View, java.lang.String!...);
+ method public static void setBackground(android.view.View, android.graphics.drawable.Drawable?);
+ method public static void setBackgroundTintList(android.view.View, android.content.res.ColorStateList?);
+ method public static void setBackgroundTintMode(android.view.View, android.graphics.PorterDuff.Mode?);
+ method @Deprecated public static void setChildrenDrawingOrderEnabled(android.view.ViewGroup!, boolean);
+ method public static void setClipBounds(android.view.View, android.graphics.Rect?);
+ method public static void setElevation(android.view.View, float);
+ method @Deprecated public static void setFitsSystemWindows(android.view.View!, boolean);
+ method public static void setFocusedByDefault(android.view.View, boolean);
+ method public static void setHasTransientState(android.view.View, boolean);
+ method @UiThread public static void setImportantForAccessibility(android.view.View, int);
+ method public static void setImportantForAutofill(android.view.View, int);
+ method public static void setKeyboardNavigationCluster(android.view.View, boolean);
+ method public static void setLabelFor(android.view.View, @IdRes int);
+ method public static void setLayerPaint(android.view.View, android.graphics.Paint?);
+ method @Deprecated public static void setLayerType(android.view.View!, int, android.graphics.Paint!);
+ method public static void setLayoutDirection(android.view.View, int);
+ method public static void setNestedScrollingEnabled(android.view.View, boolean);
+ method public static void setNextClusterForwardId(android.view.View, int);
+ method public static void setOnApplyWindowInsetsListener(android.view.View, androidx.core.view.OnApplyWindowInsetsListener?);
+ method public static void setOnReceiveContentListener(android.view.View, String![]?, androidx.core.view.OnReceiveContentListener?);
+ method @Deprecated public static void setOverScrollMode(android.view.View!, int);
+ method public static void setPaddingRelative(android.view.View, @Px int, @Px int, @Px int, @Px int);
+ method @Deprecated public static void setPivotX(android.view.View!, float);
+ method @Deprecated public static void setPivotY(android.view.View!, float);
+ method public static void setPointerIcon(android.view.View, androidx.core.view.PointerIconCompat?);
+ method @Deprecated public static void setRotation(android.view.View!, float);
+ method @Deprecated public static void setRotationX(android.view.View!, float);
+ method @Deprecated public static void setRotationY(android.view.View!, float);
+ method @Deprecated public static void setSaveFromParentEnabled(android.view.View!, boolean);
+ method @Deprecated public static void setScaleX(android.view.View!, float);
+ method @Deprecated public static void setScaleY(android.view.View!, float);
+ method @UiThread public static void setScreenReaderFocusable(android.view.View, boolean);
+ method public static void setScrollIndicators(android.view.View, int);
+ method public static void setScrollIndicators(android.view.View, int, int);
+ method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
+ method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
+ method public static void setTooltipText(android.view.View, CharSequence?);
+ method public static void setTransitionName(android.view.View, String?);
+ method @Deprecated public static void setTranslationX(android.view.View!, float);
+ method @Deprecated public static void setTranslationY(android.view.View!, float);
+ method public static void setTranslationZ(android.view.View, float);
+ method public static void setWindowInsetsAnimationCallback(android.view.View, androidx.core.view.WindowInsetsAnimationCompat.Callback?);
+ method @Deprecated public static void setX(android.view.View!, float);
+ method @Deprecated public static void setY(android.view.View!, float);
+ method public static void setZ(android.view.View, float);
+ method public static boolean startDragAndDrop(android.view.View, android.content.ClipData?, android.view.View.DragShadowBuilder, Object?, int);
+ method public static boolean startNestedScroll(android.view.View, int);
+ method public static boolean startNestedScroll(android.view.View, int, int);
+ method public static void stopNestedScroll(android.view.View);
+ method public static void stopNestedScroll(android.view.View, int);
+ method public static void updateDragShadow(android.view.View, android.view.View.DragShadowBuilder);
+ field public static final int ACCESSIBILITY_LIVE_REGION_ASSERTIVE = 2; // 0x2
+ field public static final int ACCESSIBILITY_LIVE_REGION_NONE = 0; // 0x0
+ field public static final int ACCESSIBILITY_LIVE_REGION_POLITE = 1; // 0x1
+ field public static final int IMPORTANT_FOR_ACCESSIBILITY_AUTO = 0; // 0x0
+ field public static final int IMPORTANT_FOR_ACCESSIBILITY_NO = 2; // 0x2
+ field public static final int IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS = 4; // 0x4
+ field public static final int IMPORTANT_FOR_ACCESSIBILITY_YES = 1; // 0x1
+ field @Deprecated public static final int LAYER_TYPE_HARDWARE = 2; // 0x2
+ field @Deprecated public static final int LAYER_TYPE_NONE = 0; // 0x0
+ field @Deprecated public static final int LAYER_TYPE_SOFTWARE = 1; // 0x1
+ field public static final int LAYOUT_DIRECTION_INHERIT = 2; // 0x2
+ field public static final int LAYOUT_DIRECTION_LOCALE = 3; // 0x3
+ field public static final int LAYOUT_DIRECTION_LTR = 0; // 0x0
+ field public static final int LAYOUT_DIRECTION_RTL = 1; // 0x1
+ field @Deprecated public static final int MEASURED_HEIGHT_STATE_SHIFT = 16; // 0x10
+ field @Deprecated public static final int MEASURED_SIZE_MASK = 16777215; // 0xffffff
+ field @Deprecated public static final int MEASURED_STATE_MASK = -16777216; // 0xff000000
+ field @Deprecated public static final int MEASURED_STATE_TOO_SMALL = 16777216; // 0x1000000
+ field @Deprecated public static final int OVER_SCROLL_ALWAYS = 0; // 0x0
+ field @Deprecated public static final int OVER_SCROLL_IF_CONTENT_SCROLLS = 1; // 0x1
+ field @Deprecated public static final int OVER_SCROLL_NEVER = 2; // 0x2
+ field public static final int SCROLL_AXIS_HORIZONTAL = 1; // 0x1
+ field public static final int SCROLL_AXIS_NONE = 0; // 0x0
+ field public static final int SCROLL_AXIS_VERTICAL = 2; // 0x2
+ field public static final int SCROLL_INDICATOR_BOTTOM = 2; // 0x2
+ field public static final int SCROLL_INDICATOR_END = 32; // 0x20
+ field public static final int SCROLL_INDICATOR_LEFT = 4; // 0x4
+ field public static final int SCROLL_INDICATOR_RIGHT = 8; // 0x8
+ field public static final int SCROLL_INDICATOR_START = 16; // 0x10
+ field public static final int SCROLL_INDICATOR_TOP = 1; // 0x1
+ field public static final int TYPE_NON_TOUCH = 1; // 0x1
+ field public static final int TYPE_TOUCH = 0; // 0x0
+ }
+
+ public static interface ViewCompat.OnUnhandledKeyEventListenerCompat {
+ method public boolean onUnhandledKeyEvent(android.view.View, android.view.KeyEvent);
+ }
+
+ public final class ViewConfigurationCompat {
+ method public static float getScaledHorizontalScrollFactor(android.view.ViewConfiguration, android.content.Context);
+ method public static int getScaledHoverSlop(android.view.ViewConfiguration);
+ method @Deprecated public static int getScaledPagingTouchSlop(android.view.ViewConfiguration!);
+ method public static float getScaledVerticalScrollFactor(android.view.ViewConfiguration, android.content.Context);
+ method @Deprecated public static boolean hasPermanentMenuKey(android.view.ViewConfiguration!);
+ method public static boolean shouldShowMenuShortcutsWhenKeyboardPresent(android.view.ViewConfiguration, android.content.Context);
+ }
+
+ public final class ViewGroupCompat {
+ method public static int getLayoutMode(android.view.ViewGroup);
+ method public static int getNestedScrollAxes(android.view.ViewGroup);
+ method public static boolean isTransitionGroup(android.view.ViewGroup);
+ method @Deprecated public static boolean onRequestSendAccessibilityEvent(android.view.ViewGroup!, android.view.View!, android.view.accessibility.AccessibilityEvent!);
+ method public static void setLayoutMode(android.view.ViewGroup, int);
+ method @Deprecated public static void setMotionEventSplittingEnabled(android.view.ViewGroup!, boolean);
+ method public static void setTransitionGroup(android.view.ViewGroup, boolean);
+ field public static final int LAYOUT_MODE_CLIP_BOUNDS = 0; // 0x0
+ field public static final int LAYOUT_MODE_OPTICAL_BOUNDS = 1; // 0x1
+ }
+
+ public final class ViewParentCompat {
+ method public static void notifySubtreeAccessibilityStateChanged(android.view.ViewParent, android.view.View, android.view.View, int);
+ method public static boolean onNestedFling(android.view.ViewParent, android.view.View, float, float, boolean);
+ method public static boolean onNestedPreFling(android.view.ViewParent, android.view.View, float, float);
+ method public static void onNestedPreScroll(android.view.ViewParent, android.view.View, int, int, int[]);
+ method public static void onNestedPreScroll(android.view.ViewParent, android.view.View, int, int, int[], int);
+ method public static void onNestedScroll(android.view.ViewParent, android.view.View, int, int, int, int);
+ method public static void onNestedScroll(android.view.ViewParent, android.view.View, int, int, int, int, int);
+ method public static void onNestedScroll(android.view.ViewParent, android.view.View, int, int, int, int, int, int[]);
+ method public static void onNestedScrollAccepted(android.view.ViewParent, android.view.View, android.view.View, int);
+ method public static void onNestedScrollAccepted(android.view.ViewParent, android.view.View, android.view.View, int, int);
+ method public static boolean onStartNestedScroll(android.view.ViewParent, android.view.View, android.view.View, int);
+ method public static boolean onStartNestedScroll(android.view.ViewParent, android.view.View, android.view.View, int, int);
+ method public static void onStopNestedScroll(android.view.ViewParent, android.view.View);
+ method public static void onStopNestedScroll(android.view.ViewParent, android.view.View, int);
+ method @Deprecated public static boolean requestSendAccessibilityEvent(android.view.ViewParent!, android.view.View!, android.view.accessibility.AccessibilityEvent!);
+ }
+
+ public final class ViewPropertyAnimatorCompat {
+ method public androidx.core.view.ViewPropertyAnimatorCompat alpha(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat alphaBy(float);
+ method public void cancel();
+ method public long getDuration();
+ method public android.view.animation.Interpolator? getInterpolator();
+ method public long getStartDelay();
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotation(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotationBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotationX(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotationXBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotationY(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotationYBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat scaleX(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat scaleXBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat scaleY(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat scaleYBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat setDuration(long);
+ method public androidx.core.view.ViewPropertyAnimatorCompat setInterpolator(android.view.animation.Interpolator?);
+ method public androidx.core.view.ViewPropertyAnimatorCompat setListener(androidx.core.view.ViewPropertyAnimatorListener?);
+ method public androidx.core.view.ViewPropertyAnimatorCompat setStartDelay(long);
+ method public androidx.core.view.ViewPropertyAnimatorCompat setUpdateListener(androidx.core.view.ViewPropertyAnimatorUpdateListener?);
+ method public void start();
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationX(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationXBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationY(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationYBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationZ(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationZBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat withEndAction(Runnable);
+ method public androidx.core.view.ViewPropertyAnimatorCompat withLayer();
+ method public androidx.core.view.ViewPropertyAnimatorCompat withStartAction(Runnable);
+ method public androidx.core.view.ViewPropertyAnimatorCompat x(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat xBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat y(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat yBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat z(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat zBy(float);
+ }
+
+ public interface ViewPropertyAnimatorListener {
+ method public void onAnimationCancel(android.view.View);
+ method public void onAnimationEnd(android.view.View);
+ method public void onAnimationStart(android.view.View);
+ }
+
+ public class ViewPropertyAnimatorListenerAdapter implements androidx.core.view.ViewPropertyAnimatorListener {
+ ctor public ViewPropertyAnimatorListenerAdapter();
+ method public void onAnimationCancel(android.view.View);
+ method public void onAnimationEnd(android.view.View);
+ method public void onAnimationStart(android.view.View);
+ }
+
+ public interface ViewPropertyAnimatorUpdateListener {
+ method public void onAnimationUpdate(android.view.View);
+ }
+
+ public final class WindowCompat {
+ method public static androidx.core.view.WindowInsetsControllerCompat getInsetsController(android.view.Window, android.view.View);
+ method public static <T extends android.view.View> T requireViewById(android.view.Window, @IdRes int);
+ method public static void setDecorFitsSystemWindows(android.view.Window, boolean);
+ field public static final int FEATURE_ACTION_BAR = 8; // 0x8
+ field public static final int FEATURE_ACTION_BAR_OVERLAY = 9; // 0x9
+ field public static final int FEATURE_ACTION_MODE_OVERLAY = 10; // 0xa
+ }
+
+ public final class WindowInsetsAnimationCompat {
+ ctor public WindowInsetsAnimationCompat(int, android.view.animation.Interpolator?, long);
+ method @FloatRange(from=0.0f, to=1.0f) public float getAlpha();
+ method public long getDurationMillis();
+ method @FloatRange(from=0.0f, to=1.0f) public float getFraction();
+ method public float getInterpolatedFraction();
+ method public android.view.animation.Interpolator? getInterpolator();
+ method public int getTypeMask();
+ method public void setAlpha(@FloatRange(from=0.0f, to=1.0f) float);
+ method public void setFraction(@FloatRange(from=0.0f, to=1.0f) float);
+ }
+
+ public static final class WindowInsetsAnimationCompat.BoundsCompat {
+ ctor public WindowInsetsAnimationCompat.BoundsCompat(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+ method public androidx.core.graphics.Insets getLowerBound();
+ method public androidx.core.graphics.Insets getUpperBound();
+ method public androidx.core.view.WindowInsetsAnimationCompat.BoundsCompat inset(androidx.core.graphics.Insets);
+ method @RequiresApi(30) public android.view.WindowInsetsAnimation.Bounds toBounds();
+ method @RequiresApi(30) public static androidx.core.view.WindowInsetsAnimationCompat.BoundsCompat toBoundsCompat(android.view.WindowInsetsAnimation.Bounds);
+ }
+
+ public abstract static class WindowInsetsAnimationCompat.Callback {
+ ctor public WindowInsetsAnimationCompat.Callback(int);
+ method public final int getDispatchMode();
+ method public void onEnd(androidx.core.view.WindowInsetsAnimationCompat);
+ method public void onPrepare(androidx.core.view.WindowInsetsAnimationCompat);
+ method public abstract androidx.core.view.WindowInsetsCompat onProgress(androidx.core.view.WindowInsetsCompat, java.util.List<androidx.core.view.WindowInsetsAnimationCompat!>);
+ method public androidx.core.view.WindowInsetsAnimationCompat.BoundsCompat onStart(androidx.core.view.WindowInsetsAnimationCompat, androidx.core.view.WindowInsetsAnimationCompat.BoundsCompat);
+ field public static final int DISPATCH_MODE_CONTINUE_ON_SUBTREE = 1; // 0x1
+ field public static final int DISPATCH_MODE_STOP = 0; // 0x0
+ }
+
+ public interface WindowInsetsAnimationControlListenerCompat {
+ method public void onCancelled(androidx.core.view.WindowInsetsAnimationControllerCompat?);
+ method public void onFinished(androidx.core.view.WindowInsetsAnimationControllerCompat);
+ method public void onReady(androidx.core.view.WindowInsetsAnimationControllerCompat, int);
+ }
+
+ public final class WindowInsetsAnimationControllerCompat {
+ method public void finish(boolean);
+ method public float getCurrentAlpha();
+ method @FloatRange(from=0.0f, to=1.0f) public float getCurrentFraction();
+ method public androidx.core.graphics.Insets getCurrentInsets();
+ method public androidx.core.graphics.Insets getHiddenStateInsets();
+ method public androidx.core.graphics.Insets getShownStateInsets();
+ method public int getTypes();
+ method public boolean isCancelled();
+ method public boolean isFinished();
+ method public boolean isReady();
+ method public void setInsetsAndAlpha(androidx.core.graphics.Insets?, @FloatRange(from=0.0f, to=1.0f) float, @FloatRange(from=0.0f, to=1.0f) float);
+ }
+
+ public class WindowInsetsCompat {
+ ctor public WindowInsetsCompat(androidx.core.view.WindowInsetsCompat?);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat consumeDisplayCutout();
+ method @Deprecated public androidx.core.view.WindowInsetsCompat consumeStableInsets();
+ method @Deprecated public androidx.core.view.WindowInsetsCompat consumeSystemWindowInsets();
+ method public androidx.core.view.DisplayCutoutCompat? getDisplayCutout();
+ method public androidx.core.graphics.Insets getInsets(int);
+ method public androidx.core.graphics.Insets getInsetsIgnoringVisibility(int);
+ method @Deprecated public androidx.core.graphics.Insets getMandatorySystemGestureInsets();
+ method @Deprecated public int getStableInsetBottom();
+ method @Deprecated public int getStableInsetLeft();
+ method @Deprecated public int getStableInsetRight();
+ method @Deprecated public int getStableInsetTop();
+ method @Deprecated public androidx.core.graphics.Insets getStableInsets();
+ method @Deprecated public androidx.core.graphics.Insets getSystemGestureInsets();
+ method @Deprecated public int getSystemWindowInsetBottom();
+ method @Deprecated public int getSystemWindowInsetLeft();
+ method @Deprecated public int getSystemWindowInsetRight();
+ method @Deprecated public int getSystemWindowInsetTop();
+ method @Deprecated public androidx.core.graphics.Insets getSystemWindowInsets();
+ method @Deprecated public androidx.core.graphics.Insets getTappableElementInsets();
+ method public boolean hasInsets();
+ method @Deprecated public boolean hasStableInsets();
+ method @Deprecated public boolean hasSystemWindowInsets();
+ method public androidx.core.view.WindowInsetsCompat inset(androidx.core.graphics.Insets);
+ method public androidx.core.view.WindowInsetsCompat inset(@IntRange(from=0) int, @IntRange(from=0) int, @IntRange(from=0) int, @IntRange(from=0) int);
+ method public boolean isConsumed();
+ method public boolean isRound();
+ method public boolean isVisible(int);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat replaceSystemWindowInsets(int, int, int, int);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat replaceSystemWindowInsets(android.graphics.Rect);
+ method @RequiresApi(20) public android.view.WindowInsets? toWindowInsets();
+ method @RequiresApi(20) public static androidx.core.view.WindowInsetsCompat toWindowInsetsCompat(android.view.WindowInsets);
+ method @RequiresApi(20) public static androidx.core.view.WindowInsetsCompat toWindowInsetsCompat(android.view.WindowInsets, android.view.View?);
+ field public static final androidx.core.view.WindowInsetsCompat CONSUMED;
+ }
+
+ public static final class WindowInsetsCompat.Builder {
+ ctor public WindowInsetsCompat.Builder();
+ ctor public WindowInsetsCompat.Builder(androidx.core.view.WindowInsetsCompat);
+ method public androidx.core.view.WindowInsetsCompat build();
+ method public androidx.core.view.WindowInsetsCompat.Builder setDisplayCutout(androidx.core.view.DisplayCutoutCompat?);
+ method public androidx.core.view.WindowInsetsCompat.Builder setInsets(int, androidx.core.graphics.Insets);
+ method public androidx.core.view.WindowInsetsCompat.Builder setInsetsIgnoringVisibility(int, androidx.core.graphics.Insets);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setMandatorySystemGestureInsets(androidx.core.graphics.Insets);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setStableInsets(androidx.core.graphics.Insets);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setSystemGestureInsets(androidx.core.graphics.Insets);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setSystemWindowInsets(androidx.core.graphics.Insets);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setTappableElementInsets(androidx.core.graphics.Insets);
+ method public androidx.core.view.WindowInsetsCompat.Builder setVisible(int, boolean);
+ }
+
+ public static final class WindowInsetsCompat.Type {
+ method public static int captionBar();
+ method public static int displayCutout();
+ method public static int ime();
+ method public static int mandatorySystemGestures();
+ method public static int navigationBars();
+ method public static int statusBars();
+ method public static int systemBars();
+ method public static int systemGestures();
+ method public static int tappableElement();
+ }
+
+ public final class WindowInsetsControllerCompat {
+ ctor public WindowInsetsControllerCompat(android.view.Window, android.view.View);
+ method public void addOnControllableInsetsChangedListener(androidx.core.view.WindowInsetsControllerCompat.OnControllableInsetsChangedListener);
+ method public void controlWindowInsetsAnimation(int, long, android.view.animation.Interpolator?, android.os.CancellationSignal?, androidx.core.view.WindowInsetsAnimationControlListenerCompat);
+ method public int getSystemBarsBehavior();
+ method public void hide(int);
+ method public boolean isAppearanceLightNavigationBars();
+ method public boolean isAppearanceLightStatusBars();
+ method public void removeOnControllableInsetsChangedListener(androidx.core.view.WindowInsetsControllerCompat.OnControllableInsetsChangedListener);
+ method public void setAppearanceLightNavigationBars(boolean);
+ method public void setAppearanceLightStatusBars(boolean);
+ method public void setSystemBarsBehavior(int);
+ method public void show(int);
+ method @Deprecated @RequiresApi(30) public static androidx.core.view.WindowInsetsControllerCompat toWindowInsetsControllerCompat(android.view.WindowInsetsController);
+ field public static final int BEHAVIOR_SHOW_BARS_BY_SWIPE = 1; // 0x1
+ field public static final int BEHAVIOR_SHOW_BARS_BY_TOUCH = 0; // 0x0
+ field public static final int BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE = 2; // 0x2
+ }
+
+ public static interface WindowInsetsControllerCompat.OnControllableInsetsChangedListener {
+ method public void onControllableInsetsChanged(androidx.core.view.WindowInsetsControllerCompat, int);
+ }
+
+}
+
+package androidx.core.view.accessibility {
+
+ public final class AccessibilityClickableSpanCompat extends android.text.style.ClickableSpan {
+ method public void onClick(android.view.View);
+ }
+
+ public final class AccessibilityEventCompat {
+ method @Deprecated public static void appendRecord(android.view.accessibility.AccessibilityEvent!, androidx.core.view.accessibility.AccessibilityRecordCompat!);
+ method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! asRecord(android.view.accessibility.AccessibilityEvent!);
+ method public static int getAction(android.view.accessibility.AccessibilityEvent);
+ method public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent);
+ method public static int getMovementGranularity(android.view.accessibility.AccessibilityEvent);
+ method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! getRecord(android.view.accessibility.AccessibilityEvent!, int);
+ method @Deprecated public static int getRecordCount(android.view.accessibility.AccessibilityEvent!);
+ method public static void setAction(android.view.accessibility.AccessibilityEvent, int);
+ method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent, int);
+ method public static void setMovementGranularity(android.view.accessibility.AccessibilityEvent, int);
+ field public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 4; // 0x4
+ field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
+ field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
+ field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+ field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
+ field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
+ field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
+ field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
+ field public static final int TYPES_ALL_MASK = -1; // 0xffffffff
+ field public static final int TYPE_ANNOUNCEMENT = 16384; // 0x4000
+ field public static final int TYPE_ASSIST_READING_CONTEXT = 16777216; // 0x1000000
+ field public static final int TYPE_GESTURE_DETECTION_END = 524288; // 0x80000
+ field public static final int TYPE_GESTURE_DETECTION_START = 262144; // 0x40000
+ field @Deprecated public static final int TYPE_TOUCH_EXPLORATION_GESTURE_END = 1024; // 0x400
+ field @Deprecated public static final int TYPE_TOUCH_EXPLORATION_GESTURE_START = 512; // 0x200
+ field public static final int TYPE_TOUCH_INTERACTION_END = 2097152; // 0x200000
+ field public static final int TYPE_TOUCH_INTERACTION_START = 1048576; // 0x100000
+ field public static final int TYPE_VIEW_ACCESSIBILITY_FOCUSED = 32768; // 0x8000
+ field public static final int TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED = 65536; // 0x10000
+ field public static final int TYPE_VIEW_CONTEXT_CLICKED = 8388608; // 0x800000
+ field @Deprecated public static final int TYPE_VIEW_HOVER_ENTER = 128; // 0x80
+ field @Deprecated public static final int TYPE_VIEW_HOVER_EXIT = 256; // 0x100
+ field @Deprecated public static final int TYPE_VIEW_SCROLLED = 4096; // 0x1000
+ field @Deprecated public static final int TYPE_VIEW_TEXT_SELECTION_CHANGED = 8192; // 0x2000
+ field public static final int TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY = 131072; // 0x20000
+ field public static final int TYPE_WINDOWS_CHANGED = 4194304; // 0x400000
+ field @Deprecated public static final int TYPE_WINDOW_CONTENT_CHANGED = 2048; // 0x800
+ }
+
+ public final class AccessibilityManagerCompat {
+ method @Deprecated public static boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener!);
+ method public static boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager, androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener);
+ method @Deprecated public static java.util.List<android.accessibilityservice.AccessibilityServiceInfo!>! getEnabledAccessibilityServiceList(android.view.accessibility.AccessibilityManager!, int);
+ method @Deprecated public static java.util.List<android.accessibilityservice.AccessibilityServiceInfo!>! getInstalledAccessibilityServiceList(android.view.accessibility.AccessibilityManager!);
+ method @Deprecated public static boolean isTouchExplorationEnabled(android.view.accessibility.AccessibilityManager!);
+ method @Deprecated public static boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener!);
+ method public static boolean removeTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager, androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener);
+ }
+
+ @Deprecated public static interface AccessibilityManagerCompat.AccessibilityStateChangeListener {
+ method @Deprecated public void onAccessibilityStateChanged(boolean);
+ }
+
+ @Deprecated public abstract static class AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat implements androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener {
+ ctor @Deprecated public AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat();
+ }
+
+ public static interface AccessibilityManagerCompat.TouchExplorationStateChangeListener {
+ method public void onTouchExplorationStateChanged(boolean);
+ }
+
+ public class AccessibilityNodeInfoCompat {
+ ctor @Deprecated public AccessibilityNodeInfoCompat(Object!);
+ method public void addAction(int);
+ method public void addAction(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat!);
+ method public void addChild(android.view.View!);
+ method public void addChild(android.view.View!, int);
+ method public boolean canOpenPopup();
+ method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat!>! findAccessibilityNodeInfosByText(String!);
+ method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat!>! findAccessibilityNodeInfosByViewId(String!);
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! findFocus(int);
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! focusSearch(int);
+ method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat!>! getActionList();
+ method public int getActions();
+ method public java.util.List<java.lang.String!> getAvailableExtraData();
+ method @Deprecated public void getBoundsInParent(android.graphics.Rect!);
+ method public void getBoundsInScreen(android.graphics.Rect!);
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getChild(int);
+ method public int getChildCount();
+ method public CharSequence! getClassName();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat! getCollectionInfo();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat! getCollectionItemInfo();
+ method public CharSequence! getContentDescription();
+ method public int getDrawingOrder();
+ method public CharSequence! getError();
+ method public android.os.Bundle! getExtras();
+ method public CharSequence? getHintText();
+ method @Deprecated public Object! getInfo();
+ method public int getInputType();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getLabelFor();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getLabeledBy();
+ method public int getLiveRegion();
+ method public int getMaxTextLength();
+ method public int getMovementGranularities();
+ method public CharSequence! getPackageName();
+ method public CharSequence? getPaneTitle();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
+ method public CharSequence? getRoleDescription();
+ method public CharSequence? getStateDescription();
+ method public CharSequence! getText();
+ method public int getTextSelectionEnd();
+ method public int getTextSelectionStart();
+ method public CharSequence? getTooltipText();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.TouchDelegateInfoCompat? getTouchDelegateInfo();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getTraversalAfter();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getTraversalBefore();
+ method public String! getViewIdResourceName();
+ method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat! getWindow();
+ method public int getWindowId();
+ method public boolean isAccessibilityFocused();
+ method public boolean isCheckable();
+ method public boolean isChecked();
+ method public boolean isClickable();
+ method public boolean isContentInvalid();
+ method public boolean isContextClickable();
+ method public boolean isDismissable();
+ method public boolean isEditable();
+ method public boolean isEnabled();
+ method public boolean isFocusable();
+ method public boolean isFocused();
+ method public boolean isHeading();
+ method public boolean isImportantForAccessibility();
+ method public boolean isLongClickable();
+ method public boolean isMultiLine();
+ method public boolean isPassword();
+ method public boolean isScreenReaderFocusable();
+ method public boolean isScrollable();
+ method public boolean isSelected();
+ method public boolean isShowingHintText();
+ method public boolean isTextEntryKey();
+ method public boolean isVisibleToUser();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain(android.view.View!);
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain(android.view.View!, int);
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain(androidx.core.view.accessibility.AccessibilityNodeInfoCompat!);
+ method public boolean performAction(int);
+ method public boolean performAction(int, android.os.Bundle!);
+ method public void recycle();
+ method public boolean refresh();
+ method public boolean removeAction(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat!);
+ method public boolean removeChild(android.view.View!);
+ method public boolean removeChild(android.view.View!, int);
+ method public void setAccessibilityFocused(boolean);
+ method public void setAvailableExtraData(java.util.List<java.lang.String!>);
+ method @Deprecated public void setBoundsInParent(android.graphics.Rect!);
+ method public void setBoundsInScreen(android.graphics.Rect!);
+ method public void setCanOpenPopup(boolean);
+ method public void setCheckable(boolean);
+ method public void setChecked(boolean);
+ method public void setClassName(CharSequence!);
+ method public void setClickable(boolean);
+ method public void setCollectionInfo(Object!);
+ method public void setCollectionItemInfo(Object!);
+ method public void setContentDescription(CharSequence!);
+ method public void setContentInvalid(boolean);
+ method public void setContextClickable(boolean);
+ method public void setDismissable(boolean);
+ method public void setDrawingOrder(int);
+ method public void setEditable(boolean);
+ method public void setEnabled(boolean);
+ method public void setError(CharSequence!);
+ method public void setFocusable(boolean);
+ method public void setFocused(boolean);
+ method public void setHeading(boolean);
+ method public void setHintText(CharSequence?);
+ method public void setImportantForAccessibility(boolean);
+ method public void setInputType(int);
+ method public void setLabelFor(android.view.View!);
+ method public void setLabelFor(android.view.View!, int);
+ method public void setLabeledBy(android.view.View!);
+ method public void setLabeledBy(android.view.View!, int);
+ method public void setLiveRegion(int);
+ method public void setLongClickable(boolean);
+ method public void setMaxTextLength(int);
+ method public void setMovementGranularities(int);
+ method public void setMultiLine(boolean);
+ method public void setPackageName(CharSequence!);
+ method public void setPaneTitle(CharSequence?);
+ method public void setParent(android.view.View!);
+ method public void setParent(android.view.View!, int);
+ method public void setPassword(boolean);
+ method public void setRangeInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat!);
+ method public void setRoleDescription(CharSequence?);
+ method public void setScreenReaderFocusable(boolean);
+ method public void setScrollable(boolean);
+ method public void setSelected(boolean);
+ method public void setShowingHintText(boolean);
+ method public void setSource(android.view.View!);
+ method public void setSource(android.view.View!, int);
+ method public void setStateDescription(CharSequence?);
+ method public void setText(CharSequence!);
+ method public void setTextEntryKey(boolean);
+ method public void setTextSelection(int, int);
+ method public void setTooltipText(CharSequence?);
+ method public void setTouchDelegateInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.TouchDelegateInfoCompat);
+ method public void setTraversalAfter(android.view.View!);
+ method public void setTraversalAfter(android.view.View!, int);
+ method public void setTraversalBefore(android.view.View!);
+ method public void setTraversalBefore(android.view.View!, int);
+ method public void setViewIdResourceName(String!);
+ method public void setVisibleToUser(boolean);
+ method public android.view.accessibility.AccessibilityNodeInfo! unwrap();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! wrap(android.view.accessibility.AccessibilityNodeInfo);
+ field public static final int ACTION_ACCESSIBILITY_FOCUS = 64; // 0x40
+ field public static final String ACTION_ARGUMENT_COLUMN_INT = "android.view.accessibility.action.ARGUMENT_COLUMN_INT";
+ field public static final String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN = "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN";
+ field public static final String ACTION_ARGUMENT_HTML_ELEMENT_STRING = "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
+ field public static final String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT = "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT";
+ field public static final String ACTION_ARGUMENT_MOVE_WINDOW_X = "ACTION_ARGUMENT_MOVE_WINDOW_X";
+ field public static final String ACTION_ARGUMENT_MOVE_WINDOW_Y = "ACTION_ARGUMENT_MOVE_WINDOW_Y";
+ field public static final String ACTION_ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT = "android.view.accessibility.action.ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT";
+ field public static final String ACTION_ARGUMENT_PROGRESS_VALUE = "android.view.accessibility.action.ARGUMENT_PROGRESS_VALUE";
+ field public static final String ACTION_ARGUMENT_ROW_INT = "android.view.accessibility.action.ARGUMENT_ROW_INT";
+ field public static final String ACTION_ARGUMENT_SELECTION_END_INT = "ACTION_ARGUMENT_SELECTION_END_INT";
+ field public static final String ACTION_ARGUMENT_SELECTION_START_INT = "ACTION_ARGUMENT_SELECTION_START_INT";
+ field public static final String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE = "ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE";
+ field public static final int ACTION_CLEAR_ACCESSIBILITY_FOCUS = 128; // 0x80
+ field public static final int ACTION_CLEAR_FOCUS = 2; // 0x2
+ field public static final int ACTION_CLEAR_SELECTION = 8; // 0x8
+ field public static final int ACTION_CLICK = 16; // 0x10
+ field public static final int ACTION_COLLAPSE = 524288; // 0x80000
+ field public static final int ACTION_COPY = 16384; // 0x4000
+ field public static final int ACTION_CUT = 65536; // 0x10000
+ field public static final int ACTION_DISMISS = 1048576; // 0x100000
+ field public static final int ACTION_EXPAND = 262144; // 0x40000
+ field public static final int ACTION_FOCUS = 1; // 0x1
+ field public static final int ACTION_LONG_CLICK = 32; // 0x20
+ field public static final int ACTION_NEXT_AT_MOVEMENT_GRANULARITY = 256; // 0x100
+ field public static final int ACTION_NEXT_HTML_ELEMENT = 1024; // 0x400
+ field public static final int ACTION_PASTE = 32768; // 0x8000
+ field public static final int ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY = 512; // 0x200
+ field public static final int ACTION_PREVIOUS_HTML_ELEMENT = 2048; // 0x800
+ field public static final int ACTION_SCROLL_BACKWARD = 8192; // 0x2000
+ field public static final int ACTION_SCROLL_FORWARD = 4096; // 0x1000
+ field public static final int ACTION_SELECT = 4; // 0x4
+ field public static final int ACTION_SET_SELECTION = 131072; // 0x20000
+ field public static final int ACTION_SET_TEXT = 2097152; // 0x200000
+ field public static final int FOCUS_ACCESSIBILITY = 2; // 0x2
+ field public static final int FOCUS_INPUT = 1; // 0x1
+ field public static final int MOVEMENT_GRANULARITY_CHARACTER = 1; // 0x1
+ field public static final int MOVEMENT_GRANULARITY_LINE = 4; // 0x4
+ field public static final int MOVEMENT_GRANULARITY_PAGE = 16; // 0x10
+ field public static final int MOVEMENT_GRANULARITY_PARAGRAPH = 8; // 0x8
+ field public static final int MOVEMENT_GRANULARITY_WORD = 2; // 0x2
+ }
+
+ public static class AccessibilityNodeInfoCompat.AccessibilityActionCompat {
+ ctor public AccessibilityNodeInfoCompat.AccessibilityActionCompat(int, CharSequence!);
+ method public int getId();
+ method public CharSequence! getLabel();
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_ACCESSIBILITY_FOCUS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLEAR_ACCESSIBILITY_FOCUS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLEAR_FOCUS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLEAR_SELECTION;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLICK;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_COLLAPSE;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CONTEXT_CLICK;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_COPY;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CUT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_DISMISS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_EXPAND;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_FOCUS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_HIDE_TOOLTIP;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_IME_ENTER;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_LONG_CLICK;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_MOVE_WINDOW;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_NEXT_AT_MOVEMENT_GRANULARITY;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_NEXT_HTML_ELEMENT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PAGE_DOWN;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PAGE_LEFT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PAGE_RIGHT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PAGE_UP;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_PASTE;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PRESS_AND_HOLD;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_PREVIOUS_HTML_ELEMENT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_BACKWARD;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_DOWN;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_FORWARD;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_LEFT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_RIGHT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_TO_POSITION;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_UP;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SELECT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SET_PROGRESS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SET_SELECTION;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SET_TEXT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SHOW_ON_SCREEN;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SHOW_TOOLTIP;
+ }
+
+ public static class AccessibilityNodeInfoCompat.CollectionInfoCompat {
+ method public int getColumnCount();
+ method public int getRowCount();
+ method public int getSelectionMode();
+ method public boolean isHierarchical();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat! obtain(int, int, boolean, int);
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat! obtain(int, int, boolean);
+ field public static final int SELECTION_MODE_MULTIPLE = 2; // 0x2
+ field public static final int SELECTION_MODE_NONE = 0; // 0x0
+ field public static final int SELECTION_MODE_SINGLE = 1; // 0x1
+ }
+
+ public static class AccessibilityNodeInfoCompat.CollectionItemInfoCompat {
+ method public int getColumnIndex();
+ method public int getColumnSpan();
+ method public int getRowIndex();
+ method public int getRowSpan();
+ method @Deprecated public boolean isHeading();
+ method public boolean isSelected();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat! obtain(int, int, int, int, boolean, boolean);
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat! obtain(int, int, int, int, boolean);
+ }
+
+ public static class AccessibilityNodeInfoCompat.RangeInfoCompat {
+ method public float getCurrent();
+ method public float getMax();
+ method public float getMin();
+ method public int getType();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! obtain(int, float, float, float);
+ field public static final int RANGE_TYPE_FLOAT = 1; // 0x1
+ field public static final int RANGE_TYPE_INT = 0; // 0x0
+ field public static final int RANGE_TYPE_PERCENT = 2; // 0x2
+ }
+
+ public static final class AccessibilityNodeInfoCompat.TouchDelegateInfoCompat {
+ ctor public AccessibilityNodeInfoCompat.TouchDelegateInfoCompat(java.util.Map<android.graphics.Region!,android.view.View!>);
+ method public android.graphics.Region? getRegionAt(@IntRange(from=0) int);
+ method @IntRange(from=0) public int getRegionCount();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? getTargetForRegion(android.graphics.Region);
+ }
+
+ public class AccessibilityNodeProviderCompat {
+ ctor public AccessibilityNodeProviderCompat();
+ ctor public AccessibilityNodeProviderCompat(Object?);
+ method public void addExtraDataToAccessibilityNodeInfo(int, androidx.core.view.accessibility.AccessibilityNodeInfoCompat, String, android.os.Bundle?);
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? createAccessibilityNodeInfo(int);
+ method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat!>? findAccessibilityNodeInfosByText(String, int);
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? findFocus(int);
+ method public Object? getProvider();
+ method public boolean performAction(int, int, android.os.Bundle?);
+ field public static final int HOST_VIEW_ID = -1; // 0xffffffff
+ }
+
+ public class AccessibilityRecordCompat {
+ ctor @Deprecated public AccessibilityRecordCompat(Object!);
+ method @Deprecated public boolean equals(Object?);
+ method @Deprecated public int getAddedCount();
+ method @Deprecated public CharSequence! getBeforeText();
+ method @Deprecated public CharSequence! getClassName();
+ method @Deprecated public CharSequence! getContentDescription();
+ method @Deprecated public int getCurrentItemIndex();
+ method @Deprecated public int getFromIndex();
+ method @Deprecated public Object! getImpl();
+ method @Deprecated public int getItemCount();
+ method @Deprecated public int getMaxScrollX();
+ method public static int getMaxScrollX(android.view.accessibility.AccessibilityRecord);
+ method @Deprecated public int getMaxScrollY();
+ method public static int getMaxScrollY(android.view.accessibility.AccessibilityRecord);
+ method @Deprecated public android.os.Parcelable! getParcelableData();
+ method @Deprecated public int getRemovedCount();
+ method @Deprecated public int getScrollX();
+ method @Deprecated public int getScrollY();
+ method @Deprecated public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getSource();
+ method @Deprecated public java.util.List<java.lang.CharSequence!>! getText();
+ method @Deprecated public int getToIndex();
+ method @Deprecated public int getWindowId();
+ method @Deprecated public int hashCode();
+ method @Deprecated public boolean isChecked();
+ method @Deprecated public boolean isEnabled();
+ method @Deprecated public boolean isFullScreen();
+ method @Deprecated public boolean isPassword();
+ method @Deprecated public boolean isScrollable();
+ method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! obtain(androidx.core.view.accessibility.AccessibilityRecordCompat!);
+ method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! obtain();
+ method @Deprecated public void recycle();
+ method @Deprecated public void setAddedCount(int);
+ method @Deprecated public void setBeforeText(CharSequence!);
+ method @Deprecated public void setChecked(boolean);
+ method @Deprecated public void setClassName(CharSequence!);
+ method @Deprecated public void setContentDescription(CharSequence!);
+ method @Deprecated public void setCurrentItemIndex(int);
+ method @Deprecated public void setEnabled(boolean);
+ method @Deprecated public void setFromIndex(int);
+ method @Deprecated public void setFullScreen(boolean);
+ method @Deprecated public void setItemCount(int);
+ method @Deprecated public void setMaxScrollX(int);
+ method public static void setMaxScrollX(android.view.accessibility.AccessibilityRecord, int);
+ method @Deprecated public void setMaxScrollY(int);
+ method public static void setMaxScrollY(android.view.accessibility.AccessibilityRecord, int);
+ method @Deprecated public void setParcelableData(android.os.Parcelable!);
+ method @Deprecated public void setPassword(boolean);
+ method @Deprecated public void setRemovedCount(int);
+ method @Deprecated public void setScrollX(int);
+ method @Deprecated public void setScrollY(int);
+ method @Deprecated public void setScrollable(boolean);
+ method @Deprecated public void setSource(android.view.View!);
+ method @Deprecated public void setSource(android.view.View!, int);
+ method public static void setSource(android.view.accessibility.AccessibilityRecord, android.view.View?, int);
+ method @Deprecated public void setToIndex(int);
+ }
+
+ public interface AccessibilityViewCommand {
+ method public boolean perform(android.view.View, androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments?);
+ }
+
+ public abstract static class AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.CommandArguments();
+ }
+
+ public static final class AccessibilityViewCommand.MoveAtGranularityArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.MoveAtGranularityArguments();
+ method public boolean getExtendSelection();
+ method public int getGranularity();
+ }
+
+ public static final class AccessibilityViewCommand.MoveHtmlArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.MoveHtmlArguments();
+ method public String? getHTMLElement();
+ }
+
+ public static final class AccessibilityViewCommand.MoveWindowArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.MoveWindowArguments();
+ method public int getX();
+ method public int getY();
+ }
+
+ public static final class AccessibilityViewCommand.ScrollToPositionArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.ScrollToPositionArguments();
+ method public int getColumn();
+ method public int getRow();
+ }
+
+ public static final class AccessibilityViewCommand.SetProgressArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.SetProgressArguments();
+ method public float getProgress();
+ }
+
+ public static final class AccessibilityViewCommand.SetSelectionArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.SetSelectionArguments();
+ method public int getEnd();
+ method public int getStart();
+ }
+
+ public static final class AccessibilityViewCommand.SetTextArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.SetTextArguments();
+ method public CharSequence? getText();
+ }
+
+ public class AccessibilityWindowInfoCompat {
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? getAnchor();
+ method public void getBoundsInScreen(android.graphics.Rect);
+ method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat? getChild(int);
+ method public int getChildCount();
+ method public int getId();
+ method public int getLayer();
+ method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat? getParent();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? getRoot();
+ method public CharSequence? getTitle();
+ method public int getType();
+ method public boolean isAccessibilityFocused();
+ method public boolean isActive();
+ method public boolean isFocused();
+ method public static androidx.core.view.accessibility.AccessibilityWindowInfoCompat? obtain();
+ method public static androidx.core.view.accessibility.AccessibilityWindowInfoCompat? obtain(androidx.core.view.accessibility.AccessibilityWindowInfoCompat?);
+ method public void recycle();
+ field public static final int TYPE_ACCESSIBILITY_OVERLAY = 4; // 0x4
+ field public static final int TYPE_APPLICATION = 1; // 0x1
+ field public static final int TYPE_INPUT_METHOD = 2; // 0x2
+ field public static final int TYPE_SPLIT_SCREEN_DIVIDER = 5; // 0x5
+ field public static final int TYPE_SYSTEM = 3; // 0x3
+ }
+
+}
+
+package androidx.core.view.animation {
+
+ public final class PathInterpolatorCompat {
+ method public static android.view.animation.Interpolator create(android.graphics.Path);
+ method public static android.view.animation.Interpolator create(float, float);
+ method public static android.view.animation.Interpolator create(float, float, float, float);
+ }
+
+}
+
+package androidx.core.view.inputmethod {
+
+ public final class EditorInfoCompat {
+ ctor @Deprecated public EditorInfoCompat();
+ method public static String![] getContentMimeTypes(android.view.inputmethod.EditorInfo);
+ method public static CharSequence? getInitialSelectedText(android.view.inputmethod.EditorInfo, int);
+ method public static CharSequence? getInitialTextAfterCursor(android.view.inputmethod.EditorInfo, int, int);
+ method public static CharSequence? getInitialTextBeforeCursor(android.view.inputmethod.EditorInfo, int, int);
+ method public static void setContentMimeTypes(android.view.inputmethod.EditorInfo, String![]?);
+ method public static void setInitialSurroundingSubText(android.view.inputmethod.EditorInfo, CharSequence, int);
+ method public static void setInitialSurroundingText(android.view.inputmethod.EditorInfo, CharSequence);
+ field public static final int IME_FLAG_FORCE_ASCII = -2147483648; // 0x80000000
+ field public static final int IME_FLAG_NO_PERSONALIZED_LEARNING = 16777216; // 0x1000000
+ }
+
+ public final class InputConnectionCompat {
+ ctor @Deprecated public InputConnectionCompat();
+ method public static boolean commitContent(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo, androidx.core.view.inputmethod.InputContentInfoCompat, int, android.os.Bundle?);
+ method @Deprecated public static android.view.inputmethod.InputConnection createWrapper(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo, androidx.core.view.inputmethod.InputConnectionCompat.OnCommitContentListener);
+ method public static android.view.inputmethod.InputConnection createWrapper(android.view.View, android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo);
+ field public static final int INPUT_CONTENT_GRANT_READ_URI_PERMISSION = 1; // 0x1
+ }
+
+ public static interface InputConnectionCompat.OnCommitContentListener {
+ method public boolean onCommitContent(androidx.core.view.inputmethod.InputContentInfoCompat, int, android.os.Bundle?);
+ }
+
+ public final class InputContentInfoCompat {
+ ctor public InputContentInfoCompat(android.net.Uri, android.content.ClipDescription, android.net.Uri?);
+ method public android.net.Uri getContentUri();
+ method public android.content.ClipDescription getDescription();
+ method public android.net.Uri? getLinkUri();
+ method public void releasePermission();
+ method public void requestPermission();
+ method public Object? unwrap();
+ method public static androidx.core.view.inputmethod.InputContentInfoCompat? wrap(Object?);
+ }
+
+}
+
+package androidx.core.widget {
+
+ public abstract class AutoScrollHelper implements android.view.View.OnTouchListener {
+ ctor public AutoScrollHelper(android.view.View);
+ method public abstract boolean canTargetScrollHorizontally(int);
+ method public abstract boolean canTargetScrollVertically(int);
+ method public boolean isEnabled();
+ method public boolean isExclusive();
+ method public boolean onTouch(android.view.View!, android.view.MotionEvent!);
+ method public abstract void scrollTargetBy(int, int);
+ method public androidx.core.widget.AutoScrollHelper setActivationDelay(int);
+ method public androidx.core.widget.AutoScrollHelper setEdgeType(int);
+ method public androidx.core.widget.AutoScrollHelper! setEnabled(boolean);
+ method public androidx.core.widget.AutoScrollHelper! setExclusive(boolean);
+ method public androidx.core.widget.AutoScrollHelper setMaximumEdges(float, float);
+ method public androidx.core.widget.AutoScrollHelper setMaximumVelocity(float, float);
+ method public androidx.core.widget.AutoScrollHelper setMinimumVelocity(float, float);
+ method public androidx.core.widget.AutoScrollHelper setRampDownDuration(int);
+ method public androidx.core.widget.AutoScrollHelper setRampUpDuration(int);
+ method public androidx.core.widget.AutoScrollHelper setRelativeEdges(float, float);
+ method public androidx.core.widget.AutoScrollHelper setRelativeVelocity(float, float);
+ field public static final int EDGE_TYPE_INSIDE = 0; // 0x0
+ field public static final int EDGE_TYPE_INSIDE_EXTEND = 1; // 0x1
+ field public static final int EDGE_TYPE_OUTSIDE = 2; // 0x2
+ field public static final float NO_MAX = 3.4028235E38f;
+ field public static final float NO_MIN = 0.0f;
+ field public static final float RELATIVE_UNSPECIFIED = 0.0f;
+ }
+
+ public final class CheckedTextViewCompat {
+ method public static android.graphics.drawable.Drawable? getCheckMarkDrawable(android.widget.CheckedTextView);
+ method public static android.content.res.ColorStateList? getCheckMarkTintList(android.widget.CheckedTextView);
+ method public static android.graphics.PorterDuff.Mode? getCheckMarkTintMode(android.widget.CheckedTextView);
+ method public static void setCheckMarkTintList(android.widget.CheckedTextView, android.content.res.ColorStateList?);
+ method public static void setCheckMarkTintMode(android.widget.CheckedTextView, android.graphics.PorterDuff.Mode?);
+ }
+
+ public final class CompoundButtonCompat {
+ method public static android.graphics.drawable.Drawable? getButtonDrawable(android.widget.CompoundButton);
+ method public static android.content.res.ColorStateList? getButtonTintList(android.widget.CompoundButton);
+ method public static android.graphics.PorterDuff.Mode? getButtonTintMode(android.widget.CompoundButton);
+ method public static void setButtonTintList(android.widget.CompoundButton, android.content.res.ColorStateList?);
+ method public static void setButtonTintMode(android.widget.CompoundButton, android.graphics.PorterDuff.Mode?);
+ }
+
+ public class ContentLoadingProgressBar extends android.widget.ProgressBar {
+ ctor public ContentLoadingProgressBar(android.content.Context);
+ ctor public ContentLoadingProgressBar(android.content.Context, android.util.AttributeSet?);
+ method public void hide();
+ method public void onAttachedToWindow();
+ method public void onDetachedFromWindow();
+ method public void show();
+ }
+
+ public final class EdgeEffectCompat {
+ ctor @Deprecated public EdgeEffectCompat(android.content.Context!);
+ method public static android.widget.EdgeEffect create(android.content.Context, android.util.AttributeSet?);
+ method @Deprecated public boolean draw(android.graphics.Canvas!);
+ method @Deprecated public void finish();
+ method public static float getDistance(android.widget.EdgeEffect);
+ method @Deprecated public boolean isFinished();
+ method @Deprecated public boolean onAbsorb(int);
+ method @Deprecated public boolean onPull(float);
+ method @Deprecated public boolean onPull(float, float);
+ method public static void onPull(android.widget.EdgeEffect, float, float);
+ method public static float onPullDistance(android.widget.EdgeEffect, float, float);
+ method @Deprecated public boolean onRelease();
+ method @Deprecated public void setSize(int, int);
+ }
+
+ public class ImageViewCompat {
+ method public static android.content.res.ColorStateList? getImageTintList(android.widget.ImageView);
+ method public static android.graphics.PorterDuff.Mode? getImageTintMode(android.widget.ImageView);
+ method public static void setImageTintList(android.widget.ImageView, android.content.res.ColorStateList?);
+ method public static void setImageTintMode(android.widget.ImageView, android.graphics.PorterDuff.Mode?);
+ }
+
+ public final class ListPopupWindowCompat {
+ method @Deprecated public static android.view.View.OnTouchListener! createDragToOpenListener(Object!, android.view.View!);
+ method public static android.view.View.OnTouchListener? createDragToOpenListener(android.widget.ListPopupWindow, android.view.View);
+ }
+
+ public class ListViewAutoScrollHelper extends androidx.core.widget.AutoScrollHelper {
+ ctor public ListViewAutoScrollHelper(android.widget.ListView);
+ method public boolean canTargetScrollHorizontally(int);
+ method public boolean canTargetScrollVertically(int);
+ method public void scrollTargetBy(int, int);
+ }
+
+ public final class ListViewCompat {
+ method public static boolean canScrollList(android.widget.ListView, int);
+ method public static void scrollListBy(android.widget.ListView, int);
+ }
+
+ public class NestedScrollView extends android.widget.FrameLayout implements androidx.core.view.NestedScrollingChild3 androidx.core.view.NestedScrollingParent3 androidx.core.view.ScrollingView {
+ ctor public NestedScrollView(android.content.Context);
+ ctor public NestedScrollView(android.content.Context, android.util.AttributeSet?);
+ ctor public NestedScrollView(android.content.Context, android.util.AttributeSet?, int);
+ method public boolean arrowScroll(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeHorizontalScrollExtent();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeHorizontalScrollOffset();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeHorizontalScrollRange();
+ method protected int computeScrollDeltaToGetChildRectOnScreen(android.graphics.Rect!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeVerticalScrollExtent();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeVerticalScrollOffset();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeVerticalScrollRange();
+ method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?, int);
+ method public void dispatchNestedScroll(int, int, int, int, int[]?, int, int[]);
+ method public boolean dispatchNestedScroll(int, int, int, int, int[]?, int);
+ method public boolean executeKeyEvent(android.view.KeyEvent);
+ method public void fling(int);
+ method public boolean fullScroll(int);
+ method public int getMaxScrollAmount();
+ method public boolean hasNestedScrollingParent(int);
+ method public boolean isFillViewport();
+ method public boolean isSmoothScrollingEnabled();
+ method public void onAttachedToWindow();
+ method public void onNestedPreScroll(android.view.View, int, int, int[], int);
+ method public void onNestedScroll(android.view.View, int, int, int, int, int, int[]);
+ method public void onNestedScroll(android.view.View, int, int, int, int, int);
+ method public void onNestedScrollAccepted(android.view.View, android.view.View, int, int);
+ method public boolean onStartNestedScroll(android.view.View, android.view.View, int, int);
+ method public void onStopNestedScroll(android.view.View, int);
+ method public boolean pageScroll(int);
+ method public void setFillViewport(boolean);
+ method public void setOnScrollChangeListener(androidx.core.widget.NestedScrollView.OnScrollChangeListener?);
+ method public void setSmoothScrollingEnabled(boolean);
+ method public final void smoothScrollBy(int, int);
+ method public final void smoothScrollBy(int, int, int);
+ method public final void smoothScrollTo(int, int);
+ method public final void smoothScrollTo(int, int, int);
+ method public boolean startNestedScroll(int, int);
+ method public void stopNestedScroll(int);
+ }
+
+ public static interface NestedScrollView.OnScrollChangeListener {
+ method public void onScrollChange(androidx.core.widget.NestedScrollView, int, int, int, int);
+ }
+
+ public final class PopupMenuCompat {
+ method public static android.view.View.OnTouchListener? getDragToOpenListener(Object);
+ }
+
+ public final class PopupWindowCompat {
+ method public static boolean getOverlapAnchor(android.widget.PopupWindow);
+ method public static int getWindowLayoutType(android.widget.PopupWindow);
+ method public static void setOverlapAnchor(android.widget.PopupWindow, boolean);
+ method public static void setWindowLayoutType(android.widget.PopupWindow, int);
+ method public static void showAsDropDown(android.widget.PopupWindow, android.view.View, int, int, int);
+ }
+
+ @Deprecated public final class ScrollerCompat {
+ method @Deprecated public void abortAnimation();
+ method @Deprecated public boolean computeScrollOffset();
+ method @Deprecated public static androidx.core.widget.ScrollerCompat! create(android.content.Context!);
+ method @Deprecated public static androidx.core.widget.ScrollerCompat! create(android.content.Context!, android.view.animation.Interpolator!);
+ method @Deprecated public void fling(int, int, int, int, int, int, int, int);
+ method @Deprecated public void fling(int, int, int, int, int, int, int, int, int, int);
+ method @Deprecated public float getCurrVelocity();
+ method @Deprecated public int getCurrX();
+ method @Deprecated public int getCurrY();
+ method @Deprecated public int getFinalX();
+ method @Deprecated public int getFinalY();
+ method @Deprecated public boolean isFinished();
+ method @Deprecated public boolean isOverScrolled();
+ method @Deprecated public void notifyHorizontalEdgeReached(int, int, int);
+ method @Deprecated public void notifyVerticalEdgeReached(int, int, int);
+ method @Deprecated public boolean springBack(int, int, int, int, int, int);
+ method @Deprecated public void startScroll(int, int, int, int);
+ method @Deprecated public void startScroll(int, int, int, int, int);
+ }
+
+ public final class TextViewCompat {
+ method public static int getAutoSizeMaxTextSize(android.widget.TextView);
+ method public static int getAutoSizeMinTextSize(android.widget.TextView);
+ method public static int getAutoSizeStepGranularity(android.widget.TextView);
+ method public static int[] getAutoSizeTextAvailableSizes(android.widget.TextView);
+ method public static int getAutoSizeTextType(android.widget.TextView);
+ method public static android.content.res.ColorStateList? getCompoundDrawableTintList(android.widget.TextView);
+ method public static android.graphics.PorterDuff.Mode? getCompoundDrawableTintMode(android.widget.TextView);
+ method public static android.graphics.drawable.Drawable![] getCompoundDrawablesRelative(android.widget.TextView);
+ method public static int getFirstBaselineToTopHeight(android.widget.TextView);
+ method public static int getLastBaselineToBottomHeight(android.widget.TextView);
+ method public static int getMaxLines(android.widget.TextView);
+ method public static int getMinLines(android.widget.TextView);
+ method public static androidx.core.text.PrecomputedTextCompat.Params getTextMetricsParams(android.widget.TextView);
+ method public static void setAutoSizeTextTypeUniformWithConfiguration(android.widget.TextView, int, int, int, int) throws java.lang.IllegalArgumentException;
+ method public static void setAutoSizeTextTypeUniformWithPresetSizes(android.widget.TextView, int[], int) throws java.lang.IllegalArgumentException;
+ method public static void setAutoSizeTextTypeWithDefaults(android.widget.TextView, int);
+ method public static void setCompoundDrawableTintList(android.widget.TextView, android.content.res.ColorStateList?);
+ method public static void setCompoundDrawableTintMode(android.widget.TextView, android.graphics.PorterDuff.Mode?);
+ method public static void setCompoundDrawablesRelative(android.widget.TextView, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?);
+ method public static void setCompoundDrawablesRelativeWithIntrinsicBounds(android.widget.TextView, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?);
+ method public static void setCompoundDrawablesRelativeWithIntrinsicBounds(android.widget.TextView, @DrawableRes int, @DrawableRes int, @DrawableRes int, @DrawableRes int);
+ method public static void setCustomSelectionActionModeCallback(android.widget.TextView, android.view.ActionMode.Callback);
+ method public static void setFirstBaselineToTopHeight(android.widget.TextView, @IntRange(from=0) @Px int);
+ method public static void setLastBaselineToBottomHeight(android.widget.TextView, @IntRange(from=0) @Px int);
+ method public static void setLineHeight(android.widget.TextView, @IntRange(from=0) @Px int);
+ method public static void setPrecomputedText(android.widget.TextView, androidx.core.text.PrecomputedTextCompat);
+ method public static void setTextAppearance(android.widget.TextView, @StyleRes int);
+ method public static void setTextMetricsParams(android.widget.TextView, androidx.core.text.PrecomputedTextCompat.Params);
+ field public static final int AUTO_SIZE_TEXT_TYPE_NONE = 0; // 0x0
+ field public static final int AUTO_SIZE_TEXT_TYPE_UNIFORM = 1; // 0x1
+ }
+
+ public interface TintableCompoundButton {
+ method public android.content.res.ColorStateList? getSupportButtonTintList();
+ method public android.graphics.PorterDuff.Mode? getSupportButtonTintMode();
+ method public void setSupportButtonTintList(android.content.res.ColorStateList?);
+ method public void setSupportButtonTintMode(android.graphics.PorterDuff.Mode?);
+ }
+
+ public interface TintableCompoundDrawablesView {
+ method public android.content.res.ColorStateList? getSupportCompoundDrawablesTintList();
+ method public android.graphics.PorterDuff.Mode? getSupportCompoundDrawablesTintMode();
+ method public void setSupportCompoundDrawablesTintList(android.content.res.ColorStateList?);
+ method public void setSupportCompoundDrawablesTintMode(android.graphics.PorterDuff.Mode?);
+ }
+
+}
+
diff --git a/core/core/api/public_plus_experimental_1.8.0-beta01.txt b/core/core/api/public_plus_experimental_1.8.0-beta01.txt
index 8ea9b73..8b2dfd3 100644
--- a/core/core/api/public_plus_experimental_1.8.0-beta01.txt
+++ b/core/core/api/public_plus_experimental_1.8.0-beta01.txt
@@ -1690,8 +1690,9 @@
method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.Q) public static boolean isAtLeastQ();
method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.R) public static boolean isAtLeastR();
method @Deprecated @ChecksSdkIntAtLeast(api=31, codename="S") public static boolean isAtLeastS();
- method @Deprecated @ChecksSdkIntAtLeast(api=32, codename="Sv2") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastSv2();
- method @Deprecated @ChecksSdkIntAtLeast(codename="Tiramisu") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastT();
+ method @ChecksSdkIntAtLeast(api=32, codename="Sv2") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastSv2();
+ method @ChecksSdkIntAtLeast(codename="Tiramisu") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastT();
+ method @ChecksSdkIntAtLeast(codename="UpsideDownCake") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastU();
}
@RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public static @interface BuildCompat.PrereleaseSdkCheck {
diff --git a/core/core/api/public_plus_experimental_1.8.0-beta02.txt b/core/core/api/public_plus_experimental_1.8.0-beta02.txt
new file mode 100644
index 0000000..8ea9b73
--- /dev/null
+++ b/core/core/api/public_plus_experimental_1.8.0-beta02.txt
@@ -0,0 +1,3765 @@
+// Signature format: 4.0
+package androidx.core.accessibilityservice {
+
+ public final class AccessibilityServiceInfoCompat {
+ method public static String capabilityToString(int);
+ method public static String feedbackTypeToString(int);
+ method public static String? flagToString(int);
+ method public static int getCapabilities(android.accessibilityservice.AccessibilityServiceInfo);
+ method public static String? loadDescription(android.accessibilityservice.AccessibilityServiceInfo, android.content.pm.PackageManager);
+ field public static final int CAPABILITY_CAN_FILTER_KEY_EVENTS = 8; // 0x8
+ field public static final int CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 4; // 0x4
+ field public static final int CAPABILITY_CAN_REQUEST_TOUCH_EXPLORATION = 2; // 0x2
+ field public static final int CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT = 1; // 0x1
+ field public static final int FEEDBACK_ALL_MASK = -1; // 0xffffffff
+ field public static final int FEEDBACK_BRAILLE = 32; // 0x20
+ field public static final int FLAG_INCLUDE_NOT_IMPORTANT_VIEWS = 2; // 0x2
+ field public static final int FLAG_REPORT_VIEW_IDS = 16; // 0x10
+ field public static final int FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 8; // 0x8
+ field public static final int FLAG_REQUEST_FILTER_KEY_EVENTS = 32; // 0x20
+ field public static final int FLAG_REQUEST_TOUCH_EXPLORATION_MODE = 4; // 0x4
+ }
+
+}
+
+package androidx.core.app {
+
+ public class ActivityCompat extends androidx.core.content.ContextCompat {
+ ctor protected ActivityCompat();
+ method public static void finishAffinity(android.app.Activity);
+ method public static void finishAfterTransition(android.app.Activity);
+ method public static android.net.Uri? getReferrer(android.app.Activity);
+ method @Deprecated public static boolean invalidateOptionsMenu(android.app.Activity!);
+ method public static boolean isLaunchedFromBubble(android.app.Activity);
+ method public static void postponeEnterTransition(android.app.Activity);
+ method public static void recreate(android.app.Activity);
+ method public static androidx.core.view.DragAndDropPermissionsCompat? requestDragAndDropPermissions(android.app.Activity, android.view.DragEvent);
+ method public static void requestPermissions(android.app.Activity, String![], @IntRange(from=0) int);
+ method public static <T extends android.view.View> T requireViewById(android.app.Activity, @IdRes int);
+ method public static void setEnterSharedElementCallback(android.app.Activity, androidx.core.app.SharedElementCallback?);
+ method public static void setExitSharedElementCallback(android.app.Activity, androidx.core.app.SharedElementCallback?);
+ method public static void setLocusContext(android.app.Activity, androidx.core.content.LocusIdCompat?, android.os.Bundle?);
+ method public static void setPermissionCompatDelegate(androidx.core.app.ActivityCompat.PermissionCompatDelegate?);
+ method public static boolean shouldShowRequestPermissionRationale(android.app.Activity, String);
+ method public static void startActivityForResult(android.app.Activity, android.content.Intent, int, android.os.Bundle?);
+ method public static void startIntentSenderForResult(android.app.Activity, android.content.IntentSender, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
+ method public static void startPostponedEnterTransition(android.app.Activity);
+ }
+
+ public static interface ActivityCompat.OnRequestPermissionsResultCallback {
+ method public void onRequestPermissionsResult(int, String![], int[]);
+ }
+
+ public static interface ActivityCompat.PermissionCompatDelegate {
+ method public boolean onActivityResult(android.app.Activity, @IntRange(from=0) int, int, android.content.Intent?);
+ method public boolean requestPermissions(android.app.Activity, String![], @IntRange(from=0) int);
+ }
+
+ public final class ActivityManagerCompat {
+ method public static boolean isLowRamDevice(android.app.ActivityManager);
+ }
+
+ public class ActivityOptionsCompat {
+ ctor protected ActivityOptionsCompat();
+ method public android.graphics.Rect? getLaunchBounds();
+ method public static androidx.core.app.ActivityOptionsCompat makeBasic();
+ method public static androidx.core.app.ActivityOptionsCompat makeClipRevealAnimation(android.view.View, int, int, int, int);
+ method public static androidx.core.app.ActivityOptionsCompat makeCustomAnimation(android.content.Context, int, int);
+ method public static androidx.core.app.ActivityOptionsCompat makeScaleUpAnimation(android.view.View, int, int, int, int);
+ method public static androidx.core.app.ActivityOptionsCompat makeSceneTransitionAnimation(android.app.Activity, android.view.View, String);
+ method public static androidx.core.app.ActivityOptionsCompat makeSceneTransitionAnimation(android.app.Activity, androidx.core.util.Pair<android.view.View!,java.lang.String!>!...);
+ method public static androidx.core.app.ActivityOptionsCompat makeTaskLaunchBehind();
+ method public static androidx.core.app.ActivityOptionsCompat makeThumbnailScaleUpAnimation(android.view.View, android.graphics.Bitmap, int, int);
+ method public void requestUsageTimeReport(android.app.PendingIntent);
+ method public androidx.core.app.ActivityOptionsCompat setLaunchBounds(android.graphics.Rect?);
+ method public android.os.Bundle? toBundle();
+ method public void update(androidx.core.app.ActivityOptionsCompat);
+ field public static final String EXTRA_USAGE_TIME_REPORT = "android.activity.usage_time";
+ field public static final String EXTRA_USAGE_TIME_REPORT_PACKAGES = "android.usage_time_packages";
+ }
+
+ public final class AlarmManagerCompat {
+ method public static void setAlarmClock(android.app.AlarmManager, long, android.app.PendingIntent, android.app.PendingIntent);
+ method public static void setAndAllowWhileIdle(android.app.AlarmManager, int, long, android.app.PendingIntent);
+ method public static void setExact(android.app.AlarmManager, int, long, android.app.PendingIntent);
+ method public static void setExactAndAllowWhileIdle(android.app.AlarmManager, int, long, android.app.PendingIntent);
+ }
+
+ @RequiresApi(28) public class AppComponentFactory extends android.app.AppComponentFactory {
+ ctor public AppComponentFactory();
+ method public final android.app.Activity instantiateActivity(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public android.app.Activity instantiateActivityCompat(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public final android.app.Application instantiateApplication(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public android.app.Application instantiateApplicationCompat(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public final android.content.ContentProvider instantiateProvider(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public android.content.ContentProvider instantiateProviderCompat(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public final android.content.BroadcastReceiver instantiateReceiver(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public android.content.BroadcastReceiver instantiateReceiverCompat(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public final android.app.Service instantiateService(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public android.app.Service instantiateServiceCompat(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ }
+
+ public class AppLaunchChecker {
+ ctor @Deprecated public AppLaunchChecker();
+ method public static boolean hasStartedFromLauncher(android.content.Context);
+ method public static void onActivityCreate(android.app.Activity);
+ }
+
+ public final class AppOpsManagerCompat {
+ method public static int checkOrNoteProxyOp(android.content.Context, int, String, String);
+ method public static int noteOp(android.content.Context, String, int, String);
+ method public static int noteOpNoThrow(android.content.Context, String, int, String);
+ method public static int noteProxyOp(android.content.Context, String, String);
+ method public static int noteProxyOpNoThrow(android.content.Context, String, String);
+ method public static String? permissionToOp(String);
+ field public static final int MODE_ALLOWED = 0; // 0x0
+ field public static final int MODE_DEFAULT = 3; // 0x3
+ field public static final int MODE_ERRORED = 2; // 0x2
+ field public static final int MODE_IGNORED = 1; // 0x1
+ }
+
+ public final class BundleCompat {
+ method public static android.os.IBinder? getBinder(android.os.Bundle, String?);
+ method public static void putBinder(android.os.Bundle, String?, android.os.IBinder?);
+ }
+
+ public class DialogCompat {
+ method public static android.view.View requireViewById(android.app.Dialog, int);
+ }
+
+ public class FrameMetricsAggregator {
+ ctor public FrameMetricsAggregator();
+ ctor public FrameMetricsAggregator(int);
+ method public void add(android.app.Activity);
+ method public android.util.SparseIntArray![]? getMetrics();
+ method public android.util.SparseIntArray![]? remove(android.app.Activity);
+ method public android.util.SparseIntArray![]? reset();
+ method public android.util.SparseIntArray![]? stop();
+ field public static final int ANIMATION_DURATION = 256; // 0x100
+ field public static final int ANIMATION_INDEX = 8; // 0x8
+ field public static final int COMMAND_DURATION = 32; // 0x20
+ field public static final int COMMAND_INDEX = 5; // 0x5
+ field public static final int DELAY_DURATION = 128; // 0x80
+ field public static final int DELAY_INDEX = 7; // 0x7
+ field public static final int DRAW_DURATION = 8; // 0x8
+ field public static final int DRAW_INDEX = 3; // 0x3
+ field public static final int EVERY_DURATION = 511; // 0x1ff
+ field public static final int INPUT_DURATION = 2; // 0x2
+ field public static final int INPUT_INDEX = 1; // 0x1
+ field public static final int LAYOUT_MEASURE_DURATION = 4; // 0x4
+ field public static final int LAYOUT_MEASURE_INDEX = 2; // 0x2
+ field public static final int SWAP_DURATION = 64; // 0x40
+ field public static final int SWAP_INDEX = 6; // 0x6
+ field public static final int SYNC_DURATION = 16; // 0x10
+ field public static final int SYNC_INDEX = 4; // 0x4
+ field public static final int TOTAL_DURATION = 1; // 0x1
+ field public static final int TOTAL_INDEX = 0; // 0x0
+ }
+
+ @Deprecated public abstract class JobIntentService extends android.app.Service {
+ ctor @Deprecated public JobIntentService();
+ method @Deprecated public static void enqueueWork(android.content.Context, Class<?>, int, android.content.Intent);
+ method @Deprecated public static void enqueueWork(android.content.Context, android.content.ComponentName, int, android.content.Intent);
+ method @Deprecated public boolean isStopped();
+ method @Deprecated public android.os.IBinder! onBind(android.content.Intent);
+ method @Deprecated protected abstract void onHandleWork(android.content.Intent);
+ method @Deprecated public boolean onStopCurrentWork();
+ method @Deprecated public void setInterruptIfStopped(boolean);
+ }
+
+ public final class MultiWindowModeChangedInfo {
+ ctor public MultiWindowModeChangedInfo(boolean);
+ ctor @RequiresApi(26) public MultiWindowModeChangedInfo(boolean, android.content.res.Configuration);
+ method @RequiresApi(26) public android.content.res.Configuration getNewConfig();
+ method public boolean isInMultiWindowMode();
+ }
+
+ public final class NavUtils {
+ method public static android.content.Intent? getParentActivityIntent(android.app.Activity);
+ method public static android.content.Intent? getParentActivityIntent(android.content.Context, Class<?>) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public static android.content.Intent? getParentActivityIntent(android.content.Context, android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public static String? getParentActivityName(android.app.Activity);
+ method public static String? getParentActivityName(android.content.Context, android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public static void navigateUpFromSameTask(android.app.Activity);
+ method public static void navigateUpTo(android.app.Activity, android.content.Intent);
+ method public static boolean shouldUpRecreateTask(android.app.Activity, android.content.Intent);
+ field public static final String PARENT_ACTIVITY = "android.support.PARENT_ACTIVITY";
+ }
+
+ public class NotificationChannelCompat {
+ method public boolean canBubble();
+ method public boolean canBypassDnd();
+ method public boolean canShowBadge();
+ method public android.media.AudioAttributes? getAudioAttributes();
+ method public String? getConversationId();
+ method public String? getDescription();
+ method public String? getGroup();
+ method public String getId();
+ method public int getImportance();
+ method public int getLightColor();
+ method public int getLockscreenVisibility();
+ method public CharSequence? getName();
+ method public String? getParentChannelId();
+ method public android.net.Uri? getSound();
+ method public long[]? getVibrationPattern();
+ method public boolean isImportantConversation();
+ method public boolean shouldShowLights();
+ method public boolean shouldVibrate();
+ method public androidx.core.app.NotificationChannelCompat.Builder toBuilder();
+ field public static final String DEFAULT_CHANNEL_ID = "miscellaneous";
+ }
+
+ public static class NotificationChannelCompat.Builder {
+ ctor public NotificationChannelCompat.Builder(String, int);
+ method public androidx.core.app.NotificationChannelCompat build();
+ method public androidx.core.app.NotificationChannelCompat.Builder setConversationId(String, String);
+ method public androidx.core.app.NotificationChannelCompat.Builder setDescription(String?);
+ method public androidx.core.app.NotificationChannelCompat.Builder setGroup(String?);
+ method public androidx.core.app.NotificationChannelCompat.Builder setImportance(int);
+ method public androidx.core.app.NotificationChannelCompat.Builder setLightColor(int);
+ method public androidx.core.app.NotificationChannelCompat.Builder setLightsEnabled(boolean);
+ method public androidx.core.app.NotificationChannelCompat.Builder setName(CharSequence?);
+ method public androidx.core.app.NotificationChannelCompat.Builder setShowBadge(boolean);
+ method public androidx.core.app.NotificationChannelCompat.Builder setSound(android.net.Uri?, android.media.AudioAttributes?);
+ method public androidx.core.app.NotificationChannelCompat.Builder setVibrationEnabled(boolean);
+ method public androidx.core.app.NotificationChannelCompat.Builder setVibrationPattern(long[]?);
+ }
+
+ public class NotificationChannelGroupCompat {
+ method public java.util.List<androidx.core.app.NotificationChannelCompat!> getChannels();
+ method public String? getDescription();
+ method public String getId();
+ method public CharSequence? getName();
+ method public boolean isBlocked();
+ method public androidx.core.app.NotificationChannelGroupCompat.Builder toBuilder();
+ }
+
+ public static class NotificationChannelGroupCompat.Builder {
+ ctor public NotificationChannelGroupCompat.Builder(String);
+ method public androidx.core.app.NotificationChannelGroupCompat build();
+ method public androidx.core.app.NotificationChannelGroupCompat.Builder setDescription(String?);
+ method public androidx.core.app.NotificationChannelGroupCompat.Builder setName(CharSequence?);
+ }
+
+ public class NotificationCompat {
+ ctor @Deprecated public NotificationCompat();
+ method public static androidx.core.app.NotificationCompat.Action? getAction(android.app.Notification, int);
+ method public static int getActionCount(android.app.Notification);
+ method public static boolean getAllowSystemGeneratedContextualActions(android.app.Notification);
+ method public static boolean getAutoCancel(android.app.Notification);
+ method public static int getBadgeIconType(android.app.Notification);
+ method public static androidx.core.app.NotificationCompat.BubbleMetadata? getBubbleMetadata(android.app.Notification);
+ method public static String? getCategory(android.app.Notification);
+ method public static String? getChannelId(android.app.Notification);
+ method public static int getColor(android.app.Notification);
+ method @RequiresApi(19) public static CharSequence? getContentInfo(android.app.Notification);
+ method @RequiresApi(19) public static CharSequence? getContentText(android.app.Notification);
+ method @RequiresApi(19) public static CharSequence? getContentTitle(android.app.Notification);
+ method public static android.os.Bundle? getExtras(android.app.Notification);
+ method public static String? getGroup(android.app.Notification);
+ method public static int getGroupAlertBehavior(android.app.Notification);
+ method @RequiresApi(21) public static java.util.List<androidx.core.app.NotificationCompat.Action!> getInvisibleActions(android.app.Notification);
+ method public static boolean getLocalOnly(android.app.Notification);
+ method public static androidx.core.content.LocusIdCompat? getLocusId(android.app.Notification);
+ method public static boolean getOngoing(android.app.Notification);
+ method public static boolean getOnlyAlertOnce(android.app.Notification);
+ method public static java.util.List<androidx.core.app.Person!> getPeople(android.app.Notification);
+ method public static android.app.Notification? getPublicVersion(android.app.Notification);
+ method public static CharSequence? getSettingsText(android.app.Notification);
+ method public static String? getShortcutId(android.app.Notification);
+ method @RequiresApi(19) public static boolean getShowWhen(android.app.Notification);
+ method public static String? getSortKey(android.app.Notification);
+ method @RequiresApi(19) public static CharSequence? getSubText(android.app.Notification);
+ method public static long getTimeoutAfter(android.app.Notification);
+ method @RequiresApi(19) public static boolean getUsesChronometer(android.app.Notification);
+ method public static int getVisibility(android.app.Notification);
+ method public static boolean isGroupSummary(android.app.Notification);
+ field public static final int BADGE_ICON_LARGE = 2; // 0x2
+ field public static final int BADGE_ICON_NONE = 0; // 0x0
+ field public static final int BADGE_ICON_SMALL = 1; // 0x1
+ field public static final String CATEGORY_ALARM = "alarm";
+ field public static final String CATEGORY_CALL = "call";
+ field public static final String CATEGORY_EMAIL = "email";
+ field public static final String CATEGORY_ERROR = "err";
+ field public static final String CATEGORY_EVENT = "event";
+ field public static final String CATEGORY_LOCATION_SHARING = "location_sharing";
+ field public static final String CATEGORY_MESSAGE = "msg";
+ field public static final String CATEGORY_MISSED_CALL = "missed_call";
+ field public static final String CATEGORY_NAVIGATION = "navigation";
+ field public static final String CATEGORY_PROGRESS = "progress";
+ field public static final String CATEGORY_PROMO = "promo";
+ field public static final String CATEGORY_RECOMMENDATION = "recommendation";
+ field public static final String CATEGORY_REMINDER = "reminder";
+ field public static final String CATEGORY_SERVICE = "service";
+ field public static final String CATEGORY_SOCIAL = "social";
+ field public static final String CATEGORY_STATUS = "status";
+ field public static final String CATEGORY_STOPWATCH = "stopwatch";
+ field public static final String CATEGORY_SYSTEM = "sys";
+ field public static final String CATEGORY_TRANSPORT = "transport";
+ field public static final String CATEGORY_WORKOUT = "workout";
+ field @ColorInt public static final int COLOR_DEFAULT = 0; // 0x0
+ field public static final int DEFAULT_ALL = -1; // 0xffffffff
+ field public static final int DEFAULT_LIGHTS = 4; // 0x4
+ field public static final int DEFAULT_SOUND = 1; // 0x1
+ field public static final int DEFAULT_VIBRATE = 2; // 0x2
+ field public static final String EXTRA_AUDIO_CONTENTS_URI = "android.audioContents";
+ field public static final String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri";
+ field public static final String EXTRA_BIG_TEXT = "android.bigText";
+ field public static final String EXTRA_CHANNEL_GROUP_ID = "android.intent.extra.CHANNEL_GROUP_ID";
+ field public static final String EXTRA_CHANNEL_ID = "android.intent.extra.CHANNEL_ID";
+ field public static final String EXTRA_CHRONOMETER_COUNT_DOWN = "android.chronometerCountDown";
+ field public static final String EXTRA_COLORIZED = "android.colorized";
+ field public static final String EXTRA_COMPACT_ACTIONS = "android.compactActions";
+ field public static final String EXTRA_COMPAT_TEMPLATE = "androidx.core.app.extra.COMPAT_TEMPLATE";
+ field public static final String EXTRA_CONVERSATION_TITLE = "android.conversationTitle";
+ field public static final String EXTRA_HIDDEN_CONVERSATION_TITLE = "android.hiddenConversationTitle";
+ field public static final String EXTRA_HISTORIC_MESSAGES = "android.messages.historic";
+ field public static final String EXTRA_INFO_TEXT = "android.infoText";
+ field public static final String EXTRA_IS_GROUP_CONVERSATION = "android.isGroupConversation";
+ field public static final String EXTRA_LARGE_ICON = "android.largeIcon";
+ field public static final String EXTRA_LARGE_ICON_BIG = "android.largeIcon.big";
+ field public static final String EXTRA_MEDIA_SESSION = "android.mediaSession";
+ field public static final String EXTRA_MESSAGES = "android.messages";
+ field public static final String EXTRA_MESSAGING_STYLE_USER = "android.messagingStyleUser";
+ field public static final String EXTRA_NOTIFICATION_ID = "android.intent.extra.NOTIFICATION_ID";
+ field public static final String EXTRA_NOTIFICATION_TAG = "android.intent.extra.NOTIFICATION_TAG";
+ field @Deprecated public static final String EXTRA_PEOPLE = "android.people";
+ field public static final String EXTRA_PEOPLE_LIST = "android.people.list";
+ field public static final String EXTRA_PICTURE = "android.picture";
+ field public static final String EXTRA_PICTURE_CONTENT_DESCRIPTION = "android.pictureContentDescription";
+ field public static final String EXTRA_PROGRESS = "android.progress";
+ field public static final String EXTRA_PROGRESS_INDETERMINATE = "android.progressIndeterminate";
+ field public static final String EXTRA_PROGRESS_MAX = "android.progressMax";
+ field public static final String EXTRA_REMOTE_INPUT_HISTORY = "android.remoteInputHistory";
+ field public static final String EXTRA_SELF_DISPLAY_NAME = "android.selfDisplayName";
+ field public static final String EXTRA_SHOW_BIG_PICTURE_WHEN_COLLAPSED = "android.showBigPictureWhenCollapsed";
+ field public static final String EXTRA_SHOW_CHRONOMETER = "android.showChronometer";
+ field public static final String EXTRA_SHOW_WHEN = "android.showWhen";
+ field public static final String EXTRA_SMALL_ICON = "android.icon";
+ field public static final String EXTRA_SUB_TEXT = "android.subText";
+ field public static final String EXTRA_SUMMARY_TEXT = "android.summaryText";
+ field public static final String EXTRA_TEMPLATE = "android.template";
+ field public static final String EXTRA_TEXT = "android.text";
+ field public static final String EXTRA_TEXT_LINES = "android.textLines";
+ field public static final String EXTRA_TITLE = "android.title";
+ field public static final String EXTRA_TITLE_BIG = "android.title.big";
+ field public static final int FLAG_AUTO_CANCEL = 16; // 0x10
+ field public static final int FLAG_BUBBLE = 4096; // 0x1000
+ field public static final int FLAG_FOREGROUND_SERVICE = 64; // 0x40
+ field public static final int FLAG_GROUP_SUMMARY = 512; // 0x200
+ field @Deprecated public static final int FLAG_HIGH_PRIORITY = 128; // 0x80
+ field public static final int FLAG_INSISTENT = 4; // 0x4
+ field public static final int FLAG_LOCAL_ONLY = 256; // 0x100
+ field public static final int FLAG_NO_CLEAR = 32; // 0x20
+ field public static final int FLAG_ONGOING_EVENT = 2; // 0x2
+ field public static final int FLAG_ONLY_ALERT_ONCE = 8; // 0x8
+ field public static final int FLAG_SHOW_LIGHTS = 1; // 0x1
+ field public static final int FOREGROUND_SERVICE_DEFAULT = 0; // 0x0
+ field public static final int FOREGROUND_SERVICE_DEFERRED = 2; // 0x2
+ field public static final int FOREGROUND_SERVICE_IMMEDIATE = 1; // 0x1
+ field public static final int GROUP_ALERT_ALL = 0; // 0x0
+ field public static final int GROUP_ALERT_CHILDREN = 2; // 0x2
+ field public static final int GROUP_ALERT_SUMMARY = 1; // 0x1
+ field public static final String GROUP_KEY_SILENT = "silent";
+ field public static final String INTENT_CATEGORY_NOTIFICATION_PREFERENCES = "android.intent.category.NOTIFICATION_PREFERENCES";
+ field public static final int PRIORITY_DEFAULT = 0; // 0x0
+ field public static final int PRIORITY_HIGH = 1; // 0x1
+ field public static final int PRIORITY_LOW = -1; // 0xffffffff
+ field public static final int PRIORITY_MAX = 2; // 0x2
+ field public static final int PRIORITY_MIN = -2; // 0xfffffffe
+ field public static final int STREAM_DEFAULT = -1; // 0xffffffff
+ field public static final int VISIBILITY_PRIVATE = 0; // 0x0
+ field public static final int VISIBILITY_PUBLIC = 1; // 0x1
+ field public static final int VISIBILITY_SECRET = -1; // 0xffffffff
+ }
+
+ public static class NotificationCompat.Action {
+ ctor public NotificationCompat.Action(int, CharSequence?, android.app.PendingIntent?);
+ ctor public NotificationCompat.Action(androidx.core.graphics.drawable.IconCompat?, CharSequence?, android.app.PendingIntent?);
+ method public android.app.PendingIntent? getActionIntent();
+ method public boolean getAllowGeneratedReplies();
+ method public androidx.core.app.RemoteInput![]? getDataOnlyRemoteInputs();
+ method public android.os.Bundle getExtras();
+ method @Deprecated public int getIcon();
+ method public androidx.core.graphics.drawable.IconCompat? getIconCompat();
+ method public androidx.core.app.RemoteInput![]? getRemoteInputs();
+ method @androidx.core.app.NotificationCompat.Action.SemanticAction public int getSemanticAction();
+ method public boolean getShowsUserInterface();
+ method public CharSequence? getTitle();
+ method public boolean isAuthenticationRequired();
+ method public boolean isContextual();
+ field public static final int SEMANTIC_ACTION_ARCHIVE = 5; // 0x5
+ field public static final int SEMANTIC_ACTION_CALL = 10; // 0xa
+ field public static final int SEMANTIC_ACTION_DELETE = 4; // 0x4
+ field public static final int SEMANTIC_ACTION_MARK_AS_READ = 2; // 0x2
+ field public static final int SEMANTIC_ACTION_MARK_AS_UNREAD = 3; // 0x3
+ field public static final int SEMANTIC_ACTION_MUTE = 6; // 0x6
+ field public static final int SEMANTIC_ACTION_NONE = 0; // 0x0
+ field public static final int SEMANTIC_ACTION_REPLY = 1; // 0x1
+ field public static final int SEMANTIC_ACTION_THUMBS_DOWN = 9; // 0x9
+ field public static final int SEMANTIC_ACTION_THUMBS_UP = 8; // 0x8
+ field public static final int SEMANTIC_ACTION_UNMUTE = 7; // 0x7
+ field public android.app.PendingIntent! actionIntent;
+ field @Deprecated public int icon;
+ field public CharSequence! title;
+ }
+
+ public static final class NotificationCompat.Action.Builder {
+ ctor public NotificationCompat.Action.Builder(androidx.core.graphics.drawable.IconCompat?, CharSequence?, android.app.PendingIntent?);
+ ctor public NotificationCompat.Action.Builder(int, CharSequence?, android.app.PendingIntent?);
+ ctor public NotificationCompat.Action.Builder(androidx.core.app.NotificationCompat.Action);
+ method public androidx.core.app.NotificationCompat.Action.Builder addExtras(android.os.Bundle?);
+ method public androidx.core.app.NotificationCompat.Action.Builder addRemoteInput(androidx.core.app.RemoteInput?);
+ method public androidx.core.app.NotificationCompat.Action build();
+ method public androidx.core.app.NotificationCompat.Action.Builder extend(androidx.core.app.NotificationCompat.Action.Extender);
+ method public android.os.Bundle getExtras();
+ method public androidx.core.app.NotificationCompat.Action.Builder setAllowGeneratedReplies(boolean);
+ method public androidx.core.app.NotificationCompat.Action.Builder setAuthenticationRequired(boolean);
+ method public androidx.core.app.NotificationCompat.Action.Builder setContextual(boolean);
+ method public androidx.core.app.NotificationCompat.Action.Builder setSemanticAction(@androidx.core.app.NotificationCompat.Action.SemanticAction int);
+ method public androidx.core.app.NotificationCompat.Action.Builder setShowsUserInterface(boolean);
+ }
+
+ public static interface NotificationCompat.Action.Extender {
+ method public androidx.core.app.NotificationCompat.Action.Builder extend(androidx.core.app.NotificationCompat.Action.Builder);
+ }
+
+ @IntDef({androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_NONE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_REPLY, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_READ, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_UNREAD, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_DELETE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_ARCHIVE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_MUTE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_UNMUTE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_THUMBS_UP, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_THUMBS_DOWN, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_CALL}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationCompat.Action.SemanticAction {
+ }
+
+ public static final class NotificationCompat.Action.WearableExtender implements androidx.core.app.NotificationCompat.Action.Extender {
+ ctor public NotificationCompat.Action.WearableExtender();
+ ctor public NotificationCompat.Action.WearableExtender(androidx.core.app.NotificationCompat.Action);
+ method public androidx.core.app.NotificationCompat.Action.WearableExtender clone();
+ method public androidx.core.app.NotificationCompat.Action.Builder extend(androidx.core.app.NotificationCompat.Action.Builder);
+ method @Deprecated public CharSequence? getCancelLabel();
+ method @Deprecated public CharSequence? getConfirmLabel();
+ method public boolean getHintDisplayActionInline();
+ method public boolean getHintLaunchesActivity();
+ method @Deprecated public CharSequence? getInProgressLabel();
+ method public boolean isAvailableOffline();
+ method public androidx.core.app.NotificationCompat.Action.WearableExtender setAvailableOffline(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.Action.WearableExtender setCancelLabel(CharSequence?);
+ method @Deprecated public androidx.core.app.NotificationCompat.Action.WearableExtender setConfirmLabel(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Action.WearableExtender setHintDisplayActionInline(boolean);
+ method public androidx.core.app.NotificationCompat.Action.WearableExtender setHintLaunchesActivity(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.Action.WearableExtender setInProgressLabel(CharSequence?);
+ }
+
+ public static class NotificationCompat.BigPictureStyle extends androidx.core.app.NotificationCompat.Style {
+ ctor public NotificationCompat.BigPictureStyle();
+ ctor public NotificationCompat.BigPictureStyle(androidx.core.app.NotificationCompat.Builder?);
+ method public androidx.core.app.NotificationCompat.BigPictureStyle bigLargeIcon(android.graphics.Bitmap?);
+ method public androidx.core.app.NotificationCompat.BigPictureStyle bigPicture(android.graphics.Bitmap?);
+ method public androidx.core.app.NotificationCompat.BigPictureStyle setBigContentTitle(CharSequence?);
+ method @RequiresApi(31) public androidx.core.app.NotificationCompat.BigPictureStyle setContentDescription(CharSequence?);
+ method public androidx.core.app.NotificationCompat.BigPictureStyle setSummaryText(CharSequence?);
+ method @RequiresApi(31) public androidx.core.app.NotificationCompat.BigPictureStyle showBigPictureWhenCollapsed(boolean);
+ }
+
+ public static class NotificationCompat.BigTextStyle extends androidx.core.app.NotificationCompat.Style {
+ ctor public NotificationCompat.BigTextStyle();
+ ctor public NotificationCompat.BigTextStyle(androidx.core.app.NotificationCompat.Builder?);
+ method public androidx.core.app.NotificationCompat.BigTextStyle bigText(CharSequence?);
+ method public androidx.core.app.NotificationCompat.BigTextStyle setBigContentTitle(CharSequence?);
+ method public androidx.core.app.NotificationCompat.BigTextStyle setSummaryText(CharSequence?);
+ }
+
+ public static final class NotificationCompat.BubbleMetadata {
+ method public static androidx.core.app.NotificationCompat.BubbleMetadata? fromPlatform(android.app.Notification.BubbleMetadata?);
+ method public boolean getAutoExpandBubble();
+ method public android.app.PendingIntent? getDeleteIntent();
+ method @Dimension(unit=androidx.annotation.Dimension.DP) public int getDesiredHeight();
+ method @DimenRes public int getDesiredHeightResId();
+ method public androidx.core.graphics.drawable.IconCompat? getIcon();
+ method public android.app.PendingIntent? getIntent();
+ method public String? getShortcutId();
+ method public boolean isNotificationSuppressed();
+ method public static android.app.Notification.BubbleMetadata? toPlatform(androidx.core.app.NotificationCompat.BubbleMetadata?);
+ }
+
+ public static final class NotificationCompat.BubbleMetadata.Builder {
+ ctor @Deprecated public NotificationCompat.BubbleMetadata.Builder();
+ ctor @RequiresApi(30) public NotificationCompat.BubbleMetadata.Builder(String);
+ ctor public NotificationCompat.BubbleMetadata.Builder(android.app.PendingIntent, androidx.core.graphics.drawable.IconCompat);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata build();
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setAutoExpandBubble(boolean);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setDeleteIntent(android.app.PendingIntent?);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setDesiredHeight(@Dimension(unit=androidx.annotation.Dimension.DP) int);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setDesiredHeightResId(@DimenRes int);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setIcon(androidx.core.graphics.drawable.IconCompat);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setIntent(android.app.PendingIntent);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setSuppressNotification(boolean);
+ }
+
+ public static class NotificationCompat.Builder {
+ ctor @RequiresApi(19) public NotificationCompat.Builder(android.content.Context, android.app.Notification);
+ ctor public NotificationCompat.Builder(android.content.Context, String);
+ ctor @Deprecated public NotificationCompat.Builder(android.content.Context);
+ method public androidx.core.app.NotificationCompat.Builder addAction(int, CharSequence?, android.app.PendingIntent?);
+ method public androidx.core.app.NotificationCompat.Builder addAction(androidx.core.app.NotificationCompat.Action?);
+ method public androidx.core.app.NotificationCompat.Builder addExtras(android.os.Bundle?);
+ method @RequiresApi(21) public androidx.core.app.NotificationCompat.Builder addInvisibleAction(int, CharSequence?, android.app.PendingIntent?);
+ method @RequiresApi(21) public androidx.core.app.NotificationCompat.Builder addInvisibleAction(androidx.core.app.NotificationCompat.Action?);
+ method @Deprecated public androidx.core.app.NotificationCompat.Builder addPerson(String?);
+ method public androidx.core.app.NotificationCompat.Builder addPerson(androidx.core.app.Person?);
+ method public android.app.Notification build();
+ method public androidx.core.app.NotificationCompat.Builder clearActions();
+ method public androidx.core.app.NotificationCompat.Builder clearInvisibleActions();
+ method public androidx.core.app.NotificationCompat.Builder clearPeople();
+ method public android.widget.RemoteViews? createBigContentView();
+ method public android.widget.RemoteViews? createContentView();
+ method public android.widget.RemoteViews? createHeadsUpContentView();
+ method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Extender);
+ method public android.os.Bundle getExtras();
+ method @Deprecated public android.app.Notification getNotification();
+ method protected static CharSequence? limitCharSequenceLength(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setAllowSystemGeneratedContextualActions(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setAutoCancel(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setBadgeIconType(int);
+ method public androidx.core.app.NotificationCompat.Builder setBubbleMetadata(androidx.core.app.NotificationCompat.BubbleMetadata?);
+ method public androidx.core.app.NotificationCompat.Builder setCategory(String?);
+ method public androidx.core.app.NotificationCompat.Builder setChannelId(String);
+ method @RequiresApi(24) public androidx.core.app.NotificationCompat.Builder setChronometerCountDown(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setColor(@ColorInt int);
+ method public androidx.core.app.NotificationCompat.Builder setColorized(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setContent(android.widget.RemoteViews?);
+ method public androidx.core.app.NotificationCompat.Builder setContentInfo(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setContentIntent(android.app.PendingIntent?);
+ method public androidx.core.app.NotificationCompat.Builder setContentText(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setContentTitle(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setCustomBigContentView(android.widget.RemoteViews?);
+ method public androidx.core.app.NotificationCompat.Builder setCustomContentView(android.widget.RemoteViews?);
+ method public androidx.core.app.NotificationCompat.Builder setCustomHeadsUpContentView(android.widget.RemoteViews?);
+ method public androidx.core.app.NotificationCompat.Builder setDefaults(int);
+ method public androidx.core.app.NotificationCompat.Builder setDeleteIntent(android.app.PendingIntent?);
+ method public androidx.core.app.NotificationCompat.Builder setExtras(android.os.Bundle?);
+ method public androidx.core.app.NotificationCompat.Builder setForegroundServiceBehavior(int);
+ method public androidx.core.app.NotificationCompat.Builder setFullScreenIntent(android.app.PendingIntent?, boolean);
+ method public androidx.core.app.NotificationCompat.Builder setGroup(String?);
+ method public androidx.core.app.NotificationCompat.Builder setGroupAlertBehavior(int);
+ method public androidx.core.app.NotificationCompat.Builder setGroupSummary(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setLargeIcon(android.graphics.Bitmap?);
+ method public androidx.core.app.NotificationCompat.Builder setLights(@ColorInt int, int, int);
+ method public androidx.core.app.NotificationCompat.Builder setLocalOnly(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setLocusId(androidx.core.content.LocusIdCompat?);
+ method @Deprecated public androidx.core.app.NotificationCompat.Builder setNotificationSilent();
+ method public androidx.core.app.NotificationCompat.Builder setNumber(int);
+ method public androidx.core.app.NotificationCompat.Builder setOngoing(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setOnlyAlertOnce(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setPriority(int);
+ method public androidx.core.app.NotificationCompat.Builder setProgress(int, int, boolean);
+ method public androidx.core.app.NotificationCompat.Builder setPublicVersion(android.app.Notification?);
+ method public androidx.core.app.NotificationCompat.Builder setRemoteInputHistory(CharSequence![]?);
+ method public androidx.core.app.NotificationCompat.Builder setSettingsText(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setShortcutId(String?);
+ method public androidx.core.app.NotificationCompat.Builder setShortcutInfo(androidx.core.content.pm.ShortcutInfoCompat?);
+ method public androidx.core.app.NotificationCompat.Builder setShowWhen(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setSilent(boolean);
+ method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(androidx.core.graphics.drawable.IconCompat);
+ method public androidx.core.app.NotificationCompat.Builder setSmallIcon(int);
+ method public androidx.core.app.NotificationCompat.Builder setSmallIcon(int, int);
+ method public androidx.core.app.NotificationCompat.Builder setSortKey(String?);
+ method public androidx.core.app.NotificationCompat.Builder setSound(android.net.Uri?);
+ method public androidx.core.app.NotificationCompat.Builder setSound(android.net.Uri?, int);
+ method public androidx.core.app.NotificationCompat.Builder setStyle(androidx.core.app.NotificationCompat.Style?);
+ method public androidx.core.app.NotificationCompat.Builder setSubText(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setTicker(CharSequence?);
+ method @Deprecated public androidx.core.app.NotificationCompat.Builder setTicker(CharSequence?, android.widget.RemoteViews?);
+ method public androidx.core.app.NotificationCompat.Builder setTimeoutAfter(long);
+ method public androidx.core.app.NotificationCompat.Builder setUsesChronometer(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setVibrate(long[]?);
+ method public androidx.core.app.NotificationCompat.Builder setVisibility(int);
+ method public androidx.core.app.NotificationCompat.Builder setWhen(long);
+ field @Deprecated public java.util.ArrayList<java.lang.String!>! mPeople;
+ }
+
+ public static final class NotificationCompat.CarExtender implements androidx.core.app.NotificationCompat.Extender {
+ ctor public NotificationCompat.CarExtender();
+ ctor public NotificationCompat.CarExtender(android.app.Notification);
+ method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
+ method @ColorInt public int getColor();
+ method public android.graphics.Bitmap? getLargeIcon();
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation? getUnreadConversation();
+ method public androidx.core.app.NotificationCompat.CarExtender setColor(@ColorInt int);
+ method public androidx.core.app.NotificationCompat.CarExtender setLargeIcon(android.graphics.Bitmap?);
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender setUnreadConversation(androidx.core.app.NotificationCompat.CarExtender.UnreadConversation?);
+ }
+
+ @Deprecated public static class NotificationCompat.CarExtender.UnreadConversation {
+ method @Deprecated public long getLatestTimestamp();
+ method @Deprecated public String![]? getMessages();
+ method @Deprecated public String? getParticipant();
+ method @Deprecated public String![]? getParticipants();
+ method @Deprecated public android.app.PendingIntent? getReadPendingIntent();
+ method @Deprecated public androidx.core.app.RemoteInput? getRemoteInput();
+ method @Deprecated public android.app.PendingIntent? getReplyPendingIntent();
+ }
+
+ @Deprecated public static class NotificationCompat.CarExtender.UnreadConversation.Builder {
+ ctor @Deprecated public NotificationCompat.CarExtender.UnreadConversation.Builder(String);
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder addMessage(String?);
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation build();
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder setLatestTimestamp(long);
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder setReadPendingIntent(android.app.PendingIntent?);
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder setReplyAction(android.app.PendingIntent?, androidx.core.app.RemoteInput?);
+ }
+
+ public static class NotificationCompat.DecoratedCustomViewStyle extends androidx.core.app.NotificationCompat.Style {
+ ctor public NotificationCompat.DecoratedCustomViewStyle();
+ }
+
+ public static interface NotificationCompat.Extender {
+ method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
+ }
+
+ public static class NotificationCompat.InboxStyle extends androidx.core.app.NotificationCompat.Style {
+ ctor public NotificationCompat.InboxStyle();
+ ctor public NotificationCompat.InboxStyle(androidx.core.app.NotificationCompat.Builder?);
+ method public androidx.core.app.NotificationCompat.InboxStyle addLine(CharSequence?);
+ method public androidx.core.app.NotificationCompat.InboxStyle setBigContentTitle(CharSequence?);
+ method public androidx.core.app.NotificationCompat.InboxStyle setSummaryText(CharSequence?);
+ }
+
+ public static class NotificationCompat.MessagingStyle extends androidx.core.app.NotificationCompat.Style {
+ ctor @Deprecated public NotificationCompat.MessagingStyle(CharSequence);
+ ctor public NotificationCompat.MessagingStyle(androidx.core.app.Person);
+ method public void addCompatExtras(android.os.Bundle);
+ method public androidx.core.app.NotificationCompat.MessagingStyle addHistoricMessage(androidx.core.app.NotificationCompat.MessagingStyle.Message?);
+ method @Deprecated public androidx.core.app.NotificationCompat.MessagingStyle addMessage(CharSequence?, long, CharSequence?);
+ method public androidx.core.app.NotificationCompat.MessagingStyle addMessage(CharSequence?, long, androidx.core.app.Person?);
+ method public androidx.core.app.NotificationCompat.MessagingStyle addMessage(androidx.core.app.NotificationCompat.MessagingStyle.Message?);
+ method public static androidx.core.app.NotificationCompat.MessagingStyle? extractMessagingStyleFromNotification(android.app.Notification);
+ method public CharSequence? getConversationTitle();
+ method public java.util.List<androidx.core.app.NotificationCompat.MessagingStyle.Message!> getHistoricMessages();
+ method public java.util.List<androidx.core.app.NotificationCompat.MessagingStyle.Message!> getMessages();
+ method public androidx.core.app.Person getUser();
+ method @Deprecated public CharSequence? getUserDisplayName();
+ method public boolean isGroupConversation();
+ method public androidx.core.app.NotificationCompat.MessagingStyle setConversationTitle(CharSequence?);
+ method public androidx.core.app.NotificationCompat.MessagingStyle setGroupConversation(boolean);
+ field public static final int MAXIMUM_RETAINED_MESSAGES = 25; // 0x19
+ }
+
+ public static final class NotificationCompat.MessagingStyle.Message {
+ ctor public NotificationCompat.MessagingStyle.Message(CharSequence?, long, androidx.core.app.Person?);
+ ctor @Deprecated public NotificationCompat.MessagingStyle.Message(CharSequence?, long, CharSequence?);
+ method public String? getDataMimeType();
+ method public android.net.Uri? getDataUri();
+ method public android.os.Bundle getExtras();
+ method public androidx.core.app.Person? getPerson();
+ method @Deprecated public CharSequence? getSender();
+ method public CharSequence? getText();
+ method public long getTimestamp();
+ method public androidx.core.app.NotificationCompat.MessagingStyle.Message setData(String?, android.net.Uri?);
+ }
+
+ public abstract static class NotificationCompat.Style {
+ ctor public NotificationCompat.Style();
+ method public android.app.Notification? build();
+ method public void setBuilder(androidx.core.app.NotificationCompat.Builder?);
+ }
+
+ public static final class NotificationCompat.WearableExtender implements androidx.core.app.NotificationCompat.Extender {
+ ctor public NotificationCompat.WearableExtender();
+ ctor public NotificationCompat.WearableExtender(android.app.Notification);
+ method public androidx.core.app.NotificationCompat.WearableExtender addAction(androidx.core.app.NotificationCompat.Action);
+ method public androidx.core.app.NotificationCompat.WearableExtender addActions(java.util.List<androidx.core.app.NotificationCompat.Action!>);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender addPage(android.app.Notification);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender addPages(java.util.List<android.app.Notification!>);
+ method public androidx.core.app.NotificationCompat.WearableExtender clearActions();
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender clearPages();
+ method public androidx.core.app.NotificationCompat.WearableExtender clone();
+ method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
+ method public java.util.List<androidx.core.app.NotificationCompat.Action!> getActions();
+ method @Deprecated public android.graphics.Bitmap? getBackground();
+ method public String? getBridgeTag();
+ method public int getContentAction();
+ method @Deprecated public int getContentIcon();
+ method @Deprecated public int getContentIconGravity();
+ method public boolean getContentIntentAvailableOffline();
+ method @Deprecated public int getCustomContentHeight();
+ method @Deprecated public int getCustomSizePreset();
+ method public String? getDismissalId();
+ method @Deprecated public android.app.PendingIntent? getDisplayIntent();
+ method @Deprecated public int getGravity();
+ method @Deprecated public boolean getHintAmbientBigPicture();
+ method @Deprecated public boolean getHintAvoidBackgroundClipping();
+ method public boolean getHintContentIntentLaunchesActivity();
+ method @Deprecated public boolean getHintHideIcon();
+ method @Deprecated public int getHintScreenTimeout();
+ method @Deprecated public boolean getHintShowBackgroundOnly();
+ method @Deprecated public java.util.List<android.app.Notification!> getPages();
+ method public boolean getStartScrollBottom();
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setBackground(android.graphics.Bitmap?);
+ method public androidx.core.app.NotificationCompat.WearableExtender setBridgeTag(String?);
+ method public androidx.core.app.NotificationCompat.WearableExtender setContentAction(int);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setContentIcon(int);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setContentIconGravity(int);
+ method public androidx.core.app.NotificationCompat.WearableExtender setContentIntentAvailableOffline(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setCustomContentHeight(int);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setCustomSizePreset(int);
+ method public androidx.core.app.NotificationCompat.WearableExtender setDismissalId(String?);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setDisplayIntent(android.app.PendingIntent?);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setGravity(int);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintAmbientBigPicture(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintAvoidBackgroundClipping(boolean);
+ method public androidx.core.app.NotificationCompat.WearableExtender setHintContentIntentLaunchesActivity(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintHideIcon(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintScreenTimeout(int);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintShowBackgroundOnly(boolean);
+ method public androidx.core.app.NotificationCompat.WearableExtender setStartScrollBottom(boolean);
+ field @Deprecated public static final int SCREEN_TIMEOUT_LONG = -1; // 0xffffffff
+ field @Deprecated public static final int SCREEN_TIMEOUT_SHORT = 0; // 0x0
+ field @Deprecated public static final int SIZE_DEFAULT = 0; // 0x0
+ field @Deprecated public static final int SIZE_FULL_SCREEN = 5; // 0x5
+ field @Deprecated public static final int SIZE_LARGE = 4; // 0x4
+ field @Deprecated public static final int SIZE_MEDIUM = 3; // 0x3
+ field @Deprecated public static final int SIZE_SMALL = 2; // 0x2
+ field @Deprecated public static final int SIZE_XSMALL = 1; // 0x1
+ field public static final int UNSET_ACTION_INDEX = -1; // 0xffffffff
+ }
+
+ public final class NotificationCompatExtras {
+ field public static final String EXTRA_ACTION_EXTRAS = "android.support.actionExtras";
+ field public static final String EXTRA_GROUP_KEY = "android.support.groupKey";
+ field public static final String EXTRA_GROUP_SUMMARY = "android.support.isGroupSummary";
+ field public static final String EXTRA_LOCAL_ONLY = "android.support.localOnly";
+ field public static final String EXTRA_REMOTE_INPUTS = "android.support.remoteInputs";
+ field public static final String EXTRA_SORT_KEY = "android.support.sortKey";
+ }
+
+ public abstract class NotificationCompatSideChannelService extends android.app.Service {
+ ctor public NotificationCompatSideChannelService();
+ method public abstract void cancel(String!, int, String!);
+ method public abstract void cancelAll(String!);
+ method public abstract void notify(String!, int, String!, android.app.Notification!);
+ method public android.os.IBinder! onBind(android.content.Intent!);
+ }
+
+ public final class NotificationManagerCompat {
+ method public boolean areNotificationsEnabled();
+ method public void cancel(int);
+ method public void cancel(String?, int);
+ method public void cancelAll();
+ method public void createNotificationChannel(android.app.NotificationChannel);
+ method public void createNotificationChannel(androidx.core.app.NotificationChannelCompat);
+ method public void createNotificationChannelGroup(android.app.NotificationChannelGroup);
+ method public void createNotificationChannelGroup(androidx.core.app.NotificationChannelGroupCompat);
+ method public void createNotificationChannelGroups(java.util.List<android.app.NotificationChannelGroup!>);
+ method public void createNotificationChannelGroupsCompat(java.util.List<androidx.core.app.NotificationChannelGroupCompat!>);
+ method public void createNotificationChannels(java.util.List<android.app.NotificationChannel!>);
+ method public void createNotificationChannelsCompat(java.util.List<androidx.core.app.NotificationChannelCompat!>);
+ method public void deleteNotificationChannel(String);
+ method public void deleteNotificationChannelGroup(String);
+ method public void deleteUnlistedNotificationChannels(java.util.Collection<java.lang.String!>);
+ method public static androidx.core.app.NotificationManagerCompat from(android.content.Context);
+ method public static java.util.Set<java.lang.String!> getEnabledListenerPackages(android.content.Context);
+ method public int getImportance();
+ method public android.app.NotificationChannel? getNotificationChannel(String);
+ method public android.app.NotificationChannel? getNotificationChannel(String, String);
+ method public androidx.core.app.NotificationChannelCompat? getNotificationChannelCompat(String);
+ method public androidx.core.app.NotificationChannelCompat? getNotificationChannelCompat(String, String);
+ method public android.app.NotificationChannelGroup? getNotificationChannelGroup(String);
+ method public androidx.core.app.NotificationChannelGroupCompat? getNotificationChannelGroupCompat(String);
+ method public java.util.List<android.app.NotificationChannelGroup!> getNotificationChannelGroups();
+ method public java.util.List<androidx.core.app.NotificationChannelGroupCompat!> getNotificationChannelGroupsCompat();
+ method public java.util.List<android.app.NotificationChannel!> getNotificationChannels();
+ method public java.util.List<androidx.core.app.NotificationChannelCompat!> getNotificationChannelsCompat();
+ method public void notify(int, android.app.Notification);
+ method public void notify(String?, int, android.app.Notification);
+ field public static final String ACTION_BIND_SIDE_CHANNEL = "android.support.BIND_NOTIFICATION_SIDE_CHANNEL";
+ field public static final String EXTRA_USE_SIDE_CHANNEL = "android.support.useSideChannel";
+ field public static final int IMPORTANCE_DEFAULT = 3; // 0x3
+ field public static final int IMPORTANCE_HIGH = 4; // 0x4
+ field public static final int IMPORTANCE_LOW = 2; // 0x2
+ field public static final int IMPORTANCE_MAX = 5; // 0x5
+ field public static final int IMPORTANCE_MIN = 1; // 0x1
+ field public static final int IMPORTANCE_NONE = 0; // 0x0
+ field public static final int IMPORTANCE_UNSPECIFIED = -1000; // 0xfffffc18
+ }
+
+ public interface OnMultiWindowModeChangedProvider {
+ method public void addOnMultiWindowModeChangedListener(androidx.core.util.Consumer<androidx.core.app.MultiWindowModeChangedInfo!>);
+ method public void removeOnMultiWindowModeChangedListener(androidx.core.util.Consumer<androidx.core.app.MultiWindowModeChangedInfo!>);
+ }
+
+ public interface OnNewIntentProvider {
+ method public void addOnNewIntentListener(androidx.core.util.Consumer<android.content.Intent!>);
+ method public void removeOnNewIntentListener(androidx.core.util.Consumer<android.content.Intent!>);
+ }
+
+ public interface OnPictureInPictureModeChangedProvider {
+ method public void addOnPictureInPictureModeChangedListener(androidx.core.util.Consumer<androidx.core.app.PictureInPictureModeChangedInfo!>);
+ method public void removeOnPictureInPictureModeChangedListener(androidx.core.util.Consumer<androidx.core.app.PictureInPictureModeChangedInfo!>);
+ }
+
+ public class Person {
+ method public static androidx.core.app.Person fromBundle(android.os.Bundle);
+ method public androidx.core.graphics.drawable.IconCompat? getIcon();
+ method public String? getKey();
+ method public CharSequence? getName();
+ method public String? getUri();
+ method public boolean isBot();
+ method public boolean isImportant();
+ method public androidx.core.app.Person.Builder toBuilder();
+ method public android.os.Bundle toBundle();
+ }
+
+ public static class Person.Builder {
+ ctor public Person.Builder();
+ method public androidx.core.app.Person build();
+ method public androidx.core.app.Person.Builder setBot(boolean);
+ method public androidx.core.app.Person.Builder setIcon(androidx.core.graphics.drawable.IconCompat?);
+ method public androidx.core.app.Person.Builder setImportant(boolean);
+ method public androidx.core.app.Person.Builder setKey(String?);
+ method public androidx.core.app.Person.Builder setName(CharSequence?);
+ method public androidx.core.app.Person.Builder setUri(String?);
+ }
+
+ public final class PictureInPictureModeChangedInfo {
+ ctor public PictureInPictureModeChangedInfo(boolean);
+ ctor @RequiresApi(26) public PictureInPictureModeChangedInfo(boolean, android.content.res.Configuration);
+ method @RequiresApi(26) public android.content.res.Configuration getNewConfig();
+ method public boolean isInPictureInPictureMode();
+ }
+
+ public final class RemoteActionCompat implements androidx.versionedparcelable.VersionedParcelable {
+ ctor public RemoteActionCompat(androidx.core.graphics.drawable.IconCompat, CharSequence, CharSequence, android.app.PendingIntent);
+ ctor public RemoteActionCompat(androidx.core.app.RemoteActionCompat);
+ method @RequiresApi(26) public static androidx.core.app.RemoteActionCompat createFromRemoteAction(android.app.RemoteAction);
+ method public android.app.PendingIntent getActionIntent();
+ method public CharSequence getContentDescription();
+ method public androidx.core.graphics.drawable.IconCompat getIcon();
+ method public CharSequence getTitle();
+ method public boolean isEnabled();
+ method public void setEnabled(boolean);
+ method public void setShouldShowIcon(boolean);
+ method public boolean shouldShowIcon();
+ method @RequiresApi(26) public android.app.RemoteAction toRemoteAction();
+ }
+
+ public final class RemoteInput {
+ method public static void addDataResultToIntent(androidx.core.app.RemoteInput, android.content.Intent, java.util.Map<java.lang.String!,android.net.Uri!>);
+ method public static void addResultsToIntent(androidx.core.app.RemoteInput![], android.content.Intent, android.os.Bundle);
+ method public boolean getAllowFreeFormInput();
+ method public java.util.Set<java.lang.String!>? getAllowedDataTypes();
+ method public CharSequence![]? getChoices();
+ method public static java.util.Map<java.lang.String!,android.net.Uri!>? getDataResultsFromIntent(android.content.Intent, String);
+ method public int getEditChoicesBeforeSending();
+ method public android.os.Bundle getExtras();
+ method public CharSequence? getLabel();
+ method public String getResultKey();
+ method public static android.os.Bundle? getResultsFromIntent(android.content.Intent);
+ method public static int getResultsSource(android.content.Intent);
+ method public boolean isDataOnly();
+ method public static void setResultsSource(android.content.Intent, int);
+ field public static final int EDIT_CHOICES_BEFORE_SENDING_AUTO = 0; // 0x0
+ field public static final int EDIT_CHOICES_BEFORE_SENDING_DISABLED = 1; // 0x1
+ field public static final int EDIT_CHOICES_BEFORE_SENDING_ENABLED = 2; // 0x2
+ field public static final String EXTRA_RESULTS_DATA = "android.remoteinput.resultsData";
+ field public static final String RESULTS_CLIP_LABEL = "android.remoteinput.results";
+ field public static final int SOURCE_CHOICE = 1; // 0x1
+ field public static final int SOURCE_FREE_FORM_INPUT = 0; // 0x0
+ }
+
+ public static final class RemoteInput.Builder {
+ ctor public RemoteInput.Builder(String);
+ method public androidx.core.app.RemoteInput.Builder addExtras(android.os.Bundle);
+ method public androidx.core.app.RemoteInput build();
+ method public android.os.Bundle getExtras();
+ method public androidx.core.app.RemoteInput.Builder setAllowDataType(String, boolean);
+ method public androidx.core.app.RemoteInput.Builder setAllowFreeFormInput(boolean);
+ method public androidx.core.app.RemoteInput.Builder setChoices(CharSequence![]?);
+ method public androidx.core.app.RemoteInput.Builder setEditChoicesBeforeSending(int);
+ method public androidx.core.app.RemoteInput.Builder setLabel(CharSequence?);
+ }
+
+ public final class ServiceCompat {
+ method public static void stopForeground(android.app.Service, int);
+ field public static final int START_STICKY = 1; // 0x1
+ field public static final int STOP_FOREGROUND_DETACH = 2; // 0x2
+ field public static final int STOP_FOREGROUND_REMOVE = 1; // 0x1
+ }
+
+ public final class ShareCompat {
+ method @Deprecated public static void configureMenuItem(android.view.MenuItem, androidx.core.app.ShareCompat.IntentBuilder);
+ method @Deprecated public static void configureMenuItem(android.view.Menu, @IdRes int, androidx.core.app.ShareCompat.IntentBuilder);
+ method public static android.content.ComponentName? getCallingActivity(android.app.Activity);
+ method public static String? getCallingPackage(android.app.Activity);
+ field public static final String EXTRA_CALLING_ACTIVITY = "androidx.core.app.EXTRA_CALLING_ACTIVITY";
+ field public static final String EXTRA_CALLING_ACTIVITY_INTEROP = "android.support.v4.app.EXTRA_CALLING_ACTIVITY";
+ field public static final String EXTRA_CALLING_PACKAGE = "androidx.core.app.EXTRA_CALLING_PACKAGE";
+ field public static final String EXTRA_CALLING_PACKAGE_INTEROP = "android.support.v4.app.EXTRA_CALLING_PACKAGE";
+ }
+
+ public static class ShareCompat.IntentBuilder {
+ ctor public ShareCompat.IntentBuilder(android.content.Context);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailBcc(String);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailBcc(String![]);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailCc(String);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailCc(String![]);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailTo(String);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailTo(String![]);
+ method public androidx.core.app.ShareCompat.IntentBuilder addStream(android.net.Uri);
+ method public android.content.Intent createChooserIntent();
+ method @Deprecated public static androidx.core.app.ShareCompat.IntentBuilder from(android.app.Activity);
+ method public android.content.Intent getIntent();
+ method public androidx.core.app.ShareCompat.IntentBuilder setChooserTitle(CharSequence?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setChooserTitle(@StringRes int);
+ method public androidx.core.app.ShareCompat.IntentBuilder setEmailBcc(String![]?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setEmailCc(String![]?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setEmailTo(String![]?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setHtmlText(String?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setStream(android.net.Uri?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setSubject(String?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setText(CharSequence?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setType(String?);
+ method public void startChooser();
+ }
+
+ public static class ShareCompat.IntentReader {
+ ctor public ShareCompat.IntentReader(android.app.Activity);
+ ctor public ShareCompat.IntentReader(android.content.Context, android.content.Intent);
+ method @Deprecated public static androidx.core.app.ShareCompat.IntentReader from(android.app.Activity);
+ method public android.content.ComponentName? getCallingActivity();
+ method public android.graphics.drawable.Drawable? getCallingActivityIcon();
+ method public android.graphics.drawable.Drawable? getCallingApplicationIcon();
+ method public CharSequence? getCallingApplicationLabel();
+ method public String? getCallingPackage();
+ method public String![]? getEmailBcc();
+ method public String![]? getEmailCc();
+ method public String![]? getEmailTo();
+ method public String? getHtmlText();
+ method public android.net.Uri? getStream();
+ method public android.net.Uri? getStream(int);
+ method public int getStreamCount();
+ method public String? getSubject();
+ method public CharSequence? getText();
+ method public String? getType();
+ method public boolean isMultipleShare();
+ method public boolean isShareIntent();
+ method public boolean isSingleShare();
+ }
+
+ public abstract class SharedElementCallback {
+ ctor public SharedElementCallback();
+ method public android.os.Parcelable! onCaptureSharedElementSnapshot(android.view.View!, android.graphics.Matrix!, android.graphics.RectF!);
+ method public android.view.View! onCreateSnapshotView(android.content.Context!, android.os.Parcelable!);
+ method public void onMapSharedElements(java.util.List<java.lang.String!>!, java.util.Map<java.lang.String!,android.view.View!>!);
+ method public void onRejectSharedElements(java.util.List<android.view.View!>!);
+ method public void onSharedElementEnd(java.util.List<java.lang.String!>!, java.util.List<android.view.View!>!, java.util.List<android.view.View!>!);
+ method public void onSharedElementStart(java.util.List<java.lang.String!>!, java.util.List<android.view.View!>!, java.util.List<android.view.View!>!);
+ method public void onSharedElementsArrived(java.util.List<java.lang.String!>!, java.util.List<android.view.View!>!, androidx.core.app.SharedElementCallback.OnSharedElementsReadyListener!);
+ }
+
+ public static interface SharedElementCallback.OnSharedElementsReadyListener {
+ method public void onSharedElementsReady();
+ }
+
+ public final class TaskStackBuilder implements java.lang.Iterable<android.content.Intent> {
+ method public androidx.core.app.TaskStackBuilder addNextIntent(android.content.Intent);
+ method public androidx.core.app.TaskStackBuilder addNextIntentWithParentStack(android.content.Intent);
+ method public androidx.core.app.TaskStackBuilder addParentStack(android.app.Activity);
+ method public androidx.core.app.TaskStackBuilder addParentStack(Class<?>);
+ method public androidx.core.app.TaskStackBuilder addParentStack(android.content.ComponentName);
+ method public static androidx.core.app.TaskStackBuilder create(android.content.Context);
+ method public android.content.Intent? editIntentAt(int);
+ method @Deprecated public static androidx.core.app.TaskStackBuilder! from(android.content.Context!);
+ method @Deprecated public android.content.Intent! getIntent(int);
+ method public int getIntentCount();
+ method public android.content.Intent![] getIntents();
+ method public android.app.PendingIntent? getPendingIntent(int, int);
+ method public android.app.PendingIntent? getPendingIntent(int, int, android.os.Bundle?);
+ method @Deprecated public java.util.Iterator<android.content.Intent!> iterator();
+ method public void startActivities();
+ method public void startActivities(android.os.Bundle?);
+ }
+
+ public static interface TaskStackBuilder.SupportParentable {
+ method public android.content.Intent? getSupportParentActivityIntent();
+ }
+
+}
+
+package androidx.core.content {
+
+ public final class ContentProviderCompat {
+ method public static android.content.Context requireContext(android.content.ContentProvider);
+ }
+
+ public final class ContentResolverCompat {
+ method public static android.database.Cursor? query(android.content.ContentResolver, android.net.Uri, String![]?, String?, String![]?, String?, androidx.core.os.CancellationSignal?);
+ }
+
+ public class ContextCompat {
+ ctor protected ContextCompat();
+ method public static int checkSelfPermission(android.content.Context, String);
+ method public static android.content.Context? createDeviceProtectedStorageContext(android.content.Context);
+ method public static String? getAttributionTag(android.content.Context);
+ method public static java.io.File getCodeCacheDir(android.content.Context);
+ method @ColorInt public static int getColor(android.content.Context, @ColorRes int);
+ method public static android.content.res.ColorStateList? getColorStateList(android.content.Context, @ColorRes int);
+ method public static java.io.File? getDataDir(android.content.Context);
+ method public static android.graphics.drawable.Drawable? getDrawable(android.content.Context, @DrawableRes int);
+ method public static java.io.File![] getExternalCacheDirs(android.content.Context);
+ method public static java.io.File![] getExternalFilesDirs(android.content.Context, String?);
+ method public static java.util.concurrent.Executor getMainExecutor(android.content.Context);
+ method public static java.io.File? getNoBackupFilesDir(android.content.Context);
+ method public static java.io.File![] getObbDirs(android.content.Context);
+ method public static <T> T? getSystemService(android.content.Context, Class<T!>);
+ method public static String? getSystemServiceName(android.content.Context, Class<?>);
+ method public static boolean isDeviceProtectedStorage(android.content.Context);
+ method public static boolean startActivities(android.content.Context, android.content.Intent![]);
+ method public static boolean startActivities(android.content.Context, android.content.Intent![], android.os.Bundle?);
+ method public static void startActivity(android.content.Context, android.content.Intent, android.os.Bundle?);
+ method public static void startForegroundService(android.content.Context, android.content.Intent);
+ }
+
+ public class FileProvider extends android.content.ContentProvider {
+ ctor public FileProvider();
+ ctor protected FileProvider(@XmlRes int);
+ method public int delete(android.net.Uri, String?, String![]?);
+ method public String? getType(android.net.Uri);
+ method public static android.net.Uri! getUriForFile(android.content.Context, String, java.io.File);
+ method public static android.net.Uri getUriForFile(android.content.Context, String, java.io.File, String);
+ method public android.net.Uri! insert(android.net.Uri, android.content.ContentValues);
+ method public boolean onCreate();
+ method public android.database.Cursor query(android.net.Uri, String![]?, String?, String![]?, String?);
+ method public int update(android.net.Uri, android.content.ContentValues, String?, String![]?);
+ }
+
+ public final class IntentCompat {
+ method public static android.content.Intent createManageUnusedAppRestrictionsIntent(android.content.Context, String);
+ method public static android.content.Intent makeMainSelectorActivity(String, String);
+ field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
+ field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
+ field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
+ field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+ field public static final String EXTRA_TIME = "android.intent.extra.TIME";
+ }
+
+ public final class LocusIdCompat {
+ ctor public LocusIdCompat(String);
+ method public String getId();
+ method @RequiresApi(29) public android.content.LocusId toLocusId();
+ method @RequiresApi(29) public static androidx.core.content.LocusIdCompat toLocusIdCompat(android.content.LocusId);
+ }
+
+ public final class MimeTypeFilter {
+ method public static boolean matches(String?, String);
+ method public static String? matches(String?, String![]);
+ method public static String? matches(String![]?, String);
+ method public static String![] matchesMany(String![]?, String);
+ }
+
+ public interface OnConfigurationChangedProvider {
+ method public void addOnConfigurationChangedListener(androidx.core.util.Consumer<android.content.res.Configuration!>);
+ method public void removeOnConfigurationChangedListener(androidx.core.util.Consumer<android.content.res.Configuration!>);
+ }
+
+ public interface OnTrimMemoryProvider {
+ method public void addOnTrimMemoryListener(androidx.core.util.Consumer<java.lang.Integer!>);
+ method public void removeOnTrimMemoryListener(androidx.core.util.Consumer<java.lang.Integer!>);
+ }
+
+ public final class PackageManagerCompat {
+ method public static com.google.common.util.concurrent.ListenableFuture<java.lang.Integer!> getUnusedAppRestrictionsStatus(android.content.Context);
+ field public static final String ACTION_PERMISSION_REVOCATION_SETTINGS = "android.intent.action.AUTO_REVOKE_PERMISSIONS";
+ }
+
+ public final class PermissionChecker {
+ method public static int checkCallingOrSelfPermission(android.content.Context, String);
+ method public static int checkCallingPermission(android.content.Context, String, String?);
+ method public static int checkPermission(android.content.Context, String, int, int, String?);
+ method public static int checkSelfPermission(android.content.Context, String);
+ field public static final int PERMISSION_DENIED = -1; // 0xffffffff
+ field public static final int PERMISSION_DENIED_APP_OP = -2; // 0xfffffffe
+ field public static final int PERMISSION_GRANTED = 0; // 0x0
+ }
+
+ @Deprecated public final class SharedPreferencesCompat {
+ }
+
+ @Deprecated public static final class SharedPreferencesCompat.EditorCompat {
+ method @Deprecated public void apply(android.content.SharedPreferences.Editor);
+ method @Deprecated public static androidx.core.content.SharedPreferencesCompat.EditorCompat! getInstance();
+ }
+
+ public class UnusedAppRestrictionsBackportCallback {
+ method public void onResult(boolean, boolean) throws android.os.RemoteException;
+ }
+
+ public abstract class UnusedAppRestrictionsBackportService extends android.app.Service {
+ ctor public UnusedAppRestrictionsBackportService();
+ method protected abstract void isPermissionRevocationEnabled(androidx.core.content.UnusedAppRestrictionsBackportCallback);
+ method public android.os.IBinder? onBind(android.content.Intent?);
+ field public static final String ACTION_UNUSED_APP_RESTRICTIONS_BACKPORT_CONNECTION = "android.support.unusedapprestrictions.action.CustomUnusedAppRestrictionsBackportService";
+ }
+
+ public final class UnusedAppRestrictionsConstants {
+ field public static final int API_30 = 4; // 0x4
+ field public static final int API_30_BACKPORT = 3; // 0x3
+ field public static final int API_31 = 5; // 0x5
+ field public static final int DISABLED = 2; // 0x2
+ field public static final int ERROR = 0; // 0x0
+ field public static final int FEATURE_NOT_AVAILABLE = 1; // 0x1
+ }
+
+}
+
+package androidx.core.content.pm {
+
+ @Deprecated public final class ActivityInfoCompat {
+ field @Deprecated public static final int CONFIG_UI_MODE = 512; // 0x200
+ }
+
+ public final class PackageInfoCompat {
+ method public static long getLongVersionCode(android.content.pm.PackageInfo);
+ method public static java.util.List<android.content.pm.Signature!> getSignatures(android.content.pm.PackageManager, String) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public static boolean hasSignatures(android.content.pm.PackageManager, String, @Size(min=1) java.util.Map<byte[]!,java.lang.Integer!>, boolean) throws android.content.pm.PackageManager.NameNotFoundException;
+ }
+
+ public final class PermissionInfoCompat {
+ method public static int getProtection(android.content.pm.PermissionInfo);
+ method public static int getProtectionFlags(android.content.pm.PermissionInfo);
+ }
+
+ public class ShortcutInfoCompat {
+ method public android.content.ComponentName? getActivity();
+ method public java.util.Set<java.lang.String!>? getCategories();
+ method public CharSequence? getDisabledMessage();
+ method public int getDisabledReason();
+ method public int getExcludedFromSurfaces();
+ method public android.os.PersistableBundle? getExtras();
+ method public String getId();
+ method public android.content.Intent getIntent();
+ method public android.content.Intent![] getIntents();
+ method public long getLastChangedTimestamp();
+ method public androidx.core.content.LocusIdCompat? getLocusId();
+ method public CharSequence? getLongLabel();
+ method public String getPackage();
+ method public int getRank();
+ method public CharSequence getShortLabel();
+ method public android.os.UserHandle? getUserHandle();
+ method public boolean hasKeyFieldsOnly();
+ method public boolean isCached();
+ method public boolean isDeclaredInManifest();
+ method public boolean isDynamic();
+ method public boolean isEnabled();
+ method public boolean isExcludedFromSurfaces(int);
+ method public boolean isImmutable();
+ method public boolean isPinned();
+ method @RequiresApi(25) public android.content.pm.ShortcutInfo! toShortcutInfo();
+ field public static final int SURFACE_LAUNCHER = 1; // 0x1
+ }
+
+ public static class ShortcutInfoCompat.Builder {
+ ctor public ShortcutInfoCompat.Builder(android.content.Context, String);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder addCapabilityBinding(String);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder addCapabilityBinding(String, String, java.util.List<java.lang.String!>);
+ method public androidx.core.content.pm.ShortcutInfoCompat build();
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setActivity(android.content.ComponentName);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setAlwaysBadged();
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setCategories(java.util.Set<java.lang.String!>);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setDisabledMessage(CharSequence);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setExcludedFromSurfaces(int);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setExtras(android.os.PersistableBundle);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIcon(androidx.core.graphics.drawable.IconCompat!);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIntent(android.content.Intent);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIntents(android.content.Intent![]);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIsConversation();
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setLocusId(androidx.core.content.LocusIdCompat?);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setLongLabel(CharSequence);
+ method @Deprecated public androidx.core.content.pm.ShortcutInfoCompat.Builder setLongLived();
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setLongLived(boolean);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setPerson(androidx.core.app.Person);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setPersons(androidx.core.app.Person![]);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setRank(int);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setShortLabel(CharSequence);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setSliceUri(android.net.Uri);
+ }
+
+ public class ShortcutManagerCompat {
+ method public static boolean addDynamicShortcuts(android.content.Context, java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+ method public static android.content.Intent createShortcutResultIntent(android.content.Context, androidx.core.content.pm.ShortcutInfoCompat);
+ method public static void disableShortcuts(android.content.Context, java.util.List<java.lang.String!>, CharSequence?);
+ method public static void enableShortcuts(android.content.Context, java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+ method public static java.util.List<androidx.core.content.pm.ShortcutInfoCompat!> getDynamicShortcuts(android.content.Context);
+ method public static int getIconMaxHeight(android.content.Context);
+ method public static int getIconMaxWidth(android.content.Context);
+ method public static int getMaxShortcutCountPerActivity(android.content.Context);
+ method public static java.util.List<androidx.core.content.pm.ShortcutInfoCompat!> getShortcuts(android.content.Context, int);
+ method public static boolean isRateLimitingActive(android.content.Context);
+ method public static boolean isRequestPinShortcutSupported(android.content.Context);
+ method public static boolean pushDynamicShortcut(android.content.Context, androidx.core.content.pm.ShortcutInfoCompat);
+ method public static void removeAllDynamicShortcuts(android.content.Context);
+ method public static void removeDynamicShortcuts(android.content.Context, java.util.List<java.lang.String!>);
+ method public static void removeLongLivedShortcuts(android.content.Context, java.util.List<java.lang.String!>);
+ method public static void reportShortcutUsed(android.content.Context, String);
+ method public static boolean requestPinShortcut(android.content.Context, androidx.core.content.pm.ShortcutInfoCompat, android.content.IntentSender?);
+ method public static boolean setDynamicShortcuts(android.content.Context, java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+ method public static boolean updateShortcuts(android.content.Context, java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+ field public static final String EXTRA_SHORTCUT_ID = "android.intent.extra.shortcut.ID";
+ field public static final int FLAG_MATCH_CACHED = 8; // 0x8
+ field public static final int FLAG_MATCH_DYNAMIC = 2; // 0x2
+ field public static final int FLAG_MATCH_MANIFEST = 1; // 0x1
+ field public static final int FLAG_MATCH_PINNED = 4; // 0x4
+ }
+
+}
+
+package androidx.core.content.res {
+
+ public final class ConfigurationHelper {
+ method public static int getDensityDpi(android.content.res.Resources);
+ }
+
+ public final class ResourcesCompat {
+ method public static void clearCachesForTheme(android.content.res.Resources.Theme);
+ method public static android.graphics.Typeface? getCachedFont(android.content.Context, @FontRes int) throws android.content.res.Resources.NotFoundException;
+ method @ColorInt public static int getColor(android.content.res.Resources, @ColorRes int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+ method public static android.content.res.ColorStateList? getColorStateList(android.content.res.Resources, @ColorRes int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+ method public static android.graphics.drawable.Drawable? getDrawable(android.content.res.Resources, @DrawableRes int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+ method public static android.graphics.drawable.Drawable? getDrawableForDensity(android.content.res.Resources, @DrawableRes int, int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+ method public static float getFloat(android.content.res.Resources, @DimenRes int);
+ method public static android.graphics.Typeface? getFont(android.content.Context, @FontRes int) throws android.content.res.Resources.NotFoundException;
+ method public static void getFont(android.content.Context, @FontRes int, androidx.core.content.res.ResourcesCompat.FontCallback, android.os.Handler?) throws android.content.res.Resources.NotFoundException;
+ field @AnyRes public static final int ID_NULL = 0; // 0x0
+ }
+
+ public abstract static class ResourcesCompat.FontCallback {
+ ctor public ResourcesCompat.FontCallback();
+ method public abstract void onFontRetrievalFailed(int);
+ method public abstract void onFontRetrieved(android.graphics.Typeface);
+ }
+
+ public static final class ResourcesCompat.ThemeCompat {
+ method public static void rebase(android.content.res.Resources.Theme);
+ }
+
+}
+
+package androidx.core.database {
+
+ public final class CursorWindowCompat {
+ method public static android.database.CursorWindow create(String?, long);
+ }
+
+ @Deprecated public final class DatabaseUtilsCompat {
+ method @Deprecated public static String![]! appendSelectionArgs(String![]!, String![]!);
+ method @Deprecated public static String! concatenateWhere(String!, String!);
+ }
+
+}
+
+package androidx.core.database.sqlite {
+
+ public final class SQLiteCursorCompat {
+ method public static void setFillWindowForwardOnly(android.database.sqlite.SQLiteCursor, boolean);
+ }
+
+}
+
+package androidx.core.graphics {
+
+ public final class BitmapCompat {
+ method public static android.graphics.Bitmap createScaledBitmap(android.graphics.Bitmap, int, int, android.graphics.Rect?, boolean);
+ method public static int getAllocationByteCount(android.graphics.Bitmap);
+ method public static boolean hasMipMap(android.graphics.Bitmap);
+ method public static void setHasMipMap(android.graphics.Bitmap, boolean);
+ }
+
+ public class BlendModeColorFilterCompat {
+ method public static android.graphics.ColorFilter? createBlendModeColorFilterCompat(int, androidx.core.graphics.BlendModeCompat);
+ }
+
+ public enum BlendModeCompat {
+ enum_constant public static final androidx.core.graphics.BlendModeCompat CLEAR;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat COLOR;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat COLOR_BURN;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat COLOR_DODGE;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DARKEN;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat DIFFERENCE;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DST;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DST_ATOP;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DST_IN;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DST_OUT;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DST_OVER;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat EXCLUSION;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat HARD_LIGHT;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat HUE;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat LIGHTEN;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat LUMINOSITY;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat MODULATE;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat MULTIPLY;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat OVERLAY;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat PLUS;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat SATURATION;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SCREEN;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat SOFT_LIGHT;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SRC;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SRC_ATOP;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SRC_IN;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SRC_OUT;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SRC_OVER;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat XOR;
+ }
+
+ public final class ColorUtils {
+ method @ColorInt public static int HSLToColor(float[]);
+ method @ColorInt public static int LABToColor(@FloatRange(from=0.0f, to=100) double, @FloatRange(from=0xffffff80, to=127) double, @FloatRange(from=0xffffff80, to=127) double);
+ method public static void LABToXYZ(@FloatRange(from=0.0f, to=100) double, @FloatRange(from=0xffffff80, to=127) double, @FloatRange(from=0xffffff80, to=127) double, double[]);
+ method public static void RGBToHSL(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, float[]);
+ method public static void RGBToLAB(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, double[]);
+ method public static void RGBToXYZ(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, double[]);
+ method @ColorInt public static int XYZToColor(@FloatRange(from=0.0f, to=95.047) double, @FloatRange(from=0.0f, to=0x64) double, @FloatRange(from=0.0f, to=108.883) double);
+ method public static void XYZToLAB(@FloatRange(from=0.0f, to=95.047) double, @FloatRange(from=0.0f, to=0x64) double, @FloatRange(from=0.0f, to=108.883) double, double[]);
+ method @ColorInt public static int blendARGB(@ColorInt int, @ColorInt int, @FloatRange(from=0.0, to=1.0) float);
+ method public static void blendHSL(float[], float[], @FloatRange(from=0.0, to=1.0) float, float[]);
+ method public static void blendLAB(double[], double[], @FloatRange(from=0.0, to=1.0) double, double[]);
+ method public static double calculateContrast(@ColorInt int, @ColorInt int);
+ method @FloatRange(from=0.0, to=1.0) public static double calculateLuminance(@ColorInt int);
+ method public static int calculateMinimumAlpha(@ColorInt int, @ColorInt int, float);
+ method public static void colorToHSL(@ColorInt int, float[]);
+ method public static void colorToLAB(@ColorInt int, double[]);
+ method public static void colorToXYZ(@ColorInt int, double[]);
+ method public static int compositeColors(@ColorInt int, @ColorInt int);
+ method @RequiresApi(26) public static android.graphics.Color compositeColors(android.graphics.Color, android.graphics.Color);
+ method public static double distanceEuclidean(double[], double[]);
+ method @ColorInt public static int setAlphaComponent(@ColorInt int, @IntRange(from=0, to=255) int);
+ }
+
+ public final class Insets {
+ method public static androidx.core.graphics.Insets add(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+ method public static androidx.core.graphics.Insets max(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+ method public static androidx.core.graphics.Insets min(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+ method public static androidx.core.graphics.Insets of(int, int, int, int);
+ method public static androidx.core.graphics.Insets of(android.graphics.Rect);
+ method public static androidx.core.graphics.Insets subtract(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+ method @RequiresApi(api=29) public static androidx.core.graphics.Insets toCompatInsets(android.graphics.Insets);
+ method @RequiresApi(29) public android.graphics.Insets toPlatformInsets();
+ field public static final androidx.core.graphics.Insets NONE;
+ field public final int bottom;
+ field public final int left;
+ field public final int right;
+ field public final int top;
+ }
+
+ public final class PaintCompat {
+ method public static boolean hasGlyph(android.graphics.Paint, String);
+ method public static boolean setBlendMode(android.graphics.Paint, androidx.core.graphics.BlendModeCompat?);
+ }
+
+ public final class PathSegment {
+ ctor public PathSegment(android.graphics.PointF, float, android.graphics.PointF, float);
+ method public android.graphics.PointF getEnd();
+ method public float getEndFraction();
+ method public android.graphics.PointF getStart();
+ method public float getStartFraction();
+ }
+
+ public final class PathUtils {
+ method @RequiresApi(26) public static java.util.Collection<androidx.core.graphics.PathSegment!> flatten(android.graphics.Path);
+ method @RequiresApi(26) public static java.util.Collection<androidx.core.graphics.PathSegment!> flatten(android.graphics.Path, @FloatRange(from=0) float);
+ }
+
+ public class TypefaceCompat {
+ method public static android.graphics.Typeface create(android.content.Context, android.graphics.Typeface?, int);
+ }
+
+}
+
+package androidx.core.graphics.drawable {
+
+ public final class DrawableCompat {
+ method public static void applyTheme(android.graphics.drawable.Drawable, android.content.res.Resources.Theme);
+ method public static boolean canApplyTheme(android.graphics.drawable.Drawable);
+ method public static void clearColorFilter(android.graphics.drawable.Drawable);
+ method public static int getAlpha(android.graphics.drawable.Drawable);
+ method public static android.graphics.ColorFilter? getColorFilter(android.graphics.drawable.Drawable);
+ method public static int getLayoutDirection(android.graphics.drawable.Drawable);
+ method public static void inflate(android.graphics.drawable.Drawable, android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme?) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+ method public static boolean isAutoMirrored(android.graphics.drawable.Drawable);
+ method @Deprecated public static void jumpToCurrentState(android.graphics.drawable.Drawable);
+ method public static void setAutoMirrored(android.graphics.drawable.Drawable, boolean);
+ method public static void setHotspot(android.graphics.drawable.Drawable, float, float);
+ method public static void setHotspotBounds(android.graphics.drawable.Drawable, int, int, int, int);
+ method public static boolean setLayoutDirection(android.graphics.drawable.Drawable, int);
+ method public static void setTint(android.graphics.drawable.Drawable, @ColorInt int);
+ method public static void setTintList(android.graphics.drawable.Drawable, android.content.res.ColorStateList?);
+ method public static void setTintMode(android.graphics.drawable.Drawable, android.graphics.PorterDuff.Mode);
+ method public static <T extends android.graphics.drawable.Drawable> T! unwrap(android.graphics.drawable.Drawable);
+ method public static android.graphics.drawable.Drawable wrap(android.graphics.drawable.Drawable);
+ }
+
+ public class IconCompat implements androidx.versionedparcelable.VersionedParcelable {
+ method public static androidx.core.graphics.drawable.IconCompat? createFromBundle(android.os.Bundle);
+ method @RequiresApi(23) public static androidx.core.graphics.drawable.IconCompat? createFromIcon(android.content.Context, android.graphics.drawable.Icon);
+ method public static androidx.core.graphics.drawable.IconCompat createWithAdaptiveBitmap(android.graphics.Bitmap);
+ method public static androidx.core.graphics.drawable.IconCompat createWithAdaptiveBitmapContentUri(String);
+ method public static androidx.core.graphics.drawable.IconCompat createWithAdaptiveBitmapContentUri(android.net.Uri);
+ method public static androidx.core.graphics.drawable.IconCompat createWithBitmap(android.graphics.Bitmap);
+ method public static androidx.core.graphics.drawable.IconCompat createWithContentUri(String);
+ method public static androidx.core.graphics.drawable.IconCompat createWithContentUri(android.net.Uri);
+ method public static androidx.core.graphics.drawable.IconCompat createWithData(byte[], int, int);
+ method public static androidx.core.graphics.drawable.IconCompat createWithResource(android.content.Context, @DrawableRes int);
+ method @DrawableRes public int getResId();
+ method public String getResPackage();
+ method public int getType();
+ method public android.net.Uri getUri();
+ method public android.graphics.drawable.Drawable? loadDrawable(android.content.Context);
+ method public void onPostParceling();
+ method public void onPreParceling(boolean);
+ method public androidx.core.graphics.drawable.IconCompat setTint(@ColorInt int);
+ method public androidx.core.graphics.drawable.IconCompat setTintList(android.content.res.ColorStateList?);
+ method public androidx.core.graphics.drawable.IconCompat setTintMode(android.graphics.PorterDuff.Mode?);
+ method public android.os.Bundle toBundle();
+ method @Deprecated @RequiresApi(23) public android.graphics.drawable.Icon toIcon();
+ method @RequiresApi(23) public android.graphics.drawable.Icon toIcon(android.content.Context?);
+ field public static final int TYPE_ADAPTIVE_BITMAP = 5; // 0x5
+ field public static final int TYPE_BITMAP = 1; // 0x1
+ field public static final int TYPE_DATA = 3; // 0x3
+ field public static final int TYPE_RESOURCE = 2; // 0x2
+ field public static final int TYPE_UNKNOWN = -1; // 0xffffffff
+ field public static final int TYPE_URI = 4; // 0x4
+ field public static final int TYPE_URI_ADAPTIVE_BITMAP = 6; // 0x6
+ }
+
+ public abstract class RoundedBitmapDrawable extends android.graphics.drawable.Drawable {
+ method public void draw(android.graphics.Canvas);
+ method public final android.graphics.Bitmap? getBitmap();
+ method public float getCornerRadius();
+ method public int getGravity();
+ method public int getOpacity();
+ method public final android.graphics.Paint getPaint();
+ method public boolean hasAntiAlias();
+ method public boolean hasMipMap();
+ method public boolean isCircular();
+ method public void setAlpha(int);
+ method public void setAntiAlias(boolean);
+ method public void setCircular(boolean);
+ method public void setColorFilter(android.graphics.ColorFilter!);
+ method public void setCornerRadius(float);
+ method public void setDither(boolean);
+ method public void setGravity(int);
+ method public void setMipMap(boolean);
+ method public void setTargetDensity(android.graphics.Canvas);
+ method public void setTargetDensity(android.util.DisplayMetrics);
+ method public void setTargetDensity(int);
+ }
+
+ public final class RoundedBitmapDrawableFactory {
+ method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, android.graphics.Bitmap?);
+ method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, String);
+ method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, java.io.InputStream);
+ }
+
+}
+
+package androidx.core.hardware.display {
+
+ public final class DisplayManagerCompat {
+ method public android.view.Display? getDisplay(int);
+ method public android.view.Display![] getDisplays();
+ method public android.view.Display![] getDisplays(String?);
+ method public static androidx.core.hardware.display.DisplayManagerCompat getInstance(android.content.Context);
+ field public static final String DISPLAY_CATEGORY_PRESENTATION = "android.hardware.display.category.PRESENTATION";
+ }
+
+}
+
+package androidx.core.hardware.fingerprint {
+
+ @Deprecated public class FingerprintManagerCompat {
+ method @Deprecated @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public void authenticate(androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject?, int, androidx.core.os.CancellationSignal?, androidx.core.hardware.fingerprint.FingerprintManagerCompat.AuthenticationCallback, android.os.Handler?);
+ method @Deprecated public static androidx.core.hardware.fingerprint.FingerprintManagerCompat from(android.content.Context);
+ method @Deprecated @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public boolean hasEnrolledFingerprints();
+ method @Deprecated @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public boolean isHardwareDetected();
+ }
+
+ @Deprecated public abstract static class FingerprintManagerCompat.AuthenticationCallback {
+ ctor @Deprecated public FingerprintManagerCompat.AuthenticationCallback();
+ method @Deprecated public void onAuthenticationError(int, CharSequence!);
+ method @Deprecated public void onAuthenticationFailed();
+ method @Deprecated public void onAuthenticationHelp(int, CharSequence!);
+ method @Deprecated public void onAuthenticationSucceeded(androidx.core.hardware.fingerprint.FingerprintManagerCompat.AuthenticationResult!);
+ }
+
+ @Deprecated public static final class FingerprintManagerCompat.AuthenticationResult {
+ ctor @Deprecated public FingerprintManagerCompat.AuthenticationResult(androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject!);
+ method @Deprecated public androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject! getCryptoObject();
+ }
+
+ @Deprecated public static class FingerprintManagerCompat.CryptoObject {
+ ctor @Deprecated public FingerprintManagerCompat.CryptoObject(java.security.Signature);
+ ctor @Deprecated public FingerprintManagerCompat.CryptoObject(javax.crypto.Cipher);
+ ctor @Deprecated public FingerprintManagerCompat.CryptoObject(javax.crypto.Mac);
+ method @Deprecated public javax.crypto.Cipher? getCipher();
+ method @Deprecated public javax.crypto.Mac? getMac();
+ method @Deprecated public java.security.Signature? getSignature();
+ }
+
+}
+
+package androidx.core.location {
+
+ public abstract class GnssStatusCompat {
+ method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+ method @FloatRange(from=0, to=63) public abstract float getBasebandCn0DbHz(@IntRange(from=0) int);
+ method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+ method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+ method public abstract int getConstellationType(@IntRange(from=0) int);
+ method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+ method @IntRange(from=0) public abstract int getSatelliteCount();
+ method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+ method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+ method public abstract boolean hasBasebandCn0DbHz(@IntRange(from=0) int);
+ method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+ method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+ method public abstract boolean usedInFix(@IntRange(from=0) int);
+ method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+ method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+ field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+ field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+ field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+ field public static final int CONSTELLATION_GPS = 1; // 0x1
+ field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+ field public static final int CONSTELLATION_QZSS = 4; // 0x4
+ field public static final int CONSTELLATION_SBAS = 2; // 0x2
+ field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+ }
+
+ public abstract static class GnssStatusCompat.Callback {
+ ctor public GnssStatusCompat.Callback();
+ method public void onFirstFix(@IntRange(from=0) int);
+ method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+ method public void onStarted();
+ method public void onStopped();
+ }
+
+ public final class LocationCompat {
+ method public static float getBearingAccuracyDegrees(android.location.Location);
+ method public static long getElapsedRealtimeMillis(android.location.Location);
+ method public static long getElapsedRealtimeNanos(android.location.Location);
+ method public static float getSpeedAccuracyMetersPerSecond(android.location.Location);
+ method public static float getVerticalAccuracyMeters(android.location.Location);
+ method public static boolean hasBearingAccuracy(android.location.Location);
+ method public static boolean hasSpeedAccuracy(android.location.Location);
+ method public static boolean hasVerticalAccuracy(android.location.Location);
+ method public static boolean isMock(android.location.Location);
+ method public static void setBearingAccuracyDegrees(android.location.Location, float);
+ method public static void setMock(android.location.Location, boolean);
+ method public static void setSpeedAccuracyMetersPerSecond(android.location.Location, float);
+ method public static void setVerticalAccuracyMeters(android.location.Location, float);
+ field public static final String EXTRA_BEARING_ACCURACY = "bearingAccuracy";
+ field public static final String EXTRA_IS_MOCK = "mockLocation";
+ field public static final String EXTRA_SPEED_ACCURACY = "speedAccuracy";
+ field public static final String EXTRA_VERTICAL_ACCURACY = "verticalAccuracy";
+ }
+
+ public interface LocationListenerCompat extends android.location.LocationListener {
+ method public default void onStatusChanged(String, int, android.os.Bundle?);
+ }
+
+ public final class LocationManagerCompat {
+ method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static void getCurrentLocation(android.location.LocationManager, String, androidx.core.os.CancellationSignal?, java.util.concurrent.Executor, androidx.core.util.Consumer<android.location.Location!>);
+ method public static String? getGnssHardwareModelName(android.location.LocationManager);
+ method public static int getGnssYearOfHardware(android.location.LocationManager);
+ method public static boolean hasProvider(android.location.LocationManager, String);
+ method public static boolean isLocationEnabled(android.location.LocationManager);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+ method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static void removeUpdates(android.location.LocationManager, androidx.core.location.LocationListenerCompat);
+ method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static void requestLocationUpdates(android.location.LocationManager, String, androidx.core.location.LocationRequestCompat, java.util.concurrent.Executor, androidx.core.location.LocationListenerCompat);
+ method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static void requestLocationUpdates(android.location.LocationManager, String, androidx.core.location.LocationRequestCompat, androidx.core.location.LocationListenerCompat, android.os.Looper);
+ method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
+ }
+
+ public final class LocationRequestCompat {
+ method @IntRange(from=1) public long getDurationMillis();
+ method @IntRange(from=0) public long getIntervalMillis();
+ method @IntRange(from=0) public long getMaxUpdateDelayMillis();
+ method @IntRange(from=1, to=java.lang.Integer.MAX_VALUE) public int getMaxUpdates();
+ method @FloatRange(from=0, to=java.lang.Float.MAX_VALUE) public float getMinUpdateDistanceMeters();
+ method @IntRange(from=0) public long getMinUpdateIntervalMillis();
+ method public int getQuality();
+ method @RequiresApi(31) public android.location.LocationRequest toLocationRequest();
+ method @RequiresApi(19) public android.location.LocationRequest? toLocationRequest(String);
+ field public static final long PASSIVE_INTERVAL = 9223372036854775807L; // 0x7fffffffffffffffL
+ field public static final int QUALITY_BALANCED_POWER_ACCURACY = 102; // 0x66
+ field public static final int QUALITY_HIGH_ACCURACY = 100; // 0x64
+ field public static final int QUALITY_LOW_POWER = 104; // 0x68
+ }
+
+ public static final class LocationRequestCompat.Builder {
+ ctor public LocationRequestCompat.Builder(long);
+ ctor public LocationRequestCompat.Builder(androidx.core.location.LocationRequestCompat);
+ method public androidx.core.location.LocationRequestCompat build();
+ method public androidx.core.location.LocationRequestCompat.Builder clearMinUpdateIntervalMillis();
+ method public androidx.core.location.LocationRequestCompat.Builder setDurationMillis(@IntRange(from=1) long);
+ method public androidx.core.location.LocationRequestCompat.Builder setIntervalMillis(@IntRange(from=0) long);
+ method public androidx.core.location.LocationRequestCompat.Builder setMaxUpdateDelayMillis(@IntRange(from=0) long);
+ method public androidx.core.location.LocationRequestCompat.Builder setMaxUpdates(@IntRange(from=1, to=java.lang.Integer.MAX_VALUE) int);
+ method public androidx.core.location.LocationRequestCompat.Builder setMinUpdateDistanceMeters(@FloatRange(from=0, to=java.lang.Float.MAX_VALUE) float);
+ method public androidx.core.location.LocationRequestCompat.Builder setMinUpdateIntervalMillis(@IntRange(from=0) long);
+ method public androidx.core.location.LocationRequestCompat.Builder setQuality(int);
+ }
+
+}
+
+package androidx.core.math {
+
+ public class MathUtils {
+ method public static int addExact(int, int);
+ method public static long addExact(long, long);
+ method public static float clamp(float, float, float);
+ method public static double clamp(double, double, double);
+ method public static int clamp(int, int, int);
+ method public static long clamp(long, long, long);
+ method public static int decrementExact(int);
+ method public static long decrementExact(long);
+ method public static int incrementExact(int);
+ method public static long incrementExact(long);
+ method public static int multiplyExact(int, int);
+ method public static long multiplyExact(long, long);
+ method public static int negateExact(int);
+ method public static long negateExact(long);
+ method public static int subtractExact(int, int);
+ method public static long subtractExact(long, long);
+ method public static int toIntExact(long);
+ }
+
+}
+
+package androidx.core.net {
+
+ public final class ConnectivityManagerCompat {
+ method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public static android.net.NetworkInfo? getNetworkInfoFromBroadcast(android.net.ConnectivityManager, android.content.Intent);
+ method public static int getRestrictBackgroundStatus(android.net.ConnectivityManager);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public static boolean isActiveNetworkMetered(android.net.ConnectivityManager);
+ field public static final int RESTRICT_BACKGROUND_STATUS_DISABLED = 1; // 0x1
+ field public static final int RESTRICT_BACKGROUND_STATUS_ENABLED = 3; // 0x3
+ field public static final int RESTRICT_BACKGROUND_STATUS_WHITELISTED = 2; // 0x2
+ }
+
+ public final class MailTo {
+ method public String? getBcc();
+ method public String? getBody();
+ method public String? getCc();
+ method public java.util.Map<java.lang.String!,java.lang.String!>? getHeaders();
+ method public String? getSubject();
+ method public String? getTo();
+ method public static boolean isMailTo(String?);
+ method public static boolean isMailTo(android.net.Uri?);
+ method public static androidx.core.net.MailTo parse(String) throws androidx.core.net.ParseException;
+ method public static androidx.core.net.MailTo parse(android.net.Uri) throws androidx.core.net.ParseException;
+ field public static final String MAILTO_SCHEME = "mailto:";
+ }
+
+ public class ParseException extends java.lang.RuntimeException {
+ field public final String response;
+ }
+
+ public final class TrafficStatsCompat {
+ method @Deprecated public static void clearThreadStatsTag();
+ method @Deprecated public static int getThreadStatsTag();
+ method @Deprecated public static void incrementOperationCount(int);
+ method @Deprecated public static void incrementOperationCount(int, int);
+ method @Deprecated public static void setThreadStatsTag(int);
+ method public static void tagDatagramSocket(java.net.DatagramSocket) throws java.net.SocketException;
+ method @Deprecated public static void tagSocket(java.net.Socket!) throws java.net.SocketException;
+ method public static void untagDatagramSocket(java.net.DatagramSocket) throws java.net.SocketException;
+ method @Deprecated public static void untagSocket(java.net.Socket!) throws java.net.SocketException;
+ }
+
+ public final class UriCompat {
+ method public static String toSafeString(android.net.Uri);
+ }
+
+}
+
+package androidx.core.os {
+
+ public class BuildCompat {
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.N) public static boolean isAtLeastN();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.N_MR1) public static boolean isAtLeastNMR1();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.O) public static boolean isAtLeastO();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.O_MR1) public static boolean isAtLeastOMR1();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.P) public static boolean isAtLeastP();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.Q) public static boolean isAtLeastQ();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.R) public static boolean isAtLeastR();
+ method @Deprecated @ChecksSdkIntAtLeast(api=31, codename="S") public static boolean isAtLeastS();
+ method @Deprecated @ChecksSdkIntAtLeast(api=32, codename="Sv2") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastSv2();
+ method @Deprecated @ChecksSdkIntAtLeast(codename="Tiramisu") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastT();
+ }
+
+ @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public static @interface BuildCompat.PrereleaseSdkCheck {
+ }
+
+ public final class CancellationSignal {
+ ctor public CancellationSignal();
+ method public void cancel();
+ method public Object? getCancellationSignalObject();
+ method public boolean isCanceled();
+ method public void setOnCancelListener(androidx.core.os.CancellationSignal.OnCancelListener?);
+ method public void throwIfCanceled();
+ }
+
+ public static interface CancellationSignal.OnCancelListener {
+ method public void onCancel();
+ }
+
+ public final class ConfigurationCompat {
+ method public static androidx.core.os.LocaleListCompat getLocales(android.content.res.Configuration);
+ }
+
+ public final class EnvironmentCompat {
+ method public static String getStorageState(java.io.File);
+ field public static final String MEDIA_UNKNOWN = "unknown";
+ }
+
+ public final class ExecutorCompat {
+ method public static java.util.concurrent.Executor create(android.os.Handler);
+ }
+
+ public final class HandlerCompat {
+ method public static android.os.Handler createAsync(android.os.Looper);
+ method public static android.os.Handler createAsync(android.os.Looper, android.os.Handler.Callback);
+ method @RequiresApi(16) public static boolean hasCallbacks(android.os.Handler, Runnable);
+ method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
+ }
+
+ public final class LocaleListCompat {
+ method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
+ method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
+ method public java.util.Locale? get(int);
+ method @Size(min=1) public static androidx.core.os.LocaleListCompat getAdjustedDefault();
+ method @Size(min=1) public static androidx.core.os.LocaleListCompat getDefault();
+ method public static androidx.core.os.LocaleListCompat getEmptyLocaleList();
+ method public java.util.Locale? getFirstMatch(String![]);
+ method @IntRange(from=0xffffffff) public int indexOf(java.util.Locale?);
+ method public boolean isEmpty();
+ method @IntRange(from=0) public int size();
+ method public String toLanguageTags();
+ method public Object? unwrap();
+ method @Deprecated @RequiresApi(24) public static androidx.core.os.LocaleListCompat! wrap(Object!);
+ method @RequiresApi(24) public static androidx.core.os.LocaleListCompat wrap(android.os.LocaleList);
+ }
+
+ public final class MessageCompat {
+ method public static boolean isAsynchronous(android.os.Message);
+ method public static void setAsynchronous(android.os.Message, boolean);
+ }
+
+ public class OperationCanceledException extends java.lang.RuntimeException {
+ ctor public OperationCanceledException();
+ ctor public OperationCanceledException(String?);
+ }
+
+ public final class ParcelCompat {
+ method public static boolean readBoolean(android.os.Parcel);
+ method public static void writeBoolean(android.os.Parcel, boolean);
+ }
+
+ @Deprecated public final class ParcelableCompat {
+ method @Deprecated public static <T> android.os.Parcelable.Creator<T!>! newCreator(androidx.core.os.ParcelableCompatCreatorCallbacks<T!>!);
+ }
+
+ @Deprecated public interface ParcelableCompatCreatorCallbacks<T> {
+ method @Deprecated public T! createFromParcel(android.os.Parcel!, ClassLoader!);
+ method @Deprecated public T![]! newArray(int);
+ }
+
+ public final class ProcessCompat {
+ method public static boolean isApplicationUid(int);
+ }
+
+ @Deprecated public final class TraceCompat {
+ method @Deprecated public static void beginAsyncSection(String, int);
+ method @Deprecated public static void beginSection(String);
+ method @Deprecated public static void endAsyncSection(String, int);
+ method @Deprecated public static void endSection();
+ method @Deprecated public static boolean isEnabled();
+ method @Deprecated public static void setCounter(String, int);
+ }
+
+ @RequiresApi(17) public class UserHandleCompat {
+ method public static android.os.UserHandle getUserHandleForUid(int);
+ }
+
+ public class UserManagerCompat {
+ method public static boolean isUserUnlocked(android.content.Context);
+ }
+
+}
+
+package androidx.core.provider {
+
+ public final class DocumentsContractCompat {
+ method public static android.net.Uri? buildChildDocumentsUri(String, String?);
+ method public static android.net.Uri? buildChildDocumentsUriUsingTree(android.net.Uri, String);
+ method public static android.net.Uri? buildDocumentUri(String, String);
+ method public static android.net.Uri? buildDocumentUriUsingTree(android.net.Uri, String);
+ method public static android.net.Uri? buildTreeDocumentUri(String, String);
+ method public static android.net.Uri? createDocument(android.content.ContentResolver, android.net.Uri, String, String) throws java.io.FileNotFoundException;
+ method public static String? getDocumentId(android.net.Uri);
+ method public static String? getTreeDocumentId(android.net.Uri);
+ method public static boolean isDocumentUri(android.content.Context, android.net.Uri?);
+ method public static boolean isTreeUri(android.net.Uri);
+ method public static boolean removeDocument(android.content.ContentResolver, android.net.Uri, android.net.Uri) throws java.io.FileNotFoundException;
+ method public static android.net.Uri? renameDocument(android.content.ContentResolver, android.net.Uri, String) throws java.io.FileNotFoundException;
+ }
+
+ public static final class DocumentsContractCompat.DocumentCompat {
+ field public static final int FLAG_VIRTUAL_DOCUMENT = 512; // 0x200
+ }
+
+ public final class FontRequest {
+ ctor public FontRequest(String, String, String, java.util.List<java.util.List<byte[]!>!>);
+ ctor public FontRequest(String, String, String, @ArrayRes int);
+ method public java.util.List<java.util.List<byte[]!>!>? getCertificates();
+ method @ArrayRes public int getCertificatesArrayResId();
+ method public String getProviderAuthority();
+ method public String getProviderPackage();
+ method public String getQuery();
+ }
+
+ public class FontsContractCompat {
+ method public static android.graphics.Typeface? buildTypeface(android.content.Context, android.os.CancellationSignal?, androidx.core.provider.FontsContractCompat.FontInfo![]);
+ method public static androidx.core.provider.FontsContractCompat.FontFamilyResult fetchFonts(android.content.Context, android.os.CancellationSignal?, androidx.core.provider.FontRequest) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public static void requestFont(android.content.Context, androidx.core.provider.FontRequest, androidx.core.provider.FontsContractCompat.FontRequestCallback, android.os.Handler);
+ }
+
+ public static final class FontsContractCompat.Columns implements android.provider.BaseColumns {
+ ctor public FontsContractCompat.Columns();
+ field public static final String FILE_ID = "file_id";
+ field public static final String ITALIC = "font_italic";
+ field public static final String RESULT_CODE = "result_code";
+ field public static final int RESULT_CODE_FONT_NOT_FOUND = 1; // 0x1
+ field public static final int RESULT_CODE_FONT_UNAVAILABLE = 2; // 0x2
+ field public static final int RESULT_CODE_MALFORMED_QUERY = 3; // 0x3
+ field public static final int RESULT_CODE_OK = 0; // 0x0
+ field public static final String TTC_INDEX = "font_ttc_index";
+ field public static final String VARIATION_SETTINGS = "font_variation_settings";
+ field public static final String WEIGHT = "font_weight";
+ }
+
+ public static class FontsContractCompat.FontFamilyResult {
+ method public androidx.core.provider.FontsContractCompat.FontInfo![]! getFonts();
+ method public int getStatusCode();
+ field public static final int STATUS_OK = 0; // 0x0
+ field public static final int STATUS_UNEXPECTED_DATA_PROVIDED = 2; // 0x2
+ field public static final int STATUS_WRONG_CERTIFICATES = 1; // 0x1
+ }
+
+ public static class FontsContractCompat.FontInfo {
+ method public int getResultCode();
+ method @IntRange(from=0) public int getTtcIndex();
+ method public android.net.Uri getUri();
+ method @IntRange(from=1, to=1000) public int getWeight();
+ method public boolean isItalic();
+ }
+
+ public static class FontsContractCompat.FontRequestCallback {
+ ctor public FontsContractCompat.FontRequestCallback();
+ method public void onTypefaceRequestFailed(int);
+ method public void onTypefaceRetrieved(android.graphics.Typeface!);
+ field public static final int FAIL_REASON_FONT_LOAD_ERROR = -3; // 0xfffffffd
+ field public static final int FAIL_REASON_FONT_NOT_FOUND = 1; // 0x1
+ field public static final int FAIL_REASON_FONT_UNAVAILABLE = 2; // 0x2
+ field public static final int FAIL_REASON_MALFORMED_QUERY = 3; // 0x3
+ field public static final int FAIL_REASON_PROVIDER_NOT_FOUND = -1; // 0xffffffff
+ field public static final int FAIL_REASON_SECURITY_VIOLATION = -4; // 0xfffffffc
+ field public static final int FAIL_REASON_WRONG_CERTIFICATES = -2; // 0xfffffffe
+ }
+
+}
+
+package androidx.core.telephony {
+
+ @RequiresApi(22) public class SubscriptionManagerCompat {
+ method public static int getSlotIndex(int);
+ }
+
+ public class TelephonyManagerCompat {
+ method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public static String? getImei(android.telephony.TelephonyManager);
+ method public static int getSubscriptionId(android.telephony.TelephonyManager);
+ }
+
+}
+
+package androidx.core.telephony.mbms {
+
+ public final class MbmsHelper {
+ method public static CharSequence? getBestNameForService(android.content.Context, android.telephony.mbms.ServiceInfo);
+ }
+
+}
+
+package androidx.core.text {
+
+ public final class BidiFormatter {
+ method public static androidx.core.text.BidiFormatter! getInstance();
+ method public static androidx.core.text.BidiFormatter! getInstance(boolean);
+ method public static androidx.core.text.BidiFormatter! getInstance(java.util.Locale!);
+ method public boolean getStereoReset();
+ method public boolean isRtl(String!);
+ method public boolean isRtl(CharSequence!);
+ method public boolean isRtlContext();
+ method public String! unicodeWrap(String!, androidx.core.text.TextDirectionHeuristicCompat!, boolean);
+ method public CharSequence! unicodeWrap(CharSequence!, androidx.core.text.TextDirectionHeuristicCompat!, boolean);
+ method public String! unicodeWrap(String!, androidx.core.text.TextDirectionHeuristicCompat!);
+ method public CharSequence! unicodeWrap(CharSequence!, androidx.core.text.TextDirectionHeuristicCompat!);
+ method public String! unicodeWrap(String!, boolean);
+ method public CharSequence! unicodeWrap(CharSequence!, boolean);
+ method public String! unicodeWrap(String!);
+ method public CharSequence! unicodeWrap(CharSequence!);
+ }
+
+ public static final class BidiFormatter.Builder {
+ ctor public BidiFormatter.Builder();
+ ctor public BidiFormatter.Builder(boolean);
+ ctor public BidiFormatter.Builder(java.util.Locale!);
+ method public androidx.core.text.BidiFormatter! build();
+ method public androidx.core.text.BidiFormatter.Builder! setTextDirectionHeuristic(androidx.core.text.TextDirectionHeuristicCompat!);
+ method public androidx.core.text.BidiFormatter.Builder! stereoReset(boolean);
+ }
+
+ public final class HtmlCompat {
+ method public static android.text.Spanned fromHtml(String, int);
+ method public static android.text.Spanned fromHtml(String, int, android.text.Html.ImageGetter?, android.text.Html.TagHandler?);
+ method public static String toHtml(android.text.Spanned, int);
+ field public static final int FROM_HTML_MODE_COMPACT = 63; // 0x3f
+ field public static final int FROM_HTML_MODE_LEGACY = 0; // 0x0
+ field public static final int FROM_HTML_OPTION_USE_CSS_COLORS = 256; // 0x100
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_BLOCKQUOTE = 32; // 0x20
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_DIV = 16; // 0x10
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_HEADING = 2; // 0x2
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_LIST = 8; // 0x8
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_LIST_ITEM = 4; // 0x4
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_PARAGRAPH = 1; // 0x1
+ field public static final int TO_HTML_PARAGRAPH_LINES_CONSECUTIVE = 0; // 0x0
+ field public static final int TO_HTML_PARAGRAPH_LINES_INDIVIDUAL = 1; // 0x1
+ }
+
+ public final class ICUCompat {
+ method public static String? maximizeAndGetScript(java.util.Locale);
+ }
+
+ public class PrecomputedTextCompat implements android.text.Spannable {
+ method public char charAt(int);
+ method public static androidx.core.text.PrecomputedTextCompat! create(CharSequence, androidx.core.text.PrecomputedTextCompat.Params);
+ method @IntRange(from=0) public int getParagraphCount();
+ method @IntRange(from=0) public int getParagraphEnd(@IntRange(from=0) int);
+ method @IntRange(from=0) public int getParagraphStart(@IntRange(from=0) int);
+ method public androidx.core.text.PrecomputedTextCompat.Params getParams();
+ method public int getSpanEnd(Object!);
+ method public int getSpanFlags(Object!);
+ method public int getSpanStart(Object!);
+ method public <T> T![]! getSpans(int, int, Class<T!>!);
+ method @UiThread public static java.util.concurrent.Future<androidx.core.text.PrecomputedTextCompat!>! getTextFuture(CharSequence, androidx.core.text.PrecomputedTextCompat.Params, java.util.concurrent.Executor?);
+ method public int length();
+ method public int nextSpanTransition(int, int, Class!);
+ method public void removeSpan(Object!);
+ method public void setSpan(Object!, int, int, int);
+ method public CharSequence! subSequence(int, int);
+ }
+
+ public static final class PrecomputedTextCompat.Params {
+ ctor @RequiresApi(28) public PrecomputedTextCompat.Params(android.text.PrecomputedText.Params);
+ method @RequiresApi(23) public int getBreakStrategy();
+ method @RequiresApi(23) public int getHyphenationFrequency();
+ method @RequiresApi(18) public android.text.TextDirectionHeuristic? getTextDirection();
+ method public android.text.TextPaint getTextPaint();
+ }
+
+ public static class PrecomputedTextCompat.Params.Builder {
+ ctor public PrecomputedTextCompat.Params.Builder(android.text.TextPaint);
+ method public androidx.core.text.PrecomputedTextCompat.Params build();
+ method @RequiresApi(23) public androidx.core.text.PrecomputedTextCompat.Params.Builder! setBreakStrategy(int);
+ method @RequiresApi(23) public androidx.core.text.PrecomputedTextCompat.Params.Builder! setHyphenationFrequency(int);
+ method @RequiresApi(18) public androidx.core.text.PrecomputedTextCompat.Params.Builder! setTextDirection(android.text.TextDirectionHeuristic);
+ }
+
+ public interface TextDirectionHeuristicCompat {
+ method public boolean isRtl(char[]!, int, int);
+ method public boolean isRtl(CharSequence!, int, int);
+ }
+
+ public final class TextDirectionHeuristicsCompat {
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! ANYRTL_LTR;
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! FIRSTSTRONG_LTR;
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! FIRSTSTRONG_RTL;
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! LOCALE;
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! LTR;
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! RTL;
+ }
+
+ public final class TextUtilsCompat {
+ method public static int getLayoutDirectionFromLocale(java.util.Locale?);
+ method public static String htmlEncode(String);
+ }
+
+}
+
+package androidx.core.text.util {
+
+ public final class LinkifyCompat {
+ method public static boolean addLinks(android.text.Spannable, int);
+ method public static boolean addLinks(android.widget.TextView, int);
+ method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, String?);
+ method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, String?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+ method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, String?, String![]?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+ method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, String?);
+ method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, String?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+ method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, String?, String![]?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+ }
+
+}
+
+package androidx.core.util {
+
+ public class AtomicFile {
+ ctor public AtomicFile(java.io.File);
+ method public void delete();
+ method public void failWrite(java.io.FileOutputStream?);
+ method public void finishWrite(java.io.FileOutputStream?);
+ method public java.io.File getBaseFile();
+ method public java.io.FileInputStream openRead() throws java.io.FileNotFoundException;
+ method public byte[] readFully() throws java.io.IOException;
+ method public java.io.FileOutputStream startWrite() throws java.io.IOException;
+ }
+
+ public interface Consumer<T> {
+ method public void accept(T!);
+ }
+
+ public class ObjectsCompat {
+ method public static boolean equals(Object?, Object?);
+ method public static int hash(java.lang.Object!...);
+ method public static int hashCode(Object?);
+ method public static <T> T requireNonNull(T?);
+ method public static <T> T requireNonNull(T?, String);
+ method public static String? toString(Object?, String?);
+ }
+
+ public class Pair<F, S> {
+ ctor public Pair(F!, S!);
+ method public static <A, B> androidx.core.util.Pair<A!,B!> create(A!, B!);
+ field public final F! first;
+ field public final S! second;
+ }
+
+ public final class PatternsCompat {
+ field public static final java.util.regex.Pattern DOMAIN_NAME;
+ field public static final java.util.regex.Pattern EMAIL_ADDRESS;
+ field public static final java.util.regex.Pattern IP_ADDRESS;
+ field public static final java.util.regex.Pattern WEB_URL;
+ }
+
+ public final class Pools {
+ }
+
+ public static interface Pools.Pool<T> {
+ method public T? acquire();
+ method public boolean release(T);
+ }
+
+ public static class Pools.SimplePool<T> implements androidx.core.util.Pools.Pool<T> {
+ ctor public Pools.SimplePool(int);
+ method public T! acquire();
+ method public boolean release(T);
+ }
+
+ public static class Pools.SynchronizedPool<T> extends androidx.core.util.Pools.SimplePool<T> {
+ ctor public Pools.SynchronizedPool(int);
+ }
+
+ public interface Predicate<T> {
+ method public boolean test(T!);
+ }
+
+ public final class SizeFCompat {
+ ctor public SizeFCompat(float, float);
+ method public float getHeight();
+ method public float getWidth();
+ method @RequiresApi(21) public android.util.SizeF toSizeF();
+ method @RequiresApi(21) public static androidx.core.util.SizeFCompat toSizeFCompat(android.util.SizeF);
+ }
+
+ public interface Supplier<T> {
+ method public T! get();
+ }
+
+}
+
+package androidx.core.view {
+
+ public class AccessibilityDelegateCompat {
+ ctor public AccessibilityDelegateCompat();
+ method public boolean dispatchPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+ method public androidx.core.view.accessibility.AccessibilityNodeProviderCompat? getAccessibilityNodeProvider(android.view.View);
+ method public void onInitializeAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+ method public void onInitializeAccessibilityNodeInfo(android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat);
+ method public void onPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+ method public boolean onRequestSendAccessibilityEvent(android.view.ViewGroup, android.view.View, android.view.accessibility.AccessibilityEvent);
+ method public boolean performAccessibilityAction(android.view.View, int, android.os.Bundle?);
+ method public void sendAccessibilityEvent(android.view.View, int);
+ method public void sendAccessibilityEventUnchecked(android.view.View, android.view.accessibility.AccessibilityEvent);
+ }
+
+ public abstract class ActionProvider {
+ ctor public ActionProvider(android.content.Context);
+ method public android.content.Context getContext();
+ method public boolean hasSubMenu();
+ method public boolean isVisible();
+ method public abstract android.view.View onCreateActionView();
+ method public android.view.View onCreateActionView(android.view.MenuItem);
+ method public boolean onPerformDefaultAction();
+ method public void onPrepareSubMenu(android.view.SubMenu);
+ method public boolean overridesItemVisibility();
+ method public void refreshVisibility();
+ method public void setVisibilityListener(androidx.core.view.ActionProvider.VisibilityListener?);
+ }
+
+ public static interface ActionProvider.VisibilityListener {
+ method public void onActionProviderVisibilityChanged(boolean);
+ }
+
+ public final class ContentInfoCompat {
+ method public android.content.ClipData getClip();
+ method public android.os.Bundle? getExtras();
+ method public int getFlags();
+ method public android.net.Uri? getLinkUri();
+ method public int getSource();
+ method public android.util.Pair<androidx.core.view.ContentInfoCompat!,androidx.core.view.ContentInfoCompat!> partition(androidx.core.util.Predicate<android.content.ClipData.Item!>);
+ method @RequiresApi(31) public static android.util.Pair<android.view.ContentInfo!,android.view.ContentInfo!> partition(android.view.ContentInfo, java.util.function.Predicate<android.content.ClipData.Item!>);
+ method @RequiresApi(31) public android.view.ContentInfo toContentInfo();
+ method @RequiresApi(31) public static androidx.core.view.ContentInfoCompat toContentInfoCompat(android.view.ContentInfo);
+ field public static final int FLAG_CONVERT_TO_PLAIN_TEXT = 1; // 0x1
+ field public static final int SOURCE_APP = 0; // 0x0
+ field public static final int SOURCE_AUTOFILL = 4; // 0x4
+ field public static final int SOURCE_CLIPBOARD = 1; // 0x1
+ field public static final int SOURCE_DRAG_AND_DROP = 3; // 0x3
+ field public static final int SOURCE_INPUT_METHOD = 2; // 0x2
+ field public static final int SOURCE_PROCESS_TEXT = 5; // 0x5
+ }
+
+ public static final class ContentInfoCompat.Builder {
+ ctor public ContentInfoCompat.Builder(androidx.core.view.ContentInfoCompat);
+ ctor public ContentInfoCompat.Builder(android.content.ClipData, int);
+ method public androidx.core.view.ContentInfoCompat build();
+ method public androidx.core.view.ContentInfoCompat.Builder setClip(android.content.ClipData);
+ method public androidx.core.view.ContentInfoCompat.Builder setExtras(android.os.Bundle?);
+ method public androidx.core.view.ContentInfoCompat.Builder setFlags(int);
+ method public androidx.core.view.ContentInfoCompat.Builder setLinkUri(android.net.Uri?);
+ method public androidx.core.view.ContentInfoCompat.Builder setSource(int);
+ }
+
+ public final class DisplayCompat {
+ method public static androidx.core.view.DisplayCompat.ModeCompat getMode(android.content.Context, android.view.Display);
+ method public static androidx.core.view.DisplayCompat.ModeCompat![] getSupportedModes(android.content.Context, android.view.Display);
+ }
+
+ public static final class DisplayCompat.ModeCompat {
+ method public int getPhysicalHeight();
+ method public int getPhysicalWidth();
+ method @Deprecated public boolean isNative();
+ method @RequiresApi(android.os.Build.VERSION_CODES.M) public android.view.Display.Mode? toMode();
+ }
+
+ public final class DisplayCutoutCompat {
+ ctor public DisplayCutoutCompat(android.graphics.Rect?, java.util.List<android.graphics.Rect!>?);
+ ctor public DisplayCutoutCompat(androidx.core.graphics.Insets, android.graphics.Rect?, android.graphics.Rect?, android.graphics.Rect?, android.graphics.Rect?, androidx.core.graphics.Insets);
+ method public java.util.List<android.graphics.Rect!> getBoundingRects();
+ method public int getSafeInsetBottom();
+ method public int getSafeInsetLeft();
+ method public int getSafeInsetRight();
+ method public int getSafeInsetTop();
+ method public androidx.core.graphics.Insets getWaterfallInsets();
+ }
+
+ public final class DragAndDropPermissionsCompat {
+ method public void release();
+ }
+
+ public class DragStartHelper {
+ ctor public DragStartHelper(android.view.View, androidx.core.view.DragStartHelper.OnDragStartListener);
+ method public void attach();
+ method public void detach();
+ method public void getTouchPosition(android.graphics.Point);
+ method public boolean onLongClick(android.view.View);
+ method public boolean onTouch(android.view.View, android.view.MotionEvent);
+ }
+
+ public static interface DragStartHelper.OnDragStartListener {
+ method public boolean onDragStart(android.view.View, androidx.core.view.DragStartHelper);
+ }
+
+ public final class GestureDetectorCompat {
+ ctor public GestureDetectorCompat(android.content.Context, android.view.GestureDetector.OnGestureListener);
+ ctor public GestureDetectorCompat(android.content.Context, android.view.GestureDetector.OnGestureListener, android.os.Handler?);
+ method public boolean isLongpressEnabled();
+ method public boolean onTouchEvent(android.view.MotionEvent);
+ method public void setIsLongpressEnabled(boolean);
+ method public void setOnDoubleTapListener(android.view.GestureDetector.OnDoubleTapListener?);
+ }
+
+ public final class GravityCompat {
+ method public static void apply(int, int, int, android.graphics.Rect, android.graphics.Rect, int);
+ method public static void apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int);
+ method public static void applyDisplay(int, android.graphics.Rect, android.graphics.Rect, int);
+ method public static int getAbsoluteGravity(int, int);
+ field public static final int END = 8388613; // 0x800005
+ field public static final int RELATIVE_HORIZONTAL_GRAVITY_MASK = 8388615; // 0x800007
+ field public static final int RELATIVE_LAYOUT_DIRECTION = 8388608; // 0x800000
+ field public static final int START = 8388611; // 0x800003
+ }
+
+ public final class InputDeviceCompat {
+ field public static final int SOURCE_ANY = -256; // 0xffffff00
+ field public static final int SOURCE_CLASS_BUTTON = 1; // 0x1
+ field public static final int SOURCE_CLASS_JOYSTICK = 16; // 0x10
+ field public static final int SOURCE_CLASS_MASK = 255; // 0xff
+ field public static final int SOURCE_CLASS_NONE = 0; // 0x0
+ field public static final int SOURCE_CLASS_POINTER = 2; // 0x2
+ field public static final int SOURCE_CLASS_POSITION = 8; // 0x8
+ field public static final int SOURCE_CLASS_TRACKBALL = 4; // 0x4
+ field public static final int SOURCE_DPAD = 513; // 0x201
+ field public static final int SOURCE_GAMEPAD = 1025; // 0x401
+ field public static final int SOURCE_HDMI = 33554433; // 0x2000001
+ field public static final int SOURCE_JOYSTICK = 16777232; // 0x1000010
+ field public static final int SOURCE_KEYBOARD = 257; // 0x101
+ field public static final int SOURCE_MOUSE = 8194; // 0x2002
+ field public static final int SOURCE_ROTARY_ENCODER = 4194304; // 0x400000
+ field public static final int SOURCE_STYLUS = 16386; // 0x4002
+ field public static final int SOURCE_TOUCHPAD = 1048584; // 0x100008
+ field public static final int SOURCE_TOUCHSCREEN = 4098; // 0x1002
+ field public static final int SOURCE_TOUCH_NAVIGATION = 2097152; // 0x200000
+ field public static final int SOURCE_TRACKBALL = 65540; // 0x10004
+ field public static final int SOURCE_UNKNOWN = 0; // 0x0
+ }
+
+ public final class LayoutInflaterCompat {
+ method @Deprecated public static androidx.core.view.LayoutInflaterFactory! getFactory(android.view.LayoutInflater!);
+ method @Deprecated public static void setFactory(android.view.LayoutInflater, androidx.core.view.LayoutInflaterFactory);
+ method public static void setFactory2(android.view.LayoutInflater, android.view.LayoutInflater.Factory2);
+ }
+
+ @Deprecated public interface LayoutInflaterFactory {
+ method @Deprecated public android.view.View! onCreateView(android.view.View!, String!, android.content.Context!, android.util.AttributeSet!);
+ }
+
+ public final class MarginLayoutParamsCompat {
+ method public static int getLayoutDirection(android.view.ViewGroup.MarginLayoutParams);
+ method public static int getMarginEnd(android.view.ViewGroup.MarginLayoutParams);
+ method public static int getMarginStart(android.view.ViewGroup.MarginLayoutParams);
+ method public static boolean isMarginRelative(android.view.ViewGroup.MarginLayoutParams);
+ method public static void resolveLayoutDirection(android.view.ViewGroup.MarginLayoutParams, int);
+ method public static void setLayoutDirection(android.view.ViewGroup.MarginLayoutParams, int);
+ method public static void setMarginEnd(android.view.ViewGroup.MarginLayoutParams, int);
+ method public static void setMarginStart(android.view.ViewGroup.MarginLayoutParams, int);
+ }
+
+ public final class MenuCompat {
+ method public static void setGroupDividerEnabled(android.view.Menu, boolean);
+ method @Deprecated public static void setShowAsAction(android.view.MenuItem!, int);
+ }
+
+ public interface MenuHost {
+ method public void addMenuProvider(androidx.core.view.MenuProvider);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State);
+ method public void invalidateMenu();
+ method public void removeMenuProvider(androidx.core.view.MenuProvider);
+ }
+
+ public class MenuHostHelper {
+ ctor public MenuHostHelper(Runnable);
+ method public void addMenuProvider(androidx.core.view.MenuProvider);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State);
+ method public void onCreateMenu(android.view.Menu, android.view.MenuInflater);
+ method public void onMenuClosed(android.view.Menu);
+ method public boolean onMenuItemSelected(android.view.MenuItem);
+ method public void onPrepareMenu(android.view.Menu);
+ method public void removeMenuProvider(androidx.core.view.MenuProvider);
+ }
+
+ public final class MenuItemCompat {
+ method @Deprecated public static boolean collapseActionView(android.view.MenuItem!);
+ method @Deprecated public static boolean expandActionView(android.view.MenuItem!);
+ method public static androidx.core.view.ActionProvider? getActionProvider(android.view.MenuItem);
+ method @Deprecated public static android.view.View! getActionView(android.view.MenuItem!);
+ method public static int getAlphabeticModifiers(android.view.MenuItem);
+ method public static CharSequence? getContentDescription(android.view.MenuItem);
+ method public static android.content.res.ColorStateList? getIconTintList(android.view.MenuItem);
+ method public static android.graphics.PorterDuff.Mode? getIconTintMode(android.view.MenuItem);
+ method public static int getNumericModifiers(android.view.MenuItem);
+ method public static CharSequence? getTooltipText(android.view.MenuItem);
+ method @Deprecated public static boolean isActionViewExpanded(android.view.MenuItem!);
+ method public static android.view.MenuItem? setActionProvider(android.view.MenuItem, androidx.core.view.ActionProvider?);
+ method @Deprecated public static android.view.MenuItem! setActionView(android.view.MenuItem!, android.view.View!);
+ method @Deprecated public static android.view.MenuItem! setActionView(android.view.MenuItem!, int);
+ method public static void setAlphabeticShortcut(android.view.MenuItem, char, int);
+ method public static void setContentDescription(android.view.MenuItem, CharSequence?);
+ method public static void setIconTintList(android.view.MenuItem, android.content.res.ColorStateList?);
+ method public static void setIconTintMode(android.view.MenuItem, android.graphics.PorterDuff.Mode?);
+ method public static void setNumericShortcut(android.view.MenuItem, char, int);
+ method @Deprecated public static android.view.MenuItem! setOnActionExpandListener(android.view.MenuItem!, androidx.core.view.MenuItemCompat.OnActionExpandListener!);
+ method public static void setShortcut(android.view.MenuItem, char, char, int, int);
+ method @Deprecated public static void setShowAsAction(android.view.MenuItem!, int);
+ method public static void setTooltipText(android.view.MenuItem, CharSequence?);
+ field @Deprecated public static final int SHOW_AS_ACTION_ALWAYS = 2; // 0x2
+ field @Deprecated public static final int SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8; // 0x8
+ field @Deprecated public static final int SHOW_AS_ACTION_IF_ROOM = 1; // 0x1
+ field @Deprecated public static final int SHOW_AS_ACTION_NEVER = 0; // 0x0
+ field @Deprecated public static final int SHOW_AS_ACTION_WITH_TEXT = 4; // 0x4
+ }
+
+ @Deprecated public static interface MenuItemCompat.OnActionExpandListener {
+ method @Deprecated public boolean onMenuItemActionCollapse(android.view.MenuItem!);
+ method @Deprecated public boolean onMenuItemActionExpand(android.view.MenuItem!);
+ }
+
+ public interface MenuProvider {
+ method public void onCreateMenu(android.view.Menu, android.view.MenuInflater);
+ method public default void onMenuClosed(android.view.Menu);
+ method public boolean onMenuItemSelected(android.view.MenuItem);
+ method public default void onPrepareMenu(android.view.Menu);
+ }
+
+ public final class MotionEventCompat {
+ method @Deprecated public static int findPointerIndex(android.view.MotionEvent!, int);
+ method @Deprecated public static int getActionIndex(android.view.MotionEvent!);
+ method @Deprecated public static int getActionMasked(android.view.MotionEvent!);
+ method @Deprecated public static float getAxisValue(android.view.MotionEvent!, int);
+ method @Deprecated public static float getAxisValue(android.view.MotionEvent!, int, int);
+ method @Deprecated public static int getButtonState(android.view.MotionEvent!);
+ method @Deprecated public static int getPointerCount(android.view.MotionEvent!);
+ method @Deprecated public static int getPointerId(android.view.MotionEvent!, int);
+ method @Deprecated public static int getSource(android.view.MotionEvent!);
+ method @Deprecated public static float getX(android.view.MotionEvent!, int);
+ method @Deprecated public static float getY(android.view.MotionEvent!, int);
+ method public static boolean isFromSource(android.view.MotionEvent, int);
+ field @Deprecated public static final int ACTION_HOVER_ENTER = 9; // 0x9
+ field @Deprecated public static final int ACTION_HOVER_EXIT = 10; // 0xa
+ field @Deprecated public static final int ACTION_HOVER_MOVE = 7; // 0x7
+ field @Deprecated public static final int ACTION_MASK = 255; // 0xff
+ field @Deprecated public static final int ACTION_POINTER_DOWN = 5; // 0x5
+ field @Deprecated public static final int ACTION_POINTER_INDEX_MASK = 65280; // 0xff00
+ field @Deprecated public static final int ACTION_POINTER_INDEX_SHIFT = 8; // 0x8
+ field @Deprecated public static final int ACTION_POINTER_UP = 6; // 0x6
+ field @Deprecated public static final int ACTION_SCROLL = 8; // 0x8
+ field @Deprecated public static final int AXIS_BRAKE = 23; // 0x17
+ field @Deprecated public static final int AXIS_DISTANCE = 24; // 0x18
+ field @Deprecated public static final int AXIS_GAS = 22; // 0x16
+ field @Deprecated public static final int AXIS_GENERIC_1 = 32; // 0x20
+ field @Deprecated public static final int AXIS_GENERIC_10 = 41; // 0x29
+ field @Deprecated public static final int AXIS_GENERIC_11 = 42; // 0x2a
+ field @Deprecated public static final int AXIS_GENERIC_12 = 43; // 0x2b
+ field @Deprecated public static final int AXIS_GENERIC_13 = 44; // 0x2c
+ field @Deprecated public static final int AXIS_GENERIC_14 = 45; // 0x2d
+ field @Deprecated public static final int AXIS_GENERIC_15 = 46; // 0x2e
+ field @Deprecated public static final int AXIS_GENERIC_16 = 47; // 0x2f
+ field @Deprecated public static final int AXIS_GENERIC_2 = 33; // 0x21
+ field @Deprecated public static final int AXIS_GENERIC_3 = 34; // 0x22
+ field @Deprecated public static final int AXIS_GENERIC_4 = 35; // 0x23
+ field @Deprecated public static final int AXIS_GENERIC_5 = 36; // 0x24
+ field @Deprecated public static final int AXIS_GENERIC_6 = 37; // 0x25
+ field @Deprecated public static final int AXIS_GENERIC_7 = 38; // 0x26
+ field @Deprecated public static final int AXIS_GENERIC_8 = 39; // 0x27
+ field @Deprecated public static final int AXIS_GENERIC_9 = 40; // 0x28
+ field @Deprecated public static final int AXIS_HAT_X = 15; // 0xf
+ field @Deprecated public static final int AXIS_HAT_Y = 16; // 0x10
+ field @Deprecated public static final int AXIS_HSCROLL = 10; // 0xa
+ field @Deprecated public static final int AXIS_LTRIGGER = 17; // 0x11
+ field @Deprecated public static final int AXIS_ORIENTATION = 8; // 0x8
+ field @Deprecated public static final int AXIS_PRESSURE = 2; // 0x2
+ field public static final int AXIS_RELATIVE_X = 27; // 0x1b
+ field public static final int AXIS_RELATIVE_Y = 28; // 0x1c
+ field @Deprecated public static final int AXIS_RTRIGGER = 18; // 0x12
+ field @Deprecated public static final int AXIS_RUDDER = 20; // 0x14
+ field @Deprecated public static final int AXIS_RX = 12; // 0xc
+ field @Deprecated public static final int AXIS_RY = 13; // 0xd
+ field @Deprecated public static final int AXIS_RZ = 14; // 0xe
+ field public static final int AXIS_SCROLL = 26; // 0x1a
+ field @Deprecated public static final int AXIS_SIZE = 3; // 0x3
+ field @Deprecated public static final int AXIS_THROTTLE = 19; // 0x13
+ field @Deprecated public static final int AXIS_TILT = 25; // 0x19
+ field @Deprecated public static final int AXIS_TOOL_MAJOR = 6; // 0x6
+ field @Deprecated public static final int AXIS_TOOL_MINOR = 7; // 0x7
+ field @Deprecated public static final int AXIS_TOUCH_MAJOR = 4; // 0x4
+ field @Deprecated public static final int AXIS_TOUCH_MINOR = 5; // 0x5
+ field @Deprecated public static final int AXIS_VSCROLL = 9; // 0x9
+ field @Deprecated public static final int AXIS_WHEEL = 21; // 0x15
+ field @Deprecated public static final int AXIS_X = 0; // 0x0
+ field @Deprecated public static final int AXIS_Y = 1; // 0x1
+ field @Deprecated public static final int AXIS_Z = 11; // 0xb
+ field @Deprecated public static final int BUTTON_PRIMARY = 1; // 0x1
+ }
+
+ public interface NestedScrollingChild {
+ method public boolean dispatchNestedFling(float, float, boolean);
+ method public boolean dispatchNestedPreFling(float, float);
+ method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?);
+ method public boolean dispatchNestedScroll(int, int, int, int, int[]?);
+ method public boolean hasNestedScrollingParent();
+ method public boolean isNestedScrollingEnabled();
+ method public void setNestedScrollingEnabled(boolean);
+ method public boolean startNestedScroll(int);
+ method public void stopNestedScroll();
+ }
+
+ public interface NestedScrollingChild2 extends androidx.core.view.NestedScrollingChild {
+ method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?, int);
+ method public boolean dispatchNestedScroll(int, int, int, int, int[]?, int);
+ method public boolean hasNestedScrollingParent(int);
+ method public boolean startNestedScroll(int, int);
+ method public void stopNestedScroll(int);
+ }
+
+ public interface NestedScrollingChild3 extends androidx.core.view.NestedScrollingChild2 {
+ method public void dispatchNestedScroll(int, int, int, int, int[]?, int, int[]);
+ }
+
+ public class NestedScrollingChildHelper {
+ ctor public NestedScrollingChildHelper(android.view.View);
+ method public boolean dispatchNestedFling(float, float, boolean);
+ method public boolean dispatchNestedPreFling(float, float);
+ method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?);
+ method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?, int);
+ method public boolean dispatchNestedScroll(int, int, int, int, int[]?);
+ method public boolean dispatchNestedScroll(int, int, int, int, int[]?, int);
+ method public void dispatchNestedScroll(int, int, int, int, int[]?, int, int[]?);
+ method public boolean hasNestedScrollingParent();
+ method public boolean hasNestedScrollingParent(int);
+ method public boolean isNestedScrollingEnabled();
+ method public void onDetachedFromWindow();
+ method public void onStopNestedScroll(android.view.View);
+ method public void setNestedScrollingEnabled(boolean);
+ method public boolean startNestedScroll(int);
+ method public boolean startNestedScroll(int, int);
+ method public void stopNestedScroll();
+ method public void stopNestedScroll(int);
+ }
+
+ public interface NestedScrollingParent {
+ method public int getNestedScrollAxes();
+ method public boolean onNestedFling(android.view.View, float, float, boolean);
+ method public boolean onNestedPreFling(android.view.View, float, float);
+ method public void onNestedPreScroll(android.view.View, int, int, int[]);
+ method public void onNestedScroll(android.view.View, int, int, int, int);
+ method public void onNestedScrollAccepted(android.view.View, android.view.View, int);
+ method public boolean onStartNestedScroll(android.view.View, android.view.View, int);
+ method public void onStopNestedScroll(android.view.View);
+ }
+
+ public interface NestedScrollingParent2 extends androidx.core.view.NestedScrollingParent {
+ method public void onNestedPreScroll(android.view.View, int, int, int[], int);
+ method public void onNestedScroll(android.view.View, int, int, int, int, int);
+ method public void onNestedScrollAccepted(android.view.View, android.view.View, int, int);
+ method public boolean onStartNestedScroll(android.view.View, android.view.View, int, int);
+ method public void onStopNestedScroll(android.view.View, int);
+ }
+
+ public interface NestedScrollingParent3 extends androidx.core.view.NestedScrollingParent2 {
+ method public void onNestedScroll(android.view.View, int, int, int, int, int, int[]);
+ }
+
+ public class NestedScrollingParentHelper {
+ ctor public NestedScrollingParentHelper(android.view.ViewGroup);
+ method public int getNestedScrollAxes();
+ method public void onNestedScrollAccepted(android.view.View, android.view.View, int);
+ method public void onNestedScrollAccepted(android.view.View, android.view.View, int, int);
+ method public void onStopNestedScroll(android.view.View);
+ method public void onStopNestedScroll(android.view.View, int);
+ }
+
+ public interface OnApplyWindowInsetsListener {
+ method public androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat);
+ }
+
+ public interface OnReceiveContentListener {
+ method public androidx.core.view.ContentInfoCompat? onReceiveContent(android.view.View, androidx.core.view.ContentInfoCompat);
+ }
+
+ public interface OnReceiveContentViewBehavior {
+ method public androidx.core.view.ContentInfoCompat? onReceiveContent(androidx.core.view.ContentInfoCompat);
+ }
+
+ public final class OneShotPreDrawListener implements android.view.View.OnAttachStateChangeListener android.view.ViewTreeObserver.OnPreDrawListener {
+ method public static androidx.core.view.OneShotPreDrawListener add(android.view.View, Runnable);
+ method public boolean onPreDraw();
+ method public void onViewAttachedToWindow(android.view.View);
+ method public void onViewDetachedFromWindow(android.view.View);
+ method public void removeListener();
+ }
+
+ public final class PointerIconCompat {
+ method public static androidx.core.view.PointerIconCompat create(android.graphics.Bitmap, float, float);
+ method public static androidx.core.view.PointerIconCompat getSystemIcon(android.content.Context, int);
+ method public static androidx.core.view.PointerIconCompat load(android.content.res.Resources, int);
+ field public static final int TYPE_ALIAS = 1010; // 0x3f2
+ field public static final int TYPE_ALL_SCROLL = 1013; // 0x3f5
+ field public static final int TYPE_ARROW = 1000; // 0x3e8
+ field public static final int TYPE_CELL = 1006; // 0x3ee
+ field public static final int TYPE_CONTEXT_MENU = 1001; // 0x3e9
+ field public static final int TYPE_COPY = 1011; // 0x3f3
+ field public static final int TYPE_CROSSHAIR = 1007; // 0x3ef
+ field public static final int TYPE_DEFAULT = 1000; // 0x3e8
+ field public static final int TYPE_GRAB = 1020; // 0x3fc
+ field public static final int TYPE_GRABBING = 1021; // 0x3fd
+ field public static final int TYPE_HAND = 1002; // 0x3ea
+ field public static final int TYPE_HELP = 1003; // 0x3eb
+ field public static final int TYPE_HORIZONTAL_DOUBLE_ARROW = 1014; // 0x3f6
+ field public static final int TYPE_NO_DROP = 1012; // 0x3f4
+ field public static final int TYPE_NULL = 0; // 0x0
+ field public static final int TYPE_TEXT = 1008; // 0x3f0
+ field public static final int TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW = 1017; // 0x3f9
+ field public static final int TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW = 1016; // 0x3f8
+ field public static final int TYPE_VERTICAL_DOUBLE_ARROW = 1015; // 0x3f7
+ field public static final int TYPE_VERTICAL_TEXT = 1009; // 0x3f1
+ field public static final int TYPE_WAIT = 1004; // 0x3ec
+ field public static final int TYPE_ZOOM_IN = 1018; // 0x3fa
+ field public static final int TYPE_ZOOM_OUT = 1019; // 0x3fb
+ }
+
+ public final class ScaleGestureDetectorCompat {
+ method @Deprecated public static boolean isQuickScaleEnabled(Object!);
+ method public static boolean isQuickScaleEnabled(android.view.ScaleGestureDetector);
+ method @Deprecated public static void setQuickScaleEnabled(Object!, boolean);
+ method public static void setQuickScaleEnabled(android.view.ScaleGestureDetector, boolean);
+ }
+
+ public interface ScrollingView {
+ method public int computeHorizontalScrollExtent();
+ method public int computeHorizontalScrollOffset();
+ method public int computeHorizontalScrollRange();
+ method public int computeVerticalScrollExtent();
+ method public int computeVerticalScrollOffset();
+ method public int computeVerticalScrollRange();
+ }
+
+ public interface TintableBackgroundView {
+ method public android.content.res.ColorStateList? getSupportBackgroundTintList();
+ method public android.graphics.PorterDuff.Mode? getSupportBackgroundTintMode();
+ method public void setSupportBackgroundTintList(android.content.res.ColorStateList?);
+ method public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode?);
+ }
+
+ @Deprecated public final class VelocityTrackerCompat {
+ method @Deprecated public static float getXVelocity(android.view.VelocityTracker!, int);
+ method @Deprecated public static float getYVelocity(android.view.VelocityTracker!, int);
+ }
+
+ public class ViewCompat {
+ ctor @Deprecated protected ViewCompat();
+ method public static int addAccessibilityAction(android.view.View, CharSequence, androidx.core.view.accessibility.AccessibilityViewCommand);
+ method public static void addKeyboardNavigationClusters(android.view.View, java.util.Collection<android.view.View!>, int);
+ method public static void addOnUnhandledKeyEventListener(android.view.View, androidx.core.view.ViewCompat.OnUnhandledKeyEventListenerCompat);
+ method public static androidx.core.view.ViewPropertyAnimatorCompat animate(android.view.View);
+ method @Deprecated public static boolean canScrollHorizontally(android.view.View!, int);
+ method @Deprecated public static boolean canScrollVertically(android.view.View!, int);
+ method public static void cancelDragAndDrop(android.view.View);
+ method @Deprecated public static int combineMeasuredStates(int, int);
+ method public static androidx.core.view.WindowInsetsCompat computeSystemWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat, android.graphics.Rect);
+ method public static androidx.core.view.WindowInsetsCompat dispatchApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat);
+ method public static void dispatchFinishTemporaryDetach(android.view.View);
+ method public static boolean dispatchNestedFling(android.view.View, float, float, boolean);
+ method public static boolean dispatchNestedPreFling(android.view.View, float, float);
+ method public static boolean dispatchNestedPreScroll(android.view.View, int, int, int[]?, int[]?);
+ method public static boolean dispatchNestedPreScroll(android.view.View, int, int, int[]?, int[]?, int);
+ method public static boolean dispatchNestedScroll(android.view.View, int, int, int, int, int[]?);
+ method public static void dispatchNestedScroll(android.view.View, int, int, int, int, int[]?, int, int[]);
+ method public static boolean dispatchNestedScroll(android.view.View, int, int, int, int, int[]?, int);
+ method public static void dispatchStartTemporaryDetach(android.view.View);
+ method public static void enableAccessibleClickableSpanSupport(android.view.View);
+ method public static int generateViewId();
+ method public static androidx.core.view.AccessibilityDelegateCompat? getAccessibilityDelegate(android.view.View);
+ method public static int getAccessibilityLiveRegion(android.view.View);
+ method public static androidx.core.view.accessibility.AccessibilityNodeProviderCompat? getAccessibilityNodeProvider(android.view.View);
+ method @UiThread public static CharSequence? getAccessibilityPaneTitle(android.view.View);
+ method @Deprecated public static float getAlpha(android.view.View!);
+ method public static android.content.res.ColorStateList? getBackgroundTintList(android.view.View);
+ method public static android.graphics.PorterDuff.Mode? getBackgroundTintMode(android.view.View);
+ method public static android.graphics.Rect? getClipBounds(android.view.View);
+ method public static android.view.Display? getDisplay(android.view.View);
+ method public static float getElevation(android.view.View);
+ method public static boolean getFitsSystemWindows(android.view.View);
+ method public static int getImportantForAccessibility(android.view.View);
+ method public static int getImportantForAutofill(android.view.View);
+ method public static int getLabelFor(android.view.View);
+ method @Deprecated public static int getLayerType(android.view.View!);
+ method public static int getLayoutDirection(android.view.View);
+ method @Deprecated public static android.graphics.Matrix? getMatrix(android.view.View!);
+ method @Deprecated public static int getMeasuredHeightAndState(android.view.View!);
+ method @Deprecated public static int getMeasuredState(android.view.View!);
+ method @Deprecated public static int getMeasuredWidthAndState(android.view.View!);
+ method public static int getMinimumHeight(android.view.View);
+ method public static int getMinimumWidth(android.view.View);
+ method public static int getNextClusterForwardId(android.view.View);
+ method public static String![]? getOnReceiveContentMimeTypes(android.view.View);
+ method @Deprecated public static int getOverScrollMode(android.view.View!);
+ method @Px public static int getPaddingEnd(android.view.View);
+ method @Px public static int getPaddingStart(android.view.View);
+ method public static android.view.ViewParent? getParentForAccessibility(android.view.View);
+ method @Deprecated public static float getPivotX(android.view.View!);
+ method @Deprecated public static float getPivotY(android.view.View!);
+ method public static androidx.core.view.WindowInsetsCompat? getRootWindowInsets(android.view.View);
+ method @Deprecated public static float getRotation(android.view.View!);
+ method @Deprecated public static float getRotationX(android.view.View!);
+ method @Deprecated public static float getRotationY(android.view.View!);
+ method @Deprecated public static float getScaleX(android.view.View!);
+ method @Deprecated public static float getScaleY(android.view.View!);
+ method public static int getScrollIndicators(android.view.View);
+ method @UiThread public static CharSequence? getStateDescription(android.view.View);
+ method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
+ method public static String? getTransitionName(android.view.View);
+ method @Deprecated public static float getTranslationX(android.view.View!);
+ method @Deprecated public static float getTranslationY(android.view.View!);
+ method public static float getTranslationZ(android.view.View);
+ method @Deprecated public static androidx.core.view.WindowInsetsControllerCompat? getWindowInsetsController(android.view.View);
+ method @Deprecated public static int getWindowSystemUiVisibility(android.view.View);
+ method @Deprecated public static float getX(android.view.View!);
+ method @Deprecated public static float getY(android.view.View!);
+ method public static float getZ(android.view.View);
+ method public static boolean hasAccessibilityDelegate(android.view.View);
+ method public static boolean hasExplicitFocusable(android.view.View);
+ method public static boolean hasNestedScrollingParent(android.view.View);
+ method public static boolean hasNestedScrollingParent(android.view.View, int);
+ method public static boolean hasOnClickListeners(android.view.View);
+ method public static boolean hasOverlappingRendering(android.view.View);
+ method public static boolean hasTransientState(android.view.View);
+ method @UiThread public static boolean isAccessibilityHeading(android.view.View);
+ method public static boolean isAttachedToWindow(android.view.View);
+ method public static boolean isFocusedByDefault(android.view.View);
+ method public static boolean isImportantForAccessibility(android.view.View);
+ method public static boolean isImportantForAutofill(android.view.View);
+ method public static boolean isInLayout(android.view.View);
+ method public static boolean isKeyboardNavigationCluster(android.view.View);
+ method public static boolean isLaidOut(android.view.View);
+ method public static boolean isLayoutDirectionResolved(android.view.View);
+ method public static boolean isNestedScrollingEnabled(android.view.View);
+ method @Deprecated public static boolean isOpaque(android.view.View!);
+ method public static boolean isPaddingRelative(android.view.View);
+ method @UiThread public static boolean isScreenReaderFocusable(android.view.View);
+ method @Deprecated public static void jumpDrawablesToCurrentState(android.view.View!);
+ method public static android.view.View? keyboardNavigationClusterSearch(android.view.View, android.view.View?, int);
+ method public static void offsetLeftAndRight(android.view.View, int);
+ method public static void offsetTopAndBottom(android.view.View, int);
+ method public static androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat);
+ method @Deprecated public static void onInitializeAccessibilityEvent(android.view.View!, android.view.accessibility.AccessibilityEvent!);
+ method public static void onInitializeAccessibilityNodeInfo(android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat);
+ method @Deprecated public static void onPopulateAccessibilityEvent(android.view.View!, android.view.accessibility.AccessibilityEvent!);
+ method public static boolean performAccessibilityAction(android.view.View, int, android.os.Bundle?);
+ method public static androidx.core.view.ContentInfoCompat? performReceiveContent(android.view.View, androidx.core.view.ContentInfoCompat);
+ method public static void postInvalidateOnAnimation(android.view.View);
+ method public static void postInvalidateOnAnimation(android.view.View, int, int, int, int);
+ method public static void postOnAnimation(android.view.View, Runnable);
+ method public static void postOnAnimationDelayed(android.view.View, Runnable, long);
+ method public static void removeAccessibilityAction(android.view.View, int);
+ method public static void removeOnUnhandledKeyEventListener(android.view.View, androidx.core.view.ViewCompat.OnUnhandledKeyEventListenerCompat);
+ method public static void replaceAccessibilityAction(android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat, CharSequence?, androidx.core.view.accessibility.AccessibilityViewCommand?);
+ method public static void requestApplyInsets(android.view.View);
+ method public static <T extends android.view.View> T requireViewById(android.view.View, @IdRes int);
+ method @Deprecated public static int resolveSizeAndState(int, int, int);
+ method public static boolean restoreDefaultFocus(android.view.View);
+ method public static void saveAttributeDataForStyleable(android.view.View, android.content.Context, int[], android.util.AttributeSet?, android.content.res.TypedArray, int, int);
+ method public static void setAccessibilityDelegate(android.view.View, androidx.core.view.AccessibilityDelegateCompat?);
+ method @UiThread public static void setAccessibilityHeading(android.view.View, boolean);
+ method public static void setAccessibilityLiveRegion(android.view.View, int);
+ method @UiThread public static void setAccessibilityPaneTitle(android.view.View, CharSequence?);
+ method @Deprecated public static void setActivated(android.view.View!, boolean);
+ method @Deprecated public static void setAlpha(android.view.View!, @FloatRange(from=0.0, to=1.0) float);
+ method public static void setAutofillHints(android.view.View, java.lang.String!...);
+ method public static void setBackground(android.view.View, android.graphics.drawable.Drawable?);
+ method public static void setBackgroundTintList(android.view.View, android.content.res.ColorStateList?);
+ method public static void setBackgroundTintMode(android.view.View, android.graphics.PorterDuff.Mode?);
+ method @Deprecated public static void setChildrenDrawingOrderEnabled(android.view.ViewGroup!, boolean);
+ method public static void setClipBounds(android.view.View, android.graphics.Rect?);
+ method public static void setElevation(android.view.View, float);
+ method @Deprecated public static void setFitsSystemWindows(android.view.View!, boolean);
+ method public static void setFocusedByDefault(android.view.View, boolean);
+ method public static void setHasTransientState(android.view.View, boolean);
+ method @UiThread public static void setImportantForAccessibility(android.view.View, int);
+ method public static void setImportantForAutofill(android.view.View, int);
+ method public static void setKeyboardNavigationCluster(android.view.View, boolean);
+ method public static void setLabelFor(android.view.View, @IdRes int);
+ method public static void setLayerPaint(android.view.View, android.graphics.Paint?);
+ method @Deprecated public static void setLayerType(android.view.View!, int, android.graphics.Paint!);
+ method public static void setLayoutDirection(android.view.View, int);
+ method public static void setNestedScrollingEnabled(android.view.View, boolean);
+ method public static void setNextClusterForwardId(android.view.View, int);
+ method public static void setOnApplyWindowInsetsListener(android.view.View, androidx.core.view.OnApplyWindowInsetsListener?);
+ method public static void setOnReceiveContentListener(android.view.View, String![]?, androidx.core.view.OnReceiveContentListener?);
+ method @Deprecated public static void setOverScrollMode(android.view.View!, int);
+ method public static void setPaddingRelative(android.view.View, @Px int, @Px int, @Px int, @Px int);
+ method @Deprecated public static void setPivotX(android.view.View!, float);
+ method @Deprecated public static void setPivotY(android.view.View!, float);
+ method public static void setPointerIcon(android.view.View, androidx.core.view.PointerIconCompat?);
+ method @Deprecated public static void setRotation(android.view.View!, float);
+ method @Deprecated public static void setRotationX(android.view.View!, float);
+ method @Deprecated public static void setRotationY(android.view.View!, float);
+ method @Deprecated public static void setSaveFromParentEnabled(android.view.View!, boolean);
+ method @Deprecated public static void setScaleX(android.view.View!, float);
+ method @Deprecated public static void setScaleY(android.view.View!, float);
+ method @UiThread public static void setScreenReaderFocusable(android.view.View, boolean);
+ method public static void setScrollIndicators(android.view.View, int);
+ method public static void setScrollIndicators(android.view.View, int, int);
+ method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
+ method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
+ method public static void setTooltipText(android.view.View, CharSequence?);
+ method public static void setTransitionName(android.view.View, String?);
+ method @Deprecated public static void setTranslationX(android.view.View!, float);
+ method @Deprecated public static void setTranslationY(android.view.View!, float);
+ method public static void setTranslationZ(android.view.View, float);
+ method public static void setWindowInsetsAnimationCallback(android.view.View, androidx.core.view.WindowInsetsAnimationCompat.Callback?);
+ method @Deprecated public static void setX(android.view.View!, float);
+ method @Deprecated public static void setY(android.view.View!, float);
+ method public static void setZ(android.view.View, float);
+ method public static boolean startDragAndDrop(android.view.View, android.content.ClipData?, android.view.View.DragShadowBuilder, Object?, int);
+ method public static boolean startNestedScroll(android.view.View, int);
+ method public static boolean startNestedScroll(android.view.View, int, int);
+ method public static void stopNestedScroll(android.view.View);
+ method public static void stopNestedScroll(android.view.View, int);
+ method public static void updateDragShadow(android.view.View, android.view.View.DragShadowBuilder);
+ field public static final int ACCESSIBILITY_LIVE_REGION_ASSERTIVE = 2; // 0x2
+ field public static final int ACCESSIBILITY_LIVE_REGION_NONE = 0; // 0x0
+ field public static final int ACCESSIBILITY_LIVE_REGION_POLITE = 1; // 0x1
+ field public static final int IMPORTANT_FOR_ACCESSIBILITY_AUTO = 0; // 0x0
+ field public static final int IMPORTANT_FOR_ACCESSIBILITY_NO = 2; // 0x2
+ field public static final int IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS = 4; // 0x4
+ field public static final int IMPORTANT_FOR_ACCESSIBILITY_YES = 1; // 0x1
+ field @Deprecated public static final int LAYER_TYPE_HARDWARE = 2; // 0x2
+ field @Deprecated public static final int LAYER_TYPE_NONE = 0; // 0x0
+ field @Deprecated public static final int LAYER_TYPE_SOFTWARE = 1; // 0x1
+ field public static final int LAYOUT_DIRECTION_INHERIT = 2; // 0x2
+ field public static final int LAYOUT_DIRECTION_LOCALE = 3; // 0x3
+ field public static final int LAYOUT_DIRECTION_LTR = 0; // 0x0
+ field public static final int LAYOUT_DIRECTION_RTL = 1; // 0x1
+ field @Deprecated public static final int MEASURED_HEIGHT_STATE_SHIFT = 16; // 0x10
+ field @Deprecated public static final int MEASURED_SIZE_MASK = 16777215; // 0xffffff
+ field @Deprecated public static final int MEASURED_STATE_MASK = -16777216; // 0xff000000
+ field @Deprecated public static final int MEASURED_STATE_TOO_SMALL = 16777216; // 0x1000000
+ field @Deprecated public static final int OVER_SCROLL_ALWAYS = 0; // 0x0
+ field @Deprecated public static final int OVER_SCROLL_IF_CONTENT_SCROLLS = 1; // 0x1
+ field @Deprecated public static final int OVER_SCROLL_NEVER = 2; // 0x2
+ field public static final int SCROLL_AXIS_HORIZONTAL = 1; // 0x1
+ field public static final int SCROLL_AXIS_NONE = 0; // 0x0
+ field public static final int SCROLL_AXIS_VERTICAL = 2; // 0x2
+ field public static final int SCROLL_INDICATOR_BOTTOM = 2; // 0x2
+ field public static final int SCROLL_INDICATOR_END = 32; // 0x20
+ field public static final int SCROLL_INDICATOR_LEFT = 4; // 0x4
+ field public static final int SCROLL_INDICATOR_RIGHT = 8; // 0x8
+ field public static final int SCROLL_INDICATOR_START = 16; // 0x10
+ field public static final int SCROLL_INDICATOR_TOP = 1; // 0x1
+ field public static final int TYPE_NON_TOUCH = 1; // 0x1
+ field public static final int TYPE_TOUCH = 0; // 0x0
+ }
+
+ public static interface ViewCompat.OnUnhandledKeyEventListenerCompat {
+ method public boolean onUnhandledKeyEvent(android.view.View, android.view.KeyEvent);
+ }
+
+ public final class ViewConfigurationCompat {
+ method public static float getScaledHorizontalScrollFactor(android.view.ViewConfiguration, android.content.Context);
+ method public static int getScaledHoverSlop(android.view.ViewConfiguration);
+ method @Deprecated public static int getScaledPagingTouchSlop(android.view.ViewConfiguration!);
+ method public static float getScaledVerticalScrollFactor(android.view.ViewConfiguration, android.content.Context);
+ method @Deprecated public static boolean hasPermanentMenuKey(android.view.ViewConfiguration!);
+ method public static boolean shouldShowMenuShortcutsWhenKeyboardPresent(android.view.ViewConfiguration, android.content.Context);
+ }
+
+ public final class ViewGroupCompat {
+ method public static int getLayoutMode(android.view.ViewGroup);
+ method public static int getNestedScrollAxes(android.view.ViewGroup);
+ method public static boolean isTransitionGroup(android.view.ViewGroup);
+ method @Deprecated public static boolean onRequestSendAccessibilityEvent(android.view.ViewGroup!, android.view.View!, android.view.accessibility.AccessibilityEvent!);
+ method public static void setLayoutMode(android.view.ViewGroup, int);
+ method @Deprecated public static void setMotionEventSplittingEnabled(android.view.ViewGroup!, boolean);
+ method public static void setTransitionGroup(android.view.ViewGroup, boolean);
+ field public static final int LAYOUT_MODE_CLIP_BOUNDS = 0; // 0x0
+ field public static final int LAYOUT_MODE_OPTICAL_BOUNDS = 1; // 0x1
+ }
+
+ public final class ViewParentCompat {
+ method public static void notifySubtreeAccessibilityStateChanged(android.view.ViewParent, android.view.View, android.view.View, int);
+ method public static boolean onNestedFling(android.view.ViewParent, android.view.View, float, float, boolean);
+ method public static boolean onNestedPreFling(android.view.ViewParent, android.view.View, float, float);
+ method public static void onNestedPreScroll(android.view.ViewParent, android.view.View, int, int, int[]);
+ method public static void onNestedPreScroll(android.view.ViewParent, android.view.View, int, int, int[], int);
+ method public static void onNestedScroll(android.view.ViewParent, android.view.View, int, int, int, int);
+ method public static void onNestedScroll(android.view.ViewParent, android.view.View, int, int, int, int, int);
+ method public static void onNestedScroll(android.view.ViewParent, android.view.View, int, int, int, int, int, int[]);
+ method public static void onNestedScrollAccepted(android.view.ViewParent, android.view.View, android.view.View, int);
+ method public static void onNestedScrollAccepted(android.view.ViewParent, android.view.View, android.view.View, int, int);
+ method public static boolean onStartNestedScroll(android.view.ViewParent, android.view.View, android.view.View, int);
+ method public static boolean onStartNestedScroll(android.view.ViewParent, android.view.View, android.view.View, int, int);
+ method public static void onStopNestedScroll(android.view.ViewParent, android.view.View);
+ method public static void onStopNestedScroll(android.view.ViewParent, android.view.View, int);
+ method @Deprecated public static boolean requestSendAccessibilityEvent(android.view.ViewParent!, android.view.View!, android.view.accessibility.AccessibilityEvent!);
+ }
+
+ public final class ViewPropertyAnimatorCompat {
+ method public androidx.core.view.ViewPropertyAnimatorCompat alpha(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat alphaBy(float);
+ method public void cancel();
+ method public long getDuration();
+ method public android.view.animation.Interpolator? getInterpolator();
+ method public long getStartDelay();
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotation(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotationBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotationX(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotationXBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotationY(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotationYBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat scaleX(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat scaleXBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat scaleY(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat scaleYBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat setDuration(long);
+ method public androidx.core.view.ViewPropertyAnimatorCompat setInterpolator(android.view.animation.Interpolator?);
+ method public androidx.core.view.ViewPropertyAnimatorCompat setListener(androidx.core.view.ViewPropertyAnimatorListener?);
+ method public androidx.core.view.ViewPropertyAnimatorCompat setStartDelay(long);
+ method public androidx.core.view.ViewPropertyAnimatorCompat setUpdateListener(androidx.core.view.ViewPropertyAnimatorUpdateListener?);
+ method public void start();
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationX(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationXBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationY(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationYBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationZ(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationZBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat withEndAction(Runnable);
+ method public androidx.core.view.ViewPropertyAnimatorCompat withLayer();
+ method public androidx.core.view.ViewPropertyAnimatorCompat withStartAction(Runnable);
+ method public androidx.core.view.ViewPropertyAnimatorCompat x(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat xBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat y(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat yBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat z(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat zBy(float);
+ }
+
+ public interface ViewPropertyAnimatorListener {
+ method public void onAnimationCancel(android.view.View);
+ method public void onAnimationEnd(android.view.View);
+ method public void onAnimationStart(android.view.View);
+ }
+
+ public class ViewPropertyAnimatorListenerAdapter implements androidx.core.view.ViewPropertyAnimatorListener {
+ ctor public ViewPropertyAnimatorListenerAdapter();
+ method public void onAnimationCancel(android.view.View);
+ method public void onAnimationEnd(android.view.View);
+ method public void onAnimationStart(android.view.View);
+ }
+
+ public interface ViewPropertyAnimatorUpdateListener {
+ method public void onAnimationUpdate(android.view.View);
+ }
+
+ public final class WindowCompat {
+ method public static androidx.core.view.WindowInsetsControllerCompat getInsetsController(android.view.Window, android.view.View);
+ method public static <T extends android.view.View> T requireViewById(android.view.Window, @IdRes int);
+ method public static void setDecorFitsSystemWindows(android.view.Window, boolean);
+ field public static final int FEATURE_ACTION_BAR = 8; // 0x8
+ field public static final int FEATURE_ACTION_BAR_OVERLAY = 9; // 0x9
+ field public static final int FEATURE_ACTION_MODE_OVERLAY = 10; // 0xa
+ }
+
+ public final class WindowInsetsAnimationCompat {
+ ctor public WindowInsetsAnimationCompat(int, android.view.animation.Interpolator?, long);
+ method @FloatRange(from=0.0f, to=1.0f) public float getAlpha();
+ method public long getDurationMillis();
+ method @FloatRange(from=0.0f, to=1.0f) public float getFraction();
+ method public float getInterpolatedFraction();
+ method public android.view.animation.Interpolator? getInterpolator();
+ method public int getTypeMask();
+ method public void setAlpha(@FloatRange(from=0.0f, to=1.0f) float);
+ method public void setFraction(@FloatRange(from=0.0f, to=1.0f) float);
+ }
+
+ public static final class WindowInsetsAnimationCompat.BoundsCompat {
+ ctor public WindowInsetsAnimationCompat.BoundsCompat(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+ method public androidx.core.graphics.Insets getLowerBound();
+ method public androidx.core.graphics.Insets getUpperBound();
+ method public androidx.core.view.WindowInsetsAnimationCompat.BoundsCompat inset(androidx.core.graphics.Insets);
+ method @RequiresApi(30) public android.view.WindowInsetsAnimation.Bounds toBounds();
+ method @RequiresApi(30) public static androidx.core.view.WindowInsetsAnimationCompat.BoundsCompat toBoundsCompat(android.view.WindowInsetsAnimation.Bounds);
+ }
+
+ public abstract static class WindowInsetsAnimationCompat.Callback {
+ ctor public WindowInsetsAnimationCompat.Callback(int);
+ method public final int getDispatchMode();
+ method public void onEnd(androidx.core.view.WindowInsetsAnimationCompat);
+ method public void onPrepare(androidx.core.view.WindowInsetsAnimationCompat);
+ method public abstract androidx.core.view.WindowInsetsCompat onProgress(androidx.core.view.WindowInsetsCompat, java.util.List<androidx.core.view.WindowInsetsAnimationCompat!>);
+ method public androidx.core.view.WindowInsetsAnimationCompat.BoundsCompat onStart(androidx.core.view.WindowInsetsAnimationCompat, androidx.core.view.WindowInsetsAnimationCompat.BoundsCompat);
+ field public static final int DISPATCH_MODE_CONTINUE_ON_SUBTREE = 1; // 0x1
+ field public static final int DISPATCH_MODE_STOP = 0; // 0x0
+ }
+
+ public interface WindowInsetsAnimationControlListenerCompat {
+ method public void onCancelled(androidx.core.view.WindowInsetsAnimationControllerCompat?);
+ method public void onFinished(androidx.core.view.WindowInsetsAnimationControllerCompat);
+ method public void onReady(androidx.core.view.WindowInsetsAnimationControllerCompat, int);
+ }
+
+ public final class WindowInsetsAnimationControllerCompat {
+ method public void finish(boolean);
+ method public float getCurrentAlpha();
+ method @FloatRange(from=0.0f, to=1.0f) public float getCurrentFraction();
+ method public androidx.core.graphics.Insets getCurrentInsets();
+ method public androidx.core.graphics.Insets getHiddenStateInsets();
+ method public androidx.core.graphics.Insets getShownStateInsets();
+ method public int getTypes();
+ method public boolean isCancelled();
+ method public boolean isFinished();
+ method public boolean isReady();
+ method public void setInsetsAndAlpha(androidx.core.graphics.Insets?, @FloatRange(from=0.0f, to=1.0f) float, @FloatRange(from=0.0f, to=1.0f) float);
+ }
+
+ public class WindowInsetsCompat {
+ ctor public WindowInsetsCompat(androidx.core.view.WindowInsetsCompat?);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat consumeDisplayCutout();
+ method @Deprecated public androidx.core.view.WindowInsetsCompat consumeStableInsets();
+ method @Deprecated public androidx.core.view.WindowInsetsCompat consumeSystemWindowInsets();
+ method public androidx.core.view.DisplayCutoutCompat? getDisplayCutout();
+ method public androidx.core.graphics.Insets getInsets(int);
+ method public androidx.core.graphics.Insets getInsetsIgnoringVisibility(int);
+ method @Deprecated public androidx.core.graphics.Insets getMandatorySystemGestureInsets();
+ method @Deprecated public int getStableInsetBottom();
+ method @Deprecated public int getStableInsetLeft();
+ method @Deprecated public int getStableInsetRight();
+ method @Deprecated public int getStableInsetTop();
+ method @Deprecated public androidx.core.graphics.Insets getStableInsets();
+ method @Deprecated public androidx.core.graphics.Insets getSystemGestureInsets();
+ method @Deprecated public int getSystemWindowInsetBottom();
+ method @Deprecated public int getSystemWindowInsetLeft();
+ method @Deprecated public int getSystemWindowInsetRight();
+ method @Deprecated public int getSystemWindowInsetTop();
+ method @Deprecated public androidx.core.graphics.Insets getSystemWindowInsets();
+ method @Deprecated public androidx.core.graphics.Insets getTappableElementInsets();
+ method public boolean hasInsets();
+ method @Deprecated public boolean hasStableInsets();
+ method @Deprecated public boolean hasSystemWindowInsets();
+ method public androidx.core.view.WindowInsetsCompat inset(androidx.core.graphics.Insets);
+ method public androidx.core.view.WindowInsetsCompat inset(@IntRange(from=0) int, @IntRange(from=0) int, @IntRange(from=0) int, @IntRange(from=0) int);
+ method public boolean isConsumed();
+ method public boolean isRound();
+ method public boolean isVisible(int);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat replaceSystemWindowInsets(int, int, int, int);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat replaceSystemWindowInsets(android.graphics.Rect);
+ method @RequiresApi(20) public android.view.WindowInsets? toWindowInsets();
+ method @RequiresApi(20) public static androidx.core.view.WindowInsetsCompat toWindowInsetsCompat(android.view.WindowInsets);
+ method @RequiresApi(20) public static androidx.core.view.WindowInsetsCompat toWindowInsetsCompat(android.view.WindowInsets, android.view.View?);
+ field public static final androidx.core.view.WindowInsetsCompat CONSUMED;
+ }
+
+ public static final class WindowInsetsCompat.Builder {
+ ctor public WindowInsetsCompat.Builder();
+ ctor public WindowInsetsCompat.Builder(androidx.core.view.WindowInsetsCompat);
+ method public androidx.core.view.WindowInsetsCompat build();
+ method public androidx.core.view.WindowInsetsCompat.Builder setDisplayCutout(androidx.core.view.DisplayCutoutCompat?);
+ method public androidx.core.view.WindowInsetsCompat.Builder setInsets(int, androidx.core.graphics.Insets);
+ method public androidx.core.view.WindowInsetsCompat.Builder setInsetsIgnoringVisibility(int, androidx.core.graphics.Insets);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setMandatorySystemGestureInsets(androidx.core.graphics.Insets);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setStableInsets(androidx.core.graphics.Insets);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setSystemGestureInsets(androidx.core.graphics.Insets);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setSystemWindowInsets(androidx.core.graphics.Insets);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setTappableElementInsets(androidx.core.graphics.Insets);
+ method public androidx.core.view.WindowInsetsCompat.Builder setVisible(int, boolean);
+ }
+
+ public static final class WindowInsetsCompat.Type {
+ method public static int captionBar();
+ method public static int displayCutout();
+ method public static int ime();
+ method public static int mandatorySystemGestures();
+ method public static int navigationBars();
+ method public static int statusBars();
+ method public static int systemBars();
+ method public static int systemGestures();
+ method public static int tappableElement();
+ }
+
+ public final class WindowInsetsControllerCompat {
+ ctor public WindowInsetsControllerCompat(android.view.Window, android.view.View);
+ method public void addOnControllableInsetsChangedListener(androidx.core.view.WindowInsetsControllerCompat.OnControllableInsetsChangedListener);
+ method public void controlWindowInsetsAnimation(int, long, android.view.animation.Interpolator?, android.os.CancellationSignal?, androidx.core.view.WindowInsetsAnimationControlListenerCompat);
+ method public int getSystemBarsBehavior();
+ method public void hide(int);
+ method public boolean isAppearanceLightNavigationBars();
+ method public boolean isAppearanceLightStatusBars();
+ method public void removeOnControllableInsetsChangedListener(androidx.core.view.WindowInsetsControllerCompat.OnControllableInsetsChangedListener);
+ method public void setAppearanceLightNavigationBars(boolean);
+ method public void setAppearanceLightStatusBars(boolean);
+ method public void setSystemBarsBehavior(int);
+ method public void show(int);
+ method @Deprecated @RequiresApi(30) public static androidx.core.view.WindowInsetsControllerCompat toWindowInsetsControllerCompat(android.view.WindowInsetsController);
+ field public static final int BEHAVIOR_SHOW_BARS_BY_SWIPE = 1; // 0x1
+ field public static final int BEHAVIOR_SHOW_BARS_BY_TOUCH = 0; // 0x0
+ field public static final int BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE = 2; // 0x2
+ }
+
+ public static interface WindowInsetsControllerCompat.OnControllableInsetsChangedListener {
+ method public void onControllableInsetsChanged(androidx.core.view.WindowInsetsControllerCompat, int);
+ }
+
+}
+
+package androidx.core.view.accessibility {
+
+ public final class AccessibilityClickableSpanCompat extends android.text.style.ClickableSpan {
+ method public void onClick(android.view.View);
+ }
+
+ public final class AccessibilityEventCompat {
+ method @Deprecated public static void appendRecord(android.view.accessibility.AccessibilityEvent!, androidx.core.view.accessibility.AccessibilityRecordCompat!);
+ method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! asRecord(android.view.accessibility.AccessibilityEvent!);
+ method public static int getAction(android.view.accessibility.AccessibilityEvent);
+ method public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent);
+ method public static int getMovementGranularity(android.view.accessibility.AccessibilityEvent);
+ method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! getRecord(android.view.accessibility.AccessibilityEvent!, int);
+ method @Deprecated public static int getRecordCount(android.view.accessibility.AccessibilityEvent!);
+ method public static void setAction(android.view.accessibility.AccessibilityEvent, int);
+ method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent, int);
+ method public static void setMovementGranularity(android.view.accessibility.AccessibilityEvent, int);
+ field public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 4; // 0x4
+ field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
+ field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
+ field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+ field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
+ field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
+ field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
+ field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
+ field public static final int TYPES_ALL_MASK = -1; // 0xffffffff
+ field public static final int TYPE_ANNOUNCEMENT = 16384; // 0x4000
+ field public static final int TYPE_ASSIST_READING_CONTEXT = 16777216; // 0x1000000
+ field public static final int TYPE_GESTURE_DETECTION_END = 524288; // 0x80000
+ field public static final int TYPE_GESTURE_DETECTION_START = 262144; // 0x40000
+ field @Deprecated public static final int TYPE_TOUCH_EXPLORATION_GESTURE_END = 1024; // 0x400
+ field @Deprecated public static final int TYPE_TOUCH_EXPLORATION_GESTURE_START = 512; // 0x200
+ field public static final int TYPE_TOUCH_INTERACTION_END = 2097152; // 0x200000
+ field public static final int TYPE_TOUCH_INTERACTION_START = 1048576; // 0x100000
+ field public static final int TYPE_VIEW_ACCESSIBILITY_FOCUSED = 32768; // 0x8000
+ field public static final int TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED = 65536; // 0x10000
+ field public static final int TYPE_VIEW_CONTEXT_CLICKED = 8388608; // 0x800000
+ field @Deprecated public static final int TYPE_VIEW_HOVER_ENTER = 128; // 0x80
+ field @Deprecated public static final int TYPE_VIEW_HOVER_EXIT = 256; // 0x100
+ field @Deprecated public static final int TYPE_VIEW_SCROLLED = 4096; // 0x1000
+ field @Deprecated public static final int TYPE_VIEW_TEXT_SELECTION_CHANGED = 8192; // 0x2000
+ field public static final int TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY = 131072; // 0x20000
+ field public static final int TYPE_WINDOWS_CHANGED = 4194304; // 0x400000
+ field @Deprecated public static final int TYPE_WINDOW_CONTENT_CHANGED = 2048; // 0x800
+ }
+
+ public final class AccessibilityManagerCompat {
+ method @Deprecated public static boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener!);
+ method public static boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager, androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener);
+ method @Deprecated public static java.util.List<android.accessibilityservice.AccessibilityServiceInfo!>! getEnabledAccessibilityServiceList(android.view.accessibility.AccessibilityManager!, int);
+ method @Deprecated public static java.util.List<android.accessibilityservice.AccessibilityServiceInfo!>! getInstalledAccessibilityServiceList(android.view.accessibility.AccessibilityManager!);
+ method @Deprecated public static boolean isTouchExplorationEnabled(android.view.accessibility.AccessibilityManager!);
+ method @Deprecated public static boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener!);
+ method public static boolean removeTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager, androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener);
+ }
+
+ @Deprecated public static interface AccessibilityManagerCompat.AccessibilityStateChangeListener {
+ method @Deprecated public void onAccessibilityStateChanged(boolean);
+ }
+
+ @Deprecated public abstract static class AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat implements androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener {
+ ctor @Deprecated public AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat();
+ }
+
+ public static interface AccessibilityManagerCompat.TouchExplorationStateChangeListener {
+ method public void onTouchExplorationStateChanged(boolean);
+ }
+
+ public class AccessibilityNodeInfoCompat {
+ ctor @Deprecated public AccessibilityNodeInfoCompat(Object!);
+ method public void addAction(int);
+ method public void addAction(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat!);
+ method public void addChild(android.view.View!);
+ method public void addChild(android.view.View!, int);
+ method public boolean canOpenPopup();
+ method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat!>! findAccessibilityNodeInfosByText(String!);
+ method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat!>! findAccessibilityNodeInfosByViewId(String!);
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! findFocus(int);
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! focusSearch(int);
+ method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat!>! getActionList();
+ method public int getActions();
+ method public java.util.List<java.lang.String!> getAvailableExtraData();
+ method @Deprecated public void getBoundsInParent(android.graphics.Rect!);
+ method public void getBoundsInScreen(android.graphics.Rect!);
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getChild(int);
+ method public int getChildCount();
+ method public CharSequence! getClassName();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat! getCollectionInfo();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat! getCollectionItemInfo();
+ method public CharSequence! getContentDescription();
+ method public int getDrawingOrder();
+ method public CharSequence! getError();
+ method public android.os.Bundle! getExtras();
+ method public CharSequence? getHintText();
+ method @Deprecated public Object! getInfo();
+ method public int getInputType();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getLabelFor();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getLabeledBy();
+ method public int getLiveRegion();
+ method public int getMaxTextLength();
+ method public int getMovementGranularities();
+ method public CharSequence! getPackageName();
+ method public CharSequence? getPaneTitle();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
+ method public CharSequence? getRoleDescription();
+ method public CharSequence? getStateDescription();
+ method public CharSequence! getText();
+ method public int getTextSelectionEnd();
+ method public int getTextSelectionStart();
+ method public CharSequence? getTooltipText();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.TouchDelegateInfoCompat? getTouchDelegateInfo();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getTraversalAfter();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getTraversalBefore();
+ method public String! getViewIdResourceName();
+ method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat! getWindow();
+ method public int getWindowId();
+ method public boolean isAccessibilityFocused();
+ method public boolean isCheckable();
+ method public boolean isChecked();
+ method public boolean isClickable();
+ method public boolean isContentInvalid();
+ method public boolean isContextClickable();
+ method public boolean isDismissable();
+ method public boolean isEditable();
+ method public boolean isEnabled();
+ method public boolean isFocusable();
+ method public boolean isFocused();
+ method public boolean isHeading();
+ method public boolean isImportantForAccessibility();
+ method public boolean isLongClickable();
+ method public boolean isMultiLine();
+ method public boolean isPassword();
+ method public boolean isScreenReaderFocusable();
+ method public boolean isScrollable();
+ method public boolean isSelected();
+ method public boolean isShowingHintText();
+ method public boolean isTextEntryKey();
+ method public boolean isVisibleToUser();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain(android.view.View!);
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain(android.view.View!, int);
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain(androidx.core.view.accessibility.AccessibilityNodeInfoCompat!);
+ method public boolean performAction(int);
+ method public boolean performAction(int, android.os.Bundle!);
+ method public void recycle();
+ method public boolean refresh();
+ method public boolean removeAction(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat!);
+ method public boolean removeChild(android.view.View!);
+ method public boolean removeChild(android.view.View!, int);
+ method public void setAccessibilityFocused(boolean);
+ method public void setAvailableExtraData(java.util.List<java.lang.String!>);
+ method @Deprecated public void setBoundsInParent(android.graphics.Rect!);
+ method public void setBoundsInScreen(android.graphics.Rect!);
+ method public void setCanOpenPopup(boolean);
+ method public void setCheckable(boolean);
+ method public void setChecked(boolean);
+ method public void setClassName(CharSequence!);
+ method public void setClickable(boolean);
+ method public void setCollectionInfo(Object!);
+ method public void setCollectionItemInfo(Object!);
+ method public void setContentDescription(CharSequence!);
+ method public void setContentInvalid(boolean);
+ method public void setContextClickable(boolean);
+ method public void setDismissable(boolean);
+ method public void setDrawingOrder(int);
+ method public void setEditable(boolean);
+ method public void setEnabled(boolean);
+ method public void setError(CharSequence!);
+ method public void setFocusable(boolean);
+ method public void setFocused(boolean);
+ method public void setHeading(boolean);
+ method public void setHintText(CharSequence?);
+ method public void setImportantForAccessibility(boolean);
+ method public void setInputType(int);
+ method public void setLabelFor(android.view.View!);
+ method public void setLabelFor(android.view.View!, int);
+ method public void setLabeledBy(android.view.View!);
+ method public void setLabeledBy(android.view.View!, int);
+ method public void setLiveRegion(int);
+ method public void setLongClickable(boolean);
+ method public void setMaxTextLength(int);
+ method public void setMovementGranularities(int);
+ method public void setMultiLine(boolean);
+ method public void setPackageName(CharSequence!);
+ method public void setPaneTitle(CharSequence?);
+ method public void setParent(android.view.View!);
+ method public void setParent(android.view.View!, int);
+ method public void setPassword(boolean);
+ method public void setRangeInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat!);
+ method public void setRoleDescription(CharSequence?);
+ method public void setScreenReaderFocusable(boolean);
+ method public void setScrollable(boolean);
+ method public void setSelected(boolean);
+ method public void setShowingHintText(boolean);
+ method public void setSource(android.view.View!);
+ method public void setSource(android.view.View!, int);
+ method public void setStateDescription(CharSequence?);
+ method public void setText(CharSequence!);
+ method public void setTextEntryKey(boolean);
+ method public void setTextSelection(int, int);
+ method public void setTooltipText(CharSequence?);
+ method public void setTouchDelegateInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.TouchDelegateInfoCompat);
+ method public void setTraversalAfter(android.view.View!);
+ method public void setTraversalAfter(android.view.View!, int);
+ method public void setTraversalBefore(android.view.View!);
+ method public void setTraversalBefore(android.view.View!, int);
+ method public void setViewIdResourceName(String!);
+ method public void setVisibleToUser(boolean);
+ method public android.view.accessibility.AccessibilityNodeInfo! unwrap();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! wrap(android.view.accessibility.AccessibilityNodeInfo);
+ field public static final int ACTION_ACCESSIBILITY_FOCUS = 64; // 0x40
+ field public static final String ACTION_ARGUMENT_COLUMN_INT = "android.view.accessibility.action.ARGUMENT_COLUMN_INT";
+ field public static final String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN = "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN";
+ field public static final String ACTION_ARGUMENT_HTML_ELEMENT_STRING = "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
+ field public static final String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT = "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT";
+ field public static final String ACTION_ARGUMENT_MOVE_WINDOW_X = "ACTION_ARGUMENT_MOVE_WINDOW_X";
+ field public static final String ACTION_ARGUMENT_MOVE_WINDOW_Y = "ACTION_ARGUMENT_MOVE_WINDOW_Y";
+ field public static final String ACTION_ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT = "android.view.accessibility.action.ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT";
+ field public static final String ACTION_ARGUMENT_PROGRESS_VALUE = "android.view.accessibility.action.ARGUMENT_PROGRESS_VALUE";
+ field public static final String ACTION_ARGUMENT_ROW_INT = "android.view.accessibility.action.ARGUMENT_ROW_INT";
+ field public static final String ACTION_ARGUMENT_SELECTION_END_INT = "ACTION_ARGUMENT_SELECTION_END_INT";
+ field public static final String ACTION_ARGUMENT_SELECTION_START_INT = "ACTION_ARGUMENT_SELECTION_START_INT";
+ field public static final String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE = "ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE";
+ field public static final int ACTION_CLEAR_ACCESSIBILITY_FOCUS = 128; // 0x80
+ field public static final int ACTION_CLEAR_FOCUS = 2; // 0x2
+ field public static final int ACTION_CLEAR_SELECTION = 8; // 0x8
+ field public static final int ACTION_CLICK = 16; // 0x10
+ field public static final int ACTION_COLLAPSE = 524288; // 0x80000
+ field public static final int ACTION_COPY = 16384; // 0x4000
+ field public static final int ACTION_CUT = 65536; // 0x10000
+ field public static final int ACTION_DISMISS = 1048576; // 0x100000
+ field public static final int ACTION_EXPAND = 262144; // 0x40000
+ field public static final int ACTION_FOCUS = 1; // 0x1
+ field public static final int ACTION_LONG_CLICK = 32; // 0x20
+ field public static final int ACTION_NEXT_AT_MOVEMENT_GRANULARITY = 256; // 0x100
+ field public static final int ACTION_NEXT_HTML_ELEMENT = 1024; // 0x400
+ field public static final int ACTION_PASTE = 32768; // 0x8000
+ field public static final int ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY = 512; // 0x200
+ field public static final int ACTION_PREVIOUS_HTML_ELEMENT = 2048; // 0x800
+ field public static final int ACTION_SCROLL_BACKWARD = 8192; // 0x2000
+ field public static final int ACTION_SCROLL_FORWARD = 4096; // 0x1000
+ field public static final int ACTION_SELECT = 4; // 0x4
+ field public static final int ACTION_SET_SELECTION = 131072; // 0x20000
+ field public static final int ACTION_SET_TEXT = 2097152; // 0x200000
+ field public static final int FOCUS_ACCESSIBILITY = 2; // 0x2
+ field public static final int FOCUS_INPUT = 1; // 0x1
+ field public static final int MOVEMENT_GRANULARITY_CHARACTER = 1; // 0x1
+ field public static final int MOVEMENT_GRANULARITY_LINE = 4; // 0x4
+ field public static final int MOVEMENT_GRANULARITY_PAGE = 16; // 0x10
+ field public static final int MOVEMENT_GRANULARITY_PARAGRAPH = 8; // 0x8
+ field public static final int MOVEMENT_GRANULARITY_WORD = 2; // 0x2
+ }
+
+ public static class AccessibilityNodeInfoCompat.AccessibilityActionCompat {
+ ctor public AccessibilityNodeInfoCompat.AccessibilityActionCompat(int, CharSequence!);
+ method public int getId();
+ method public CharSequence! getLabel();
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_ACCESSIBILITY_FOCUS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLEAR_ACCESSIBILITY_FOCUS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLEAR_FOCUS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLEAR_SELECTION;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLICK;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_COLLAPSE;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CONTEXT_CLICK;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_COPY;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CUT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_DISMISS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_EXPAND;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_FOCUS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_HIDE_TOOLTIP;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_IME_ENTER;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_LONG_CLICK;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_MOVE_WINDOW;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_NEXT_AT_MOVEMENT_GRANULARITY;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_NEXT_HTML_ELEMENT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PAGE_DOWN;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PAGE_LEFT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PAGE_RIGHT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PAGE_UP;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_PASTE;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PRESS_AND_HOLD;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_PREVIOUS_HTML_ELEMENT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_BACKWARD;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_DOWN;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_FORWARD;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_LEFT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_RIGHT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_TO_POSITION;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_UP;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SELECT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SET_PROGRESS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SET_SELECTION;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SET_TEXT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SHOW_ON_SCREEN;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SHOW_TOOLTIP;
+ }
+
+ public static class AccessibilityNodeInfoCompat.CollectionInfoCompat {
+ method public int getColumnCount();
+ method public int getRowCount();
+ method public int getSelectionMode();
+ method public boolean isHierarchical();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat! obtain(int, int, boolean, int);
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat! obtain(int, int, boolean);
+ field public static final int SELECTION_MODE_MULTIPLE = 2; // 0x2
+ field public static final int SELECTION_MODE_NONE = 0; // 0x0
+ field public static final int SELECTION_MODE_SINGLE = 1; // 0x1
+ }
+
+ public static class AccessibilityNodeInfoCompat.CollectionItemInfoCompat {
+ method public int getColumnIndex();
+ method public int getColumnSpan();
+ method public int getRowIndex();
+ method public int getRowSpan();
+ method @Deprecated public boolean isHeading();
+ method public boolean isSelected();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat! obtain(int, int, int, int, boolean, boolean);
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat! obtain(int, int, int, int, boolean);
+ }
+
+ public static class AccessibilityNodeInfoCompat.RangeInfoCompat {
+ method public float getCurrent();
+ method public float getMax();
+ method public float getMin();
+ method public int getType();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! obtain(int, float, float, float);
+ field public static final int RANGE_TYPE_FLOAT = 1; // 0x1
+ field public static final int RANGE_TYPE_INT = 0; // 0x0
+ field public static final int RANGE_TYPE_PERCENT = 2; // 0x2
+ }
+
+ public static final class AccessibilityNodeInfoCompat.TouchDelegateInfoCompat {
+ ctor public AccessibilityNodeInfoCompat.TouchDelegateInfoCompat(java.util.Map<android.graphics.Region!,android.view.View!>);
+ method public android.graphics.Region? getRegionAt(@IntRange(from=0) int);
+ method @IntRange(from=0) public int getRegionCount();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? getTargetForRegion(android.graphics.Region);
+ }
+
+ public class AccessibilityNodeProviderCompat {
+ ctor public AccessibilityNodeProviderCompat();
+ ctor public AccessibilityNodeProviderCompat(Object?);
+ method public void addExtraDataToAccessibilityNodeInfo(int, androidx.core.view.accessibility.AccessibilityNodeInfoCompat, String, android.os.Bundle?);
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? createAccessibilityNodeInfo(int);
+ method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat!>? findAccessibilityNodeInfosByText(String, int);
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? findFocus(int);
+ method public Object? getProvider();
+ method public boolean performAction(int, int, android.os.Bundle?);
+ field public static final int HOST_VIEW_ID = -1; // 0xffffffff
+ }
+
+ public class AccessibilityRecordCompat {
+ ctor @Deprecated public AccessibilityRecordCompat(Object!);
+ method @Deprecated public boolean equals(Object?);
+ method @Deprecated public int getAddedCount();
+ method @Deprecated public CharSequence! getBeforeText();
+ method @Deprecated public CharSequence! getClassName();
+ method @Deprecated public CharSequence! getContentDescription();
+ method @Deprecated public int getCurrentItemIndex();
+ method @Deprecated public int getFromIndex();
+ method @Deprecated public Object! getImpl();
+ method @Deprecated public int getItemCount();
+ method @Deprecated public int getMaxScrollX();
+ method public static int getMaxScrollX(android.view.accessibility.AccessibilityRecord);
+ method @Deprecated public int getMaxScrollY();
+ method public static int getMaxScrollY(android.view.accessibility.AccessibilityRecord);
+ method @Deprecated public android.os.Parcelable! getParcelableData();
+ method @Deprecated public int getRemovedCount();
+ method @Deprecated public int getScrollX();
+ method @Deprecated public int getScrollY();
+ method @Deprecated public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getSource();
+ method @Deprecated public java.util.List<java.lang.CharSequence!>! getText();
+ method @Deprecated public int getToIndex();
+ method @Deprecated public int getWindowId();
+ method @Deprecated public int hashCode();
+ method @Deprecated public boolean isChecked();
+ method @Deprecated public boolean isEnabled();
+ method @Deprecated public boolean isFullScreen();
+ method @Deprecated public boolean isPassword();
+ method @Deprecated public boolean isScrollable();
+ method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! obtain(androidx.core.view.accessibility.AccessibilityRecordCompat!);
+ method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! obtain();
+ method @Deprecated public void recycle();
+ method @Deprecated public void setAddedCount(int);
+ method @Deprecated public void setBeforeText(CharSequence!);
+ method @Deprecated public void setChecked(boolean);
+ method @Deprecated public void setClassName(CharSequence!);
+ method @Deprecated public void setContentDescription(CharSequence!);
+ method @Deprecated public void setCurrentItemIndex(int);
+ method @Deprecated public void setEnabled(boolean);
+ method @Deprecated public void setFromIndex(int);
+ method @Deprecated public void setFullScreen(boolean);
+ method @Deprecated public void setItemCount(int);
+ method @Deprecated public void setMaxScrollX(int);
+ method public static void setMaxScrollX(android.view.accessibility.AccessibilityRecord, int);
+ method @Deprecated public void setMaxScrollY(int);
+ method public static void setMaxScrollY(android.view.accessibility.AccessibilityRecord, int);
+ method @Deprecated public void setParcelableData(android.os.Parcelable!);
+ method @Deprecated public void setPassword(boolean);
+ method @Deprecated public void setRemovedCount(int);
+ method @Deprecated public void setScrollX(int);
+ method @Deprecated public void setScrollY(int);
+ method @Deprecated public void setScrollable(boolean);
+ method @Deprecated public void setSource(android.view.View!);
+ method @Deprecated public void setSource(android.view.View!, int);
+ method public static void setSource(android.view.accessibility.AccessibilityRecord, android.view.View?, int);
+ method @Deprecated public void setToIndex(int);
+ }
+
+ public interface AccessibilityViewCommand {
+ method public boolean perform(android.view.View, androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments?);
+ }
+
+ public abstract static class AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.CommandArguments();
+ }
+
+ public static final class AccessibilityViewCommand.MoveAtGranularityArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.MoveAtGranularityArguments();
+ method public boolean getExtendSelection();
+ method public int getGranularity();
+ }
+
+ public static final class AccessibilityViewCommand.MoveHtmlArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.MoveHtmlArguments();
+ method public String? getHTMLElement();
+ }
+
+ public static final class AccessibilityViewCommand.MoveWindowArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.MoveWindowArguments();
+ method public int getX();
+ method public int getY();
+ }
+
+ public static final class AccessibilityViewCommand.ScrollToPositionArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.ScrollToPositionArguments();
+ method public int getColumn();
+ method public int getRow();
+ }
+
+ public static final class AccessibilityViewCommand.SetProgressArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.SetProgressArguments();
+ method public float getProgress();
+ }
+
+ public static final class AccessibilityViewCommand.SetSelectionArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.SetSelectionArguments();
+ method public int getEnd();
+ method public int getStart();
+ }
+
+ public static final class AccessibilityViewCommand.SetTextArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.SetTextArguments();
+ method public CharSequence? getText();
+ }
+
+ public class AccessibilityWindowInfoCompat {
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? getAnchor();
+ method public void getBoundsInScreen(android.graphics.Rect);
+ method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat? getChild(int);
+ method public int getChildCount();
+ method public int getId();
+ method public int getLayer();
+ method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat? getParent();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? getRoot();
+ method public CharSequence? getTitle();
+ method public int getType();
+ method public boolean isAccessibilityFocused();
+ method public boolean isActive();
+ method public boolean isFocused();
+ method public static androidx.core.view.accessibility.AccessibilityWindowInfoCompat? obtain();
+ method public static androidx.core.view.accessibility.AccessibilityWindowInfoCompat? obtain(androidx.core.view.accessibility.AccessibilityWindowInfoCompat?);
+ method public void recycle();
+ field public static final int TYPE_ACCESSIBILITY_OVERLAY = 4; // 0x4
+ field public static final int TYPE_APPLICATION = 1; // 0x1
+ field public static final int TYPE_INPUT_METHOD = 2; // 0x2
+ field public static final int TYPE_SPLIT_SCREEN_DIVIDER = 5; // 0x5
+ field public static final int TYPE_SYSTEM = 3; // 0x3
+ }
+
+}
+
+package androidx.core.view.animation {
+
+ public final class PathInterpolatorCompat {
+ method public static android.view.animation.Interpolator create(android.graphics.Path);
+ method public static android.view.animation.Interpolator create(float, float);
+ method public static android.view.animation.Interpolator create(float, float, float, float);
+ }
+
+}
+
+package androidx.core.view.inputmethod {
+
+ public final class EditorInfoCompat {
+ ctor @Deprecated public EditorInfoCompat();
+ method public static String![] getContentMimeTypes(android.view.inputmethod.EditorInfo);
+ method public static CharSequence? getInitialSelectedText(android.view.inputmethod.EditorInfo, int);
+ method public static CharSequence? getInitialTextAfterCursor(android.view.inputmethod.EditorInfo, int, int);
+ method public static CharSequence? getInitialTextBeforeCursor(android.view.inputmethod.EditorInfo, int, int);
+ method public static void setContentMimeTypes(android.view.inputmethod.EditorInfo, String![]?);
+ method public static void setInitialSurroundingSubText(android.view.inputmethod.EditorInfo, CharSequence, int);
+ method public static void setInitialSurroundingText(android.view.inputmethod.EditorInfo, CharSequence);
+ field public static final int IME_FLAG_FORCE_ASCII = -2147483648; // 0x80000000
+ field public static final int IME_FLAG_NO_PERSONALIZED_LEARNING = 16777216; // 0x1000000
+ }
+
+ public final class InputConnectionCompat {
+ ctor @Deprecated public InputConnectionCompat();
+ method public static boolean commitContent(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo, androidx.core.view.inputmethod.InputContentInfoCompat, int, android.os.Bundle?);
+ method @Deprecated public static android.view.inputmethod.InputConnection createWrapper(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo, androidx.core.view.inputmethod.InputConnectionCompat.OnCommitContentListener);
+ method public static android.view.inputmethod.InputConnection createWrapper(android.view.View, android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo);
+ field public static final int INPUT_CONTENT_GRANT_READ_URI_PERMISSION = 1; // 0x1
+ }
+
+ public static interface InputConnectionCompat.OnCommitContentListener {
+ method public boolean onCommitContent(androidx.core.view.inputmethod.InputContentInfoCompat, int, android.os.Bundle?);
+ }
+
+ public final class InputContentInfoCompat {
+ ctor public InputContentInfoCompat(android.net.Uri, android.content.ClipDescription, android.net.Uri?);
+ method public android.net.Uri getContentUri();
+ method public android.content.ClipDescription getDescription();
+ method public android.net.Uri? getLinkUri();
+ method public void releasePermission();
+ method public void requestPermission();
+ method public Object? unwrap();
+ method public static androidx.core.view.inputmethod.InputContentInfoCompat? wrap(Object?);
+ }
+
+}
+
+package androidx.core.widget {
+
+ public abstract class AutoScrollHelper implements android.view.View.OnTouchListener {
+ ctor public AutoScrollHelper(android.view.View);
+ method public abstract boolean canTargetScrollHorizontally(int);
+ method public abstract boolean canTargetScrollVertically(int);
+ method public boolean isEnabled();
+ method public boolean isExclusive();
+ method public boolean onTouch(android.view.View!, android.view.MotionEvent!);
+ method public abstract void scrollTargetBy(int, int);
+ method public androidx.core.widget.AutoScrollHelper setActivationDelay(int);
+ method public androidx.core.widget.AutoScrollHelper setEdgeType(int);
+ method public androidx.core.widget.AutoScrollHelper! setEnabled(boolean);
+ method public androidx.core.widget.AutoScrollHelper! setExclusive(boolean);
+ method public androidx.core.widget.AutoScrollHelper setMaximumEdges(float, float);
+ method public androidx.core.widget.AutoScrollHelper setMaximumVelocity(float, float);
+ method public androidx.core.widget.AutoScrollHelper setMinimumVelocity(float, float);
+ method public androidx.core.widget.AutoScrollHelper setRampDownDuration(int);
+ method public androidx.core.widget.AutoScrollHelper setRampUpDuration(int);
+ method public androidx.core.widget.AutoScrollHelper setRelativeEdges(float, float);
+ method public androidx.core.widget.AutoScrollHelper setRelativeVelocity(float, float);
+ field public static final int EDGE_TYPE_INSIDE = 0; // 0x0
+ field public static final int EDGE_TYPE_INSIDE_EXTEND = 1; // 0x1
+ field public static final int EDGE_TYPE_OUTSIDE = 2; // 0x2
+ field public static final float NO_MAX = 3.4028235E38f;
+ field public static final float NO_MIN = 0.0f;
+ field public static final float RELATIVE_UNSPECIFIED = 0.0f;
+ }
+
+ public final class CheckedTextViewCompat {
+ method public static android.graphics.drawable.Drawable? getCheckMarkDrawable(android.widget.CheckedTextView);
+ method public static android.content.res.ColorStateList? getCheckMarkTintList(android.widget.CheckedTextView);
+ method public static android.graphics.PorterDuff.Mode? getCheckMarkTintMode(android.widget.CheckedTextView);
+ method public static void setCheckMarkTintList(android.widget.CheckedTextView, android.content.res.ColorStateList?);
+ method public static void setCheckMarkTintMode(android.widget.CheckedTextView, android.graphics.PorterDuff.Mode?);
+ }
+
+ public final class CompoundButtonCompat {
+ method public static android.graphics.drawable.Drawable? getButtonDrawable(android.widget.CompoundButton);
+ method public static android.content.res.ColorStateList? getButtonTintList(android.widget.CompoundButton);
+ method public static android.graphics.PorterDuff.Mode? getButtonTintMode(android.widget.CompoundButton);
+ method public static void setButtonTintList(android.widget.CompoundButton, android.content.res.ColorStateList?);
+ method public static void setButtonTintMode(android.widget.CompoundButton, android.graphics.PorterDuff.Mode?);
+ }
+
+ public class ContentLoadingProgressBar extends android.widget.ProgressBar {
+ ctor public ContentLoadingProgressBar(android.content.Context);
+ ctor public ContentLoadingProgressBar(android.content.Context, android.util.AttributeSet?);
+ method public void hide();
+ method public void onAttachedToWindow();
+ method public void onDetachedFromWindow();
+ method public void show();
+ }
+
+ public final class EdgeEffectCompat {
+ ctor @Deprecated public EdgeEffectCompat(android.content.Context!);
+ method public static android.widget.EdgeEffect create(android.content.Context, android.util.AttributeSet?);
+ method @Deprecated public boolean draw(android.graphics.Canvas!);
+ method @Deprecated public void finish();
+ method public static float getDistance(android.widget.EdgeEffect);
+ method @Deprecated public boolean isFinished();
+ method @Deprecated public boolean onAbsorb(int);
+ method @Deprecated public boolean onPull(float);
+ method @Deprecated public boolean onPull(float, float);
+ method public static void onPull(android.widget.EdgeEffect, float, float);
+ method public static float onPullDistance(android.widget.EdgeEffect, float, float);
+ method @Deprecated public boolean onRelease();
+ method @Deprecated public void setSize(int, int);
+ }
+
+ public class ImageViewCompat {
+ method public static android.content.res.ColorStateList? getImageTintList(android.widget.ImageView);
+ method public static android.graphics.PorterDuff.Mode? getImageTintMode(android.widget.ImageView);
+ method public static void setImageTintList(android.widget.ImageView, android.content.res.ColorStateList?);
+ method public static void setImageTintMode(android.widget.ImageView, android.graphics.PorterDuff.Mode?);
+ }
+
+ public final class ListPopupWindowCompat {
+ method @Deprecated public static android.view.View.OnTouchListener! createDragToOpenListener(Object!, android.view.View!);
+ method public static android.view.View.OnTouchListener? createDragToOpenListener(android.widget.ListPopupWindow, android.view.View);
+ }
+
+ public class ListViewAutoScrollHelper extends androidx.core.widget.AutoScrollHelper {
+ ctor public ListViewAutoScrollHelper(android.widget.ListView);
+ method public boolean canTargetScrollHorizontally(int);
+ method public boolean canTargetScrollVertically(int);
+ method public void scrollTargetBy(int, int);
+ }
+
+ public final class ListViewCompat {
+ method public static boolean canScrollList(android.widget.ListView, int);
+ method public static void scrollListBy(android.widget.ListView, int);
+ }
+
+ public class NestedScrollView extends android.widget.FrameLayout implements androidx.core.view.NestedScrollingChild3 androidx.core.view.NestedScrollingParent3 androidx.core.view.ScrollingView {
+ ctor public NestedScrollView(android.content.Context);
+ ctor public NestedScrollView(android.content.Context, android.util.AttributeSet?);
+ ctor public NestedScrollView(android.content.Context, android.util.AttributeSet?, int);
+ method public boolean arrowScroll(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeHorizontalScrollExtent();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeHorizontalScrollOffset();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeHorizontalScrollRange();
+ method protected int computeScrollDeltaToGetChildRectOnScreen(android.graphics.Rect!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeVerticalScrollExtent();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeVerticalScrollOffset();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeVerticalScrollRange();
+ method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?, int);
+ method public void dispatchNestedScroll(int, int, int, int, int[]?, int, int[]);
+ method public boolean dispatchNestedScroll(int, int, int, int, int[]?, int);
+ method public boolean executeKeyEvent(android.view.KeyEvent);
+ method public void fling(int);
+ method public boolean fullScroll(int);
+ method public int getMaxScrollAmount();
+ method public boolean hasNestedScrollingParent(int);
+ method public boolean isFillViewport();
+ method public boolean isSmoothScrollingEnabled();
+ method public void onAttachedToWindow();
+ method public void onNestedPreScroll(android.view.View, int, int, int[], int);
+ method public void onNestedScroll(android.view.View, int, int, int, int, int, int[]);
+ method public void onNestedScroll(android.view.View, int, int, int, int, int);
+ method public void onNestedScrollAccepted(android.view.View, android.view.View, int, int);
+ method public boolean onStartNestedScroll(android.view.View, android.view.View, int, int);
+ method public void onStopNestedScroll(android.view.View, int);
+ method public boolean pageScroll(int);
+ method public void setFillViewport(boolean);
+ method public void setOnScrollChangeListener(androidx.core.widget.NestedScrollView.OnScrollChangeListener?);
+ method public void setSmoothScrollingEnabled(boolean);
+ method public final void smoothScrollBy(int, int);
+ method public final void smoothScrollBy(int, int, int);
+ method public final void smoothScrollTo(int, int);
+ method public final void smoothScrollTo(int, int, int);
+ method public boolean startNestedScroll(int, int);
+ method public void stopNestedScroll(int);
+ }
+
+ public static interface NestedScrollView.OnScrollChangeListener {
+ method public void onScrollChange(androidx.core.widget.NestedScrollView, int, int, int, int);
+ }
+
+ public final class PopupMenuCompat {
+ method public static android.view.View.OnTouchListener? getDragToOpenListener(Object);
+ }
+
+ public final class PopupWindowCompat {
+ method public static boolean getOverlapAnchor(android.widget.PopupWindow);
+ method public static int getWindowLayoutType(android.widget.PopupWindow);
+ method public static void setOverlapAnchor(android.widget.PopupWindow, boolean);
+ method public static void setWindowLayoutType(android.widget.PopupWindow, int);
+ method public static void showAsDropDown(android.widget.PopupWindow, android.view.View, int, int, int);
+ }
+
+ @Deprecated public final class ScrollerCompat {
+ method @Deprecated public void abortAnimation();
+ method @Deprecated public boolean computeScrollOffset();
+ method @Deprecated public static androidx.core.widget.ScrollerCompat! create(android.content.Context!);
+ method @Deprecated public static androidx.core.widget.ScrollerCompat! create(android.content.Context!, android.view.animation.Interpolator!);
+ method @Deprecated public void fling(int, int, int, int, int, int, int, int);
+ method @Deprecated public void fling(int, int, int, int, int, int, int, int, int, int);
+ method @Deprecated public float getCurrVelocity();
+ method @Deprecated public int getCurrX();
+ method @Deprecated public int getCurrY();
+ method @Deprecated public int getFinalX();
+ method @Deprecated public int getFinalY();
+ method @Deprecated public boolean isFinished();
+ method @Deprecated public boolean isOverScrolled();
+ method @Deprecated public void notifyHorizontalEdgeReached(int, int, int);
+ method @Deprecated public void notifyVerticalEdgeReached(int, int, int);
+ method @Deprecated public boolean springBack(int, int, int, int, int, int);
+ method @Deprecated public void startScroll(int, int, int, int);
+ method @Deprecated public void startScroll(int, int, int, int, int);
+ }
+
+ public final class TextViewCompat {
+ method public static int getAutoSizeMaxTextSize(android.widget.TextView);
+ method public static int getAutoSizeMinTextSize(android.widget.TextView);
+ method public static int getAutoSizeStepGranularity(android.widget.TextView);
+ method public static int[] getAutoSizeTextAvailableSizes(android.widget.TextView);
+ method public static int getAutoSizeTextType(android.widget.TextView);
+ method public static android.content.res.ColorStateList? getCompoundDrawableTintList(android.widget.TextView);
+ method public static android.graphics.PorterDuff.Mode? getCompoundDrawableTintMode(android.widget.TextView);
+ method public static android.graphics.drawable.Drawable![] getCompoundDrawablesRelative(android.widget.TextView);
+ method public static int getFirstBaselineToTopHeight(android.widget.TextView);
+ method public static int getLastBaselineToBottomHeight(android.widget.TextView);
+ method public static int getMaxLines(android.widget.TextView);
+ method public static int getMinLines(android.widget.TextView);
+ method public static androidx.core.text.PrecomputedTextCompat.Params getTextMetricsParams(android.widget.TextView);
+ method public static void setAutoSizeTextTypeUniformWithConfiguration(android.widget.TextView, int, int, int, int) throws java.lang.IllegalArgumentException;
+ method public static void setAutoSizeTextTypeUniformWithPresetSizes(android.widget.TextView, int[], int) throws java.lang.IllegalArgumentException;
+ method public static void setAutoSizeTextTypeWithDefaults(android.widget.TextView, int);
+ method public static void setCompoundDrawableTintList(android.widget.TextView, android.content.res.ColorStateList?);
+ method public static void setCompoundDrawableTintMode(android.widget.TextView, android.graphics.PorterDuff.Mode?);
+ method public static void setCompoundDrawablesRelative(android.widget.TextView, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?);
+ method public static void setCompoundDrawablesRelativeWithIntrinsicBounds(android.widget.TextView, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?);
+ method public static void setCompoundDrawablesRelativeWithIntrinsicBounds(android.widget.TextView, @DrawableRes int, @DrawableRes int, @DrawableRes int, @DrawableRes int);
+ method public static void setCustomSelectionActionModeCallback(android.widget.TextView, android.view.ActionMode.Callback);
+ method public static void setFirstBaselineToTopHeight(android.widget.TextView, @IntRange(from=0) @Px int);
+ method public static void setLastBaselineToBottomHeight(android.widget.TextView, @IntRange(from=0) @Px int);
+ method public static void setLineHeight(android.widget.TextView, @IntRange(from=0) @Px int);
+ method public static void setPrecomputedText(android.widget.TextView, androidx.core.text.PrecomputedTextCompat);
+ method public static void setTextAppearance(android.widget.TextView, @StyleRes int);
+ method public static void setTextMetricsParams(android.widget.TextView, androidx.core.text.PrecomputedTextCompat.Params);
+ field public static final int AUTO_SIZE_TEXT_TYPE_NONE = 0; // 0x0
+ field public static final int AUTO_SIZE_TEXT_TYPE_UNIFORM = 1; // 0x1
+ }
+
+ public interface TintableCompoundButton {
+ method public android.content.res.ColorStateList? getSupportButtonTintList();
+ method public android.graphics.PorterDuff.Mode? getSupportButtonTintMode();
+ method public void setSupportButtonTintList(android.content.res.ColorStateList?);
+ method public void setSupportButtonTintMode(android.graphics.PorterDuff.Mode?);
+ }
+
+ public interface TintableCompoundDrawablesView {
+ method public android.content.res.ColorStateList? getSupportCompoundDrawablesTintList();
+ method public android.graphics.PorterDuff.Mode? getSupportCompoundDrawablesTintMode();
+ method public void setSupportCompoundDrawablesTintList(android.content.res.ColorStateList?);
+ method public void setSupportCompoundDrawablesTintMode(android.graphics.PorterDuff.Mode?);
+ }
+
+}
+
diff --git a/core/core/api/public_plus_experimental_current.txt b/core/core/api/public_plus_experimental_current.txt
index 8ea9b73..8ad2d8f 100644
--- a/core/core/api/public_plus_experimental_current.txt
+++ b/core/core/api/public_plus_experimental_current.txt
@@ -1691,7 +1691,8 @@
method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.R) public static boolean isAtLeastR();
method @Deprecated @ChecksSdkIntAtLeast(api=31, codename="S") public static boolean isAtLeastS();
method @Deprecated @ChecksSdkIntAtLeast(api=32, codename="Sv2") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastSv2();
- method @Deprecated @ChecksSdkIntAtLeast(codename="Tiramisu") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastT();
+ method @ChecksSdkIntAtLeast(api=33, codename="Tiramisu") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastT();
+ method @ChecksSdkIntAtLeast(codename="UpsideDownCake") @androidx.core.os.BuildCompat.PrereleaseSdkCheck public static boolean isAtLeastU();
}
@RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public static @interface BuildCompat.PrereleaseSdkCheck {
diff --git a/core/core/api/res-1.8.0-beta02.txt b/core/core/api/res-1.8.0-beta02.txt
new file mode 100644
index 0000000..dd913d3
--- /dev/null
+++ b/core/core/api/res-1.8.0-beta02.txt
@@ -0,0 +1,21 @@
+attr alpha
+attr font
+attr fontProviderAuthority
+attr fontProviderCerts
+attr fontProviderFetchStrategy
+attr fontProviderFetchTimeout
+attr fontProviderPackage
+attr fontProviderQuery
+attr fontProviderSystemFontFamily
+attr fontStyle
+attr fontVariationSettings
+attr fontWeight
+attr lStar
+attr queryPatterns
+attr shortcutMatchRequired
+attr ttcIndex
+style TextAppearance_Compat_Notification
+style TextAppearance_Compat_Notification_Info
+style TextAppearance_Compat_Notification_Line2
+style TextAppearance_Compat_Notification_Time
+style TextAppearance_Compat_Notification_Title
diff --git a/core/core/api/restricted_1.8.0-beta02.txt b/core/core/api/restricted_1.8.0-beta02.txt
new file mode 100644
index 0000000..ec250b5
--- /dev/null
+++ b/core/core/api/restricted_1.8.0-beta02.txt
@@ -0,0 +1,4263 @@
+// Signature format: 4.0
+package android.support.v4.os {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class ResultReceiver implements android.os.Parcelable {
+ ctor public ResultReceiver(android.os.Handler!);
+ method public int describeContents();
+ method protected void onReceiveResult(int, android.os.Bundle!);
+ method public void send(int, android.os.Bundle!);
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<android.support.v4.os.ResultReceiver!>! CREATOR;
+ }
+
+}
+
+package androidx.core.accessibilityservice {
+
+ public final class AccessibilityServiceInfoCompat {
+ method public static String capabilityToString(int);
+ method public static String feedbackTypeToString(int);
+ method public static String? flagToString(int);
+ method public static int getCapabilities(android.accessibilityservice.AccessibilityServiceInfo);
+ method public static String? loadDescription(android.accessibilityservice.AccessibilityServiceInfo, android.content.pm.PackageManager);
+ field public static final int CAPABILITY_CAN_FILTER_KEY_EVENTS = 8; // 0x8
+ field public static final int CAPABILITY_CAN_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 4; // 0x4
+ field public static final int CAPABILITY_CAN_REQUEST_TOUCH_EXPLORATION = 2; // 0x2
+ field public static final int CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT = 1; // 0x1
+ field public static final int FEEDBACK_ALL_MASK = -1; // 0xffffffff
+ field public static final int FEEDBACK_BRAILLE = 32; // 0x20
+ field public static final int FLAG_INCLUDE_NOT_IMPORTANT_VIEWS = 2; // 0x2
+ field public static final int FLAG_REPORT_VIEW_IDS = 16; // 0x10
+ field public static final int FLAG_REQUEST_ENHANCED_WEB_ACCESSIBILITY = 8; // 0x8
+ field public static final int FLAG_REQUEST_FILTER_KEY_EVENTS = 32; // 0x20
+ field public static final int FLAG_REQUEST_TOUCH_EXPLORATION_MODE = 4; // 0x4
+ }
+
+}
+
+package androidx.core.app {
+
+ public class ActivityCompat extends androidx.core.content.ContextCompat {
+ ctor protected ActivityCompat();
+ method public static void finishAffinity(android.app.Activity);
+ method public static void finishAfterTransition(android.app.Activity);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.app.ActivityCompat.PermissionCompatDelegate? getPermissionCompatDelegate();
+ method public static android.net.Uri? getReferrer(android.app.Activity);
+ method @Deprecated public static boolean invalidateOptionsMenu(android.app.Activity!);
+ method public static boolean isLaunchedFromBubble(android.app.Activity);
+ method public static void postponeEnterTransition(android.app.Activity);
+ method public static void recreate(android.app.Activity);
+ method public static androidx.core.view.DragAndDropPermissionsCompat? requestDragAndDropPermissions(android.app.Activity, android.view.DragEvent);
+ method public static void requestPermissions(android.app.Activity, String![], @IntRange(from=0) int);
+ method public static <T extends android.view.View> T requireViewById(android.app.Activity, @IdRes int);
+ method public static void setEnterSharedElementCallback(android.app.Activity, androidx.core.app.SharedElementCallback?);
+ method public static void setExitSharedElementCallback(android.app.Activity, androidx.core.app.SharedElementCallback?);
+ method public static void setLocusContext(android.app.Activity, androidx.core.content.LocusIdCompat?, android.os.Bundle?);
+ method public static void setPermissionCompatDelegate(androidx.core.app.ActivityCompat.PermissionCompatDelegate?);
+ method public static boolean shouldShowRequestPermissionRationale(android.app.Activity, String);
+ method public static void startActivityForResult(android.app.Activity, android.content.Intent, int, android.os.Bundle?);
+ method public static void startIntentSenderForResult(android.app.Activity, android.content.IntentSender, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
+ method public static void startPostponedEnterTransition(android.app.Activity);
+ }
+
+ public static interface ActivityCompat.OnRequestPermissionsResultCallback {
+ method public void onRequestPermissionsResult(int, String![], int[]);
+ }
+
+ public static interface ActivityCompat.PermissionCompatDelegate {
+ method public boolean onActivityResult(android.app.Activity, @IntRange(from=0) int, int, android.content.Intent?);
+ method public boolean requestPermissions(android.app.Activity, String![], @IntRange(from=0) int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static interface ActivityCompat.RequestPermissionsRequestCodeValidator {
+ method public void validateRequestPermissionsRequestCode(int);
+ }
+
+ public final class ActivityManagerCompat {
+ method public static boolean isLowRamDevice(android.app.ActivityManager);
+ }
+
+ public class ActivityOptionsCompat {
+ ctor protected ActivityOptionsCompat();
+ method public android.graphics.Rect? getLaunchBounds();
+ method public static androidx.core.app.ActivityOptionsCompat makeBasic();
+ method public static androidx.core.app.ActivityOptionsCompat makeClipRevealAnimation(android.view.View, int, int, int, int);
+ method public static androidx.core.app.ActivityOptionsCompat makeCustomAnimation(android.content.Context, int, int);
+ method public static androidx.core.app.ActivityOptionsCompat makeScaleUpAnimation(android.view.View, int, int, int, int);
+ method public static androidx.core.app.ActivityOptionsCompat makeSceneTransitionAnimation(android.app.Activity, android.view.View, String);
+ method public static androidx.core.app.ActivityOptionsCompat makeSceneTransitionAnimation(android.app.Activity, androidx.core.util.Pair<android.view.View!,java.lang.String!>!...);
+ method public static androidx.core.app.ActivityOptionsCompat makeTaskLaunchBehind();
+ method public static androidx.core.app.ActivityOptionsCompat makeThumbnailScaleUpAnimation(android.view.View, android.graphics.Bitmap, int, int);
+ method public void requestUsageTimeReport(android.app.PendingIntent);
+ method public androidx.core.app.ActivityOptionsCompat setLaunchBounds(android.graphics.Rect?);
+ method public android.os.Bundle? toBundle();
+ method public void update(androidx.core.app.ActivityOptionsCompat);
+ field public static final String EXTRA_USAGE_TIME_REPORT = "android.activity.usage_time";
+ field public static final String EXTRA_USAGE_TIME_REPORT_PACKAGES = "android.usage_time_packages";
+ }
+
+ public final class AlarmManagerCompat {
+ method public static void setAlarmClock(android.app.AlarmManager, long, android.app.PendingIntent, android.app.PendingIntent);
+ method public static void setAndAllowWhileIdle(android.app.AlarmManager, int, long, android.app.PendingIntent);
+ method public static void setExact(android.app.AlarmManager, int, long, android.app.PendingIntent);
+ method public static void setExactAndAllowWhileIdle(android.app.AlarmManager, int, long, android.app.PendingIntent);
+ }
+
+ @RequiresApi(28) public class AppComponentFactory extends android.app.AppComponentFactory {
+ ctor public AppComponentFactory();
+ method public final android.app.Activity instantiateActivity(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public android.app.Activity instantiateActivityCompat(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public final android.app.Application instantiateApplication(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public android.app.Application instantiateApplicationCompat(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public final android.content.ContentProvider instantiateProvider(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public android.content.ContentProvider instantiateProviderCompat(ClassLoader, String) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public final android.content.BroadcastReceiver instantiateReceiver(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public android.content.BroadcastReceiver instantiateReceiverCompat(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public final android.app.Service instantiateService(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ method public android.app.Service instantiateServiceCompat(ClassLoader, String, android.content.Intent?) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.InstantiationException;
+ }
+
+ public class AppLaunchChecker {
+ ctor @Deprecated public AppLaunchChecker();
+ method public static boolean hasStartedFromLauncher(android.content.Context);
+ method public static void onActivityCreate(android.app.Activity);
+ }
+
+ public final class AppOpsManagerCompat {
+ method public static int checkOrNoteProxyOp(android.content.Context, int, String, String);
+ method public static int noteOp(android.content.Context, String, int, String);
+ method public static int noteOpNoThrow(android.content.Context, String, int, String);
+ method public static int noteProxyOp(android.content.Context, String, String);
+ method public static int noteProxyOpNoThrow(android.content.Context, String, String);
+ method public static String? permissionToOp(String);
+ field public static final int MODE_ALLOWED = 0; // 0x0
+ field public static final int MODE_DEFAULT = 3; // 0x3
+ field public static final int MODE_ERRORED = 2; // 0x2
+ field public static final int MODE_IGNORED = 1; // 0x1
+ }
+
+ public final class BundleCompat {
+ method public static android.os.IBinder? getBinder(android.os.Bundle, String?);
+ method public static void putBinder(android.os.Bundle, String?, android.os.IBinder?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class ComponentActivity extends android.app.Activity implements androidx.core.view.KeyEventDispatcher.Component androidx.lifecycle.LifecycleOwner {
+ ctor public ComponentActivity();
+ method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public <T extends androidx.core.app.ComponentActivity.ExtraData> T! getExtraData(Class<T!>!);
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void putExtraData(androidx.core.app.ComponentActivity.ExtraData!);
+ method protected final boolean shouldDumpInternalState(String![]?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public boolean superDispatchKeyEvent(android.view.KeyEvent);
+ }
+
+ @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static class ComponentActivity.ExtraData {
+ ctor @Deprecated public ComponentActivity.ExtraData();
+ }
+
+ @RequiresApi(api=28) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class CoreComponentFactory extends android.app.AppComponentFactory {
+ ctor public CoreComponentFactory();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static interface CoreComponentFactory.CompatWrapped {
+ method public Object! getWrapper();
+ }
+
+ public class DialogCompat {
+ method public static android.view.View requireViewById(android.app.Dialog, int);
+ }
+
+ public class FrameMetricsAggregator {
+ ctor public FrameMetricsAggregator();
+ ctor public FrameMetricsAggregator(@androidx.core.app.FrameMetricsAggregator.MetricType int);
+ method public void add(android.app.Activity);
+ method public android.util.SparseIntArray![]? getMetrics();
+ method public android.util.SparseIntArray![]? remove(android.app.Activity);
+ method public android.util.SparseIntArray![]? reset();
+ method public android.util.SparseIntArray![]? stop();
+ field public static final int ANIMATION_DURATION = 256; // 0x100
+ field public static final int ANIMATION_INDEX = 8; // 0x8
+ field public static final int COMMAND_DURATION = 32; // 0x20
+ field public static final int COMMAND_INDEX = 5; // 0x5
+ field public static final int DELAY_DURATION = 128; // 0x80
+ field public static final int DELAY_INDEX = 7; // 0x7
+ field public static final int DRAW_DURATION = 8; // 0x8
+ field public static final int DRAW_INDEX = 3; // 0x3
+ field public static final int EVERY_DURATION = 511; // 0x1ff
+ field public static final int INPUT_DURATION = 2; // 0x2
+ field public static final int INPUT_INDEX = 1; // 0x1
+ field public static final int LAYOUT_MEASURE_DURATION = 4; // 0x4
+ field public static final int LAYOUT_MEASURE_INDEX = 2; // 0x2
+ field public static final int SWAP_DURATION = 64; // 0x40
+ field public static final int SWAP_INDEX = 6; // 0x6
+ field public static final int SYNC_DURATION = 16; // 0x10
+ field public static final int SYNC_INDEX = 4; // 0x4
+ field public static final int TOTAL_DURATION = 1; // 0x1
+ field public static final int TOTAL_INDEX = 0; // 0x0
+ }
+
+ @IntDef(flag=true, value={androidx.core.app.FrameMetricsAggregator.TOTAL_DURATION, androidx.core.app.FrameMetricsAggregator.INPUT_DURATION, androidx.core.app.FrameMetricsAggregator.LAYOUT_MEASURE_DURATION, androidx.core.app.FrameMetricsAggregator.DRAW_DURATION, androidx.core.app.FrameMetricsAggregator.SYNC_DURATION, androidx.core.app.FrameMetricsAggregator.COMMAND_DURATION, androidx.core.app.FrameMetricsAggregator.SWAP_DURATION, androidx.core.app.FrameMetricsAggregator.DELAY_DURATION, androidx.core.app.FrameMetricsAggregator.ANIMATION_DURATION, androidx.core.app.FrameMetricsAggregator.EVERY_DURATION}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface FrameMetricsAggregator.MetricType {
+ }
+
+ @Deprecated public abstract class JobIntentService extends android.app.Service {
+ ctor @Deprecated public JobIntentService();
+ method @Deprecated public static void enqueueWork(android.content.Context, Class<?>, int, android.content.Intent);
+ method @Deprecated public static void enqueueWork(android.content.Context, android.content.ComponentName, int, android.content.Intent);
+ method @Deprecated public boolean isStopped();
+ method @Deprecated public android.os.IBinder! onBind(android.content.Intent);
+ method @Deprecated protected abstract void onHandleWork(android.content.Intent);
+ method @Deprecated public boolean onStopCurrentWork();
+ method @Deprecated public void setInterruptIfStopped(boolean);
+ }
+
+ public final class MultiWindowModeChangedInfo {
+ ctor public MultiWindowModeChangedInfo(boolean);
+ ctor @RequiresApi(26) public MultiWindowModeChangedInfo(boolean, android.content.res.Configuration);
+ method @RequiresApi(26) public android.content.res.Configuration getNewConfig();
+ method public boolean isInMultiWindowMode();
+ }
+
+ public final class NavUtils {
+ method public static android.content.Intent? getParentActivityIntent(android.app.Activity);
+ method public static android.content.Intent? getParentActivityIntent(android.content.Context, Class<?>) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public static android.content.Intent? getParentActivityIntent(android.content.Context, android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public static String? getParentActivityName(android.app.Activity);
+ method public static String? getParentActivityName(android.content.Context, android.content.ComponentName) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public static void navigateUpFromSameTask(android.app.Activity);
+ method public static void navigateUpTo(android.app.Activity, android.content.Intent);
+ method public static boolean shouldUpRecreateTask(android.app.Activity, android.content.Intent);
+ field public static final String PARENT_ACTIVITY = "android.support.PARENT_ACTIVITY";
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface NotificationBuilderWithBuilderAccessor {
+ method public android.app.Notification.Builder! getBuilder();
+ }
+
+ public class NotificationChannelCompat {
+ method public boolean canBubble();
+ method public boolean canBypassDnd();
+ method public boolean canShowBadge();
+ method public android.media.AudioAttributes? getAudioAttributes();
+ method public String? getConversationId();
+ method public String? getDescription();
+ method public String? getGroup();
+ method public String getId();
+ method public int getImportance();
+ method public int getLightColor();
+ method @androidx.core.app.NotificationCompat.NotificationVisibility public int getLockscreenVisibility();
+ method public CharSequence? getName();
+ method public String? getParentChannelId();
+ method public android.net.Uri? getSound();
+ method public long[]? getVibrationPattern();
+ method public boolean isImportantConversation();
+ method public boolean shouldShowLights();
+ method public boolean shouldVibrate();
+ method public androidx.core.app.NotificationChannelCompat.Builder toBuilder();
+ field public static final String DEFAULT_CHANNEL_ID = "miscellaneous";
+ }
+
+ public static class NotificationChannelCompat.Builder {
+ ctor public NotificationChannelCompat.Builder(String, int);
+ method public androidx.core.app.NotificationChannelCompat build();
+ method public androidx.core.app.NotificationChannelCompat.Builder setConversationId(String, String);
+ method public androidx.core.app.NotificationChannelCompat.Builder setDescription(String?);
+ method public androidx.core.app.NotificationChannelCompat.Builder setGroup(String?);
+ method public androidx.core.app.NotificationChannelCompat.Builder setImportance(int);
+ method public androidx.core.app.NotificationChannelCompat.Builder setLightColor(int);
+ method public androidx.core.app.NotificationChannelCompat.Builder setLightsEnabled(boolean);
+ method public androidx.core.app.NotificationChannelCompat.Builder setName(CharSequence?);
+ method public androidx.core.app.NotificationChannelCompat.Builder setShowBadge(boolean);
+ method public androidx.core.app.NotificationChannelCompat.Builder setSound(android.net.Uri?, android.media.AudioAttributes?);
+ method public androidx.core.app.NotificationChannelCompat.Builder setVibrationEnabled(boolean);
+ method public androidx.core.app.NotificationChannelCompat.Builder setVibrationPattern(long[]?);
+ }
+
+ public class NotificationChannelGroupCompat {
+ method public java.util.List<androidx.core.app.NotificationChannelCompat!> getChannels();
+ method public String? getDescription();
+ method public String getId();
+ method public CharSequence? getName();
+ method public boolean isBlocked();
+ method public androidx.core.app.NotificationChannelGroupCompat.Builder toBuilder();
+ }
+
+ public static class NotificationChannelGroupCompat.Builder {
+ ctor public NotificationChannelGroupCompat.Builder(String);
+ method public androidx.core.app.NotificationChannelGroupCompat build();
+ method public androidx.core.app.NotificationChannelGroupCompat.Builder setDescription(String?);
+ method public androidx.core.app.NotificationChannelGroupCompat.Builder setName(CharSequence?);
+ }
+
+ public class NotificationCompat {
+ ctor @Deprecated public NotificationCompat();
+ method public static androidx.core.app.NotificationCompat.Action? getAction(android.app.Notification, int);
+ method public static int getActionCount(android.app.Notification);
+ method public static boolean getAllowSystemGeneratedContextualActions(android.app.Notification);
+ method public static boolean getAutoCancel(android.app.Notification);
+ method public static int getBadgeIconType(android.app.Notification);
+ method public static androidx.core.app.NotificationCompat.BubbleMetadata? getBubbleMetadata(android.app.Notification);
+ method public static String? getCategory(android.app.Notification);
+ method public static String? getChannelId(android.app.Notification);
+ method public static int getColor(android.app.Notification);
+ method @RequiresApi(19) public static CharSequence? getContentInfo(android.app.Notification);
+ method @RequiresApi(19) public static CharSequence? getContentText(android.app.Notification);
+ method @RequiresApi(19) public static CharSequence? getContentTitle(android.app.Notification);
+ method public static android.os.Bundle? getExtras(android.app.Notification);
+ method public static String? getGroup(android.app.Notification);
+ method @androidx.core.app.NotificationCompat.GroupAlertBehavior public static int getGroupAlertBehavior(android.app.Notification);
+ method @RequiresApi(21) public static java.util.List<androidx.core.app.NotificationCompat.Action!> getInvisibleActions(android.app.Notification);
+ method public static boolean getLocalOnly(android.app.Notification);
+ method public static androidx.core.content.LocusIdCompat? getLocusId(android.app.Notification);
+ method public static boolean getOngoing(android.app.Notification);
+ method public static boolean getOnlyAlertOnce(android.app.Notification);
+ method public static java.util.List<androidx.core.app.Person!> getPeople(android.app.Notification);
+ method public static android.app.Notification? getPublicVersion(android.app.Notification);
+ method public static CharSequence? getSettingsText(android.app.Notification);
+ method public static String? getShortcutId(android.app.Notification);
+ method @RequiresApi(19) public static boolean getShowWhen(android.app.Notification);
+ method public static String? getSortKey(android.app.Notification);
+ method @RequiresApi(19) public static CharSequence? getSubText(android.app.Notification);
+ method public static long getTimeoutAfter(android.app.Notification);
+ method @RequiresApi(19) public static boolean getUsesChronometer(android.app.Notification);
+ method @androidx.core.app.NotificationCompat.NotificationVisibility public static int getVisibility(android.app.Notification);
+ method public static boolean isGroupSummary(android.app.Notification);
+ field public static final int BADGE_ICON_LARGE = 2; // 0x2
+ field public static final int BADGE_ICON_NONE = 0; // 0x0
+ field public static final int BADGE_ICON_SMALL = 1; // 0x1
+ field public static final String CATEGORY_ALARM = "alarm";
+ field public static final String CATEGORY_CALL = "call";
+ field public static final String CATEGORY_EMAIL = "email";
+ field public static final String CATEGORY_ERROR = "err";
+ field public static final String CATEGORY_EVENT = "event";
+ field public static final String CATEGORY_LOCATION_SHARING = "location_sharing";
+ field public static final String CATEGORY_MESSAGE = "msg";
+ field public static final String CATEGORY_MISSED_CALL = "missed_call";
+ field public static final String CATEGORY_NAVIGATION = "navigation";
+ field public static final String CATEGORY_PROGRESS = "progress";
+ field public static final String CATEGORY_PROMO = "promo";
+ field public static final String CATEGORY_RECOMMENDATION = "recommendation";
+ field public static final String CATEGORY_REMINDER = "reminder";
+ field public static final String CATEGORY_SERVICE = "service";
+ field public static final String CATEGORY_SOCIAL = "social";
+ field public static final String CATEGORY_STATUS = "status";
+ field public static final String CATEGORY_STOPWATCH = "stopwatch";
+ field public static final String CATEGORY_SYSTEM = "sys";
+ field public static final String CATEGORY_TRANSPORT = "transport";
+ field public static final String CATEGORY_WORKOUT = "workout";
+ field @ColorInt public static final int COLOR_DEFAULT = 0; // 0x0
+ field public static final int DEFAULT_ALL = -1; // 0xffffffff
+ field public static final int DEFAULT_LIGHTS = 4; // 0x4
+ field public static final int DEFAULT_SOUND = 1; // 0x1
+ field public static final int DEFAULT_VIBRATE = 2; // 0x2
+ field public static final String EXTRA_AUDIO_CONTENTS_URI = "android.audioContents";
+ field public static final String EXTRA_BACKGROUND_IMAGE_URI = "android.backgroundImageUri";
+ field public static final String EXTRA_BIG_TEXT = "android.bigText";
+ field public static final String EXTRA_CHANNEL_GROUP_ID = "android.intent.extra.CHANNEL_GROUP_ID";
+ field public static final String EXTRA_CHANNEL_ID = "android.intent.extra.CHANNEL_ID";
+ field public static final String EXTRA_CHRONOMETER_COUNT_DOWN = "android.chronometerCountDown";
+ field public static final String EXTRA_COLORIZED = "android.colorized";
+ field public static final String EXTRA_COMPACT_ACTIONS = "android.compactActions";
+ field public static final String EXTRA_COMPAT_TEMPLATE = "androidx.core.app.extra.COMPAT_TEMPLATE";
+ field public static final String EXTRA_CONVERSATION_TITLE = "android.conversationTitle";
+ field public static final String EXTRA_HIDDEN_CONVERSATION_TITLE = "android.hiddenConversationTitle";
+ field public static final String EXTRA_HISTORIC_MESSAGES = "android.messages.historic";
+ field public static final String EXTRA_INFO_TEXT = "android.infoText";
+ field public static final String EXTRA_IS_GROUP_CONVERSATION = "android.isGroupConversation";
+ field public static final String EXTRA_LARGE_ICON = "android.largeIcon";
+ field public static final String EXTRA_LARGE_ICON_BIG = "android.largeIcon.big";
+ field public static final String EXTRA_MEDIA_SESSION = "android.mediaSession";
+ field public static final String EXTRA_MESSAGES = "android.messages";
+ field public static final String EXTRA_MESSAGING_STYLE_USER = "android.messagingStyleUser";
+ field public static final String EXTRA_NOTIFICATION_ID = "android.intent.extra.NOTIFICATION_ID";
+ field public static final String EXTRA_NOTIFICATION_TAG = "android.intent.extra.NOTIFICATION_TAG";
+ field @Deprecated public static final String EXTRA_PEOPLE = "android.people";
+ field public static final String EXTRA_PEOPLE_LIST = "android.people.list";
+ field public static final String EXTRA_PICTURE = "android.picture";
+ field public static final String EXTRA_PICTURE_CONTENT_DESCRIPTION = "android.pictureContentDescription";
+ field public static final String EXTRA_PROGRESS = "android.progress";
+ field public static final String EXTRA_PROGRESS_INDETERMINATE = "android.progressIndeterminate";
+ field public static final String EXTRA_PROGRESS_MAX = "android.progressMax";
+ field public static final String EXTRA_REMOTE_INPUT_HISTORY = "android.remoteInputHistory";
+ field public static final String EXTRA_SELF_DISPLAY_NAME = "android.selfDisplayName";
+ field public static final String EXTRA_SHOW_BIG_PICTURE_WHEN_COLLAPSED = "android.showBigPictureWhenCollapsed";
+ field public static final String EXTRA_SHOW_CHRONOMETER = "android.showChronometer";
+ field public static final String EXTRA_SHOW_WHEN = "android.showWhen";
+ field public static final String EXTRA_SMALL_ICON = "android.icon";
+ field public static final String EXTRA_SUB_TEXT = "android.subText";
+ field public static final String EXTRA_SUMMARY_TEXT = "android.summaryText";
+ field public static final String EXTRA_TEMPLATE = "android.template";
+ field public static final String EXTRA_TEXT = "android.text";
+ field public static final String EXTRA_TEXT_LINES = "android.textLines";
+ field public static final String EXTRA_TITLE = "android.title";
+ field public static final String EXTRA_TITLE_BIG = "android.title.big";
+ field public static final int FLAG_AUTO_CANCEL = 16; // 0x10
+ field public static final int FLAG_BUBBLE = 4096; // 0x1000
+ field public static final int FLAG_FOREGROUND_SERVICE = 64; // 0x40
+ field public static final int FLAG_GROUP_SUMMARY = 512; // 0x200
+ field @Deprecated public static final int FLAG_HIGH_PRIORITY = 128; // 0x80
+ field public static final int FLAG_INSISTENT = 4; // 0x4
+ field public static final int FLAG_LOCAL_ONLY = 256; // 0x100
+ field public static final int FLAG_NO_CLEAR = 32; // 0x20
+ field public static final int FLAG_ONGOING_EVENT = 2; // 0x2
+ field public static final int FLAG_ONLY_ALERT_ONCE = 8; // 0x8
+ field public static final int FLAG_SHOW_LIGHTS = 1; // 0x1
+ field public static final int FOREGROUND_SERVICE_DEFAULT = 0; // 0x0
+ field public static final int FOREGROUND_SERVICE_DEFERRED = 2; // 0x2
+ field public static final int FOREGROUND_SERVICE_IMMEDIATE = 1; // 0x1
+ field public static final int GROUP_ALERT_ALL = 0; // 0x0
+ field public static final int GROUP_ALERT_CHILDREN = 2; // 0x2
+ field public static final int GROUP_ALERT_SUMMARY = 1; // 0x1
+ field public static final String GROUP_KEY_SILENT = "silent";
+ field public static final String INTENT_CATEGORY_NOTIFICATION_PREFERENCES = "android.intent.category.NOTIFICATION_PREFERENCES";
+ field public static final int PRIORITY_DEFAULT = 0; // 0x0
+ field public static final int PRIORITY_HIGH = 1; // 0x1
+ field public static final int PRIORITY_LOW = -1; // 0xffffffff
+ field public static final int PRIORITY_MAX = 2; // 0x2
+ field public static final int PRIORITY_MIN = -2; // 0xfffffffe
+ field public static final int STREAM_DEFAULT = -1; // 0xffffffff
+ field public static final int VISIBILITY_PRIVATE = 0; // 0x0
+ field public static final int VISIBILITY_PUBLIC = 1; // 0x1
+ field public static final int VISIBILITY_SECRET = -1; // 0xffffffff
+ }
+
+ public static class NotificationCompat.Action {
+ ctor public NotificationCompat.Action(int, CharSequence?, android.app.PendingIntent?);
+ ctor public NotificationCompat.Action(androidx.core.graphics.drawable.IconCompat?, CharSequence?, android.app.PendingIntent?);
+ method public android.app.PendingIntent? getActionIntent();
+ method public boolean getAllowGeneratedReplies();
+ method public androidx.core.app.RemoteInput![]? getDataOnlyRemoteInputs();
+ method public android.os.Bundle getExtras();
+ method @Deprecated public int getIcon();
+ method public androidx.core.graphics.drawable.IconCompat? getIconCompat();
+ method public androidx.core.app.RemoteInput![]? getRemoteInputs();
+ method @androidx.core.app.NotificationCompat.Action.SemanticAction public int getSemanticAction();
+ method public boolean getShowsUserInterface();
+ method public CharSequence? getTitle();
+ method public boolean isAuthenticationRequired();
+ method public boolean isContextual();
+ field public static final int SEMANTIC_ACTION_ARCHIVE = 5; // 0x5
+ field public static final int SEMANTIC_ACTION_CALL = 10; // 0xa
+ field public static final int SEMANTIC_ACTION_DELETE = 4; // 0x4
+ field public static final int SEMANTIC_ACTION_MARK_AS_READ = 2; // 0x2
+ field public static final int SEMANTIC_ACTION_MARK_AS_UNREAD = 3; // 0x3
+ field public static final int SEMANTIC_ACTION_MUTE = 6; // 0x6
+ field public static final int SEMANTIC_ACTION_NONE = 0; // 0x0
+ field public static final int SEMANTIC_ACTION_REPLY = 1; // 0x1
+ field public static final int SEMANTIC_ACTION_THUMBS_DOWN = 9; // 0x9
+ field public static final int SEMANTIC_ACTION_THUMBS_UP = 8; // 0x8
+ field public static final int SEMANTIC_ACTION_UNMUTE = 7; // 0x7
+ field public android.app.PendingIntent! actionIntent;
+ field @Deprecated public int icon;
+ field public CharSequence! title;
+ }
+
+ public static final class NotificationCompat.Action.Builder {
+ ctor public NotificationCompat.Action.Builder(androidx.core.graphics.drawable.IconCompat?, CharSequence?, android.app.PendingIntent?);
+ ctor public NotificationCompat.Action.Builder(int, CharSequence?, android.app.PendingIntent?);
+ ctor public NotificationCompat.Action.Builder(androidx.core.app.NotificationCompat.Action);
+ method public androidx.core.app.NotificationCompat.Action.Builder addExtras(android.os.Bundle?);
+ method public androidx.core.app.NotificationCompat.Action.Builder addRemoteInput(androidx.core.app.RemoteInput?);
+ method public androidx.core.app.NotificationCompat.Action build();
+ method public androidx.core.app.NotificationCompat.Action.Builder extend(androidx.core.app.NotificationCompat.Action.Extender);
+ method @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.app.NotificationCompat.Action.Builder fromAndroidAction(android.app.Notification.Action);
+ method public android.os.Bundle getExtras();
+ method public androidx.core.app.NotificationCompat.Action.Builder setAllowGeneratedReplies(boolean);
+ method public androidx.core.app.NotificationCompat.Action.Builder setAuthenticationRequired(boolean);
+ method public androidx.core.app.NotificationCompat.Action.Builder setContextual(boolean);
+ method public androidx.core.app.NotificationCompat.Action.Builder setSemanticAction(@androidx.core.app.NotificationCompat.Action.SemanticAction int);
+ method public androidx.core.app.NotificationCompat.Action.Builder setShowsUserInterface(boolean);
+ }
+
+ public static interface NotificationCompat.Action.Extender {
+ method public androidx.core.app.NotificationCompat.Action.Builder extend(androidx.core.app.NotificationCompat.Action.Builder);
+ }
+
+ @IntDef({androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_NONE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_REPLY, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_READ, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_MARK_AS_UNREAD, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_DELETE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_ARCHIVE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_MUTE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_UNMUTE, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_THUMBS_UP, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_THUMBS_DOWN, androidx.core.app.NotificationCompat.Action.SEMANTIC_ACTION_CALL}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationCompat.Action.SemanticAction {
+ }
+
+ public static final class NotificationCompat.Action.WearableExtender implements androidx.core.app.NotificationCompat.Action.Extender {
+ ctor public NotificationCompat.Action.WearableExtender();
+ ctor public NotificationCompat.Action.WearableExtender(androidx.core.app.NotificationCompat.Action);
+ method public androidx.core.app.NotificationCompat.Action.WearableExtender clone();
+ method public androidx.core.app.NotificationCompat.Action.Builder extend(androidx.core.app.NotificationCompat.Action.Builder);
+ method @Deprecated public CharSequence? getCancelLabel();
+ method @Deprecated public CharSequence? getConfirmLabel();
+ method public boolean getHintDisplayActionInline();
+ method public boolean getHintLaunchesActivity();
+ method @Deprecated public CharSequence? getInProgressLabel();
+ method public boolean isAvailableOffline();
+ method public androidx.core.app.NotificationCompat.Action.WearableExtender setAvailableOffline(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.Action.WearableExtender setCancelLabel(CharSequence?);
+ method @Deprecated public androidx.core.app.NotificationCompat.Action.WearableExtender setConfirmLabel(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Action.WearableExtender setHintDisplayActionInline(boolean);
+ method public androidx.core.app.NotificationCompat.Action.WearableExtender setHintLaunchesActivity(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.Action.WearableExtender setInProgressLabel(CharSequence?);
+ }
+
+ @IntDef({androidx.core.app.NotificationCompat.BADGE_ICON_NONE, androidx.core.app.NotificationCompat.BADGE_ICON_SMALL, androidx.core.app.NotificationCompat.BADGE_ICON_LARGE}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationCompat.BadgeIconType {
+ }
+
+ public static class NotificationCompat.BigPictureStyle extends androidx.core.app.NotificationCompat.Style {
+ ctor public NotificationCompat.BigPictureStyle();
+ ctor public NotificationCompat.BigPictureStyle(androidx.core.app.NotificationCompat.Builder?);
+ method public androidx.core.app.NotificationCompat.BigPictureStyle bigLargeIcon(android.graphics.Bitmap?);
+ method public androidx.core.app.NotificationCompat.BigPictureStyle bigPicture(android.graphics.Bitmap?);
+ method public androidx.core.app.NotificationCompat.BigPictureStyle setBigContentTitle(CharSequence?);
+ method @RequiresApi(31) public androidx.core.app.NotificationCompat.BigPictureStyle setContentDescription(CharSequence?);
+ method public androidx.core.app.NotificationCompat.BigPictureStyle setSummaryText(CharSequence?);
+ method @RequiresApi(31) public androidx.core.app.NotificationCompat.BigPictureStyle showBigPictureWhenCollapsed(boolean);
+ }
+
+ public static class NotificationCompat.BigTextStyle extends androidx.core.app.NotificationCompat.Style {
+ ctor public NotificationCompat.BigTextStyle();
+ ctor public NotificationCompat.BigTextStyle(androidx.core.app.NotificationCompat.Builder?);
+ method public androidx.core.app.NotificationCompat.BigTextStyle bigText(CharSequence?);
+ method public androidx.core.app.NotificationCompat.BigTextStyle setBigContentTitle(CharSequence?);
+ method public androidx.core.app.NotificationCompat.BigTextStyle setSummaryText(CharSequence?);
+ }
+
+ public static final class NotificationCompat.BubbleMetadata {
+ method public static androidx.core.app.NotificationCompat.BubbleMetadata? fromPlatform(android.app.Notification.BubbleMetadata?);
+ method public boolean getAutoExpandBubble();
+ method public android.app.PendingIntent? getDeleteIntent();
+ method @Dimension(unit=androidx.annotation.Dimension.DP) public int getDesiredHeight();
+ method @DimenRes public int getDesiredHeightResId();
+ method public androidx.core.graphics.drawable.IconCompat? getIcon();
+ method public android.app.PendingIntent? getIntent();
+ method public String? getShortcutId();
+ method public boolean isNotificationSuppressed();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setFlags(int);
+ method public static android.app.Notification.BubbleMetadata? toPlatform(androidx.core.app.NotificationCompat.BubbleMetadata?);
+ }
+
+ public static final class NotificationCompat.BubbleMetadata.Builder {
+ ctor @Deprecated public NotificationCompat.BubbleMetadata.Builder();
+ ctor @RequiresApi(30) public NotificationCompat.BubbleMetadata.Builder(String);
+ ctor public NotificationCompat.BubbleMetadata.Builder(android.app.PendingIntent, androidx.core.graphics.drawable.IconCompat);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata build();
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setAutoExpandBubble(boolean);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setDeleteIntent(android.app.PendingIntent?);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setDesiredHeight(@Dimension(unit=androidx.annotation.Dimension.DP) int);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setDesiredHeightResId(@DimenRes int);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setIcon(androidx.core.graphics.drawable.IconCompat);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setIntent(android.app.PendingIntent);
+ method public androidx.core.app.NotificationCompat.BubbleMetadata.Builder setSuppressNotification(boolean);
+ }
+
+ public static class NotificationCompat.Builder {
+ ctor @RequiresApi(19) public NotificationCompat.Builder(android.content.Context, android.app.Notification);
+ ctor public NotificationCompat.Builder(android.content.Context, String);
+ ctor @Deprecated public NotificationCompat.Builder(android.content.Context);
+ method public androidx.core.app.NotificationCompat.Builder addAction(int, CharSequence?, android.app.PendingIntent?);
+ method public androidx.core.app.NotificationCompat.Builder addAction(androidx.core.app.NotificationCompat.Action?);
+ method public androidx.core.app.NotificationCompat.Builder addExtras(android.os.Bundle?);
+ method @RequiresApi(21) public androidx.core.app.NotificationCompat.Builder addInvisibleAction(int, CharSequence?, android.app.PendingIntent?);
+ method @RequiresApi(21) public androidx.core.app.NotificationCompat.Builder addInvisibleAction(androidx.core.app.NotificationCompat.Action?);
+ method @Deprecated public androidx.core.app.NotificationCompat.Builder addPerson(String?);
+ method public androidx.core.app.NotificationCompat.Builder addPerson(androidx.core.app.Person?);
+ method public android.app.Notification build();
+ method public androidx.core.app.NotificationCompat.Builder clearActions();
+ method public androidx.core.app.NotificationCompat.Builder clearInvisibleActions();
+ method public androidx.core.app.NotificationCompat.Builder clearPeople();
+ method public android.widget.RemoteViews? createBigContentView();
+ method public android.widget.RemoteViews? createContentView();
+ method public android.widget.RemoteViews? createHeadsUpContentView();
+ method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Extender);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.widget.RemoteViews! getBigContentView();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.core.app.NotificationCompat.BubbleMetadata? getBubbleMetadata();
+ method @ColorInt @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int getColor();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.widget.RemoteViews! getContentView();
+ method public android.os.Bundle getExtras();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int getForegroundServiceBehavior();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.widget.RemoteViews! getHeadsUpContentView();
+ method @Deprecated public android.app.Notification getNotification();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int getPriority();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public long getWhenIfShowing();
+ method protected static CharSequence? limitCharSequenceLength(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setAllowSystemGeneratedContextualActions(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setAutoCancel(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setBadgeIconType(@androidx.core.app.NotificationCompat.BadgeIconType int);
+ method public androidx.core.app.NotificationCompat.Builder setBubbleMetadata(androidx.core.app.NotificationCompat.BubbleMetadata?);
+ method public androidx.core.app.NotificationCompat.Builder setCategory(String?);
+ method public androidx.core.app.NotificationCompat.Builder setChannelId(String);
+ method @RequiresApi(24) public androidx.core.app.NotificationCompat.Builder setChronometerCountDown(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setColor(@ColorInt int);
+ method public androidx.core.app.NotificationCompat.Builder setColorized(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setContent(android.widget.RemoteViews?);
+ method public androidx.core.app.NotificationCompat.Builder setContentInfo(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setContentIntent(android.app.PendingIntent?);
+ method public androidx.core.app.NotificationCompat.Builder setContentText(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setContentTitle(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setCustomBigContentView(android.widget.RemoteViews?);
+ method public androidx.core.app.NotificationCompat.Builder setCustomContentView(android.widget.RemoteViews?);
+ method public androidx.core.app.NotificationCompat.Builder setCustomHeadsUpContentView(android.widget.RemoteViews?);
+ method public androidx.core.app.NotificationCompat.Builder setDefaults(int);
+ method public androidx.core.app.NotificationCompat.Builder setDeleteIntent(android.app.PendingIntent?);
+ method public androidx.core.app.NotificationCompat.Builder setExtras(android.os.Bundle?);
+ method public androidx.core.app.NotificationCompat.Builder setForegroundServiceBehavior(@androidx.core.app.NotificationCompat.ServiceNotificationBehavior int);
+ method public androidx.core.app.NotificationCompat.Builder setFullScreenIntent(android.app.PendingIntent?, boolean);
+ method public androidx.core.app.NotificationCompat.Builder setGroup(String?);
+ method public androidx.core.app.NotificationCompat.Builder setGroupAlertBehavior(@androidx.core.app.NotificationCompat.GroupAlertBehavior int);
+ method public androidx.core.app.NotificationCompat.Builder setGroupSummary(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setLargeIcon(android.graphics.Bitmap?);
+ method public androidx.core.app.NotificationCompat.Builder setLights(@ColorInt int, int, int);
+ method public androidx.core.app.NotificationCompat.Builder setLocalOnly(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setLocusId(androidx.core.content.LocusIdCompat?);
+ method @Deprecated public androidx.core.app.NotificationCompat.Builder setNotificationSilent();
+ method public androidx.core.app.NotificationCompat.Builder setNumber(int);
+ method public androidx.core.app.NotificationCompat.Builder setOngoing(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setOnlyAlertOnce(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setPriority(int);
+ method public androidx.core.app.NotificationCompat.Builder setProgress(int, int, boolean);
+ method public androidx.core.app.NotificationCompat.Builder setPublicVersion(android.app.Notification?);
+ method public androidx.core.app.NotificationCompat.Builder setRemoteInputHistory(CharSequence![]?);
+ method public androidx.core.app.NotificationCompat.Builder setSettingsText(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setShortcutId(String?);
+ method public androidx.core.app.NotificationCompat.Builder setShortcutInfo(androidx.core.content.pm.ShortcutInfoCompat?);
+ method public androidx.core.app.NotificationCompat.Builder setShowWhen(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setSilent(boolean);
+ method @RequiresApi(23) public androidx.core.app.NotificationCompat.Builder setSmallIcon(androidx.core.graphics.drawable.IconCompat);
+ method public androidx.core.app.NotificationCompat.Builder setSmallIcon(int);
+ method public androidx.core.app.NotificationCompat.Builder setSmallIcon(int, int);
+ method public androidx.core.app.NotificationCompat.Builder setSortKey(String?);
+ method public androidx.core.app.NotificationCompat.Builder setSound(android.net.Uri?);
+ method public androidx.core.app.NotificationCompat.Builder setSound(android.net.Uri?, @androidx.core.app.NotificationCompat.StreamType int);
+ method public androidx.core.app.NotificationCompat.Builder setStyle(androidx.core.app.NotificationCompat.Style?);
+ method public androidx.core.app.NotificationCompat.Builder setSubText(CharSequence?);
+ method public androidx.core.app.NotificationCompat.Builder setTicker(CharSequence?);
+ method @Deprecated public androidx.core.app.NotificationCompat.Builder setTicker(CharSequence?, android.widget.RemoteViews?);
+ method public androidx.core.app.NotificationCompat.Builder setTimeoutAfter(long);
+ method public androidx.core.app.NotificationCompat.Builder setUsesChronometer(boolean);
+ method public androidx.core.app.NotificationCompat.Builder setVibrate(long[]?);
+ method public androidx.core.app.NotificationCompat.Builder setVisibility(@androidx.core.app.NotificationCompat.NotificationVisibility int);
+ method public androidx.core.app.NotificationCompat.Builder setWhen(long);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public java.util.ArrayList<androidx.core.app.NotificationCompat.Action!>! mActions;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.content.Context! mContext;
+ field @Deprecated public java.util.ArrayList<java.lang.String!>! mPeople;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public java.util.ArrayList<androidx.core.app.Person!> mPersonList;
+ }
+
+ public static final class NotificationCompat.CarExtender implements androidx.core.app.NotificationCompat.Extender {
+ ctor public NotificationCompat.CarExtender();
+ ctor public NotificationCompat.CarExtender(android.app.Notification);
+ method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
+ method @ColorInt public int getColor();
+ method public android.graphics.Bitmap? getLargeIcon();
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation? getUnreadConversation();
+ method public androidx.core.app.NotificationCompat.CarExtender setColor(@ColorInt int);
+ method public androidx.core.app.NotificationCompat.CarExtender setLargeIcon(android.graphics.Bitmap?);
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender setUnreadConversation(androidx.core.app.NotificationCompat.CarExtender.UnreadConversation?);
+ }
+
+ @Deprecated public static class NotificationCompat.CarExtender.UnreadConversation {
+ method @Deprecated public long getLatestTimestamp();
+ method @Deprecated public String![]? getMessages();
+ method @Deprecated public String? getParticipant();
+ method @Deprecated public String![]? getParticipants();
+ method @Deprecated public android.app.PendingIntent? getReadPendingIntent();
+ method @Deprecated public androidx.core.app.RemoteInput? getRemoteInput();
+ method @Deprecated public android.app.PendingIntent? getReplyPendingIntent();
+ }
+
+ @Deprecated public static class NotificationCompat.CarExtender.UnreadConversation.Builder {
+ ctor @Deprecated public NotificationCompat.CarExtender.UnreadConversation.Builder(String);
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder addMessage(String?);
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation build();
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder setLatestTimestamp(long);
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder setReadPendingIntent(android.app.PendingIntent?);
+ method @Deprecated public androidx.core.app.NotificationCompat.CarExtender.UnreadConversation.Builder setReplyAction(android.app.PendingIntent?, androidx.core.app.RemoteInput?);
+ }
+
+ public static class NotificationCompat.DecoratedCustomViewStyle extends androidx.core.app.NotificationCompat.Style {
+ ctor public NotificationCompat.DecoratedCustomViewStyle();
+ }
+
+ public static interface NotificationCompat.Extender {
+ method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
+ }
+
+ @IntDef({androidx.core.app.NotificationCompat.GROUP_ALERT_ALL, androidx.core.app.NotificationCompat.GROUP_ALERT_SUMMARY, androidx.core.app.NotificationCompat.GROUP_ALERT_CHILDREN}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationCompat.GroupAlertBehavior {
+ }
+
+ public static class NotificationCompat.InboxStyle extends androidx.core.app.NotificationCompat.Style {
+ ctor public NotificationCompat.InboxStyle();
+ ctor public NotificationCompat.InboxStyle(androidx.core.app.NotificationCompat.Builder?);
+ method public androidx.core.app.NotificationCompat.InboxStyle addLine(CharSequence?);
+ method public androidx.core.app.NotificationCompat.InboxStyle setBigContentTitle(CharSequence?);
+ method public androidx.core.app.NotificationCompat.InboxStyle setSummaryText(CharSequence?);
+ }
+
+ public static class NotificationCompat.MessagingStyle extends androidx.core.app.NotificationCompat.Style {
+ ctor @Deprecated public NotificationCompat.MessagingStyle(CharSequence);
+ ctor public NotificationCompat.MessagingStyle(androidx.core.app.Person);
+ method public androidx.core.app.NotificationCompat.MessagingStyle addHistoricMessage(androidx.core.app.NotificationCompat.MessagingStyle.Message?);
+ method @Deprecated public androidx.core.app.NotificationCompat.MessagingStyle addMessage(CharSequence?, long, CharSequence?);
+ method public androidx.core.app.NotificationCompat.MessagingStyle addMessage(CharSequence?, long, androidx.core.app.Person?);
+ method public androidx.core.app.NotificationCompat.MessagingStyle addMessage(androidx.core.app.NotificationCompat.MessagingStyle.Message?);
+ method public static androidx.core.app.NotificationCompat.MessagingStyle? extractMessagingStyleFromNotification(android.app.Notification);
+ method public CharSequence? getConversationTitle();
+ method public java.util.List<androidx.core.app.NotificationCompat.MessagingStyle.Message!> getHistoricMessages();
+ method public java.util.List<androidx.core.app.NotificationCompat.MessagingStyle.Message!> getMessages();
+ method public androidx.core.app.Person getUser();
+ method @Deprecated public CharSequence? getUserDisplayName();
+ method public boolean isGroupConversation();
+ method public androidx.core.app.NotificationCompat.MessagingStyle setConversationTitle(CharSequence?);
+ method public androidx.core.app.NotificationCompat.MessagingStyle setGroupConversation(boolean);
+ field public static final int MAXIMUM_RETAINED_MESSAGES = 25; // 0x19
+ }
+
+ public static final class NotificationCompat.MessagingStyle.Message {
+ ctor public NotificationCompat.MessagingStyle.Message(CharSequence?, long, androidx.core.app.Person?);
+ ctor @Deprecated public NotificationCompat.MessagingStyle.Message(CharSequence?, long, CharSequence?);
+ method public String? getDataMimeType();
+ method public android.net.Uri? getDataUri();
+ method public android.os.Bundle getExtras();
+ method public androidx.core.app.Person? getPerson();
+ method @Deprecated public CharSequence? getSender();
+ method public CharSequence? getText();
+ method public long getTimestamp();
+ method public androidx.core.app.NotificationCompat.MessagingStyle.Message setData(String?, android.net.Uri?);
+ }
+
+ @IntDef({androidx.core.app.NotificationCompat.VISIBILITY_PUBLIC, androidx.core.app.NotificationCompat.VISIBILITY_PRIVATE, androidx.core.app.NotificationCompat.VISIBILITY_SECRET}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationCompat.NotificationVisibility {
+ }
+
+ @IntDef({androidx.core.app.NotificationCompat.FOREGROUND_SERVICE_DEFAULT, androidx.core.app.NotificationCompat.FOREGROUND_SERVICE_IMMEDIATE, androidx.core.app.NotificationCompat.FOREGROUND_SERVICE_DEFERRED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationCompat.ServiceNotificationBehavior {
+ }
+
+ @IntDef({android.media.AudioManager.STREAM_VOICE_CALL, android.media.AudioManager.STREAM_SYSTEM, android.media.AudioManager.STREAM_RING, android.media.AudioManager.STREAM_MUSIC, android.media.AudioManager.STREAM_ALARM, android.media.AudioManager.STREAM_NOTIFICATION, android.media.AudioManager.STREAM_DTMF, android.media.AudioManager.STREAM_ACCESSIBILITY}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface NotificationCompat.StreamType {
+ }
+
+ public abstract static class NotificationCompat.Style {
+ ctor public NotificationCompat.Style();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void addCompatExtras(android.os.Bundle);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void apply(androidx.core.app.NotificationBuilderWithBuilderAccessor!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.widget.RemoteViews applyStandardTemplate(boolean, int, boolean);
+ method public android.app.Notification? build();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void buildIntoRemoteViews(android.widget.RemoteViews!, android.widget.RemoteViews!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) protected void clearCompatExtraKeys(android.os.Bundle);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.graphics.Bitmap! createColoredBitmap(int, int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public boolean displayCustomViewInline();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.app.NotificationCompat.Style? extractStyleFromNotification(android.app.Notification);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) protected String? getClassName();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.widget.RemoteViews! makeBigContentView(androidx.core.app.NotificationBuilderWithBuilderAccessor!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.widget.RemoteViews! makeContentView(androidx.core.app.NotificationBuilderWithBuilderAccessor!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.widget.RemoteViews! makeHeadsUpContentView(androidx.core.app.NotificationBuilderWithBuilderAccessor!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) protected void restoreFromCompatExtras(android.os.Bundle);
+ method public void setBuilder(androidx.core.app.NotificationCompat.Builder?);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) protected androidx.core.app.NotificationCompat.Builder! mBuilder;
+ }
+
+ public static final class NotificationCompat.WearableExtender implements androidx.core.app.NotificationCompat.Extender {
+ ctor public NotificationCompat.WearableExtender();
+ ctor public NotificationCompat.WearableExtender(android.app.Notification);
+ method public androidx.core.app.NotificationCompat.WearableExtender addAction(androidx.core.app.NotificationCompat.Action);
+ method public androidx.core.app.NotificationCompat.WearableExtender addActions(java.util.List<androidx.core.app.NotificationCompat.Action!>);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender addPage(android.app.Notification);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender addPages(java.util.List<android.app.Notification!>);
+ method public androidx.core.app.NotificationCompat.WearableExtender clearActions();
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender clearPages();
+ method public androidx.core.app.NotificationCompat.WearableExtender clone();
+ method public androidx.core.app.NotificationCompat.Builder extend(androidx.core.app.NotificationCompat.Builder);
+ method public java.util.List<androidx.core.app.NotificationCompat.Action!> getActions();
+ method @Deprecated public android.graphics.Bitmap? getBackground();
+ method public String? getBridgeTag();
+ method public int getContentAction();
+ method @Deprecated public int getContentIcon();
+ method @Deprecated public int getContentIconGravity();
+ method public boolean getContentIntentAvailableOffline();
+ method @Deprecated public int getCustomContentHeight();
+ method @Deprecated public int getCustomSizePreset();
+ method public String? getDismissalId();
+ method @Deprecated public android.app.PendingIntent? getDisplayIntent();
+ method @Deprecated public int getGravity();
+ method @Deprecated public boolean getHintAmbientBigPicture();
+ method @Deprecated public boolean getHintAvoidBackgroundClipping();
+ method public boolean getHintContentIntentLaunchesActivity();
+ method @Deprecated public boolean getHintHideIcon();
+ method @Deprecated public int getHintScreenTimeout();
+ method @Deprecated public boolean getHintShowBackgroundOnly();
+ method @Deprecated public java.util.List<android.app.Notification!> getPages();
+ method public boolean getStartScrollBottom();
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setBackground(android.graphics.Bitmap?);
+ method public androidx.core.app.NotificationCompat.WearableExtender setBridgeTag(String?);
+ method public androidx.core.app.NotificationCompat.WearableExtender setContentAction(int);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setContentIcon(int);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setContentIconGravity(int);
+ method public androidx.core.app.NotificationCompat.WearableExtender setContentIntentAvailableOffline(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setCustomContentHeight(int);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setCustomSizePreset(int);
+ method public androidx.core.app.NotificationCompat.WearableExtender setDismissalId(String?);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setDisplayIntent(android.app.PendingIntent?);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setGravity(int);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintAmbientBigPicture(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintAvoidBackgroundClipping(boolean);
+ method public androidx.core.app.NotificationCompat.WearableExtender setHintContentIntentLaunchesActivity(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintHideIcon(boolean);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintScreenTimeout(int);
+ method @Deprecated public androidx.core.app.NotificationCompat.WearableExtender setHintShowBackgroundOnly(boolean);
+ method public androidx.core.app.NotificationCompat.WearableExtender setStartScrollBottom(boolean);
+ field @Deprecated public static final int SCREEN_TIMEOUT_LONG = -1; // 0xffffffff
+ field @Deprecated public static final int SCREEN_TIMEOUT_SHORT = 0; // 0x0
+ field @Deprecated public static final int SIZE_DEFAULT = 0; // 0x0
+ field @Deprecated public static final int SIZE_FULL_SCREEN = 5; // 0x5
+ field @Deprecated public static final int SIZE_LARGE = 4; // 0x4
+ field @Deprecated public static final int SIZE_MEDIUM = 3; // 0x3
+ field @Deprecated public static final int SIZE_SMALL = 2; // 0x2
+ field @Deprecated public static final int SIZE_XSMALL = 1; // 0x1
+ field public static final int UNSET_ACTION_INDEX = -1; // 0xffffffff
+ }
+
+ public final class NotificationCompatExtras {
+ field public static final String EXTRA_ACTION_EXTRAS = "android.support.actionExtras";
+ field public static final String EXTRA_GROUP_KEY = "android.support.groupKey";
+ field public static final String EXTRA_GROUP_SUMMARY = "android.support.isGroupSummary";
+ field public static final String EXTRA_LOCAL_ONLY = "android.support.localOnly";
+ field public static final String EXTRA_REMOTE_INPUTS = "android.support.remoteInputs";
+ field public static final String EXTRA_SORT_KEY = "android.support.sortKey";
+ }
+
+ public abstract class NotificationCompatSideChannelService extends android.app.Service {
+ ctor public NotificationCompatSideChannelService();
+ method public abstract void cancel(String!, int, String!);
+ method public abstract void cancelAll(String!);
+ method public abstract void notify(String!, int, String!, android.app.Notification!);
+ method public android.os.IBinder! onBind(android.content.Intent!);
+ }
+
+ public final class NotificationManagerCompat {
+ method public boolean areNotificationsEnabled();
+ method public void cancel(int);
+ method public void cancel(String?, int);
+ method public void cancelAll();
+ method public void createNotificationChannel(android.app.NotificationChannel);
+ method public void createNotificationChannel(androidx.core.app.NotificationChannelCompat);
+ method public void createNotificationChannelGroup(android.app.NotificationChannelGroup);
+ method public void createNotificationChannelGroup(androidx.core.app.NotificationChannelGroupCompat);
+ method public void createNotificationChannelGroups(java.util.List<android.app.NotificationChannelGroup!>);
+ method public void createNotificationChannelGroupsCompat(java.util.List<androidx.core.app.NotificationChannelGroupCompat!>);
+ method public void createNotificationChannels(java.util.List<android.app.NotificationChannel!>);
+ method public void createNotificationChannelsCompat(java.util.List<androidx.core.app.NotificationChannelCompat!>);
+ method public void deleteNotificationChannel(String);
+ method public void deleteNotificationChannelGroup(String);
+ method public void deleteUnlistedNotificationChannels(java.util.Collection<java.lang.String!>);
+ method public static androidx.core.app.NotificationManagerCompat from(android.content.Context);
+ method public static java.util.Set<java.lang.String!> getEnabledListenerPackages(android.content.Context);
+ method public int getImportance();
+ method public android.app.NotificationChannel? getNotificationChannel(String);
+ method public android.app.NotificationChannel? getNotificationChannel(String, String);
+ method public androidx.core.app.NotificationChannelCompat? getNotificationChannelCompat(String);
+ method public androidx.core.app.NotificationChannelCompat? getNotificationChannelCompat(String, String);
+ method public android.app.NotificationChannelGroup? getNotificationChannelGroup(String);
+ method public androidx.core.app.NotificationChannelGroupCompat? getNotificationChannelGroupCompat(String);
+ method public java.util.List<android.app.NotificationChannelGroup!> getNotificationChannelGroups();
+ method public java.util.List<androidx.core.app.NotificationChannelGroupCompat!> getNotificationChannelGroupsCompat();
+ method public java.util.List<android.app.NotificationChannel!> getNotificationChannels();
+ method public java.util.List<androidx.core.app.NotificationChannelCompat!> getNotificationChannelsCompat();
+ method public void notify(int, android.app.Notification);
+ method public void notify(String?, int, android.app.Notification);
+ field public static final String ACTION_BIND_SIDE_CHANNEL = "android.support.BIND_NOTIFICATION_SIDE_CHANNEL";
+ field public static final String EXTRA_USE_SIDE_CHANNEL = "android.support.useSideChannel";
+ field public static final int IMPORTANCE_DEFAULT = 3; // 0x3
+ field public static final int IMPORTANCE_HIGH = 4; // 0x4
+ field public static final int IMPORTANCE_LOW = 2; // 0x2
+ field public static final int IMPORTANCE_MAX = 5; // 0x5
+ field public static final int IMPORTANCE_MIN = 1; // 0x1
+ field public static final int IMPORTANCE_NONE = 0; // 0x0
+ field public static final int IMPORTANCE_UNSPECIFIED = -1000; // 0xfffffc18
+ }
+
+ public interface OnMultiWindowModeChangedProvider {
+ method public void addOnMultiWindowModeChangedListener(androidx.core.util.Consumer<androidx.core.app.MultiWindowModeChangedInfo!>);
+ method public void removeOnMultiWindowModeChangedListener(androidx.core.util.Consumer<androidx.core.app.MultiWindowModeChangedInfo!>);
+ }
+
+ public interface OnNewIntentProvider {
+ method public void addOnNewIntentListener(androidx.core.util.Consumer<android.content.Intent!>);
+ method public void removeOnNewIntentListener(androidx.core.util.Consumer<android.content.Intent!>);
+ }
+
+ public interface OnPictureInPictureModeChangedProvider {
+ method public void addOnPictureInPictureModeChangedListener(androidx.core.util.Consumer<androidx.core.app.PictureInPictureModeChangedInfo!>);
+ method public void removeOnPictureInPictureModeChangedListener(androidx.core.util.Consumer<androidx.core.app.PictureInPictureModeChangedInfo!>);
+ }
+
+ public class Person {
+ method @RequiresApi(28) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.app.Person fromAndroidPerson(android.app.Person);
+ method public static androidx.core.app.Person fromBundle(android.os.Bundle);
+ method @RequiresApi(22) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.app.Person fromPersistableBundle(android.os.PersistableBundle);
+ method public androidx.core.graphics.drawable.IconCompat? getIcon();
+ method public String? getKey();
+ method public CharSequence? getName();
+ method public String? getUri();
+ method public boolean isBot();
+ method public boolean isImportant();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public String resolveToLegacyUri();
+ method @RequiresApi(28) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.app.Person toAndroidPerson();
+ method public androidx.core.app.Person.Builder toBuilder();
+ method public android.os.Bundle toBundle();
+ method @RequiresApi(22) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.os.PersistableBundle toPersistableBundle();
+ }
+
+ public static class Person.Builder {
+ ctor public Person.Builder();
+ method public androidx.core.app.Person build();
+ method public androidx.core.app.Person.Builder setBot(boolean);
+ method public androidx.core.app.Person.Builder setIcon(androidx.core.graphics.drawable.IconCompat?);
+ method public androidx.core.app.Person.Builder setImportant(boolean);
+ method public androidx.core.app.Person.Builder setKey(String?);
+ method public androidx.core.app.Person.Builder setName(CharSequence?);
+ method public androidx.core.app.Person.Builder setUri(String?);
+ }
+
+ public final class PictureInPictureModeChangedInfo {
+ ctor public PictureInPictureModeChangedInfo(boolean);
+ ctor @RequiresApi(26) public PictureInPictureModeChangedInfo(boolean, android.content.res.Configuration);
+ method @RequiresApi(26) public android.content.res.Configuration getNewConfig();
+ method public boolean isInPictureInPictureMode();
+ }
+
+ @androidx.versionedparcelable.VersionedParcelize(jetifyAs="android.support.v4.app.RemoteActionCompat") public final class RemoteActionCompat implements androidx.versionedparcelable.VersionedParcelable {
+ ctor public RemoteActionCompat(androidx.core.graphics.drawable.IconCompat, CharSequence, CharSequence, android.app.PendingIntent);
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public RemoteActionCompat();
+ ctor public RemoteActionCompat(androidx.core.app.RemoteActionCompat);
+ method @RequiresApi(26) public static androidx.core.app.RemoteActionCompat createFromRemoteAction(android.app.RemoteAction);
+ method public android.app.PendingIntent getActionIntent();
+ method public CharSequence getContentDescription();
+ method public androidx.core.graphics.drawable.IconCompat getIcon();
+ method public CharSequence getTitle();
+ method public boolean isEnabled();
+ method public void setEnabled(boolean);
+ method public void setShouldShowIcon(boolean);
+ method public boolean shouldShowIcon();
+ method @RequiresApi(26) public android.app.RemoteAction toRemoteAction();
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.versionedparcelable.ParcelField(4) public android.app.PendingIntent mActionIntent;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.versionedparcelable.ParcelField(3) public CharSequence mContentDescription;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.versionedparcelable.ParcelField(5) public boolean mEnabled;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.versionedparcelable.ParcelField(1) public androidx.core.graphics.drawable.IconCompat mIcon;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.versionedparcelable.ParcelField(6) public boolean mShouldShowIcon;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.versionedparcelable.ParcelField(2) public CharSequence mTitle;
+ }
+
+ public final class RemoteInput {
+ method public static void addDataResultToIntent(androidx.core.app.RemoteInput, android.content.Intent, java.util.Map<java.lang.String!,android.net.Uri!>);
+ method public static void addResultsToIntent(androidx.core.app.RemoteInput![], android.content.Intent, android.os.Bundle);
+ method public boolean getAllowFreeFormInput();
+ method public java.util.Set<java.lang.String!>? getAllowedDataTypes();
+ method public CharSequence![]? getChoices();
+ method public static java.util.Map<java.lang.String!,android.net.Uri!>? getDataResultsFromIntent(android.content.Intent, String);
+ method @androidx.core.app.RemoteInput.EditChoicesBeforeSending public int getEditChoicesBeforeSending();
+ method public android.os.Bundle getExtras();
+ method public CharSequence? getLabel();
+ method public String getResultKey();
+ method public static android.os.Bundle? getResultsFromIntent(android.content.Intent);
+ method @androidx.core.app.RemoteInput.Source public static int getResultsSource(android.content.Intent);
+ method public boolean isDataOnly();
+ method public static void setResultsSource(android.content.Intent, @androidx.core.app.RemoteInput.Source int);
+ field public static final int EDIT_CHOICES_BEFORE_SENDING_AUTO = 0; // 0x0
+ field public static final int EDIT_CHOICES_BEFORE_SENDING_DISABLED = 1; // 0x1
+ field public static final int EDIT_CHOICES_BEFORE_SENDING_ENABLED = 2; // 0x2
+ field public static final String EXTRA_RESULTS_DATA = "android.remoteinput.resultsData";
+ field public static final String RESULTS_CLIP_LABEL = "android.remoteinput.results";
+ field public static final int SOURCE_CHOICE = 1; // 0x1
+ field public static final int SOURCE_FREE_FORM_INPUT = 0; // 0x0
+ }
+
+ public static final class RemoteInput.Builder {
+ ctor public RemoteInput.Builder(String);
+ method public androidx.core.app.RemoteInput.Builder addExtras(android.os.Bundle);
+ method public androidx.core.app.RemoteInput build();
+ method public android.os.Bundle getExtras();
+ method public androidx.core.app.RemoteInput.Builder setAllowDataType(String, boolean);
+ method public androidx.core.app.RemoteInput.Builder setAllowFreeFormInput(boolean);
+ method public androidx.core.app.RemoteInput.Builder setChoices(CharSequence![]?);
+ method public androidx.core.app.RemoteInput.Builder setEditChoicesBeforeSending(@androidx.core.app.RemoteInput.EditChoicesBeforeSending int);
+ method public androidx.core.app.RemoteInput.Builder setLabel(CharSequence?);
+ }
+
+ @IntDef({androidx.core.app.RemoteInput.EDIT_CHOICES_BEFORE_SENDING_AUTO, androidx.core.app.RemoteInput.EDIT_CHOICES_BEFORE_SENDING_DISABLED, androidx.core.app.RemoteInput.EDIT_CHOICES_BEFORE_SENDING_ENABLED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface RemoteInput.EditChoicesBeforeSending {
+ }
+
+ @IntDef({androidx.core.app.RemoteInput.SOURCE_FREE_FORM_INPUT, androidx.core.app.RemoteInput.SOURCE_CHOICE}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface RemoteInput.Source {
+ }
+
+ public final class ServiceCompat {
+ method public static void stopForeground(android.app.Service, @androidx.core.app.ServiceCompat.StopForegroundFlags int);
+ field public static final int START_STICKY = 1; // 0x1
+ field public static final int STOP_FOREGROUND_DETACH = 2; // 0x2
+ field public static final int STOP_FOREGROUND_REMOVE = 1; // 0x1
+ }
+
+ @IntDef(flag=true, value={androidx.core.app.ServiceCompat.STOP_FOREGROUND_REMOVE, androidx.core.app.ServiceCompat.STOP_FOREGROUND_DETACH}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ServiceCompat.StopForegroundFlags {
+ }
+
+ public final class ShareCompat {
+ method @Deprecated public static void configureMenuItem(android.view.MenuItem, androidx.core.app.ShareCompat.IntentBuilder);
+ method @Deprecated public static void configureMenuItem(android.view.Menu, @IdRes int, androidx.core.app.ShareCompat.IntentBuilder);
+ method public static android.content.ComponentName? getCallingActivity(android.app.Activity);
+ method public static String? getCallingPackage(android.app.Activity);
+ field public static final String EXTRA_CALLING_ACTIVITY = "androidx.core.app.EXTRA_CALLING_ACTIVITY";
+ field public static final String EXTRA_CALLING_ACTIVITY_INTEROP = "android.support.v4.app.EXTRA_CALLING_ACTIVITY";
+ field public static final String EXTRA_CALLING_PACKAGE = "androidx.core.app.EXTRA_CALLING_PACKAGE";
+ field public static final String EXTRA_CALLING_PACKAGE_INTEROP = "android.support.v4.app.EXTRA_CALLING_PACKAGE";
+ }
+
+ public static class ShareCompat.IntentBuilder {
+ ctor public ShareCompat.IntentBuilder(android.content.Context);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailBcc(String);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailBcc(String![]);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailCc(String);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailCc(String![]);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailTo(String);
+ method public androidx.core.app.ShareCompat.IntentBuilder addEmailTo(String![]);
+ method public androidx.core.app.ShareCompat.IntentBuilder addStream(android.net.Uri);
+ method public android.content.Intent createChooserIntent();
+ method @Deprecated public static androidx.core.app.ShareCompat.IntentBuilder from(android.app.Activity);
+ method public android.content.Intent getIntent();
+ method public androidx.core.app.ShareCompat.IntentBuilder setChooserTitle(CharSequence?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setChooserTitle(@StringRes int);
+ method public androidx.core.app.ShareCompat.IntentBuilder setEmailBcc(String![]?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setEmailCc(String![]?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setEmailTo(String![]?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setHtmlText(String?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setStream(android.net.Uri?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setSubject(String?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setText(CharSequence?);
+ method public androidx.core.app.ShareCompat.IntentBuilder setType(String?);
+ method public void startChooser();
+ }
+
+ public static class ShareCompat.IntentReader {
+ ctor public ShareCompat.IntentReader(android.app.Activity);
+ ctor public ShareCompat.IntentReader(android.content.Context, android.content.Intent);
+ method @Deprecated public static androidx.core.app.ShareCompat.IntentReader from(android.app.Activity);
+ method public android.content.ComponentName? getCallingActivity();
+ method public android.graphics.drawable.Drawable? getCallingActivityIcon();
+ method public android.graphics.drawable.Drawable? getCallingApplicationIcon();
+ method public CharSequence? getCallingApplicationLabel();
+ method public String? getCallingPackage();
+ method public String![]? getEmailBcc();
+ method public String![]? getEmailCc();
+ method public String![]? getEmailTo();
+ method public String? getHtmlText();
+ method public android.net.Uri? getStream();
+ method public android.net.Uri? getStream(int);
+ method public int getStreamCount();
+ method public String? getSubject();
+ method public CharSequence? getText();
+ method public String? getType();
+ method public boolean isMultipleShare();
+ method public boolean isShareIntent();
+ method public boolean isSingleShare();
+ }
+
+ public abstract class SharedElementCallback {
+ ctor public SharedElementCallback();
+ method public android.os.Parcelable! onCaptureSharedElementSnapshot(android.view.View!, android.graphics.Matrix!, android.graphics.RectF!);
+ method public android.view.View! onCreateSnapshotView(android.content.Context!, android.os.Parcelable!);
+ method public void onMapSharedElements(java.util.List<java.lang.String!>!, java.util.Map<java.lang.String!,android.view.View!>!);
+ method public void onRejectSharedElements(java.util.List<android.view.View!>!);
+ method public void onSharedElementEnd(java.util.List<java.lang.String!>!, java.util.List<android.view.View!>!, java.util.List<android.view.View!>!);
+ method public void onSharedElementStart(java.util.List<java.lang.String!>!, java.util.List<android.view.View!>!, java.util.List<android.view.View!>!);
+ method public void onSharedElementsArrived(java.util.List<java.lang.String!>!, java.util.List<android.view.View!>!, androidx.core.app.SharedElementCallback.OnSharedElementsReadyListener!);
+ }
+
+ public static interface SharedElementCallback.OnSharedElementsReadyListener {
+ method public void onSharedElementsReady();
+ }
+
+ public final class TaskStackBuilder implements java.lang.Iterable<android.content.Intent> {
+ method public androidx.core.app.TaskStackBuilder addNextIntent(android.content.Intent);
+ method public androidx.core.app.TaskStackBuilder addNextIntentWithParentStack(android.content.Intent);
+ method public androidx.core.app.TaskStackBuilder addParentStack(android.app.Activity);
+ method public androidx.core.app.TaskStackBuilder addParentStack(Class<?>);
+ method public androidx.core.app.TaskStackBuilder addParentStack(android.content.ComponentName);
+ method public static androidx.core.app.TaskStackBuilder create(android.content.Context);
+ method public android.content.Intent? editIntentAt(int);
+ method @Deprecated public static androidx.core.app.TaskStackBuilder! from(android.content.Context!);
+ method @Deprecated public android.content.Intent! getIntent(int);
+ method public int getIntentCount();
+ method public android.content.Intent![] getIntents();
+ method public android.app.PendingIntent? getPendingIntent(int, int);
+ method public android.app.PendingIntent? getPendingIntent(int, int, android.os.Bundle?);
+ method @Deprecated public java.util.Iterator<android.content.Intent!> iterator();
+ method public void startActivities();
+ method public void startActivities(android.os.Bundle?);
+ }
+
+ public static interface TaskStackBuilder.SupportParentable {
+ method public android.content.Intent? getSupportParentActivityIntent();
+ }
+
+}
+
+package androidx.core.content {
+
+ public final class ContentProviderCompat {
+ method public static android.content.Context requireContext(android.content.ContentProvider);
+ }
+
+ public final class ContentResolverCompat {
+ method public static android.database.Cursor? query(android.content.ContentResolver, android.net.Uri, String![]?, String?, String![]?, String?, androidx.core.os.CancellationSignal?);
+ }
+
+ public class ContextCompat {
+ ctor protected ContextCompat();
+ method public static int checkSelfPermission(android.content.Context, String);
+ method public static android.content.Context? createDeviceProtectedStorageContext(android.content.Context);
+ method public static String? getAttributionTag(android.content.Context);
+ method public static java.io.File getCodeCacheDir(android.content.Context);
+ method @ColorInt public static int getColor(android.content.Context, @ColorRes int);
+ method public static android.content.res.ColorStateList? getColorStateList(android.content.Context, @ColorRes int);
+ method public static java.io.File? getDataDir(android.content.Context);
+ method public static android.graphics.drawable.Drawable? getDrawable(android.content.Context, @DrawableRes int);
+ method public static java.io.File![] getExternalCacheDirs(android.content.Context);
+ method public static java.io.File![] getExternalFilesDirs(android.content.Context, String?);
+ method public static java.util.concurrent.Executor getMainExecutor(android.content.Context);
+ method public static java.io.File? getNoBackupFilesDir(android.content.Context);
+ method public static java.io.File![] getObbDirs(android.content.Context);
+ method public static <T> T? getSystemService(android.content.Context, Class<T!>);
+ method public static String? getSystemServiceName(android.content.Context, Class<?>);
+ method public static boolean isDeviceProtectedStorage(android.content.Context);
+ method public static boolean startActivities(android.content.Context, android.content.Intent![]);
+ method public static boolean startActivities(android.content.Context, android.content.Intent![], android.os.Bundle?);
+ method public static void startActivity(android.content.Context, android.content.Intent, android.os.Bundle?);
+ method public static void startForegroundService(android.content.Context, android.content.Intent);
+ }
+
+ public class FileProvider extends android.content.ContentProvider {
+ ctor public FileProvider();
+ ctor protected FileProvider(@XmlRes int);
+ method public int delete(android.net.Uri, String?, String![]?);
+ method public String? getType(android.net.Uri);
+ method public static android.net.Uri! getUriForFile(android.content.Context, String, java.io.File);
+ method public static android.net.Uri getUriForFile(android.content.Context, String, java.io.File, String);
+ method public android.net.Uri! insert(android.net.Uri, android.content.ContentValues);
+ method public boolean onCreate();
+ method public android.database.Cursor query(android.net.Uri, String![]?, String?, String![]?, String?);
+ method public int update(android.net.Uri, android.content.ContentValues, String?, String![]?);
+ }
+
+ public final class IntentCompat {
+ method public static android.content.Intent createManageUnusedAppRestrictionsIntent(android.content.Context, String);
+ method public static android.content.Intent makeMainSelectorActivity(String, String);
+ field public static final String ACTION_CREATE_REMINDER = "android.intent.action.CREATE_REMINDER";
+ field public static final String CATEGORY_LEANBACK_LAUNCHER = "android.intent.category.LEANBACK_LAUNCHER";
+ field public static final String EXTRA_HTML_TEXT = "android.intent.extra.HTML_TEXT";
+ field public static final String EXTRA_START_PLAYBACK = "android.intent.extra.START_PLAYBACK";
+ field public static final String EXTRA_TIME = "android.intent.extra.TIME";
+ }
+
+ public final class LocusIdCompat {
+ ctor public LocusIdCompat(String);
+ method public String getId();
+ method @RequiresApi(29) public android.content.LocusId toLocusId();
+ method @RequiresApi(29) public static androidx.core.content.LocusIdCompat toLocusIdCompat(android.content.LocusId);
+ }
+
+ public final class MimeTypeFilter {
+ method public static boolean matches(String?, String);
+ method public static String? matches(String?, String![]);
+ method public static String? matches(String![]?, String);
+ method public static String![] matchesMany(String![]?, String);
+ }
+
+ public interface OnConfigurationChangedProvider {
+ method public void addOnConfigurationChangedListener(androidx.core.util.Consumer<android.content.res.Configuration!>);
+ method public void removeOnConfigurationChangedListener(androidx.core.util.Consumer<android.content.res.Configuration!>);
+ }
+
+ public interface OnTrimMemoryProvider {
+ method public void addOnTrimMemoryListener(androidx.core.util.Consumer<java.lang.Integer!>);
+ method public void removeOnTrimMemoryListener(androidx.core.util.Consumer<java.lang.Integer!>);
+ }
+
+ public final class PackageManagerCompat {
+ method public static com.google.common.util.concurrent.ListenableFuture<java.lang.Integer!> getUnusedAppRestrictionsStatus(android.content.Context);
+ field public static final String ACTION_PERMISSION_REVOCATION_SETTINGS = "android.intent.action.AUTO_REVOKE_PERMISSIONS";
+ }
+
+ public final class PermissionChecker {
+ method @androidx.core.content.PermissionChecker.PermissionResult public static int checkCallingOrSelfPermission(android.content.Context, String);
+ method @androidx.core.content.PermissionChecker.PermissionResult public static int checkCallingPermission(android.content.Context, String, String?);
+ method @androidx.core.content.PermissionChecker.PermissionResult public static int checkPermission(android.content.Context, String, int, int, String?);
+ method @androidx.core.content.PermissionChecker.PermissionResult public static int checkSelfPermission(android.content.Context, String);
+ field public static final int PERMISSION_DENIED = -1; // 0xffffffff
+ field public static final int PERMISSION_DENIED_APP_OP = -2; // 0xfffffffe
+ field public static final int PERMISSION_GRANTED = 0; // 0x0
+ }
+
+ @IntDef({androidx.core.content.PermissionChecker.PERMISSION_GRANTED, androidx.core.content.PermissionChecker.PERMISSION_DENIED, androidx.core.content.PermissionChecker.PERMISSION_DENIED_APP_OP}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface PermissionChecker.PermissionResult {
+ }
+
+ @Deprecated public final class SharedPreferencesCompat {
+ }
+
+ @Deprecated public static final class SharedPreferencesCompat.EditorCompat {
+ method @Deprecated public void apply(android.content.SharedPreferences.Editor);
+ method @Deprecated public static androidx.core.content.SharedPreferencesCompat.EditorCompat! getInstance();
+ }
+
+ public class UnusedAppRestrictionsBackportCallback {
+ method public void onResult(boolean, boolean) throws android.os.RemoteException;
+ }
+
+ public abstract class UnusedAppRestrictionsBackportService extends android.app.Service {
+ ctor public UnusedAppRestrictionsBackportService();
+ method protected abstract void isPermissionRevocationEnabled(androidx.core.content.UnusedAppRestrictionsBackportCallback);
+ method public android.os.IBinder? onBind(android.content.Intent?);
+ field public static final String ACTION_UNUSED_APP_RESTRICTIONS_BACKPORT_CONNECTION = "android.support.unusedapprestrictions.action.CustomUnusedAppRestrictionsBackportService";
+ }
+
+ public final class UnusedAppRestrictionsConstants {
+ field public static final int API_30 = 4; // 0x4
+ field public static final int API_30_BACKPORT = 3; // 0x3
+ field public static final int API_31 = 5; // 0x5
+ field public static final int DISABLED = 2; // 0x2
+ field public static final int ERROR = 0; // 0x0
+ field public static final int FEATURE_NOT_AVAILABLE = 1; // 0x1
+ }
+
+}
+
+package androidx.core.content.pm {
+
+ @Deprecated public final class ActivityInfoCompat {
+ field @Deprecated public static final int CONFIG_UI_MODE = 512; // 0x200
+ }
+
+ public final class PackageInfoCompat {
+ method public static long getLongVersionCode(android.content.pm.PackageInfo);
+ method public static java.util.List<android.content.pm.Signature!> getSignatures(android.content.pm.PackageManager, String) throws android.content.pm.PackageManager.NameNotFoundException;
+ method public static boolean hasSignatures(android.content.pm.PackageManager, String, @Size(min=1) java.util.Map<byte[]!,java.lang.Integer!>, boolean) throws android.content.pm.PackageManager.NameNotFoundException;
+ }
+
+ public final class PermissionInfoCompat {
+ method public static int getProtection(android.content.pm.PermissionInfo);
+ method public static int getProtectionFlags(android.content.pm.PermissionInfo);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public abstract class ShortcutInfoChangeListener {
+ ctor public ShortcutInfoChangeListener();
+ method @AnyThread public void onAllShortcutsRemoved();
+ method @AnyThread public void onShortcutAdded(java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+ method @AnyThread public void onShortcutRemoved(java.util.List<java.lang.String!>);
+ method @AnyThread public void onShortcutUpdated(java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+ method @AnyThread public void onShortcutUsageReported(java.util.List<java.lang.String!>);
+ }
+
+ public class ShortcutInfoCompat {
+ method public android.content.ComponentName? getActivity();
+ method public java.util.Set<java.lang.String!>? getCategories();
+ method public CharSequence? getDisabledMessage();
+ method public int getDisabledReason();
+ method @androidx.core.content.pm.ShortcutInfoCompat.Surface public int getExcludedFromSurfaces();
+ method public android.os.PersistableBundle? getExtras();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.core.graphics.drawable.IconCompat! getIcon();
+ method public String getId();
+ method public android.content.Intent getIntent();
+ method public android.content.Intent![] getIntents();
+ method public long getLastChangedTimestamp();
+ method public androidx.core.content.LocusIdCompat? getLocusId();
+ method public CharSequence? getLongLabel();
+ method public String getPackage();
+ method public int getRank();
+ method public CharSequence getShortLabel();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.os.Bundle? getTransientExtras();
+ method public android.os.UserHandle? getUserHandle();
+ method public boolean hasKeyFieldsOnly();
+ method public boolean isCached();
+ method public boolean isDeclaredInManifest();
+ method public boolean isDynamic();
+ method public boolean isEnabled();
+ method public boolean isExcludedFromSurfaces(@androidx.core.content.pm.ShortcutInfoCompat.Surface int);
+ method public boolean isImmutable();
+ method public boolean isPinned();
+ method @RequiresApi(25) public android.content.pm.ShortcutInfo! toShortcutInfo();
+ field public static final int SURFACE_LAUNCHER = 1; // 0x1
+ }
+
+ public static class ShortcutInfoCompat.Builder {
+ ctor public ShortcutInfoCompat.Builder(android.content.Context, String);
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public ShortcutInfoCompat.Builder(androidx.core.content.pm.ShortcutInfoCompat);
+ ctor @RequiresApi(25) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public ShortcutInfoCompat.Builder(android.content.Context, android.content.pm.ShortcutInfo);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder addCapabilityBinding(String);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder addCapabilityBinding(String, String, java.util.List<java.lang.String!>);
+ method public androidx.core.content.pm.ShortcutInfoCompat build();
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setActivity(android.content.ComponentName);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setAlwaysBadged();
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setCategories(java.util.Set<java.lang.String!>);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setDisabledMessage(CharSequence);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setExcludedFromSurfaces(int);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setExtras(android.os.PersistableBundle);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIcon(androidx.core.graphics.drawable.IconCompat!);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIntent(android.content.Intent);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIntents(android.content.Intent![]);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setIsConversation();
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setLocusId(androidx.core.content.LocusIdCompat?);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setLongLabel(CharSequence);
+ method @Deprecated public androidx.core.content.pm.ShortcutInfoCompat.Builder setLongLived();
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setLongLived(boolean);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setPerson(androidx.core.app.Person);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setPersons(androidx.core.app.Person![]);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setRank(int);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setShortLabel(CharSequence);
+ method public androidx.core.content.pm.ShortcutInfoCompat.Builder setSliceUri(android.net.Uri);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.core.content.pm.ShortcutInfoCompat.Builder setTransientExtras(android.os.Bundle);
+ }
+
+ @IntDef(flag=true, value={androidx.core.content.pm.ShortcutInfoCompat.SURFACE_LAUNCHER}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ShortcutInfoCompat.Surface {
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public abstract class ShortcutInfoCompatSaver<T> {
+ ctor public ShortcutInfoCompatSaver();
+ method @AnyThread public abstract T! addShortcuts(java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>!);
+ method @WorkerThread public java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>! getShortcuts() throws java.lang.Exception;
+ method @AnyThread public abstract T! removeAllShortcuts();
+ method @AnyThread public abstract T! removeShortcuts(java.util.List<java.lang.String!>!);
+ }
+
+ public class ShortcutManagerCompat {
+ method public static boolean addDynamicShortcuts(android.content.Context, java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+ method public static android.content.Intent createShortcutResultIntent(android.content.Context, androidx.core.content.pm.ShortcutInfoCompat);
+ method public static void disableShortcuts(android.content.Context, java.util.List<java.lang.String!>, CharSequence?);
+ method public static void enableShortcuts(android.content.Context, java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+ method public static java.util.List<androidx.core.content.pm.ShortcutInfoCompat!> getDynamicShortcuts(android.content.Context);
+ method public static int getIconMaxHeight(android.content.Context);
+ method public static int getIconMaxWidth(android.content.Context);
+ method public static int getMaxShortcutCountPerActivity(android.content.Context);
+ method public static java.util.List<androidx.core.content.pm.ShortcutInfoCompat!> getShortcuts(android.content.Context, @androidx.core.content.pm.ShortcutManagerCompat.ShortcutMatchFlags int);
+ method public static boolean isRateLimitingActive(android.content.Context);
+ method public static boolean isRequestPinShortcutSupported(android.content.Context);
+ method public static boolean pushDynamicShortcut(android.content.Context, androidx.core.content.pm.ShortcutInfoCompat);
+ method public static void removeAllDynamicShortcuts(android.content.Context);
+ method public static void removeDynamicShortcuts(android.content.Context, java.util.List<java.lang.String!>);
+ method public static void removeLongLivedShortcuts(android.content.Context, java.util.List<java.lang.String!>);
+ method public static void reportShortcutUsed(android.content.Context, String);
+ method public static boolean requestPinShortcut(android.content.Context, androidx.core.content.pm.ShortcutInfoCompat, android.content.IntentSender?);
+ method public static boolean setDynamicShortcuts(android.content.Context, java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+ method public static boolean updateShortcuts(android.content.Context, java.util.List<androidx.core.content.pm.ShortcutInfoCompat!>);
+ field public static final String EXTRA_SHORTCUT_ID = "android.intent.extra.shortcut.ID";
+ field public static final int FLAG_MATCH_CACHED = 8; // 0x8
+ field public static final int FLAG_MATCH_DYNAMIC = 2; // 0x2
+ field public static final int FLAG_MATCH_MANIFEST = 1; // 0x1
+ field public static final int FLAG_MATCH_PINNED = 4; // 0x4
+ }
+
+ @IntDef(flag=true, value={androidx.core.content.pm.ShortcutManagerCompat.FLAG_MATCH_MANIFEST, androidx.core.content.pm.ShortcutManagerCompat.FLAG_MATCH_DYNAMIC, androidx.core.content.pm.ShortcutManagerCompat.FLAG_MATCH_PINNED, androidx.core.content.pm.ShortcutManagerCompat.FLAG_MATCH_CACHED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ShortcutManagerCompat.ShortcutMatchFlags {
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class ShortcutXmlParser {
+ method @WorkerThread public static java.util.List<java.lang.String!> getShortcutIds(android.content.Context);
+ method @VisibleForTesting public static java.util.List<java.lang.String!> parseShortcutIds(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+ }
+
+}
+
+package androidx.core.content.res {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final class ColorStateListInflaterCompat {
+ method public static android.content.res.ColorStateList createFromXml(android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.content.res.Resources.Theme?) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+ method public static android.content.res.ColorStateList createFromXmlInner(android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme?) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+ method public static android.content.res.ColorStateList? inflate(android.content.res.Resources, @XmlRes int, android.content.res.Resources.Theme?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final class ComplexColorCompat {
+ method @ColorInt public int getColor();
+ method public android.graphics.Shader? getShader();
+ method public static androidx.core.content.res.ComplexColorCompat? inflate(android.content.res.Resources, @ColorRes int, android.content.res.Resources.Theme?);
+ method public boolean isGradient();
+ method public boolean isStateful();
+ method public boolean onStateChanged(int[]!);
+ method public void setColor(@ColorInt int);
+ method public boolean willDraw();
+ }
+
+ public final class ConfigurationHelper {
+ method public static int getDensityDpi(android.content.res.Resources);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class FontResourcesParserCompat {
+ method public static androidx.core.content.res.FontResourcesParserCompat.FamilyResourceEntry? parse(org.xmlpull.v1.XmlPullParser, android.content.res.Resources) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+ method public static java.util.List<java.util.List<byte[]!>!> readCerts(android.content.res.Resources, @ArrayRes int);
+ field public static final int FETCH_STRATEGY_ASYNC = 1; // 0x1
+ field public static final int FETCH_STRATEGY_BLOCKING = 0; // 0x0
+ field public static final int INFINITE_TIMEOUT_VALUE = -1; // 0xffffffff
+ }
+
+ public static interface FontResourcesParserCompat.FamilyResourceEntry {
+ }
+
+ @IntDef({androidx.core.content.res.FontResourcesParserCompat.FETCH_STRATEGY_BLOCKING, androidx.core.content.res.FontResourcesParserCompat.FETCH_STRATEGY_ASYNC}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface FontResourcesParserCompat.FetchStrategy {
+ }
+
+ public static final class FontResourcesParserCompat.FontFamilyFilesResourceEntry implements androidx.core.content.res.FontResourcesParserCompat.FamilyResourceEntry {
+ ctor public FontResourcesParserCompat.FontFamilyFilesResourceEntry(androidx.core.content.res.FontResourcesParserCompat.FontFileResourceEntry![]);
+ method public androidx.core.content.res.FontResourcesParserCompat.FontFileResourceEntry![] getEntries();
+ }
+
+ public static final class FontResourcesParserCompat.FontFileResourceEntry {
+ ctor public FontResourcesParserCompat.FontFileResourceEntry(String, int, boolean, String?, int, int);
+ method public String getFileName();
+ method public int getResourceId();
+ method public int getTtcIndex();
+ method public String? getVariationSettings();
+ method public int getWeight();
+ method public boolean isItalic();
+ }
+
+ public static final class FontResourcesParserCompat.ProviderResourceEntry implements androidx.core.content.res.FontResourcesParserCompat.FamilyResourceEntry {
+ ctor public FontResourcesParserCompat.ProviderResourceEntry(androidx.core.provider.FontRequest, @androidx.core.content.res.FontResourcesParserCompat.FetchStrategy int, int);
+ method @androidx.core.content.res.FontResourcesParserCompat.FetchStrategy public int getFetchStrategy();
+ method public androidx.core.provider.FontRequest getRequest();
+ method public int getTimeout();
+ }
+
+ public final class ResourcesCompat {
+ method public static void clearCachesForTheme(android.content.res.Resources.Theme);
+ method public static android.graphics.Typeface? getCachedFont(android.content.Context, @FontRes int) throws android.content.res.Resources.NotFoundException;
+ method @ColorInt public static int getColor(android.content.res.Resources, @ColorRes int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+ method public static android.content.res.ColorStateList? getColorStateList(android.content.res.Resources, @ColorRes int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+ method public static android.graphics.drawable.Drawable? getDrawable(android.content.res.Resources, @DrawableRes int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+ method public static android.graphics.drawable.Drawable? getDrawableForDensity(android.content.res.Resources, @DrawableRes int, int, android.content.res.Resources.Theme?) throws android.content.res.Resources.NotFoundException;
+ method public static float getFloat(android.content.res.Resources, @DimenRes int);
+ method public static android.graphics.Typeface? getFont(android.content.Context, @FontRes int) throws android.content.res.Resources.NotFoundException;
+ method public static void getFont(android.content.Context, @FontRes int, androidx.core.content.res.ResourcesCompat.FontCallback, android.os.Handler?) throws android.content.res.Resources.NotFoundException;
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.graphics.Typeface? getFont(android.content.Context, @FontRes int, android.util.TypedValue, int, androidx.core.content.res.ResourcesCompat.FontCallback?) throws android.content.res.Resources.NotFoundException;
+ field @AnyRes public static final int ID_NULL = 0; // 0x0
+ }
+
+ public abstract static class ResourcesCompat.FontCallback {
+ ctor public ResourcesCompat.FontCallback();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final void callbackFailAsync(@androidx.core.provider.FontsContractCompat.FontRequestCallback.FontRequestFailReason int, android.os.Handler?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final void callbackSuccessAsync(android.graphics.Typeface, android.os.Handler?);
+ method public abstract void onFontRetrievalFailed(@androidx.core.provider.FontsContractCompat.FontRequestCallback.FontRequestFailReason int);
+ method public abstract void onFontRetrieved(android.graphics.Typeface);
+ }
+
+ public static final class ResourcesCompat.ThemeCompat {
+ method public static void rebase(android.content.res.Resources.Theme);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class TypedArrayUtils {
+ method public static int getAttr(android.content.Context, int, int);
+ method public static boolean getBoolean(android.content.res.TypedArray, @StyleableRes int, @StyleableRes int, boolean);
+ method public static android.graphics.drawable.Drawable? getDrawable(android.content.res.TypedArray, @StyleableRes int, @StyleableRes int);
+ method public static int getInt(android.content.res.TypedArray, @StyleableRes int, @StyleableRes int, int);
+ method public static boolean getNamedBoolean(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, String, @StyleableRes int, boolean);
+ method @ColorInt public static int getNamedColor(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, String, @StyleableRes int, @ColorInt int);
+ method public static android.content.res.ColorStateList? getNamedColorStateList(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, android.content.res.Resources.Theme?, String, @StyleableRes int);
+ method public static androidx.core.content.res.ComplexColorCompat! getNamedComplexColor(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, android.content.res.Resources.Theme?, String, @StyleableRes int, @ColorInt int);
+ method public static float getNamedFloat(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, String, @StyleableRes int, float);
+ method public static int getNamedInt(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, String, @StyleableRes int, int);
+ method @AnyRes public static int getNamedResourceId(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, String, @StyleableRes int, @AnyRes int);
+ method public static String? getNamedString(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, String, @StyleableRes int);
+ method @AnyRes public static int getResourceId(android.content.res.TypedArray, @StyleableRes int, @StyleableRes int, @AnyRes int);
+ method public static String? getString(android.content.res.TypedArray, @StyleableRes int, @StyleableRes int);
+ method public static CharSequence? getText(android.content.res.TypedArray, @StyleableRes int, @StyleableRes int);
+ method public static CharSequence![]? getTextArray(android.content.res.TypedArray, @StyleableRes int, @StyleableRes int);
+ method public static boolean hasAttribute(org.xmlpull.v1.XmlPullParser, String);
+ method public static android.content.res.TypedArray obtainAttributes(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet, int[]);
+ method public static android.util.TypedValue? peekNamedValue(android.content.res.TypedArray, org.xmlpull.v1.XmlPullParser, String, int);
+ }
+
+}
+
+package androidx.core.database {
+
+ public final class CursorWindowCompat {
+ method public static android.database.CursorWindow create(String?, long);
+ }
+
+ @Deprecated public final class DatabaseUtilsCompat {
+ method @Deprecated public static String![]! appendSelectionArgs(String![]!, String![]!);
+ method @Deprecated public static String! concatenateWhere(String!, String!);
+ }
+
+}
+
+package androidx.core.database.sqlite {
+
+ public final class SQLiteCursorCompat {
+ method public static void setFillWindowForwardOnly(android.database.sqlite.SQLiteCursor, boolean);
+ }
+
+}
+
+package androidx.core.graphics {
+
+ public final class BitmapCompat {
+ method public static android.graphics.Bitmap createScaledBitmap(android.graphics.Bitmap, int, int, android.graphics.Rect?, boolean);
+ method public static int getAllocationByteCount(android.graphics.Bitmap);
+ method public static boolean hasMipMap(android.graphics.Bitmap);
+ method public static void setHasMipMap(android.graphics.Bitmap, boolean);
+ }
+
+ public class BlendModeColorFilterCompat {
+ method public static android.graphics.ColorFilter? createBlendModeColorFilterCompat(int, androidx.core.graphics.BlendModeCompat);
+ }
+
+ public enum BlendModeCompat {
+ enum_constant public static final androidx.core.graphics.BlendModeCompat CLEAR;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat COLOR;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat COLOR_BURN;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat COLOR_DODGE;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DARKEN;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat DIFFERENCE;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DST;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DST_ATOP;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DST_IN;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DST_OUT;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat DST_OVER;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat EXCLUSION;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat HARD_LIGHT;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat HUE;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat LIGHTEN;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat LUMINOSITY;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat MODULATE;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat MULTIPLY;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat OVERLAY;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat PLUS;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat SATURATION;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SCREEN;
+ enum_constant @RequiresApi(android.os.Build.VERSION_CODES.Q) public static final androidx.core.graphics.BlendModeCompat SOFT_LIGHT;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SRC;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SRC_ATOP;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SRC_IN;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SRC_OUT;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat SRC_OVER;
+ enum_constant public static final androidx.core.graphics.BlendModeCompat XOR;
+ }
+
+ public final class ColorUtils {
+ method @ColorInt public static int HSLToColor(float[]);
+ method @ColorInt public static int LABToColor(@FloatRange(from=0.0f, to=100) double, @FloatRange(from=0xffffff80, to=127) double, @FloatRange(from=0xffffff80, to=127) double);
+ method public static void LABToXYZ(@FloatRange(from=0.0f, to=100) double, @FloatRange(from=0xffffff80, to=127) double, @FloatRange(from=0xffffff80, to=127) double, double[]);
+ method public static void RGBToHSL(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, float[]);
+ method public static void RGBToLAB(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, double[]);
+ method public static void RGBToXYZ(@IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, @IntRange(from=0, to=255) int, double[]);
+ method @ColorInt public static int XYZToColor(@FloatRange(from=0.0f, to=95.047) double, @FloatRange(from=0.0f, to=0x64) double, @FloatRange(from=0.0f, to=108.883) double);
+ method public static void XYZToLAB(@FloatRange(from=0.0f, to=95.047) double, @FloatRange(from=0.0f, to=0x64) double, @FloatRange(from=0.0f, to=108.883) double, double[]);
+ method @ColorInt public static int blendARGB(@ColorInt int, @ColorInt int, @FloatRange(from=0.0, to=1.0) float);
+ method public static void blendHSL(float[], float[], @FloatRange(from=0.0, to=1.0) float, float[]);
+ method public static void blendLAB(double[], double[], @FloatRange(from=0.0, to=1.0) double, double[]);
+ method public static double calculateContrast(@ColorInt int, @ColorInt int);
+ method @FloatRange(from=0.0, to=1.0) public static double calculateLuminance(@ColorInt int);
+ method public static int calculateMinimumAlpha(@ColorInt int, @ColorInt int, float);
+ method public static void colorToHSL(@ColorInt int, float[]);
+ method public static void colorToLAB(@ColorInt int, double[]);
+ method public static void colorToXYZ(@ColorInt int, double[]);
+ method public static int compositeColors(@ColorInt int, @ColorInt int);
+ method @RequiresApi(26) public static android.graphics.Color compositeColors(android.graphics.Color, android.graphics.Color);
+ method public static double distanceEuclidean(double[], double[]);
+ method @ColorInt public static int setAlphaComponent(@ColorInt int, @IntRange(from=0, to=255) int);
+ }
+
+ public final class Insets {
+ method public static androidx.core.graphics.Insets add(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+ method public static androidx.core.graphics.Insets max(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+ method public static androidx.core.graphics.Insets min(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+ method public static androidx.core.graphics.Insets of(int, int, int, int);
+ method public static androidx.core.graphics.Insets of(android.graphics.Rect);
+ method public static androidx.core.graphics.Insets subtract(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+ method @RequiresApi(api=29) public static androidx.core.graphics.Insets toCompatInsets(android.graphics.Insets);
+ method @RequiresApi(29) public android.graphics.Insets toPlatformInsets();
+ method @Deprecated @RequiresApi(api=29) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.graphics.Insets wrap(android.graphics.Insets);
+ field public static final androidx.core.graphics.Insets NONE;
+ field public final int bottom;
+ field public final int left;
+ field public final int right;
+ field public final int top;
+ }
+
+ public final class PaintCompat {
+ method public static boolean hasGlyph(android.graphics.Paint, String);
+ method public static boolean setBlendMode(android.graphics.Paint, androidx.core.graphics.BlendModeCompat?);
+ }
+
+ public final class PathSegment {
+ ctor public PathSegment(android.graphics.PointF, float, android.graphics.PointF, float);
+ method public android.graphics.PointF getEnd();
+ method public float getEndFraction();
+ method public android.graphics.PointF getStart();
+ method public float getStartFraction();
+ }
+
+ public final class PathUtils {
+ method @RequiresApi(26) public static java.util.Collection<androidx.core.graphics.PathSegment!> flatten(android.graphics.Path);
+ method @RequiresApi(26) public static java.util.Collection<androidx.core.graphics.PathSegment!> flatten(android.graphics.Path, @FloatRange(from=0) float);
+ }
+
+ public class TypefaceCompat {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @VisibleForTesting public static void clearCache();
+ method public static android.graphics.Typeface create(android.content.Context, android.graphics.Typeface?, int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.graphics.Typeface? createFromFontInfo(android.content.Context, android.os.CancellationSignal?, androidx.core.provider.FontsContractCompat.FontInfo![], int);
+ method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.graphics.Typeface? createFromResourcesFamilyXml(android.content.Context, androidx.core.content.res.FontResourcesParserCompat.FamilyResourceEntry, android.content.res.Resources, int, int, androidx.core.content.res.ResourcesCompat.FontCallback?, android.os.Handler?, boolean);
+ method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.graphics.Typeface? createFromResourcesFontFile(android.content.Context, android.content.res.Resources, int, String!, int);
+ method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.graphics.Typeface? findFromCache(android.content.res.Resources, int, int);
+ }
+
+ @RequiresApi(26) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class TypefaceCompatApi26Impl {
+ ctor public TypefaceCompatApi26Impl();
+ method protected android.graphics.Typeface? createFromFamiliesWithDefault(Object!);
+ method public android.graphics.Typeface? createFromFontFamilyFilesResourceEntry(android.content.Context!, androidx.core.content.res.FontResourcesParserCompat.FontFamilyFilesResourceEntry!, android.content.res.Resources!, int);
+ method public android.graphics.Typeface? createFromFontInfo(android.content.Context!, android.os.CancellationSignal?, androidx.core.provider.FontsContractCompat.FontInfo![], int);
+ method public android.graphics.Typeface? createFromResourcesFontFile(android.content.Context!, android.content.res.Resources!, int, String!, int);
+ method protected java.lang.reflect.Method! obtainAbortCreationMethod(Class<?>!) throws java.lang.NoSuchMethodException;
+ method protected java.lang.reflect.Method! obtainAddFontFromAssetManagerMethod(Class<?>!) throws java.lang.NoSuchMethodException;
+ method protected java.lang.reflect.Method! obtainAddFontFromBufferMethod(Class<?>!) throws java.lang.NoSuchMethodException;
+ method protected java.lang.reflect.Method! obtainCreateFromFamiliesWithDefaultMethod(Class<?>!) throws java.lang.NoSuchMethodException;
+ method protected Class<?>! obtainFontFamily() throws java.lang.ClassNotFoundException;
+ method protected java.lang.reflect.Constructor<?>! obtainFontFamilyCtor(Class<?>!) throws java.lang.NoSuchMethodException;
+ method protected java.lang.reflect.Method! obtainFreezeMethod(Class<?>!) throws java.lang.NoSuchMethodException;
+ field protected final java.lang.reflect.Method! mAbortCreation;
+ field protected final java.lang.reflect.Method! mAddFontFromAssetManager;
+ field protected final java.lang.reflect.Method! mAddFontFromBuffer;
+ field protected final java.lang.reflect.Method! mCreateFromFamiliesWithDefault;
+ field protected final Class<?>! mFontFamily;
+ field protected final java.lang.reflect.Constructor<?>! mFontFamilyCtor;
+ field protected final java.lang.reflect.Method! mFreeze;
+ }
+
+ @RequiresApi(28) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class TypefaceCompatApi28Impl extends androidx.core.graphics.TypefaceCompatApi26Impl {
+ ctor public TypefaceCompatApi28Impl();
+ }
+
+ @RequiresApi(29) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class TypefaceCompatApi29Impl {
+ ctor public TypefaceCompatApi29Impl();
+ method public android.graphics.Typeface? createFromFontFamilyFilesResourceEntry(android.content.Context!, androidx.core.content.res.FontResourcesParserCompat.FontFamilyFilesResourceEntry!, android.content.res.Resources!, int);
+ method public android.graphics.Typeface? createFromFontInfo(android.content.Context!, android.os.CancellationSignal?, androidx.core.provider.FontsContractCompat.FontInfo![], int);
+ method protected android.graphics.Typeface! createFromInputStream(android.content.Context!, java.io.InputStream!);
+ method public android.graphics.Typeface? createFromResourcesFontFile(android.content.Context!, android.content.res.Resources!, int, String!, int);
+ method protected androidx.core.provider.FontsContractCompat.FontInfo! findBestInfo(androidx.core.provider.FontsContractCompat.FontInfo![]!, int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class TypefaceCompatUtil {
+ method public static void closeQuietly(java.io.Closeable?);
+ method @RequiresApi(19) public static java.nio.ByteBuffer? copyToDirectBuffer(android.content.Context, android.content.res.Resources, int);
+ method public static boolean copyToFile(java.io.File, java.io.InputStream);
+ method public static boolean copyToFile(java.io.File, android.content.res.Resources, int);
+ method public static java.io.File? getTempFile(android.content.Context);
+ method @RequiresApi(19) public static java.nio.ByteBuffer? mmap(android.content.Context, android.os.CancellationSignal?, android.net.Uri);
+ }
+
+}
+
+package androidx.core.graphics.drawable {
+
+ public final class DrawableCompat {
+ method public static void applyTheme(android.graphics.drawable.Drawable, android.content.res.Resources.Theme);
+ method public static boolean canApplyTheme(android.graphics.drawable.Drawable);
+ method public static void clearColorFilter(android.graphics.drawable.Drawable);
+ method public static int getAlpha(android.graphics.drawable.Drawable);
+ method public static android.graphics.ColorFilter? getColorFilter(android.graphics.drawable.Drawable);
+ method public static int getLayoutDirection(android.graphics.drawable.Drawable);
+ method public static void inflate(android.graphics.drawable.Drawable, android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme?) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+ method public static boolean isAutoMirrored(android.graphics.drawable.Drawable);
+ method @Deprecated public static void jumpToCurrentState(android.graphics.drawable.Drawable);
+ method public static void setAutoMirrored(android.graphics.drawable.Drawable, boolean);
+ method public static void setHotspot(android.graphics.drawable.Drawable, float, float);
+ method public static void setHotspotBounds(android.graphics.drawable.Drawable, int, int, int, int);
+ method public static boolean setLayoutDirection(android.graphics.drawable.Drawable, int);
+ method public static void setTint(android.graphics.drawable.Drawable, @ColorInt int);
+ method public static void setTintList(android.graphics.drawable.Drawable, android.content.res.ColorStateList?);
+ method public static void setTintMode(android.graphics.drawable.Drawable, android.graphics.PorterDuff.Mode);
+ method public static <T extends android.graphics.drawable.Drawable> T! unwrap(android.graphics.drawable.Drawable);
+ method public static android.graphics.drawable.Drawable wrap(android.graphics.drawable.Drawable);
+ }
+
+ @androidx.versionedparcelable.VersionedParcelize(allowSerialization=true, ignoreParcelables=true, isCustom=true, jetifyAs="android.support.v4.graphics.drawable.IconCompat") public class IconCompat extends androidx.versionedparcelable.CustomVersionedParcelable {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void addToShortcutIntent(android.content.Intent, android.graphics.drawable.Drawable?, android.content.Context);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void checkResource(android.content.Context);
+ method public static androidx.core.graphics.drawable.IconCompat? createFromBundle(android.os.Bundle);
+ method @RequiresApi(23) public static androidx.core.graphics.drawable.IconCompat? createFromIcon(android.content.Context, android.graphics.drawable.Icon);
+ method @RequiresApi(23) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.graphics.drawable.IconCompat? createFromIcon(android.graphics.drawable.Icon);
+ method @RequiresApi(23) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.graphics.drawable.IconCompat? createFromIconOrNullIfZeroResId(android.graphics.drawable.Icon);
+ method public static androidx.core.graphics.drawable.IconCompat createWithAdaptiveBitmap(android.graphics.Bitmap);
+ method public static androidx.core.graphics.drawable.IconCompat createWithAdaptiveBitmapContentUri(String);
+ method public static androidx.core.graphics.drawable.IconCompat createWithAdaptiveBitmapContentUri(android.net.Uri);
+ method public static androidx.core.graphics.drawable.IconCompat createWithBitmap(android.graphics.Bitmap);
+ method public static androidx.core.graphics.drawable.IconCompat createWithContentUri(String);
+ method public static androidx.core.graphics.drawable.IconCompat createWithContentUri(android.net.Uri);
+ method public static androidx.core.graphics.drawable.IconCompat createWithData(byte[], int, int);
+ method public static androidx.core.graphics.drawable.IconCompat createWithResource(android.content.Context, @DrawableRes int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.graphics.drawable.IconCompat createWithResource(android.content.res.Resources?, String, @DrawableRes int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.graphics.Bitmap? getBitmap();
+ method @DrawableRes public int getResId();
+ method public String getResPackage();
+ method public int getType();
+ method public android.net.Uri getUri();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.io.InputStream? getUriInputStream(android.content.Context);
+ method public android.graphics.drawable.Drawable? loadDrawable(android.content.Context);
+ method public androidx.core.graphics.drawable.IconCompat setTint(@ColorInt int);
+ method public androidx.core.graphics.drawable.IconCompat setTintList(android.content.res.ColorStateList?);
+ method public androidx.core.graphics.drawable.IconCompat setTintMode(android.graphics.PorterDuff.Mode?);
+ method public android.os.Bundle toBundle();
+ method @Deprecated @RequiresApi(23) public android.graphics.drawable.Icon toIcon();
+ method @RequiresApi(23) public android.graphics.drawable.Icon toIcon(android.content.Context?);
+ field public static final int TYPE_ADAPTIVE_BITMAP = 5; // 0x5
+ field public static final int TYPE_BITMAP = 1; // 0x1
+ field public static final int TYPE_DATA = 3; // 0x3
+ field public static final int TYPE_RESOURCE = 2; // 0x2
+ field public static final int TYPE_UNKNOWN = -1; // 0xffffffff
+ field public static final int TYPE_URI = 4; // 0x4
+ field public static final int TYPE_URI_ADAPTIVE_BITMAP = 6; // 0x6
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.ParcelField(value=1, defaultValue="androidx.core.graphics.drawable.IconCompat.TYPE_UNKNOWN") public int mType;
+ }
+
+ public abstract class RoundedBitmapDrawable extends android.graphics.drawable.Drawable {
+ method public void draw(android.graphics.Canvas);
+ method public final android.graphics.Bitmap? getBitmap();
+ method public float getCornerRadius();
+ method public int getGravity();
+ method public int getOpacity();
+ method public final android.graphics.Paint getPaint();
+ method public boolean hasAntiAlias();
+ method public boolean hasMipMap();
+ method public boolean isCircular();
+ method public void setAlpha(int);
+ method public void setAntiAlias(boolean);
+ method public void setCircular(boolean);
+ method public void setColorFilter(android.graphics.ColorFilter!);
+ method public void setCornerRadius(float);
+ method public void setDither(boolean);
+ method public void setGravity(int);
+ method public void setMipMap(boolean);
+ method public void setTargetDensity(android.graphics.Canvas);
+ method public void setTargetDensity(android.util.DisplayMetrics);
+ method public void setTargetDensity(int);
+ }
+
+ public final class RoundedBitmapDrawableFactory {
+ method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, android.graphics.Bitmap?);
+ method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, String);
+ method public static androidx.core.graphics.drawable.RoundedBitmapDrawable create(android.content.res.Resources, java.io.InputStream);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface TintAwareDrawable {
+ method public void setTint(@ColorInt int);
+ method public void setTintList(android.content.res.ColorStateList!);
+ method public void setTintMode(android.graphics.PorterDuff.Mode!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface WrappedDrawable {
+ method public android.graphics.drawable.Drawable! getWrappedDrawable();
+ method public void setWrappedDrawable(android.graphics.drawable.Drawable!);
+ }
+
+}
+
+package androidx.core.hardware.display {
+
+ public final class DisplayManagerCompat {
+ method public android.view.Display? getDisplay(int);
+ method public android.view.Display![] getDisplays();
+ method public android.view.Display![] getDisplays(String?);
+ method public static androidx.core.hardware.display.DisplayManagerCompat getInstance(android.content.Context);
+ field public static final String DISPLAY_CATEGORY_PRESENTATION = "android.hardware.display.category.PRESENTATION";
+ }
+
+}
+
+package androidx.core.hardware.fingerprint {
+
+ @Deprecated public class FingerprintManagerCompat {
+ method @Deprecated @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public void authenticate(androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject?, int, androidx.core.os.CancellationSignal?, androidx.core.hardware.fingerprint.FingerprintManagerCompat.AuthenticationCallback, android.os.Handler?);
+ method @Deprecated public static androidx.core.hardware.fingerprint.FingerprintManagerCompat from(android.content.Context);
+ method @Deprecated @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public boolean hasEnrolledFingerprints();
+ method @Deprecated @RequiresPermission(android.Manifest.permission.USE_FINGERPRINT) public boolean isHardwareDetected();
+ }
+
+ @Deprecated public abstract static class FingerprintManagerCompat.AuthenticationCallback {
+ ctor @Deprecated public FingerprintManagerCompat.AuthenticationCallback();
+ method @Deprecated public void onAuthenticationError(int, CharSequence!);
+ method @Deprecated public void onAuthenticationFailed();
+ method @Deprecated public void onAuthenticationHelp(int, CharSequence!);
+ method @Deprecated public void onAuthenticationSucceeded(androidx.core.hardware.fingerprint.FingerprintManagerCompat.AuthenticationResult!);
+ }
+
+ @Deprecated public static final class FingerprintManagerCompat.AuthenticationResult {
+ ctor @Deprecated public FingerprintManagerCompat.AuthenticationResult(androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject!);
+ method @Deprecated public androidx.core.hardware.fingerprint.FingerprintManagerCompat.CryptoObject! getCryptoObject();
+ }
+
+ @Deprecated public static class FingerprintManagerCompat.CryptoObject {
+ ctor @Deprecated public FingerprintManagerCompat.CryptoObject(java.security.Signature);
+ ctor @Deprecated public FingerprintManagerCompat.CryptoObject(javax.crypto.Cipher);
+ ctor @Deprecated public FingerprintManagerCompat.CryptoObject(javax.crypto.Mac);
+ method @Deprecated public javax.crypto.Cipher? getCipher();
+ method @Deprecated public javax.crypto.Mac? getMac();
+ method @Deprecated public java.security.Signature? getSignature();
+ }
+
+}
+
+package androidx.core.internal.view {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface SupportMenu extends android.view.Menu {
+ method public void setGroupDividerEnabled(boolean);
+ field public static final int CATEGORY_MASK = -65536; // 0xffff0000
+ field public static final int CATEGORY_SHIFT = 16; // 0x10
+ field public static final int FLAG_KEEP_OPEN_ON_SUBMENU_OPENED = 4; // 0x4
+ field public static final int SUPPORTED_MODIFIERS_MASK = 69647; // 0x1100f
+ field public static final int USER_MASK = 65535; // 0xffff
+ field public static final int USER_SHIFT = 0; // 0x0
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface SupportMenuItem extends android.view.MenuItem {
+ method public int getAlphabeticModifiers();
+ method public CharSequence? getContentDescription();
+ method public android.content.res.ColorStateList? getIconTintList();
+ method public android.graphics.PorterDuff.Mode? getIconTintMode();
+ method public int getNumericModifiers();
+ method public androidx.core.view.ActionProvider? getSupportActionProvider();
+ method public CharSequence? getTooltipText();
+ method public boolean requiresActionButton();
+ method public boolean requiresOverflow();
+ method public android.view.MenuItem setAlphabeticShortcut(char, int);
+ method public androidx.core.internal.view.SupportMenuItem setContentDescription(CharSequence?);
+ method public android.view.MenuItem setIconTintList(android.content.res.ColorStateList?);
+ method public android.view.MenuItem setIconTintMode(android.graphics.PorterDuff.Mode?);
+ method public android.view.MenuItem setNumericShortcut(char, int);
+ method public android.view.MenuItem setShortcut(char, char, int, int);
+ method public androidx.core.internal.view.SupportMenuItem setSupportActionProvider(androidx.core.view.ActionProvider?);
+ method public androidx.core.internal.view.SupportMenuItem setTooltipText(CharSequence?);
+ field public static final int SHOW_AS_ACTION_ALWAYS = 2; // 0x2
+ field public static final int SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8; // 0x8
+ field public static final int SHOW_AS_ACTION_IF_ROOM = 1; // 0x1
+ field public static final int SHOW_AS_ACTION_NEVER = 0; // 0x0
+ field public static final int SHOW_AS_ACTION_WITH_TEXT = 4; // 0x4
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface SupportSubMenu extends androidx.core.internal.view.SupportMenu android.view.SubMenu {
+ }
+
+}
+
+package androidx.core.location {
+
+ public abstract class GnssStatusCompat {
+ method @FloatRange(from=0, to=360) public abstract float getAzimuthDegrees(@IntRange(from=0) int);
+ method @FloatRange(from=0, to=63) public abstract float getBasebandCn0DbHz(@IntRange(from=0) int);
+ method @FloatRange(from=0) public abstract float getCarrierFrequencyHz(@IntRange(from=0) int);
+ method @FloatRange(from=0, to=63) public abstract float getCn0DbHz(@IntRange(from=0) int);
+ method public abstract int getConstellationType(@IntRange(from=0) int);
+ method @FloatRange(from=0xffffffa6, to=90) public abstract float getElevationDegrees(@IntRange(from=0) int);
+ method @IntRange(from=0) public abstract int getSatelliteCount();
+ method @IntRange(from=1, to=200) public abstract int getSvid(@IntRange(from=0) int);
+ method public abstract boolean hasAlmanacData(@IntRange(from=0) int);
+ method public abstract boolean hasBasebandCn0DbHz(@IntRange(from=0) int);
+ method public abstract boolean hasCarrierFrequencyHz(@IntRange(from=0) int);
+ method public abstract boolean hasEphemerisData(@IntRange(from=0) int);
+ method public abstract boolean usedInFix(@IntRange(from=0) int);
+ method @RequiresApi(android.os.Build.VERSION_CODES.N) public static androidx.core.location.GnssStatusCompat wrap(android.location.GnssStatus);
+ method public static androidx.core.location.GnssStatusCompat wrap(android.location.GpsStatus);
+ field public static final int CONSTELLATION_BEIDOU = 5; // 0x5
+ field public static final int CONSTELLATION_GALILEO = 6; // 0x6
+ field public static final int CONSTELLATION_GLONASS = 3; // 0x3
+ field public static final int CONSTELLATION_GPS = 1; // 0x1
+ field public static final int CONSTELLATION_IRNSS = 7; // 0x7
+ field public static final int CONSTELLATION_QZSS = 4; // 0x4
+ field public static final int CONSTELLATION_SBAS = 2; // 0x2
+ field public static final int CONSTELLATION_UNKNOWN = 0; // 0x0
+ }
+
+ public abstract static class GnssStatusCompat.Callback {
+ ctor public GnssStatusCompat.Callback();
+ method public void onFirstFix(@IntRange(from=0) int);
+ method public void onSatelliteStatusChanged(androidx.core.location.GnssStatusCompat);
+ method public void onStarted();
+ method public void onStopped();
+ }
+
+ public final class LocationCompat {
+ method public static float getBearingAccuracyDegrees(android.location.Location);
+ method public static long getElapsedRealtimeMillis(android.location.Location);
+ method public static long getElapsedRealtimeNanos(android.location.Location);
+ method public static float getSpeedAccuracyMetersPerSecond(android.location.Location);
+ method public static float getVerticalAccuracyMeters(android.location.Location);
+ method public static boolean hasBearingAccuracy(android.location.Location);
+ method public static boolean hasSpeedAccuracy(android.location.Location);
+ method public static boolean hasVerticalAccuracy(android.location.Location);
+ method public static boolean isMock(android.location.Location);
+ method public static void setBearingAccuracyDegrees(android.location.Location, float);
+ method public static void setMock(android.location.Location, boolean);
+ method public static void setSpeedAccuracyMetersPerSecond(android.location.Location, float);
+ method public static void setVerticalAccuracyMeters(android.location.Location, float);
+ field public static final String EXTRA_BEARING_ACCURACY = "bearingAccuracy";
+ field public static final String EXTRA_IS_MOCK = "mockLocation";
+ field public static final String EXTRA_SPEED_ACCURACY = "speedAccuracy";
+ field public static final String EXTRA_VERTICAL_ACCURACY = "verticalAccuracy";
+ }
+
+ public interface LocationListenerCompat extends android.location.LocationListener {
+ method public default void onStatusChanged(String, int, android.os.Bundle?);
+ }
+
+ public final class LocationManagerCompat {
+ method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static void getCurrentLocation(android.location.LocationManager, String, androidx.core.os.CancellationSignal?, java.util.concurrent.Executor, androidx.core.util.Consumer<android.location.Location!>);
+ method public static String? getGnssHardwareModelName(android.location.LocationManager);
+ method public static int getGnssYearOfHardware(android.location.LocationManager);
+ method public static boolean hasProvider(android.location.LocationManager, String);
+ method public static boolean isLocationEnabled(android.location.LocationManager);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback, android.os.Handler);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public static boolean registerGnssStatusCallback(android.location.LocationManager, java.util.concurrent.Executor, androidx.core.location.GnssStatusCompat.Callback);
+ method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static void removeUpdates(android.location.LocationManager, androidx.core.location.LocationListenerCompat);
+ method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static void requestLocationUpdates(android.location.LocationManager, String, androidx.core.location.LocationRequestCompat, java.util.concurrent.Executor, androidx.core.location.LocationListenerCompat);
+ method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public static void requestLocationUpdates(android.location.LocationManager, String, androidx.core.location.LocationRequestCompat, androidx.core.location.LocationListenerCompat, android.os.Looper);
+ method public static void unregisterGnssStatusCallback(android.location.LocationManager, androidx.core.location.GnssStatusCompat.Callback);
+ }
+
+ public final class LocationRequestCompat {
+ method @IntRange(from=1) public long getDurationMillis();
+ method @IntRange(from=0) public long getIntervalMillis();
+ method @IntRange(from=0) public long getMaxUpdateDelayMillis();
+ method @IntRange(from=1, to=java.lang.Integer.MAX_VALUE) public int getMaxUpdates();
+ method @FloatRange(from=0, to=java.lang.Float.MAX_VALUE) public float getMinUpdateDistanceMeters();
+ method @IntRange(from=0) public long getMinUpdateIntervalMillis();
+ method public int getQuality();
+ method @RequiresApi(31) public android.location.LocationRequest toLocationRequest();
+ method @RequiresApi(19) public android.location.LocationRequest? toLocationRequest(String);
+ field public static final long PASSIVE_INTERVAL = 9223372036854775807L; // 0x7fffffffffffffffL
+ field public static final int QUALITY_BALANCED_POWER_ACCURACY = 102; // 0x66
+ field public static final int QUALITY_HIGH_ACCURACY = 100; // 0x64
+ field public static final int QUALITY_LOW_POWER = 104; // 0x68
+ }
+
+ public static final class LocationRequestCompat.Builder {
+ ctor public LocationRequestCompat.Builder(long);
+ ctor public LocationRequestCompat.Builder(androidx.core.location.LocationRequestCompat);
+ method public androidx.core.location.LocationRequestCompat build();
+ method public androidx.core.location.LocationRequestCompat.Builder clearMinUpdateIntervalMillis();
+ method public androidx.core.location.LocationRequestCompat.Builder setDurationMillis(@IntRange(from=1) long);
+ method public androidx.core.location.LocationRequestCompat.Builder setIntervalMillis(@IntRange(from=0) long);
+ method public androidx.core.location.LocationRequestCompat.Builder setMaxUpdateDelayMillis(@IntRange(from=0) long);
+ method public androidx.core.location.LocationRequestCompat.Builder setMaxUpdates(@IntRange(from=1, to=java.lang.Integer.MAX_VALUE) int);
+ method public androidx.core.location.LocationRequestCompat.Builder setMinUpdateDistanceMeters(@FloatRange(from=0, to=java.lang.Float.MAX_VALUE) float);
+ method public androidx.core.location.LocationRequestCompat.Builder setMinUpdateIntervalMillis(@IntRange(from=0) long);
+ method public androidx.core.location.LocationRequestCompat.Builder setQuality(int);
+ }
+
+}
+
+package androidx.core.math {
+
+ public class MathUtils {
+ method public static int addExact(int, int);
+ method public static long addExact(long, long);
+ method public static float clamp(float, float, float);
+ method public static double clamp(double, double, double);
+ method public static int clamp(int, int, int);
+ method public static long clamp(long, long, long);
+ method public static int decrementExact(int);
+ method public static long decrementExact(long);
+ method public static int incrementExact(int);
+ method public static long incrementExact(long);
+ method public static int multiplyExact(int, int);
+ method public static long multiplyExact(long, long);
+ method public static int negateExact(int);
+ method public static long negateExact(long);
+ method public static int subtractExact(int, int);
+ method public static long subtractExact(long, long);
+ method public static int toIntExact(long);
+ }
+
+}
+
+package androidx.core.net {
+
+ public final class ConnectivityManagerCompat {
+ method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public static android.net.NetworkInfo? getNetworkInfoFromBroadcast(android.net.ConnectivityManager, android.content.Intent);
+ method @androidx.core.net.ConnectivityManagerCompat.RestrictBackgroundStatus public static int getRestrictBackgroundStatus(android.net.ConnectivityManager);
+ method @RequiresPermission(android.Manifest.permission.ACCESS_NETWORK_STATE) public static boolean isActiveNetworkMetered(android.net.ConnectivityManager);
+ field public static final int RESTRICT_BACKGROUND_STATUS_DISABLED = 1; // 0x1
+ field public static final int RESTRICT_BACKGROUND_STATUS_ENABLED = 3; // 0x3
+ field public static final int RESTRICT_BACKGROUND_STATUS_WHITELISTED = 2; // 0x2
+ }
+
+ @IntDef({androidx.core.net.ConnectivityManagerCompat.RESTRICT_BACKGROUND_STATUS_DISABLED, androidx.core.net.ConnectivityManagerCompat.RESTRICT_BACKGROUND_STATUS_WHITELISTED, androidx.core.net.ConnectivityManagerCompat.RESTRICT_BACKGROUND_STATUS_ENABLED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ConnectivityManagerCompat.RestrictBackgroundStatus {
+ }
+
+ public final class MailTo {
+ method public String? getBcc();
+ method public String? getBody();
+ method public String? getCc();
+ method public java.util.Map<java.lang.String!,java.lang.String!>? getHeaders();
+ method public String? getSubject();
+ method public String? getTo();
+ method public static boolean isMailTo(String?);
+ method public static boolean isMailTo(android.net.Uri?);
+ method public static androidx.core.net.MailTo parse(String) throws androidx.core.net.ParseException;
+ method public static androidx.core.net.MailTo parse(android.net.Uri) throws androidx.core.net.ParseException;
+ field public static final String MAILTO_SCHEME = "mailto:";
+ }
+
+ public class ParseException extends java.lang.RuntimeException {
+ field public final String response;
+ }
+
+ public final class TrafficStatsCompat {
+ method @Deprecated public static void clearThreadStatsTag();
+ method @Deprecated public static int getThreadStatsTag();
+ method @Deprecated public static void incrementOperationCount(int);
+ method @Deprecated public static void incrementOperationCount(int, int);
+ method @Deprecated public static void setThreadStatsTag(int);
+ method public static void tagDatagramSocket(java.net.DatagramSocket) throws java.net.SocketException;
+ method @Deprecated public static void tagSocket(java.net.Socket!) throws java.net.SocketException;
+ method public static void untagDatagramSocket(java.net.DatagramSocket) throws java.net.SocketException;
+ method @Deprecated public static void untagSocket(java.net.Socket!) throws java.net.SocketException;
+ }
+
+ public final class UriCompat {
+ method public static String toSafeString(android.net.Uri);
+ }
+
+}
+
+package androidx.core.os {
+
+ public class BuildCompat {
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.N) public static boolean isAtLeastN();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.N_MR1) public static boolean isAtLeastNMR1();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.O) public static boolean isAtLeastO();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.O_MR1) public static boolean isAtLeastOMR1();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.P) public static boolean isAtLeastP();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.Q) public static boolean isAtLeastQ();
+ method @Deprecated @ChecksSdkIntAtLeast(api=android.os.Build.VERSION_CODES.R) public static boolean isAtLeastR();
+ method @Deprecated @ChecksSdkIntAtLeast(api=31, codename="S") public static boolean isAtLeastS();
+ }
+
+ public final class CancellationSignal {
+ ctor public CancellationSignal();
+ method public void cancel();
+ method public Object? getCancellationSignalObject();
+ method public boolean isCanceled();
+ method public void setOnCancelListener(androidx.core.os.CancellationSignal.OnCancelListener?);
+ method public void throwIfCanceled();
+ }
+
+ public static interface CancellationSignal.OnCancelListener {
+ method public void onCancel();
+ }
+
+ public final class ConfigurationCompat {
+ method public static androidx.core.os.LocaleListCompat getLocales(android.content.res.Configuration);
+ }
+
+ public final class EnvironmentCompat {
+ method public static String getStorageState(java.io.File);
+ field public static final String MEDIA_UNKNOWN = "unknown";
+ }
+
+ public final class ExecutorCompat {
+ method public static java.util.concurrent.Executor create(android.os.Handler);
+ }
+
+ public final class HandlerCompat {
+ method public static android.os.Handler createAsync(android.os.Looper);
+ method public static android.os.Handler createAsync(android.os.Looper, android.os.Handler.Callback);
+ method @RequiresApi(16) public static boolean hasCallbacks(android.os.Handler, Runnable);
+ method public static boolean postDelayed(android.os.Handler, Runnable, Object?, long);
+ }
+
+ public final class LocaleListCompat {
+ method public static androidx.core.os.LocaleListCompat create(java.util.Locale!...);
+ method public static androidx.core.os.LocaleListCompat forLanguageTags(String?);
+ method public java.util.Locale? get(int);
+ method @Size(min=1) public static androidx.core.os.LocaleListCompat getAdjustedDefault();
+ method @Size(min=1) public static androidx.core.os.LocaleListCompat getDefault();
+ method public static androidx.core.os.LocaleListCompat getEmptyLocaleList();
+ method public java.util.Locale? getFirstMatch(String![]);
+ method @IntRange(from=0xffffffff) public int indexOf(java.util.Locale?);
+ method public boolean isEmpty();
+ method @IntRange(from=0) public int size();
+ method public String toLanguageTags();
+ method public Object? unwrap();
+ method @Deprecated @RequiresApi(24) public static androidx.core.os.LocaleListCompat! wrap(Object!);
+ method @RequiresApi(24) public static androidx.core.os.LocaleListCompat wrap(android.os.LocaleList);
+ }
+
+ public final class MessageCompat {
+ method public static boolean isAsynchronous(android.os.Message);
+ method public static void setAsynchronous(android.os.Message, boolean);
+ }
+
+ public class OperationCanceledException extends java.lang.RuntimeException {
+ ctor public OperationCanceledException();
+ ctor public OperationCanceledException(String?);
+ }
+
+ public final class ParcelCompat {
+ method public static boolean readBoolean(android.os.Parcel);
+ method public static void writeBoolean(android.os.Parcel, boolean);
+ }
+
+ @Deprecated public final class ParcelableCompat {
+ method @Deprecated public static <T> android.os.Parcelable.Creator<T!>! newCreator(androidx.core.os.ParcelableCompatCreatorCallbacks<T!>!);
+ }
+
+ @Deprecated public interface ParcelableCompatCreatorCallbacks<T> {
+ method @Deprecated public T! createFromParcel(android.os.Parcel!, ClassLoader!);
+ method @Deprecated public T![]! newArray(int);
+ }
+
+ public final class ProcessCompat {
+ method public static boolean isApplicationUid(int);
+ }
+
+ @Deprecated public final class TraceCompat {
+ method @Deprecated public static void beginAsyncSection(String, int);
+ method @Deprecated public static void beginSection(String);
+ method @Deprecated public static void endAsyncSection(String, int);
+ method @Deprecated public static void endSection();
+ method @Deprecated public static boolean isEnabled();
+ method @Deprecated public static void setCounter(String, int);
+ }
+
+ @RequiresApi(17) public class UserHandleCompat {
+ method public static android.os.UserHandle getUserHandleForUid(int);
+ }
+
+ public class UserManagerCompat {
+ method public static boolean isUserUnlocked(android.content.Context);
+ }
+
+}
+
+package androidx.core.provider {
+
+ public final class DocumentsContractCompat {
+ method public static android.net.Uri? buildChildDocumentsUri(String, String?);
+ method public static android.net.Uri? buildChildDocumentsUriUsingTree(android.net.Uri, String);
+ method public static android.net.Uri? buildDocumentUri(String, String);
+ method public static android.net.Uri? buildDocumentUriUsingTree(android.net.Uri, String);
+ method public static android.net.Uri? buildTreeDocumentUri(String, String);
+ method public static android.net.Uri? createDocument(android.content.ContentResolver, android.net.Uri, String, String) throws java.io.FileNotFoundException;
+ method public static String? getDocumentId(android.net.Uri);
+ method public static String? getTreeDocumentId(android.net.Uri);
+ method public static boolean isDocumentUri(android.content.Context, android.net.Uri?);
+ method public static boolean isTreeUri(android.net.Uri);
+ method public static boolean removeDocument(android.content.ContentResolver, android.net.Uri, android.net.Uri) throws java.io.FileNotFoundException;
+ method public static android.net.Uri? renameDocument(android.content.ContentResolver, android.net.Uri, String) throws java.io.FileNotFoundException;
+ }
+
+ public static final class DocumentsContractCompat.DocumentCompat {
+ field public static final int FLAG_VIRTUAL_DOCUMENT = 512; // 0x200
+ }
+
+ public final class FontRequest {
+ ctor public FontRequest(String, String, String, java.util.List<java.util.List<byte[]!>!>);
+ ctor public FontRequest(String, String, String, @ArrayRes int);
+ method public java.util.List<java.util.List<byte[]!>!>? getCertificates();
+ method @ArrayRes public int getCertificatesArrayResId();
+ method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public String! getIdentifier();
+ method public String getProviderAuthority();
+ method public String getProviderPackage();
+ method public String getQuery();
+ }
+
+ public class FontsContractCompat {
+ method public static android.graphics.Typeface? buildTypeface(android.content.Context, android.os.CancellationSignal?, androidx.core.provider.FontsContractCompat.FontInfo![]);
+ method public static androidx.core.provider.FontsContractCompat.FontFamilyResult fetchFonts(android.content.Context, android.os.CancellationSignal?, androidx.core.provider.FontRequest) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.graphics.Typeface! getFontSync(android.content.Context!, androidx.core.provider.FontRequest!, androidx.core.content.res.ResourcesCompat.FontCallback?, android.os.Handler?, boolean, int, int);
+ method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @VisibleForTesting public static android.content.pm.ProviderInfo? getProvider(android.content.pm.PackageManager, androidx.core.provider.FontRequest, android.content.res.Resources?) throws android.content.pm.PackageManager.NameNotFoundException;
+ method @Deprecated @RequiresApi(19) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static java.util.Map<android.net.Uri!,java.nio.ByteBuffer!>! prepareFontData(android.content.Context!, androidx.core.provider.FontsContractCompat.FontInfo![]!, android.os.CancellationSignal!);
+ method public static void requestFont(android.content.Context, androidx.core.provider.FontRequest, androidx.core.provider.FontsContractCompat.FontRequestCallback, android.os.Handler);
+ method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static void resetCache();
+ field @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final String PARCEL_FONT_RESULTS = "font_results";
+ }
+
+ public static final class FontsContractCompat.Columns implements android.provider.BaseColumns {
+ ctor public FontsContractCompat.Columns();
+ field public static final String FILE_ID = "file_id";
+ field public static final String ITALIC = "font_italic";
+ field public static final String RESULT_CODE = "result_code";
+ field public static final int RESULT_CODE_FONT_NOT_FOUND = 1; // 0x1
+ field public static final int RESULT_CODE_FONT_UNAVAILABLE = 2; // 0x2
+ field public static final int RESULT_CODE_MALFORMED_QUERY = 3; // 0x3
+ field public static final int RESULT_CODE_OK = 0; // 0x0
+ field public static final String TTC_INDEX = "font_ttc_index";
+ field public static final String VARIATION_SETTINGS = "font_variation_settings";
+ field public static final String WEIGHT = "font_weight";
+ }
+
+ public static class FontsContractCompat.FontFamilyResult {
+ ctor @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public FontsContractCompat.FontFamilyResult(int, androidx.core.provider.FontsContractCompat.FontInfo![]?);
+ method public androidx.core.provider.FontsContractCompat.FontInfo![]! getFonts();
+ method public int getStatusCode();
+ field public static final int STATUS_OK = 0; // 0x0
+ field public static final int STATUS_UNEXPECTED_DATA_PROVIDED = 2; // 0x2
+ field public static final int STATUS_WRONG_CERTIFICATES = 1; // 0x1
+ }
+
+ public static class FontsContractCompat.FontInfo {
+ ctor @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public FontsContractCompat.FontInfo(android.net.Uri, @IntRange(from=0) int, @IntRange(from=1, to=1000) int, boolean, int);
+ method public int getResultCode();
+ method @IntRange(from=0) public int getTtcIndex();
+ method public android.net.Uri getUri();
+ method @IntRange(from=1, to=1000) public int getWeight();
+ method public boolean isItalic();
+ }
+
+ public static class FontsContractCompat.FontRequestCallback {
+ ctor public FontsContractCompat.FontRequestCallback();
+ method public void onTypefaceRequestFailed(@androidx.core.provider.FontsContractCompat.FontRequestCallback.FontRequestFailReason int);
+ method public void onTypefaceRetrieved(android.graphics.Typeface!);
+ field public static final int FAIL_REASON_FONT_LOAD_ERROR = -3; // 0xfffffffd
+ field public static final int FAIL_REASON_FONT_NOT_FOUND = 1; // 0x1
+ field public static final int FAIL_REASON_FONT_UNAVAILABLE = 2; // 0x2
+ field public static final int FAIL_REASON_MALFORMED_QUERY = 3; // 0x3
+ field public static final int FAIL_REASON_PROVIDER_NOT_FOUND = -1; // 0xffffffff
+ field public static final int FAIL_REASON_SECURITY_VIOLATION = -4; // 0xfffffffc
+ field public static final int FAIL_REASON_WRONG_CERTIFICATES = -2; // 0xfffffffe
+ field @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final int RESULT_OK = 0; // 0x0
+ }
+
+ @IntDef({androidx.core.provider.FontsContractCompat.FontRequestCallback.FAIL_REASON_PROVIDER_NOT_FOUND, androidx.core.provider.FontsContractCompat.FontRequestCallback.FAIL_REASON_FONT_LOAD_ERROR, androidx.core.provider.FontsContractCompat.FontRequestCallback.FAIL_REASON_FONT_NOT_FOUND, androidx.core.provider.FontsContractCompat.FontRequestCallback.FAIL_REASON_FONT_UNAVAILABLE, androidx.core.provider.FontsContractCompat.FontRequestCallback.FAIL_REASON_MALFORMED_QUERY, androidx.core.provider.FontsContractCompat.FontRequestCallback.FAIL_REASON_WRONG_CERTIFICATES, androidx.core.provider.FontsContractCompat.FontRequestCallback.FAIL_REASON_SECURITY_VIOLATION, androidx.core.provider.FontsContractCompat.FontRequestCallback.RESULT_OK}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface FontsContractCompat.FontRequestCallback.FontRequestFailReason {
+ }
+
+ @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class SelfDestructiveThread {
+ ctor @Deprecated public SelfDestructiveThread(String!, int, int);
+ method @Deprecated @VisibleForTesting public int getGeneration();
+ method @Deprecated @VisibleForTesting public boolean isRunning();
+ method @Deprecated public <T> void postAndReply(java.util.concurrent.Callable<T!>!, androidx.core.provider.SelfDestructiveThread.ReplyCallback<T!>!);
+ method @Deprecated public <T> T! postAndWait(java.util.concurrent.Callable<T!>!, int) throws java.lang.InterruptedException;
+ }
+
+ @Deprecated public static interface SelfDestructiveThread.ReplyCallback<T> {
+ method @Deprecated public void onReply(T!);
+ }
+
+}
+
+package androidx.core.telephony {
+
+ @RequiresApi(22) public class SubscriptionManagerCompat {
+ method public static int getSlotIndex(int);
+ }
+
+ public class TelephonyManagerCompat {
+ method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public static String? getImei(android.telephony.TelephonyManager);
+ method public static int getSubscriptionId(android.telephony.TelephonyManager);
+ }
+
+}
+
+package androidx.core.telephony.mbms {
+
+ public final class MbmsHelper {
+ method public static CharSequence? getBestNameForService(android.content.Context, android.telephony.mbms.ServiceInfo);
+ }
+
+}
+
+package androidx.core.text {
+
+ public final class BidiFormatter {
+ method public static androidx.core.text.BidiFormatter! getInstance();
+ method public static androidx.core.text.BidiFormatter! getInstance(boolean);
+ method public static androidx.core.text.BidiFormatter! getInstance(java.util.Locale!);
+ method public boolean getStereoReset();
+ method public boolean isRtl(String!);
+ method public boolean isRtl(CharSequence!);
+ method public boolean isRtlContext();
+ method public String! unicodeWrap(String!, androidx.core.text.TextDirectionHeuristicCompat!, boolean);
+ method public CharSequence! unicodeWrap(CharSequence!, androidx.core.text.TextDirectionHeuristicCompat!, boolean);
+ method public String! unicodeWrap(String!, androidx.core.text.TextDirectionHeuristicCompat!);
+ method public CharSequence! unicodeWrap(CharSequence!, androidx.core.text.TextDirectionHeuristicCompat!);
+ method public String! unicodeWrap(String!, boolean);
+ method public CharSequence! unicodeWrap(CharSequence!, boolean);
+ method public String! unicodeWrap(String!);
+ method public CharSequence! unicodeWrap(CharSequence!);
+ }
+
+ public static final class BidiFormatter.Builder {
+ ctor public BidiFormatter.Builder();
+ ctor public BidiFormatter.Builder(boolean);
+ ctor public BidiFormatter.Builder(java.util.Locale!);
+ method public androidx.core.text.BidiFormatter! build();
+ method public androidx.core.text.BidiFormatter.Builder! setTextDirectionHeuristic(androidx.core.text.TextDirectionHeuristicCompat!);
+ method public androidx.core.text.BidiFormatter.Builder! stereoReset(boolean);
+ }
+
+ public final class HtmlCompat {
+ method public static android.text.Spanned fromHtml(String, int);
+ method public static android.text.Spanned fromHtml(String, int, android.text.Html.ImageGetter?, android.text.Html.TagHandler?);
+ method public static String toHtml(android.text.Spanned, int);
+ field public static final int FROM_HTML_MODE_COMPACT = 63; // 0x3f
+ field public static final int FROM_HTML_MODE_LEGACY = 0; // 0x0
+ field public static final int FROM_HTML_OPTION_USE_CSS_COLORS = 256; // 0x100
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_BLOCKQUOTE = 32; // 0x20
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_DIV = 16; // 0x10
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_HEADING = 2; // 0x2
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_LIST = 8; // 0x8
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_LIST_ITEM = 4; // 0x4
+ field public static final int FROM_HTML_SEPARATOR_LINE_BREAK_PARAGRAPH = 1; // 0x1
+ field public static final int TO_HTML_PARAGRAPH_LINES_CONSECUTIVE = 0; // 0x0
+ field public static final int TO_HTML_PARAGRAPH_LINES_INDIVIDUAL = 1; // 0x1
+ }
+
+ public final class ICUCompat {
+ method public static String? maximizeAndGetScript(java.util.Locale);
+ }
+
+ public class PrecomputedTextCompat implements android.text.Spannable {
+ method public char charAt(int);
+ method public static androidx.core.text.PrecomputedTextCompat! create(CharSequence, androidx.core.text.PrecomputedTextCompat.Params);
+ method @IntRange(from=0) public int getParagraphCount();
+ method @IntRange(from=0) public int getParagraphEnd(@IntRange(from=0) int);
+ method @IntRange(from=0) public int getParagraphStart(@IntRange(from=0) int);
+ method public androidx.core.text.PrecomputedTextCompat.Params getParams();
+ method @RequiresApi(28) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.text.PrecomputedText? getPrecomputedText();
+ method public int getSpanEnd(Object!);
+ method public int getSpanFlags(Object!);
+ method public int getSpanStart(Object!);
+ method public <T> T![]! getSpans(int, int, Class<T!>!);
+ method @UiThread public static java.util.concurrent.Future<androidx.core.text.PrecomputedTextCompat!>! getTextFuture(CharSequence, androidx.core.text.PrecomputedTextCompat.Params, java.util.concurrent.Executor?);
+ method public int length();
+ method public int nextSpanTransition(int, int, Class!);
+ method public void removeSpan(Object!);
+ method public void setSpan(Object!, int, int, int);
+ method public CharSequence! subSequence(int, int);
+ }
+
+ public static final class PrecomputedTextCompat.Params {
+ ctor @RequiresApi(28) public PrecomputedTextCompat.Params(android.text.PrecomputedText.Params);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public boolean equalsWithoutTextDirection(androidx.core.text.PrecomputedTextCompat.Params);
+ method @RequiresApi(23) public int getBreakStrategy();
+ method @RequiresApi(23) public int getHyphenationFrequency();
+ method @RequiresApi(18) public android.text.TextDirectionHeuristic? getTextDirection();
+ method public android.text.TextPaint getTextPaint();
+ }
+
+ public static class PrecomputedTextCompat.Params.Builder {
+ ctor public PrecomputedTextCompat.Params.Builder(android.text.TextPaint);
+ method public androidx.core.text.PrecomputedTextCompat.Params build();
+ method @RequiresApi(23) public androidx.core.text.PrecomputedTextCompat.Params.Builder! setBreakStrategy(int);
+ method @RequiresApi(23) public androidx.core.text.PrecomputedTextCompat.Params.Builder! setHyphenationFrequency(int);
+ method @RequiresApi(18) public androidx.core.text.PrecomputedTextCompat.Params.Builder! setTextDirection(android.text.TextDirectionHeuristic);
+ }
+
+ public interface TextDirectionHeuristicCompat {
+ method public boolean isRtl(char[]!, int, int);
+ method public boolean isRtl(CharSequence!, int, int);
+ }
+
+ public final class TextDirectionHeuristicsCompat {
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! ANYRTL_LTR;
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! FIRSTSTRONG_LTR;
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! FIRSTSTRONG_RTL;
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! LOCALE;
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! LTR;
+ field public static final androidx.core.text.TextDirectionHeuristicCompat! RTL;
+ }
+
+ public final class TextUtilsCompat {
+ method public static int getLayoutDirectionFromLocale(java.util.Locale?);
+ method public static String htmlEncode(String);
+ }
+
+}
+
+package androidx.core.text.util {
+
+ public final class LinkifyCompat {
+ method public static boolean addLinks(android.text.Spannable, @androidx.core.text.util.LinkifyCompat.LinkifyMask int);
+ method public static boolean addLinks(android.widget.TextView, @androidx.core.text.util.LinkifyCompat.LinkifyMask int);
+ method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, String?);
+ method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, String?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+ method public static void addLinks(android.widget.TextView, java.util.regex.Pattern, String?, String![]?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+ method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, String?);
+ method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, String?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+ method public static boolean addLinks(android.text.Spannable, java.util.regex.Pattern, String?, String![]?, android.text.util.Linkify.MatchFilter?, android.text.util.Linkify.TransformFilter?);
+ }
+
+ @IntDef(flag=true, value={android.text.util.Linkify.WEB_URLS, android.text.util.Linkify.EMAIL_ADDRESSES, android.text.util.Linkify.PHONE_NUMBERS, android.text.util.Linkify.MAP_ADDRESSES, android.text.util.Linkify.ALL}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface LinkifyCompat.LinkifyMask {
+ }
+
+}
+
+package androidx.core.util {
+
+ public class AtomicFile {
+ ctor public AtomicFile(java.io.File);
+ method public void delete();
+ method public void failWrite(java.io.FileOutputStream?);
+ method public void finishWrite(java.io.FileOutputStream?);
+ method public java.io.File getBaseFile();
+ method public java.io.FileInputStream openRead() throws java.io.FileNotFoundException;
+ method public byte[] readFully() throws java.io.IOException;
+ method public java.io.FileOutputStream startWrite() throws java.io.IOException;
+ }
+
+ public interface Consumer<T> {
+ method public void accept(T!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class DebugUtils {
+ method public static void buildShortClassTag(Object!, StringBuilder!);
+ }
+
+ @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class LogWriter extends java.io.Writer {
+ ctor @Deprecated public LogWriter(String!);
+ method @Deprecated public void close();
+ method @Deprecated public void flush();
+ method @Deprecated public void write(char[]!, int, int);
+ }
+
+ public class ObjectsCompat {
+ method public static boolean equals(Object?, Object?);
+ method public static int hash(java.lang.Object!...);
+ method public static int hashCode(Object?);
+ method public static <T> T requireNonNull(T?);
+ method public static <T> T requireNonNull(T?, String);
+ method public static String? toString(Object?, String?);
+ }
+
+ public class Pair<F, S> {
+ ctor public Pair(F!, S!);
+ method public static <A, B> androidx.core.util.Pair<A!,B!> create(A!, B!);
+ field public final F! first;
+ field public final S! second;
+ }
+
+ public final class PatternsCompat {
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final java.util.regex.Pattern AUTOLINK_EMAIL_ADDRESS;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final java.util.regex.Pattern AUTOLINK_WEB_URL;
+ field public static final java.util.regex.Pattern DOMAIN_NAME;
+ field public static final java.util.regex.Pattern EMAIL_ADDRESS;
+ field public static final java.util.regex.Pattern IP_ADDRESS;
+ field public static final java.util.regex.Pattern WEB_URL;
+ }
+
+ public final class Pools {
+ }
+
+ public static interface Pools.Pool<T> {
+ method public T? acquire();
+ method public boolean release(T);
+ }
+
+ public static class Pools.SimplePool<T> implements androidx.core.util.Pools.Pool<T> {
+ ctor public Pools.SimplePool(int);
+ method public T! acquire();
+ method public boolean release(T);
+ }
+
+ public static class Pools.SynchronizedPool<T> extends androidx.core.util.Pools.SimplePool<T> {
+ ctor public Pools.SynchronizedPool(int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final class Preconditions {
+ method public static void checkArgument(boolean);
+ method public static void checkArgument(boolean, Object);
+ method public static void checkArgument(boolean, String, java.lang.Object!...);
+ method public static float checkArgumentFinite(float, String);
+ method public static int checkArgumentInRange(int, int, int, String);
+ method public static long checkArgumentInRange(long, long, long, String);
+ method public static float checkArgumentInRange(float, float, float, String);
+ method public static double checkArgumentInRange(double, double, double, String);
+ method @IntRange(from=0) public static int checkArgumentNonnegative(int, String?);
+ method @IntRange(from=0) public static int checkArgumentNonnegative(int);
+ method public static int checkFlagsArgument(int, int);
+ method public static <T> T checkNotNull(T?);
+ method public static <T> T checkNotNull(T?, Object);
+ method public static void checkState(boolean, String?);
+ method public static void checkState(boolean);
+ method public static <T extends java.lang.CharSequence> T checkStringNotEmpty(T?);
+ method public static <T extends java.lang.CharSequence> T checkStringNotEmpty(T?, Object);
+ method public static <T extends java.lang.CharSequence> T checkStringNotEmpty(T?, String, java.lang.Object!...);
+ }
+
+ public interface Predicate<T> {
+ method public boolean test(T!);
+ }
+
+ public final class SizeFCompat {
+ ctor public SizeFCompat(float, float);
+ method public float getHeight();
+ method public float getWidth();
+ method @RequiresApi(21) public android.util.SizeF toSizeF();
+ method @RequiresApi(21) public static androidx.core.util.SizeFCompat toSizeFCompat(android.util.SizeF);
+ }
+
+ public interface Supplier<T> {
+ method public T! get();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final class TimeUtils {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static void formatDuration(long, StringBuilder!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static void formatDuration(long, java.io.PrintWriter!, int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static void formatDuration(long, java.io.PrintWriter!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static void formatDuration(long, long, java.io.PrintWriter!);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final int HUNDRED_DAY_FIELD_LEN = 19; // 0x13
+ }
+
+}
+
+package androidx.core.view {
+
+ public class AccessibilityDelegateCompat {
+ ctor public AccessibilityDelegateCompat();
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public AccessibilityDelegateCompat(android.view.View.AccessibilityDelegate);
+ method public boolean dispatchPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+ method public androidx.core.view.accessibility.AccessibilityNodeProviderCompat? getAccessibilityNodeProvider(android.view.View);
+ method public void onInitializeAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+ method public void onInitializeAccessibilityNodeInfo(android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat);
+ method public void onPopulateAccessibilityEvent(android.view.View, android.view.accessibility.AccessibilityEvent);
+ method public boolean onRequestSendAccessibilityEvent(android.view.ViewGroup, android.view.View, android.view.accessibility.AccessibilityEvent);
+ method public boolean performAccessibilityAction(android.view.View, int, android.os.Bundle?);
+ method public void sendAccessibilityEvent(android.view.View, int);
+ method public void sendAccessibilityEventUnchecked(android.view.View, android.view.accessibility.AccessibilityEvent);
+ }
+
+ public abstract class ActionProvider {
+ ctor public ActionProvider(android.content.Context);
+ method public android.content.Context getContext();
+ method public boolean hasSubMenu();
+ method public boolean isVisible();
+ method public abstract android.view.View onCreateActionView();
+ method public android.view.View onCreateActionView(android.view.MenuItem);
+ method public boolean onPerformDefaultAction();
+ method public void onPrepareSubMenu(android.view.SubMenu);
+ method public boolean overridesItemVisibility();
+ method public void refreshVisibility();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void reset();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setSubUiVisibilityListener(androidx.core.view.ActionProvider.SubUiVisibilityListener?);
+ method public void setVisibilityListener(androidx.core.view.ActionProvider.VisibilityListener?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void subUiVisibilityChanged(boolean);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static interface ActionProvider.SubUiVisibilityListener {
+ method public void onSubUiVisibilityChanged(boolean);
+ }
+
+ public static interface ActionProvider.VisibilityListener {
+ method public void onActionProviderVisibilityChanged(boolean);
+ }
+
+ public final class ContentInfoCompat {
+ method public android.content.ClipData getClip();
+ method public android.os.Bundle? getExtras();
+ method @androidx.core.view.ContentInfoCompat.Flags public int getFlags();
+ method public android.net.Uri? getLinkUri();
+ method @androidx.core.view.ContentInfoCompat.Source public int getSource();
+ method public android.util.Pair<androidx.core.view.ContentInfoCompat!,androidx.core.view.ContentInfoCompat!> partition(androidx.core.util.Predicate<android.content.ClipData.Item!>);
+ method @RequiresApi(31) public static android.util.Pair<android.view.ContentInfo!,android.view.ContentInfo!> partition(android.view.ContentInfo, java.util.function.Predicate<android.content.ClipData.Item!>);
+ method @RequiresApi(31) public android.view.ContentInfo toContentInfo();
+ method @RequiresApi(31) public static androidx.core.view.ContentInfoCompat toContentInfoCompat(android.view.ContentInfo);
+ field public static final int FLAG_CONVERT_TO_PLAIN_TEXT = 1; // 0x1
+ field public static final int SOURCE_APP = 0; // 0x0
+ field public static final int SOURCE_AUTOFILL = 4; // 0x4
+ field public static final int SOURCE_CLIPBOARD = 1; // 0x1
+ field public static final int SOURCE_DRAG_AND_DROP = 3; // 0x3
+ field public static final int SOURCE_INPUT_METHOD = 2; // 0x2
+ field public static final int SOURCE_PROCESS_TEXT = 5; // 0x5
+ }
+
+ public static final class ContentInfoCompat.Builder {
+ ctor public ContentInfoCompat.Builder(androidx.core.view.ContentInfoCompat);
+ ctor public ContentInfoCompat.Builder(android.content.ClipData, @androidx.core.view.ContentInfoCompat.Source int);
+ method public androidx.core.view.ContentInfoCompat build();
+ method public androidx.core.view.ContentInfoCompat.Builder setClip(android.content.ClipData);
+ method public androidx.core.view.ContentInfoCompat.Builder setExtras(android.os.Bundle?);
+ method public androidx.core.view.ContentInfoCompat.Builder setFlags(@androidx.core.view.ContentInfoCompat.Flags int);
+ method public androidx.core.view.ContentInfoCompat.Builder setLinkUri(android.net.Uri?);
+ method public androidx.core.view.ContentInfoCompat.Builder setSource(@androidx.core.view.ContentInfoCompat.Source int);
+ }
+
+ @IntDef(flag=true, value={androidx.core.view.ContentInfoCompat.FLAG_CONVERT_TO_PLAIN_TEXT}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ContentInfoCompat.Flags {
+ }
+
+ @IntDef({androidx.core.view.ContentInfoCompat.SOURCE_APP, androidx.core.view.ContentInfoCompat.SOURCE_CLIPBOARD, androidx.core.view.ContentInfoCompat.SOURCE_INPUT_METHOD, androidx.core.view.ContentInfoCompat.SOURCE_DRAG_AND_DROP, androidx.core.view.ContentInfoCompat.SOURCE_AUTOFILL, androidx.core.view.ContentInfoCompat.SOURCE_PROCESS_TEXT}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ContentInfoCompat.Source {
+ }
+
+ public final class DisplayCompat {
+ method public static androidx.core.view.DisplayCompat.ModeCompat getMode(android.content.Context, android.view.Display);
+ method public static androidx.core.view.DisplayCompat.ModeCompat![] getSupportedModes(android.content.Context, android.view.Display);
+ }
+
+ public static final class DisplayCompat.ModeCompat {
+ method public int getPhysicalHeight();
+ method public int getPhysicalWidth();
+ method @Deprecated public boolean isNative();
+ method @RequiresApi(android.os.Build.VERSION_CODES.M) public android.view.Display.Mode? toMode();
+ }
+
+ public final class DisplayCutoutCompat {
+ ctor public DisplayCutoutCompat(android.graphics.Rect?, java.util.List<android.graphics.Rect!>?);
+ ctor public DisplayCutoutCompat(androidx.core.graphics.Insets, android.graphics.Rect?, android.graphics.Rect?, android.graphics.Rect?, android.graphics.Rect?, androidx.core.graphics.Insets);
+ method public java.util.List<android.graphics.Rect!> getBoundingRects();
+ method public int getSafeInsetBottom();
+ method public int getSafeInsetLeft();
+ method public int getSafeInsetRight();
+ method public int getSafeInsetTop();
+ method public androidx.core.graphics.Insets getWaterfallInsets();
+ }
+
+ public final class DragAndDropPermissionsCompat {
+ method public void release();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static androidx.core.view.DragAndDropPermissionsCompat? request(android.app.Activity, android.view.DragEvent);
+ }
+
+ public class DragStartHelper {
+ ctor public DragStartHelper(android.view.View, androidx.core.view.DragStartHelper.OnDragStartListener);
+ method public void attach();
+ method public void detach();
+ method public void getTouchPosition(android.graphics.Point);
+ method public boolean onLongClick(android.view.View);
+ method public boolean onTouch(android.view.View, android.view.MotionEvent);
+ }
+
+ public static interface DragStartHelper.OnDragStartListener {
+ method public boolean onDragStart(android.view.View, androidx.core.view.DragStartHelper);
+ }
+
+ public final class GestureDetectorCompat {
+ ctor public GestureDetectorCompat(android.content.Context, android.view.GestureDetector.OnGestureListener);
+ ctor public GestureDetectorCompat(android.content.Context, android.view.GestureDetector.OnGestureListener, android.os.Handler?);
+ method public boolean isLongpressEnabled();
+ method public boolean onTouchEvent(android.view.MotionEvent);
+ method public void setIsLongpressEnabled(boolean);
+ method public void setOnDoubleTapListener(android.view.GestureDetector.OnDoubleTapListener?);
+ }
+
+ public final class GravityCompat {
+ method public static void apply(int, int, int, android.graphics.Rect, android.graphics.Rect, int);
+ method public static void apply(int, int, int, android.graphics.Rect, int, int, android.graphics.Rect, int);
+ method public static void applyDisplay(int, android.graphics.Rect, android.graphics.Rect, int);
+ method public static int getAbsoluteGravity(int, int);
+ field public static final int END = 8388613; // 0x800005
+ field public static final int RELATIVE_HORIZONTAL_GRAVITY_MASK = 8388615; // 0x800007
+ field public static final int RELATIVE_LAYOUT_DIRECTION = 8388608; // 0x800000
+ field public static final int START = 8388611; // 0x800003
+ }
+
+ public final class InputDeviceCompat {
+ field public static final int SOURCE_ANY = -256; // 0xffffff00
+ field public static final int SOURCE_CLASS_BUTTON = 1; // 0x1
+ field public static final int SOURCE_CLASS_JOYSTICK = 16; // 0x10
+ field public static final int SOURCE_CLASS_MASK = 255; // 0xff
+ field public static final int SOURCE_CLASS_NONE = 0; // 0x0
+ field public static final int SOURCE_CLASS_POINTER = 2; // 0x2
+ field public static final int SOURCE_CLASS_POSITION = 8; // 0x8
+ field public static final int SOURCE_CLASS_TRACKBALL = 4; // 0x4
+ field public static final int SOURCE_DPAD = 513; // 0x201
+ field public static final int SOURCE_GAMEPAD = 1025; // 0x401
+ field public static final int SOURCE_HDMI = 33554433; // 0x2000001
+ field public static final int SOURCE_JOYSTICK = 16777232; // 0x1000010
+ field public static final int SOURCE_KEYBOARD = 257; // 0x101
+ field public static final int SOURCE_MOUSE = 8194; // 0x2002
+ field public static final int SOURCE_ROTARY_ENCODER = 4194304; // 0x400000
+ field public static final int SOURCE_STYLUS = 16386; // 0x4002
+ field public static final int SOURCE_TOUCHPAD = 1048584; // 0x100008
+ field public static final int SOURCE_TOUCHSCREEN = 4098; // 0x1002
+ field public static final int SOURCE_TOUCH_NAVIGATION = 2097152; // 0x200000
+ field public static final int SOURCE_TRACKBALL = 65540; // 0x10004
+ field public static final int SOURCE_UNKNOWN = 0; // 0x0
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class KeyEventDispatcher {
+ method public static boolean dispatchBeforeHierarchy(android.view.View, android.view.KeyEvent);
+ method public static boolean dispatchKeyEvent(androidx.core.view.KeyEventDispatcher.Component, android.view.View?, android.view.Window.Callback?, android.view.KeyEvent);
+ }
+
+ public static interface KeyEventDispatcher.Component {
+ method public boolean superDispatchKeyEvent(android.view.KeyEvent);
+ }
+
+ public final class LayoutInflaterCompat {
+ method @Deprecated public static androidx.core.view.LayoutInflaterFactory! getFactory(android.view.LayoutInflater!);
+ method @Deprecated public static void setFactory(android.view.LayoutInflater, androidx.core.view.LayoutInflaterFactory);
+ method public static void setFactory2(android.view.LayoutInflater, android.view.LayoutInflater.Factory2);
+ }
+
+ @Deprecated public interface LayoutInflaterFactory {
+ method @Deprecated public android.view.View! onCreateView(android.view.View!, String!, android.content.Context!, android.util.AttributeSet!);
+ }
+
+ public final class MarginLayoutParamsCompat {
+ method public static int getLayoutDirection(android.view.ViewGroup.MarginLayoutParams);
+ method public static int getMarginEnd(android.view.ViewGroup.MarginLayoutParams);
+ method public static int getMarginStart(android.view.ViewGroup.MarginLayoutParams);
+ method public static boolean isMarginRelative(android.view.ViewGroup.MarginLayoutParams);
+ method public static void resolveLayoutDirection(android.view.ViewGroup.MarginLayoutParams, int);
+ method public static void setLayoutDirection(android.view.ViewGroup.MarginLayoutParams, int);
+ method public static void setMarginEnd(android.view.ViewGroup.MarginLayoutParams, int);
+ method public static void setMarginStart(android.view.ViewGroup.MarginLayoutParams, int);
+ }
+
+ public final class MenuCompat {
+ method public static void setGroupDividerEnabled(android.view.Menu, boolean);
+ method @Deprecated public static void setShowAsAction(android.view.MenuItem!, int);
+ }
+
+ public interface MenuHost {
+ method public void addMenuProvider(androidx.core.view.MenuProvider);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State);
+ method public void invalidateMenu();
+ method public void removeMenuProvider(androidx.core.view.MenuProvider);
+ }
+
+ public class MenuHostHelper {
+ ctor public MenuHostHelper(Runnable);
+ method public void addMenuProvider(androidx.core.view.MenuProvider);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner);
+ method public void addMenuProvider(androidx.core.view.MenuProvider, androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State);
+ method public void onCreateMenu(android.view.Menu, android.view.MenuInflater);
+ method public void onMenuClosed(android.view.Menu);
+ method public boolean onMenuItemSelected(android.view.MenuItem);
+ method public void onPrepareMenu(android.view.Menu);
+ method public void removeMenuProvider(androidx.core.view.MenuProvider);
+ }
+
+ public final class MenuItemCompat {
+ method @Deprecated public static boolean collapseActionView(android.view.MenuItem!);
+ method @Deprecated public static boolean expandActionView(android.view.MenuItem!);
+ method public static androidx.core.view.ActionProvider? getActionProvider(android.view.MenuItem);
+ method @Deprecated public static android.view.View! getActionView(android.view.MenuItem!);
+ method public static int getAlphabeticModifiers(android.view.MenuItem);
+ method public static CharSequence? getContentDescription(android.view.MenuItem);
+ method public static android.content.res.ColorStateList? getIconTintList(android.view.MenuItem);
+ method public static android.graphics.PorterDuff.Mode? getIconTintMode(android.view.MenuItem);
+ method public static int getNumericModifiers(android.view.MenuItem);
+ method public static CharSequence? getTooltipText(android.view.MenuItem);
+ method @Deprecated public static boolean isActionViewExpanded(android.view.MenuItem!);
+ method public static android.view.MenuItem? setActionProvider(android.view.MenuItem, androidx.core.view.ActionProvider?);
+ method @Deprecated public static android.view.MenuItem! setActionView(android.view.MenuItem!, android.view.View!);
+ method @Deprecated public static android.view.MenuItem! setActionView(android.view.MenuItem!, int);
+ method public static void setAlphabeticShortcut(android.view.MenuItem, char, int);
+ method public static void setContentDescription(android.view.MenuItem, CharSequence?);
+ method public static void setIconTintList(android.view.MenuItem, android.content.res.ColorStateList?);
+ method public static void setIconTintMode(android.view.MenuItem, android.graphics.PorterDuff.Mode?);
+ method public static void setNumericShortcut(android.view.MenuItem, char, int);
+ method @Deprecated public static android.view.MenuItem! setOnActionExpandListener(android.view.MenuItem!, androidx.core.view.MenuItemCompat.OnActionExpandListener!);
+ method public static void setShortcut(android.view.MenuItem, char, char, int, int);
+ method @Deprecated public static void setShowAsAction(android.view.MenuItem!, int);
+ method public static void setTooltipText(android.view.MenuItem, CharSequence?);
+ field @Deprecated public static final int SHOW_AS_ACTION_ALWAYS = 2; // 0x2
+ field @Deprecated public static final int SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW = 8; // 0x8
+ field @Deprecated public static final int SHOW_AS_ACTION_IF_ROOM = 1; // 0x1
+ field @Deprecated public static final int SHOW_AS_ACTION_NEVER = 0; // 0x0
+ field @Deprecated public static final int SHOW_AS_ACTION_WITH_TEXT = 4; // 0x4
+ }
+
+ @Deprecated public static interface MenuItemCompat.OnActionExpandListener {
+ method @Deprecated public boolean onMenuItemActionCollapse(android.view.MenuItem!);
+ method @Deprecated public boolean onMenuItemActionExpand(android.view.MenuItem!);
+ }
+
+ public interface MenuProvider {
+ method public void onCreateMenu(android.view.Menu, android.view.MenuInflater);
+ method public default void onMenuClosed(android.view.Menu);
+ method public boolean onMenuItemSelected(android.view.MenuItem);
+ method public default void onPrepareMenu(android.view.Menu);
+ }
+
+ public final class MotionEventCompat {
+ method @Deprecated public static int findPointerIndex(android.view.MotionEvent!, int);
+ method @Deprecated public static int getActionIndex(android.view.MotionEvent!);
+ method @Deprecated public static int getActionMasked(android.view.MotionEvent!);
+ method @Deprecated public static float getAxisValue(android.view.MotionEvent!, int);
+ method @Deprecated public static float getAxisValue(android.view.MotionEvent!, int, int);
+ method @Deprecated public static int getButtonState(android.view.MotionEvent!);
+ method @Deprecated public static int getPointerCount(android.view.MotionEvent!);
+ method @Deprecated public static int getPointerId(android.view.MotionEvent!, int);
+ method @Deprecated public static int getSource(android.view.MotionEvent!);
+ method @Deprecated public static float getX(android.view.MotionEvent!, int);
+ method @Deprecated public static float getY(android.view.MotionEvent!, int);
+ method public static boolean isFromSource(android.view.MotionEvent, int);
+ field @Deprecated public static final int ACTION_HOVER_ENTER = 9; // 0x9
+ field @Deprecated public static final int ACTION_HOVER_EXIT = 10; // 0xa
+ field @Deprecated public static final int ACTION_HOVER_MOVE = 7; // 0x7
+ field @Deprecated public static final int ACTION_MASK = 255; // 0xff
+ field @Deprecated public static final int ACTION_POINTER_DOWN = 5; // 0x5
+ field @Deprecated public static final int ACTION_POINTER_INDEX_MASK = 65280; // 0xff00
+ field @Deprecated public static final int ACTION_POINTER_INDEX_SHIFT = 8; // 0x8
+ field @Deprecated public static final int ACTION_POINTER_UP = 6; // 0x6
+ field @Deprecated public static final int ACTION_SCROLL = 8; // 0x8
+ field @Deprecated public static final int AXIS_BRAKE = 23; // 0x17
+ field @Deprecated public static final int AXIS_DISTANCE = 24; // 0x18
+ field @Deprecated public static final int AXIS_GAS = 22; // 0x16
+ field @Deprecated public static final int AXIS_GENERIC_1 = 32; // 0x20
+ field @Deprecated public static final int AXIS_GENERIC_10 = 41; // 0x29
+ field @Deprecated public static final int AXIS_GENERIC_11 = 42; // 0x2a
+ field @Deprecated public static final int AXIS_GENERIC_12 = 43; // 0x2b
+ field @Deprecated public static final int AXIS_GENERIC_13 = 44; // 0x2c
+ field @Deprecated public static final int AXIS_GENERIC_14 = 45; // 0x2d
+ field @Deprecated public static final int AXIS_GENERIC_15 = 46; // 0x2e
+ field @Deprecated public static final int AXIS_GENERIC_16 = 47; // 0x2f
+ field @Deprecated public static final int AXIS_GENERIC_2 = 33; // 0x21
+ field @Deprecated public static final int AXIS_GENERIC_3 = 34; // 0x22
+ field @Deprecated public static final int AXIS_GENERIC_4 = 35; // 0x23
+ field @Deprecated public static final int AXIS_GENERIC_5 = 36; // 0x24
+ field @Deprecated public static final int AXIS_GENERIC_6 = 37; // 0x25
+ field @Deprecated public static final int AXIS_GENERIC_7 = 38; // 0x26
+ field @Deprecated public static final int AXIS_GENERIC_8 = 39; // 0x27
+ field @Deprecated public static final int AXIS_GENERIC_9 = 40; // 0x28
+ field @Deprecated public static final int AXIS_HAT_X = 15; // 0xf
+ field @Deprecated public static final int AXIS_HAT_Y = 16; // 0x10
+ field @Deprecated public static final int AXIS_HSCROLL = 10; // 0xa
+ field @Deprecated public static final int AXIS_LTRIGGER = 17; // 0x11
+ field @Deprecated public static final int AXIS_ORIENTATION = 8; // 0x8
+ field @Deprecated public static final int AXIS_PRESSURE = 2; // 0x2
+ field public static final int AXIS_RELATIVE_X = 27; // 0x1b
+ field public static final int AXIS_RELATIVE_Y = 28; // 0x1c
+ field @Deprecated public static final int AXIS_RTRIGGER = 18; // 0x12
+ field @Deprecated public static final int AXIS_RUDDER = 20; // 0x14
+ field @Deprecated public static final int AXIS_RX = 12; // 0xc
+ field @Deprecated public static final int AXIS_RY = 13; // 0xd
+ field @Deprecated public static final int AXIS_RZ = 14; // 0xe
+ field public static final int AXIS_SCROLL = 26; // 0x1a
+ field @Deprecated public static final int AXIS_SIZE = 3; // 0x3
+ field @Deprecated public static final int AXIS_THROTTLE = 19; // 0x13
+ field @Deprecated public static final int AXIS_TILT = 25; // 0x19
+ field @Deprecated public static final int AXIS_TOOL_MAJOR = 6; // 0x6
+ field @Deprecated public static final int AXIS_TOOL_MINOR = 7; // 0x7
+ field @Deprecated public static final int AXIS_TOUCH_MAJOR = 4; // 0x4
+ field @Deprecated public static final int AXIS_TOUCH_MINOR = 5; // 0x5
+ field @Deprecated public static final int AXIS_VSCROLL = 9; // 0x9
+ field @Deprecated public static final int AXIS_WHEEL = 21; // 0x15
+ field @Deprecated public static final int AXIS_X = 0; // 0x0
+ field @Deprecated public static final int AXIS_Y = 1; // 0x1
+ field @Deprecated public static final int AXIS_Z = 11; // 0xb
+ field @Deprecated public static final int BUTTON_PRIMARY = 1; // 0x1
+ }
+
+ public interface NestedScrollingChild {
+ method public boolean dispatchNestedFling(float, float, boolean);
+ method public boolean dispatchNestedPreFling(float, float);
+ method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?);
+ method public boolean dispatchNestedScroll(int, int, int, int, int[]?);
+ method public boolean hasNestedScrollingParent();
+ method public boolean isNestedScrollingEnabled();
+ method public void setNestedScrollingEnabled(boolean);
+ method public boolean startNestedScroll(@androidx.core.view.ViewCompat.ScrollAxis int);
+ method public void stopNestedScroll();
+ }
+
+ public interface NestedScrollingChild2 extends androidx.core.view.NestedScrollingChild {
+ method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int);
+ method public boolean dispatchNestedScroll(int, int, int, int, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int);
+ method public boolean hasNestedScrollingParent(@androidx.core.view.ViewCompat.NestedScrollType int);
+ method public boolean startNestedScroll(@androidx.core.view.ViewCompat.ScrollAxis int, @androidx.core.view.ViewCompat.NestedScrollType int);
+ method public void stopNestedScroll(@androidx.core.view.ViewCompat.NestedScrollType int);
+ }
+
+ public interface NestedScrollingChild3 extends androidx.core.view.NestedScrollingChild2 {
+ method public void dispatchNestedScroll(int, int, int, int, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int, int[]);
+ }
+
+ public class NestedScrollingChildHelper {
+ ctor public NestedScrollingChildHelper(android.view.View);
+ method public boolean dispatchNestedFling(float, float, boolean);
+ method public boolean dispatchNestedPreFling(float, float);
+ method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?);
+ method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int);
+ method public boolean dispatchNestedScroll(int, int, int, int, int[]?);
+ method public boolean dispatchNestedScroll(int, int, int, int, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int);
+ method public void dispatchNestedScroll(int, int, int, int, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int, int[]?);
+ method public boolean hasNestedScrollingParent();
+ method public boolean hasNestedScrollingParent(@androidx.core.view.ViewCompat.NestedScrollType int);
+ method public boolean isNestedScrollingEnabled();
+ method public void onDetachedFromWindow();
+ method public void onStopNestedScroll(android.view.View);
+ method public void setNestedScrollingEnabled(boolean);
+ method public boolean startNestedScroll(@androidx.core.view.ViewCompat.ScrollAxis int);
+ method public boolean startNestedScroll(@androidx.core.view.ViewCompat.ScrollAxis int, @androidx.core.view.ViewCompat.NestedScrollType int);
+ method public void stopNestedScroll();
+ method public void stopNestedScroll(@androidx.core.view.ViewCompat.NestedScrollType int);
+ }
+
+ public interface NestedScrollingParent {
+ method @androidx.core.view.ViewCompat.ScrollAxis public int getNestedScrollAxes();
+ method public boolean onNestedFling(android.view.View, float, float, boolean);
+ method public boolean onNestedPreFling(android.view.View, float, float);
+ method public void onNestedPreScroll(android.view.View, int, int, int[]);
+ method public void onNestedScroll(android.view.View, int, int, int, int);
+ method public void onNestedScrollAccepted(android.view.View, android.view.View, @androidx.core.view.ViewCompat.ScrollAxis int);
+ method public boolean onStartNestedScroll(android.view.View, android.view.View, @androidx.core.view.ViewCompat.ScrollAxis int);
+ method public void onStopNestedScroll(android.view.View);
+ }
+
+ public interface NestedScrollingParent2 extends androidx.core.view.NestedScrollingParent {
+ method public void onNestedPreScroll(android.view.View, int, int, int[], @androidx.core.view.ViewCompat.NestedScrollType int);
+ method public void onNestedScroll(android.view.View, int, int, int, int, @androidx.core.view.ViewCompat.NestedScrollType int);
+ method public void onNestedScrollAccepted(android.view.View, android.view.View, @androidx.core.view.ViewCompat.ScrollAxis int, @androidx.core.view.ViewCompat.NestedScrollType int);
+ method public boolean onStartNestedScroll(android.view.View, android.view.View, @androidx.core.view.ViewCompat.ScrollAxis int, @androidx.core.view.ViewCompat.NestedScrollType int);
+ method public void onStopNestedScroll(android.view.View, @androidx.core.view.ViewCompat.NestedScrollType int);
+ }
+
+ public interface NestedScrollingParent3 extends androidx.core.view.NestedScrollingParent2 {
+ method public void onNestedScroll(android.view.View, int, int, int, int, @androidx.core.view.ViewCompat.NestedScrollType int, int[]);
+ }
+
+ public class NestedScrollingParentHelper {
+ ctor public NestedScrollingParentHelper(android.view.ViewGroup);
+ method @androidx.core.view.ViewCompat.ScrollAxis public int getNestedScrollAxes();
+ method public void onNestedScrollAccepted(android.view.View, android.view.View, @androidx.core.view.ViewCompat.ScrollAxis int);
+ method public void onNestedScrollAccepted(android.view.View, android.view.View, @androidx.core.view.ViewCompat.ScrollAxis int, @androidx.core.view.ViewCompat.NestedScrollType int);
+ method public void onStopNestedScroll(android.view.View);
+ method public void onStopNestedScroll(android.view.View, @androidx.core.view.ViewCompat.NestedScrollType int);
+ }
+
+ public interface OnApplyWindowInsetsListener {
+ method public androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat);
+ }
+
+ public interface OnReceiveContentListener {
+ method public androidx.core.view.ContentInfoCompat? onReceiveContent(android.view.View, androidx.core.view.ContentInfoCompat);
+ }
+
+ public interface OnReceiveContentViewBehavior {
+ method public androidx.core.view.ContentInfoCompat? onReceiveContent(androidx.core.view.ContentInfoCompat);
+ }
+
+ public final class OneShotPreDrawListener implements android.view.View.OnAttachStateChangeListener android.view.ViewTreeObserver.OnPreDrawListener {
+ method public static androidx.core.view.OneShotPreDrawListener add(android.view.View, Runnable);
+ method public boolean onPreDraw();
+ method public void onViewAttachedToWindow(android.view.View);
+ method public void onViewDetachedFromWindow(android.view.View);
+ method public void removeListener();
+ }
+
+ public final class PointerIconCompat {
+ method public static androidx.core.view.PointerIconCompat create(android.graphics.Bitmap, float, float);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public Object? getPointerIcon();
+ method public static androidx.core.view.PointerIconCompat getSystemIcon(android.content.Context, int);
+ method public static androidx.core.view.PointerIconCompat load(android.content.res.Resources, int);
+ field public static final int TYPE_ALIAS = 1010; // 0x3f2
+ field public static final int TYPE_ALL_SCROLL = 1013; // 0x3f5
+ field public static final int TYPE_ARROW = 1000; // 0x3e8
+ field public static final int TYPE_CELL = 1006; // 0x3ee
+ field public static final int TYPE_CONTEXT_MENU = 1001; // 0x3e9
+ field public static final int TYPE_COPY = 1011; // 0x3f3
+ field public static final int TYPE_CROSSHAIR = 1007; // 0x3ef
+ field public static final int TYPE_DEFAULT = 1000; // 0x3e8
+ field public static final int TYPE_GRAB = 1020; // 0x3fc
+ field public static final int TYPE_GRABBING = 1021; // 0x3fd
+ field public static final int TYPE_HAND = 1002; // 0x3ea
+ field public static final int TYPE_HELP = 1003; // 0x3eb
+ field public static final int TYPE_HORIZONTAL_DOUBLE_ARROW = 1014; // 0x3f6
+ field public static final int TYPE_NO_DROP = 1012; // 0x3f4
+ field public static final int TYPE_NULL = 0; // 0x0
+ field public static final int TYPE_TEXT = 1008; // 0x3f0
+ field public static final int TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW = 1017; // 0x3f9
+ field public static final int TYPE_TOP_RIGHT_DIAGONAL_DOUBLE_ARROW = 1016; // 0x3f8
+ field public static final int TYPE_VERTICAL_DOUBLE_ARROW = 1015; // 0x3f7
+ field public static final int TYPE_VERTICAL_TEXT = 1009; // 0x3f1
+ field public static final int TYPE_WAIT = 1004; // 0x3ec
+ field public static final int TYPE_ZOOM_IN = 1018; // 0x3fa
+ field public static final int TYPE_ZOOM_OUT = 1019; // 0x3fb
+ }
+
+ public final class ScaleGestureDetectorCompat {
+ method @Deprecated public static boolean isQuickScaleEnabled(Object!);
+ method public static boolean isQuickScaleEnabled(android.view.ScaleGestureDetector);
+ method @Deprecated public static void setQuickScaleEnabled(Object!, boolean);
+ method public static void setQuickScaleEnabled(android.view.ScaleGestureDetector, boolean);
+ }
+
+ public interface ScrollingView {
+ method public int computeHorizontalScrollExtent();
+ method public int computeHorizontalScrollOffset();
+ method public int computeHorizontalScrollRange();
+ method public int computeVerticalScrollExtent();
+ method public int computeVerticalScrollOffset();
+ method public int computeVerticalScrollRange();
+ }
+
+ public interface TintableBackgroundView {
+ method public android.content.res.ColorStateList? getSupportBackgroundTintList();
+ method public android.graphics.PorterDuff.Mode? getSupportBackgroundTintMode();
+ method public void setSupportBackgroundTintList(android.content.res.ColorStateList?);
+ method public void setSupportBackgroundTintMode(android.graphics.PorterDuff.Mode?);
+ }
+
+ @Deprecated public final class VelocityTrackerCompat {
+ method @Deprecated public static float getXVelocity(android.view.VelocityTracker!, int);
+ method @Deprecated public static float getYVelocity(android.view.VelocityTracker!, int);
+ }
+
+ public class ViewCompat {
+ ctor @Deprecated protected ViewCompat();
+ method public static int addAccessibilityAction(android.view.View, CharSequence, androidx.core.view.accessibility.AccessibilityViewCommand);
+ method public static void addKeyboardNavigationClusters(android.view.View, java.util.Collection<android.view.View!>, int);
+ method public static void addOnUnhandledKeyEventListener(android.view.View, androidx.core.view.ViewCompat.OnUnhandledKeyEventListenerCompat);
+ method public static androidx.core.view.ViewPropertyAnimatorCompat animate(android.view.View);
+ method @Deprecated public static boolean canScrollHorizontally(android.view.View!, int);
+ method @Deprecated public static boolean canScrollVertically(android.view.View!, int);
+ method public static void cancelDragAndDrop(android.view.View);
+ method @Deprecated public static int combineMeasuredStates(int, int);
+ method public static androidx.core.view.WindowInsetsCompat computeSystemWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat, android.graphics.Rect);
+ method public static androidx.core.view.WindowInsetsCompat dispatchApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat);
+ method public static void dispatchFinishTemporaryDetach(android.view.View);
+ method public static boolean dispatchNestedFling(android.view.View, float, float, boolean);
+ method public static boolean dispatchNestedPreFling(android.view.View, float, float);
+ method public static boolean dispatchNestedPreScroll(android.view.View, int, int, int[]?, int[]?);
+ method public static boolean dispatchNestedPreScroll(android.view.View, int, int, int[]?, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int);
+ method public static boolean dispatchNestedScroll(android.view.View, int, int, int, int, int[]?);
+ method public static void dispatchNestedScroll(android.view.View, int, int, int, int, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int, int[]);
+ method public static boolean dispatchNestedScroll(android.view.View, int, int, int, int, int[]?, @androidx.core.view.ViewCompat.NestedScrollType int);
+ method public static void dispatchStartTemporaryDetach(android.view.View);
+ method public static void enableAccessibleClickableSpanSupport(android.view.View);
+ method public static int generateViewId();
+ method public static androidx.core.view.AccessibilityDelegateCompat? getAccessibilityDelegate(android.view.View);
+ method public static int getAccessibilityLiveRegion(android.view.View);
+ method public static androidx.core.view.accessibility.AccessibilityNodeProviderCompat? getAccessibilityNodeProvider(android.view.View);
+ method @UiThread public static CharSequence? getAccessibilityPaneTitle(android.view.View);
+ method @Deprecated public static float getAlpha(android.view.View!);
+ method public static android.content.res.ColorStateList? getBackgroundTintList(android.view.View);
+ method public static android.graphics.PorterDuff.Mode? getBackgroundTintMode(android.view.View);
+ method public static android.graphics.Rect? getClipBounds(android.view.View);
+ method public static android.view.Display? getDisplay(android.view.View);
+ method public static float getElevation(android.view.View);
+ method public static boolean getFitsSystemWindows(android.view.View);
+ method public static int getImportantForAccessibility(android.view.View);
+ method public static int getImportantForAutofill(android.view.View);
+ method public static int getLabelFor(android.view.View);
+ method @Deprecated public static int getLayerType(android.view.View!);
+ method public static int getLayoutDirection(android.view.View);
+ method @Deprecated public static android.graphics.Matrix? getMatrix(android.view.View!);
+ method @Deprecated public static int getMeasuredHeightAndState(android.view.View!);
+ method @Deprecated public static int getMeasuredState(android.view.View!);
+ method @Deprecated public static int getMeasuredWidthAndState(android.view.View!);
+ method public static int getMinimumHeight(android.view.View);
+ method public static int getMinimumWidth(android.view.View);
+ method public static int getNextClusterForwardId(android.view.View);
+ method public static String![]? getOnReceiveContentMimeTypes(android.view.View);
+ method @Deprecated public static int getOverScrollMode(android.view.View!);
+ method @Px public static int getPaddingEnd(android.view.View);
+ method @Px public static int getPaddingStart(android.view.View);
+ method public static android.view.ViewParent? getParentForAccessibility(android.view.View);
+ method @Deprecated public static float getPivotX(android.view.View!);
+ method @Deprecated public static float getPivotY(android.view.View!);
+ method public static androidx.core.view.WindowInsetsCompat? getRootWindowInsets(android.view.View);
+ method @Deprecated public static float getRotation(android.view.View!);
+ method @Deprecated public static float getRotationX(android.view.View!);
+ method @Deprecated public static float getRotationY(android.view.View!);
+ method @Deprecated public static float getScaleX(android.view.View!);
+ method @Deprecated public static float getScaleY(android.view.View!);
+ method public static int getScrollIndicators(android.view.View);
+ method @UiThread public static CharSequence? getStateDescription(android.view.View);
+ method public static java.util.List<android.graphics.Rect!> getSystemGestureExclusionRects(android.view.View);
+ method public static String? getTransitionName(android.view.View);
+ method @Deprecated public static float getTranslationX(android.view.View!);
+ method @Deprecated public static float getTranslationY(android.view.View!);
+ method public static float getTranslationZ(android.view.View);
+ method @Deprecated public static androidx.core.view.WindowInsetsControllerCompat? getWindowInsetsController(android.view.View);
+ method @Deprecated public static int getWindowSystemUiVisibility(android.view.View);
+ method @Deprecated public static float getX(android.view.View!);
+ method @Deprecated public static float getY(android.view.View!);
+ method public static float getZ(android.view.View);
+ method public static boolean hasAccessibilityDelegate(android.view.View);
+ method public static boolean hasExplicitFocusable(android.view.View);
+ method public static boolean hasNestedScrollingParent(android.view.View);
+ method public static boolean hasNestedScrollingParent(android.view.View, @androidx.core.view.ViewCompat.NestedScrollType int);
+ method public static boolean hasOnClickListeners(android.view.View);
+ method public static boolean hasOverlappingRendering(android.view.View);
+ method public static boolean hasTransientState(android.view.View);
+ method @UiThread public static boolean isAccessibilityHeading(android.view.View);
+ method public static boolean isAttachedToWindow(android.view.View);
+ method public static boolean isFocusedByDefault(android.view.View);
+ method public static boolean isImportantForAccessibility(android.view.View);
+ method public static boolean isImportantForAutofill(android.view.View);
+ method public static boolean isInLayout(android.view.View);
+ method public static boolean isKeyboardNavigationCluster(android.view.View);
+ method public static boolean isLaidOut(android.view.View);
+ method public static boolean isLayoutDirectionResolved(android.view.View);
+ method public static boolean isNestedScrollingEnabled(android.view.View);
+ method @Deprecated public static boolean isOpaque(android.view.View!);
+ method public static boolean isPaddingRelative(android.view.View);
+ method @UiThread public static boolean isScreenReaderFocusable(android.view.View);
+ method @Deprecated public static void jumpDrawablesToCurrentState(android.view.View!);
+ method public static android.view.View? keyboardNavigationClusterSearch(android.view.View, android.view.View?, @androidx.core.view.ViewCompat.FocusDirection int);
+ method public static void offsetLeftAndRight(android.view.View, int);
+ method public static void offsetTopAndBottom(android.view.View, int);
+ method public static androidx.core.view.WindowInsetsCompat onApplyWindowInsets(android.view.View, androidx.core.view.WindowInsetsCompat);
+ method @Deprecated public static void onInitializeAccessibilityEvent(android.view.View!, android.view.accessibility.AccessibilityEvent!);
+ method public static void onInitializeAccessibilityNodeInfo(android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat);
+ method @Deprecated public static void onPopulateAccessibilityEvent(android.view.View!, android.view.accessibility.AccessibilityEvent!);
+ method public static boolean performAccessibilityAction(android.view.View, int, android.os.Bundle?);
+ method public static androidx.core.view.ContentInfoCompat? performReceiveContent(android.view.View, androidx.core.view.ContentInfoCompat);
+ method public static void postInvalidateOnAnimation(android.view.View);
+ method public static void postInvalidateOnAnimation(android.view.View, int, int, int, int);
+ method public static void postOnAnimation(android.view.View, Runnable);
+ method public static void postOnAnimationDelayed(android.view.View, Runnable, long);
+ method public static void removeAccessibilityAction(android.view.View, int);
+ method public static void removeOnUnhandledKeyEventListener(android.view.View, androidx.core.view.ViewCompat.OnUnhandledKeyEventListenerCompat);
+ method public static void replaceAccessibilityAction(android.view.View, androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat, CharSequence?, androidx.core.view.accessibility.AccessibilityViewCommand?);
+ method public static void requestApplyInsets(android.view.View);
+ method public static <T extends android.view.View> T requireViewById(android.view.View, @IdRes int);
+ method @Deprecated public static int resolveSizeAndState(int, int, int);
+ method public static boolean restoreDefaultFocus(android.view.View);
+ method public static void saveAttributeDataForStyleable(android.view.View, android.content.Context, int[], android.util.AttributeSet?, android.content.res.TypedArray, int, int);
+ method public static void setAccessibilityDelegate(android.view.View, androidx.core.view.AccessibilityDelegateCompat?);
+ method @UiThread public static void setAccessibilityHeading(android.view.View, boolean);
+ method public static void setAccessibilityLiveRegion(android.view.View, int);
+ method @UiThread public static void setAccessibilityPaneTitle(android.view.View, CharSequence?);
+ method @Deprecated public static void setActivated(android.view.View!, boolean);
+ method @Deprecated public static void setAlpha(android.view.View!, @FloatRange(from=0.0, to=1.0) float);
+ method public static void setAutofillHints(android.view.View, java.lang.String!...);
+ method public static void setBackground(android.view.View, android.graphics.drawable.Drawable?);
+ method public static void setBackgroundTintList(android.view.View, android.content.res.ColorStateList?);
+ method public static void setBackgroundTintMode(android.view.View, android.graphics.PorterDuff.Mode?);
+ method @Deprecated public static void setChildrenDrawingOrderEnabled(android.view.ViewGroup!, boolean);
+ method public static void setClipBounds(android.view.View, android.graphics.Rect?);
+ method public static void setElevation(android.view.View, float);
+ method @Deprecated public static void setFitsSystemWindows(android.view.View!, boolean);
+ method public static void setFocusedByDefault(android.view.View, boolean);
+ method public static void setHasTransientState(android.view.View, boolean);
+ method @UiThread public static void setImportantForAccessibility(android.view.View, int);
+ method public static void setImportantForAutofill(android.view.View, int);
+ method public static void setKeyboardNavigationCluster(android.view.View, boolean);
+ method public static void setLabelFor(android.view.View, @IdRes int);
+ method public static void setLayerPaint(android.view.View, android.graphics.Paint?);
+ method @Deprecated public static void setLayerType(android.view.View!, int, android.graphics.Paint!);
+ method public static void setLayoutDirection(android.view.View, int);
+ method public static void setNestedScrollingEnabled(android.view.View, boolean);
+ method public static void setNextClusterForwardId(android.view.View, int);
+ method public static void setOnApplyWindowInsetsListener(android.view.View, androidx.core.view.OnApplyWindowInsetsListener?);
+ method public static void setOnReceiveContentListener(android.view.View, String![]?, androidx.core.view.OnReceiveContentListener?);
+ method @Deprecated public static void setOverScrollMode(android.view.View!, int);
+ method public static void setPaddingRelative(android.view.View, @Px int, @Px int, @Px int, @Px int);
+ method @Deprecated public static void setPivotX(android.view.View!, float);
+ method @Deprecated public static void setPivotY(android.view.View!, float);
+ method public static void setPointerIcon(android.view.View, androidx.core.view.PointerIconCompat?);
+ method @Deprecated public static void setRotation(android.view.View!, float);
+ method @Deprecated public static void setRotationX(android.view.View!, float);
+ method @Deprecated public static void setRotationY(android.view.View!, float);
+ method @Deprecated public static void setSaveFromParentEnabled(android.view.View!, boolean);
+ method @Deprecated public static void setScaleX(android.view.View!, float);
+ method @Deprecated public static void setScaleY(android.view.View!, float);
+ method @UiThread public static void setScreenReaderFocusable(android.view.View, boolean);
+ method public static void setScrollIndicators(android.view.View, @androidx.core.view.ViewCompat.ScrollIndicators int);
+ method public static void setScrollIndicators(android.view.View, @androidx.core.view.ViewCompat.ScrollIndicators int, @androidx.core.view.ViewCompat.ScrollIndicators int);
+ method @UiThread public static void setStateDescription(android.view.View, CharSequence?);
+ method public static void setSystemGestureExclusionRects(android.view.View, java.util.List<android.graphics.Rect!>);
+ method public static void setTooltipText(android.view.View, CharSequence?);
+ method public static void setTransitionName(android.view.View, String?);
+ method @Deprecated public static void setTranslationX(android.view.View!, float);
+ method @Deprecated public static void setTranslationY(android.view.View!, float);
+ method public static void setTranslationZ(android.view.View, float);
+ method public static void setWindowInsetsAnimationCallback(android.view.View, androidx.core.view.WindowInsetsAnimationCompat.Callback?);
+ method @Deprecated public static void setX(android.view.View!, float);
+ method @Deprecated public static void setY(android.view.View!, float);
+ method public static void setZ(android.view.View, float);
+ method public static boolean startDragAndDrop(android.view.View, android.content.ClipData?, android.view.View.DragShadowBuilder, Object?, int);
+ method public static boolean startNestedScroll(android.view.View, @androidx.core.view.ViewCompat.ScrollAxis int);
+ method public static boolean startNestedScroll(android.view.View, @androidx.core.view.ViewCompat.ScrollAxis int, @androidx.core.view.ViewCompat.NestedScrollType int);
+ method public static void stopNestedScroll(android.view.View);
+ method public static void stopNestedScroll(android.view.View, @androidx.core.view.ViewCompat.NestedScrollType int);
+ method public static void updateDragShadow(android.view.View, android.view.View.DragShadowBuilder);
+ field public static final int ACCESSIBILITY_LIVE_REGION_ASSERTIVE = 2; // 0x2
+ field public static final int ACCESSIBILITY_LIVE_REGION_NONE = 0; // 0x0
+ field public static final int ACCESSIBILITY_LIVE_REGION_POLITE = 1; // 0x1
+ field public static final int IMPORTANT_FOR_ACCESSIBILITY_AUTO = 0; // 0x0
+ field public static final int IMPORTANT_FOR_ACCESSIBILITY_NO = 2; // 0x2
+ field public static final int IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS = 4; // 0x4
+ field public static final int IMPORTANT_FOR_ACCESSIBILITY_YES = 1; // 0x1
+ field @Deprecated public static final int LAYER_TYPE_HARDWARE = 2; // 0x2
+ field @Deprecated public static final int LAYER_TYPE_NONE = 0; // 0x0
+ field @Deprecated public static final int LAYER_TYPE_SOFTWARE = 1; // 0x1
+ field public static final int LAYOUT_DIRECTION_INHERIT = 2; // 0x2
+ field public static final int LAYOUT_DIRECTION_LOCALE = 3; // 0x3
+ field public static final int LAYOUT_DIRECTION_LTR = 0; // 0x0
+ field public static final int LAYOUT_DIRECTION_RTL = 1; // 0x1
+ field @Deprecated public static final int MEASURED_HEIGHT_STATE_SHIFT = 16; // 0x10
+ field @Deprecated public static final int MEASURED_SIZE_MASK = 16777215; // 0xffffff
+ field @Deprecated public static final int MEASURED_STATE_MASK = -16777216; // 0xff000000
+ field @Deprecated public static final int MEASURED_STATE_TOO_SMALL = 16777216; // 0x1000000
+ field @Deprecated public static final int OVER_SCROLL_ALWAYS = 0; // 0x0
+ field @Deprecated public static final int OVER_SCROLL_IF_CONTENT_SCROLLS = 1; // 0x1
+ field @Deprecated public static final int OVER_SCROLL_NEVER = 2; // 0x2
+ field public static final int SCROLL_AXIS_HORIZONTAL = 1; // 0x1
+ field public static final int SCROLL_AXIS_NONE = 0; // 0x0
+ field public static final int SCROLL_AXIS_VERTICAL = 2; // 0x2
+ field public static final int SCROLL_INDICATOR_BOTTOM = 2; // 0x2
+ field public static final int SCROLL_INDICATOR_END = 32; // 0x20
+ field public static final int SCROLL_INDICATOR_LEFT = 4; // 0x4
+ field public static final int SCROLL_INDICATOR_RIGHT = 8; // 0x8
+ field public static final int SCROLL_INDICATOR_START = 16; // 0x10
+ field public static final int SCROLL_INDICATOR_TOP = 1; // 0x1
+ field public static final int TYPE_NON_TOUCH = 1; // 0x1
+ field public static final int TYPE_TOUCH = 0; // 0x0
+ }
+
+ @IntDef({android.view.View.FOCUS_LEFT, android.view.View.FOCUS_UP, android.view.View.FOCUS_RIGHT, android.view.View.FOCUS_DOWN, android.view.View.FOCUS_FORWARD, android.view.View.FOCUS_BACKWARD}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ViewCompat.FocusDirection {
+ }
+
+ @IntDef({android.view.View.FOCUS_LEFT, android.view.View.FOCUS_UP, android.view.View.FOCUS_RIGHT, android.view.View.FOCUS_DOWN}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ViewCompat.FocusRealDirection {
+ }
+
+ @IntDef({android.view.View.FOCUS_FORWARD, android.view.View.FOCUS_BACKWARD}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ViewCompat.FocusRelativeDirection {
+ }
+
+ @IntDef({androidx.core.view.ViewCompat.TYPE_TOUCH, androidx.core.view.ViewCompat.TYPE_NON_TOUCH}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ViewCompat.NestedScrollType {
+ }
+
+ public static interface ViewCompat.OnUnhandledKeyEventListenerCompat {
+ method public boolean onUnhandledKeyEvent(android.view.View, android.view.KeyEvent);
+ }
+
+ @IntDef(value={androidx.core.view.ViewCompat.SCROLL_AXIS_NONE, androidx.core.view.ViewCompat.SCROLL_AXIS_HORIZONTAL, androidx.core.view.ViewCompat.SCROLL_AXIS_VERTICAL}, flag=true) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ViewCompat.ScrollAxis {
+ }
+
+ @IntDef(flag=true, value={androidx.core.view.ViewCompat.SCROLL_INDICATOR_TOP, androidx.core.view.ViewCompat.SCROLL_INDICATOR_BOTTOM, androidx.core.view.ViewCompat.SCROLL_INDICATOR_LEFT, androidx.core.view.ViewCompat.SCROLL_INDICATOR_RIGHT, androidx.core.view.ViewCompat.SCROLL_INDICATOR_START, androidx.core.view.ViewCompat.SCROLL_INDICATOR_END}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ViewCompat.ScrollIndicators {
+ }
+
+ public final class ViewConfigurationCompat {
+ method public static float getScaledHorizontalScrollFactor(android.view.ViewConfiguration, android.content.Context);
+ method public static int getScaledHoverSlop(android.view.ViewConfiguration);
+ method @Deprecated public static int getScaledPagingTouchSlop(android.view.ViewConfiguration!);
+ method public static float getScaledVerticalScrollFactor(android.view.ViewConfiguration, android.content.Context);
+ method @Deprecated public static boolean hasPermanentMenuKey(android.view.ViewConfiguration!);
+ method public static boolean shouldShowMenuShortcutsWhenKeyboardPresent(android.view.ViewConfiguration, android.content.Context);
+ }
+
+ public final class ViewGroupCompat {
+ method public static int getLayoutMode(android.view.ViewGroup);
+ method @androidx.core.view.ViewCompat.ScrollAxis public static int getNestedScrollAxes(android.view.ViewGroup);
+ method public static boolean isTransitionGroup(android.view.ViewGroup);
+ method @Deprecated public static boolean onRequestSendAccessibilityEvent(android.view.ViewGroup!, android.view.View!, android.view.accessibility.AccessibilityEvent!);
+ method public static void setLayoutMode(android.view.ViewGroup, int);
+ method @Deprecated public static void setMotionEventSplittingEnabled(android.view.ViewGroup!, boolean);
+ method public static void setTransitionGroup(android.view.ViewGroup, boolean);
+ field public static final int LAYOUT_MODE_CLIP_BOUNDS = 0; // 0x0
+ field public static final int LAYOUT_MODE_OPTICAL_BOUNDS = 1; // 0x1
+ }
+
+ public final class ViewParentCompat {
+ method public static void notifySubtreeAccessibilityStateChanged(android.view.ViewParent, android.view.View, android.view.View, int);
+ method public static boolean onNestedFling(android.view.ViewParent, android.view.View, float, float, boolean);
+ method public static boolean onNestedPreFling(android.view.ViewParent, android.view.View, float, float);
+ method public static void onNestedPreScroll(android.view.ViewParent, android.view.View, int, int, int[]);
+ method public static void onNestedPreScroll(android.view.ViewParent, android.view.View, int, int, int[], int);
+ method public static void onNestedScroll(android.view.ViewParent, android.view.View, int, int, int, int);
+ method public static void onNestedScroll(android.view.ViewParent, android.view.View, int, int, int, int, int);
+ method public static void onNestedScroll(android.view.ViewParent, android.view.View, int, int, int, int, int, int[]);
+ method public static void onNestedScrollAccepted(android.view.ViewParent, android.view.View, android.view.View, int);
+ method public static void onNestedScrollAccepted(android.view.ViewParent, android.view.View, android.view.View, int, int);
+ method public static boolean onStartNestedScroll(android.view.ViewParent, android.view.View, android.view.View, int);
+ method public static boolean onStartNestedScroll(android.view.ViewParent, android.view.View, android.view.View, int, int);
+ method public static void onStopNestedScroll(android.view.ViewParent, android.view.View);
+ method public static void onStopNestedScroll(android.view.ViewParent, android.view.View, int);
+ method @Deprecated public static boolean requestSendAccessibilityEvent(android.view.ViewParent!, android.view.View!, android.view.accessibility.AccessibilityEvent!);
+ }
+
+ public final class ViewPropertyAnimatorCompat {
+ method public androidx.core.view.ViewPropertyAnimatorCompat alpha(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat alphaBy(float);
+ method public void cancel();
+ method public long getDuration();
+ method public android.view.animation.Interpolator? getInterpolator();
+ method public long getStartDelay();
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotation(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotationBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotationX(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotationXBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotationY(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat rotationYBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat scaleX(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat scaleXBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat scaleY(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat scaleYBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat setDuration(long);
+ method public androidx.core.view.ViewPropertyAnimatorCompat setInterpolator(android.view.animation.Interpolator?);
+ method public androidx.core.view.ViewPropertyAnimatorCompat setListener(androidx.core.view.ViewPropertyAnimatorListener?);
+ method public androidx.core.view.ViewPropertyAnimatorCompat setStartDelay(long);
+ method public androidx.core.view.ViewPropertyAnimatorCompat setUpdateListener(androidx.core.view.ViewPropertyAnimatorUpdateListener?);
+ method public void start();
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationX(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationXBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationY(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationYBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationZ(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat translationZBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat withEndAction(Runnable);
+ method public androidx.core.view.ViewPropertyAnimatorCompat withLayer();
+ method public androidx.core.view.ViewPropertyAnimatorCompat withStartAction(Runnable);
+ method public androidx.core.view.ViewPropertyAnimatorCompat x(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat xBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat y(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat yBy(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat z(float);
+ method public androidx.core.view.ViewPropertyAnimatorCompat zBy(float);
+ }
+
+ public interface ViewPropertyAnimatorListener {
+ method public void onAnimationCancel(android.view.View);
+ method public void onAnimationEnd(android.view.View);
+ method public void onAnimationStart(android.view.View);
+ }
+
+ public class ViewPropertyAnimatorListenerAdapter implements androidx.core.view.ViewPropertyAnimatorListener {
+ ctor public ViewPropertyAnimatorListenerAdapter();
+ method public void onAnimationCancel(android.view.View);
+ method public void onAnimationEnd(android.view.View);
+ method public void onAnimationStart(android.view.View);
+ }
+
+ public interface ViewPropertyAnimatorUpdateListener {
+ method public void onAnimationUpdate(android.view.View);
+ }
+
+ public final class WindowCompat {
+ method public static androidx.core.view.WindowInsetsControllerCompat getInsetsController(android.view.Window, android.view.View);
+ method public static <T extends android.view.View> T requireViewById(android.view.Window, @IdRes int);
+ method public static void setDecorFitsSystemWindows(android.view.Window, boolean);
+ field public static final int FEATURE_ACTION_BAR = 8; // 0x8
+ field public static final int FEATURE_ACTION_BAR_OVERLAY = 9; // 0x9
+ field public static final int FEATURE_ACTION_MODE_OVERLAY = 10; // 0xa
+ }
+
+ public final class WindowInsetsAnimationCompat {
+ ctor public WindowInsetsAnimationCompat(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int, android.view.animation.Interpolator?, long);
+ method @FloatRange(from=0.0f, to=1.0f) public float getAlpha();
+ method public long getDurationMillis();
+ method @FloatRange(from=0.0f, to=1.0f) public float getFraction();
+ method public float getInterpolatedFraction();
+ method public android.view.animation.Interpolator? getInterpolator();
+ method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public int getTypeMask();
+ method public void setAlpha(@FloatRange(from=0.0f, to=1.0f) float);
+ method public void setFraction(@FloatRange(from=0.0f, to=1.0f) float);
+ }
+
+ public static final class WindowInsetsAnimationCompat.BoundsCompat {
+ ctor public WindowInsetsAnimationCompat.BoundsCompat(androidx.core.graphics.Insets, androidx.core.graphics.Insets);
+ method public androidx.core.graphics.Insets getLowerBound();
+ method public androidx.core.graphics.Insets getUpperBound();
+ method public androidx.core.view.WindowInsetsAnimationCompat.BoundsCompat inset(androidx.core.graphics.Insets);
+ method @RequiresApi(30) public android.view.WindowInsetsAnimation.Bounds toBounds();
+ method @RequiresApi(30) public static androidx.core.view.WindowInsetsAnimationCompat.BoundsCompat toBoundsCompat(android.view.WindowInsetsAnimation.Bounds);
+ }
+
+ public abstract static class WindowInsetsAnimationCompat.Callback {
+ ctor public WindowInsetsAnimationCompat.Callback(@androidx.core.view.WindowInsetsAnimationCompat.Callback.DispatchMode int);
+ method @androidx.core.view.WindowInsetsAnimationCompat.Callback.DispatchMode public final int getDispatchMode();
+ method public void onEnd(androidx.core.view.WindowInsetsAnimationCompat);
+ method public void onPrepare(androidx.core.view.WindowInsetsAnimationCompat);
+ method public abstract androidx.core.view.WindowInsetsCompat onProgress(androidx.core.view.WindowInsetsCompat, java.util.List<androidx.core.view.WindowInsetsAnimationCompat!>);
+ method public androidx.core.view.WindowInsetsAnimationCompat.BoundsCompat onStart(androidx.core.view.WindowInsetsAnimationCompat, androidx.core.view.WindowInsetsAnimationCompat.BoundsCompat);
+ field public static final int DISPATCH_MODE_CONTINUE_ON_SUBTREE = 1; // 0x1
+ field public static final int DISPATCH_MODE_STOP = 0; // 0x0
+ }
+
+ @IntDef({androidx.core.view.WindowInsetsAnimationCompat.Callback.DISPATCH_MODE_STOP, androidx.core.view.WindowInsetsAnimationCompat.Callback.DISPATCH_MODE_CONTINUE_ON_SUBTREE}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface WindowInsetsAnimationCompat.Callback.DispatchMode {
+ }
+
+ public interface WindowInsetsAnimationControlListenerCompat {
+ method public void onCancelled(androidx.core.view.WindowInsetsAnimationControllerCompat?);
+ method public void onFinished(androidx.core.view.WindowInsetsAnimationControllerCompat);
+ method public void onReady(androidx.core.view.WindowInsetsAnimationControllerCompat, @androidx.core.view.WindowInsetsCompat.Type.InsetsType int);
+ }
+
+ public final class WindowInsetsAnimationControllerCompat {
+ method public void finish(boolean);
+ method public float getCurrentAlpha();
+ method @FloatRange(from=0.0f, to=1.0f) public float getCurrentFraction();
+ method public androidx.core.graphics.Insets getCurrentInsets();
+ method public androidx.core.graphics.Insets getHiddenStateInsets();
+ method public androidx.core.graphics.Insets getShownStateInsets();
+ method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public int getTypes();
+ method public boolean isCancelled();
+ method public boolean isFinished();
+ method public boolean isReady();
+ method public void setInsetsAndAlpha(androidx.core.graphics.Insets?, @FloatRange(from=0.0f, to=1.0f) float, @FloatRange(from=0.0f, to=1.0f) float);
+ }
+
+ public class WindowInsetsCompat {
+ ctor public WindowInsetsCompat(androidx.core.view.WindowInsetsCompat?);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat consumeDisplayCutout();
+ method @Deprecated public androidx.core.view.WindowInsetsCompat consumeStableInsets();
+ method @Deprecated public androidx.core.view.WindowInsetsCompat consumeSystemWindowInsets();
+ method public androidx.core.view.DisplayCutoutCompat? getDisplayCutout();
+ method public androidx.core.graphics.Insets getInsets(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int);
+ method public androidx.core.graphics.Insets getInsetsIgnoringVisibility(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int);
+ method @Deprecated public androidx.core.graphics.Insets getMandatorySystemGestureInsets();
+ method @Deprecated public int getStableInsetBottom();
+ method @Deprecated public int getStableInsetLeft();
+ method @Deprecated public int getStableInsetRight();
+ method @Deprecated public int getStableInsetTop();
+ method @Deprecated public androidx.core.graphics.Insets getStableInsets();
+ method @Deprecated public androidx.core.graphics.Insets getSystemGestureInsets();
+ method @Deprecated public int getSystemWindowInsetBottom();
+ method @Deprecated public int getSystemWindowInsetLeft();
+ method @Deprecated public int getSystemWindowInsetRight();
+ method @Deprecated public int getSystemWindowInsetTop();
+ method @Deprecated public androidx.core.graphics.Insets getSystemWindowInsets();
+ method @Deprecated public androidx.core.graphics.Insets getTappableElementInsets();
+ method public boolean hasInsets();
+ method @Deprecated public boolean hasStableInsets();
+ method @Deprecated public boolean hasSystemWindowInsets();
+ method public androidx.core.view.WindowInsetsCompat inset(androidx.core.graphics.Insets);
+ method public androidx.core.view.WindowInsetsCompat inset(@IntRange(from=0) int, @IntRange(from=0) int, @IntRange(from=0) int, @IntRange(from=0) int);
+ method public boolean isConsumed();
+ method public boolean isRound();
+ method public boolean isVisible(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat replaceSystemWindowInsets(int, int, int, int);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat replaceSystemWindowInsets(android.graphics.Rect);
+ method @RequiresApi(20) public android.view.WindowInsets? toWindowInsets();
+ method @RequiresApi(20) public static androidx.core.view.WindowInsetsCompat toWindowInsetsCompat(android.view.WindowInsets);
+ method @RequiresApi(20) public static androidx.core.view.WindowInsetsCompat toWindowInsetsCompat(android.view.WindowInsets, android.view.View?);
+ field public static final androidx.core.view.WindowInsetsCompat CONSUMED;
+ }
+
+ public static final class WindowInsetsCompat.Builder {
+ ctor public WindowInsetsCompat.Builder();
+ ctor public WindowInsetsCompat.Builder(androidx.core.view.WindowInsetsCompat);
+ method public androidx.core.view.WindowInsetsCompat build();
+ method public androidx.core.view.WindowInsetsCompat.Builder setDisplayCutout(androidx.core.view.DisplayCutoutCompat?);
+ method public androidx.core.view.WindowInsetsCompat.Builder setInsets(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int, androidx.core.graphics.Insets);
+ method public androidx.core.view.WindowInsetsCompat.Builder setInsetsIgnoringVisibility(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int, androidx.core.graphics.Insets);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setMandatorySystemGestureInsets(androidx.core.graphics.Insets);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setStableInsets(androidx.core.graphics.Insets);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setSystemGestureInsets(androidx.core.graphics.Insets);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setSystemWindowInsets(androidx.core.graphics.Insets);
+ method @Deprecated public androidx.core.view.WindowInsetsCompat.Builder setTappableElementInsets(androidx.core.graphics.Insets);
+ method public androidx.core.view.WindowInsetsCompat.Builder setVisible(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int, boolean);
+ }
+
+ public static final class WindowInsetsCompat.Type {
+ method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int captionBar();
+ method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int displayCutout();
+ method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int ime();
+ method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int mandatorySystemGestures();
+ method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int navigationBars();
+ method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int statusBars();
+ method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int systemBars();
+ method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int systemGestures();
+ method @androidx.core.view.WindowInsetsCompat.Type.InsetsType public static int tappableElement();
+ }
+
+ @IntDef(flag=true, value={0x1, 0x2, 0x4, 0x8, 0x100, 0x10, 0x20, 0x40, 0x80}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface WindowInsetsCompat.Type.InsetsType {
+ }
+
+ public final class WindowInsetsControllerCompat {
+ ctor public WindowInsetsControllerCompat(android.view.Window, android.view.View);
+ method public void addOnControllableInsetsChangedListener(androidx.core.view.WindowInsetsControllerCompat.OnControllableInsetsChangedListener);
+ method public void controlWindowInsetsAnimation(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int, long, android.view.animation.Interpolator?, android.os.CancellationSignal?, androidx.core.view.WindowInsetsAnimationControlListenerCompat);
+ method public int getSystemBarsBehavior();
+ method public void hide(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int);
+ method public boolean isAppearanceLightNavigationBars();
+ method public boolean isAppearanceLightStatusBars();
+ method public void removeOnControllableInsetsChangedListener(androidx.core.view.WindowInsetsControllerCompat.OnControllableInsetsChangedListener);
+ method public void setAppearanceLightNavigationBars(boolean);
+ method public void setAppearanceLightStatusBars(boolean);
+ method public void setSystemBarsBehavior(int);
+ method public void show(@androidx.core.view.WindowInsetsCompat.Type.InsetsType int);
+ method @Deprecated @RequiresApi(30) public static androidx.core.view.WindowInsetsControllerCompat toWindowInsetsControllerCompat(android.view.WindowInsetsController);
+ field public static final int BEHAVIOR_SHOW_BARS_BY_SWIPE = 1; // 0x1
+ field public static final int BEHAVIOR_SHOW_BARS_BY_TOUCH = 0; // 0x0
+ field public static final int BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE = 2; // 0x2
+ }
+
+ public static interface WindowInsetsControllerCompat.OnControllableInsetsChangedListener {
+ method public void onControllableInsetsChanged(androidx.core.view.WindowInsetsControllerCompat, @androidx.core.view.WindowInsetsCompat.Type.InsetsType int);
+ }
+
+}
+
+package androidx.core.view.accessibility {
+
+ public final class AccessibilityClickableSpanCompat extends android.text.style.ClickableSpan {
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public AccessibilityClickableSpanCompat(int, androidx.core.view.accessibility.AccessibilityNodeInfoCompat, int);
+ method public void onClick(android.view.View);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final String SPAN_ID = "ACCESSIBILITY_CLICKABLE_SPAN_ID";
+ }
+
+ public final class AccessibilityEventCompat {
+ method @Deprecated public static void appendRecord(android.view.accessibility.AccessibilityEvent!, androidx.core.view.accessibility.AccessibilityRecordCompat!);
+ method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! asRecord(android.view.accessibility.AccessibilityEvent!);
+ method public static int getAction(android.view.accessibility.AccessibilityEvent);
+ method @androidx.core.view.accessibility.AccessibilityEventCompat.ContentChangeType public static int getContentChangeTypes(android.view.accessibility.AccessibilityEvent);
+ method public static int getMovementGranularity(android.view.accessibility.AccessibilityEvent);
+ method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! getRecord(android.view.accessibility.AccessibilityEvent!, int);
+ method @Deprecated public static int getRecordCount(android.view.accessibility.AccessibilityEvent!);
+ method public static void setAction(android.view.accessibility.AccessibilityEvent, int);
+ method public static void setContentChangeTypes(android.view.accessibility.AccessibilityEvent, @androidx.core.view.accessibility.AccessibilityEventCompat.ContentChangeType int);
+ method public static void setMovementGranularity(android.view.accessibility.AccessibilityEvent, int);
+ field public static final int CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION = 4; // 0x4
+ field public static final int CONTENT_CHANGE_TYPE_PANE_APPEARED = 16; // 0x10
+ field public static final int CONTENT_CHANGE_TYPE_PANE_DISAPPEARED = 32; // 0x20
+ field public static final int CONTENT_CHANGE_TYPE_PANE_TITLE = 8; // 0x8
+ field public static final int CONTENT_CHANGE_TYPE_STATE_DESCRIPTION = 64; // 0x40
+ field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
+ field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
+ field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
+ field public static final int TYPES_ALL_MASK = -1; // 0xffffffff
+ field public static final int TYPE_ANNOUNCEMENT = 16384; // 0x4000
+ field public static final int TYPE_ASSIST_READING_CONTEXT = 16777216; // 0x1000000
+ field public static final int TYPE_GESTURE_DETECTION_END = 524288; // 0x80000
+ field public static final int TYPE_GESTURE_DETECTION_START = 262144; // 0x40000
+ field @Deprecated public static final int TYPE_TOUCH_EXPLORATION_GESTURE_END = 1024; // 0x400
+ field @Deprecated public static final int TYPE_TOUCH_EXPLORATION_GESTURE_START = 512; // 0x200
+ field public static final int TYPE_TOUCH_INTERACTION_END = 2097152; // 0x200000
+ field public static final int TYPE_TOUCH_INTERACTION_START = 1048576; // 0x100000
+ field public static final int TYPE_VIEW_ACCESSIBILITY_FOCUSED = 32768; // 0x8000
+ field public static final int TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED = 65536; // 0x10000
+ field public static final int TYPE_VIEW_CONTEXT_CLICKED = 8388608; // 0x800000
+ field @Deprecated public static final int TYPE_VIEW_HOVER_ENTER = 128; // 0x80
+ field @Deprecated public static final int TYPE_VIEW_HOVER_EXIT = 256; // 0x100
+ field @Deprecated public static final int TYPE_VIEW_SCROLLED = 4096; // 0x1000
+ field @Deprecated public static final int TYPE_VIEW_TEXT_SELECTION_CHANGED = 8192; // 0x2000
+ field public static final int TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY = 131072; // 0x20000
+ field public static final int TYPE_WINDOWS_CHANGED = 4194304; // 0x400000
+ field @Deprecated public static final int TYPE_WINDOW_CONTENT_CHANGED = 2048; // 0x800
+ }
+
+ @IntDef(flag=true, value={androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_CONTENT_DESCRIPTION, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_STATE_DESCRIPTION, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_SUBTREE, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_TEXT, androidx.core.view.accessibility.AccessibilityEventCompat.CONTENT_CHANGE_TYPE_UNDEFINED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface AccessibilityEventCompat.ContentChangeType {
+ }
+
+ public final class AccessibilityManagerCompat {
+ method @Deprecated public static boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener!);
+ method public static boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager, androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener);
+ method @Deprecated public static java.util.List<android.accessibilityservice.AccessibilityServiceInfo!>! getEnabledAccessibilityServiceList(android.view.accessibility.AccessibilityManager!, int);
+ method @Deprecated public static java.util.List<android.accessibilityservice.AccessibilityServiceInfo!>! getInstalledAccessibilityServiceList(android.view.accessibility.AccessibilityManager!);
+ method @Deprecated public static boolean isTouchExplorationEnabled(android.view.accessibility.AccessibilityManager!);
+ method @Deprecated public static boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager!, androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener!);
+ method public static boolean removeTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager, androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener);
+ }
+
+ @Deprecated public static interface AccessibilityManagerCompat.AccessibilityStateChangeListener {
+ method @Deprecated public void onAccessibilityStateChanged(boolean);
+ }
+
+ @Deprecated public abstract static class AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat implements androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener {
+ ctor @Deprecated public AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat();
+ }
+
+ public static interface AccessibilityManagerCompat.TouchExplorationStateChangeListener {
+ method public void onTouchExplorationStateChanged(boolean);
+ }
+
+ public class AccessibilityNodeInfoCompat {
+ ctor @Deprecated public AccessibilityNodeInfoCompat(Object!);
+ method public void addAction(int);
+ method public void addAction(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat!);
+ method public void addChild(android.view.View!);
+ method public void addChild(android.view.View!, int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void addSpansToExtras(CharSequence!, android.view.View!);
+ method public boolean canOpenPopup();
+ method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat!>! findAccessibilityNodeInfosByText(String!);
+ method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat!>! findAccessibilityNodeInfosByViewId(String!);
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! findFocus(int);
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! focusSearch(int);
+ method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat!>! getActionList();
+ method public int getActions();
+ method public java.util.List<java.lang.String!> getAvailableExtraData();
+ method @Deprecated public void getBoundsInParent(android.graphics.Rect!);
+ method public void getBoundsInScreen(android.graphics.Rect!);
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getChild(int);
+ method public int getChildCount();
+ method public CharSequence! getClassName();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.text.style.ClickableSpan![]! getClickableSpans(CharSequence!);
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat! getCollectionInfo();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat! getCollectionItemInfo();
+ method public CharSequence! getContentDescription();
+ method public int getDrawingOrder();
+ method public CharSequence! getError();
+ method public android.os.Bundle! getExtras();
+ method public CharSequence? getHintText();
+ method @Deprecated public Object! getInfo();
+ method public int getInputType();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getLabelFor();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getLabeledBy();
+ method public int getLiveRegion();
+ method public int getMaxTextLength();
+ method public int getMovementGranularities();
+ method public CharSequence! getPackageName();
+ method public CharSequence? getPaneTitle();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getParent();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! getRangeInfo();
+ method public CharSequence? getRoleDescription();
+ method public CharSequence? getStateDescription();
+ method public CharSequence! getText();
+ method public int getTextSelectionEnd();
+ method public int getTextSelectionStart();
+ method public CharSequence? getTooltipText();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.TouchDelegateInfoCompat? getTouchDelegateInfo();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getTraversalAfter();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getTraversalBefore();
+ method public String! getViewIdResourceName();
+ method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat! getWindow();
+ method public int getWindowId();
+ method public boolean isAccessibilityFocused();
+ method public boolean isCheckable();
+ method public boolean isChecked();
+ method public boolean isClickable();
+ method public boolean isContentInvalid();
+ method public boolean isContextClickable();
+ method public boolean isDismissable();
+ method public boolean isEditable();
+ method public boolean isEnabled();
+ method public boolean isFocusable();
+ method public boolean isFocused();
+ method public boolean isHeading();
+ method public boolean isImportantForAccessibility();
+ method public boolean isLongClickable();
+ method public boolean isMultiLine();
+ method public boolean isPassword();
+ method public boolean isScreenReaderFocusable();
+ method public boolean isScrollable();
+ method public boolean isSelected();
+ method public boolean isShowingHintText();
+ method public boolean isTextEntryKey();
+ method public boolean isVisibleToUser();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain(android.view.View!);
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain(android.view.View!, int);
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! obtain(androidx.core.view.accessibility.AccessibilityNodeInfoCompat!);
+ method public boolean performAction(int);
+ method public boolean performAction(int, android.os.Bundle!);
+ method public void recycle();
+ method public boolean refresh();
+ method public boolean removeAction(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat!);
+ method public boolean removeChild(android.view.View!);
+ method public boolean removeChild(android.view.View!, int);
+ method public void setAccessibilityFocused(boolean);
+ method public void setAvailableExtraData(java.util.List<java.lang.String!>);
+ method @Deprecated public void setBoundsInParent(android.graphics.Rect!);
+ method public void setBoundsInScreen(android.graphics.Rect!);
+ method public void setCanOpenPopup(boolean);
+ method public void setCheckable(boolean);
+ method public void setChecked(boolean);
+ method public void setClassName(CharSequence!);
+ method public void setClickable(boolean);
+ method public void setCollectionInfo(Object!);
+ method public void setCollectionItemInfo(Object!);
+ method public void setContentDescription(CharSequence!);
+ method public void setContentInvalid(boolean);
+ method public void setContextClickable(boolean);
+ method public void setDismissable(boolean);
+ method public void setDrawingOrder(int);
+ method public void setEditable(boolean);
+ method public void setEnabled(boolean);
+ method public void setError(CharSequence!);
+ method public void setFocusable(boolean);
+ method public void setFocused(boolean);
+ method public void setHeading(boolean);
+ method public void setHintText(CharSequence?);
+ method public void setImportantForAccessibility(boolean);
+ method public void setInputType(int);
+ method public void setLabelFor(android.view.View!);
+ method public void setLabelFor(android.view.View!, int);
+ method public void setLabeledBy(android.view.View!);
+ method public void setLabeledBy(android.view.View!, int);
+ method public void setLiveRegion(int);
+ method public void setLongClickable(boolean);
+ method public void setMaxTextLength(int);
+ method public void setMovementGranularities(int);
+ method public void setMultiLine(boolean);
+ method public void setPackageName(CharSequence!);
+ method public void setPaneTitle(CharSequence?);
+ method public void setParent(android.view.View!);
+ method public void setParent(android.view.View!, int);
+ method public void setPassword(boolean);
+ method public void setRangeInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat!);
+ method public void setRoleDescription(CharSequence?);
+ method public void setScreenReaderFocusable(boolean);
+ method public void setScrollable(boolean);
+ method public void setSelected(boolean);
+ method public void setShowingHintText(boolean);
+ method public void setSource(android.view.View!);
+ method public void setSource(android.view.View!, int);
+ method public void setStateDescription(CharSequence?);
+ method public void setText(CharSequence!);
+ method public void setTextEntryKey(boolean);
+ method public void setTextSelection(int, int);
+ method public void setTooltipText(CharSequence?);
+ method public void setTouchDelegateInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat.TouchDelegateInfoCompat);
+ method public void setTraversalAfter(android.view.View!);
+ method public void setTraversalAfter(android.view.View!, int);
+ method public void setTraversalBefore(android.view.View!);
+ method public void setTraversalBefore(android.view.View!, int);
+ method public void setViewIdResourceName(String!);
+ method public void setVisibleToUser(boolean);
+ method public android.view.accessibility.AccessibilityNodeInfo! unwrap();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat! wrap(android.view.accessibility.AccessibilityNodeInfo);
+ field public static final int ACTION_ACCESSIBILITY_FOCUS = 64; // 0x40
+ field public static final String ACTION_ARGUMENT_COLUMN_INT = "android.view.accessibility.action.ARGUMENT_COLUMN_INT";
+ field public static final String ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN = "ACTION_ARGUMENT_EXTEND_SELECTION_BOOLEAN";
+ field public static final String ACTION_ARGUMENT_HTML_ELEMENT_STRING = "ACTION_ARGUMENT_HTML_ELEMENT_STRING";
+ field public static final String ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT = "ACTION_ARGUMENT_MOVEMENT_GRANULARITY_INT";
+ field public static final String ACTION_ARGUMENT_MOVE_WINDOW_X = "ACTION_ARGUMENT_MOVE_WINDOW_X";
+ field public static final String ACTION_ARGUMENT_MOVE_WINDOW_Y = "ACTION_ARGUMENT_MOVE_WINDOW_Y";
+ field public static final String ACTION_ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT = "android.view.accessibility.action.ARGUMENT_PRESS_AND_HOLD_DURATION_MILLIS_INT";
+ field public static final String ACTION_ARGUMENT_PROGRESS_VALUE = "android.view.accessibility.action.ARGUMENT_PROGRESS_VALUE";
+ field public static final String ACTION_ARGUMENT_ROW_INT = "android.view.accessibility.action.ARGUMENT_ROW_INT";
+ field public static final String ACTION_ARGUMENT_SELECTION_END_INT = "ACTION_ARGUMENT_SELECTION_END_INT";
+ field public static final String ACTION_ARGUMENT_SELECTION_START_INT = "ACTION_ARGUMENT_SELECTION_START_INT";
+ field public static final String ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE = "ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE";
+ field public static final int ACTION_CLEAR_ACCESSIBILITY_FOCUS = 128; // 0x80
+ field public static final int ACTION_CLEAR_FOCUS = 2; // 0x2
+ field public static final int ACTION_CLEAR_SELECTION = 8; // 0x8
+ field public static final int ACTION_CLICK = 16; // 0x10
+ field public static final int ACTION_COLLAPSE = 524288; // 0x80000
+ field public static final int ACTION_COPY = 16384; // 0x4000
+ field public static final int ACTION_CUT = 65536; // 0x10000
+ field public static final int ACTION_DISMISS = 1048576; // 0x100000
+ field public static final int ACTION_EXPAND = 262144; // 0x40000
+ field public static final int ACTION_FOCUS = 1; // 0x1
+ field public static final int ACTION_LONG_CLICK = 32; // 0x20
+ field public static final int ACTION_NEXT_AT_MOVEMENT_GRANULARITY = 256; // 0x100
+ field public static final int ACTION_NEXT_HTML_ELEMENT = 1024; // 0x400
+ field public static final int ACTION_PASTE = 32768; // 0x8000
+ field public static final int ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY = 512; // 0x200
+ field public static final int ACTION_PREVIOUS_HTML_ELEMENT = 2048; // 0x800
+ field public static final int ACTION_SCROLL_BACKWARD = 8192; // 0x2000
+ field public static final int ACTION_SCROLL_FORWARD = 4096; // 0x1000
+ field public static final int ACTION_SELECT = 4; // 0x4
+ field public static final int ACTION_SET_SELECTION = 131072; // 0x20000
+ field public static final int ACTION_SET_TEXT = 2097152; // 0x200000
+ field public static final int FOCUS_ACCESSIBILITY = 2; // 0x2
+ field public static final int FOCUS_INPUT = 1; // 0x1
+ field public static final int MOVEMENT_GRANULARITY_CHARACTER = 1; // 0x1
+ field public static final int MOVEMENT_GRANULARITY_LINE = 4; // 0x4
+ field public static final int MOVEMENT_GRANULARITY_PAGE = 16; // 0x10
+ field public static final int MOVEMENT_GRANULARITY_PARAGRAPH = 8; // 0x8
+ field public static final int MOVEMENT_GRANULARITY_WORD = 2; // 0x2
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int mParentVirtualDescendantId;
+ }
+
+ public static class AccessibilityNodeInfoCompat.AccessibilityActionCompat {
+ ctor public AccessibilityNodeInfoCompat.AccessibilityActionCompat(int, CharSequence!);
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public AccessibilityNodeInfoCompat.AccessibilityActionCompat(int, CharSequence!, androidx.core.view.accessibility.AccessibilityViewCommand!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! createReplacementAction(CharSequence!, androidx.core.view.accessibility.AccessibilityViewCommand!);
+ method public int getId();
+ method public CharSequence! getLabel();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public boolean perform(android.view.View!, android.os.Bundle!);
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_ACCESSIBILITY_FOCUS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLEAR_ACCESSIBILITY_FOCUS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLEAR_FOCUS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLEAR_SELECTION;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CLICK;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_COLLAPSE;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CONTEXT_CLICK;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_COPY;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_CUT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_DISMISS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_EXPAND;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_FOCUS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_HIDE_TOOLTIP;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_IME_ENTER;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_LONG_CLICK;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_MOVE_WINDOW;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_NEXT_AT_MOVEMENT_GRANULARITY;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_NEXT_HTML_ELEMENT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PAGE_DOWN;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PAGE_LEFT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PAGE_RIGHT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PAGE_UP;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_PASTE;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat ACTION_PRESS_AND_HOLD;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_PREVIOUS_HTML_ELEMENT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_BACKWARD;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_DOWN;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_FORWARD;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_LEFT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_RIGHT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_TO_POSITION;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SCROLL_UP;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SELECT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SET_PROGRESS;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SET_SELECTION;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SET_TEXT;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SHOW_ON_SCREEN;
+ field public static final androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat! ACTION_SHOW_TOOLTIP;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) protected final androidx.core.view.accessibility.AccessibilityViewCommand! mCommand;
+ }
+
+ public static class AccessibilityNodeInfoCompat.CollectionInfoCompat {
+ method public int getColumnCount();
+ method public int getRowCount();
+ method public int getSelectionMode();
+ method public boolean isHierarchical();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat! obtain(int, int, boolean, int);
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat! obtain(int, int, boolean);
+ field public static final int SELECTION_MODE_MULTIPLE = 2; // 0x2
+ field public static final int SELECTION_MODE_NONE = 0; // 0x0
+ field public static final int SELECTION_MODE_SINGLE = 1; // 0x1
+ }
+
+ public static class AccessibilityNodeInfoCompat.CollectionItemInfoCompat {
+ method public int getColumnIndex();
+ method public int getColumnSpan();
+ method public int getRowIndex();
+ method public int getRowSpan();
+ method @Deprecated public boolean isHeading();
+ method public boolean isSelected();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat! obtain(int, int, int, int, boolean, boolean);
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat! obtain(int, int, int, int, boolean);
+ }
+
+ public static class AccessibilityNodeInfoCompat.RangeInfoCompat {
+ method public float getCurrent();
+ method public float getMax();
+ method public float getMin();
+ method public int getType();
+ method public static androidx.core.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat! obtain(int, float, float, float);
+ field public static final int RANGE_TYPE_FLOAT = 1; // 0x1
+ field public static final int RANGE_TYPE_INT = 0; // 0x0
+ field public static final int RANGE_TYPE_PERCENT = 2; // 0x2
+ }
+
+ public static final class AccessibilityNodeInfoCompat.TouchDelegateInfoCompat {
+ ctor public AccessibilityNodeInfoCompat.TouchDelegateInfoCompat(java.util.Map<android.graphics.Region!,android.view.View!>);
+ method public android.graphics.Region? getRegionAt(@IntRange(from=0) int);
+ method @IntRange(from=0) public int getRegionCount();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? getTargetForRegion(android.graphics.Region);
+ }
+
+ public class AccessibilityNodeProviderCompat {
+ ctor public AccessibilityNodeProviderCompat();
+ ctor public AccessibilityNodeProviderCompat(Object?);
+ method public void addExtraDataToAccessibilityNodeInfo(int, androidx.core.view.accessibility.AccessibilityNodeInfoCompat, String, android.os.Bundle?);
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? createAccessibilityNodeInfo(int);
+ method public java.util.List<androidx.core.view.accessibility.AccessibilityNodeInfoCompat!>? findAccessibilityNodeInfosByText(String, int);
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? findFocus(int);
+ method public Object? getProvider();
+ method public boolean performAction(int, int, android.os.Bundle?);
+ field public static final int HOST_VIEW_ID = -1; // 0xffffffff
+ }
+
+ public class AccessibilityRecordCompat {
+ ctor @Deprecated public AccessibilityRecordCompat(Object!);
+ method @Deprecated public boolean equals(Object?);
+ method @Deprecated public int getAddedCount();
+ method @Deprecated public CharSequence! getBeforeText();
+ method @Deprecated public CharSequence! getClassName();
+ method @Deprecated public CharSequence! getContentDescription();
+ method @Deprecated public int getCurrentItemIndex();
+ method @Deprecated public int getFromIndex();
+ method @Deprecated public Object! getImpl();
+ method @Deprecated public int getItemCount();
+ method @Deprecated public int getMaxScrollX();
+ method public static int getMaxScrollX(android.view.accessibility.AccessibilityRecord);
+ method @Deprecated public int getMaxScrollY();
+ method public static int getMaxScrollY(android.view.accessibility.AccessibilityRecord);
+ method @Deprecated public android.os.Parcelable! getParcelableData();
+ method @Deprecated public int getRemovedCount();
+ method @Deprecated public int getScrollX();
+ method @Deprecated public int getScrollY();
+ method @Deprecated public androidx.core.view.accessibility.AccessibilityNodeInfoCompat! getSource();
+ method @Deprecated public java.util.List<java.lang.CharSequence!>! getText();
+ method @Deprecated public int getToIndex();
+ method @Deprecated public int getWindowId();
+ method @Deprecated public int hashCode();
+ method @Deprecated public boolean isChecked();
+ method @Deprecated public boolean isEnabled();
+ method @Deprecated public boolean isFullScreen();
+ method @Deprecated public boolean isPassword();
+ method @Deprecated public boolean isScrollable();
+ method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! obtain(androidx.core.view.accessibility.AccessibilityRecordCompat!);
+ method @Deprecated public static androidx.core.view.accessibility.AccessibilityRecordCompat! obtain();
+ method @Deprecated public void recycle();
+ method @Deprecated public void setAddedCount(int);
+ method @Deprecated public void setBeforeText(CharSequence!);
+ method @Deprecated public void setChecked(boolean);
+ method @Deprecated public void setClassName(CharSequence!);
+ method @Deprecated public void setContentDescription(CharSequence!);
+ method @Deprecated public void setCurrentItemIndex(int);
+ method @Deprecated public void setEnabled(boolean);
+ method @Deprecated public void setFromIndex(int);
+ method @Deprecated public void setFullScreen(boolean);
+ method @Deprecated public void setItemCount(int);
+ method @Deprecated public void setMaxScrollX(int);
+ method public static void setMaxScrollX(android.view.accessibility.AccessibilityRecord, int);
+ method @Deprecated public void setMaxScrollY(int);
+ method public static void setMaxScrollY(android.view.accessibility.AccessibilityRecord, int);
+ method @Deprecated public void setParcelableData(android.os.Parcelable!);
+ method @Deprecated public void setPassword(boolean);
+ method @Deprecated public void setRemovedCount(int);
+ method @Deprecated public void setScrollX(int);
+ method @Deprecated public void setScrollY(int);
+ method @Deprecated public void setScrollable(boolean);
+ method @Deprecated public void setSource(android.view.View!);
+ method @Deprecated public void setSource(android.view.View!, int);
+ method public static void setSource(android.view.accessibility.AccessibilityRecord, android.view.View?, int);
+ method @Deprecated public void setToIndex(int);
+ }
+
+ public interface AccessibilityViewCommand {
+ method public boolean perform(android.view.View, androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments?);
+ }
+
+ public abstract static class AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.CommandArguments();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setBundle(android.os.Bundle?);
+ }
+
+ public static final class AccessibilityViewCommand.MoveAtGranularityArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.MoveAtGranularityArguments();
+ method public boolean getExtendSelection();
+ method public int getGranularity();
+ }
+
+ public static final class AccessibilityViewCommand.MoveHtmlArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.MoveHtmlArguments();
+ method public String? getHTMLElement();
+ }
+
+ public static final class AccessibilityViewCommand.MoveWindowArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.MoveWindowArguments();
+ method public int getX();
+ method public int getY();
+ }
+
+ public static final class AccessibilityViewCommand.ScrollToPositionArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.ScrollToPositionArguments();
+ method public int getColumn();
+ method public int getRow();
+ }
+
+ public static final class AccessibilityViewCommand.SetProgressArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.SetProgressArguments();
+ method public float getProgress();
+ }
+
+ public static final class AccessibilityViewCommand.SetSelectionArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.SetSelectionArguments();
+ method public int getEnd();
+ method public int getStart();
+ }
+
+ public static final class AccessibilityViewCommand.SetTextArguments extends androidx.core.view.accessibility.AccessibilityViewCommand.CommandArguments {
+ ctor public AccessibilityViewCommand.SetTextArguments();
+ method public CharSequence? getText();
+ }
+
+ public class AccessibilityWindowInfoCompat {
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? getAnchor();
+ method public void getBoundsInScreen(android.graphics.Rect);
+ method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat? getChild(int);
+ method public int getChildCount();
+ method public int getId();
+ method public int getLayer();
+ method public androidx.core.view.accessibility.AccessibilityWindowInfoCompat? getParent();
+ method public androidx.core.view.accessibility.AccessibilityNodeInfoCompat? getRoot();
+ method public CharSequence? getTitle();
+ method public int getType();
+ method public boolean isAccessibilityFocused();
+ method public boolean isActive();
+ method public boolean isFocused();
+ method public static androidx.core.view.accessibility.AccessibilityWindowInfoCompat? obtain();
+ method public static androidx.core.view.accessibility.AccessibilityWindowInfoCompat? obtain(androidx.core.view.accessibility.AccessibilityWindowInfoCompat?);
+ method public void recycle();
+ field public static final int TYPE_ACCESSIBILITY_OVERLAY = 4; // 0x4
+ field public static final int TYPE_APPLICATION = 1; // 0x1
+ field public static final int TYPE_INPUT_METHOD = 2; // 0x2
+ field public static final int TYPE_SPLIT_SCREEN_DIVIDER = 5; // 0x5
+ field public static final int TYPE_SYSTEM = 3; // 0x3
+ }
+
+}
+
+package androidx.core.view.animation {
+
+ public final class PathInterpolatorCompat {
+ method public static android.view.animation.Interpolator create(android.graphics.Path);
+ method public static android.view.animation.Interpolator create(float, float);
+ method public static android.view.animation.Interpolator create(float, float, float, float);
+ }
+
+}
+
+package androidx.core.view.inputmethod {
+
+ public final class EditorInfoCompat {
+ ctor @Deprecated public EditorInfoCompat();
+ method public static String![] getContentMimeTypes(android.view.inputmethod.EditorInfo);
+ method public static CharSequence? getInitialSelectedText(android.view.inputmethod.EditorInfo, int);
+ method public static CharSequence? getInitialTextAfterCursor(android.view.inputmethod.EditorInfo, int, int);
+ method public static CharSequence? getInitialTextBeforeCursor(android.view.inputmethod.EditorInfo, int, int);
+ method public static void setContentMimeTypes(android.view.inputmethod.EditorInfo, String![]?);
+ method public static void setInitialSurroundingSubText(android.view.inputmethod.EditorInfo, CharSequence, int);
+ method public static void setInitialSurroundingText(android.view.inputmethod.EditorInfo, CharSequence);
+ field public static final int IME_FLAG_FORCE_ASCII = -2147483648; // 0x80000000
+ field public static final int IME_FLAG_NO_PERSONALIZED_LEARNING = 16777216; // 0x1000000
+ }
+
+ public final class InputConnectionCompat {
+ ctor @Deprecated public InputConnectionCompat();
+ method public static boolean commitContent(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo, androidx.core.view.inputmethod.InputContentInfoCompat, int, android.os.Bundle?);
+ method @Deprecated public static android.view.inputmethod.InputConnection createWrapper(android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo, androidx.core.view.inputmethod.InputConnectionCompat.OnCommitContentListener);
+ method public static android.view.inputmethod.InputConnection createWrapper(android.view.View, android.view.inputmethod.InputConnection, android.view.inputmethod.EditorInfo);
+ field public static final int INPUT_CONTENT_GRANT_READ_URI_PERMISSION = 1; // 0x1
+ }
+
+ public static interface InputConnectionCompat.OnCommitContentListener {
+ method public boolean onCommitContent(androidx.core.view.inputmethod.InputContentInfoCompat, int, android.os.Bundle?);
+ }
+
+ public final class InputContentInfoCompat {
+ ctor public InputContentInfoCompat(android.net.Uri, android.content.ClipDescription, android.net.Uri?);
+ method public android.net.Uri getContentUri();
+ method public android.content.ClipDescription getDescription();
+ method public android.net.Uri? getLinkUri();
+ method public void releasePermission();
+ method public void requestPermission();
+ method public Object? unwrap();
+ method public static androidx.core.view.inputmethod.InputContentInfoCompat? wrap(Object?);
+ }
+
+}
+
+package androidx.core.widget {
+
+ public abstract class AutoScrollHelper implements android.view.View.OnTouchListener {
+ ctor public AutoScrollHelper(android.view.View);
+ method public abstract boolean canTargetScrollHorizontally(int);
+ method public abstract boolean canTargetScrollVertically(int);
+ method public boolean isEnabled();
+ method public boolean isExclusive();
+ method public boolean onTouch(android.view.View!, android.view.MotionEvent!);
+ method public abstract void scrollTargetBy(int, int);
+ method public androidx.core.widget.AutoScrollHelper setActivationDelay(int);
+ method public androidx.core.widget.AutoScrollHelper setEdgeType(int);
+ method public androidx.core.widget.AutoScrollHelper! setEnabled(boolean);
+ method public androidx.core.widget.AutoScrollHelper! setExclusive(boolean);
+ method public androidx.core.widget.AutoScrollHelper setMaximumEdges(float, float);
+ method public androidx.core.widget.AutoScrollHelper setMaximumVelocity(float, float);
+ method public androidx.core.widget.AutoScrollHelper setMinimumVelocity(float, float);
+ method public androidx.core.widget.AutoScrollHelper setRampDownDuration(int);
+ method public androidx.core.widget.AutoScrollHelper setRampUpDuration(int);
+ method public androidx.core.widget.AutoScrollHelper setRelativeEdges(float, float);
+ method public androidx.core.widget.AutoScrollHelper setRelativeVelocity(float, float);
+ field public static final int EDGE_TYPE_INSIDE = 0; // 0x0
+ field public static final int EDGE_TYPE_INSIDE_EXTEND = 1; // 0x1
+ field public static final int EDGE_TYPE_OUTSIDE = 2; // 0x2
+ field public static final float NO_MAX = 3.4028235E38f;
+ field public static final float NO_MIN = 0.0f;
+ field public static final float RELATIVE_UNSPECIFIED = 0.0f;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface AutoSizeableTextView {
+ method public int getAutoSizeMaxTextSize();
+ method public int getAutoSizeMinTextSize();
+ method public int getAutoSizeStepGranularity();
+ method public int[]! getAutoSizeTextAvailableSizes();
+ method @androidx.core.widget.TextViewCompat.AutoSizeTextType public int getAutoSizeTextType();
+ method public void setAutoSizeTextTypeUniformWithConfiguration(int, int, int, int) throws java.lang.IllegalArgumentException;
+ method public void setAutoSizeTextTypeUniformWithPresetSizes(int[], int) throws java.lang.IllegalArgumentException;
+ method public void setAutoSizeTextTypeWithDefaults(@androidx.core.widget.TextViewCompat.AutoSizeTextType int);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final boolean PLATFORM_SUPPORTS_AUTOSIZE;
+ }
+
+ public final class CheckedTextViewCompat {
+ method public static android.graphics.drawable.Drawable? getCheckMarkDrawable(android.widget.CheckedTextView);
+ method public static android.content.res.ColorStateList? getCheckMarkTintList(android.widget.CheckedTextView);
+ method public static android.graphics.PorterDuff.Mode? getCheckMarkTintMode(android.widget.CheckedTextView);
+ method public static void setCheckMarkTintList(android.widget.CheckedTextView, android.content.res.ColorStateList?);
+ method public static void setCheckMarkTintMode(android.widget.CheckedTextView, android.graphics.PorterDuff.Mode?);
+ }
+
+ public final class CompoundButtonCompat {
+ method public static android.graphics.drawable.Drawable? getButtonDrawable(android.widget.CompoundButton);
+ method public static android.content.res.ColorStateList? getButtonTintList(android.widget.CompoundButton);
+ method public static android.graphics.PorterDuff.Mode? getButtonTintMode(android.widget.CompoundButton);
+ method public static void setButtonTintList(android.widget.CompoundButton, android.content.res.ColorStateList?);
+ method public static void setButtonTintMode(android.widget.CompoundButton, android.graphics.PorterDuff.Mode?);
+ }
+
+ public class ContentLoadingProgressBar extends android.widget.ProgressBar {
+ ctor public ContentLoadingProgressBar(android.content.Context);
+ ctor public ContentLoadingProgressBar(android.content.Context, android.util.AttributeSet?);
+ method public void hide();
+ method public void onAttachedToWindow();
+ method public void onDetachedFromWindow();
+ method public void show();
+ }
+
+ public final class EdgeEffectCompat {
+ ctor @Deprecated public EdgeEffectCompat(android.content.Context!);
+ method public static android.widget.EdgeEffect create(android.content.Context, android.util.AttributeSet?);
+ method @Deprecated public boolean draw(android.graphics.Canvas!);
+ method @Deprecated public void finish();
+ method public static float getDistance(android.widget.EdgeEffect);
+ method @Deprecated public boolean isFinished();
+ method @Deprecated public boolean onAbsorb(int);
+ method @Deprecated public boolean onPull(float);
+ method @Deprecated public boolean onPull(float, float);
+ method public static void onPull(android.widget.EdgeEffect, float, float);
+ method public static float onPullDistance(android.widget.EdgeEffect, float, float);
+ method @Deprecated public boolean onRelease();
+ method @Deprecated public void setSize(int, int);
+ }
+
+ public class ImageViewCompat {
+ method public static android.content.res.ColorStateList? getImageTintList(android.widget.ImageView);
+ method public static android.graphics.PorterDuff.Mode? getImageTintMode(android.widget.ImageView);
+ method public static void setImageTintList(android.widget.ImageView, android.content.res.ColorStateList?);
+ method public static void setImageTintMode(android.widget.ImageView, android.graphics.PorterDuff.Mode?);
+ }
+
+ public final class ListPopupWindowCompat {
+ method @Deprecated public static android.view.View.OnTouchListener! createDragToOpenListener(Object!, android.view.View!);
+ method public static android.view.View.OnTouchListener? createDragToOpenListener(android.widget.ListPopupWindow, android.view.View);
+ }
+
+ public class ListViewAutoScrollHelper extends androidx.core.widget.AutoScrollHelper {
+ ctor public ListViewAutoScrollHelper(android.widget.ListView);
+ method public boolean canTargetScrollHorizontally(int);
+ method public boolean canTargetScrollVertically(int);
+ method public void scrollTargetBy(int, int);
+ }
+
+ public final class ListViewCompat {
+ method public static boolean canScrollList(android.widget.ListView, int);
+ method public static void scrollListBy(android.widget.ListView, int);
+ }
+
+ public class NestedScrollView extends android.widget.FrameLayout implements androidx.core.view.NestedScrollingChild3 androidx.core.view.NestedScrollingParent3 androidx.core.view.ScrollingView {
+ ctor public NestedScrollView(android.content.Context);
+ ctor public NestedScrollView(android.content.Context, android.util.AttributeSet?);
+ ctor public NestedScrollView(android.content.Context, android.util.AttributeSet?, int);
+ method public boolean arrowScroll(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeHorizontalScrollExtent();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeHorizontalScrollOffset();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeHorizontalScrollRange();
+ method protected int computeScrollDeltaToGetChildRectOnScreen(android.graphics.Rect!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeVerticalScrollExtent();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeVerticalScrollOffset();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public int computeVerticalScrollRange();
+ method public boolean dispatchNestedPreScroll(int, int, int[]?, int[]?, int);
+ method public void dispatchNestedScroll(int, int, int, int, int[]?, int, int[]);
+ method public boolean dispatchNestedScroll(int, int, int, int, int[]?, int);
+ method public boolean executeKeyEvent(android.view.KeyEvent);
+ method public void fling(int);
+ method public boolean fullScroll(int);
+ method public int getMaxScrollAmount();
+ method public boolean hasNestedScrollingParent(int);
+ method public boolean isFillViewport();
+ method public boolean isSmoothScrollingEnabled();
+ method public void onAttachedToWindow();
+ method public void onNestedPreScroll(android.view.View, int, int, int[], int);
+ method public void onNestedScroll(android.view.View, int, int, int, int, int, int[]);
+ method public void onNestedScroll(android.view.View, int, int, int, int, int);
+ method public void onNestedScrollAccepted(android.view.View, android.view.View, int, int);
+ method public boolean onStartNestedScroll(android.view.View, android.view.View, int, int);
+ method public void onStopNestedScroll(android.view.View, int);
+ method public boolean pageScroll(int);
+ method public void setFillViewport(boolean);
+ method public void setOnScrollChangeListener(androidx.core.widget.NestedScrollView.OnScrollChangeListener?);
+ method public void setSmoothScrollingEnabled(boolean);
+ method public final void smoothScrollBy(int, int);
+ method public final void smoothScrollBy(int, int, int);
+ method public final void smoothScrollTo(int, int);
+ method public final void smoothScrollTo(int, int, int);
+ method public boolean startNestedScroll(int, int);
+ method public void stopNestedScroll(int);
+ }
+
+ public static interface NestedScrollView.OnScrollChangeListener {
+ method public void onScrollChange(androidx.core.widget.NestedScrollView, int, int, int, int);
+ }
+
+ public final class PopupMenuCompat {
+ method public static android.view.View.OnTouchListener? getDragToOpenListener(Object);
+ }
+
+ public final class PopupWindowCompat {
+ method public static boolean getOverlapAnchor(android.widget.PopupWindow);
+ method public static int getWindowLayoutType(android.widget.PopupWindow);
+ method public static void setOverlapAnchor(android.widget.PopupWindow, boolean);
+ method public static void setWindowLayoutType(android.widget.PopupWindow, int);
+ method public static void showAsDropDown(android.widget.PopupWindow, android.view.View, int, int, int);
+ }
+
+ @Deprecated public final class ScrollerCompat {
+ method @Deprecated public void abortAnimation();
+ method @Deprecated public boolean computeScrollOffset();
+ method @Deprecated public static androidx.core.widget.ScrollerCompat! create(android.content.Context!);
+ method @Deprecated public static androidx.core.widget.ScrollerCompat! create(android.content.Context!, android.view.animation.Interpolator!);
+ method @Deprecated public void fling(int, int, int, int, int, int, int, int);
+ method @Deprecated public void fling(int, int, int, int, int, int, int, int, int, int);
+ method @Deprecated public float getCurrVelocity();
+ method @Deprecated public int getCurrX();
+ method @Deprecated public int getCurrY();
+ method @Deprecated public int getFinalX();
+ method @Deprecated public int getFinalY();
+ method @Deprecated public boolean isFinished();
+ method @Deprecated public boolean isOverScrolled();
+ method @Deprecated public void notifyHorizontalEdgeReached(int, int, int);
+ method @Deprecated public void notifyVerticalEdgeReached(int, int, int);
+ method @Deprecated public boolean springBack(int, int, int, int, int, int);
+ method @Deprecated public void startScroll(int, int, int, int);
+ method @Deprecated public void startScroll(int, int, int, int, int);
+ }
+
+ public final class TextViewCompat {
+ method public static int getAutoSizeMaxTextSize(android.widget.TextView);
+ method public static int getAutoSizeMinTextSize(android.widget.TextView);
+ method public static int getAutoSizeStepGranularity(android.widget.TextView);
+ method public static int[] getAutoSizeTextAvailableSizes(android.widget.TextView);
+ method public static int getAutoSizeTextType(android.widget.TextView);
+ method public static android.content.res.ColorStateList? getCompoundDrawableTintList(android.widget.TextView);
+ method public static android.graphics.PorterDuff.Mode? getCompoundDrawableTintMode(android.widget.TextView);
+ method public static android.graphics.drawable.Drawable![] getCompoundDrawablesRelative(android.widget.TextView);
+ method public static int getFirstBaselineToTopHeight(android.widget.TextView);
+ method public static int getLastBaselineToBottomHeight(android.widget.TextView);
+ method public static int getMaxLines(android.widget.TextView);
+ method public static int getMinLines(android.widget.TextView);
+ method public static androidx.core.text.PrecomputedTextCompat.Params getTextMetricsParams(android.widget.TextView);
+ method public static void setAutoSizeTextTypeUniformWithConfiguration(android.widget.TextView, int, int, int, int) throws java.lang.IllegalArgumentException;
+ method public static void setAutoSizeTextTypeUniformWithPresetSizes(android.widget.TextView, int[], int) throws java.lang.IllegalArgumentException;
+ method public static void setAutoSizeTextTypeWithDefaults(android.widget.TextView, int);
+ method public static void setCompoundDrawableTintList(android.widget.TextView, android.content.res.ColorStateList?);
+ method public static void setCompoundDrawableTintMode(android.widget.TextView, android.graphics.PorterDuff.Mode?);
+ method public static void setCompoundDrawablesRelative(android.widget.TextView, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?);
+ method public static void setCompoundDrawablesRelativeWithIntrinsicBounds(android.widget.TextView, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?, android.graphics.drawable.Drawable?);
+ method public static void setCompoundDrawablesRelativeWithIntrinsicBounds(android.widget.TextView, @DrawableRes int, @DrawableRes int, @DrawableRes int, @DrawableRes int);
+ method public static void setCustomSelectionActionModeCallback(android.widget.TextView, android.view.ActionMode.Callback);
+ method public static void setFirstBaselineToTopHeight(android.widget.TextView, @IntRange(from=0) @Px int);
+ method public static void setLastBaselineToBottomHeight(android.widget.TextView, @IntRange(from=0) @Px int);
+ method public static void setLineHeight(android.widget.TextView, @IntRange(from=0) @Px int);
+ method public static void setPrecomputedText(android.widget.TextView, androidx.core.text.PrecomputedTextCompat);
+ method public static void setTextAppearance(android.widget.TextView, @StyleRes int);
+ method public static void setTextMetricsParams(android.widget.TextView, androidx.core.text.PrecomputedTextCompat.Params);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.view.ActionMode.Callback? unwrapCustomSelectionActionModeCallback(android.view.ActionMode.Callback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static android.view.ActionMode.Callback? wrapCustomSelectionActionModeCallback(android.widget.TextView, android.view.ActionMode.Callback?);
+ field public static final int AUTO_SIZE_TEXT_TYPE_NONE = 0; // 0x0
+ field public static final int AUTO_SIZE_TEXT_TYPE_UNIFORM = 1; // 0x1
+ }
+
+ @IntDef({androidx.core.widget.TextViewCompat.AUTO_SIZE_TEXT_TYPE_NONE, androidx.core.widget.TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface TextViewCompat.AutoSizeTextType {
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final class TextViewOnReceiveContentListener implements androidx.core.view.OnReceiveContentListener {
+ ctor public TextViewOnReceiveContentListener();
+ method public androidx.core.view.ContentInfoCompat? onReceiveContent(android.view.View, androidx.core.view.ContentInfoCompat);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface TintableCheckedTextView {
+ method public android.content.res.ColorStateList? getSupportCheckMarkTintList();
+ method public android.graphics.PorterDuff.Mode? getSupportCheckMarkTintMode();
+ method public void setSupportCheckMarkTintList(android.content.res.ColorStateList?);
+ method public void setSupportCheckMarkTintMode(android.graphics.PorterDuff.Mode?);
+ }
+
+ public interface TintableCompoundButton {
+ method public android.content.res.ColorStateList? getSupportButtonTintList();
+ method public android.graphics.PorterDuff.Mode? getSupportButtonTintMode();
+ method public void setSupportButtonTintList(android.content.res.ColorStateList?);
+ method public void setSupportButtonTintMode(android.graphics.PorterDuff.Mode?);
+ }
+
+ public interface TintableCompoundDrawablesView {
+ method public android.content.res.ColorStateList? getSupportCompoundDrawablesTintList();
+ method public android.graphics.PorterDuff.Mode? getSupportCompoundDrawablesTintMode();
+ method public void setSupportCompoundDrawablesTintList(android.content.res.ColorStateList?);
+ method public void setSupportCompoundDrawablesTintMode(android.graphics.PorterDuff.Mode?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface TintableImageSourceView {
+ method public android.content.res.ColorStateList? getSupportImageTintList();
+ method public android.graphics.PorterDuff.Mode? getSupportImageTintMode();
+ method public void setSupportImageTintList(android.content.res.ColorStateList?);
+ method public void setSupportImageTintMode(android.graphics.PorterDuff.Mode?);
+ }
+
+}
+
diff --git a/core/core/lint-baseline.xml b/core/core/lint-baseline.xml
index ae9dd30..291fa2c 100644
--- a/core/core/lint-baseline.xml
+++ b/core/core/lint-baseline.xml
@@ -2071,6 +2071,50 @@
<issue
id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.core.view.accessibility.AccessibilityNodeInfoCompat is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" return mInfo.getUniqueId();"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="2915"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 19; however, the containing class androidx.core.view.accessibility.AccessibilityNodeInfoCompat is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" return mInfo.getExtras().getString(UNIQUE_ID_KEY);"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="2917"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.core.view.accessibility.AccessibilityNodeInfoCompat is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" mInfo.setUniqueId(uniqueId);"
+ errorLine2=" ~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="2935"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
+ message="This call references a method added in API level 19; however, the containing class androidx.core.view.accessibility.AccessibilityNodeInfoCompat is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" mInfo.getExtras().putString(UNIQUE_ID_KEY, uniqueId);"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/view/accessibility/AccessibilityNodeInfoCompat.java"
+ line="2937"
+ column="19"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
message="This call references a method added in API level 18; however, the containing class androidx.core.view.accessibility.AccessibilityNodeInfoCompat is reachable from earlier API levels and will fail run-time class verification."
errorLine1=" mInfo.setViewIdResourceName(viewId);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -3622,6 +3666,17 @@
<issue
id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.core.os.LocaleListCompat is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" return LocaleList.matchesLanguageAndScript(supported, desired);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/os/LocaleListCompat.java"
+ line="251"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
message="This call references a method added in API level 16; however, the containing class androidx.core.app.NavUtils is reachable from earlier API levels and will fail run-time class verification."
errorLine1=" return sourceActivity.shouldUpRecreateTask(targetIntent);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
@@ -4623,6 +4678,17 @@
<issue
id="ClassVerificationFailure"
+ message="This call references a method added in API level 31; however, the containing class androidx.core.app.NotificationCompat.Action.Builder is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" builder.setAuthenticationRequired(action.isAuthenticationRequired());"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="4811"
+ column="62"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
message="This call references a method added in API level 23; however, the containing class androidx.core.app.NotificationCompat.WearableExtender is reachable from earlier API levels and will fail run-time class verification."
errorLine1=" actionBuilder = new Notification.Action.Builder("
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -4656,6 +4722,17 @@
<issue
id="ClassVerificationFailure"
+ message="This call references a method added in API level 31; however, the containing class androidx.core.app.NotificationCompat.WearableExtender is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" actionBuilder.setAuthenticationRequired(actionCompat.isAuthenticationRequired());"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="5686"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
message="This call references a method added in API level 20; however, the containing class androidx.core.app.NotificationCompat.WearableExtender is reachable from earlier API levels and will fail run-time class verification."
errorLine1=" actionBuilder.addExtras(actionExtras);"
errorLine2=" ~~~~~~~~~">
@@ -4986,6 +5063,17 @@
<issue
id="ClassVerificationFailure"
+ message="This call references a method added in API level 31; however, the containing class androidx.core.app.NotificationCompat is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" Build.VERSION.SDK_INT >= 31 ? action.isAuthenticationRequired() : false;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompat.java"
+ line="7514"
+ column="54"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
message="This call references a method added in API level 23; however, the containing class androidx.core.app.NotificationCompat is reachable from earlier API levels and will fail run-time class verification."
errorLine1=" if (action.getIcon() == null && action.icon != 0) {"
errorLine2=" ~~~~~~~">
@@ -5503,6 +5591,17 @@
<issue
id="ClassVerificationFailure"
+ message="This call references a method added in API level 31; however, the containing class androidx.core.app.NotificationCompatBuilder is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" mBuilder.setForegroundServiceBehavior(b.mFgsDeferBehavior);"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompatBuilder.java"
+ line="252"
+ column="26"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
message="This call references a method added in API level 20; however, the containing class androidx.core.app.NotificationCompatBuilder is reachable from earlier API levels and will fail run-time class verification."
errorLine1=" mBuilder.setGroup(NotificationCompat.GROUP_KEY_SILENT);"
errorLine2=" ~~~~~~~~">
@@ -5591,6 +5690,17 @@
<issue
id="ClassVerificationFailure"
+ message="This call references a method added in API level 31; however, the containing class androidx.core.app.NotificationCompatBuilder is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" actionBuilder.setAuthenticationRequired(action.isAuthenticationRequired());"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/core/app/NotificationCompatBuilder.java"
+ line="397"
+ column="31"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
message="This call references a method added in API level 20; however, the containing class androidx.core.app.NotificationCompatBuilder is reachable from earlier API levels and will fail run-time class verification."
errorLine1=" actionBuilder.addExtras(actionExtras);"
errorLine2=" ~~~~~~~~~">
diff --git a/core/core/src/main/java/androidx/core/os/BuildCompat.java b/core/core/src/main/java/androidx/core/os/BuildCompat.java
index 47265e6..6e5a61f 100644
--- a/core/core/src/main/java/androidx/core/os/BuildCompat.java
+++ b/core/core/src/main/java/androidx/core/os/BuildCompat.java
@@ -197,15 +197,14 @@
/**
* Checks if the device is running on a pre-release version of Android Tiramisu or a release
* version of Android Tiramisu or newer.
+ * <p>
+ * <strong>Note:</strong> When Android Tiramisu is finalized for release, this method will be
+ * removed and all calls must be replaced with {@code Build.VERSION.SDK_INT >= 33}.
*
* @return {@code true} if Tiramisu APIs are available for use, {@code false} otherwise
- * @deprecated Android Tiramisu is a finalized release and this method is no longer necessary.
- * It will be removed in a future release of this library. Instead, use
- * {@code Build.VERSION.SDK_INT >= 33}.
*/
@PrereleaseSdkCheck
- @ChecksSdkIntAtLeast(codename = "Tiramisu")
- @Deprecated
+ @ChecksSdkIntAtLeast(api = 33, codename = "Tiramisu")
public static boolean isAtLeastT() {
return VERSION.SDK_INT >= 33
|| (VERSION.SDK_INT >= 32
@@ -213,6 +212,22 @@
}
/**
+ * Checks if the device is running on a pre-release version of Android U.
+ * <p>
+ * <strong>Note:</strong> When Android U is finalized for release, this method will be
+ * removed and all calls must be replaced with {@code Build.VERSION.SDK_INT >=
+ * Build.VERSION_CODES.U}.
+ *
+ * @return {@code true} if U APIs are available for use, {@code false} otherwise
+ */
+ @PrereleaseSdkCheck
+ @ChecksSdkIntAtLeast(codename = "UpsideDownCake")
+ public static boolean isAtLeastU() {
+ return VERSION.SDK_INT >= 33
+ && isAtLeastPreReleaseCodename("UpsideDownCake", VERSION.CODENAME);
+ }
+
+ /**
* Experimental feature set for pre-release SDK checks.
* <p>
* APIs annotated as part of this feature set should only be used when building against
diff --git a/development/diagnose-build-failure/diagnose-build-failure.sh b/development/diagnose-build-failure/diagnose-build-failure.sh
index 4e08619..6baa715 100755
--- a/development/diagnose-build-failure/diagnose-build-failure.sh
+++ b/development/diagnose-build-failure/diagnose-build-failure.sh
@@ -160,7 +160,7 @@
$scriptPath/impl/restore-state.sh . $workingDir --move && cd $workingDir
"
buildCommand="$*"
- cleanupCommand="$scriptPath/impl/backup-state.sh \$testDir $workingDir --move >/dev/null"
+ cleanupCommand="$scriptPath/impl/backup-state.sh \$testDir --move >/dev/null"
fullFiltererCommand="$setupCommand
if $buildCommand >/dev/null 2>/dev/null; then
@@ -195,13 +195,13 @@
cd "$scriptPath"
backupDir="$1"
shift
- ./impl/backup-state.sh "$backupDir" "$workingDir" "$@"
+ ./impl/backup-state.sh "$backupDir" "$@"
}
function restoreState() {
cd "$scriptPath"
backupDir="$1"
- ./impl/restore-state.sh "$backupDir" "$workingDir"
+ ./impl/restore-state.sh "$backupDir"
}
function clearState() {
diff --git a/development/diagnose-build-failure/impl/backup-state.sh b/development/diagnose-build-failure/impl/backup-state.sh
index e3c2c88..3591b76 100755
--- a/development/diagnose-build-failure/impl/backup-state.sh
+++ b/development/diagnose-build-failure/impl/backup-state.sh
@@ -2,16 +2,15 @@
set -e
stateDir="$1"
-gradlewDir="$2"
-moveArg="$3"
+moveArg="$2"
scriptPath="$(cd $(dirname $0) && pwd)"
supportRoot="$(cd $scriptPath/../../.. && pwd)"
checkoutRoot="$(cd $supportRoot/../.. && pwd)"
function usage() {
- echo "usage: $0 <statePath> <gradlew dir>"
- echo "Backs up build state for <gradlew dir> into <statePath>"
+ echo "usage: $0 <statePath>"
+ echo "Backs up build state into <statePath>"
exit 1
}
@@ -19,10 +18,6 @@
usage
fi
-if [ "$gradlewDir" == "" ]; then
- usage
-fi
-
move=false
if [ "$moveArg" == "--move" ]; then
move=true
@@ -41,7 +36,9 @@
if [ "$OUT_DIR" == "" ]; then
OUT_DIR="$checkoutDir/out"
else
- GRADLE_USER_HOME="$OUT_DIR/.gradle"
+ if [ "$GRADLE_USER_HOME" == "" ]; then
+ GRADLE_USER_HOME="$OUT_DIR/.gradle"
+ fi
fi
if [ "$DIST_DIR" == "" ];then
@@ -95,9 +92,9 @@
mv "$backupDir/out/.gradle" "$backupDir/gradleUserHome" 2>/dev/null || true
fi
- copy "$gradlewDir/.gradle" "$backupDir/support/.gradle"
- copy "$gradlewDir/buildSrc/.gradle" "$backupDir/buildSrc/.gradle"
- copy "$gradlewDir/local.properties" "$backupDir/local.properties"
+ copy "$supportRoot/.gradle" "$backupDir/support/.gradle"
+ copy "$supportRoot/buildSrc/.gradle" "$backupDir/buildSrc/.gradle"
+ copy "$supportRoot/local.properties" "$backupDir/local.properties"
}
backupState $stateDir
diff --git a/development/diagnose-build-failure/impl/restore-state.sh b/development/diagnose-build-failure/impl/restore-state.sh
index 9111b4d..78c1ff7 100755
--- a/development/diagnose-build-failure/impl/restore-state.sh
+++ b/development/diagnose-build-failure/impl/restore-state.sh
@@ -2,16 +2,15 @@
set -e
stateDir="$1"
-gradlewDir="$2"
-moveArg="$3"
+moveArg="$2"
scriptPath="$(cd $(dirname $0) && pwd)"
supportRoot="$(cd $scriptPath/../../.. && pwd)"
checkoutRoot="$(cd $supportRoot/../.. && pwd)"
function usage() {
- echo "usage: $0 <statePath> <gradlew dir>"
- echo "Restores build state from <statePath> into the places where the build at <gradlew dir> will look for it"
+ echo "usage: $0 <statePath>"
+ echo "Restores build state from <statePath> into the places where the build will look for it"
exit 1
}
@@ -19,10 +18,6 @@
usage
fi
-if [ "$gradlewDir" == "" ]; then
- usage
-fi
-
move=false
if [ "$moveArg" == "--move" ]; then
move=true
@@ -66,9 +61,9 @@
copy "$backupDir/out" "$OUT_DIR"
copy "$backupDir/dist" "$DIST_DIR" # might be inside OUT_DIR
copy "$backupDir/gradleUserHome" "$GRADLE_USER_HOME" # might be inside OUT_DIR
- copy "$backupDir/support/.gradle" "$gradlewDir/.gradle"
- copy "$backupDir/buildSrc/.gradle" "$gradlewDir/buildSrc/.gradle"
- copy "$backupDir/local.properties" "$gradlewDir/local.properties"
+ copy "$backupDir/support/.gradle" "$supportRoot/.gradle"
+ copy "$backupDir/buildSrc/.gradle" "$supportRoot/buildSrc/.gradle"
+ copy "$backupDir/local.properties" "$supportRoot/local.properties"
}
restoreState $stateDir
diff --git a/development/update-verification-metadata.sh b/development/update-verification-metadata.sh
index 69a7be0..3de0bcd 100755
--- a/development/update-verification-metadata.sh
+++ b/development/update-verification-metadata.sh
@@ -1,12 +1,17 @@
#!/bin/bash
set -e
+function runGradle() {
+ kmpArgs="-Pandroidx.compose.multiplatformEnabled=true -Pandroidx.kmp.native.enabled=true"
+ ./gradlew $kmpArgs "$@"
+}
+
# This script regenerates signature-related information (dependency-verification-metadata and keyring)
function regenerateTrustedKeys() {
echo "regenerating list of trusted keys"
# regenerate metadata
# Need to run a clean build, https://github.com/gradle/gradle/issues/19228
- ./gradlew --write-verification-metadata pgp,sha256 --dry-run --clean bOS
+ runGradle --write-verification-metadata pgp,sha256 --dry-run --clean bOS
# extract and keep only the <trusted-keys> section
WORK_DIR=gradle/update-keys-temp
rm -rf "$WORK_DIR"
@@ -40,7 +45,7 @@
function regenerateKeyring() {
# a separate step from regenerating the verification metadata, https://github.com/gradle/gradle/issues/20138
echo "regenerating keyring"
- ./gradlew --write-verification-metadata sha256 --export-keys --dry-run bOS
+ runGradle --write-verification-metadata sha256 --export-keys --dry-run bOS
echo "sorting keyring and removing duplicates"
# sort and unique the keyring
diff --git a/docs-public/build.gradle b/docs-public/build.gradle
index a248e69..5d1050e 100644
--- a/docs-public/build.gradle
+++ b/docs-public/build.gradle
@@ -4,10 +4,10 @@
}
dependencies {
- docs("androidx.activity:activity:1.5.0-beta01")
- docs("androidx.activity:activity-compose:1.5.0-beta01")
- samples("androidx.activity:activity-compose-samples:1.5.0-beta01")
- docs("androidx.activity:activity-ktx:1.5.0-beta01")
+ docs("androidx.activity:activity:1.5.0-rc01")
+ docs("androidx.activity:activity-compose:1.5.0-rc01")
+ samples("androidx.activity:activity-compose-samples:1.5.0-rc01")
+ docs("androidx.activity:activity-ktx:1.5.0-rc01")
docs("androidx.ads:ads-identifier:1.0.0-alpha04")
docs("androidx.ads:ads-identifier-provider:1.0.0-alpha04")
docs("androidx.annotation:annotation:1.4.0-alpha02")
diff --git a/dynamicanimation/dynamicanimation/lint-baseline.xml b/dynamicanimation/dynamicanimation/lint-baseline.xml
index 405b145..3d0fb84 100644
--- a/dynamicanimation/dynamicanimation/lint-baseline.xml
+++ b/dynamicanimation/dynamicanimation/lint-baseline.xml
@@ -3,6 +3,17 @@
<issue
id="ClassVerificationFailure"
+ message="This call references a method added in API level 33; however, the containing class androidx.dynamicanimation.animation.AnimationHandler is reachable from earlier API levels and will fail run-time class verification."
+ errorLine1=" mDurationScale = ValueAnimator.getDurationScale();"
+ errorLine2=" ~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/java/androidx/dynamicanimation/animation/AnimationHandler.java"
+ line="133"
+ column="48"/>
+ </issue>
+
+ <issue
+ id="ClassVerificationFailure"
message="This call references a method added in API level 24; however, the containing class null is reachable from earlier API levels and will fail run-time class verification."
errorLine1=" property.setValue(object, value);"
errorLine2=" ~~~~~~~~">
diff --git a/fragment/OWNERS b/fragment/OWNERS
index 130d8a3..94b111e 100644
--- a/fragment/OWNERS
+++ b/fragment/OWNERS
@@ -3,6 +3,7 @@
jbwoods@google.com
mount@google.com
sanura@google.com
+clarafok@google.com
per-file settings.gradle = dustinlam@google.com, rahulrav@google.com
diff --git a/fragment/fragment-ktx/api/1.5.0-beta02.txt b/fragment/fragment-ktx/api/1.5.0-beta02.txt
new file mode 100644
index 0000000..6d0a8d3
--- /dev/null
+++ b/fragment/fragment-ktx/api/1.5.0-beta02.txt
@@ -0,0 +1,37 @@
+// Signature format: 4.0
+package androidx.fragment.app {
+
+ public final class FragmentKt {
+ method public static void clearFragmentResult(androidx.fragment.app.Fragment, String requestKey);
+ method public static void clearFragmentResultListener(androidx.fragment.app.Fragment, String requestKey);
+ method public static void setFragmentResult(androidx.fragment.app.Fragment, String requestKey, android.os.Bundle result);
+ method public static void setFragmentResultListener(androidx.fragment.app.Fragment, String requestKey, kotlin.jvm.functions.Function2<? super java.lang.String,? super android.os.Bundle,kotlin.Unit> listener);
+ }
+
+ public final class FragmentManagerKt {
+ method public static inline void commit(androidx.fragment.app.FragmentManager, optional boolean allowStateLoss, kotlin.jvm.functions.Function1<? super androidx.fragment.app.FragmentTransaction,kotlin.Unit> body);
+ method public static inline void commitNow(androidx.fragment.app.FragmentManager, optional boolean allowStateLoss, kotlin.jvm.functions.Function1<? super androidx.fragment.app.FragmentTransaction,kotlin.Unit> body);
+ method @Deprecated public static inline void transaction(androidx.fragment.app.FragmentManager, optional boolean now, optional boolean allowStateLoss, kotlin.jvm.functions.Function1<? super androidx.fragment.app.FragmentTransaction,kotlin.Unit> body);
+ }
+
+ public final class FragmentTransactionKt {
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.FragmentTransaction! add(androidx.fragment.app.FragmentTransaction, @IdRes int containerViewId, optional String tag, optional android.os.Bundle? args);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.FragmentTransaction! add(androidx.fragment.app.FragmentTransaction, String tag, optional android.os.Bundle? args);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.FragmentTransaction! replace(androidx.fragment.app.FragmentTransaction, @IdRes int containerViewId, optional String tag, optional android.os.Bundle? args);
+ }
+
+ public final class FragmentViewModelLazyKt {
+ method @Deprecated @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! activityViewModels(androidx.fragment.app.Fragment, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! activityViewModels(androidx.fragment.app.Fragment, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras>? extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static <VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<VM> createViewModelLazy(androidx.fragment.app.Fragment, kotlin.reflect.KClass<VM> viewModelClass, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStore> storeProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras> extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @Deprecated @MainThread public static <VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! createViewModelLazy(androidx.fragment.app.Fragment, kotlin.reflect.KClass<VM> viewModelClass, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStore> storeProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @Deprecated @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! viewModels(androidx.fragment.app.Fragment, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStoreOwner> ownerProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! viewModels(androidx.fragment.app.Fragment, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStoreOwner> ownerProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras>? extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ }
+
+ public final class ViewKt {
+ method public static <F extends androidx.fragment.app.Fragment> F findFragment(android.view.View);
+ }
+
+}
+
diff --git a/fragment/fragment-ktx/api/public_plus_experimental_1.5.0-beta02.txt b/fragment/fragment-ktx/api/public_plus_experimental_1.5.0-beta02.txt
new file mode 100644
index 0000000..6d0a8d3
--- /dev/null
+++ b/fragment/fragment-ktx/api/public_plus_experimental_1.5.0-beta02.txt
@@ -0,0 +1,37 @@
+// Signature format: 4.0
+package androidx.fragment.app {
+
+ public final class FragmentKt {
+ method public static void clearFragmentResult(androidx.fragment.app.Fragment, String requestKey);
+ method public static void clearFragmentResultListener(androidx.fragment.app.Fragment, String requestKey);
+ method public static void setFragmentResult(androidx.fragment.app.Fragment, String requestKey, android.os.Bundle result);
+ method public static void setFragmentResultListener(androidx.fragment.app.Fragment, String requestKey, kotlin.jvm.functions.Function2<? super java.lang.String,? super android.os.Bundle,kotlin.Unit> listener);
+ }
+
+ public final class FragmentManagerKt {
+ method public static inline void commit(androidx.fragment.app.FragmentManager, optional boolean allowStateLoss, kotlin.jvm.functions.Function1<? super androidx.fragment.app.FragmentTransaction,kotlin.Unit> body);
+ method public static inline void commitNow(androidx.fragment.app.FragmentManager, optional boolean allowStateLoss, kotlin.jvm.functions.Function1<? super androidx.fragment.app.FragmentTransaction,kotlin.Unit> body);
+ method @Deprecated public static inline void transaction(androidx.fragment.app.FragmentManager, optional boolean now, optional boolean allowStateLoss, kotlin.jvm.functions.Function1<? super androidx.fragment.app.FragmentTransaction,kotlin.Unit> body);
+ }
+
+ public final class FragmentTransactionKt {
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.FragmentTransaction! add(androidx.fragment.app.FragmentTransaction, @IdRes int containerViewId, optional String tag, optional android.os.Bundle? args);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.FragmentTransaction! add(androidx.fragment.app.FragmentTransaction, String tag, optional android.os.Bundle? args);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.FragmentTransaction! replace(androidx.fragment.app.FragmentTransaction, @IdRes int containerViewId, optional String tag, optional android.os.Bundle? args);
+ }
+
+ public final class FragmentViewModelLazyKt {
+ method @Deprecated @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! activityViewModels(androidx.fragment.app.Fragment, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! activityViewModels(androidx.fragment.app.Fragment, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras>? extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static <VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<VM> createViewModelLazy(androidx.fragment.app.Fragment, kotlin.reflect.KClass<VM> viewModelClass, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStore> storeProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras> extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @Deprecated @MainThread public static <VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! createViewModelLazy(androidx.fragment.app.Fragment, kotlin.reflect.KClass<VM> viewModelClass, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStore> storeProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @Deprecated @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! viewModels(androidx.fragment.app.Fragment, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStoreOwner> ownerProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! viewModels(androidx.fragment.app.Fragment, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStoreOwner> ownerProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras>? extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ }
+
+ public final class ViewKt {
+ method public static <F extends androidx.fragment.app.Fragment> F findFragment(android.view.View);
+ }
+
+}
+
diff --git a/fragment/fragment-ktx/api/res-1.5.0-beta02.txt b/fragment/fragment-ktx/api/res-1.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fragment/fragment-ktx/api/res-1.5.0-beta02.txt
diff --git a/fragment/fragment-ktx/api/restricted_1.5.0-beta02.txt b/fragment/fragment-ktx/api/restricted_1.5.0-beta02.txt
new file mode 100644
index 0000000..6d0a8d3
--- /dev/null
+++ b/fragment/fragment-ktx/api/restricted_1.5.0-beta02.txt
@@ -0,0 +1,37 @@
+// Signature format: 4.0
+package androidx.fragment.app {
+
+ public final class FragmentKt {
+ method public static void clearFragmentResult(androidx.fragment.app.Fragment, String requestKey);
+ method public static void clearFragmentResultListener(androidx.fragment.app.Fragment, String requestKey);
+ method public static void setFragmentResult(androidx.fragment.app.Fragment, String requestKey, android.os.Bundle result);
+ method public static void setFragmentResultListener(androidx.fragment.app.Fragment, String requestKey, kotlin.jvm.functions.Function2<? super java.lang.String,? super android.os.Bundle,kotlin.Unit> listener);
+ }
+
+ public final class FragmentManagerKt {
+ method public static inline void commit(androidx.fragment.app.FragmentManager, optional boolean allowStateLoss, kotlin.jvm.functions.Function1<? super androidx.fragment.app.FragmentTransaction,kotlin.Unit> body);
+ method public static inline void commitNow(androidx.fragment.app.FragmentManager, optional boolean allowStateLoss, kotlin.jvm.functions.Function1<? super androidx.fragment.app.FragmentTransaction,kotlin.Unit> body);
+ method @Deprecated public static inline void transaction(androidx.fragment.app.FragmentManager, optional boolean now, optional boolean allowStateLoss, kotlin.jvm.functions.Function1<? super androidx.fragment.app.FragmentTransaction,kotlin.Unit> body);
+ }
+
+ public final class FragmentTransactionKt {
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.FragmentTransaction! add(androidx.fragment.app.FragmentTransaction, @IdRes int containerViewId, optional String tag, optional android.os.Bundle? args);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.FragmentTransaction! add(androidx.fragment.app.FragmentTransaction, String tag, optional android.os.Bundle? args);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.FragmentTransaction! replace(androidx.fragment.app.FragmentTransaction, @IdRes int containerViewId, optional String tag, optional android.os.Bundle? args);
+ }
+
+ public final class FragmentViewModelLazyKt {
+ method @Deprecated @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! activityViewModels(androidx.fragment.app.Fragment, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! activityViewModels(androidx.fragment.app.Fragment, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras>? extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static <VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<VM> createViewModelLazy(androidx.fragment.app.Fragment, kotlin.reflect.KClass<VM> viewModelClass, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStore> storeProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras> extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @Deprecated @MainThread public static <VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! createViewModelLazy(androidx.fragment.app.Fragment, kotlin.reflect.KClass<VM> viewModelClass, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStore> storeProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @Deprecated @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! viewModels(androidx.fragment.app.Fragment, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStoreOwner> ownerProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! viewModels(androidx.fragment.app.Fragment, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStoreOwner> ownerProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras>? extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ }
+
+ public final class ViewKt {
+ method public static <F extends androidx.fragment.app.Fragment> F findFragment(android.view.View);
+ }
+
+}
+
diff --git a/fragment/fragment-ktx/build.gradle b/fragment/fragment-ktx/build.gradle
index 7b59661..16b8225 100644
--- a/fragment/fragment-ktx/build.gradle
+++ b/fragment/fragment-ktx/build.gradle
@@ -25,7 +25,7 @@
dependencies {
api(project(":fragment:fragment"))
- api(projectOrArtifact(":activity:activity-ktx")) {
+ api("androidx.activity:activity-ktx:1.5.0-rc01") {
because "Mirror fragment dependency graph for -ktx artifacts"
}
api("androidx.core:core-ktx:1.2.0") {
@@ -34,11 +34,11 @@
api("androidx.collection:collection-ktx:1.1.0") {
because "Mirror fragment dependency graph for -ktx artifacts"
}
- api(projectOrArtifact(":lifecycle:lifecycle-livedata-core-ktx")) {
+ api("androidx.lifecycle:lifecycle-livedata-core-ktx:2.5.0-rc01") {
because 'Mirror fragment dependency graph for -ktx artifacts'
}
- api(projectOrArtifact(":lifecycle:lifecycle-viewmodel-ktx"))
- api(projectOrArtifact(":savedstate:savedstate-ktx")) {
+ api("androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.0-rc01")
+ api("androidx.savedstate:savedstate-ktx:1.2.0-rc01") {
because 'Mirror fragment dependency graph for -ktx artifacts'
}
api(libs.kotlinStdlib)
diff --git a/fragment/fragment-testing/api/1.5.0-beta02.txt b/fragment/fragment-testing/api/1.5.0-beta02.txt
new file mode 100644
index 0000000..e784213
--- /dev/null
+++ b/fragment/fragment-testing/api/1.5.0-beta02.txt
@@ -0,0 +1,60 @@
+// Signature format: 4.0
+package androidx.fragment.app.testing {
+
+ public final class FragmentScenario<F extends androidx.fragment.app.Fragment> implements java.io.Closeable {
+ method public void close();
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, @StyleRes int themeResId, androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, @StyleRes int themeResId, androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass);
+ method public androidx.fragment.app.testing.FragmentScenario<F> moveToState(androidx.lifecycle.Lifecycle.State newState);
+ method public androidx.fragment.app.testing.FragmentScenario<F> onFragment(androidx.fragment.app.testing.FragmentScenario.FragmentAction<F> action);
+ method public androidx.fragment.app.testing.FragmentScenario<F> recreate();
+ field public static final androidx.fragment.app.testing.FragmentScenario.Companion Companion;
+ }
+
+ public static final class FragmentScenario.Companion {
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, @StyleRes int themeResId, androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, @StyleRes int themeResId, androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass);
+ }
+
+ public static fun interface FragmentScenario.FragmentAction<F extends androidx.fragment.app.Fragment> {
+ method public void perform(F fragment);
+ }
+
+ public final class FragmentScenarioKt {
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragment(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.fragment.app.FragmentFactory? factory);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragment(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, kotlin.jvm.functions.Function0<? extends F> instantiate);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragment(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragment(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, kotlin.jvm.functions.Function0<? extends F> instantiate);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragmentInContainer(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.fragment.app.FragmentFactory? factory);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragmentInContainer(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, kotlin.jvm.functions.Function0<? extends F> instantiate);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragmentInContainer(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragmentInContainer(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, kotlin.jvm.functions.Function0<? extends F> instantiate);
+ method public static inline <reified F extends androidx.fragment.app.Fragment, T> T! withFragment(androidx.fragment.app.testing.FragmentScenario<F>, kotlin.jvm.functions.Function1<? super F,? extends T> block);
+ }
+
+}
+
diff --git a/fragment/fragment-testing/api/public_plus_experimental_1.5.0-beta02.txt b/fragment/fragment-testing/api/public_plus_experimental_1.5.0-beta02.txt
new file mode 100644
index 0000000..e784213
--- /dev/null
+++ b/fragment/fragment-testing/api/public_plus_experimental_1.5.0-beta02.txt
@@ -0,0 +1,60 @@
+// Signature format: 4.0
+package androidx.fragment.app.testing {
+
+ public final class FragmentScenario<F extends androidx.fragment.app.Fragment> implements java.io.Closeable {
+ method public void close();
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, @StyleRes int themeResId, androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, @StyleRes int themeResId, androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass);
+ method public androidx.fragment.app.testing.FragmentScenario<F> moveToState(androidx.lifecycle.Lifecycle.State newState);
+ method public androidx.fragment.app.testing.FragmentScenario<F> onFragment(androidx.fragment.app.testing.FragmentScenario.FragmentAction<F> action);
+ method public androidx.fragment.app.testing.FragmentScenario<F> recreate();
+ field public static final androidx.fragment.app.testing.FragmentScenario.Companion Companion;
+ }
+
+ public static final class FragmentScenario.Companion {
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, @StyleRes int themeResId, androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, @StyleRes int themeResId, androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass);
+ }
+
+ public static fun interface FragmentScenario.FragmentAction<F extends androidx.fragment.app.Fragment> {
+ method public void perform(F fragment);
+ }
+
+ public final class FragmentScenarioKt {
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragment(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.fragment.app.FragmentFactory? factory);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragment(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, kotlin.jvm.functions.Function0<? extends F> instantiate);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragment(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragment(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, kotlin.jvm.functions.Function0<? extends F> instantiate);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragmentInContainer(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.fragment.app.FragmentFactory? factory);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragmentInContainer(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, kotlin.jvm.functions.Function0<? extends F> instantiate);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragmentInContainer(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragmentInContainer(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, kotlin.jvm.functions.Function0<? extends F> instantiate);
+ method public static inline <reified F extends androidx.fragment.app.Fragment, T> T! withFragment(androidx.fragment.app.testing.FragmentScenario<F>, kotlin.jvm.functions.Function1<? super F,? extends T> block);
+ }
+
+}
+
diff --git a/fragment/fragment-testing/api/res-1.5.0-beta02.txt b/fragment/fragment-testing/api/res-1.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fragment/fragment-testing/api/res-1.5.0-beta02.txt
diff --git a/fragment/fragment-testing/api/restricted_1.5.0-beta02.txt b/fragment/fragment-testing/api/restricted_1.5.0-beta02.txt
new file mode 100644
index 0000000..e784213
--- /dev/null
+++ b/fragment/fragment-testing/api/restricted_1.5.0-beta02.txt
@@ -0,0 +1,60 @@
+// Signature format: 4.0
+package androidx.fragment.app.testing {
+
+ public final class FragmentScenario<F extends androidx.fragment.app.Fragment> implements java.io.Closeable {
+ method public void close();
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, @StyleRes int themeResId, androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, @StyleRes int themeResId, androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs);
+ method public static <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass);
+ method public androidx.fragment.app.testing.FragmentScenario<F> moveToState(androidx.lifecycle.Lifecycle.State newState);
+ method public androidx.fragment.app.testing.FragmentScenario<F> onFragment(androidx.fragment.app.testing.FragmentScenario.FragmentAction<F> action);
+ method public androidx.fragment.app.testing.FragmentScenario<F> recreate();
+ field public static final androidx.fragment.app.testing.FragmentScenario.Companion Companion;
+ }
+
+ public static final class FragmentScenario.Companion {
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, @StyleRes int themeResId, androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launch(Class<F> fragmentClass);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, android.os.Bundle? fragmentArgs, @StyleRes int themeResId, androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass, optional android.os.Bundle? fragmentArgs);
+ method public <F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F> launchInContainer(Class<F> fragmentClass);
+ }
+
+ public static fun interface FragmentScenario.FragmentAction<F extends androidx.fragment.app.Fragment> {
+ method public void perform(F fragment);
+ }
+
+ public final class FragmentScenarioKt {
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragment(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.fragment.app.FragmentFactory? factory);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragment(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, kotlin.jvm.functions.Function0<? extends F> instantiate);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragment(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragment(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, kotlin.jvm.functions.Function0<? extends F> instantiate);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragmentInContainer(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.fragment.app.FragmentFactory? factory);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragmentInContainer(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, kotlin.jvm.functions.Function0<? extends F> instantiate);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragmentInContainer(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, optional androidx.fragment.app.FragmentFactory? factory);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> androidx.fragment.app.testing.FragmentScenario<F>! launchFragmentInContainer(optional android.os.Bundle? fragmentArgs, optional @StyleRes int themeResId, optional androidx.lifecycle.Lifecycle.State initialState, kotlin.jvm.functions.Function0<? extends F> instantiate);
+ method public static inline <reified F extends androidx.fragment.app.Fragment, T> T! withFragment(androidx.fragment.app.testing.FragmentScenario<F>, kotlin.jvm.functions.Function1<? super F,? extends T> block);
+ }
+
+}
+
diff --git a/fragment/fragment/api/1.5.0-beta02.txt b/fragment/fragment/api/1.5.0-beta02.txt
new file mode 100644
index 0000000..32377c9
--- /dev/null
+++ b/fragment/fragment/api/1.5.0-beta02.txt
@@ -0,0 +1,543 @@
+// Signature format: 4.0
+package androidx.fragment.app {
+
+ public class DialogFragment extends androidx.fragment.app.Fragment implements android.content.DialogInterface.OnCancelListener android.content.DialogInterface.OnDismissListener {
+ ctor public DialogFragment();
+ ctor public DialogFragment(@LayoutRes int);
+ method public void dismiss();
+ method public void dismissAllowingStateLoss();
+ method @MainThread public void dismissNow();
+ method public android.app.Dialog? getDialog();
+ method public boolean getShowsDialog();
+ method @StyleRes public int getTheme();
+ method public boolean isCancelable();
+ method public void onCancel(android.content.DialogInterface);
+ method @MainThread public android.app.Dialog onCreateDialog(android.os.Bundle?);
+ method public void onDismiss(android.content.DialogInterface);
+ method public final android.app.Dialog requireDialog();
+ method public void setCancelable(boolean);
+ method public void setShowsDialog(boolean);
+ method public void setStyle(int, @StyleRes int);
+ method public void show(androidx.fragment.app.FragmentManager, String?);
+ method public int show(androidx.fragment.app.FragmentTransaction, String?);
+ method public void showNow(androidx.fragment.app.FragmentManager, String?);
+ field public static final int STYLE_NORMAL = 0; // 0x0
+ field public static final int STYLE_NO_FRAME = 2; // 0x2
+ field public static final int STYLE_NO_INPUT = 3; // 0x3
+ field public static final int STYLE_NO_TITLE = 1; // 0x1
+ }
+
+ public class Fragment implements androidx.activity.result.ActivityResultCaller android.content.ComponentCallbacks androidx.lifecycle.HasDefaultViewModelProviderFactory androidx.lifecycle.LifecycleOwner androidx.savedstate.SavedStateRegistryOwner android.view.View.OnCreateContextMenuListener androidx.lifecycle.ViewModelStoreOwner {
+ ctor public Fragment();
+ ctor @ContentView public Fragment(@LayoutRes int);
+ method public void dump(String, java.io.FileDescriptor?, java.io.PrintWriter, String![]?);
+ method public final boolean equals(Object?);
+ method public final androidx.fragment.app.FragmentActivity? getActivity();
+ method public boolean getAllowEnterTransitionOverlap();
+ method public boolean getAllowReturnTransitionOverlap();
+ method public final android.os.Bundle? getArguments();
+ method public final androidx.fragment.app.FragmentManager getChildFragmentManager();
+ method public android.content.Context? getContext();
+ method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory();
+ method public Object? getEnterTransition();
+ method public Object? getExitTransition();
+ method @Deprecated public final androidx.fragment.app.FragmentManager? getFragmentManager();
+ method public final Object? getHost();
+ method public final int getId();
+ method public final android.view.LayoutInflater getLayoutInflater();
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ method @Deprecated public androidx.loader.app.LoaderManager getLoaderManager();
+ method public final androidx.fragment.app.Fragment? getParentFragment();
+ method public final androidx.fragment.app.FragmentManager getParentFragmentManager();
+ method public Object? getReenterTransition();
+ method public final android.content.res.Resources getResources();
+ method @Deprecated public final boolean getRetainInstance();
+ method public Object? getReturnTransition();
+ method public final androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
+ method public Object? getSharedElementEnterTransition();
+ method public Object? getSharedElementReturnTransition();
+ method public final String getString(@StringRes int);
+ method public final String getString(@StringRes int, java.lang.Object!...);
+ method public final String? getTag();
+ method @Deprecated public final androidx.fragment.app.Fragment? getTargetFragment();
+ method @Deprecated public final int getTargetRequestCode();
+ method public final CharSequence getText(@StringRes int);
+ method @Deprecated public boolean getUserVisibleHint();
+ method public android.view.View? getView();
+ method @MainThread public androidx.lifecycle.LifecycleOwner getViewLifecycleOwner();
+ method public androidx.lifecycle.LiveData<androidx.lifecycle.LifecycleOwner!> getViewLifecycleOwnerLiveData();
+ method public androidx.lifecycle.ViewModelStore getViewModelStore();
+ method public final int hashCode();
+ method @Deprecated public static androidx.fragment.app.Fragment instantiate(android.content.Context, String);
+ method @Deprecated public static androidx.fragment.app.Fragment instantiate(android.content.Context, String, android.os.Bundle?);
+ method public final boolean isAdded();
+ method public final boolean isDetached();
+ method public final boolean isHidden();
+ method public final boolean isInLayout();
+ method public final boolean isRemoving();
+ method public final boolean isResumed();
+ method public final boolean isStateSaved();
+ method public final boolean isVisible();
+ method @Deprecated @CallSuper @MainThread public void onActivityCreated(android.os.Bundle?);
+ method @Deprecated public void onActivityResult(int, int, android.content.Intent?);
+ method @CallSuper @MainThread public void onAttach(android.content.Context);
+ method @Deprecated @CallSuper @MainThread public void onAttach(android.app.Activity);
+ method @Deprecated @MainThread public void onAttachFragment(androidx.fragment.app.Fragment);
+ method @CallSuper public void onConfigurationChanged(android.content.res.Configuration);
+ method @MainThread public boolean onContextItemSelected(android.view.MenuItem);
+ method @CallSuper @MainThread public void onCreate(android.os.Bundle?);
+ method @MainThread public android.view.animation.Animation? onCreateAnimation(int, boolean, int);
+ method @MainThread public android.animation.Animator? onCreateAnimator(int, boolean, int);
+ method @MainThread public void onCreateContextMenu(android.view.ContextMenu, android.view.View, android.view.ContextMenu.ContextMenuInfo?);
+ method @Deprecated @MainThread public void onCreateOptionsMenu(android.view.Menu, android.view.MenuInflater);
+ method @MainThread public android.view.View? onCreateView(android.view.LayoutInflater, android.view.ViewGroup?, android.os.Bundle?);
+ method @CallSuper @MainThread public void onDestroy();
+ method @Deprecated @MainThread public void onDestroyOptionsMenu();
+ method @CallSuper @MainThread public void onDestroyView();
+ method @CallSuper @MainThread public void onDetach();
+ method public android.view.LayoutInflater onGetLayoutInflater(android.os.Bundle?);
+ method @MainThread public void onHiddenChanged(boolean);
+ method @CallSuper @UiThread public void onInflate(android.content.Context, android.util.AttributeSet, android.os.Bundle?);
+ method @Deprecated @CallSuper @UiThread public void onInflate(android.app.Activity, android.util.AttributeSet, android.os.Bundle?);
+ method @CallSuper @MainThread public void onLowMemory();
+ method public void onMultiWindowModeChanged(boolean);
+ method @Deprecated @MainThread public boolean onOptionsItemSelected(android.view.MenuItem);
+ method @Deprecated @MainThread public void onOptionsMenuClosed(android.view.Menu);
+ method @CallSuper @MainThread public void onPause();
+ method public void onPictureInPictureModeChanged(boolean);
+ method @Deprecated @MainThread public void onPrepareOptionsMenu(android.view.Menu);
+ method @MainThread public void onPrimaryNavigationFragmentChanged(boolean);
+ method @Deprecated public void onRequestPermissionsResult(int, String![], int[]);
+ method @CallSuper @MainThread public void onResume();
+ method @MainThread public void onSaveInstanceState(android.os.Bundle);
+ method @CallSuper @MainThread public void onStart();
+ method @CallSuper @MainThread public void onStop();
+ method @MainThread public void onViewCreated(android.view.View, android.os.Bundle?);
+ method @CallSuper @MainThread public void onViewStateRestored(android.os.Bundle?);
+ method public void postponeEnterTransition();
+ method public final void postponeEnterTransition(long, java.util.concurrent.TimeUnit);
+ method @MainThread public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
+ method @MainThread public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultRegistry, androidx.activity.result.ActivityResultCallback<O!>);
+ method public void registerForContextMenu(android.view.View);
+ method @Deprecated public final void requestPermissions(String![], int);
+ method public final androidx.fragment.app.FragmentActivity requireActivity();
+ method public final android.os.Bundle requireArguments();
+ method public final android.content.Context requireContext();
+ method @Deprecated public final androidx.fragment.app.FragmentManager requireFragmentManager();
+ method public final Object requireHost();
+ method public final androidx.fragment.app.Fragment requireParentFragment();
+ method public final android.view.View requireView();
+ method public void setAllowEnterTransitionOverlap(boolean);
+ method public void setAllowReturnTransitionOverlap(boolean);
+ method public void setArguments(android.os.Bundle?);
+ method public void setEnterSharedElementCallback(androidx.core.app.SharedElementCallback?);
+ method public void setEnterTransition(Object?);
+ method public void setExitSharedElementCallback(androidx.core.app.SharedElementCallback?);
+ method public void setExitTransition(Object?);
+ method @Deprecated public void setHasOptionsMenu(boolean);
+ method public void setInitialSavedState(androidx.fragment.app.Fragment.SavedState?);
+ method public void setMenuVisibility(boolean);
+ method public void setReenterTransition(Object?);
+ method @Deprecated public void setRetainInstance(boolean);
+ method public void setReturnTransition(Object?);
+ method public void setSharedElementEnterTransition(Object?);
+ method public void setSharedElementReturnTransition(Object?);
+ method @Deprecated public void setTargetFragment(androidx.fragment.app.Fragment?, int);
+ method @Deprecated public void setUserVisibleHint(boolean);
+ method public boolean shouldShowRequestPermissionRationale(String);
+ method public void startActivity(android.content.Intent!);
+ method public void startActivity(android.content.Intent!, android.os.Bundle?);
+ method @Deprecated public void startActivityForResult(android.content.Intent!, int);
+ method @Deprecated public void startActivityForResult(android.content.Intent!, int, android.os.Bundle?);
+ method @Deprecated public void startIntentSenderForResult(android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
+ method public void startPostponedEnterTransition();
+ method public void unregisterForContextMenu(android.view.View);
+ }
+
+ public static class Fragment.InstantiationException extends java.lang.RuntimeException {
+ ctor public Fragment.InstantiationException(String, Exception?);
+ }
+
+ public static class Fragment.SavedState implements android.os.Parcelable {
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.fragment.app.Fragment.SavedState!> CREATOR;
+ }
+
+ public class FragmentActivity extends androidx.activity.ComponentActivity implements androidx.core.app.ActivityCompat.OnRequestPermissionsResultCallback androidx.lifecycle.LifecycleOwner {
+ ctor public FragmentActivity();
+ ctor @ContentView public FragmentActivity(@LayoutRes int);
+ method public androidx.fragment.app.FragmentManager getSupportFragmentManager();
+ method @Deprecated public androidx.loader.app.LoaderManager getSupportLoaderManager();
+ method @Deprecated @MainThread public void onAttachFragment(androidx.fragment.app.Fragment);
+ method protected void onResumeFragments();
+ method public void onStateNotSaved();
+ method public void setEnterSharedElementCallback(androidx.core.app.SharedElementCallback?);
+ method public void setExitSharedElementCallback(androidx.core.app.SharedElementCallback?);
+ method public void startActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int);
+ method public void startActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int, android.os.Bundle?);
+ method @Deprecated public void startIntentSenderFromFragment(androidx.fragment.app.Fragment, android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
+ method public void supportFinishAfterTransition();
+ method @Deprecated public void supportInvalidateOptionsMenu();
+ method public void supportPostponeEnterTransition();
+ method public void supportStartPostponedEnterTransition();
+ method @Deprecated public final void validateRequestPermissionsRequestCode(int);
+ }
+
+ public abstract class FragmentContainer {
+ ctor public FragmentContainer();
+ method @Deprecated public androidx.fragment.app.Fragment instantiate(android.content.Context, String, android.os.Bundle?);
+ method public abstract android.view.View? onFindViewById(@IdRes int);
+ method public abstract boolean onHasView();
+ }
+
+ public final class FragmentContainerView extends android.widget.FrameLayout {
+ ctor public FragmentContainerView(android.content.Context context);
+ ctor public FragmentContainerView(android.content.Context context, android.util.AttributeSet? attrs, optional int defStyleAttr);
+ ctor public FragmentContainerView(android.content.Context context, android.util.AttributeSet? attrs);
+ method public <F extends androidx.fragment.app.Fragment> F! getFragment();
+ }
+
+ public class FragmentController {
+ method public void attachHost(androidx.fragment.app.Fragment?);
+ method public static androidx.fragment.app.FragmentController createController(androidx.fragment.app.FragmentHostCallback<?>);
+ method public void dispatchActivityCreated();
+ method @Deprecated public void dispatchConfigurationChanged(android.content.res.Configuration);
+ method public boolean dispatchContextItemSelected(android.view.MenuItem);
+ method public void dispatchCreate();
+ method @Deprecated public boolean dispatchCreateOptionsMenu(android.view.Menu, android.view.MenuInflater);
+ method public void dispatchDestroy();
+ method public void dispatchDestroyView();
+ method @Deprecated public void dispatchLowMemory();
+ method @Deprecated public void dispatchMultiWindowModeChanged(boolean);
+ method @Deprecated public boolean dispatchOptionsItemSelected(android.view.MenuItem);
+ method @Deprecated public void dispatchOptionsMenuClosed(android.view.Menu);
+ method public void dispatchPause();
+ method @Deprecated public void dispatchPictureInPictureModeChanged(boolean);
+ method @Deprecated public boolean dispatchPrepareOptionsMenu(android.view.Menu);
+ method @Deprecated public void dispatchReallyStop();
+ method public void dispatchResume();
+ method public void dispatchStart();
+ method public void dispatchStop();
+ method @Deprecated public void doLoaderDestroy();
+ method @Deprecated public void doLoaderRetain();
+ method @Deprecated public void doLoaderStart();
+ method @Deprecated public void doLoaderStop(boolean);
+ method @Deprecated public void dumpLoaders(String, java.io.FileDescriptor?, java.io.PrintWriter, String![]?);
+ method public boolean execPendingActions();
+ method public androidx.fragment.app.Fragment? findFragmentByWho(String);
+ method public java.util.List<androidx.fragment.app.Fragment!> getActiveFragments(java.util.List<androidx.fragment.app.Fragment!>!);
+ method public int getActiveFragmentsCount();
+ method public androidx.fragment.app.FragmentManager getSupportFragmentManager();
+ method @Deprecated public androidx.loader.app.LoaderManager! getSupportLoaderManager();
+ method public void noteStateNotSaved();
+ method public android.view.View? onCreateView(android.view.View?, String, android.content.Context, android.util.AttributeSet);
+ method @Deprecated public void reportLoaderStart();
+ method @Deprecated public void restoreAllState(android.os.Parcelable?, java.util.List<androidx.fragment.app.Fragment!>?);
+ method @Deprecated public void restoreAllState(android.os.Parcelable?, androidx.fragment.app.FragmentManagerNonConfig?);
+ method @Deprecated public void restoreLoaderNonConfig(androidx.collection.SimpleArrayMap<java.lang.String!,androidx.loader.app.LoaderManager!>!);
+ method @Deprecated public void restoreSaveState(android.os.Parcelable?);
+ method @Deprecated public androidx.collection.SimpleArrayMap<java.lang.String!,androidx.loader.app.LoaderManager!>? retainLoaderNonConfig();
+ method @Deprecated public androidx.fragment.app.FragmentManagerNonConfig? retainNestedNonConfig();
+ method @Deprecated public java.util.List<androidx.fragment.app.Fragment!>? retainNonConfig();
+ method @Deprecated public android.os.Parcelable? saveAllState();
+ }
+
+ public class FragmentFactory {
+ ctor public FragmentFactory();
+ method public androidx.fragment.app.Fragment instantiate(ClassLoader, String);
+ method public static Class<? extends androidx.fragment.app.Fragment> loadFragmentClass(ClassLoader, String);
+ }
+
+ public abstract class FragmentHostCallback<E> extends androidx.fragment.app.FragmentContainer {
+ ctor public FragmentHostCallback(android.content.Context, android.os.Handler, int);
+ method public void onDump(String, java.io.FileDescriptor?, java.io.PrintWriter, String![]?);
+ method public android.view.View? onFindViewById(int);
+ method public abstract E? onGetHost();
+ method public android.view.LayoutInflater onGetLayoutInflater();
+ method public int onGetWindowAnimations();
+ method public boolean onHasView();
+ method public boolean onHasWindowAnimations();
+ method @Deprecated public void onRequestPermissionsFromFragment(androidx.fragment.app.Fragment, String![], int);
+ method public boolean onShouldSaveFragmentState(androidx.fragment.app.Fragment);
+ method public boolean onShouldShowRequestPermissionRationale(String);
+ method public void onStartActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int);
+ method public void onStartActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int, android.os.Bundle?);
+ method @Deprecated public void onStartIntentSenderFromFragment(androidx.fragment.app.Fragment, android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
+ method public void onSupportInvalidateOptionsMenu();
+ }
+
+ public abstract class FragmentManager implements androidx.fragment.app.FragmentResultOwner {
+ ctor public FragmentManager();
+ method public void addFragmentOnAttachListener(androidx.fragment.app.FragmentOnAttachListener);
+ method public void addOnBackStackChangedListener(androidx.fragment.app.FragmentManager.OnBackStackChangedListener);
+ method public androidx.fragment.app.FragmentTransaction beginTransaction();
+ method public void clearBackStack(String);
+ method public final void clearFragmentResult(String);
+ method public final void clearFragmentResultListener(String);
+ method public void dump(String, java.io.FileDescriptor?, java.io.PrintWriter, String![]?);
+ method @Deprecated public static void enableDebugLogging(boolean);
+ method public boolean executePendingTransactions();
+ method public static <F extends androidx.fragment.app.Fragment> F findFragment(android.view.View);
+ method public androidx.fragment.app.Fragment? findFragmentById(@IdRes int);
+ method public androidx.fragment.app.Fragment? findFragmentByTag(String?);
+ method public androidx.fragment.app.FragmentManager.BackStackEntry getBackStackEntryAt(int);
+ method public int getBackStackEntryCount();
+ method public androidx.fragment.app.Fragment? getFragment(android.os.Bundle, String);
+ method public androidx.fragment.app.FragmentFactory getFragmentFactory();
+ method public java.util.List<androidx.fragment.app.Fragment!> getFragments();
+ method public androidx.fragment.app.Fragment? getPrimaryNavigationFragment();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy? getStrictModePolicy();
+ method public boolean isDestroyed();
+ method public boolean isStateSaved();
+ method public void popBackStack();
+ method public void popBackStack(String?, int);
+ method public void popBackStack(int, int);
+ method public boolean popBackStackImmediate();
+ method public boolean popBackStackImmediate(String?, int);
+ method public boolean popBackStackImmediate(int, int);
+ method public void putFragment(android.os.Bundle, String, androidx.fragment.app.Fragment);
+ method public void registerFragmentLifecycleCallbacks(androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks, boolean);
+ method public void removeFragmentOnAttachListener(androidx.fragment.app.FragmentOnAttachListener);
+ method public void removeOnBackStackChangedListener(androidx.fragment.app.FragmentManager.OnBackStackChangedListener);
+ method public void restoreBackStack(String);
+ method public void saveBackStack(String);
+ method public androidx.fragment.app.Fragment.SavedState? saveFragmentInstanceState(androidx.fragment.app.Fragment);
+ method public void setFragmentFactory(androidx.fragment.app.FragmentFactory);
+ method public final void setFragmentResult(String, android.os.Bundle);
+ method public final void setFragmentResultListener(String, androidx.lifecycle.LifecycleOwner, androidx.fragment.app.FragmentResultListener);
+ method public void setStrictModePolicy(androidx.fragment.app.strictmode.FragmentStrictMode.Policy?);
+ method public void unregisterFragmentLifecycleCallbacks(androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks);
+ field public static final int POP_BACK_STACK_INCLUSIVE = 1; // 0x1
+ }
+
+ public static interface FragmentManager.BackStackEntry {
+ method @Deprecated public CharSequence? getBreadCrumbShortTitle();
+ method @Deprecated @StringRes public int getBreadCrumbShortTitleRes();
+ method @Deprecated public CharSequence? getBreadCrumbTitle();
+ method @Deprecated @StringRes public int getBreadCrumbTitleRes();
+ method public int getId();
+ method public String? getName();
+ }
+
+ public abstract static class FragmentManager.FragmentLifecycleCallbacks {
+ ctor public FragmentManager.FragmentLifecycleCallbacks();
+ method @Deprecated public void onFragmentActivityCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle?);
+ method public void onFragmentAttached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.content.Context);
+ method public void onFragmentCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle?);
+ method public void onFragmentDestroyed(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentDetached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentPaused(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentPreAttached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.content.Context);
+ method public void onFragmentPreCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle?);
+ method public void onFragmentResumed(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentSaveInstanceState(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle);
+ method public void onFragmentStarted(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentStopped(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentViewCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.view.View, android.os.Bundle?);
+ method public void onFragmentViewDestroyed(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ }
+
+ public static interface FragmentManager.OnBackStackChangedListener {
+ method @MainThread public void onBackStackChanged();
+ }
+
+ @Deprecated public class FragmentManagerNonConfig {
+ }
+
+ public interface FragmentOnAttachListener {
+ method @MainThread public void onAttachFragment(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ }
+
+ @Deprecated public abstract class FragmentPagerAdapter extends androidx.viewpager.widget.PagerAdapter {
+ ctor @Deprecated public FragmentPagerAdapter(androidx.fragment.app.FragmentManager);
+ ctor @Deprecated public FragmentPagerAdapter(androidx.fragment.app.FragmentManager, int);
+ method @Deprecated public abstract androidx.fragment.app.Fragment getItem(int);
+ method @Deprecated public long getItemId(int);
+ method @Deprecated public boolean isViewFromObject(android.view.View, Object);
+ field @Deprecated public static final int BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT = 1; // 0x1
+ field @Deprecated public static final int BEHAVIOR_SET_USER_VISIBLE_HINT = 0; // 0x0
+ }
+
+ public interface FragmentResultListener {
+ method public void onFragmentResult(String, android.os.Bundle);
+ }
+
+ public interface FragmentResultOwner {
+ method public void clearFragmentResult(String);
+ method public void clearFragmentResultListener(String);
+ method public void setFragmentResult(String, android.os.Bundle);
+ method public void setFragmentResultListener(String, androidx.lifecycle.LifecycleOwner, androidx.fragment.app.FragmentResultListener);
+ }
+
+ @Deprecated public abstract class FragmentStatePagerAdapter extends androidx.viewpager.widget.PagerAdapter {
+ ctor @Deprecated public FragmentStatePagerAdapter(androidx.fragment.app.FragmentManager);
+ ctor @Deprecated public FragmentStatePagerAdapter(androidx.fragment.app.FragmentManager, int);
+ method @Deprecated public abstract androidx.fragment.app.Fragment getItem(int);
+ method @Deprecated public boolean isViewFromObject(android.view.View, Object);
+ field @Deprecated public static final int BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT = 1; // 0x1
+ field @Deprecated public static final int BEHAVIOR_SET_USER_VISIBLE_HINT = 0; // 0x0
+ }
+
+ @Deprecated public class FragmentTabHost extends android.widget.TabHost implements android.widget.TabHost.OnTabChangeListener {
+ ctor @Deprecated public FragmentTabHost(android.content.Context);
+ ctor @Deprecated public FragmentTabHost(android.content.Context, android.util.AttributeSet?);
+ method @Deprecated public void addTab(android.widget.TabHost.TabSpec, Class<?>, android.os.Bundle?);
+ method @Deprecated public void onTabChanged(String?);
+ method @Deprecated public void setup(android.content.Context, androidx.fragment.app.FragmentManager);
+ method @Deprecated public void setup(android.content.Context, androidx.fragment.app.FragmentManager, int);
+ }
+
+ public abstract class FragmentTransaction {
+ ctor @Deprecated public FragmentTransaction();
+ method public final androidx.fragment.app.FragmentTransaction add(Class<? extends androidx.fragment.app.Fragment>, android.os.Bundle?, String?);
+ method public androidx.fragment.app.FragmentTransaction add(androidx.fragment.app.Fragment, String?);
+ method public final androidx.fragment.app.FragmentTransaction add(@IdRes int, Class<? extends androidx.fragment.app.Fragment>, android.os.Bundle?);
+ method public androidx.fragment.app.FragmentTransaction add(@IdRes int, androidx.fragment.app.Fragment);
+ method public final androidx.fragment.app.FragmentTransaction add(@IdRes int, Class<? extends androidx.fragment.app.Fragment>, android.os.Bundle?, String?);
+ method public androidx.fragment.app.FragmentTransaction add(@IdRes int, androidx.fragment.app.Fragment, String?);
+ method public androidx.fragment.app.FragmentTransaction addSharedElement(android.view.View, String);
+ method public androidx.fragment.app.FragmentTransaction addToBackStack(String?);
+ method public androidx.fragment.app.FragmentTransaction attach(androidx.fragment.app.Fragment);
+ method public abstract int commit();
+ method public abstract int commitAllowingStateLoss();
+ method public abstract void commitNow();
+ method public abstract void commitNowAllowingStateLoss();
+ method public androidx.fragment.app.FragmentTransaction detach(androidx.fragment.app.Fragment);
+ method public androidx.fragment.app.FragmentTransaction disallowAddToBackStack();
+ method public androidx.fragment.app.FragmentTransaction hide(androidx.fragment.app.Fragment);
+ method public boolean isAddToBackStackAllowed();
+ method public boolean isEmpty();
+ method public androidx.fragment.app.FragmentTransaction remove(androidx.fragment.app.Fragment);
+ method public final androidx.fragment.app.FragmentTransaction replace(@IdRes int, Class<? extends androidx.fragment.app.Fragment>, android.os.Bundle?);
+ method public androidx.fragment.app.FragmentTransaction replace(@IdRes int, androidx.fragment.app.Fragment);
+ method public final androidx.fragment.app.FragmentTransaction replace(@IdRes int, Class<? extends androidx.fragment.app.Fragment>, android.os.Bundle?, String?);
+ method public androidx.fragment.app.FragmentTransaction replace(@IdRes int, androidx.fragment.app.Fragment, String?);
+ method public androidx.fragment.app.FragmentTransaction runOnCommit(Runnable);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setAllowOptimization(boolean);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setBreadCrumbShortTitle(@StringRes int);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setBreadCrumbShortTitle(CharSequence?);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setBreadCrumbTitle(@StringRes int);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setBreadCrumbTitle(CharSequence?);
+ method public androidx.fragment.app.FragmentTransaction setCustomAnimations(@AnimRes @AnimatorRes int, @AnimRes @AnimatorRes int);
+ method public androidx.fragment.app.FragmentTransaction setCustomAnimations(@AnimRes @AnimatorRes int, @AnimRes @AnimatorRes int, @AnimRes @AnimatorRes int, @AnimRes @AnimatorRes int);
+ method public androidx.fragment.app.FragmentTransaction setMaxLifecycle(androidx.fragment.app.Fragment, androidx.lifecycle.Lifecycle.State);
+ method public androidx.fragment.app.FragmentTransaction setPrimaryNavigationFragment(androidx.fragment.app.Fragment?);
+ method public androidx.fragment.app.FragmentTransaction setReorderingAllowed(boolean);
+ method public androidx.fragment.app.FragmentTransaction setTransition(int);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setTransitionStyle(@StyleRes int);
+ method public androidx.fragment.app.FragmentTransaction show(androidx.fragment.app.Fragment);
+ field public static final int TRANSIT_ENTER_MASK = 4096; // 0x1000
+ field public static final int TRANSIT_EXIT_MASK = 8192; // 0x2000
+ field public static final int TRANSIT_FRAGMENT_CLOSE = 8194; // 0x2002
+ field public static final int TRANSIT_FRAGMENT_FADE = 4099; // 0x1003
+ field public static final int TRANSIT_FRAGMENT_MATCH_ACTIVITY_CLOSE = 8197; // 0x2005
+ field public static final int TRANSIT_FRAGMENT_MATCH_ACTIVITY_OPEN = 4100; // 0x1004
+ field public static final int TRANSIT_FRAGMENT_OPEN = 4097; // 0x1001
+ field public static final int TRANSIT_NONE = 0; // 0x0
+ field public static final int TRANSIT_UNSET = -1; // 0xffffffff
+ }
+
+ public class ListFragment extends androidx.fragment.app.Fragment {
+ ctor public ListFragment();
+ method public android.widget.ListAdapter? getListAdapter();
+ method public android.widget.ListView getListView();
+ method public long getSelectedItemId();
+ method public int getSelectedItemPosition();
+ method public void onListItemClick(android.widget.ListView, android.view.View, int, long);
+ method public final android.widget.ListAdapter requireListAdapter();
+ method public void setEmptyText(CharSequence?);
+ method public void setListAdapter(android.widget.ListAdapter?);
+ method public void setListShown(boolean);
+ method public void setListShownNoAnimation(boolean);
+ method public void setSelection(int);
+ }
+
+}
+
+package androidx.fragment.app.strictmode {
+
+ public final class FragmentReuseViolation extends androidx.fragment.app.strictmode.Violation {
+ method public String getPreviousFragmentId();
+ property public final String previousFragmentId;
+ }
+
+ public final class FragmentStrictMode {
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy getDefaultPolicy();
+ method @VisibleForTesting public void onPolicyViolation(androidx.fragment.app.strictmode.Violation violation);
+ method public void setDefaultPolicy(androidx.fragment.app.strictmode.FragmentStrictMode.Policy);
+ property public final androidx.fragment.app.strictmode.FragmentStrictMode.Policy defaultPolicy;
+ field public static final androidx.fragment.app.strictmode.FragmentStrictMode INSTANCE;
+ }
+
+ public static fun interface FragmentStrictMode.OnViolationListener {
+ method public void onViolation(androidx.fragment.app.strictmode.Violation violation);
+ }
+
+ public static final class FragmentStrictMode.Policy {
+ field public static final androidx.fragment.app.strictmode.FragmentStrictMode.Policy LAX;
+ }
+
+ public static final class FragmentStrictMode.Policy.Builder {
+ ctor public FragmentStrictMode.Policy.Builder();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder allowViolation(Class<? extends androidx.fragment.app.Fragment> fragmentClass, Class<? extends androidx.fragment.app.strictmode.Violation> violationClass);
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder allowViolation(String fragmentClass, Class<? extends androidx.fragment.app.strictmode.Violation> violationClass);
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy build();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectFragmentReuse();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectFragmentTagUsage();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectRetainInstanceUsage();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectSetUserVisibleHint();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectTargetFragmentUsage();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectWrongFragmentContainer();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder penaltyDeath();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder penaltyListener(androidx.fragment.app.strictmode.FragmentStrictMode.OnViolationListener listener);
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder penaltyLog();
+ }
+
+ public final class FragmentTagUsageViolation extends androidx.fragment.app.strictmode.Violation {
+ method public android.view.ViewGroup? getParentContainer();
+ property public final android.view.ViewGroup? parentContainer;
+ }
+
+ public final class GetRetainInstanceUsageViolation extends androidx.fragment.app.strictmode.RetainInstanceUsageViolation {
+ }
+
+ public final class GetTargetFragmentRequestCodeUsageViolation extends androidx.fragment.app.strictmode.TargetFragmentUsageViolation {
+ }
+
+ public final class GetTargetFragmentUsageViolation extends androidx.fragment.app.strictmode.TargetFragmentUsageViolation {
+ }
+
+ public abstract class RetainInstanceUsageViolation extends androidx.fragment.app.strictmode.Violation {
+ }
+
+ public final class SetRetainInstanceUsageViolation extends androidx.fragment.app.strictmode.RetainInstanceUsageViolation {
+ }
+
+ public final class SetTargetFragmentUsageViolation extends androidx.fragment.app.strictmode.TargetFragmentUsageViolation {
+ method public int getRequestCode();
+ method public androidx.fragment.app.Fragment getTargetFragment();
+ property public final int requestCode;
+ property public final androidx.fragment.app.Fragment targetFragment;
+ }
+
+ public final class SetUserVisibleHintViolation extends androidx.fragment.app.strictmode.Violation {
+ method public boolean isVisibleToUser();
+ property public final boolean isVisibleToUser;
+ }
+
+ public abstract class TargetFragmentUsageViolation extends androidx.fragment.app.strictmode.Violation {
+ }
+
+ public abstract class Violation extends java.lang.RuntimeException {
+ method public final androidx.fragment.app.Fragment getFragment();
+ property public final androidx.fragment.app.Fragment fragment;
+ }
+
+ public final class WrongFragmentContainerViolation extends androidx.fragment.app.strictmode.Violation {
+ method public android.view.ViewGroup getContainer();
+ property public final android.view.ViewGroup container;
+ }
+
+}
+
diff --git a/fragment/fragment/api/public_plus_experimental_1.5.0-beta02.txt b/fragment/fragment/api/public_plus_experimental_1.5.0-beta02.txt
new file mode 100644
index 0000000..32377c9
--- /dev/null
+++ b/fragment/fragment/api/public_plus_experimental_1.5.0-beta02.txt
@@ -0,0 +1,543 @@
+// Signature format: 4.0
+package androidx.fragment.app {
+
+ public class DialogFragment extends androidx.fragment.app.Fragment implements android.content.DialogInterface.OnCancelListener android.content.DialogInterface.OnDismissListener {
+ ctor public DialogFragment();
+ ctor public DialogFragment(@LayoutRes int);
+ method public void dismiss();
+ method public void dismissAllowingStateLoss();
+ method @MainThread public void dismissNow();
+ method public android.app.Dialog? getDialog();
+ method public boolean getShowsDialog();
+ method @StyleRes public int getTheme();
+ method public boolean isCancelable();
+ method public void onCancel(android.content.DialogInterface);
+ method @MainThread public android.app.Dialog onCreateDialog(android.os.Bundle?);
+ method public void onDismiss(android.content.DialogInterface);
+ method public final android.app.Dialog requireDialog();
+ method public void setCancelable(boolean);
+ method public void setShowsDialog(boolean);
+ method public void setStyle(int, @StyleRes int);
+ method public void show(androidx.fragment.app.FragmentManager, String?);
+ method public int show(androidx.fragment.app.FragmentTransaction, String?);
+ method public void showNow(androidx.fragment.app.FragmentManager, String?);
+ field public static final int STYLE_NORMAL = 0; // 0x0
+ field public static final int STYLE_NO_FRAME = 2; // 0x2
+ field public static final int STYLE_NO_INPUT = 3; // 0x3
+ field public static final int STYLE_NO_TITLE = 1; // 0x1
+ }
+
+ public class Fragment implements androidx.activity.result.ActivityResultCaller android.content.ComponentCallbacks androidx.lifecycle.HasDefaultViewModelProviderFactory androidx.lifecycle.LifecycleOwner androidx.savedstate.SavedStateRegistryOwner android.view.View.OnCreateContextMenuListener androidx.lifecycle.ViewModelStoreOwner {
+ ctor public Fragment();
+ ctor @ContentView public Fragment(@LayoutRes int);
+ method public void dump(String, java.io.FileDescriptor?, java.io.PrintWriter, String![]?);
+ method public final boolean equals(Object?);
+ method public final androidx.fragment.app.FragmentActivity? getActivity();
+ method public boolean getAllowEnterTransitionOverlap();
+ method public boolean getAllowReturnTransitionOverlap();
+ method public final android.os.Bundle? getArguments();
+ method public final androidx.fragment.app.FragmentManager getChildFragmentManager();
+ method public android.content.Context? getContext();
+ method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory();
+ method public Object? getEnterTransition();
+ method public Object? getExitTransition();
+ method @Deprecated public final androidx.fragment.app.FragmentManager? getFragmentManager();
+ method public final Object? getHost();
+ method public final int getId();
+ method public final android.view.LayoutInflater getLayoutInflater();
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ method @Deprecated public androidx.loader.app.LoaderManager getLoaderManager();
+ method public final androidx.fragment.app.Fragment? getParentFragment();
+ method public final androidx.fragment.app.FragmentManager getParentFragmentManager();
+ method public Object? getReenterTransition();
+ method public final android.content.res.Resources getResources();
+ method @Deprecated public final boolean getRetainInstance();
+ method public Object? getReturnTransition();
+ method public final androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
+ method public Object? getSharedElementEnterTransition();
+ method public Object? getSharedElementReturnTransition();
+ method public final String getString(@StringRes int);
+ method public final String getString(@StringRes int, java.lang.Object!...);
+ method public final String? getTag();
+ method @Deprecated public final androidx.fragment.app.Fragment? getTargetFragment();
+ method @Deprecated public final int getTargetRequestCode();
+ method public final CharSequence getText(@StringRes int);
+ method @Deprecated public boolean getUserVisibleHint();
+ method public android.view.View? getView();
+ method @MainThread public androidx.lifecycle.LifecycleOwner getViewLifecycleOwner();
+ method public androidx.lifecycle.LiveData<androidx.lifecycle.LifecycleOwner!> getViewLifecycleOwnerLiveData();
+ method public androidx.lifecycle.ViewModelStore getViewModelStore();
+ method public final int hashCode();
+ method @Deprecated public static androidx.fragment.app.Fragment instantiate(android.content.Context, String);
+ method @Deprecated public static androidx.fragment.app.Fragment instantiate(android.content.Context, String, android.os.Bundle?);
+ method public final boolean isAdded();
+ method public final boolean isDetached();
+ method public final boolean isHidden();
+ method public final boolean isInLayout();
+ method public final boolean isRemoving();
+ method public final boolean isResumed();
+ method public final boolean isStateSaved();
+ method public final boolean isVisible();
+ method @Deprecated @CallSuper @MainThread public void onActivityCreated(android.os.Bundle?);
+ method @Deprecated public void onActivityResult(int, int, android.content.Intent?);
+ method @CallSuper @MainThread public void onAttach(android.content.Context);
+ method @Deprecated @CallSuper @MainThread public void onAttach(android.app.Activity);
+ method @Deprecated @MainThread public void onAttachFragment(androidx.fragment.app.Fragment);
+ method @CallSuper public void onConfigurationChanged(android.content.res.Configuration);
+ method @MainThread public boolean onContextItemSelected(android.view.MenuItem);
+ method @CallSuper @MainThread public void onCreate(android.os.Bundle?);
+ method @MainThread public android.view.animation.Animation? onCreateAnimation(int, boolean, int);
+ method @MainThread public android.animation.Animator? onCreateAnimator(int, boolean, int);
+ method @MainThread public void onCreateContextMenu(android.view.ContextMenu, android.view.View, android.view.ContextMenu.ContextMenuInfo?);
+ method @Deprecated @MainThread public void onCreateOptionsMenu(android.view.Menu, android.view.MenuInflater);
+ method @MainThread public android.view.View? onCreateView(android.view.LayoutInflater, android.view.ViewGroup?, android.os.Bundle?);
+ method @CallSuper @MainThread public void onDestroy();
+ method @Deprecated @MainThread public void onDestroyOptionsMenu();
+ method @CallSuper @MainThread public void onDestroyView();
+ method @CallSuper @MainThread public void onDetach();
+ method public android.view.LayoutInflater onGetLayoutInflater(android.os.Bundle?);
+ method @MainThread public void onHiddenChanged(boolean);
+ method @CallSuper @UiThread public void onInflate(android.content.Context, android.util.AttributeSet, android.os.Bundle?);
+ method @Deprecated @CallSuper @UiThread public void onInflate(android.app.Activity, android.util.AttributeSet, android.os.Bundle?);
+ method @CallSuper @MainThread public void onLowMemory();
+ method public void onMultiWindowModeChanged(boolean);
+ method @Deprecated @MainThread public boolean onOptionsItemSelected(android.view.MenuItem);
+ method @Deprecated @MainThread public void onOptionsMenuClosed(android.view.Menu);
+ method @CallSuper @MainThread public void onPause();
+ method public void onPictureInPictureModeChanged(boolean);
+ method @Deprecated @MainThread public void onPrepareOptionsMenu(android.view.Menu);
+ method @MainThread public void onPrimaryNavigationFragmentChanged(boolean);
+ method @Deprecated public void onRequestPermissionsResult(int, String![], int[]);
+ method @CallSuper @MainThread public void onResume();
+ method @MainThread public void onSaveInstanceState(android.os.Bundle);
+ method @CallSuper @MainThread public void onStart();
+ method @CallSuper @MainThread public void onStop();
+ method @MainThread public void onViewCreated(android.view.View, android.os.Bundle?);
+ method @CallSuper @MainThread public void onViewStateRestored(android.os.Bundle?);
+ method public void postponeEnterTransition();
+ method public final void postponeEnterTransition(long, java.util.concurrent.TimeUnit);
+ method @MainThread public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
+ method @MainThread public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultRegistry, androidx.activity.result.ActivityResultCallback<O!>);
+ method public void registerForContextMenu(android.view.View);
+ method @Deprecated public final void requestPermissions(String![], int);
+ method public final androidx.fragment.app.FragmentActivity requireActivity();
+ method public final android.os.Bundle requireArguments();
+ method public final android.content.Context requireContext();
+ method @Deprecated public final androidx.fragment.app.FragmentManager requireFragmentManager();
+ method public final Object requireHost();
+ method public final androidx.fragment.app.Fragment requireParentFragment();
+ method public final android.view.View requireView();
+ method public void setAllowEnterTransitionOverlap(boolean);
+ method public void setAllowReturnTransitionOverlap(boolean);
+ method public void setArguments(android.os.Bundle?);
+ method public void setEnterSharedElementCallback(androidx.core.app.SharedElementCallback?);
+ method public void setEnterTransition(Object?);
+ method public void setExitSharedElementCallback(androidx.core.app.SharedElementCallback?);
+ method public void setExitTransition(Object?);
+ method @Deprecated public void setHasOptionsMenu(boolean);
+ method public void setInitialSavedState(androidx.fragment.app.Fragment.SavedState?);
+ method public void setMenuVisibility(boolean);
+ method public void setReenterTransition(Object?);
+ method @Deprecated public void setRetainInstance(boolean);
+ method public void setReturnTransition(Object?);
+ method public void setSharedElementEnterTransition(Object?);
+ method public void setSharedElementReturnTransition(Object?);
+ method @Deprecated public void setTargetFragment(androidx.fragment.app.Fragment?, int);
+ method @Deprecated public void setUserVisibleHint(boolean);
+ method public boolean shouldShowRequestPermissionRationale(String);
+ method public void startActivity(android.content.Intent!);
+ method public void startActivity(android.content.Intent!, android.os.Bundle?);
+ method @Deprecated public void startActivityForResult(android.content.Intent!, int);
+ method @Deprecated public void startActivityForResult(android.content.Intent!, int, android.os.Bundle?);
+ method @Deprecated public void startIntentSenderForResult(android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
+ method public void startPostponedEnterTransition();
+ method public void unregisterForContextMenu(android.view.View);
+ }
+
+ public static class Fragment.InstantiationException extends java.lang.RuntimeException {
+ ctor public Fragment.InstantiationException(String, Exception?);
+ }
+
+ public static class Fragment.SavedState implements android.os.Parcelable {
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.fragment.app.Fragment.SavedState!> CREATOR;
+ }
+
+ public class FragmentActivity extends androidx.activity.ComponentActivity implements androidx.core.app.ActivityCompat.OnRequestPermissionsResultCallback androidx.lifecycle.LifecycleOwner {
+ ctor public FragmentActivity();
+ ctor @ContentView public FragmentActivity(@LayoutRes int);
+ method public androidx.fragment.app.FragmentManager getSupportFragmentManager();
+ method @Deprecated public androidx.loader.app.LoaderManager getSupportLoaderManager();
+ method @Deprecated @MainThread public void onAttachFragment(androidx.fragment.app.Fragment);
+ method protected void onResumeFragments();
+ method public void onStateNotSaved();
+ method public void setEnterSharedElementCallback(androidx.core.app.SharedElementCallback?);
+ method public void setExitSharedElementCallback(androidx.core.app.SharedElementCallback?);
+ method public void startActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int);
+ method public void startActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int, android.os.Bundle?);
+ method @Deprecated public void startIntentSenderFromFragment(androidx.fragment.app.Fragment, android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
+ method public void supportFinishAfterTransition();
+ method @Deprecated public void supportInvalidateOptionsMenu();
+ method public void supportPostponeEnterTransition();
+ method public void supportStartPostponedEnterTransition();
+ method @Deprecated public final void validateRequestPermissionsRequestCode(int);
+ }
+
+ public abstract class FragmentContainer {
+ ctor public FragmentContainer();
+ method @Deprecated public androidx.fragment.app.Fragment instantiate(android.content.Context, String, android.os.Bundle?);
+ method public abstract android.view.View? onFindViewById(@IdRes int);
+ method public abstract boolean onHasView();
+ }
+
+ public final class FragmentContainerView extends android.widget.FrameLayout {
+ ctor public FragmentContainerView(android.content.Context context);
+ ctor public FragmentContainerView(android.content.Context context, android.util.AttributeSet? attrs, optional int defStyleAttr);
+ ctor public FragmentContainerView(android.content.Context context, android.util.AttributeSet? attrs);
+ method public <F extends androidx.fragment.app.Fragment> F! getFragment();
+ }
+
+ public class FragmentController {
+ method public void attachHost(androidx.fragment.app.Fragment?);
+ method public static androidx.fragment.app.FragmentController createController(androidx.fragment.app.FragmentHostCallback<?>);
+ method public void dispatchActivityCreated();
+ method @Deprecated public void dispatchConfigurationChanged(android.content.res.Configuration);
+ method public boolean dispatchContextItemSelected(android.view.MenuItem);
+ method public void dispatchCreate();
+ method @Deprecated public boolean dispatchCreateOptionsMenu(android.view.Menu, android.view.MenuInflater);
+ method public void dispatchDestroy();
+ method public void dispatchDestroyView();
+ method @Deprecated public void dispatchLowMemory();
+ method @Deprecated public void dispatchMultiWindowModeChanged(boolean);
+ method @Deprecated public boolean dispatchOptionsItemSelected(android.view.MenuItem);
+ method @Deprecated public void dispatchOptionsMenuClosed(android.view.Menu);
+ method public void dispatchPause();
+ method @Deprecated public void dispatchPictureInPictureModeChanged(boolean);
+ method @Deprecated public boolean dispatchPrepareOptionsMenu(android.view.Menu);
+ method @Deprecated public void dispatchReallyStop();
+ method public void dispatchResume();
+ method public void dispatchStart();
+ method public void dispatchStop();
+ method @Deprecated public void doLoaderDestroy();
+ method @Deprecated public void doLoaderRetain();
+ method @Deprecated public void doLoaderStart();
+ method @Deprecated public void doLoaderStop(boolean);
+ method @Deprecated public void dumpLoaders(String, java.io.FileDescriptor?, java.io.PrintWriter, String![]?);
+ method public boolean execPendingActions();
+ method public androidx.fragment.app.Fragment? findFragmentByWho(String);
+ method public java.util.List<androidx.fragment.app.Fragment!> getActiveFragments(java.util.List<androidx.fragment.app.Fragment!>!);
+ method public int getActiveFragmentsCount();
+ method public androidx.fragment.app.FragmentManager getSupportFragmentManager();
+ method @Deprecated public androidx.loader.app.LoaderManager! getSupportLoaderManager();
+ method public void noteStateNotSaved();
+ method public android.view.View? onCreateView(android.view.View?, String, android.content.Context, android.util.AttributeSet);
+ method @Deprecated public void reportLoaderStart();
+ method @Deprecated public void restoreAllState(android.os.Parcelable?, java.util.List<androidx.fragment.app.Fragment!>?);
+ method @Deprecated public void restoreAllState(android.os.Parcelable?, androidx.fragment.app.FragmentManagerNonConfig?);
+ method @Deprecated public void restoreLoaderNonConfig(androidx.collection.SimpleArrayMap<java.lang.String!,androidx.loader.app.LoaderManager!>!);
+ method @Deprecated public void restoreSaveState(android.os.Parcelable?);
+ method @Deprecated public androidx.collection.SimpleArrayMap<java.lang.String!,androidx.loader.app.LoaderManager!>? retainLoaderNonConfig();
+ method @Deprecated public androidx.fragment.app.FragmentManagerNonConfig? retainNestedNonConfig();
+ method @Deprecated public java.util.List<androidx.fragment.app.Fragment!>? retainNonConfig();
+ method @Deprecated public android.os.Parcelable? saveAllState();
+ }
+
+ public class FragmentFactory {
+ ctor public FragmentFactory();
+ method public androidx.fragment.app.Fragment instantiate(ClassLoader, String);
+ method public static Class<? extends androidx.fragment.app.Fragment> loadFragmentClass(ClassLoader, String);
+ }
+
+ public abstract class FragmentHostCallback<E> extends androidx.fragment.app.FragmentContainer {
+ ctor public FragmentHostCallback(android.content.Context, android.os.Handler, int);
+ method public void onDump(String, java.io.FileDescriptor?, java.io.PrintWriter, String![]?);
+ method public android.view.View? onFindViewById(int);
+ method public abstract E? onGetHost();
+ method public android.view.LayoutInflater onGetLayoutInflater();
+ method public int onGetWindowAnimations();
+ method public boolean onHasView();
+ method public boolean onHasWindowAnimations();
+ method @Deprecated public void onRequestPermissionsFromFragment(androidx.fragment.app.Fragment, String![], int);
+ method public boolean onShouldSaveFragmentState(androidx.fragment.app.Fragment);
+ method public boolean onShouldShowRequestPermissionRationale(String);
+ method public void onStartActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int);
+ method public void onStartActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int, android.os.Bundle?);
+ method @Deprecated public void onStartIntentSenderFromFragment(androidx.fragment.app.Fragment, android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
+ method public void onSupportInvalidateOptionsMenu();
+ }
+
+ public abstract class FragmentManager implements androidx.fragment.app.FragmentResultOwner {
+ ctor public FragmentManager();
+ method public void addFragmentOnAttachListener(androidx.fragment.app.FragmentOnAttachListener);
+ method public void addOnBackStackChangedListener(androidx.fragment.app.FragmentManager.OnBackStackChangedListener);
+ method public androidx.fragment.app.FragmentTransaction beginTransaction();
+ method public void clearBackStack(String);
+ method public final void clearFragmentResult(String);
+ method public final void clearFragmentResultListener(String);
+ method public void dump(String, java.io.FileDescriptor?, java.io.PrintWriter, String![]?);
+ method @Deprecated public static void enableDebugLogging(boolean);
+ method public boolean executePendingTransactions();
+ method public static <F extends androidx.fragment.app.Fragment> F findFragment(android.view.View);
+ method public androidx.fragment.app.Fragment? findFragmentById(@IdRes int);
+ method public androidx.fragment.app.Fragment? findFragmentByTag(String?);
+ method public androidx.fragment.app.FragmentManager.BackStackEntry getBackStackEntryAt(int);
+ method public int getBackStackEntryCount();
+ method public androidx.fragment.app.Fragment? getFragment(android.os.Bundle, String);
+ method public androidx.fragment.app.FragmentFactory getFragmentFactory();
+ method public java.util.List<androidx.fragment.app.Fragment!> getFragments();
+ method public androidx.fragment.app.Fragment? getPrimaryNavigationFragment();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy? getStrictModePolicy();
+ method public boolean isDestroyed();
+ method public boolean isStateSaved();
+ method public void popBackStack();
+ method public void popBackStack(String?, int);
+ method public void popBackStack(int, int);
+ method public boolean popBackStackImmediate();
+ method public boolean popBackStackImmediate(String?, int);
+ method public boolean popBackStackImmediate(int, int);
+ method public void putFragment(android.os.Bundle, String, androidx.fragment.app.Fragment);
+ method public void registerFragmentLifecycleCallbacks(androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks, boolean);
+ method public void removeFragmentOnAttachListener(androidx.fragment.app.FragmentOnAttachListener);
+ method public void removeOnBackStackChangedListener(androidx.fragment.app.FragmentManager.OnBackStackChangedListener);
+ method public void restoreBackStack(String);
+ method public void saveBackStack(String);
+ method public androidx.fragment.app.Fragment.SavedState? saveFragmentInstanceState(androidx.fragment.app.Fragment);
+ method public void setFragmentFactory(androidx.fragment.app.FragmentFactory);
+ method public final void setFragmentResult(String, android.os.Bundle);
+ method public final void setFragmentResultListener(String, androidx.lifecycle.LifecycleOwner, androidx.fragment.app.FragmentResultListener);
+ method public void setStrictModePolicy(androidx.fragment.app.strictmode.FragmentStrictMode.Policy?);
+ method public void unregisterFragmentLifecycleCallbacks(androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks);
+ field public static final int POP_BACK_STACK_INCLUSIVE = 1; // 0x1
+ }
+
+ public static interface FragmentManager.BackStackEntry {
+ method @Deprecated public CharSequence? getBreadCrumbShortTitle();
+ method @Deprecated @StringRes public int getBreadCrumbShortTitleRes();
+ method @Deprecated public CharSequence? getBreadCrumbTitle();
+ method @Deprecated @StringRes public int getBreadCrumbTitleRes();
+ method public int getId();
+ method public String? getName();
+ }
+
+ public abstract static class FragmentManager.FragmentLifecycleCallbacks {
+ ctor public FragmentManager.FragmentLifecycleCallbacks();
+ method @Deprecated public void onFragmentActivityCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle?);
+ method public void onFragmentAttached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.content.Context);
+ method public void onFragmentCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle?);
+ method public void onFragmentDestroyed(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentDetached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentPaused(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentPreAttached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.content.Context);
+ method public void onFragmentPreCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle?);
+ method public void onFragmentResumed(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentSaveInstanceState(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle);
+ method public void onFragmentStarted(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentStopped(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentViewCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.view.View, android.os.Bundle?);
+ method public void onFragmentViewDestroyed(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ }
+
+ public static interface FragmentManager.OnBackStackChangedListener {
+ method @MainThread public void onBackStackChanged();
+ }
+
+ @Deprecated public class FragmentManagerNonConfig {
+ }
+
+ public interface FragmentOnAttachListener {
+ method @MainThread public void onAttachFragment(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ }
+
+ @Deprecated public abstract class FragmentPagerAdapter extends androidx.viewpager.widget.PagerAdapter {
+ ctor @Deprecated public FragmentPagerAdapter(androidx.fragment.app.FragmentManager);
+ ctor @Deprecated public FragmentPagerAdapter(androidx.fragment.app.FragmentManager, int);
+ method @Deprecated public abstract androidx.fragment.app.Fragment getItem(int);
+ method @Deprecated public long getItemId(int);
+ method @Deprecated public boolean isViewFromObject(android.view.View, Object);
+ field @Deprecated public static final int BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT = 1; // 0x1
+ field @Deprecated public static final int BEHAVIOR_SET_USER_VISIBLE_HINT = 0; // 0x0
+ }
+
+ public interface FragmentResultListener {
+ method public void onFragmentResult(String, android.os.Bundle);
+ }
+
+ public interface FragmentResultOwner {
+ method public void clearFragmentResult(String);
+ method public void clearFragmentResultListener(String);
+ method public void setFragmentResult(String, android.os.Bundle);
+ method public void setFragmentResultListener(String, androidx.lifecycle.LifecycleOwner, androidx.fragment.app.FragmentResultListener);
+ }
+
+ @Deprecated public abstract class FragmentStatePagerAdapter extends androidx.viewpager.widget.PagerAdapter {
+ ctor @Deprecated public FragmentStatePagerAdapter(androidx.fragment.app.FragmentManager);
+ ctor @Deprecated public FragmentStatePagerAdapter(androidx.fragment.app.FragmentManager, int);
+ method @Deprecated public abstract androidx.fragment.app.Fragment getItem(int);
+ method @Deprecated public boolean isViewFromObject(android.view.View, Object);
+ field @Deprecated public static final int BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT = 1; // 0x1
+ field @Deprecated public static final int BEHAVIOR_SET_USER_VISIBLE_HINT = 0; // 0x0
+ }
+
+ @Deprecated public class FragmentTabHost extends android.widget.TabHost implements android.widget.TabHost.OnTabChangeListener {
+ ctor @Deprecated public FragmentTabHost(android.content.Context);
+ ctor @Deprecated public FragmentTabHost(android.content.Context, android.util.AttributeSet?);
+ method @Deprecated public void addTab(android.widget.TabHost.TabSpec, Class<?>, android.os.Bundle?);
+ method @Deprecated public void onTabChanged(String?);
+ method @Deprecated public void setup(android.content.Context, androidx.fragment.app.FragmentManager);
+ method @Deprecated public void setup(android.content.Context, androidx.fragment.app.FragmentManager, int);
+ }
+
+ public abstract class FragmentTransaction {
+ ctor @Deprecated public FragmentTransaction();
+ method public final androidx.fragment.app.FragmentTransaction add(Class<? extends androidx.fragment.app.Fragment>, android.os.Bundle?, String?);
+ method public androidx.fragment.app.FragmentTransaction add(androidx.fragment.app.Fragment, String?);
+ method public final androidx.fragment.app.FragmentTransaction add(@IdRes int, Class<? extends androidx.fragment.app.Fragment>, android.os.Bundle?);
+ method public androidx.fragment.app.FragmentTransaction add(@IdRes int, androidx.fragment.app.Fragment);
+ method public final androidx.fragment.app.FragmentTransaction add(@IdRes int, Class<? extends androidx.fragment.app.Fragment>, android.os.Bundle?, String?);
+ method public androidx.fragment.app.FragmentTransaction add(@IdRes int, androidx.fragment.app.Fragment, String?);
+ method public androidx.fragment.app.FragmentTransaction addSharedElement(android.view.View, String);
+ method public androidx.fragment.app.FragmentTransaction addToBackStack(String?);
+ method public androidx.fragment.app.FragmentTransaction attach(androidx.fragment.app.Fragment);
+ method public abstract int commit();
+ method public abstract int commitAllowingStateLoss();
+ method public abstract void commitNow();
+ method public abstract void commitNowAllowingStateLoss();
+ method public androidx.fragment.app.FragmentTransaction detach(androidx.fragment.app.Fragment);
+ method public androidx.fragment.app.FragmentTransaction disallowAddToBackStack();
+ method public androidx.fragment.app.FragmentTransaction hide(androidx.fragment.app.Fragment);
+ method public boolean isAddToBackStackAllowed();
+ method public boolean isEmpty();
+ method public androidx.fragment.app.FragmentTransaction remove(androidx.fragment.app.Fragment);
+ method public final androidx.fragment.app.FragmentTransaction replace(@IdRes int, Class<? extends androidx.fragment.app.Fragment>, android.os.Bundle?);
+ method public androidx.fragment.app.FragmentTransaction replace(@IdRes int, androidx.fragment.app.Fragment);
+ method public final androidx.fragment.app.FragmentTransaction replace(@IdRes int, Class<? extends androidx.fragment.app.Fragment>, android.os.Bundle?, String?);
+ method public androidx.fragment.app.FragmentTransaction replace(@IdRes int, androidx.fragment.app.Fragment, String?);
+ method public androidx.fragment.app.FragmentTransaction runOnCommit(Runnable);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setAllowOptimization(boolean);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setBreadCrumbShortTitle(@StringRes int);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setBreadCrumbShortTitle(CharSequence?);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setBreadCrumbTitle(@StringRes int);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setBreadCrumbTitle(CharSequence?);
+ method public androidx.fragment.app.FragmentTransaction setCustomAnimations(@AnimRes @AnimatorRes int, @AnimRes @AnimatorRes int);
+ method public androidx.fragment.app.FragmentTransaction setCustomAnimations(@AnimRes @AnimatorRes int, @AnimRes @AnimatorRes int, @AnimRes @AnimatorRes int, @AnimRes @AnimatorRes int);
+ method public androidx.fragment.app.FragmentTransaction setMaxLifecycle(androidx.fragment.app.Fragment, androidx.lifecycle.Lifecycle.State);
+ method public androidx.fragment.app.FragmentTransaction setPrimaryNavigationFragment(androidx.fragment.app.Fragment?);
+ method public androidx.fragment.app.FragmentTransaction setReorderingAllowed(boolean);
+ method public androidx.fragment.app.FragmentTransaction setTransition(int);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setTransitionStyle(@StyleRes int);
+ method public androidx.fragment.app.FragmentTransaction show(androidx.fragment.app.Fragment);
+ field public static final int TRANSIT_ENTER_MASK = 4096; // 0x1000
+ field public static final int TRANSIT_EXIT_MASK = 8192; // 0x2000
+ field public static final int TRANSIT_FRAGMENT_CLOSE = 8194; // 0x2002
+ field public static final int TRANSIT_FRAGMENT_FADE = 4099; // 0x1003
+ field public static final int TRANSIT_FRAGMENT_MATCH_ACTIVITY_CLOSE = 8197; // 0x2005
+ field public static final int TRANSIT_FRAGMENT_MATCH_ACTIVITY_OPEN = 4100; // 0x1004
+ field public static final int TRANSIT_FRAGMENT_OPEN = 4097; // 0x1001
+ field public static final int TRANSIT_NONE = 0; // 0x0
+ field public static final int TRANSIT_UNSET = -1; // 0xffffffff
+ }
+
+ public class ListFragment extends androidx.fragment.app.Fragment {
+ ctor public ListFragment();
+ method public android.widget.ListAdapter? getListAdapter();
+ method public android.widget.ListView getListView();
+ method public long getSelectedItemId();
+ method public int getSelectedItemPosition();
+ method public void onListItemClick(android.widget.ListView, android.view.View, int, long);
+ method public final android.widget.ListAdapter requireListAdapter();
+ method public void setEmptyText(CharSequence?);
+ method public void setListAdapter(android.widget.ListAdapter?);
+ method public void setListShown(boolean);
+ method public void setListShownNoAnimation(boolean);
+ method public void setSelection(int);
+ }
+
+}
+
+package androidx.fragment.app.strictmode {
+
+ public final class FragmentReuseViolation extends androidx.fragment.app.strictmode.Violation {
+ method public String getPreviousFragmentId();
+ property public final String previousFragmentId;
+ }
+
+ public final class FragmentStrictMode {
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy getDefaultPolicy();
+ method @VisibleForTesting public void onPolicyViolation(androidx.fragment.app.strictmode.Violation violation);
+ method public void setDefaultPolicy(androidx.fragment.app.strictmode.FragmentStrictMode.Policy);
+ property public final androidx.fragment.app.strictmode.FragmentStrictMode.Policy defaultPolicy;
+ field public static final androidx.fragment.app.strictmode.FragmentStrictMode INSTANCE;
+ }
+
+ public static fun interface FragmentStrictMode.OnViolationListener {
+ method public void onViolation(androidx.fragment.app.strictmode.Violation violation);
+ }
+
+ public static final class FragmentStrictMode.Policy {
+ field public static final androidx.fragment.app.strictmode.FragmentStrictMode.Policy LAX;
+ }
+
+ public static final class FragmentStrictMode.Policy.Builder {
+ ctor public FragmentStrictMode.Policy.Builder();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder allowViolation(Class<? extends androidx.fragment.app.Fragment> fragmentClass, Class<? extends androidx.fragment.app.strictmode.Violation> violationClass);
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder allowViolation(String fragmentClass, Class<? extends androidx.fragment.app.strictmode.Violation> violationClass);
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy build();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectFragmentReuse();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectFragmentTagUsage();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectRetainInstanceUsage();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectSetUserVisibleHint();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectTargetFragmentUsage();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectWrongFragmentContainer();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder penaltyDeath();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder penaltyListener(androidx.fragment.app.strictmode.FragmentStrictMode.OnViolationListener listener);
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder penaltyLog();
+ }
+
+ public final class FragmentTagUsageViolation extends androidx.fragment.app.strictmode.Violation {
+ method public android.view.ViewGroup? getParentContainer();
+ property public final android.view.ViewGroup? parentContainer;
+ }
+
+ public final class GetRetainInstanceUsageViolation extends androidx.fragment.app.strictmode.RetainInstanceUsageViolation {
+ }
+
+ public final class GetTargetFragmentRequestCodeUsageViolation extends androidx.fragment.app.strictmode.TargetFragmentUsageViolation {
+ }
+
+ public final class GetTargetFragmentUsageViolation extends androidx.fragment.app.strictmode.TargetFragmentUsageViolation {
+ }
+
+ public abstract class RetainInstanceUsageViolation extends androidx.fragment.app.strictmode.Violation {
+ }
+
+ public final class SetRetainInstanceUsageViolation extends androidx.fragment.app.strictmode.RetainInstanceUsageViolation {
+ }
+
+ public final class SetTargetFragmentUsageViolation extends androidx.fragment.app.strictmode.TargetFragmentUsageViolation {
+ method public int getRequestCode();
+ method public androidx.fragment.app.Fragment getTargetFragment();
+ property public final int requestCode;
+ property public final androidx.fragment.app.Fragment targetFragment;
+ }
+
+ public final class SetUserVisibleHintViolation extends androidx.fragment.app.strictmode.Violation {
+ method public boolean isVisibleToUser();
+ property public final boolean isVisibleToUser;
+ }
+
+ public abstract class TargetFragmentUsageViolation extends androidx.fragment.app.strictmode.Violation {
+ }
+
+ public abstract class Violation extends java.lang.RuntimeException {
+ method public final androidx.fragment.app.Fragment getFragment();
+ property public final androidx.fragment.app.Fragment fragment;
+ }
+
+ public final class WrongFragmentContainerViolation extends androidx.fragment.app.strictmode.Violation {
+ method public android.view.ViewGroup getContainer();
+ property public final android.view.ViewGroup container;
+ }
+
+}
+
diff --git a/fragment/fragment/api/res-1.5.0-beta02.txt b/fragment/fragment/api/res-1.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/fragment/fragment/api/res-1.5.0-beta02.txt
diff --git a/fragment/fragment/api/restricted_1.5.0-beta02.txt b/fragment/fragment/api/restricted_1.5.0-beta02.txt
new file mode 100644
index 0000000..7f0aa7c
--- /dev/null
+++ b/fragment/fragment/api/restricted_1.5.0-beta02.txt
@@ -0,0 +1,572 @@
+// Signature format: 4.0
+package androidx.fragment.app {
+
+ public class DialogFragment extends androidx.fragment.app.Fragment implements android.content.DialogInterface.OnCancelListener android.content.DialogInterface.OnDismissListener {
+ ctor public DialogFragment();
+ ctor public DialogFragment(@LayoutRes int);
+ method public void dismiss();
+ method public void dismissAllowingStateLoss();
+ method @MainThread public void dismissNow();
+ method public android.app.Dialog? getDialog();
+ method public boolean getShowsDialog();
+ method @StyleRes public int getTheme();
+ method public boolean isCancelable();
+ method public void onCancel(android.content.DialogInterface);
+ method @MainThread public android.app.Dialog onCreateDialog(android.os.Bundle?);
+ method public void onDismiss(android.content.DialogInterface);
+ method public final android.app.Dialog requireDialog();
+ method public void setCancelable(boolean);
+ method public void setShowsDialog(boolean);
+ method public void setStyle(int, @StyleRes int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setupDialog(android.app.Dialog, int);
+ method public void show(androidx.fragment.app.FragmentManager, String?);
+ method public int show(androidx.fragment.app.FragmentTransaction, String?);
+ method public void showNow(androidx.fragment.app.FragmentManager, String?);
+ field public static final int STYLE_NORMAL = 0; // 0x0
+ field public static final int STYLE_NO_FRAME = 2; // 0x2
+ field public static final int STYLE_NO_INPUT = 3; // 0x3
+ field public static final int STYLE_NO_TITLE = 1; // 0x1
+ }
+
+ public class Fragment implements androidx.activity.result.ActivityResultCaller android.content.ComponentCallbacks androidx.lifecycle.HasDefaultViewModelProviderFactory androidx.lifecycle.LifecycleOwner androidx.savedstate.SavedStateRegistryOwner android.view.View.OnCreateContextMenuListener androidx.lifecycle.ViewModelStoreOwner {
+ ctor public Fragment();
+ ctor @ContentView public Fragment(@LayoutRes int);
+ method public void dump(String, java.io.FileDescriptor?, java.io.PrintWriter, String![]?);
+ method public final boolean equals(Object?);
+ method public final androidx.fragment.app.FragmentActivity? getActivity();
+ method public boolean getAllowEnterTransitionOverlap();
+ method public boolean getAllowReturnTransitionOverlap();
+ method public final android.os.Bundle? getArguments();
+ method public final androidx.fragment.app.FragmentManager getChildFragmentManager();
+ method public android.content.Context? getContext();
+ method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory();
+ method public Object? getEnterTransition();
+ method public Object? getExitTransition();
+ method @Deprecated public final androidx.fragment.app.FragmentManager? getFragmentManager();
+ method public final Object? getHost();
+ method public final int getId();
+ method public final android.view.LayoutInflater getLayoutInflater();
+ method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.view.LayoutInflater getLayoutInflater(android.os.Bundle?);
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ method @Deprecated public androidx.loader.app.LoaderManager getLoaderManager();
+ method public final androidx.fragment.app.Fragment? getParentFragment();
+ method public final androidx.fragment.app.FragmentManager getParentFragmentManager();
+ method public Object? getReenterTransition();
+ method public final android.content.res.Resources getResources();
+ method @Deprecated public final boolean getRetainInstance();
+ method public Object? getReturnTransition();
+ method public final androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
+ method public Object? getSharedElementEnterTransition();
+ method public Object? getSharedElementReturnTransition();
+ method public final String getString(@StringRes int);
+ method public final String getString(@StringRes int, java.lang.Object!...);
+ method public final String? getTag();
+ method @Deprecated public final androidx.fragment.app.Fragment? getTargetFragment();
+ method @Deprecated public final int getTargetRequestCode();
+ method public final CharSequence getText(@StringRes int);
+ method @Deprecated public boolean getUserVisibleHint();
+ method public android.view.View? getView();
+ method @MainThread public androidx.lifecycle.LifecycleOwner getViewLifecycleOwner();
+ method public androidx.lifecycle.LiveData<androidx.lifecycle.LifecycleOwner!> getViewLifecycleOwnerLiveData();
+ method public androidx.lifecycle.ViewModelStore getViewModelStore();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final boolean hasOptionsMenu();
+ method public final int hashCode();
+ method @Deprecated public static androidx.fragment.app.Fragment instantiate(android.content.Context, String);
+ method @Deprecated public static androidx.fragment.app.Fragment instantiate(android.content.Context, String, android.os.Bundle?);
+ method public final boolean isAdded();
+ method public final boolean isDetached();
+ method public final boolean isHidden();
+ method public final boolean isInLayout();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final boolean isMenuVisible();
+ method public final boolean isRemoving();
+ method public final boolean isResumed();
+ method public final boolean isStateSaved();
+ method public final boolean isVisible();
+ method @Deprecated @CallSuper @MainThread public void onActivityCreated(android.os.Bundle?);
+ method @Deprecated public void onActivityResult(int, int, android.content.Intent?);
+ method @CallSuper @MainThread public void onAttach(android.content.Context);
+ method @Deprecated @CallSuper @MainThread public void onAttach(android.app.Activity);
+ method @Deprecated @MainThread public void onAttachFragment(androidx.fragment.app.Fragment);
+ method @CallSuper public void onConfigurationChanged(android.content.res.Configuration);
+ method @MainThread public boolean onContextItemSelected(android.view.MenuItem);
+ method @CallSuper @MainThread public void onCreate(android.os.Bundle?);
+ method @MainThread public android.view.animation.Animation? onCreateAnimation(int, boolean, int);
+ method @MainThread public android.animation.Animator? onCreateAnimator(int, boolean, int);
+ method @MainThread public void onCreateContextMenu(android.view.ContextMenu, android.view.View, android.view.ContextMenu.ContextMenuInfo?);
+ method @Deprecated @MainThread public void onCreateOptionsMenu(android.view.Menu, android.view.MenuInflater);
+ method @MainThread public android.view.View? onCreateView(android.view.LayoutInflater, android.view.ViewGroup?, android.os.Bundle?);
+ method @CallSuper @MainThread public void onDestroy();
+ method @Deprecated @MainThread public void onDestroyOptionsMenu();
+ method @CallSuper @MainThread public void onDestroyView();
+ method @CallSuper @MainThread public void onDetach();
+ method public android.view.LayoutInflater onGetLayoutInflater(android.os.Bundle?);
+ method @MainThread public void onHiddenChanged(boolean);
+ method @CallSuper @UiThread public void onInflate(android.content.Context, android.util.AttributeSet, android.os.Bundle?);
+ method @Deprecated @CallSuper @UiThread public void onInflate(android.app.Activity, android.util.AttributeSet, android.os.Bundle?);
+ method @CallSuper @MainThread public void onLowMemory();
+ method public void onMultiWindowModeChanged(boolean);
+ method @Deprecated @MainThread public boolean onOptionsItemSelected(android.view.MenuItem);
+ method @Deprecated @MainThread public void onOptionsMenuClosed(android.view.Menu);
+ method @CallSuper @MainThread public void onPause();
+ method public void onPictureInPictureModeChanged(boolean);
+ method @Deprecated @MainThread public void onPrepareOptionsMenu(android.view.Menu);
+ method @MainThread public void onPrimaryNavigationFragmentChanged(boolean);
+ method @Deprecated public void onRequestPermissionsResult(int, String![], int[]);
+ method @CallSuper @MainThread public void onResume();
+ method @MainThread public void onSaveInstanceState(android.os.Bundle);
+ method @CallSuper @MainThread public void onStart();
+ method @CallSuper @MainThread public void onStop();
+ method @MainThread public void onViewCreated(android.view.View, android.os.Bundle?);
+ method @CallSuper @MainThread public void onViewStateRestored(android.os.Bundle?);
+ method public void postponeEnterTransition();
+ method public final void postponeEnterTransition(long, java.util.concurrent.TimeUnit);
+ method @MainThread public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultCallback<O!>);
+ method @MainThread public final <I, O> androidx.activity.result.ActivityResultLauncher<I!> registerForActivityResult(androidx.activity.result.contract.ActivityResultContract<I!,O!>, androidx.activity.result.ActivityResultRegistry, androidx.activity.result.ActivityResultCallback<O!>);
+ method public void registerForContextMenu(android.view.View);
+ method @Deprecated public final void requestPermissions(String![], int);
+ method public final androidx.fragment.app.FragmentActivity requireActivity();
+ method public final android.os.Bundle requireArguments();
+ method public final android.content.Context requireContext();
+ method @Deprecated public final androidx.fragment.app.FragmentManager requireFragmentManager();
+ method public final Object requireHost();
+ method public final androidx.fragment.app.Fragment requireParentFragment();
+ method public final android.view.View requireView();
+ method public void setAllowEnterTransitionOverlap(boolean);
+ method public void setAllowReturnTransitionOverlap(boolean);
+ method public void setArguments(android.os.Bundle?);
+ method public void setEnterSharedElementCallback(androidx.core.app.SharedElementCallback?);
+ method public void setEnterTransition(Object?);
+ method public void setExitSharedElementCallback(androidx.core.app.SharedElementCallback?);
+ method public void setExitTransition(Object?);
+ method @Deprecated public void setHasOptionsMenu(boolean);
+ method public void setInitialSavedState(androidx.fragment.app.Fragment.SavedState?);
+ method public void setMenuVisibility(boolean);
+ method public void setReenterTransition(Object?);
+ method @Deprecated public void setRetainInstance(boolean);
+ method public void setReturnTransition(Object?);
+ method public void setSharedElementEnterTransition(Object?);
+ method public void setSharedElementReturnTransition(Object?);
+ method @Deprecated public void setTargetFragment(androidx.fragment.app.Fragment?, int);
+ method @Deprecated public void setUserVisibleHint(boolean);
+ method public boolean shouldShowRequestPermissionRationale(String);
+ method public void startActivity(android.content.Intent!);
+ method public void startActivity(android.content.Intent!, android.os.Bundle?);
+ method @Deprecated public void startActivityForResult(android.content.Intent!, int);
+ method @Deprecated public void startActivityForResult(android.content.Intent!, int, android.os.Bundle?);
+ method @Deprecated public void startIntentSenderForResult(android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
+ method public void startPostponedEnterTransition();
+ method public void unregisterForContextMenu(android.view.View);
+ }
+
+ public static class Fragment.InstantiationException extends java.lang.RuntimeException {
+ ctor public Fragment.InstantiationException(String, Exception?);
+ }
+
+ public static class Fragment.SavedState implements android.os.Parcelable {
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.fragment.app.Fragment.SavedState!> CREATOR;
+ }
+
+ public class FragmentActivity extends androidx.activity.ComponentActivity implements androidx.core.app.ActivityCompat.OnRequestPermissionsResultCallback androidx.core.app.ActivityCompat.RequestPermissionsRequestCodeValidator {
+ ctor public FragmentActivity();
+ ctor @ContentView public FragmentActivity(@LayoutRes int);
+ method public androidx.fragment.app.FragmentManager getSupportFragmentManager();
+ method @Deprecated public androidx.loader.app.LoaderManager getSupportLoaderManager();
+ method @Deprecated @MainThread public void onAttachFragment(androidx.fragment.app.Fragment);
+ method protected void onResumeFragments();
+ method public void onStateNotSaved();
+ method public void setEnterSharedElementCallback(androidx.core.app.SharedElementCallback?);
+ method public void setExitSharedElementCallback(androidx.core.app.SharedElementCallback?);
+ method public void startActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int);
+ method public void startActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int, android.os.Bundle?);
+ method @Deprecated public void startIntentSenderFromFragment(androidx.fragment.app.Fragment, android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
+ method public void supportFinishAfterTransition();
+ method @Deprecated public void supportInvalidateOptionsMenu();
+ method public void supportPostponeEnterTransition();
+ method public void supportStartPostponedEnterTransition();
+ method @Deprecated public final void validateRequestPermissionsRequestCode(int);
+ }
+
+ public abstract class FragmentContainer {
+ ctor public FragmentContainer();
+ method @Deprecated public androidx.fragment.app.Fragment instantiate(android.content.Context, String, android.os.Bundle?);
+ method public abstract android.view.View? onFindViewById(@IdRes int);
+ method public abstract boolean onHasView();
+ }
+
+ public final class FragmentContainerView extends android.widget.FrameLayout {
+ ctor public FragmentContainerView(android.content.Context context);
+ ctor public FragmentContainerView(android.content.Context context, android.util.AttributeSet? attrs, optional int defStyleAttr);
+ ctor public FragmentContainerView(android.content.Context context, android.util.AttributeSet? attrs);
+ method public <F extends androidx.fragment.app.Fragment> F! getFragment();
+ }
+
+ public class FragmentController {
+ method public void attachHost(androidx.fragment.app.Fragment?);
+ method public static androidx.fragment.app.FragmentController createController(androidx.fragment.app.FragmentHostCallback<?>);
+ method public void dispatchActivityCreated();
+ method @Deprecated public void dispatchConfigurationChanged(android.content.res.Configuration);
+ method public boolean dispatchContextItemSelected(android.view.MenuItem);
+ method public void dispatchCreate();
+ method @Deprecated public boolean dispatchCreateOptionsMenu(android.view.Menu, android.view.MenuInflater);
+ method public void dispatchDestroy();
+ method public void dispatchDestroyView();
+ method @Deprecated public void dispatchLowMemory();
+ method @Deprecated public void dispatchMultiWindowModeChanged(boolean);
+ method @Deprecated public boolean dispatchOptionsItemSelected(android.view.MenuItem);
+ method @Deprecated public void dispatchOptionsMenuClosed(android.view.Menu);
+ method public void dispatchPause();
+ method @Deprecated public void dispatchPictureInPictureModeChanged(boolean);
+ method @Deprecated public boolean dispatchPrepareOptionsMenu(android.view.Menu);
+ method @Deprecated public void dispatchReallyStop();
+ method public void dispatchResume();
+ method public void dispatchStart();
+ method public void dispatchStop();
+ method @Deprecated public void doLoaderDestroy();
+ method @Deprecated public void doLoaderRetain();
+ method @Deprecated public void doLoaderStart();
+ method @Deprecated public void doLoaderStop(boolean);
+ method @Deprecated public void dumpLoaders(String, java.io.FileDescriptor?, java.io.PrintWriter, String![]?);
+ method public boolean execPendingActions();
+ method public androidx.fragment.app.Fragment? findFragmentByWho(String);
+ method public java.util.List<androidx.fragment.app.Fragment!> getActiveFragments(java.util.List<androidx.fragment.app.Fragment!>!);
+ method public int getActiveFragmentsCount();
+ method public androidx.fragment.app.FragmentManager getSupportFragmentManager();
+ method @Deprecated public androidx.loader.app.LoaderManager! getSupportLoaderManager();
+ method public void noteStateNotSaved();
+ method public android.view.View? onCreateView(android.view.View?, String, android.content.Context, android.util.AttributeSet);
+ method @Deprecated public void reportLoaderStart();
+ method @Deprecated public void restoreAllState(android.os.Parcelable?, java.util.List<androidx.fragment.app.Fragment!>?);
+ method @Deprecated public void restoreAllState(android.os.Parcelable?, androidx.fragment.app.FragmentManagerNonConfig?);
+ method @Deprecated public void restoreLoaderNonConfig(androidx.collection.SimpleArrayMap<java.lang.String!,androidx.loader.app.LoaderManager!>!);
+ method @Deprecated public void restoreSaveState(android.os.Parcelable?);
+ method @Deprecated public androidx.collection.SimpleArrayMap<java.lang.String!,androidx.loader.app.LoaderManager!>? retainLoaderNonConfig();
+ method @Deprecated public androidx.fragment.app.FragmentManagerNonConfig? retainNestedNonConfig();
+ method @Deprecated public java.util.List<androidx.fragment.app.Fragment!>? retainNonConfig();
+ method @Deprecated public android.os.Parcelable? saveAllState();
+ }
+
+ public class FragmentFactory {
+ ctor public FragmentFactory();
+ method public androidx.fragment.app.Fragment instantiate(ClassLoader, String);
+ method public static Class<? extends androidx.fragment.app.Fragment> loadFragmentClass(ClassLoader, String);
+ }
+
+ public abstract class FragmentHostCallback<E> extends androidx.fragment.app.FragmentContainer {
+ ctor public FragmentHostCallback(android.content.Context, android.os.Handler, int);
+ method public void onDump(String, java.io.FileDescriptor?, java.io.PrintWriter, String![]?);
+ method public android.view.View? onFindViewById(int);
+ method public abstract E? onGetHost();
+ method public android.view.LayoutInflater onGetLayoutInflater();
+ method public int onGetWindowAnimations();
+ method public boolean onHasView();
+ method public boolean onHasWindowAnimations();
+ method @Deprecated public void onRequestPermissionsFromFragment(androidx.fragment.app.Fragment, String![], int);
+ method public boolean onShouldSaveFragmentState(androidx.fragment.app.Fragment);
+ method public boolean onShouldShowRequestPermissionRationale(String);
+ method public void onStartActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int);
+ method public void onStartActivityFromFragment(androidx.fragment.app.Fragment, android.content.Intent!, int, android.os.Bundle?);
+ method @Deprecated public void onStartIntentSenderFromFragment(androidx.fragment.app.Fragment, android.content.IntentSender!, int, android.content.Intent?, int, int, int, android.os.Bundle?) throws android.content.IntentSender.SendIntentException;
+ method public void onSupportInvalidateOptionsMenu();
+ }
+
+ public abstract class FragmentManager implements androidx.fragment.app.FragmentResultOwner {
+ ctor public FragmentManager();
+ method public void addFragmentOnAttachListener(androidx.fragment.app.FragmentOnAttachListener);
+ method public void addOnBackStackChangedListener(androidx.fragment.app.FragmentManager.OnBackStackChangedListener);
+ method public androidx.fragment.app.FragmentTransaction beginTransaction();
+ method public void clearBackStack(String);
+ method public final void clearFragmentResult(String);
+ method public final void clearFragmentResultListener(String);
+ method public void dump(String, java.io.FileDescriptor?, java.io.PrintWriter, String![]?);
+ method @Deprecated public static void enableDebugLogging(boolean);
+ method public boolean executePendingTransactions();
+ method public static <F extends androidx.fragment.app.Fragment> F findFragment(android.view.View);
+ method public androidx.fragment.app.Fragment? findFragmentById(@IdRes int);
+ method public androidx.fragment.app.Fragment? findFragmentByTag(String?);
+ method public androidx.fragment.app.FragmentManager.BackStackEntry getBackStackEntryAt(int);
+ method public int getBackStackEntryCount();
+ method public androidx.fragment.app.Fragment? getFragment(android.os.Bundle, String);
+ method public androidx.fragment.app.FragmentFactory getFragmentFactory();
+ method public java.util.List<androidx.fragment.app.Fragment!> getFragments();
+ method public androidx.fragment.app.Fragment? getPrimaryNavigationFragment();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy? getStrictModePolicy();
+ method public boolean isDestroyed();
+ method public boolean isStateSaved();
+ method @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.fragment.app.FragmentTransaction openTransaction();
+ method public void popBackStack();
+ method public void popBackStack(String?, int);
+ method public void popBackStack(int, int);
+ method public boolean popBackStackImmediate();
+ method public boolean popBackStackImmediate(String?, int);
+ method public boolean popBackStackImmediate(int, int);
+ method public void putFragment(android.os.Bundle, String, androidx.fragment.app.Fragment);
+ method public void registerFragmentLifecycleCallbacks(androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks, boolean);
+ method public void removeFragmentOnAttachListener(androidx.fragment.app.FragmentOnAttachListener);
+ method public void removeOnBackStackChangedListener(androidx.fragment.app.FragmentManager.OnBackStackChangedListener);
+ method public void restoreBackStack(String);
+ method public void saveBackStack(String);
+ method public androidx.fragment.app.Fragment.SavedState? saveFragmentInstanceState(androidx.fragment.app.Fragment);
+ method public void setFragmentFactory(androidx.fragment.app.FragmentFactory);
+ method public final void setFragmentResult(String, android.os.Bundle);
+ method public final void setFragmentResultListener(String, androidx.lifecycle.LifecycleOwner, androidx.fragment.app.FragmentResultListener);
+ method public void setStrictModePolicy(androidx.fragment.app.strictmode.FragmentStrictMode.Policy?);
+ method public void unregisterFragmentLifecycleCallbacks(androidx.fragment.app.FragmentManager.FragmentLifecycleCallbacks);
+ field public static final int POP_BACK_STACK_INCLUSIVE = 1; // 0x1
+ }
+
+ public static interface FragmentManager.BackStackEntry {
+ method @Deprecated public CharSequence? getBreadCrumbShortTitle();
+ method @Deprecated @StringRes public int getBreadCrumbShortTitleRes();
+ method @Deprecated public CharSequence? getBreadCrumbTitle();
+ method @Deprecated @StringRes public int getBreadCrumbTitleRes();
+ method public int getId();
+ method public String? getName();
+ }
+
+ public abstract static class FragmentManager.FragmentLifecycleCallbacks {
+ ctor public FragmentManager.FragmentLifecycleCallbacks();
+ method @Deprecated public void onFragmentActivityCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle?);
+ method public void onFragmentAttached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.content.Context);
+ method public void onFragmentCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle?);
+ method public void onFragmentDestroyed(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentDetached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentPaused(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentPreAttached(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.content.Context);
+ method public void onFragmentPreCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle?);
+ method public void onFragmentResumed(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentSaveInstanceState(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.os.Bundle);
+ method public void onFragmentStarted(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentStopped(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ method public void onFragmentViewCreated(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment, android.view.View, android.os.Bundle?);
+ method public void onFragmentViewDestroyed(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ }
+
+ public static interface FragmentManager.OnBackStackChangedListener {
+ method @MainThread public void onBackStackChanged();
+ }
+
+ @Deprecated public class FragmentManagerNonConfig {
+ }
+
+ public interface FragmentOnAttachListener {
+ method @MainThread public void onAttachFragment(androidx.fragment.app.FragmentManager, androidx.fragment.app.Fragment);
+ }
+
+ @Deprecated public abstract class FragmentPagerAdapter extends androidx.viewpager.widget.PagerAdapter {
+ ctor @Deprecated public FragmentPagerAdapter(androidx.fragment.app.FragmentManager);
+ ctor @Deprecated public FragmentPagerAdapter(androidx.fragment.app.FragmentManager, int);
+ method @Deprecated public abstract androidx.fragment.app.Fragment getItem(int);
+ method @Deprecated public long getItemId(int);
+ method @Deprecated public boolean isViewFromObject(android.view.View, Object);
+ field @Deprecated public static final int BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT = 1; // 0x1
+ field @Deprecated public static final int BEHAVIOR_SET_USER_VISIBLE_HINT = 0; // 0x0
+ }
+
+ public interface FragmentResultListener {
+ method public void onFragmentResult(String, android.os.Bundle);
+ }
+
+ public interface FragmentResultOwner {
+ method public void clearFragmentResult(String);
+ method public void clearFragmentResultListener(String);
+ method public void setFragmentResult(String, android.os.Bundle);
+ method public void setFragmentResultListener(String, androidx.lifecycle.LifecycleOwner, androidx.fragment.app.FragmentResultListener);
+ }
+
+ @Deprecated public abstract class FragmentStatePagerAdapter extends androidx.viewpager.widget.PagerAdapter {
+ ctor @Deprecated public FragmentStatePagerAdapter(androidx.fragment.app.FragmentManager);
+ ctor @Deprecated public FragmentStatePagerAdapter(androidx.fragment.app.FragmentManager, int);
+ method @Deprecated public abstract androidx.fragment.app.Fragment getItem(int);
+ method @Deprecated public boolean isViewFromObject(android.view.View, Object);
+ field @Deprecated public static final int BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT = 1; // 0x1
+ field @Deprecated public static final int BEHAVIOR_SET_USER_VISIBLE_HINT = 0; // 0x0
+ }
+
+ @Deprecated public class FragmentTabHost extends android.widget.TabHost implements android.widget.TabHost.OnTabChangeListener {
+ ctor @Deprecated public FragmentTabHost(android.content.Context);
+ ctor @Deprecated public FragmentTabHost(android.content.Context, android.util.AttributeSet?);
+ method @Deprecated public void addTab(android.widget.TabHost.TabSpec, Class<?>, android.os.Bundle?);
+ method @Deprecated public void onTabChanged(String?);
+ method @Deprecated public void setup(android.content.Context, androidx.fragment.app.FragmentManager);
+ method @Deprecated public void setup(android.content.Context, androidx.fragment.app.FragmentManager, int);
+ }
+
+ public abstract class FragmentTransaction {
+ ctor @Deprecated public FragmentTransaction();
+ method public final androidx.fragment.app.FragmentTransaction add(Class<? extends androidx.fragment.app.Fragment>, android.os.Bundle?, String?);
+ method public androidx.fragment.app.FragmentTransaction add(androidx.fragment.app.Fragment, String?);
+ method public final androidx.fragment.app.FragmentTransaction add(@IdRes int, Class<? extends androidx.fragment.app.Fragment>, android.os.Bundle?);
+ method public androidx.fragment.app.FragmentTransaction add(@IdRes int, androidx.fragment.app.Fragment);
+ method public final androidx.fragment.app.FragmentTransaction add(@IdRes int, Class<? extends androidx.fragment.app.Fragment>, android.os.Bundle?, String?);
+ method public androidx.fragment.app.FragmentTransaction add(@IdRes int, androidx.fragment.app.Fragment, String?);
+ method public androidx.fragment.app.FragmentTransaction addSharedElement(android.view.View, String);
+ method public androidx.fragment.app.FragmentTransaction addToBackStack(String?);
+ method public androidx.fragment.app.FragmentTransaction attach(androidx.fragment.app.Fragment);
+ method public abstract int commit();
+ method public abstract int commitAllowingStateLoss();
+ method public abstract void commitNow();
+ method public abstract void commitNowAllowingStateLoss();
+ method public androidx.fragment.app.FragmentTransaction detach(androidx.fragment.app.Fragment);
+ method public androidx.fragment.app.FragmentTransaction disallowAddToBackStack();
+ method public androidx.fragment.app.FragmentTransaction hide(androidx.fragment.app.Fragment);
+ method public boolean isAddToBackStackAllowed();
+ method public boolean isEmpty();
+ method public androidx.fragment.app.FragmentTransaction remove(androidx.fragment.app.Fragment);
+ method public final androidx.fragment.app.FragmentTransaction replace(@IdRes int, Class<? extends androidx.fragment.app.Fragment>, android.os.Bundle?);
+ method public androidx.fragment.app.FragmentTransaction replace(@IdRes int, androidx.fragment.app.Fragment);
+ method public final androidx.fragment.app.FragmentTransaction replace(@IdRes int, Class<? extends androidx.fragment.app.Fragment>, android.os.Bundle?, String?);
+ method public androidx.fragment.app.FragmentTransaction replace(@IdRes int, androidx.fragment.app.Fragment, String?);
+ method public androidx.fragment.app.FragmentTransaction runOnCommit(Runnable);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setAllowOptimization(boolean);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setBreadCrumbShortTitle(@StringRes int);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setBreadCrumbShortTitle(CharSequence?);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setBreadCrumbTitle(@StringRes int);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setBreadCrumbTitle(CharSequence?);
+ method public androidx.fragment.app.FragmentTransaction setCustomAnimations(@AnimRes @AnimatorRes int, @AnimRes @AnimatorRes int);
+ method public androidx.fragment.app.FragmentTransaction setCustomAnimations(@AnimRes @AnimatorRes int, @AnimRes @AnimatorRes int, @AnimRes @AnimatorRes int, @AnimRes @AnimatorRes int);
+ method public androidx.fragment.app.FragmentTransaction setMaxLifecycle(androidx.fragment.app.Fragment, androidx.lifecycle.Lifecycle.State);
+ method public androidx.fragment.app.FragmentTransaction setPrimaryNavigationFragment(androidx.fragment.app.Fragment?);
+ method public androidx.fragment.app.FragmentTransaction setReorderingAllowed(boolean);
+ method public androidx.fragment.app.FragmentTransaction setTransition(int);
+ method @Deprecated public androidx.fragment.app.FragmentTransaction setTransitionStyle(@StyleRes int);
+ method public androidx.fragment.app.FragmentTransaction show(androidx.fragment.app.Fragment);
+ field public static final int TRANSIT_ENTER_MASK = 4096; // 0x1000
+ field public static final int TRANSIT_EXIT_MASK = 8192; // 0x2000
+ field public static final int TRANSIT_FRAGMENT_CLOSE = 8194; // 0x2002
+ field public static final int TRANSIT_FRAGMENT_FADE = 4099; // 0x1003
+ field public static final int TRANSIT_FRAGMENT_MATCH_ACTIVITY_CLOSE = 8197; // 0x2005
+ field public static final int TRANSIT_FRAGMENT_MATCH_ACTIVITY_OPEN = 4100; // 0x1004
+ field public static final int TRANSIT_FRAGMENT_OPEN = 4097; // 0x1001
+ field public static final int TRANSIT_NONE = 0; // 0x0
+ field public static final int TRANSIT_UNSET = -1; // 0xffffffff
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public abstract class FragmentTransitionImpl {
+ ctor public FragmentTransitionImpl();
+ method public abstract void addTarget(Object!, android.view.View!);
+ method public abstract void addTargets(Object!, java.util.ArrayList<android.view.View!>!);
+ method public abstract void beginDelayedTransition(android.view.ViewGroup!, Object!);
+ method protected static void bfsAddViewChildren(java.util.List<android.view.View!>!, android.view.View!);
+ method public abstract boolean canHandle(Object!);
+ method public abstract Object! cloneTransition(Object!);
+ method protected void getBoundsOnScreen(android.view.View!, android.graphics.Rect!);
+ method protected static boolean isNullOrEmpty(java.util.List!);
+ method public abstract Object! mergeTransitionsInSequence(Object!, Object!, Object!);
+ method public abstract Object! mergeTransitionsTogether(Object!, Object!, Object!);
+ method public abstract void removeTarget(Object!, android.view.View!);
+ method public abstract void replaceTargets(Object!, java.util.ArrayList<android.view.View!>!, java.util.ArrayList<android.view.View!>!);
+ method public abstract void scheduleHideFragmentView(Object!, android.view.View!, java.util.ArrayList<android.view.View!>!);
+ method public abstract void scheduleRemoveTargets(Object!, Object!, java.util.ArrayList<android.view.View!>!, Object!, java.util.ArrayList<android.view.View!>!, Object!, java.util.ArrayList<android.view.View!>!);
+ method public abstract void setEpicenter(Object!, android.view.View!);
+ method public abstract void setEpicenter(Object!, android.graphics.Rect!);
+ method public void setListenerForTransitionEnd(androidx.fragment.app.Fragment, Object, androidx.core.os.CancellationSignal, Runnable);
+ method public abstract void setSharedElementTargets(Object!, android.view.View!, java.util.ArrayList<android.view.View!>!);
+ method public abstract void swapSharedElementTargets(Object!, java.util.ArrayList<android.view.View!>!, java.util.ArrayList<android.view.View!>!);
+ method public abstract Object! wrapTransitionInSet(Object!);
+ }
+
+ public class ListFragment extends androidx.fragment.app.Fragment {
+ ctor public ListFragment();
+ method public android.widget.ListAdapter? getListAdapter();
+ method public android.widget.ListView getListView();
+ method public long getSelectedItemId();
+ method public int getSelectedItemPosition();
+ method public void onListItemClick(android.widget.ListView, android.view.View, int, long);
+ method public final android.widget.ListAdapter requireListAdapter();
+ method public void setEmptyText(CharSequence?);
+ method public void setListAdapter(android.widget.ListAdapter?);
+ method public void setListShown(boolean);
+ method public void setListShownNoAnimation(boolean);
+ method public void setSelection(int);
+ }
+
+}
+
+package androidx.fragment.app.strictmode {
+
+ public final class FragmentReuseViolation extends androidx.fragment.app.strictmode.Violation {
+ method public String getPreviousFragmentId();
+ property public final String previousFragmentId;
+ }
+
+ public final class FragmentStrictMode {
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy getDefaultPolicy();
+ method @VisibleForTesting public void onPolicyViolation(androidx.fragment.app.strictmode.Violation violation);
+ method public void setDefaultPolicy(androidx.fragment.app.strictmode.FragmentStrictMode.Policy);
+ property public final androidx.fragment.app.strictmode.FragmentStrictMode.Policy defaultPolicy;
+ field public static final androidx.fragment.app.strictmode.FragmentStrictMode INSTANCE;
+ }
+
+ public static fun interface FragmentStrictMode.OnViolationListener {
+ method public void onViolation(androidx.fragment.app.strictmode.Violation violation);
+ }
+
+ public static final class FragmentStrictMode.Policy {
+ field public static final androidx.fragment.app.strictmode.FragmentStrictMode.Policy LAX;
+ }
+
+ public static final class FragmentStrictMode.Policy.Builder {
+ ctor public FragmentStrictMode.Policy.Builder();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder allowViolation(Class<? extends androidx.fragment.app.Fragment> fragmentClass, Class<? extends androidx.fragment.app.strictmode.Violation> violationClass);
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder allowViolation(String fragmentClass, Class<? extends androidx.fragment.app.strictmode.Violation> violationClass);
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy build();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectFragmentReuse();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectFragmentTagUsage();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectRetainInstanceUsage();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectSetUserVisibleHint();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectTargetFragmentUsage();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder detectWrongFragmentContainer();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder penaltyDeath();
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder penaltyListener(androidx.fragment.app.strictmode.FragmentStrictMode.OnViolationListener listener);
+ method public androidx.fragment.app.strictmode.FragmentStrictMode.Policy.Builder penaltyLog();
+ }
+
+ public final class FragmentTagUsageViolation extends androidx.fragment.app.strictmode.Violation {
+ method public android.view.ViewGroup? getParentContainer();
+ property public final android.view.ViewGroup? parentContainer;
+ }
+
+ public final class GetRetainInstanceUsageViolation extends androidx.fragment.app.strictmode.RetainInstanceUsageViolation {
+ }
+
+ public final class GetTargetFragmentRequestCodeUsageViolation extends androidx.fragment.app.strictmode.TargetFragmentUsageViolation {
+ }
+
+ public final class GetTargetFragmentUsageViolation extends androidx.fragment.app.strictmode.TargetFragmentUsageViolation {
+ }
+
+ public abstract class RetainInstanceUsageViolation extends androidx.fragment.app.strictmode.Violation {
+ }
+
+ public final class SetRetainInstanceUsageViolation extends androidx.fragment.app.strictmode.RetainInstanceUsageViolation {
+ }
+
+ public final class SetTargetFragmentUsageViolation extends androidx.fragment.app.strictmode.TargetFragmentUsageViolation {
+ method public int getRequestCode();
+ method public androidx.fragment.app.Fragment getTargetFragment();
+ property public final int requestCode;
+ property public final androidx.fragment.app.Fragment targetFragment;
+ }
+
+ public final class SetUserVisibleHintViolation extends androidx.fragment.app.strictmode.Violation {
+ method public boolean isVisibleToUser();
+ property public final boolean isVisibleToUser;
+ }
+
+ public abstract class TargetFragmentUsageViolation extends androidx.fragment.app.strictmode.Violation {
+ }
+
+ public abstract class Violation extends java.lang.RuntimeException {
+ method public final androidx.fragment.app.Fragment getFragment();
+ property public final androidx.fragment.app.Fragment fragment;
+ }
+
+ public final class WrongFragmentContainerViolation extends androidx.fragment.app.strictmode.Violation {
+ method public android.view.ViewGroup getContainer();
+ property public final android.view.ViewGroup container;
+ }
+
+}
+
diff --git a/fragment/fragment/build.gradle b/fragment/fragment/build.gradle
index d183242..6e3b930 100644
--- a/fragment/fragment/build.gradle
+++ b/fragment/fragment/build.gradle
@@ -29,11 +29,11 @@
api("androidx.collection:collection:1.1.0")
api("androidx.viewpager:viewpager:1.0.0")
api("androidx.loader:loader:1.0.0")
- api(projectOrArtifact(":activity:activity"))
- api(projectOrArtifact(":lifecycle:lifecycle-livedata-core"))
- api(projectOrArtifact(":lifecycle:lifecycle-viewmodel"))
- api(projectOrArtifact(":lifecycle:lifecycle-viewmodel-savedstate"))
- api(projectOrArtifact(":savedstate:savedstate"))
+ api("androidx.activity:activity:1.5.0-rc01")
+ api("androidx.lifecycle:lifecycle-livedata-core:2.5.0-rc01")
+ api("androidx.lifecycle:lifecycle-viewmodel:2.5.0-rc01")
+ api("androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.0-rc01")
+ api("androidx.savedstate:savedstate:1.2.0-rc01")
api("androidx.annotation:annotation-experimental:1.0.0")
api(libs.kotlinStdlib)
diff --git a/gradlew b/gradlew
index 13b9e38..c982c93 100755
--- a/gradlew
+++ b/gradlew
@@ -19,6 +19,7 @@
else
CHECKOUT_ROOT="$(cd $SCRIPT_PATH/../.. && pwd -P)"
export OUT_DIR="$CHECKOUT_ROOT/out"
+ export GRADLE_USER_HOME=~/.gradle
fi
ORG_GRADLE_JVMARGS="$(cd $SCRIPT_PATH && grep org.gradle.jvmargs gradle.properties | sed 's/^/-D/')"
@@ -116,7 +117,6 @@
else
plat="linux"
fi
-DEFAULT_JVM_OPTS="-DLINT_API_DATABASE=$APP_HOME/../../prebuilts/fullsdk-$plat/platform-tools/api/api-versions.xml"
# Tests for lint checks default to using sdk defined by this variable. This removes a lot of
# setup from each lint module.
@@ -368,25 +368,6 @@
rm -rf $OUT_DIR
}
-if [ "$cleanCaches" == true ]; then
- echo "IF ./gradlew --clean FIXES YOUR BUILD; OPEN A BUG."
- echo "In nearly all cases, it should not be necessary to run a clean build."
- echo
- echo "You may be more interested in running:"
- echo
- echo " ./development/diagnose-build-failure/diagnose-build-failure.sh $*"
- echo
- echo "which attempts to diagnose more details about build failures."
- echo
- echo "Removing caches"
- # one case where it is convenient to have a clean build is for double-checking that a build failure isn't due to an incremental build failure
- # another case where it is convenient to have a clean build is for performance testing
- # another case where it is convenient to have a clean build is when you're modifying the build and may have introduced some errors but haven't shared your changes yet (at which point you should have fixed the errors)
- echo
-
- removeCaches
-fi
-
function runGradle() {
processOutput=false
if [[ " ${@} " =~ " -Pandroidx.validateNoUnrecognizedMessages " ]]; then
@@ -432,6 +413,29 @@
return $RETURN_VALUE
}
+if [ "$cleanCaches" == true ]; then
+ echo "IF ./gradlew --clean FIXES YOUR BUILD; OPEN A BUG."
+ echo "In nearly all cases, it should not be necessary to run a clean build."
+ echo
+ # one case where it is convenient to have a clean build is for double-checking that a build failure isn't due to an incremental build failure
+ # another case where it is convenient to have a clean build is for performance testing
+ # another case where it is convenient to have a clean build is when you're modifying the build and may have introduced some errors but haven't shared your changes yet (at which point you should have fixed the errors)
+
+ echo "Stopping Gradle daemons"
+ runGradle --stop || true
+ echo
+
+ backupDir=~/androidx-build-state-backup
+ ./development/diagnose-build-failure/impl/backup-state.sh "$backupDir" --move # prints that it is saving state into this dir"
+
+ echo "To restore this state later, run:"
+ echo
+ echo " ./development/diagnose-build-failure/impl/restore-state.sh $backupDir"
+ echo
+ echo "Running Gradle"
+ echo
+fi
+
if [[ " ${@} " =~ " -PdisallowExecution " ]]; then
echo "Passing '-PdisallowExecution' directly is forbidden. Did you mean -Pandroidx.verifyUpToDate ?"
echo "See TaskUpToDateValidator.java for more information"
diff --git a/health/health-connect-client/api/current.txt b/health/health-connect-client/api/current.txt
index fa18e8b..34f783b 100644
--- a/health/health-connect-client/api/current.txt
+++ b/health/health-connect-client/api/current.txt
@@ -94,12 +94,10 @@
}
public final class Device {
- ctor public Device(optional String? identifier, optional String? manufacturer, optional String? model, optional String? type);
- method public String? getIdentifier();
+ ctor public Device(optional String? manufacturer, optional String? model, optional String? type);
method public String? getManufacturer();
method public String? getModel();
method public String? getType();
- property public final String? identifier;
property public final String? manufacturer;
property public final String? model;
property public final String? type;
@@ -333,6 +331,30 @@
public static final class ElevationGained.Companion {
}
+ public final class HeartRate {
+ ctor public HeartRate(java.time.Instant time, long beatsPerMinute);
+ method public long getBeatsPerMinute();
+ method public java.time.Instant getTime();
+ property public final long beatsPerMinute;
+ property public final java.time.Instant time;
+ }
+
+ public final class HeartRateSeries implements androidx.health.connect.client.records.Record {
+ ctor public HeartRateSeries(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, java.util.List<androidx.health.connect.client.records.HeartRate> samples, optional androidx.health.connect.client.metadata.Metadata metadata);
+ method public java.time.Instant getEndTime();
+ method public java.time.ZoneOffset? getEndZoneOffset();
+ method public androidx.health.connect.client.metadata.Metadata getMetadata();
+ method public java.util.List<androidx.health.connect.client.records.HeartRate> getSamples();
+ method public java.time.Instant getStartTime();
+ method public java.time.ZoneOffset? getStartZoneOffset();
+ property public java.time.Instant endTime;
+ property public java.time.ZoneOffset? endZoneOffset;
+ property public androidx.health.connect.client.metadata.Metadata metadata;
+ property public java.util.List<androidx.health.connect.client.records.HeartRate> samples;
+ property public java.time.Instant startTime;
+ property public java.time.ZoneOffset? startZoneOffset;
+ }
+
public final class Height implements androidx.health.connect.client.records.Record {
ctor public Height(double heightMeters, java.time.Instant time, java.time.ZoneOffset? zoneOffset, optional androidx.health.connect.client.metadata.Metadata metadata);
method public double getHeightMeters();
diff --git a/health/health-connect-client/api/public_plus_experimental_current.txt b/health/health-connect-client/api/public_plus_experimental_current.txt
index fa18e8b..34f783b 100644
--- a/health/health-connect-client/api/public_plus_experimental_current.txt
+++ b/health/health-connect-client/api/public_plus_experimental_current.txt
@@ -94,12 +94,10 @@
}
public final class Device {
- ctor public Device(optional String? identifier, optional String? manufacturer, optional String? model, optional String? type);
- method public String? getIdentifier();
+ ctor public Device(optional String? manufacturer, optional String? model, optional String? type);
method public String? getManufacturer();
method public String? getModel();
method public String? getType();
- property public final String? identifier;
property public final String? manufacturer;
property public final String? model;
property public final String? type;
@@ -333,6 +331,30 @@
public static final class ElevationGained.Companion {
}
+ public final class HeartRate {
+ ctor public HeartRate(java.time.Instant time, long beatsPerMinute);
+ method public long getBeatsPerMinute();
+ method public java.time.Instant getTime();
+ property public final long beatsPerMinute;
+ property public final java.time.Instant time;
+ }
+
+ public final class HeartRateSeries implements androidx.health.connect.client.records.Record {
+ ctor public HeartRateSeries(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, java.util.List<androidx.health.connect.client.records.HeartRate> samples, optional androidx.health.connect.client.metadata.Metadata metadata);
+ method public java.time.Instant getEndTime();
+ method public java.time.ZoneOffset? getEndZoneOffset();
+ method public androidx.health.connect.client.metadata.Metadata getMetadata();
+ method public java.util.List<androidx.health.connect.client.records.HeartRate> getSamples();
+ method public java.time.Instant getStartTime();
+ method public java.time.ZoneOffset? getStartZoneOffset();
+ property public java.time.Instant endTime;
+ property public java.time.ZoneOffset? endZoneOffset;
+ property public androidx.health.connect.client.metadata.Metadata metadata;
+ property public java.util.List<androidx.health.connect.client.records.HeartRate> samples;
+ property public java.time.Instant startTime;
+ property public java.time.ZoneOffset? startZoneOffset;
+ }
+
public final class Height implements androidx.health.connect.client.records.Record {
ctor public Height(double heightMeters, java.time.Instant time, java.time.ZoneOffset? zoneOffset, optional androidx.health.connect.client.metadata.Metadata metadata);
method public double getHeightMeters();
diff --git a/health/health-connect-client/api/restricted_current.txt b/health/health-connect-client/api/restricted_current.txt
index 0b35453..923a870 100644
--- a/health/health-connect-client/api/restricted_current.txt
+++ b/health/health-connect-client/api/restricted_current.txt
@@ -94,12 +94,10 @@
}
public final class Device {
- ctor public Device(optional String? identifier, optional String? manufacturer, optional String? model, optional String? type);
- method public String? getIdentifier();
+ ctor public Device(optional String? manufacturer, optional String? model, optional String? type);
method public String? getManufacturer();
method public String? getModel();
method public String? getType();
- property public final String? identifier;
property public final String? manufacturer;
property public final String? model;
property public final String? type;
@@ -333,6 +331,30 @@
public static final class ElevationGained.Companion {
}
+ public final class HeartRate {
+ ctor public HeartRate(java.time.Instant time, long beatsPerMinute);
+ method public long getBeatsPerMinute();
+ method public java.time.Instant getTime();
+ property public final long beatsPerMinute;
+ property public final java.time.Instant time;
+ }
+
+ public final class HeartRateSeries implements androidx.health.connect.client.records.SeriesRecord<androidx.health.connect.client.records.HeartRate> {
+ ctor public HeartRateSeries(java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, java.util.List<androidx.health.connect.client.records.HeartRate> samples, optional androidx.health.connect.client.metadata.Metadata metadata);
+ method public java.time.Instant getEndTime();
+ method public java.time.ZoneOffset? getEndZoneOffset();
+ method public androidx.health.connect.client.metadata.Metadata getMetadata();
+ method public java.util.List<androidx.health.connect.client.records.HeartRate> getSamples();
+ method public java.time.Instant getStartTime();
+ method public java.time.ZoneOffset? getStartZoneOffset();
+ property public java.time.Instant endTime;
+ property public java.time.ZoneOffset? endZoneOffset;
+ property public androidx.health.connect.client.metadata.Metadata metadata;
+ property public java.util.List<androidx.health.connect.client.records.HeartRate> samples;
+ property public java.time.Instant startTime;
+ property public java.time.ZoneOffset? startZoneOffset;
+ }
+
public final class Height implements androidx.health.connect.client.records.InstantaneousRecord {
ctor public Height(double heightMeters, java.time.Instant time, java.time.ZoneOffset? zoneOffset, optional androidx.health.connect.client.metadata.Metadata metadata);
method public double getHeightMeters();
@@ -393,6 +415,11 @@
property public abstract androidx.health.connect.client.metadata.Metadata metadata;
}
+ @kotlin.PublishedApi internal interface SeriesRecord<T> extends androidx.health.connect.client.records.IntervalRecord {
+ method public java.util.List<T> getSamples();
+ property public abstract java.util.List<T> samples;
+ }
+
public final class Steps implements androidx.health.connect.client.records.IntervalRecord {
ctor public Steps(long count, java.time.Instant startTime, java.time.ZoneOffset? startZoneOffset, java.time.Instant endTime, java.time.ZoneOffset? endZoneOffset, optional androidx.health.connect.client.metadata.Metadata metadata);
method public long getCount();
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/datatype/RecordsTypeNameMap.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/datatype/RecordsTypeNameMap.kt
index 789386b..cafd3ce 100644
--- a/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/datatype/RecordsTypeNameMap.kt
+++ b/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/datatype/RecordsTypeNameMap.kt
@@ -30,7 +30,7 @@
import androidx.health.connect.client.records.BoneMass
import androidx.health.connect.client.records.CervicalMucus
import androidx.health.connect.client.records.CervicalPosition
-import androidx.health.connect.client.records.CyclingPedalingCadence
+import androidx.health.connect.client.records.CyclingPedalingCadenceSeries
import androidx.health.connect.client.records.Distance
import androidx.health.connect.client.records.ElevationGained
import androidx.health.connect.client.records.FloorsClimbed
@@ -52,7 +52,7 @@
import androidx.health.connect.client.records.Nutrition
import androidx.health.connect.client.records.OvulationTest
import androidx.health.connect.client.records.OxygenSaturation
-import androidx.health.connect.client.records.Power
+import androidx.health.connect.client.records.PowerSeries
import androidx.health.connect.client.records.Record
import androidx.health.connect.client.records.Repetitions
import androidx.health.connect.client.records.RespiratoryRate
@@ -60,9 +60,9 @@
import androidx.health.connect.client.records.SexualActivity
import androidx.health.connect.client.records.SleepSession
import androidx.health.connect.client.records.SleepStage
-import androidx.health.connect.client.records.Speed
+import androidx.health.connect.client.records.SpeedSeries
import androidx.health.connect.client.records.Steps
-import androidx.health.connect.client.records.StepsCadence
+import androidx.health.connect.client.records.StepsCadenceSeries
import androidx.health.connect.client.records.SwimmingStrokes
import androidx.health.connect.client.records.TotalCaloriesBurned
import androidx.health.connect.client.records.TotalEnergyBurned
@@ -89,7 +89,7 @@
BoneMass::class,
CervicalMucus::class,
CervicalPosition::class,
- CyclingPedalingCadence::class,
+ CyclingPedalingCadenceSeries::class,
Distance::class,
ElevationGained::class,
FloorsClimbed::class,
@@ -111,16 +111,16 @@
Nutrition::class,
OvulationTest::class,
OxygenSaturation::class,
- Power::class,
+ PowerSeries::class,
Repetitions::class,
RespiratoryRate::class,
RestingHeartRate::class,
SexualActivity::class,
SleepSession::class,
SleepStage::class,
- Speed::class,
+ SpeedSeries::class,
Steps::class,
- StepsCadence::class,
+ StepsCadenceSeries::class,
SwimmingStrokes::class,
TotalCaloriesBurned::class,
TotalEnergyBurned::class,
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/records/ProtoToRecordConverters.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/records/ProtoToRecordConverters.kt
index 4eb318e..62b8de4 100644
--- a/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/records/ProtoToRecordConverters.kt
+++ b/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/records/ProtoToRecordConverters.kt
@@ -31,6 +31,7 @@
import androidx.health.connect.client.records.CervicalMucus
import androidx.health.connect.client.records.CervicalPosition
import androidx.health.connect.client.records.CyclingPedalingCadence
+import androidx.health.connect.client.records.CyclingPedalingCadenceSeries
import androidx.health.connect.client.records.Distance
import androidx.health.connect.client.records.ElevationGained
import androidx.health.connect.client.records.FloorsClimbed
@@ -54,6 +55,7 @@
import androidx.health.connect.client.records.OvulationTest
import androidx.health.connect.client.records.OxygenSaturation
import androidx.health.connect.client.records.Power
+import androidx.health.connect.client.records.PowerSeries
import androidx.health.connect.client.records.Record
import androidx.health.connect.client.records.Repetitions
import androidx.health.connect.client.records.RespiratoryRate
@@ -62,8 +64,10 @@
import androidx.health.connect.client.records.SleepSession
import androidx.health.connect.client.records.SleepStage
import androidx.health.connect.client.records.Speed
+import androidx.health.connect.client.records.SpeedSeries
import androidx.health.connect.client.records.Steps
import androidx.health.connect.client.records.StepsCadence
+import androidx.health.connect.client.records.StepsCadenceSeries
import androidx.health.connect.client.records.SwimmingStrokes
import androidx.health.connect.client.records.TotalCaloriesBurned
import androidx.health.connect.client.records.TotalEnergyBurned
@@ -159,12 +163,20 @@
zoneOffset = zoneOffset,
metadata = metadata
)
- "CyclingPedalingCadence" ->
- CyclingPedalingCadence(
- revolutionsPerMinute = getDouble("rpm"),
- time = time,
- zoneOffset = zoneOffset,
- metadata = metadata
+ "CyclingPedalingCadenceSeries" ->
+ CyclingPedalingCadenceSeries(
+ startTime = startTime,
+ startZoneOffset = startZoneOffset,
+ endTime = endTime,
+ endZoneOffset = endZoneOffset,
+ samples =
+ seriesValuesList.map { value ->
+ CyclingPedalingCadence(
+ time = Instant.ofEpochMilli(value.instantTimeMillis),
+ revolutionsPerMinute = value.getDouble("rpm"),
+ )
+ },
+ metadata = metadata,
)
"HeartRateSeries" ->
HeartRateSeries(
@@ -286,12 +298,20 @@
zoneOffset = zoneOffset,
metadata = metadata
)
- "Power" ->
- Power(
- power = getDouble("power"),
- time = time,
- zoneOffset = zoneOffset,
- metadata = metadata
+ "PowerSeries" ->
+ PowerSeries(
+ startTime = startTime,
+ startZoneOffset = startZoneOffset,
+ endTime = endTime,
+ endZoneOffset = endZoneOffset,
+ samples =
+ seriesValuesList.map { value ->
+ Power(
+ time = Instant.ofEpochMilli(value.instantTimeMillis),
+ watts = value.getDouble("power"),
+ )
+ },
+ metadata = metadata,
)
"RespiratoryRate" ->
RespiratoryRate(
@@ -314,19 +334,35 @@
zoneOffset = zoneOffset,
metadata = metadata
)
- "Speed" ->
- Speed(
- speedMetersPerSecond = getDouble("speed"),
- time = time,
- zoneOffset = zoneOffset,
- metadata = metadata
+ "SpeedSeries" ->
+ SpeedSeries(
+ startTime = startTime,
+ startZoneOffset = startZoneOffset,
+ endTime = endTime,
+ endZoneOffset = endZoneOffset,
+ samples =
+ seriesValuesList.map { value ->
+ Speed(
+ time = Instant.ofEpochMilli(value.instantTimeMillis),
+ metersPerSecond = value.getDouble("speed"),
+ )
+ },
+ metadata = metadata,
)
- "StepsCadence" ->
- StepsCadence(
- rate = getDouble("rate"),
- time = time,
- zoneOffset = zoneOffset,
- metadata = metadata
+ "StepsCadenceSeries" ->
+ StepsCadenceSeries(
+ startTime = startTime,
+ startZoneOffset = startZoneOffset,
+ endTime = endTime,
+ endZoneOffset = endZoneOffset,
+ samples =
+ seriesValuesList.map { value ->
+ StepsCadence(
+ time = Instant.ofEpochMilli(value.instantTimeMillis),
+ rate = value.getDouble("rate"),
+ )
+ },
+ metadata = metadata,
)
"Vo2Max" ->
Vo2Max(
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/records/ProtoToRecordUtils.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/records/ProtoToRecordUtils.kt
index 081d281..46c6d9e 100644
--- a/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/records/ProtoToRecordUtils.kt
+++ b/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/records/ProtoToRecordUtils.kt
@@ -87,7 +87,6 @@
private fun toDevice(proto: DataProto.Device): Device {
return with(proto) {
Device(
- identifier = if (hasIdentifier()) identifier else null,
manufacturer = if (hasManufacturer()) manufacturer else null,
model = if (hasModel()) model else null,
type = if (hasType()) type else null
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/records/RecordToProtoConverters.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/records/RecordToProtoConverters.kt
index 02b3c01..0038280 100644
--- a/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/records/RecordToProtoConverters.kt
+++ b/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/records/RecordToProtoConverters.kt
@@ -30,7 +30,7 @@
import androidx.health.connect.client.records.BoneMass
import androidx.health.connect.client.records.CervicalMucus
import androidx.health.connect.client.records.CervicalPosition
-import androidx.health.connect.client.records.CyclingPedalingCadence
+import androidx.health.connect.client.records.CyclingPedalingCadenceSeries
import androidx.health.connect.client.records.Distance
import androidx.health.connect.client.records.ElevationGained
import androidx.health.connect.client.records.FloorsClimbed
@@ -52,7 +52,7 @@
import androidx.health.connect.client.records.Nutrition
import androidx.health.connect.client.records.OvulationTest
import androidx.health.connect.client.records.OxygenSaturation
-import androidx.health.connect.client.records.Power
+import androidx.health.connect.client.records.PowerSeries
import androidx.health.connect.client.records.Record
import androidx.health.connect.client.records.Repetitions
import androidx.health.connect.client.records.RespiratoryRate
@@ -61,9 +61,9 @@
import androidx.health.connect.client.records.SexualActivity
import androidx.health.connect.client.records.SleepSession
import androidx.health.connect.client.records.SleepStage
-import androidx.health.connect.client.records.Speed
+import androidx.health.connect.client.records.SpeedSeries
import androidx.health.connect.client.records.Steps
-import androidx.health.connect.client.records.StepsCadence
+import androidx.health.connect.client.records.StepsCadenceSeries
import androidx.health.connect.client.records.SwimmingStrokes
import androidx.health.connect.client.records.TotalCaloriesBurned
import androidx.health.connect.client.records.TotalEnergyBurned
@@ -149,11 +149,13 @@
firmness?.let { putValues("firmness", enumVal(it)) }
}
.build()
- is CyclingPedalingCadence ->
- instantaneousProto()
- .setDataType(protoDataType("CyclingPedalingCadence"))
- .apply { putValues("rpm", doubleVal(revolutionsPerMinute)) }
- .build()
+ is CyclingPedalingCadenceSeries ->
+ toProto(dataTypeName = "CyclingPedalingCadenceSeries") { sample ->
+ DataProto.SeriesValue.newBuilder()
+ .putValues("rpm", doubleVal(sample.revolutionsPerMinute))
+ .setInstantTimeMillis(sample.time.toEpochMilli())
+ .build()
+ }
is HeartRateSeries ->
toProto(dataTypeName = "HeartRateSeries") { sample ->
DataProto.SeriesValue.newBuilder()
@@ -236,11 +238,13 @@
.setDataType(protoDataType("OxygenSaturation"))
.apply { putValues("percentage", doubleVal(percentage)) }
.build()
- is Power ->
- instantaneousProto()
- .setDataType(protoDataType("Power"))
- .apply { putValues("power", doubleVal(power)) }
- .build()
+ is PowerSeries ->
+ toProto(dataTypeName = "PowerSeries") { sample ->
+ DataProto.SeriesValue.newBuilder()
+ .putValues("power", doubleVal(sample.watts))
+ .setInstantTimeMillis(sample.time.toEpochMilli())
+ .build()
+ }
is RespiratoryRate ->
instantaneousProto()
.setDataType(protoDataType("RespiratoryRate"))
@@ -256,16 +260,20 @@
.setDataType(protoDataType("SexualActivity"))
.apply { protectionUsed?.let { putValues("protectionUsed", enumVal(it)) } }
.build()
- is Speed ->
- instantaneousProto()
- .setDataType(protoDataType("Speed"))
- .apply { putValues("speed", doubleVal(speedMetersPerSecond)) }
- .build()
- is StepsCadence ->
- instantaneousProto()
- .setDataType(protoDataType("StepsCadence"))
- .apply { putValues("rate", doubleVal(rate)) }
- .build()
+ is SpeedSeries ->
+ toProto(dataTypeName = "SpeedSeries") { sample ->
+ DataProto.SeriesValue.newBuilder()
+ .putValues("speed", doubleVal(sample.metersPerSecond))
+ .setInstantTimeMillis(sample.time.toEpochMilli())
+ .build()
+ }
+ is StepsCadenceSeries ->
+ toProto(dataTypeName = "StepsCadenceSeries") { sample ->
+ DataProto.SeriesValue.newBuilder()
+ .putValues("rate", doubleVal(sample.rate))
+ .setInstantTimeMillis(sample.time.toEpochMilli())
+ .build()
+ }
is Vo2Max ->
instantaneousProto()
.setDataType(protoDataType("Vo2Max"))
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/records/RecordToProtoUtils.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/records/RecordToProtoUtils.kt
index 89bc9ec..b0e0c7a 100644
--- a/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/records/RecordToProtoUtils.kt
+++ b/health/health-connect-client/src/main/java/androidx/health/connect/client/impl/converters/records/RecordToProtoUtils.kt
@@ -73,7 +73,6 @@
val obj = this
return DataProto.Device.newBuilder()
.apply {
- obj.identifier?.let { setIdentifier(it) }
obj.manufacturer?.let { setManufacturer(it) }
obj.model?.let { setModel(it) }
obj.type?.let { setType(it) }
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/metadata/Device.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/metadata/Device.kt
index d13ba61..b1c711d 100644
--- a/health/health-connect-client/src/main/java/androidx/health/connect/client/metadata/Device.kt
+++ b/health/health-connect-client/src/main/java/androidx/health/connect/client/metadata/Device.kt
@@ -22,13 +22,11 @@
* Device needs to be populated by users of the API. Metadata fields not provided by clients will
* remain absent.
*
- * @property identifier an optional client supplied identifier for the device
* @property manufacturer an optional client supplied manufacturer of the device
* @property model an optional client supplied model of the device
* @property type an optional client supplied type of the device
*/
public class Device(
- public val identifier: String? = null,
public val manufacturer: String? = null,
public val model: String? = null,
@property:DeviceType public val type: String? = null
@@ -37,7 +35,6 @@
if (this === other) return true
if (other !is Device) return false
- if (identifier != other.identifier) return false
if (manufacturer != other.manufacturer) return false
if (model != other.model) return false
if (type != other.type) return false
@@ -46,7 +43,7 @@
}
override fun hashCode(): Int {
- var result = identifier?.hashCode() ?: 0
+ var result = 0
result = 31 * result + (manufacturer?.hashCode() ?: 0)
result = 31 * result + (model?.hashCode() ?: 0)
result = 31 * result + (type?.hashCode() ?: 0)
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/CyclingPedalingCadence.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/CyclingPedalingCadence.kt
deleted file mode 100644
index a66cf182..0000000
--- a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/CyclingPedalingCadence.kt
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2022 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.
- */
-package androidx.health.connect.client.records
-
-import androidx.annotation.RestrictTo
-import androidx.health.connect.client.metadata.Metadata
-import java.time.Instant
-import java.time.ZoneOffset
-
-/**
- * If a user goes cycling, this can be used to capture their pedaling rate, in crank revolutions per
- * minute (RPM). Each record represents a single instantaneous measurement.
- */
-@RestrictTo(RestrictTo.Scope.LIBRARY)
-public class CyclingPedalingCadence(
- /** Cycling revolutions per minute. Required field. Valid range: 0-10000. */
- public val revolutionsPerMinute: Double,
- override val time: Instant,
- override val zoneOffset: ZoneOffset?,
- override val metadata: Metadata = Metadata.EMPTY,
-) : InstantaneousRecord {
- override fun equals(other: Any?): Boolean {
- if (this === other) return true
- if (other !is CyclingPedalingCadence) return false
-
- if (revolutionsPerMinute != other.revolutionsPerMinute) return false
- if (time != other.time) return false
- if (zoneOffset != other.zoneOffset) return false
- if (metadata != other.metadata) return false
-
- return true
- }
-
- override fun hashCode(): Int {
- var result = 0
- result = 31 * result + revolutionsPerMinute.hashCode()
- result = 31 * result + time.hashCode()
- result = 31 * result + (zoneOffset?.hashCode() ?: 0)
- result = 31 * result + metadata.hashCode()
- return result
- }
-}
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/CyclingPedalingCadenceSeries.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/CyclingPedalingCadenceSeries.kt
new file mode 100644
index 0000000..6119e1d
--- /dev/null
+++ b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/CyclingPedalingCadenceSeries.kt
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2022 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.
+ */
+package androidx.health.connect.client.records
+
+import androidx.annotation.RestrictTo
+import androidx.health.connect.client.aggregate.AggregateMetric
+import androidx.health.connect.client.aggregate.AggregateMetric.AggregationType.AVERAGE
+import androidx.health.connect.client.aggregate.AggregateMetric.AggregationType.MAXIMUM
+import androidx.health.connect.client.aggregate.AggregateMetric.AggregationType.MINIMUM
+import androidx.health.connect.client.aggregate.AggregateMetric.Companion.doubleMetric
+import androidx.health.connect.client.metadata.Metadata
+import java.time.Instant
+import java.time.ZoneOffset
+
+/**
+ * Captures the user's cycling pedaling cadence. Each record represents a series of measurements.
+ */
+@RestrictTo(RestrictTo.Scope.LIBRARY)
+public class CyclingPedalingCadenceSeries(
+ override val startTime: Instant,
+ override val startZoneOffset: ZoneOffset?,
+ override val endTime: Instant,
+ override val endZoneOffset: ZoneOffset?,
+ override val samples: List<CyclingPedalingCadence>,
+ override val metadata: Metadata = Metadata.EMPTY,
+) : SeriesRecord<CyclingPedalingCadence> {
+
+ /*
+ * Generated by the IDE: Code -> Generate -> "equals() and hashCode()".
+ */
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is CyclingPedalingCadenceSeries) return false
+
+ if (startTime != other.startTime) return false
+ if (startZoneOffset != other.startZoneOffset) return false
+ if (endTime != other.endTime) return false
+ if (endZoneOffset != other.endZoneOffset) return false
+ if (samples != other.samples) return false
+ if (metadata != other.metadata) return false
+
+ return true
+ }
+
+ /*
+ * Generated by the IDE: Code -> Generate -> "equals() and hashCode()".
+ */
+ override fun hashCode(): Int {
+ var result = startTime.hashCode()
+ result = 31 * result + (startZoneOffset?.hashCode() ?: 0)
+ result = 31 * result + endTime.hashCode()
+ result = 31 * result + (endZoneOffset?.hashCode() ?: 0)
+ result = 31 * result + samples.hashCode()
+ result = 31 * result + metadata.hashCode()
+ return result
+ }
+
+ internal companion object {
+ private const val TYPE = "CyclingPedalingCadence"
+ private const val RPM_FIELD = "rpm"
+
+ /**
+ * Metric identifier to retrieve average heart rate from
+ * [androidx.health.connect.client.aggregate.AggregationResult].
+ */
+ @JvmField
+ internal val RPM_AVG: AggregateMetric<Double> = doubleMetric(TYPE, AVERAGE, RPM_FIELD)
+
+ /**
+ * Metric identifier to retrieve minimum heart rate from
+ * [androidx.health.connect.client.aggregate.AggregationResult].
+ */
+ @JvmField
+ internal val RPM_MIN: AggregateMetric<Double> = doubleMetric(TYPE, MINIMUM, RPM_FIELD)
+
+ /**
+ * Metric identifier to retrieve maximum heart rate from
+ * [androidx.health.connect.client.aggregate.AggregationResult].
+ */
+ @JvmField
+ internal val RPM_MAX: AggregateMetric<Double> = doubleMetric(TYPE, MAXIMUM, RPM_FIELD)
+ }
+}
+
+/**
+ * Represents a single measurement of the cycling pedaling cadence.
+ *
+ * @param time The point in time when the measurement was taken.
+ * @param revolutionsPerMinute Cycling revolutions per minute. Valid range: 0-10000.
+ *
+ * @see CyclingPedalingCadenceSeries
+ */
+@RestrictTo(RestrictTo.Scope.LIBRARY)
+public class CyclingPedalingCadence(
+ val time: Instant,
+ val revolutionsPerMinute: Double,
+) {
+
+ /*
+ * Generated by the IDE: Code -> Generate -> "equals() and hashCode()".
+ */
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is CyclingPedalingCadence) return false
+
+ if (time != other.time) return false
+ if (revolutionsPerMinute != other.revolutionsPerMinute) return false
+
+ return true
+ }
+
+ /*
+ * Generated by the IDE: Code -> Generate -> "equals() and hashCode()".
+ */
+ override fun hashCode(): Int {
+ var result = time.hashCode()
+ result = 31 * result + revolutionsPerMinute.hashCode()
+ return result
+ }
+}
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/HeartRateSeries.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/HeartRateSeries.kt
index 981f549..3f7b72c 100644
--- a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/HeartRateSeries.kt
+++ b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/HeartRateSeries.kt
@@ -15,14 +15,12 @@
*/
package androidx.health.connect.client.records
-import androidx.annotation.RestrictTo
import androidx.health.connect.client.aggregate.AggregateMetric
import androidx.health.connect.client.metadata.Metadata
import java.time.Instant
import java.time.ZoneOffset
/** Captures the user's heart rate. Each record represents a series of measurements. */
-@RestrictTo(RestrictTo.Scope.LIBRARY) // Will be made public after API reviews
public class HeartRateSeries(
override val startTime: Instant,
override val startZoneOffset: ZoneOffset?,
@@ -98,9 +96,11 @@
/**
* Represents a single measurement of the heart rate.
*
+ * @param time The point in time when the measurement was taken.
* @param beatsPerMinute Heart beats per minute. Validation range: 1-300.
+ *
+ * @see HeartRateSeries
*/
-@RestrictTo(RestrictTo.Scope.LIBRARY) // Will be made public after API reviews
public class HeartRate(
val time: Instant,
val beatsPerMinute: Long,
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/Power.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/Power.kt
deleted file mode 100644
index 7b69957..0000000
--- a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/Power.kt
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2022 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.
- */
-package androidx.health.connect.client.records
-
-import androidx.annotation.RestrictTo
-import androidx.health.connect.client.metadata.Metadata
-import java.time.Instant
-import java.time.ZoneOffset
-
-/**
- * Captures the power generated by a user when doing an activity, measured in watts. For example,
- * using a power meter when exercising on a stationary bike. Each record represents an instantaneous
- * measurement of power generated.
- */
-@RestrictTo(RestrictTo.Scope.LIBRARY)
-public class Power(
- /** Power generated, in watts. Required field. Valid range: 0-100000. */
- public val power: Double,
- override val time: Instant,
- override val zoneOffset: ZoneOffset?,
- override val metadata: Metadata = Metadata.EMPTY,
-) : InstantaneousRecord {
- override fun equals(other: Any?): Boolean {
- if (this === other) return true
- if (other !is Power) return false
-
- if (power != other.power) return false
- if (time != other.time) return false
- if (zoneOffset != other.zoneOffset) return false
- if (metadata != other.metadata) return false
-
- return true
- }
-
- override fun hashCode(): Int {
- var result = 0
- result = 31 * result + power.hashCode()
- result = 31 * result + time.hashCode()
- result = 31 * result + (zoneOffset?.hashCode() ?: 0)
- result = 31 * result + metadata.hashCode()
- return result
- }
-}
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/PowerSeries.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/PowerSeries.kt
new file mode 100644
index 0000000..a3753d1
--- /dev/null
+++ b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/PowerSeries.kt
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2022 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.
+ */
+package androidx.health.connect.client.records
+
+import androidx.annotation.RestrictTo
+import androidx.health.connect.client.aggregate.AggregateMetric
+import androidx.health.connect.client.aggregate.AggregateMetric.AggregationType.AVERAGE
+import androidx.health.connect.client.aggregate.AggregateMetric.AggregationType.MAXIMUM
+import androidx.health.connect.client.aggregate.AggregateMetric.AggregationType.MINIMUM
+import androidx.health.connect.client.aggregate.AggregateMetric.Companion.doubleMetric
+import androidx.health.connect.client.metadata.Metadata
+import java.time.Instant
+import java.time.ZoneOffset
+
+/** Captures the power generated by the user. Each record represents a series of measurements. */
+@RestrictTo(RestrictTo.Scope.LIBRARY) // Will be made public after API reviews
+public class PowerSeries(
+ override val startTime: Instant,
+ override val startZoneOffset: ZoneOffset?,
+ override val endTime: Instant,
+ override val endZoneOffset: ZoneOffset?,
+ override val samples: List<Power>,
+ override val metadata: Metadata = Metadata.EMPTY,
+) : SeriesRecord<Power> {
+
+ /*
+ * Generated by the IDE: Code -> Generate -> "equals() and hashCode()".
+ */
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is PowerSeries) return false
+
+ if (startTime != other.startTime) return false
+ if (startZoneOffset != other.startZoneOffset) return false
+ if (endTime != other.endTime) return false
+ if (endZoneOffset != other.endZoneOffset) return false
+ if (samples != other.samples) return false
+ if (metadata != other.metadata) return false
+
+ return true
+ }
+
+ /*
+ * Generated by the IDE: Code -> Generate -> "equals() and hashCode()".
+ */
+ override fun hashCode(): Int {
+ var result = startTime.hashCode()
+ result = 31 * result + (startZoneOffset?.hashCode() ?: 0)
+ result = 31 * result + endTime.hashCode()
+ result = 31 * result + (endZoneOffset?.hashCode() ?: 0)
+ result = 31 * result + samples.hashCode()
+ result = 31 * result + metadata.hashCode()
+ return result
+ }
+
+ internal companion object {
+ private const val TYPE = "Power"
+ private const val POWER_FIELD = "power"
+
+ /**
+ * Metric identifier to retrieve average heart rate from
+ * [androidx.health.connect.client.aggregate.AggregationResult].
+ */
+ @JvmField
+ internal val WATTS_AVG: AggregateMetric<Double> = doubleMetric(TYPE, AVERAGE, POWER_FIELD)
+
+ /**
+ * Metric identifier to retrieve minimum heart rate from
+ * [androidx.health.connect.client.aggregate.AggregationResult].
+ */
+ @JvmField
+ internal val WATTS_MIN: AggregateMetric<Double> = doubleMetric(TYPE, MINIMUM, POWER_FIELD)
+
+ /**
+ * Metric identifier to retrieve maximum heart rate from
+ * [androidx.health.connect.client.aggregate.AggregationResult].
+ */
+ @JvmField
+ internal val WATTS_MAX: AggregateMetric<Double> = doubleMetric(TYPE, MAXIMUM, POWER_FIELD)
+ }
+}
+
+/**
+ * Represents a single measurement of power. For example, using a power meter when exercising on a
+ * stationary bike.
+ *
+ * @param time The point in time when the measurement was taken.
+ * @param watts Power generated, in watts. Valid range: 0-100000.
+ *
+ * @see PowerSeries
+ */
+@RestrictTo(RestrictTo.Scope.LIBRARY) // Will be made public after API reviews
+public class Power(
+ val time: Instant,
+ val watts: Double,
+) {
+
+ /*
+ * Generated by the IDE: Code -> Generate -> "equals() and hashCode()".
+ */
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is Power) return false
+
+ if (time != other.time) return false
+ if (watts != other.watts) return false
+
+ return true
+ }
+
+ /*
+ * Generated by the IDE: Code -> Generate -> "equals() and hashCode()".
+ */
+ override fun hashCode(): Int {
+ var result = time.hashCode()
+ result = 31 * result + watts.hashCode()
+ return result
+ }
+}
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/RepetitionActivityTypes.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/RepetitionActivityTypes.kt
index 0e75226..c537f34c 100644
--- a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/RepetitionActivityTypes.kt
+++ b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/RepetitionActivityTypes.kt
@@ -90,7 +90,8 @@
RepetitionActivityTypes.SHOULDER_PRESS,
RepetitionActivityTypes.SINGLE_ARM_TRICEPS_EXTENSION,
RepetitionActivityTypes.SIT_UP,
- RepetitionActivityTypes.SQUAT]
+ RepetitionActivityTypes.SQUAT
+ ]
)
@RestrictTo(RestrictTo.Scope.LIBRARY)
annotation class RepetitionActivityType
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/SeriesRecord.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/SeriesRecord.kt
index 9fb8ee6..b98d9e5 100644
--- a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/SeriesRecord.kt
+++ b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/SeriesRecord.kt
@@ -17,6 +17,7 @@
/** A record that contains a series of measurements. */
// Consider exposing this one and other similar interfaces!
+@PublishedApi
internal interface SeriesRecord<out T : Any> : IntervalRecord {
val samples: List<T>
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/Speed.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/Speed.kt
deleted file mode 100644
index 6e5e345..0000000
--- a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/Speed.kt
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2022 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.
- */
-package androidx.health.connect.client.records
-
-import androidx.annotation.RestrictTo
-import androidx.health.connect.client.aggregate.AggregateMetric
-import androidx.health.connect.client.metadata.Metadata
-import java.time.Instant
-import java.time.ZoneOffset
-
-/**
- * Captures the user's speed in meters per second. The value represents the scalar magnitude of the
- * speed, so negative values should not occur. Each record represents a single instantaneous
- * measurement.
- */
-@RestrictTo(RestrictTo.Scope.LIBRARY)
-public class Speed(
- /** Speed in meters per second. Required field. Valid range: 0-1000000. */
- public val speedMetersPerSecond: Double,
- override val time: Instant,
- override val zoneOffset: ZoneOffset?,
- override val metadata: Metadata = Metadata.EMPTY,
-) : InstantaneousRecord {
- override fun equals(other: Any?): Boolean {
- if (this === other) return true
- if (other !is Speed) return false
-
- if (speedMetersPerSecond != other.speedMetersPerSecond) return false
- if (time != other.time) return false
- if (zoneOffset != other.zoneOffset) return false
- if (metadata != other.metadata) return false
-
- return true
- }
-
- override fun hashCode(): Int {
- var result = 0
- result = 31 * result + speedMetersPerSecond.hashCode()
- result = 31 * result + time.hashCode()
- result = 31 * result + (zoneOffset?.hashCode() ?: 0)
- result = 31 * result + metadata.hashCode()
- return result
- }
-
- companion object {
- private const val SPEED_NAME = "Speed"
- private const val SPEED_FIELD_NAME = "speed"
-
- /**
- * Metric identifier to retrieve average speed from
- * [androidx.health.connect.client.aggregate.AggregationResult].
- */
- @JvmField
- val AVG: AggregateMetric<Double> =
- AggregateMetric.doubleMetric(
- SPEED_NAME,
- AggregateMetric.AggregationType.AVERAGE,
- SPEED_FIELD_NAME
- )
-
- /**
- * Metric identifier to retrieve minimum speed from
- * [androidx.health.connect.client.aggregate.AggregationResult].
- */
- @JvmField
- val MIN: AggregateMetric<Double> =
- AggregateMetric.doubleMetric(
- SPEED_NAME,
- AggregateMetric.AggregationType.MINIMUM,
- SPEED_FIELD_NAME
- )
-
- /**
- * Metric identifier to retrieve maximum speed from
- * [androidx.health.connect.client.aggregate.AggregationResult].
- */
- @JvmField
- val MAX: AggregateMetric<Double> =
- AggregateMetric.doubleMetric(
- SPEED_NAME,
- AggregateMetric.AggregationType.MAXIMUM,
- SPEED_FIELD_NAME
- )
- }
-}
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/SpeedSeries.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/SpeedSeries.kt
new file mode 100644
index 0000000..fd657d2
--- /dev/null
+++ b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/SpeedSeries.kt
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2022 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.
+ */
+package androidx.health.connect.client.records
+
+import androidx.annotation.RestrictTo
+import androidx.health.connect.client.aggregate.AggregateMetric
+import androidx.health.connect.client.metadata.Metadata
+import java.time.Instant
+import java.time.ZoneOffset
+
+/** Captures the user's speed. Each record represents a series of measurements. */
+@RestrictTo(RestrictTo.Scope.LIBRARY) // Will be made public after API reviews
+public class SpeedSeries(
+ override val startTime: Instant,
+ override val startZoneOffset: ZoneOffset?,
+ override val endTime: Instant,
+ override val endZoneOffset: ZoneOffset?,
+ override val samples: List<Speed>,
+ override val metadata: Metadata = Metadata.EMPTY,
+) : SeriesRecord<Speed> {
+
+ /*
+ * Generated by the IDE: Code -> Generate -> "equals() and hashCode()".
+ */
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is SpeedSeries) return false
+
+ if (startTime != other.startTime) return false
+ if (startZoneOffset != other.startZoneOffset) return false
+ if (endTime != other.endTime) return false
+ if (endZoneOffset != other.endZoneOffset) return false
+ if (samples != other.samples) return false
+ if (metadata != other.metadata) return false
+
+ return true
+ }
+
+ /*
+ * Generated by the IDE: Code -> Generate -> "equals() and hashCode()".
+ */
+ override fun hashCode(): Int {
+ var result = startTime.hashCode()
+ result = 31 * result + (startZoneOffset?.hashCode() ?: 0)
+ result = 31 * result + endTime.hashCode()
+ result = 31 * result + (endZoneOffset?.hashCode() ?: 0)
+ result = 31 * result + samples.hashCode()
+ result = 31 * result + metadata.hashCode()
+ return result
+ }
+
+ internal companion object {
+ private const val SPEED_TYPE_NAME = "Speed"
+ private const val SPEED_FIELD_NAME = "speed"
+
+ /**
+ * Metric identifier to retrieve average speed from
+ * [androidx.health.connect.client.aggregate.AggregationResult].
+ */
+ @JvmField
+ internal val AVG: AggregateMetric<Double> =
+ AggregateMetric.doubleMetric(
+ SPEED_TYPE_NAME,
+ AggregateMetric.AggregationType.AVERAGE,
+ SPEED_FIELD_NAME
+ )
+
+ /**
+ * Metric identifier to retrieve minimum speed from
+ * [androidx.health.connect.client.aggregate.AggregationResult].
+ */
+ @JvmField
+ internal val MIN: AggregateMetric<Double> =
+ AggregateMetric.doubleMetric(
+ SPEED_TYPE_NAME,
+ AggregateMetric.AggregationType.MINIMUM,
+ SPEED_FIELD_NAME
+ )
+
+ /**
+ * Metric identifier to retrieve maximum speed from
+ * [androidx.health.connect.client.aggregate.AggregationResult].
+ */
+ @JvmField
+ internal val MAX: AggregateMetric<Double> =
+ AggregateMetric.doubleMetric(
+ SPEED_TYPE_NAME,
+ AggregateMetric.AggregationType.MAXIMUM,
+ SPEED_FIELD_NAME
+ )
+ }
+}
+
+/**
+ * Represents a single measurement of the speed, a scalar magnitude.
+ *
+ * @param time The point in time when the measurement was taken.
+ * @param metersPerSecond Speed in meters per second. Valid range: 0-1000000.
+ *
+ * @see SpeedSeries
+ */
+@RestrictTo(RestrictTo.Scope.LIBRARY) // Will be made public after API reviews
+public class Speed(
+ val time: Instant,
+ val metersPerSecond: Double,
+) {
+
+ /*
+ * Generated by the IDE: Code -> Generate -> "equals() and hashCode()".
+ */
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is Speed) return false
+
+ if (time != other.time) return false
+ if (metersPerSecond != other.metersPerSecond) return false
+
+ return true
+ }
+
+ /*
+ * Generated by the IDE: Code -> Generate -> "equals() and hashCode()".
+ */
+ override fun hashCode(): Int {
+ var result = time.hashCode()
+ result = 31 * result + metersPerSecond.hashCode()
+ return result
+ }
+}
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/StepsCadence.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/StepsCadence.kt
deleted file mode 100644
index 894619e..0000000
--- a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/StepsCadence.kt
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2022 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.
- */
-package androidx.health.connect.client.records
-
-import androidx.annotation.RestrictTo
-import androidx.health.connect.client.metadata.Metadata
-import java.time.Instant
-import java.time.ZoneOffset
-
-/**
- * Captures the step cadence, measured in steps per minute. Each record represents an instantaneous
- * measurement of the cadence in steps per minute.
- */
-@RestrictTo(RestrictTo.Scope.LIBRARY)
-public class StepsCadence(
- /** Rate in steps count per minute. Required field. Valid range: 0-10000. */
- public val rate: Double,
- override val time: Instant,
- override val zoneOffset: ZoneOffset?,
- override val metadata: Metadata = Metadata.EMPTY,
-) : InstantaneousRecord {
- override fun equals(other: Any?): Boolean {
- if (this === other) return true
- if (other !is StepsCadence) return false
-
- if (rate != other.rate) return false
- if (time != other.time) return false
- if (zoneOffset != other.zoneOffset) return false
- if (metadata != other.metadata) return false
-
- return true
- }
-
- override fun hashCode(): Int {
- var result = 0
- result = 31 * result + rate.hashCode()
- result = 31 * result + time.hashCode()
- result = 31 * result + (zoneOffset?.hashCode() ?: 0)
- result = 31 * result + metadata.hashCode()
- return result
- }
-}
diff --git a/health/health-connect-client/src/main/java/androidx/health/connect/client/records/StepsCadenceSeries.kt b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/StepsCadenceSeries.kt
new file mode 100644
index 0000000..2f078c5
--- /dev/null
+++ b/health/health-connect-client/src/main/java/androidx/health/connect/client/records/StepsCadenceSeries.kt
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2022 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.
+ */
+package androidx.health.connect.client.records
+
+import androidx.annotation.RestrictTo
+import androidx.health.connect.client.aggregate.AggregateMetric
+import androidx.health.connect.client.aggregate.AggregateMetric.AggregationType.AVERAGE
+import androidx.health.connect.client.aggregate.AggregateMetric.AggregationType.MAXIMUM
+import androidx.health.connect.client.aggregate.AggregateMetric.AggregationType.MINIMUM
+import androidx.health.connect.client.aggregate.AggregateMetric.Companion.doubleMetric
+import androidx.health.connect.client.metadata.Metadata
+import java.time.Instant
+import java.time.ZoneOffset
+
+/** Captures the user's steps cadence. Each record represents a series of measurements. */
+@RestrictTo(RestrictTo.Scope.LIBRARY) // Will be made public after API reviews
+class StepsCadenceSeries(
+ override val startTime: Instant,
+ override val startZoneOffset: ZoneOffset?,
+ override val endTime: Instant,
+ override val endZoneOffset: ZoneOffset?,
+ override val samples: List<StepsCadence>,
+ override val metadata: Metadata = Metadata.EMPTY,
+) : SeriesRecord<StepsCadence> {
+
+ /*
+ * Generated by the IDE: Code -> Generate -> "equals() and hashCode()".
+ */
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is StepsCadenceSeries) return false
+
+ if (startTime != other.startTime) return false
+ if (startZoneOffset != other.startZoneOffset) return false
+ if (endTime != other.endTime) return false
+ if (endZoneOffset != other.endZoneOffset) return false
+ if (samples != other.samples) return false
+ if (metadata != other.metadata) return false
+
+ return true
+ }
+
+ /*
+ * Generated by the IDE: Code -> Generate -> "equals() and hashCode()".
+ */
+ override fun hashCode(): Int {
+ var result = startTime.hashCode()
+ result = 31 * result + (startZoneOffset?.hashCode() ?: 0)
+ result = 31 * result + endTime.hashCode()
+ result = 31 * result + (endZoneOffset?.hashCode() ?: 0)
+ result = 31 * result + samples.hashCode()
+ result = 31 * result + metadata.hashCode()
+ return result
+ }
+
+ internal companion object {
+ private const val TYPE = "StepsCadence"
+ private const val RATE_FIELD = "rate"
+
+ /**
+ * Metric identifier to retrieve average speed from
+ * [androidx.health.connect.client.aggregate.AggregationResult].
+ */
+ @JvmField
+ internal val RATE_AVG: AggregateMetric<Double> = doubleMetric(TYPE, AVERAGE, RATE_FIELD)
+
+ /**
+ * Metric identifier to retrieve minimum speed from
+ * [androidx.health.connect.client.aggregate.AggregationResult].
+ */
+ @JvmField
+ internal val RATE_MIN: AggregateMetric<Double> = doubleMetric(TYPE, MINIMUM, RATE_FIELD)
+
+ /**
+ * Metric identifier to retrieve maximum speed from
+ * [androidx.health.connect.client.aggregate.AggregationResult].
+ */
+ @JvmField
+ internal val RATE_MAX: AggregateMetric<Double> = doubleMetric(TYPE, MAXIMUM, RATE_FIELD)
+ }
+}
+
+/**
+ * Represents a single measurement of the steps cadence.
+ *
+ * @param time The point in time when the measurement was taken.
+ * @param rate Rate in steps count per minute. Valid range: 0-10000.
+ */
+@RestrictTo(RestrictTo.Scope.LIBRARY) // Will be made public after API reviews
+class StepsCadence(
+ val time: Instant,
+ val rate: Double,
+) {
+
+ /*
+ * Generated by the IDE: Code -> Generate -> "equals() and hashCode()".
+ */
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is StepsCadence) return false
+
+ if (time != other.time) return false
+ if (rate != other.rate) return false
+
+ return true
+ }
+
+ /*
+ * Generated by the IDE: Code -> Generate -> "equals() and hashCode()".
+ */
+ override fun hashCode(): Int {
+ var result = time.hashCode()
+ result = 31 * result + rate.hashCode()
+ return result
+ }
+}
diff --git a/health/health-connect-client/src/main/java/androidx/health/platform/client/error/ErrorStatus.kt b/health/health-connect-client/src/main/java/androidx/health/platform/client/error/ErrorStatus.kt
index e70fffa..658ad48c 100644
--- a/health/health-connect-client/src/main/java/androidx/health/platform/client/error/ErrorStatus.kt
+++ b/health/health-connect-client/src/main/java/androidx/health/platform/client/error/ErrorStatus.kt
@@ -45,8 +45,7 @@
@ErrorCode
fun safeErrorCode(errorCode: Int): Int {
return ErrorCode::class
- .java
- .declaredFields
+ .java.declaredFields
.filter { it.type.isAssignableFrom(Int::class.java) }
.map { field: Field ->
try {
diff --git a/health/health-connect-client/src/test/java/androidx/health/connect/client/impl/converters/records/AllRecordsConverterTest.kt b/health/health-connect-client/src/test/java/androidx/health/connect/client/impl/converters/records/AllRecordsConverterTest.kt
index a487acf..c4aa309 100644
--- a/health/health-connect-client/src/test/java/androidx/health/connect/client/impl/converters/records/AllRecordsConverterTest.kt
+++ b/health/health-connect-client/src/test/java/androidx/health/connect/client/impl/converters/records/AllRecordsConverterTest.kt
@@ -39,6 +39,7 @@
import androidx.health.connect.client.records.CervicalMucusTextures
import androidx.health.connect.client.records.CervicalPosition
import androidx.health.connect.client.records.CyclingPedalingCadence
+import androidx.health.connect.client.records.CyclingPedalingCadenceSeries
import androidx.health.connect.client.records.Distance
import androidx.health.connect.client.records.ElevationGained
import androidx.health.connect.client.records.FloorsClimbed
@@ -64,6 +65,7 @@
import androidx.health.connect.client.records.OvulationTestResults
import androidx.health.connect.client.records.OxygenSaturation
import androidx.health.connect.client.records.Power
+import androidx.health.connect.client.records.PowerSeries
import androidx.health.connect.client.records.RepetitionActivityTypes
import androidx.health.connect.client.records.Repetitions
import androidx.health.connect.client.records.RespiratoryRate
@@ -73,8 +75,10 @@
import androidx.health.connect.client.records.SleepStage
import androidx.health.connect.client.records.SleepStageTypes
import androidx.health.connect.client.records.Speed
+import androidx.health.connect.client.records.SpeedSeries
import androidx.health.connect.client.records.Steps
import androidx.health.connect.client.records.StepsCadence
+import androidx.health.connect.client.records.StepsCadenceSeries
import androidx.health.connect.client.records.SwimmingStrokes
import androidx.health.connect.client.records.SwimmingTypes
import androidx.health.connect.client.records.TotalCaloriesBurned
@@ -103,7 +107,7 @@
uid = "uid",
clientId = "clientId",
clientVersion = 10,
- device = Device(identifier = "identifier", manufacturer = "manufacturer"),
+ device = Device(manufacturer = "manufacturer"),
lastModifiedTime = END_TIME,
dataOrigin = DataOrigin(packageName = "appId")
)
@@ -263,13 +267,25 @@
}
@Test
- fun testCyclingPedalingCadence() {
+ fun testCyclingPedalingCadenceSeries() {
val data =
- CyclingPedalingCadence(
- revolutionsPerMinute = 1.0,
- time = START_TIME,
- zoneOffset = END_ZONE_OFFSET,
- metadata = TEST_METADATA
+ CyclingPedalingCadenceSeries(
+ startTime = START_TIME,
+ startZoneOffset = START_ZONE_OFFSET,
+ endTime = END_TIME,
+ endZoneOffset = END_ZONE_OFFSET,
+ samples =
+ listOf(
+ CyclingPedalingCadence(
+ time = START_TIME,
+ revolutionsPerMinute = 1.0,
+ ),
+ CyclingPedalingCadence(
+ time = START_TIME,
+ revolutionsPerMinute = 2.0,
+ ),
+ ),
+ metadata = TEST_METADATA,
)
assertThat(toRecord(data.toProto())).isEqualTo(data)
@@ -500,13 +516,25 @@
}
@Test
- fun testPower() {
+ fun testPowerSeries() {
val data =
- Power(
- power = 1.0,
- time = START_TIME,
- zoneOffset = END_ZONE_OFFSET,
- metadata = TEST_METADATA
+ PowerSeries(
+ startTime = START_TIME,
+ startZoneOffset = START_ZONE_OFFSET,
+ endTime = END_TIME,
+ endZoneOffset = END_ZONE_OFFSET,
+ samples =
+ listOf(
+ Power(
+ time = START_TIME,
+ watts = 1.0,
+ ),
+ Power(
+ time = START_TIME,
+ watts = 2.0,
+ ),
+ ),
+ metadata = TEST_METADATA,
)
assertThat(toRecord(data.toProto())).isEqualTo(data)
@@ -552,26 +580,50 @@
}
@Test
- fun testSpeed() {
+ fun testSpeedSeries() {
val data =
- Speed(
- speedMetersPerSecond = 1.0,
- time = START_TIME,
- zoneOffset = END_ZONE_OFFSET,
- metadata = TEST_METADATA
+ SpeedSeries(
+ startTime = START_TIME,
+ startZoneOffset = START_ZONE_OFFSET,
+ endTime = END_TIME,
+ endZoneOffset = END_ZONE_OFFSET,
+ samples =
+ listOf(
+ Speed(
+ time = START_TIME,
+ metersPerSecond = 1.0,
+ ),
+ Speed(
+ time = START_TIME,
+ metersPerSecond = 2.0,
+ ),
+ ),
+ metadata = TEST_METADATA,
)
assertThat(toRecord(data.toProto())).isEqualTo(data)
}
@Test
- fun testStepsCadence() {
+ fun testStepsCadenceSeries() {
val data =
- StepsCadence(
- rate = 1.0,
- time = START_TIME,
- zoneOffset = END_ZONE_OFFSET,
- metadata = TEST_METADATA
+ StepsCadenceSeries(
+ startTime = START_TIME,
+ startZoneOffset = START_ZONE_OFFSET,
+ endTime = END_TIME,
+ endZoneOffset = END_ZONE_OFFSET,
+ samples =
+ listOf(
+ StepsCadence(
+ time = START_TIME,
+ rate = 1.0,
+ ),
+ StepsCadence(
+ time = START_TIME,
+ rate = 2.0,
+ ),
+ ),
+ metadata = TEST_METADATA,
)
assertThat(toRecord(data.toProto())).isEqualTo(data)
diff --git a/health/health-connect-client/src/test/java/androidx/health/platform/client/impl/data/ProtoParcelableTest.kt b/health/health-connect-client/src/test/java/androidx/health/platform/client/impl/data/ProtoParcelableTest.kt
index d175487..7388283 100644
--- a/health/health-connect-client/src/test/java/androidx/health/platform/client/impl/data/ProtoParcelableTest.kt
+++ b/health/health-connect-client/src/test/java/androidx/health/platform/client/impl/data/ProtoParcelableTest.kt
@@ -59,8 +59,8 @@
@Suppress("UNCHECKED_CAST") // Safe to use in test
val creator =
- protoParcelable.javaClass.getField("CREATOR").get(protoParcelable) as
- Parcelable.Creator<TestProtoParcelable>
+ protoParcelable.javaClass.getField("CREATOR").get(protoParcelable)
+ as Parcelable.Creator<TestProtoParcelable>
return creator.createFromParcel(parcel)
}
diff --git a/health/health-services-client/api/api_lint.ignore b/health/health-services-client/api/api_lint.ignore
index fd0070d..84cda71 100644
--- a/health/health-services-client/api/api_lint.ignore
+++ b/health/health-services-client/api/api_lint.ignore
@@ -1,61 +1,23 @@
// Baseline format: 1.0
-AsyncSuffixFuture: androidx.health.services.client.ExerciseClient#addGoalToActiveExercise(androidx.health.services.client.data.ExerciseGoal):
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.ExerciseClient#clearUpdateListener(androidx.health.services.client.ExerciseUpdateListener):
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.ExerciseClient#endExercise():
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.ExerciseClient#flushExercise():
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
AsyncSuffixFuture: androidx.health.services.client.ExerciseClient#getCapabilities():
Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.ExerciseClient#getCurrentExerciseInfo():
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.ExerciseClient#markLap():
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.ExerciseClient#overrideAutoPauseAndResumeForActiveExercise(boolean):
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.ExerciseClient#pauseExercise():
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.ExerciseClient#prepareExercise(androidx.health.services.client.data.WarmUpConfig):
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.ExerciseClient#removeGoalFromActiveExercise(androidx.health.services.client.data.ExerciseGoal):
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.ExerciseClient#resumeExercise():
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.ExerciseClient#setUpdateListener(androidx.health.services.client.ExerciseUpdateListener):
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.ExerciseClient#setUpdateListener(androidx.health.services.client.ExerciseUpdateListener, java.util.concurrent.Executor):
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.ExerciseClient#startExercise(androidx.health.services.client.data.ExerciseConfig):
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
AsyncSuffixFuture: androidx.health.services.client.MeasureClient#getCapabilities():
Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.MeasureClient#registerCallback(androidx.health.services.client.data.DataType, androidx.health.services.client.MeasureCallback):
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.MeasureClient#registerCallback(androidx.health.services.client.data.DataType, androidx.health.services.client.MeasureCallback, java.util.concurrent.Executor):
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.MeasureClient#unregisterCallback(androidx.health.services.client.data.DataType, androidx.health.services.client.MeasureCallback):
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.PassiveMonitoringClient#flush():
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
AsyncSuffixFuture: androidx.health.services.client.PassiveMonitoringClient#getCapabilities():
Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.PassiveMonitoringClient#registerDataCallback(androidx.health.services.client.data.PassiveMonitoringConfig):
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.PassiveMonitoringClient#registerDataCallback(androidx.health.services.client.data.PassiveMonitoringConfig, androidx.health.services.client.PassiveMonitoringCallback):
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.PassiveMonitoringClient#registerPassiveGoalCallback(androidx.health.services.client.data.PassiveGoal, android.content.ComponentName):
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.PassiveMonitoringClient#unregisterDataCallback():
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-AsyncSuffixFuture: androidx.health.services.client.PassiveMonitoringClient#unregisterPassiveGoalCallback(androidx.health.services.client.data.PassiveGoal):
- Methods returning com.google.common.util.concurrent.ListenableFuture should have a suffix *Async to reserve unmodified name for a suspend function
-ExecutorRegistration: androidx.health.services.client.ExerciseClient#clearUpdateListener(androidx.health.services.client.ExerciseUpdateListener):
- Registration methods should have overload that accepts delivery Executor: `clearUpdateListener`
+ExecutorRegistration: androidx.health.services.client.ExerciseClient#clearUpdateCallbackAsync(androidx.health.services.client.ExerciseUpdateCallback):
+ Registration methods should have overload that accepts delivery Executor: `clearUpdateCallbackAsync`
+ExecutorRegistration: androidx.health.services.client.PassiveMonitoringClient#registerDataCallbackAsync(androidx.health.services.client.data.PassiveMonitoringConfig, androidx.health.services.client.PassiveMonitoringCallback):
+ Registration methods should have overload that accepts delivery Executor: `registerDataCallbackAsync`
InvalidNullabilityOverride: androidx.health.services.client.data.ProtoParcelable#writeToParcel(android.os.Parcel, int) parameter #0:
Invalid nullability on parameter `dest` in method `writeToParcel`. Parameters of overrides cannot be NonNull if the super parameter is unannotated.
+
+
+PairedRegistration: androidx.health.services.client.MeasureClient#registerCallback(androidx.health.services.client.data.DataType, androidx.health.services.client.MeasureCallback):
+ Found registerCallback but not unregisterCallback in androidx.health.services.client.MeasureClient
+PairedRegistration: androidx.health.services.client.MeasureClient#registerCallback(androidx.health.services.client.data.DataType, java.util.concurrent.Executor, androidx.health.services.client.MeasureCallback):
+ Found registerCallback but not unregisterCallback in androidx.health.services.client.MeasureClient
diff --git a/health/health-services-client/api/current.txt b/health/health-services-client/api/current.txt
index edfe8a1..7c59c28 100644
--- a/health/health-services-client/api/current.txt
+++ b/health/health-services-client/api/current.txt
@@ -2,29 +2,30 @@
package androidx.health.services.client {
public interface ExerciseClient {
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> addGoalToActiveExercise(androidx.health.services.client.data.ExerciseGoal exerciseGoal);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> clearUpdateListener(androidx.health.services.client.ExerciseUpdateListener listener);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> endExercise();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> flushExercise();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> addGoalToActiveExerciseAsync(androidx.health.services.client.data.ExerciseGoal exerciseGoal);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> clearUpdateCallbackAsync(androidx.health.services.client.ExerciseUpdateCallback callback);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> endExerciseAsync();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> flushExerciseAsync();
method public com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.ExerciseCapabilities> getCapabilities();
- method public com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.ExerciseInfo> getCurrentExerciseInfo();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> markLap();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> overrideAutoPauseAndResumeForActiveExercise(boolean enabled);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> pauseExercise();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> prepareExercise(androidx.health.services.client.data.WarmUpConfig configuration);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> removeGoalFromActiveExercise(androidx.health.services.client.data.ExerciseGoal exerciseGoal);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> resumeExercise();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> setUpdateListener(androidx.health.services.client.ExerciseUpdateListener listener);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> setUpdateListener(androidx.health.services.client.ExerciseUpdateListener listener, java.util.concurrent.Executor executor);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> startExercise(androidx.health.services.client.data.ExerciseConfig configuration);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.ExerciseInfo> getCurrentExerciseInfoAsync();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> markLapAsync();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> overrideAutoPauseAndResumeForActiveExerciseAsync(boolean enabled);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> pauseExerciseAsync();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> prepareExerciseAsync(androidx.health.services.client.data.WarmUpConfig configuration);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> removeGoalFromActiveExerciseAsync(androidx.health.services.client.data.ExerciseGoal exerciseGoal);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> resumeExerciseAsync();
+ method public void setUpdateCallback(androidx.health.services.client.ExerciseUpdateCallback callback);
+ method public void setUpdateCallback(java.util.concurrent.Executor executor, androidx.health.services.client.ExerciseUpdateCallback callback);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> startExerciseAsync(androidx.health.services.client.data.ExerciseConfig configuration);
property public abstract com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.ExerciseCapabilities> capabilities;
- property public abstract com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.ExerciseInfo> currentExerciseInfo;
}
- public interface ExerciseUpdateListener {
+ public interface ExerciseUpdateCallback {
method public void onAvailabilityChanged(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.data.Availability availability);
- method public void onExerciseUpdate(androidx.health.services.client.data.ExerciseUpdate update);
- method public void onLapSummary(androidx.health.services.client.data.ExerciseLapSummary lapSummary);
+ method public void onExerciseUpdateReceived(androidx.health.services.client.data.ExerciseUpdate update);
+ method public void onLapSummaryReceived(androidx.health.services.client.data.ExerciseLapSummary lapSummary);
+ method public void onRegistered();
+ method public void onRegistrationFailed(Throwable throwable);
}
public final class HealthServices {
@@ -43,14 +44,16 @@
public interface MeasureCallback {
method public void onAvailabilityChanged(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.data.Availability availability);
- method public void onData(java.util.List<androidx.health.services.client.data.DataPoint> data);
+ method public void onDataReceived(java.util.List<androidx.health.services.client.data.DataPoint> data);
+ method public default void onRegistered();
+ method public default void onRegistrationFailed(Throwable throwable);
}
public interface MeasureClient {
method public com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.MeasureCapabilities> getCapabilities();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerCallback(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.MeasureCallback callback);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerCallback(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.MeasureCallback callback, java.util.concurrent.Executor executor);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterCallback(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.MeasureCallback callback);
+ method public void registerCallback(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.MeasureCallback callback);
+ method public void registerCallback(androidx.health.services.client.data.DataType dataType, java.util.concurrent.Executor executor, androidx.health.services.client.MeasureCallback callback);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterCallbackAsync(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.MeasureCallback callback);
property public abstract com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.MeasureCapabilities> capabilities;
}
@@ -59,13 +62,13 @@
}
public interface PassiveMonitoringClient {
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> flush();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> flushAsync();
method public com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.PassiveMonitoringCapabilities> getCapabilities();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerDataCallback(androidx.health.services.client.data.PassiveMonitoringConfig configuration);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerDataCallback(androidx.health.services.client.data.PassiveMonitoringConfig configuration, androidx.health.services.client.PassiveMonitoringCallback callback);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerPassiveGoalCallback(androidx.health.services.client.data.PassiveGoal passiveGoal, android.content.ComponentName componentName);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterDataCallback();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterPassiveGoalCallback(androidx.health.services.client.data.PassiveGoal passiveGoal);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerDataCallbackAsync(androidx.health.services.client.data.PassiveMonitoringConfig configuration);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerDataCallbackAsync(androidx.health.services.client.data.PassiveMonitoringConfig configuration, androidx.health.services.client.PassiveMonitoringCallback callback);
+ method public <T extends android.content.BroadcastReceiver> com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerPassiveGoalCallbackAsync(androidx.health.services.client.data.PassiveGoal passiveGoal, Class<T> broadcastReceiver);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterDataCallbackAsync();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterPassiveGoalCallbackAsync(androidx.health.services.client.data.PassiveGoal passiveGoal);
property public abstract com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.PassiveMonitoringCapabilities> capabilities;
}
@@ -90,12 +93,12 @@
}
@Keep public final class AggregateDataPoints {
- method public static androidx.health.services.client.data.StatisticalDataPoint aggregateAbsoluteElevation(double minAbsElevation, double maxAbsElevation, double avgAbsElevation, java.time.Instant startTime, java.time.Instant endTime);
+ method public static androidx.health.services.client.data.StatisticalDataPoint aggregateAbsoluteElevation(double minAbsElevationMeters, double maxAbsElevationMeters, double avgAbsElevationMeters, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.AggregateDataPoint aggregateCalories(double kcalories, java.time.Instant startTime, java.time.Instant endTime);
- method public static androidx.health.services.client.data.AggregateDataPoint aggregateDistance(double distance, java.time.Instant startTime, java.time.Instant endTime);
+ method public static androidx.health.services.client.data.AggregateDataPoint aggregateDistance(double meters, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.AggregateDataPoint aggregateElevationGain(double gainMeters, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.StatisticalDataPoint aggregateHeartRate(double minBpm, double maxBpm, double avgBpm, java.time.Instant startTime, java.time.Instant endTime);
- method public static androidx.health.services.client.data.AggregateDataPoint aggregatePace(double minMillisPerKm, double maxMillisPerKm, double avgMillisPerKm, java.time.Instant startTime, java.time.Instant endTime);
+ method public static androidx.health.services.client.data.AggregateDataPoint aggregatePace(java.time.Duration minMillisPerKm, java.time.Duration maxMillisPerKm, java.time.Duration avgMillisPerKm, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.StatisticalDataPoint aggregateSpeed(double minMetersPerSecond, double maxMetersPerSecond, double avgMetersPerSecond, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.AggregateDataPoint aggregateSteps(long steps, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.AggregateDataPoint aggregateSwimmingStrokes(long swimmingStrokes, java.time.Instant startTime, java.time.Instant endTime);
@@ -111,19 +114,20 @@
public static final class Availability.Companion {
}
- public enum ComparisonType {
- method public static final androidx.health.services.client.data.ComparisonType? fromId(int id);
- method public final int getId();
+ public final class ComparisonType {
+ method public int getId();
+ method public String getName();
property public final int id;
- enum_constant public static final androidx.health.services.client.data.ComparisonType GREATER_THAN;
- enum_constant public static final androidx.health.services.client.data.ComparisonType GREATER_THAN_OR_EQUAL;
- enum_constant public static final androidx.health.services.client.data.ComparisonType LESS_THAN;
- enum_constant public static final androidx.health.services.client.data.ComparisonType LESS_THAN_OR_EQUAL;
+ property public final String name;
field public static final androidx.health.services.client.data.ComparisonType.Companion Companion;
+ field public static final androidx.health.services.client.data.ComparisonType GREATER_THAN;
+ field public static final androidx.health.services.client.data.ComparisonType GREATER_THAN_OR_EQUAL;
+ field public static final androidx.health.services.client.data.ComparisonType LESS_THAN;
+ field public static final androidx.health.services.client.data.ComparisonType LESS_THAN_OR_EQUAL;
+ field public static final androidx.health.services.client.data.ComparisonType UNKNOWN;
}
public static final class ComparisonType.Companion {
- method public androidx.health.services.client.data.ComparisonType? fromId(int id);
}
public final class CumulativeDataPoint extends androidx.health.services.client.data.AggregateDataPoint {
@@ -189,24 +193,22 @@
method public static androidx.health.services.client.data.DataPoint calories(double kcalories, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot, optional android.os.Bundle? metadata);
method public static androidx.health.services.client.data.DataPoint calories(double kcalories, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method public static androidx.health.services.client.data.DataPoint dailyCalories(double calories, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
- method public static androidx.health.services.client.data.DataPoint dailyDistance(double distance, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
+ method public static androidx.health.services.client.data.DataPoint dailyDistance(double meters, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method public static androidx.health.services.client.data.DataPoint dailyFloors(double floors, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method public static androidx.health.services.client.data.DataPoint dailySteps(long steps, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method public static androidx.health.services.client.data.DataPoint distance(double meters, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot, optional android.os.Bundle? metadata);
method public static androidx.health.services.client.data.DataPoint distance(double meters, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
- method public static androidx.health.services.client.data.DataPoint elevationGain(double meters, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot, optional android.os.Bundle? metadata);
- method public static androidx.health.services.client.data.DataPoint elevationGain(double meters, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method public static androidx.health.services.client.data.DataPoint floors(double floors, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot, optional android.os.Bundle? metadata);
method public static androidx.health.services.client.data.DataPoint floors(double floors, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method @Keep public static java.util.List<androidx.health.services.client.data.DataPoint> getDataPoints(android.content.Intent intent);
method public static boolean getPermissionsGranted(android.content.Intent intent);
- method public static androidx.health.services.client.data.DataPoint heartRate(double bpm, java.time.Duration durationFromBoot, optional androidx.health.services.client.data.HrAccuracy? accuracy);
+ method public static androidx.health.services.client.data.DataPoint heartRate(double bpm, java.time.Duration durationFromBoot, optional androidx.health.services.client.data.HeartRateAccuracy? accuracy);
method public static androidx.health.services.client.data.DataPoint heartRate(double bpm, java.time.Duration durationFromBoot);
method public static androidx.health.services.client.data.DataPoint location(double latitude, double longitude, optional double altitude, optional double bearing, java.time.Duration durationFromBoot, optional androidx.health.services.client.data.LocationAccuracy? accuracy);
method public static androidx.health.services.client.data.DataPoint location(double latitude, double longitude, optional double altitude, optional double bearing, java.time.Duration durationFromBoot);
method public static androidx.health.services.client.data.DataPoint location(double latitude, double longitude, optional double altitude, java.time.Duration durationFromBoot);
method public static androidx.health.services.client.data.DataPoint location(double latitude, double longitude, java.time.Duration durationFromBoot);
- method public static androidx.health.services.client.data.DataPoint pace(double millisPerKm, java.time.Duration durationFromBoot);
+ method public static androidx.health.services.client.data.DataPoint pace(java.time.Duration millisPerKm, java.time.Duration durationFromBoot);
method public static void putDataPoints(android.content.Intent intent, java.util.Collection<androidx.health.services.client.data.DataPoint> dataPoints);
method public static void putPermissionsGranted(android.content.Intent intent, boolean granted);
method public static androidx.health.services.client.data.DataPoint speed(double metersPerSecond, java.time.Duration durationFromBoot, optional android.os.Bundle? metadata);
@@ -243,6 +245,7 @@
field public static final androidx.health.services.client.data.DataType DECLINE_DURATION;
field public static final androidx.health.services.client.data.DataType DISTANCE;
field public static final androidx.health.services.client.data.DataType ELEVATION_GAIN;
+ field public static final androidx.health.services.client.data.DataType ELEVATION_LOSS;
field public static final androidx.health.services.client.data.DataType FLAT_GROUND_DISTANCE;
field public static final androidx.health.services.client.data.DataType FLAT_GROUND_DURATION;
field public static final androidx.health.services.client.data.DataType FLOORS;
@@ -269,20 +272,31 @@
public static final class DataType.Companion {
}
- public enum DataType.TimeType {
- enum_constant public static final androidx.health.services.client.data.DataType.TimeType INTERVAL;
- enum_constant public static final androidx.health.services.client.data.DataType.TimeType SAMPLE;
+ public static final class DataType.TimeType {
+ method public int getId();
+ method public String getName();
+ property public final int id;
+ property public final String name;
+ field public static final androidx.health.services.client.data.DataType.TimeType.Companion Companion;
+ field public static final androidx.health.services.client.data.DataType.TimeType INTERVAL;
+ field public static final androidx.health.services.client.data.DataType.TimeType SAMPLE;
}
- public enum DataTypeAvailability implements androidx.health.services.client.data.Availability {
- method public static final androidx.health.services.client.data.DataTypeAvailability? fromId(int id);
+ public static final class DataType.TimeType.Companion {
+ }
+
+ public final class DataTypeAvailability implements androidx.health.services.client.data.Availability {
+ method public static androidx.health.services.client.data.DataTypeAvailability? fromId(int id);
method public int getId();
+ method public String getName();
property public int id;
- enum_constant public static final androidx.health.services.client.data.DataTypeAvailability ACQUIRING;
- enum_constant public static final androidx.health.services.client.data.DataTypeAvailability AVAILABLE;
- enum_constant public static final androidx.health.services.client.data.DataTypeAvailability UNAVAILABLE;
- enum_constant public static final androidx.health.services.client.data.DataTypeAvailability UNKNOWN;
+ property public final String name;
+ field public static final androidx.health.services.client.data.DataTypeAvailability ACQUIRING;
+ field public static final androidx.health.services.client.data.DataTypeAvailability AVAILABLE;
field public static final androidx.health.services.client.data.DataTypeAvailability.Companion Companion;
+ field public static final androidx.health.services.client.data.DataTypeAvailability UNAVAILABLE;
+ field public static final androidx.health.services.client.data.DataTypeAvailability UNAVAILABLE_DEVICE_OFF_BODY;
+ field public static final androidx.health.services.client.data.DataTypeAvailability UNKNOWN;
}
public static final class DataTypeAvailability.Companion {
@@ -331,7 +345,7 @@
}
public final class ExerciseConfig extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.ExerciseConfig> {
- ctor protected ExerciseConfig(androidx.health.services.client.data.ExerciseType exerciseType, java.util.Set<androidx.health.services.client.data.DataType> dataTypes, java.util.Set<androidx.health.services.client.data.DataType> aggregateDataTypes, boolean shouldEnableAutoPauseAndResume, boolean shouldEnableGps, java.util.List<androidx.health.services.client.data.ExerciseGoal> exerciseGoals, android.os.Bundle exerciseParams);
+ ctor public ExerciseConfig(androidx.health.services.client.data.ExerciseType exerciseType, java.util.Set<androidx.health.services.client.data.DataType> dataTypes, java.util.Set<androidx.health.services.client.data.DataType> aggregateDataTypes, boolean isAutoPauseAndResumeEnabled, boolean isGpsEnabled, java.util.List<androidx.health.services.client.data.ExerciseGoal> exerciseGoals, android.os.Bundle exerciseParams);
method public static androidx.health.services.client.data.ExerciseConfig.Builder builder();
method public java.util.Set<androidx.health.services.client.data.DataType> getAggregateDataTypes();
method public java.util.Set<androidx.health.services.client.data.DataType> getDataTypes();
@@ -339,15 +353,15 @@
method public android.os.Bundle getExerciseParams();
method public androidx.health.services.client.data.ExerciseType getExerciseType();
method public androidx.health.services.client.proto.DataProto.ExerciseConfig getProto();
- method public boolean getShouldEnableAutoPauseAndResume();
- method public boolean getShouldEnableGps();
+ method public boolean isAutoPauseAndResumeEnabled();
+ method public boolean isGpsEnabled();
property public final java.util.Set<androidx.health.services.client.data.DataType> aggregateDataTypes;
property public final java.util.Set<androidx.health.services.client.data.DataType> dataTypes;
property public final java.util.List<androidx.health.services.client.data.ExerciseGoal> exerciseGoals;
property public final android.os.Bundle exerciseParams;
property public final androidx.health.services.client.data.ExerciseType exerciseType;
- property public final boolean shouldEnableAutoPauseAndResume;
- property public final boolean shouldEnableGps;
+ property public final boolean isAutoPauseAndResumeEnabled;
+ property public final boolean isGpsEnabled;
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.ExerciseConfig> CREATOR;
field public static final androidx.health.services.client.data.ExerciseConfig.Companion Companion;
}
@@ -360,8 +374,8 @@
method public androidx.health.services.client.data.ExerciseConfig.Builder setExerciseGoals(java.util.List<androidx.health.services.client.data.ExerciseGoal> exerciseGoals);
method public androidx.health.services.client.data.ExerciseConfig.Builder setExerciseParams(android.os.Bundle exerciseParams);
method public androidx.health.services.client.data.ExerciseConfig.Builder setExerciseType(androidx.health.services.client.data.ExerciseType exerciseType);
- method public androidx.health.services.client.data.ExerciseConfig.Builder setShouldEnableAutoPauseAndResume(boolean shouldEnableAutoPauseAndResume);
- method public androidx.health.services.client.data.ExerciseConfig.Builder setShouldEnableGps(boolean shouldEnableGps);
+ method public androidx.health.services.client.data.ExerciseConfig.Builder setIsAutoPauseAndResumeEnabled(boolean autoPauseAndResumeEnabled);
+ method public androidx.health.services.client.data.ExerciseConfig.Builder setIsGpsEnabled(boolean gpsEnabled);
}
public static final class ExerciseConfig.Companion {
@@ -389,13 +403,15 @@
method public androidx.health.services.client.data.ExerciseGoal createOneTimeGoal(androidx.health.services.client.data.DataTypeCondition condition);
}
- public enum ExerciseGoalType {
- method public static final androidx.health.services.client.data.ExerciseGoalType? fromId(int id);
- method public final int getId();
+ public final class ExerciseGoalType {
+ method public static androidx.health.services.client.data.ExerciseGoalType? fromId(int id);
+ method public int getId();
+ method public String getName();
property public final int id;
- enum_constant public static final androidx.health.services.client.data.ExerciseGoalType MILESTONE;
- enum_constant public static final androidx.health.services.client.data.ExerciseGoalType ONE_TIME_GOAL;
+ property public final String name;
field public static final androidx.health.services.client.data.ExerciseGoalType.Companion Companion;
+ field public static final androidx.health.services.client.data.ExerciseGoalType MILESTONE;
+ field public static final androidx.health.services.client.data.ExerciseGoalType ONE_TIME_GOAL;
}
public static final class ExerciseGoalType.Companion {
@@ -403,11 +419,11 @@
}
public final class ExerciseInfo extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.ExerciseInfo> {
- ctor public ExerciseInfo(androidx.health.services.client.data.ExerciseTrackedStatus exerciseTrackedStatus, androidx.health.services.client.data.ExerciseType exerciseType);
- method public androidx.health.services.client.data.ExerciseTrackedStatus getExerciseTrackedStatus();
+ ctor public ExerciseInfo(int exerciseTrackedStatus, androidx.health.services.client.data.ExerciseType exerciseType);
+ method public int getExerciseTrackedStatus();
method public androidx.health.services.client.data.ExerciseType getExerciseType();
method public androidx.health.services.client.proto.DataProto.ExerciseInfo getProto();
- property public final androidx.health.services.client.data.ExerciseTrackedStatus exerciseTrackedStatus;
+ property public final int exerciseTrackedStatus;
property public final androidx.health.services.client.data.ExerciseType exerciseType;
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.ExerciseInfo> CREATOR;
field public static final androidx.health.services.client.data.ExerciseInfo.Companion Companion;
@@ -436,145 +452,144 @@
public static final class ExerciseLapSummary.Companion {
}
- public enum ExerciseState {
- method public static final androidx.health.services.client.data.ExerciseState? fromId(int id);
- method public final int getId();
- method public final boolean isEnded();
- method public final boolean isEnding();
- method public final boolean isPaused();
- method public final boolean isResuming();
+ public final class ExerciseState {
+ method public static androidx.health.services.client.data.ExerciseState? fromId(int id);
+ method public int getId();
+ method public String getName();
+ method public boolean isEnded();
+ method public boolean isEnding();
+ method public boolean isPaused();
+ method public boolean isResuming();
property public final int id;
property public final boolean isEnded;
property public final boolean isEnding;
property public final boolean isPaused;
property public final boolean isResuming;
- enum_constant public static final androidx.health.services.client.data.ExerciseState ACTIVE;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_ENDED;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_ENDED_PERMISSION_LOST;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_ENDING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_ENDING_PERMISSION_LOST;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_PAUSED;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_PAUSING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_RESUMING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState PREPARING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState TERMINATED;
- enum_constant public static final androidx.health.services.client.data.ExerciseState TERMINATING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_ENDED;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_ENDING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_PAUSED;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_PAUSING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_RESUMING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_STARTING;
+ property public final String name;
+ field public static final androidx.health.services.client.data.ExerciseState ACTIVE;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_ENDED;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_ENDED_PERMISSION_LOST;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_ENDING;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_ENDING_PERMISSION_LOST;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_PAUSED;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_PAUSING;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_RESUMING;
field public static final androidx.health.services.client.data.ExerciseState.Companion Companion;
+ field public static final androidx.health.services.client.data.ExerciseState PREPARING;
+ field public static final androidx.health.services.client.data.ExerciseState TERMINATED;
+ field public static final androidx.health.services.client.data.ExerciseState TERMINATING;
+ field public static final androidx.health.services.client.data.ExerciseState USER_ENDED;
+ field public static final androidx.health.services.client.data.ExerciseState USER_ENDING;
+ field public static final androidx.health.services.client.data.ExerciseState USER_PAUSED;
+ field public static final androidx.health.services.client.data.ExerciseState USER_PAUSING;
+ field public static final androidx.health.services.client.data.ExerciseState USER_RESUMING;
+ field public static final androidx.health.services.client.data.ExerciseState USER_STARTING;
}
public static final class ExerciseState.Companion {
method public androidx.health.services.client.data.ExerciseState? fromId(int id);
}
- public enum ExerciseTrackedStatus {
- method public static final androidx.health.services.client.data.ExerciseTrackedStatus? fromId(int id);
- method public final int getId();
+ public final class ExerciseType {
+ method public static androidx.health.services.client.data.ExerciseType fromId(int id);
+ method public int getId();
+ method public String getName();
property public final int id;
- enum_constant public static final androidx.health.services.client.data.ExerciseTrackedStatus NO_EXERCISE_IN_PROGRESS;
- enum_constant public static final androidx.health.services.client.data.ExerciseTrackedStatus OTHER_APP_IN_PROGRESS;
- enum_constant public static final androidx.health.services.client.data.ExerciseTrackedStatus OWNED_EXERCISE_IN_PROGRESS;
- field public static final androidx.health.services.client.data.ExerciseTrackedStatus.Companion Companion;
- }
-
- public static final class ExerciseTrackedStatus.Companion {
- method public androidx.health.services.client.data.ExerciseTrackedStatus? fromId(int id);
- }
-
- public enum ExerciseType {
- method public static final androidx.health.services.client.data.ExerciseType fromId(int id);
- method public final int getId();
- property public final int id;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BACK_EXTENSION;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BADMINTON;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BARBELL_SHOULDER_PRESS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BASEBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BASKETBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BENCH_PRESS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BENCH_SIT_UP;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BIKING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BIKING_STATIONARY;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BOOT_CAMP;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BOXING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BURPEE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType CALISTHENICS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType CRICKET;
- enum_constant public static final androidx.health.services.client.data.ExerciseType CRUNCH;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DANCING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DEADLIFT;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_CURL_LEFT_ARM;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_CURL_RIGHT_ARM;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_FRONT_RAISE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_LATERAL_RAISE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_LEFT_ARM;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_RIGHT_ARM;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_TWO_ARM;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ELLIPTICAL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType EXERCISE_CLASS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType FENCING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType FOOTBALL_AMERICAN;
- enum_constant public static final androidx.health.services.client.data.ExerciseType FOOTBALL_AUSTRALIAN;
- enum_constant public static final androidx.health.services.client.data.ExerciseType FORWARD_TWIST;
- enum_constant public static final androidx.health.services.client.data.ExerciseType FRISBEE_DISC;
- enum_constant public static final androidx.health.services.client.data.ExerciseType GOLF;
- enum_constant public static final androidx.health.services.client.data.ExerciseType GUIDED_BREATHING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType GYMNASTICS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType HANDBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType HIGH_INTENSITY_INTERVAL_TRAINING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType HIKING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ICE_HOCKEY;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ICE_SKATING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType JUMPING_JACK;
- enum_constant public static final androidx.health.services.client.data.ExerciseType JUMP_ROPE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType LAT_PULL_DOWN;
- enum_constant public static final androidx.health.services.client.data.ExerciseType LUNGE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType MARTIAL_ARTS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType MEDITATION;
- enum_constant public static final androidx.health.services.client.data.ExerciseType PADDLING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType PARA_GLIDING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType PILATES;
- enum_constant public static final androidx.health.services.client.data.ExerciseType PLANK;
- enum_constant public static final androidx.health.services.client.data.ExerciseType RACQUETBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ROCK_CLIMBING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ROLLER_HOCKEY;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ROWING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ROWING_MACHINE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType RUGBY;
- enum_constant public static final androidx.health.services.client.data.ExerciseType RUNNING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType RUNNING_TREADMILL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SAILING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SCUBA_DIVING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SKATING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SKIING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SNOWBOARDING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SNOWSHOEING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SOCCER;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SOFTBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SQUASH;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SQUAT;
- enum_constant public static final androidx.health.services.client.data.ExerciseType STAIR_CLIMBING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType STAIR_CLIMBING_MACHINE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType STRENGTH_TRAINING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType STRETCHING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SURFING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SWIMMING_OPEN_WATER;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SWIMMING_POOL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType TABLE_TENNIS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType TENNIS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType UNKNOWN;
- enum_constant public static final androidx.health.services.client.data.ExerciseType UPPER_TWIST;
- enum_constant public static final androidx.health.services.client.data.ExerciseType VOLLEYBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType WALKING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType WATER_POLO;
- enum_constant public static final androidx.health.services.client.data.ExerciseType WEIGHTLIFTING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType WORKOUT;
- enum_constant public static final androidx.health.services.client.data.ExerciseType YOGA;
+ property public final String name;
+ field public static final androidx.health.services.client.data.ExerciseType ALPINE_SKIING;
+ field public static final androidx.health.services.client.data.ExerciseType BACKPACKING;
+ field public static final androidx.health.services.client.data.ExerciseType BACK_EXTENSION;
+ field public static final androidx.health.services.client.data.ExerciseType BADMINTON;
+ field public static final androidx.health.services.client.data.ExerciseType BARBELL_SHOULDER_PRESS;
+ field public static final androidx.health.services.client.data.ExerciseType BASEBALL;
+ field public static final androidx.health.services.client.data.ExerciseType BASKETBALL;
+ field public static final androidx.health.services.client.data.ExerciseType BENCH_PRESS;
+ field public static final androidx.health.services.client.data.ExerciseType BENCH_SIT_UP;
+ field public static final androidx.health.services.client.data.ExerciseType BIKING;
+ field public static final androidx.health.services.client.data.ExerciseType BIKING_STATIONARY;
+ field public static final androidx.health.services.client.data.ExerciseType BOOT_CAMP;
+ field public static final androidx.health.services.client.data.ExerciseType BOXING;
+ field public static final androidx.health.services.client.data.ExerciseType BURPEE;
+ field public static final androidx.health.services.client.data.ExerciseType CALISTHENICS;
+ field public static final androidx.health.services.client.data.ExerciseType CRICKET;
+ field public static final androidx.health.services.client.data.ExerciseType CROSS_COUNTRY_SKIING;
+ field public static final androidx.health.services.client.data.ExerciseType CRUNCH;
field public static final androidx.health.services.client.data.ExerciseType.Companion Companion;
+ field public static final androidx.health.services.client.data.ExerciseType DANCING;
+ field public static final androidx.health.services.client.data.ExerciseType DEADLIFT;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_CURL_LEFT_ARM;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_CURL_RIGHT_ARM;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_FRONT_RAISE;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_LATERAL_RAISE;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_LEFT_ARM;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_RIGHT_ARM;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_TWO_ARM;
+ field public static final androidx.health.services.client.data.ExerciseType ELLIPTICAL;
+ field public static final androidx.health.services.client.data.ExerciseType EXERCISE_CLASS;
+ field public static final androidx.health.services.client.data.ExerciseType FENCING;
+ field public static final androidx.health.services.client.data.ExerciseType FOOTBALL_AMERICAN;
+ field public static final androidx.health.services.client.data.ExerciseType FOOTBALL_AUSTRALIAN;
+ field public static final androidx.health.services.client.data.ExerciseType FORWARD_TWIST;
+ field public static final androidx.health.services.client.data.ExerciseType FRISBEE_DISC;
+ field public static final androidx.health.services.client.data.ExerciseType GOLF;
+ field public static final androidx.health.services.client.data.ExerciseType GUIDED_BREATHING;
+ field public static final androidx.health.services.client.data.ExerciseType GYMNASTICS;
+ field public static final androidx.health.services.client.data.ExerciseType HANDBALL;
+ field public static final androidx.health.services.client.data.ExerciseType HIGH_INTENSITY_INTERVAL_TRAINING;
+ field public static final androidx.health.services.client.data.ExerciseType HIKING;
+ field public static final androidx.health.services.client.data.ExerciseType HORSE_RIDING;
+ field public static final androidx.health.services.client.data.ExerciseType ICE_HOCKEY;
+ field public static final androidx.health.services.client.data.ExerciseType ICE_SKATING;
+ field public static final androidx.health.services.client.data.ExerciseType INLINE_SKATING;
+ field public static final androidx.health.services.client.data.ExerciseType JUMPING_JACK;
+ field public static final androidx.health.services.client.data.ExerciseType JUMP_ROPE;
+ field public static final androidx.health.services.client.data.ExerciseType LAT_PULL_DOWN;
+ field public static final androidx.health.services.client.data.ExerciseType LUNGE;
+ field public static final androidx.health.services.client.data.ExerciseType MARTIAL_ARTS;
+ field public static final androidx.health.services.client.data.ExerciseType MEDITATION;
+ field public static final androidx.health.services.client.data.ExerciseType MOUNTAIN_BIKING;
+ field public static final androidx.health.services.client.data.ExerciseType ORIENTEERING;
+ field public static final androidx.health.services.client.data.ExerciseType PADDLING;
+ field public static final androidx.health.services.client.data.ExerciseType PARA_GLIDING;
+ field public static final androidx.health.services.client.data.ExerciseType PILATES;
+ field public static final androidx.health.services.client.data.ExerciseType PLANK;
+ field public static final androidx.health.services.client.data.ExerciseType RACQUETBALL;
+ field public static final androidx.health.services.client.data.ExerciseType ROCK_CLIMBING;
+ field public static final androidx.health.services.client.data.ExerciseType ROLLER_HOCKEY;
+ field public static final androidx.health.services.client.data.ExerciseType ROLLER_SKATING;
+ field public static final androidx.health.services.client.data.ExerciseType ROWING;
+ field public static final androidx.health.services.client.data.ExerciseType ROWING_MACHINE;
+ field public static final androidx.health.services.client.data.ExerciseType RUGBY;
+ field public static final androidx.health.services.client.data.ExerciseType RUNNING;
+ field public static final androidx.health.services.client.data.ExerciseType RUNNING_TREADMILL;
+ field public static final androidx.health.services.client.data.ExerciseType SAILING;
+ field public static final androidx.health.services.client.data.ExerciseType SCUBA_DIVING;
+ field public static final androidx.health.services.client.data.ExerciseType SKATING;
+ field public static final androidx.health.services.client.data.ExerciseType SKIING;
+ field public static final androidx.health.services.client.data.ExerciseType SNOWBOARDING;
+ field public static final androidx.health.services.client.data.ExerciseType SNOWSHOEING;
+ field public static final androidx.health.services.client.data.ExerciseType SOCCER;
+ field public static final androidx.health.services.client.data.ExerciseType SOFTBALL;
+ field public static final androidx.health.services.client.data.ExerciseType SQUASH;
+ field public static final androidx.health.services.client.data.ExerciseType SQUAT;
+ field public static final androidx.health.services.client.data.ExerciseType STAIR_CLIMBING;
+ field public static final androidx.health.services.client.data.ExerciseType STAIR_CLIMBING_MACHINE;
+ field public static final androidx.health.services.client.data.ExerciseType STRENGTH_TRAINING;
+ field public static final androidx.health.services.client.data.ExerciseType STRETCHING;
+ field public static final androidx.health.services.client.data.ExerciseType SURFING;
+ field public static final androidx.health.services.client.data.ExerciseType SWIMMING_OPEN_WATER;
+ field public static final androidx.health.services.client.data.ExerciseType SWIMMING_POOL;
+ field public static final androidx.health.services.client.data.ExerciseType TABLE_TENNIS;
+ field public static final androidx.health.services.client.data.ExerciseType TENNIS;
+ field public static final androidx.health.services.client.data.ExerciseType UNKNOWN;
+ field public static final androidx.health.services.client.data.ExerciseType UPPER_TWIST;
+ field public static final androidx.health.services.client.data.ExerciseType VOLLEYBALL;
+ field public static final androidx.health.services.client.data.ExerciseType WALKING;
+ field public static final androidx.health.services.client.data.ExerciseType WATER_POLO;
+ field public static final androidx.health.services.client.data.ExerciseType WEIGHTLIFTING;
+ field public static final androidx.health.services.client.data.ExerciseType WORKOUT;
+ field public static final androidx.health.services.client.data.ExerciseType YACHTING;
+ field public static final androidx.health.services.client.data.ExerciseType YOGA;
}
public static final class ExerciseType.Companion {
@@ -582,7 +597,7 @@
}
public final class ExerciseTypeCapabilities extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.ExerciseTypeCapabilities> {
- ctor public ExerciseTypeCapabilities(java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypes, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.Set<? extends androidx.health.services.client.data.ComparisonType>> supportedGoals, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.Set<? extends androidx.health.services.client.data.ComparisonType>> supportedMilestones, boolean supportsAutoPauseAndResume, boolean supportsLaps);
+ ctor public ExerciseTypeCapabilities(java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypes, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.Set<androidx.health.services.client.data.ComparisonType>> supportedGoals, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.Set<androidx.health.services.client.data.ComparisonType>> supportedMilestones, boolean supportsAutoPauseAndResume, boolean supportsLaps);
method public androidx.health.services.client.proto.DataProto.ExerciseTypeCapabilities getProto();
method public java.util.Set<androidx.health.services.client.data.DataType> getSupportedDataTypes();
method public java.util.Map<androidx.health.services.client.data.DataType,java.util.Set<androidx.health.services.client.data.ComparisonType>> getSupportedGoals();
@@ -602,8 +617,10 @@
}
public final class ExerciseUpdate extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.ExerciseUpdate> {
- ctor public ExerciseUpdate(androidx.health.services.client.data.ExerciseState state, java.time.Instant? startTime, java.time.Duration activeDuration, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.List<androidx.health.services.client.data.DataPoint>> latestMetrics, java.util.Map<androidx.health.services.client.data.DataType,? extends androidx.health.services.client.data.AggregateDataPoint> latestAggregateMetrics, java.util.Set<androidx.health.services.client.data.AchievedExerciseGoal> latestAchievedGoals, java.util.Set<androidx.health.services.client.data.MilestoneMarkerSummary> latestMilestoneMarkerSummaries, androidx.health.services.client.data.ExerciseConfig? exerciseConfig);
+ ctor public ExerciseUpdate(androidx.health.services.client.data.ExerciseState state, java.time.Instant? startTime, java.time.Duration activeDuration, java.time.Duration? updateDurationFromBoot, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.List<androidx.health.services.client.data.DataPoint>> latestMetrics, java.util.Map<androidx.health.services.client.data.DataType,? extends androidx.health.services.client.data.AggregateDataPoint> latestAggregateMetrics, java.util.Set<androidx.health.services.client.data.AchievedExerciseGoal> latestAchievedGoals, java.util.Set<androidx.health.services.client.data.MilestoneMarkerSummary> latestMilestoneMarkerSummaries, androidx.health.services.client.data.ExerciseConfig? exerciseConfig, androidx.health.services.client.data.ExerciseUpdate.ActiveDurationCheckpoint? activeDurationCheckpoint);
method public java.time.Duration getActiveDuration();
+ method public java.time.Duration getActiveDurationAtDataPoint(androidx.health.services.client.data.DataPoint dataPoint);
+ method public androidx.health.services.client.data.ExerciseUpdate.ActiveDurationCheckpoint? getActiveDurationCheckpoint();
method public androidx.health.services.client.data.ExerciseConfig? getExerciseConfig();
method public java.util.Set<androidx.health.services.client.data.AchievedExerciseGoal> getLatestAchievedGoals();
method public java.util.Map<androidx.health.services.client.data.DataType,androidx.health.services.client.data.AggregateDataPoint> getLatestAggregateMetrics();
@@ -613,6 +630,7 @@
method public java.time.Instant? getStartTime();
method public androidx.health.services.client.data.ExerciseState getState();
property public final java.time.Duration activeDuration;
+ property public final androidx.health.services.client.data.ExerciseUpdate.ActiveDurationCheckpoint? activeDurationCheckpoint;
property public final androidx.health.services.client.data.ExerciseConfig? exerciseConfig;
property public final java.util.Set<androidx.health.services.client.data.AchievedExerciseGoal> latestAchievedGoals;
property public final java.util.Map<androidx.health.services.client.data.DataType,androidx.health.services.client.data.AggregateDataPoint> latestAggregateMetrics;
@@ -624,37 +642,52 @@
field public static final androidx.health.services.client.data.ExerciseUpdate.Companion Companion;
}
+ public static final class ExerciseUpdate.ActiveDurationCheckpoint {
+ ctor public ExerciseUpdate.ActiveDurationCheckpoint(java.time.Instant time, java.time.Duration activeDuration);
+ method public java.time.Duration getActiveDuration();
+ method public java.time.Instant getTime();
+ property public final java.time.Duration activeDuration;
+ property public final java.time.Instant time;
+ }
+
public static final class ExerciseUpdate.Companion {
}
- public final class HrAccuracy extends androidx.health.services.client.data.DataPointAccuracy {
- ctor public HrAccuracy(androidx.health.services.client.data.HrAccuracy.SensorStatus sensorStatus);
+ public final class HeartRateAccuracy extends androidx.health.services.client.data.DataPointAccuracy {
+ ctor public HeartRateAccuracy(androidx.health.services.client.data.HeartRateAccuracy.SensorStatus sensorStatus);
method public androidx.health.services.client.proto.DataProto.DataPointAccuracy getProto();
- method public androidx.health.services.client.data.HrAccuracy.SensorStatus getSensorStatus();
- property public final androidx.health.services.client.data.HrAccuracy.SensorStatus sensorStatus;
- field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.HrAccuracy> CREATOR;
- field public static final androidx.health.services.client.data.HrAccuracy.Companion Companion;
+ method public androidx.health.services.client.data.HeartRateAccuracy.SensorStatus getSensorStatus();
+ property public final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus sensorStatus;
+ field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.HeartRateAccuracy> CREATOR;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.Companion Companion;
}
- public static final class HrAccuracy.Companion {
+ public static final class HeartRateAccuracy.Companion {
}
- public enum HrAccuracy.SensorStatus {
- method public final int getId();
+ public static final class HeartRateAccuracy.SensorStatus {
+ method public int getId();
+ method public String getName();
property public final int id;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus ACCURACY_HIGH;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus ACCURACY_LOW;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus ACCURACY_MEDIUM;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus NO_CONTACT;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus UNKNOWN;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus UNRELIABLE;
+ property public final String name;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus ACCURACY_HIGH;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus ACCURACY_LOW;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus ACCURACY_MEDIUM;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus.Companion Companion;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus NO_CONTACT;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus UNKNOWN;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus UNRELIABLE;
+ }
+
+ public static final class HeartRateAccuracy.SensorStatus.Companion {
}
public final class LocationAccuracy extends androidx.health.services.client.data.DataPointAccuracy {
- ctor public LocationAccuracy(double horizontalPositionError);
- method public double getHorizontalPositionError();
+ ctor public LocationAccuracy(double horizontalPositionErrorMeters, optional double verticalPositionErrorMeters);
+ ctor public LocationAccuracy(double horizontalPositionErrorMeters);
+ method public double getHorizontalPositionErrorMeters();
method public androidx.health.services.client.proto.DataProto.DataPointAccuracy getProto();
- property public final double horizontalPositionError;
+ property public final double horizontalPositionErrorMeters;
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.LocationAccuracy> CREATOR;
field public static final androidx.health.services.client.data.LocationAccuracy.Companion Companion;
}
@@ -662,17 +695,19 @@
public static final class LocationAccuracy.Companion {
}
- public enum LocationAvailability implements androidx.health.services.client.data.Availability {
- method public static final androidx.health.services.client.data.LocationAvailability? fromId(int id);
+ public final class LocationAvailability implements androidx.health.services.client.data.Availability {
+ method public static androidx.health.services.client.data.LocationAvailability? fromId(int id);
method public int getId();
+ method public String getName();
property public int id;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability ACQUIRED_TETHERED;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability ACQUIRED_UNTETHERED;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability ACQUIRING;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability NO_GPS;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability UNAVAILABLE;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability UNKNOWN;
+ property public final String name;
+ field public static final androidx.health.services.client.data.LocationAvailability ACQUIRED_TETHERED;
+ field public static final androidx.health.services.client.data.LocationAvailability ACQUIRED_UNTETHERED;
+ field public static final androidx.health.services.client.data.LocationAvailability ACQUIRING;
field public static final androidx.health.services.client.data.LocationAvailability.Companion Companion;
+ field public static final androidx.health.services.client.data.LocationAvailability NO_GNSS;
+ field public static final androidx.health.services.client.data.LocationAvailability UNAVAILABLE;
+ field public static final androidx.health.services.client.data.LocationAvailability UNKNOWN;
}
public static final class LocationAvailability.Companion {
@@ -712,15 +747,15 @@
}
public final class PassiveGoal extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.PassiveGoal> {
- ctor public PassiveGoal(androidx.health.services.client.data.DataTypeCondition dataTypeCondition, androidx.health.services.client.data.PassiveGoal.TriggerType triggerType);
+ ctor public PassiveGoal(androidx.health.services.client.data.DataTypeCondition dataTypeCondition, int triggerFrequency);
method public static androidx.health.services.client.data.PassiveGoal? fromIntent(android.content.Intent intent);
method public androidx.health.services.client.data.DataTypeCondition getDataTypeCondition();
method public androidx.health.services.client.proto.DataProto.PassiveGoal getProto();
- method public androidx.health.services.client.data.PassiveGoal.TriggerType getTriggerType();
+ method public int getTriggerFrequency();
method public boolean isTriggered(androidx.health.services.client.data.DataPoint dataPoint);
method public void putToIntent(android.content.Intent intent);
property public final androidx.health.services.client.data.DataTypeCondition dataTypeCondition;
- property public final androidx.health.services.client.data.PassiveGoal.TriggerType triggerType;
+ property public final int triggerFrequency;
field public static final String ACTION_GOAL = "hs.passivemonitoring.GOAL";
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.PassiveGoal> CREATOR;
field public static final androidx.health.services.client.data.PassiveGoal.Companion Companion;
@@ -730,25 +765,12 @@
method public androidx.health.services.client.data.PassiveGoal? fromIntent(android.content.Intent intent);
}
- public enum PassiveGoal.TriggerType {
- method public static final androidx.health.services.client.data.PassiveGoal.TriggerType? fromId(int id);
- method public final int getId();
- property public final int id;
- enum_constant public static final androidx.health.services.client.data.PassiveGoal.TriggerType ONCE;
- enum_constant public static final androidx.health.services.client.data.PassiveGoal.TriggerType REPEATED;
- field public static final androidx.health.services.client.data.PassiveGoal.TriggerType.Companion Companion;
- }
-
- public static final class PassiveGoal.TriggerType.Companion {
- method public androidx.health.services.client.data.PassiveGoal.TriggerType? fromId(int id);
- }
-
public final class PassiveMonitoringCapabilities extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.PassiveMonitoringCapabilities> {
- ctor public PassiveMonitoringCapabilities(java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesPassiveMonitoring, java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesEvents);
+ ctor public PassiveMonitoringCapabilities(java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesPassiveMonitoring, java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesPassiveGoals, java.util.Set<androidx.health.services.client.data.UserActivityState> supportedUserActivityStates);
method public androidx.health.services.client.proto.DataProto.PassiveMonitoringCapabilities getProto();
- method public java.util.Set<androidx.health.services.client.data.DataType> getSupportedDataTypesEvents();
+ method public java.util.Set<androidx.health.services.client.data.DataType> getSupportedDataTypesPassiveGoals();
method public java.util.Set<androidx.health.services.client.data.DataType> getSupportedDataTypesPassiveMonitoring();
- property public final java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesEvents;
+ property public final java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesPassiveGoals;
property public final java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesPassiveMonitoring;
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.PassiveMonitoringCapabilities> CREATOR;
field public static final androidx.health.services.client.data.PassiveMonitoringCapabilities.Companion Companion;
@@ -758,15 +780,15 @@
}
public final class PassiveMonitoringConfig extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.PassiveMonitoringConfig> {
- ctor protected PassiveMonitoringConfig(java.util.Set<androidx.health.services.client.data.DataType> dataTypes, android.content.ComponentName componentName, boolean shouldIncludeUserActivityState);
+ ctor public PassiveMonitoringConfig(java.util.Set<androidx.health.services.client.data.DataType> dataTypes, android.content.ComponentName componentName, optional boolean requestUserActivityState);
method public static androidx.health.services.client.data.PassiveMonitoringConfig.Builder builder();
method public android.content.ComponentName getComponentName();
method public java.util.Set<androidx.health.services.client.data.DataType> getDataTypes();
method public androidx.health.services.client.proto.DataProto.PassiveMonitoringConfig getProto();
- method public boolean getShouldIncludeUserActivityState();
+ method public boolean getRequestUserActivityState();
property public final android.content.ComponentName componentName;
property public final java.util.Set<androidx.health.services.client.data.DataType> dataTypes;
- property public final boolean shouldIncludeUserActivityState;
+ property public final boolean requestUserActivityState;
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.PassiveMonitoringConfig> CREATOR;
field public static final androidx.health.services.client.data.PassiveMonitoringConfig.Companion Companion;
}
@@ -776,7 +798,7 @@
method public androidx.health.services.client.data.PassiveMonitoringConfig build();
method public androidx.health.services.client.data.PassiveMonitoringConfig.Builder setComponentName(android.content.ComponentName componentName);
method public androidx.health.services.client.data.PassiveMonitoringConfig.Builder setDataTypes(java.util.Set<androidx.health.services.client.data.DataType> dataTypes);
- method public androidx.health.services.client.data.PassiveMonitoringConfig.Builder setShouldIncludeUserActivityState(boolean shouldIncludeUserActivityState);
+ method public androidx.health.services.client.data.PassiveMonitoringConfig.Builder setRequestUserActivityState(boolean requestUserActivityState);
}
public static final class PassiveMonitoringConfig.Companion {
@@ -861,19 +883,20 @@
method public androidx.health.services.client.data.UserActivityInfo createUnknownTypeState(java.time.Instant stateChangeTime);
}
- public enum UserActivityState {
- method public static final androidx.health.services.client.data.UserActivityState? fromId(int id);
- method public final int getId();
+ public final class UserActivityState {
+ ctor public UserActivityState(int id, String name);
+ method public int getId();
+ method public String getName();
property public final int id;
- enum_constant public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_ASLEEP;
- enum_constant public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_EXERCISE;
- enum_constant public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_PASSIVE;
- enum_constant public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_UNKNOWN;
+ property public final String name;
field public static final androidx.health.services.client.data.UserActivityState.Companion Companion;
+ field public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_ASLEEP;
+ field public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_EXERCISE;
+ field public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_PASSIVE;
+ field public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_UNKNOWN;
}
public static final class UserActivityState.Companion {
- method public androidx.health.services.client.data.UserActivityState? fromId(int id);
}
public final class Value extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.Value> {
@@ -916,8 +939,7 @@
}
public final class WarmUpConfig extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.WarmUpConfig> {
- ctor protected WarmUpConfig(androidx.health.services.client.data.ExerciseType exerciseType, java.util.Set<androidx.health.services.client.data.DataType> dataTypes);
- method public static androidx.health.services.client.data.WarmUpConfig.Builder builder();
+ ctor public WarmUpConfig(androidx.health.services.client.data.ExerciseType exerciseType, java.util.Set<androidx.health.services.client.data.DataType> dataTypes);
method public java.util.Set<androidx.health.services.client.data.DataType> getDataTypes();
method public androidx.health.services.client.data.ExerciseType getExerciseType();
method public androidx.health.services.client.proto.DataProto.WarmUpConfig getProto();
@@ -927,15 +949,7 @@
field public static final androidx.health.services.client.data.WarmUpConfig.Companion Companion;
}
- public static final class WarmUpConfig.Builder {
- ctor public WarmUpConfig.Builder();
- method public androidx.health.services.client.data.WarmUpConfig build();
- method public androidx.health.services.client.data.WarmUpConfig.Builder setDataTypes(java.util.Set<androidx.health.services.client.data.DataType> dataTypes);
- method public androidx.health.services.client.data.WarmUpConfig.Builder setExerciseType(androidx.health.services.client.data.ExerciseType exerciseType);
- }
-
public static final class WarmUpConfig.Companion {
- method public androidx.health.services.client.data.WarmUpConfig.Builder builder();
}
}
diff --git a/health/health-services-client/api/public_plus_experimental_current.txt b/health/health-services-client/api/public_plus_experimental_current.txt
index edfe8a1..7c59c28 100644
--- a/health/health-services-client/api/public_plus_experimental_current.txt
+++ b/health/health-services-client/api/public_plus_experimental_current.txt
@@ -2,29 +2,30 @@
package androidx.health.services.client {
public interface ExerciseClient {
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> addGoalToActiveExercise(androidx.health.services.client.data.ExerciseGoal exerciseGoal);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> clearUpdateListener(androidx.health.services.client.ExerciseUpdateListener listener);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> endExercise();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> flushExercise();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> addGoalToActiveExerciseAsync(androidx.health.services.client.data.ExerciseGoal exerciseGoal);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> clearUpdateCallbackAsync(androidx.health.services.client.ExerciseUpdateCallback callback);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> endExerciseAsync();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> flushExerciseAsync();
method public com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.ExerciseCapabilities> getCapabilities();
- method public com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.ExerciseInfo> getCurrentExerciseInfo();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> markLap();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> overrideAutoPauseAndResumeForActiveExercise(boolean enabled);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> pauseExercise();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> prepareExercise(androidx.health.services.client.data.WarmUpConfig configuration);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> removeGoalFromActiveExercise(androidx.health.services.client.data.ExerciseGoal exerciseGoal);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> resumeExercise();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> setUpdateListener(androidx.health.services.client.ExerciseUpdateListener listener);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> setUpdateListener(androidx.health.services.client.ExerciseUpdateListener listener, java.util.concurrent.Executor executor);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> startExercise(androidx.health.services.client.data.ExerciseConfig configuration);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.ExerciseInfo> getCurrentExerciseInfoAsync();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> markLapAsync();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> overrideAutoPauseAndResumeForActiveExerciseAsync(boolean enabled);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> pauseExerciseAsync();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> prepareExerciseAsync(androidx.health.services.client.data.WarmUpConfig configuration);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> removeGoalFromActiveExerciseAsync(androidx.health.services.client.data.ExerciseGoal exerciseGoal);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> resumeExerciseAsync();
+ method public void setUpdateCallback(androidx.health.services.client.ExerciseUpdateCallback callback);
+ method public void setUpdateCallback(java.util.concurrent.Executor executor, androidx.health.services.client.ExerciseUpdateCallback callback);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> startExerciseAsync(androidx.health.services.client.data.ExerciseConfig configuration);
property public abstract com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.ExerciseCapabilities> capabilities;
- property public abstract com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.ExerciseInfo> currentExerciseInfo;
}
- public interface ExerciseUpdateListener {
+ public interface ExerciseUpdateCallback {
method public void onAvailabilityChanged(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.data.Availability availability);
- method public void onExerciseUpdate(androidx.health.services.client.data.ExerciseUpdate update);
- method public void onLapSummary(androidx.health.services.client.data.ExerciseLapSummary lapSummary);
+ method public void onExerciseUpdateReceived(androidx.health.services.client.data.ExerciseUpdate update);
+ method public void onLapSummaryReceived(androidx.health.services.client.data.ExerciseLapSummary lapSummary);
+ method public void onRegistered();
+ method public void onRegistrationFailed(Throwable throwable);
}
public final class HealthServices {
@@ -43,14 +44,16 @@
public interface MeasureCallback {
method public void onAvailabilityChanged(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.data.Availability availability);
- method public void onData(java.util.List<androidx.health.services.client.data.DataPoint> data);
+ method public void onDataReceived(java.util.List<androidx.health.services.client.data.DataPoint> data);
+ method public default void onRegistered();
+ method public default void onRegistrationFailed(Throwable throwable);
}
public interface MeasureClient {
method public com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.MeasureCapabilities> getCapabilities();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerCallback(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.MeasureCallback callback);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerCallback(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.MeasureCallback callback, java.util.concurrent.Executor executor);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterCallback(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.MeasureCallback callback);
+ method public void registerCallback(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.MeasureCallback callback);
+ method public void registerCallback(androidx.health.services.client.data.DataType dataType, java.util.concurrent.Executor executor, androidx.health.services.client.MeasureCallback callback);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterCallbackAsync(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.MeasureCallback callback);
property public abstract com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.MeasureCapabilities> capabilities;
}
@@ -59,13 +62,13 @@
}
public interface PassiveMonitoringClient {
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> flush();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> flushAsync();
method public com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.PassiveMonitoringCapabilities> getCapabilities();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerDataCallback(androidx.health.services.client.data.PassiveMonitoringConfig configuration);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerDataCallback(androidx.health.services.client.data.PassiveMonitoringConfig configuration, androidx.health.services.client.PassiveMonitoringCallback callback);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerPassiveGoalCallback(androidx.health.services.client.data.PassiveGoal passiveGoal, android.content.ComponentName componentName);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterDataCallback();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterPassiveGoalCallback(androidx.health.services.client.data.PassiveGoal passiveGoal);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerDataCallbackAsync(androidx.health.services.client.data.PassiveMonitoringConfig configuration);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerDataCallbackAsync(androidx.health.services.client.data.PassiveMonitoringConfig configuration, androidx.health.services.client.PassiveMonitoringCallback callback);
+ method public <T extends android.content.BroadcastReceiver> com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerPassiveGoalCallbackAsync(androidx.health.services.client.data.PassiveGoal passiveGoal, Class<T> broadcastReceiver);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterDataCallbackAsync();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterPassiveGoalCallbackAsync(androidx.health.services.client.data.PassiveGoal passiveGoal);
property public abstract com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.PassiveMonitoringCapabilities> capabilities;
}
@@ -90,12 +93,12 @@
}
@Keep public final class AggregateDataPoints {
- method public static androidx.health.services.client.data.StatisticalDataPoint aggregateAbsoluteElevation(double minAbsElevation, double maxAbsElevation, double avgAbsElevation, java.time.Instant startTime, java.time.Instant endTime);
+ method public static androidx.health.services.client.data.StatisticalDataPoint aggregateAbsoluteElevation(double minAbsElevationMeters, double maxAbsElevationMeters, double avgAbsElevationMeters, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.AggregateDataPoint aggregateCalories(double kcalories, java.time.Instant startTime, java.time.Instant endTime);
- method public static androidx.health.services.client.data.AggregateDataPoint aggregateDistance(double distance, java.time.Instant startTime, java.time.Instant endTime);
+ method public static androidx.health.services.client.data.AggregateDataPoint aggregateDistance(double meters, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.AggregateDataPoint aggregateElevationGain(double gainMeters, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.StatisticalDataPoint aggregateHeartRate(double minBpm, double maxBpm, double avgBpm, java.time.Instant startTime, java.time.Instant endTime);
- method public static androidx.health.services.client.data.AggregateDataPoint aggregatePace(double minMillisPerKm, double maxMillisPerKm, double avgMillisPerKm, java.time.Instant startTime, java.time.Instant endTime);
+ method public static androidx.health.services.client.data.AggregateDataPoint aggregatePace(java.time.Duration minMillisPerKm, java.time.Duration maxMillisPerKm, java.time.Duration avgMillisPerKm, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.StatisticalDataPoint aggregateSpeed(double minMetersPerSecond, double maxMetersPerSecond, double avgMetersPerSecond, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.AggregateDataPoint aggregateSteps(long steps, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.AggregateDataPoint aggregateSwimmingStrokes(long swimmingStrokes, java.time.Instant startTime, java.time.Instant endTime);
@@ -111,19 +114,20 @@
public static final class Availability.Companion {
}
- public enum ComparisonType {
- method public static final androidx.health.services.client.data.ComparisonType? fromId(int id);
- method public final int getId();
+ public final class ComparisonType {
+ method public int getId();
+ method public String getName();
property public final int id;
- enum_constant public static final androidx.health.services.client.data.ComparisonType GREATER_THAN;
- enum_constant public static final androidx.health.services.client.data.ComparisonType GREATER_THAN_OR_EQUAL;
- enum_constant public static final androidx.health.services.client.data.ComparisonType LESS_THAN;
- enum_constant public static final androidx.health.services.client.data.ComparisonType LESS_THAN_OR_EQUAL;
+ property public final String name;
field public static final androidx.health.services.client.data.ComparisonType.Companion Companion;
+ field public static final androidx.health.services.client.data.ComparisonType GREATER_THAN;
+ field public static final androidx.health.services.client.data.ComparisonType GREATER_THAN_OR_EQUAL;
+ field public static final androidx.health.services.client.data.ComparisonType LESS_THAN;
+ field public static final androidx.health.services.client.data.ComparisonType LESS_THAN_OR_EQUAL;
+ field public static final androidx.health.services.client.data.ComparisonType UNKNOWN;
}
public static final class ComparisonType.Companion {
- method public androidx.health.services.client.data.ComparisonType? fromId(int id);
}
public final class CumulativeDataPoint extends androidx.health.services.client.data.AggregateDataPoint {
@@ -189,24 +193,22 @@
method public static androidx.health.services.client.data.DataPoint calories(double kcalories, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot, optional android.os.Bundle? metadata);
method public static androidx.health.services.client.data.DataPoint calories(double kcalories, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method public static androidx.health.services.client.data.DataPoint dailyCalories(double calories, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
- method public static androidx.health.services.client.data.DataPoint dailyDistance(double distance, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
+ method public static androidx.health.services.client.data.DataPoint dailyDistance(double meters, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method public static androidx.health.services.client.data.DataPoint dailyFloors(double floors, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method public static androidx.health.services.client.data.DataPoint dailySteps(long steps, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method public static androidx.health.services.client.data.DataPoint distance(double meters, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot, optional android.os.Bundle? metadata);
method public static androidx.health.services.client.data.DataPoint distance(double meters, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
- method public static androidx.health.services.client.data.DataPoint elevationGain(double meters, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot, optional android.os.Bundle? metadata);
- method public static androidx.health.services.client.data.DataPoint elevationGain(double meters, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method public static androidx.health.services.client.data.DataPoint floors(double floors, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot, optional android.os.Bundle? metadata);
method public static androidx.health.services.client.data.DataPoint floors(double floors, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method @Keep public static java.util.List<androidx.health.services.client.data.DataPoint> getDataPoints(android.content.Intent intent);
method public static boolean getPermissionsGranted(android.content.Intent intent);
- method public static androidx.health.services.client.data.DataPoint heartRate(double bpm, java.time.Duration durationFromBoot, optional androidx.health.services.client.data.HrAccuracy? accuracy);
+ method public static androidx.health.services.client.data.DataPoint heartRate(double bpm, java.time.Duration durationFromBoot, optional androidx.health.services.client.data.HeartRateAccuracy? accuracy);
method public static androidx.health.services.client.data.DataPoint heartRate(double bpm, java.time.Duration durationFromBoot);
method public static androidx.health.services.client.data.DataPoint location(double latitude, double longitude, optional double altitude, optional double bearing, java.time.Duration durationFromBoot, optional androidx.health.services.client.data.LocationAccuracy? accuracy);
method public static androidx.health.services.client.data.DataPoint location(double latitude, double longitude, optional double altitude, optional double bearing, java.time.Duration durationFromBoot);
method public static androidx.health.services.client.data.DataPoint location(double latitude, double longitude, optional double altitude, java.time.Duration durationFromBoot);
method public static androidx.health.services.client.data.DataPoint location(double latitude, double longitude, java.time.Duration durationFromBoot);
- method public static androidx.health.services.client.data.DataPoint pace(double millisPerKm, java.time.Duration durationFromBoot);
+ method public static androidx.health.services.client.data.DataPoint pace(java.time.Duration millisPerKm, java.time.Duration durationFromBoot);
method public static void putDataPoints(android.content.Intent intent, java.util.Collection<androidx.health.services.client.data.DataPoint> dataPoints);
method public static void putPermissionsGranted(android.content.Intent intent, boolean granted);
method public static androidx.health.services.client.data.DataPoint speed(double metersPerSecond, java.time.Duration durationFromBoot, optional android.os.Bundle? metadata);
@@ -243,6 +245,7 @@
field public static final androidx.health.services.client.data.DataType DECLINE_DURATION;
field public static final androidx.health.services.client.data.DataType DISTANCE;
field public static final androidx.health.services.client.data.DataType ELEVATION_GAIN;
+ field public static final androidx.health.services.client.data.DataType ELEVATION_LOSS;
field public static final androidx.health.services.client.data.DataType FLAT_GROUND_DISTANCE;
field public static final androidx.health.services.client.data.DataType FLAT_GROUND_DURATION;
field public static final androidx.health.services.client.data.DataType FLOORS;
@@ -269,20 +272,31 @@
public static final class DataType.Companion {
}
- public enum DataType.TimeType {
- enum_constant public static final androidx.health.services.client.data.DataType.TimeType INTERVAL;
- enum_constant public static final androidx.health.services.client.data.DataType.TimeType SAMPLE;
+ public static final class DataType.TimeType {
+ method public int getId();
+ method public String getName();
+ property public final int id;
+ property public final String name;
+ field public static final androidx.health.services.client.data.DataType.TimeType.Companion Companion;
+ field public static final androidx.health.services.client.data.DataType.TimeType INTERVAL;
+ field public static final androidx.health.services.client.data.DataType.TimeType SAMPLE;
}
- public enum DataTypeAvailability implements androidx.health.services.client.data.Availability {
- method public static final androidx.health.services.client.data.DataTypeAvailability? fromId(int id);
+ public static final class DataType.TimeType.Companion {
+ }
+
+ public final class DataTypeAvailability implements androidx.health.services.client.data.Availability {
+ method public static androidx.health.services.client.data.DataTypeAvailability? fromId(int id);
method public int getId();
+ method public String getName();
property public int id;
- enum_constant public static final androidx.health.services.client.data.DataTypeAvailability ACQUIRING;
- enum_constant public static final androidx.health.services.client.data.DataTypeAvailability AVAILABLE;
- enum_constant public static final androidx.health.services.client.data.DataTypeAvailability UNAVAILABLE;
- enum_constant public static final androidx.health.services.client.data.DataTypeAvailability UNKNOWN;
+ property public final String name;
+ field public static final androidx.health.services.client.data.DataTypeAvailability ACQUIRING;
+ field public static final androidx.health.services.client.data.DataTypeAvailability AVAILABLE;
field public static final androidx.health.services.client.data.DataTypeAvailability.Companion Companion;
+ field public static final androidx.health.services.client.data.DataTypeAvailability UNAVAILABLE;
+ field public static final androidx.health.services.client.data.DataTypeAvailability UNAVAILABLE_DEVICE_OFF_BODY;
+ field public static final androidx.health.services.client.data.DataTypeAvailability UNKNOWN;
}
public static final class DataTypeAvailability.Companion {
@@ -331,7 +345,7 @@
}
public final class ExerciseConfig extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.ExerciseConfig> {
- ctor protected ExerciseConfig(androidx.health.services.client.data.ExerciseType exerciseType, java.util.Set<androidx.health.services.client.data.DataType> dataTypes, java.util.Set<androidx.health.services.client.data.DataType> aggregateDataTypes, boolean shouldEnableAutoPauseAndResume, boolean shouldEnableGps, java.util.List<androidx.health.services.client.data.ExerciseGoal> exerciseGoals, android.os.Bundle exerciseParams);
+ ctor public ExerciseConfig(androidx.health.services.client.data.ExerciseType exerciseType, java.util.Set<androidx.health.services.client.data.DataType> dataTypes, java.util.Set<androidx.health.services.client.data.DataType> aggregateDataTypes, boolean isAutoPauseAndResumeEnabled, boolean isGpsEnabled, java.util.List<androidx.health.services.client.data.ExerciseGoal> exerciseGoals, android.os.Bundle exerciseParams);
method public static androidx.health.services.client.data.ExerciseConfig.Builder builder();
method public java.util.Set<androidx.health.services.client.data.DataType> getAggregateDataTypes();
method public java.util.Set<androidx.health.services.client.data.DataType> getDataTypes();
@@ -339,15 +353,15 @@
method public android.os.Bundle getExerciseParams();
method public androidx.health.services.client.data.ExerciseType getExerciseType();
method public androidx.health.services.client.proto.DataProto.ExerciseConfig getProto();
- method public boolean getShouldEnableAutoPauseAndResume();
- method public boolean getShouldEnableGps();
+ method public boolean isAutoPauseAndResumeEnabled();
+ method public boolean isGpsEnabled();
property public final java.util.Set<androidx.health.services.client.data.DataType> aggregateDataTypes;
property public final java.util.Set<androidx.health.services.client.data.DataType> dataTypes;
property public final java.util.List<androidx.health.services.client.data.ExerciseGoal> exerciseGoals;
property public final android.os.Bundle exerciseParams;
property public final androidx.health.services.client.data.ExerciseType exerciseType;
- property public final boolean shouldEnableAutoPauseAndResume;
- property public final boolean shouldEnableGps;
+ property public final boolean isAutoPauseAndResumeEnabled;
+ property public final boolean isGpsEnabled;
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.ExerciseConfig> CREATOR;
field public static final androidx.health.services.client.data.ExerciseConfig.Companion Companion;
}
@@ -360,8 +374,8 @@
method public androidx.health.services.client.data.ExerciseConfig.Builder setExerciseGoals(java.util.List<androidx.health.services.client.data.ExerciseGoal> exerciseGoals);
method public androidx.health.services.client.data.ExerciseConfig.Builder setExerciseParams(android.os.Bundle exerciseParams);
method public androidx.health.services.client.data.ExerciseConfig.Builder setExerciseType(androidx.health.services.client.data.ExerciseType exerciseType);
- method public androidx.health.services.client.data.ExerciseConfig.Builder setShouldEnableAutoPauseAndResume(boolean shouldEnableAutoPauseAndResume);
- method public androidx.health.services.client.data.ExerciseConfig.Builder setShouldEnableGps(boolean shouldEnableGps);
+ method public androidx.health.services.client.data.ExerciseConfig.Builder setIsAutoPauseAndResumeEnabled(boolean autoPauseAndResumeEnabled);
+ method public androidx.health.services.client.data.ExerciseConfig.Builder setIsGpsEnabled(boolean gpsEnabled);
}
public static final class ExerciseConfig.Companion {
@@ -389,13 +403,15 @@
method public androidx.health.services.client.data.ExerciseGoal createOneTimeGoal(androidx.health.services.client.data.DataTypeCondition condition);
}
- public enum ExerciseGoalType {
- method public static final androidx.health.services.client.data.ExerciseGoalType? fromId(int id);
- method public final int getId();
+ public final class ExerciseGoalType {
+ method public static androidx.health.services.client.data.ExerciseGoalType? fromId(int id);
+ method public int getId();
+ method public String getName();
property public final int id;
- enum_constant public static final androidx.health.services.client.data.ExerciseGoalType MILESTONE;
- enum_constant public static final androidx.health.services.client.data.ExerciseGoalType ONE_TIME_GOAL;
+ property public final String name;
field public static final androidx.health.services.client.data.ExerciseGoalType.Companion Companion;
+ field public static final androidx.health.services.client.data.ExerciseGoalType MILESTONE;
+ field public static final androidx.health.services.client.data.ExerciseGoalType ONE_TIME_GOAL;
}
public static final class ExerciseGoalType.Companion {
@@ -403,11 +419,11 @@
}
public final class ExerciseInfo extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.ExerciseInfo> {
- ctor public ExerciseInfo(androidx.health.services.client.data.ExerciseTrackedStatus exerciseTrackedStatus, androidx.health.services.client.data.ExerciseType exerciseType);
- method public androidx.health.services.client.data.ExerciseTrackedStatus getExerciseTrackedStatus();
+ ctor public ExerciseInfo(int exerciseTrackedStatus, androidx.health.services.client.data.ExerciseType exerciseType);
+ method public int getExerciseTrackedStatus();
method public androidx.health.services.client.data.ExerciseType getExerciseType();
method public androidx.health.services.client.proto.DataProto.ExerciseInfo getProto();
- property public final androidx.health.services.client.data.ExerciseTrackedStatus exerciseTrackedStatus;
+ property public final int exerciseTrackedStatus;
property public final androidx.health.services.client.data.ExerciseType exerciseType;
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.ExerciseInfo> CREATOR;
field public static final androidx.health.services.client.data.ExerciseInfo.Companion Companion;
@@ -436,145 +452,144 @@
public static final class ExerciseLapSummary.Companion {
}
- public enum ExerciseState {
- method public static final androidx.health.services.client.data.ExerciseState? fromId(int id);
- method public final int getId();
- method public final boolean isEnded();
- method public final boolean isEnding();
- method public final boolean isPaused();
- method public final boolean isResuming();
+ public final class ExerciseState {
+ method public static androidx.health.services.client.data.ExerciseState? fromId(int id);
+ method public int getId();
+ method public String getName();
+ method public boolean isEnded();
+ method public boolean isEnding();
+ method public boolean isPaused();
+ method public boolean isResuming();
property public final int id;
property public final boolean isEnded;
property public final boolean isEnding;
property public final boolean isPaused;
property public final boolean isResuming;
- enum_constant public static final androidx.health.services.client.data.ExerciseState ACTIVE;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_ENDED;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_ENDED_PERMISSION_LOST;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_ENDING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_ENDING_PERMISSION_LOST;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_PAUSED;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_PAUSING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_RESUMING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState PREPARING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState TERMINATED;
- enum_constant public static final androidx.health.services.client.data.ExerciseState TERMINATING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_ENDED;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_ENDING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_PAUSED;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_PAUSING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_RESUMING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_STARTING;
+ property public final String name;
+ field public static final androidx.health.services.client.data.ExerciseState ACTIVE;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_ENDED;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_ENDED_PERMISSION_LOST;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_ENDING;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_ENDING_PERMISSION_LOST;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_PAUSED;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_PAUSING;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_RESUMING;
field public static final androidx.health.services.client.data.ExerciseState.Companion Companion;
+ field public static final androidx.health.services.client.data.ExerciseState PREPARING;
+ field public static final androidx.health.services.client.data.ExerciseState TERMINATED;
+ field public static final androidx.health.services.client.data.ExerciseState TERMINATING;
+ field public static final androidx.health.services.client.data.ExerciseState USER_ENDED;
+ field public static final androidx.health.services.client.data.ExerciseState USER_ENDING;
+ field public static final androidx.health.services.client.data.ExerciseState USER_PAUSED;
+ field public static final androidx.health.services.client.data.ExerciseState USER_PAUSING;
+ field public static final androidx.health.services.client.data.ExerciseState USER_RESUMING;
+ field public static final androidx.health.services.client.data.ExerciseState USER_STARTING;
}
public static final class ExerciseState.Companion {
method public androidx.health.services.client.data.ExerciseState? fromId(int id);
}
- public enum ExerciseTrackedStatus {
- method public static final androidx.health.services.client.data.ExerciseTrackedStatus? fromId(int id);
- method public final int getId();
+ public final class ExerciseType {
+ method public static androidx.health.services.client.data.ExerciseType fromId(int id);
+ method public int getId();
+ method public String getName();
property public final int id;
- enum_constant public static final androidx.health.services.client.data.ExerciseTrackedStatus NO_EXERCISE_IN_PROGRESS;
- enum_constant public static final androidx.health.services.client.data.ExerciseTrackedStatus OTHER_APP_IN_PROGRESS;
- enum_constant public static final androidx.health.services.client.data.ExerciseTrackedStatus OWNED_EXERCISE_IN_PROGRESS;
- field public static final androidx.health.services.client.data.ExerciseTrackedStatus.Companion Companion;
- }
-
- public static final class ExerciseTrackedStatus.Companion {
- method public androidx.health.services.client.data.ExerciseTrackedStatus? fromId(int id);
- }
-
- public enum ExerciseType {
- method public static final androidx.health.services.client.data.ExerciseType fromId(int id);
- method public final int getId();
- property public final int id;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BACK_EXTENSION;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BADMINTON;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BARBELL_SHOULDER_PRESS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BASEBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BASKETBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BENCH_PRESS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BENCH_SIT_UP;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BIKING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BIKING_STATIONARY;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BOOT_CAMP;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BOXING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BURPEE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType CALISTHENICS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType CRICKET;
- enum_constant public static final androidx.health.services.client.data.ExerciseType CRUNCH;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DANCING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DEADLIFT;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_CURL_LEFT_ARM;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_CURL_RIGHT_ARM;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_FRONT_RAISE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_LATERAL_RAISE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_LEFT_ARM;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_RIGHT_ARM;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_TWO_ARM;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ELLIPTICAL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType EXERCISE_CLASS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType FENCING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType FOOTBALL_AMERICAN;
- enum_constant public static final androidx.health.services.client.data.ExerciseType FOOTBALL_AUSTRALIAN;
- enum_constant public static final androidx.health.services.client.data.ExerciseType FORWARD_TWIST;
- enum_constant public static final androidx.health.services.client.data.ExerciseType FRISBEE_DISC;
- enum_constant public static final androidx.health.services.client.data.ExerciseType GOLF;
- enum_constant public static final androidx.health.services.client.data.ExerciseType GUIDED_BREATHING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType GYMNASTICS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType HANDBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType HIGH_INTENSITY_INTERVAL_TRAINING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType HIKING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ICE_HOCKEY;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ICE_SKATING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType JUMPING_JACK;
- enum_constant public static final androidx.health.services.client.data.ExerciseType JUMP_ROPE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType LAT_PULL_DOWN;
- enum_constant public static final androidx.health.services.client.data.ExerciseType LUNGE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType MARTIAL_ARTS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType MEDITATION;
- enum_constant public static final androidx.health.services.client.data.ExerciseType PADDLING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType PARA_GLIDING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType PILATES;
- enum_constant public static final androidx.health.services.client.data.ExerciseType PLANK;
- enum_constant public static final androidx.health.services.client.data.ExerciseType RACQUETBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ROCK_CLIMBING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ROLLER_HOCKEY;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ROWING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ROWING_MACHINE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType RUGBY;
- enum_constant public static final androidx.health.services.client.data.ExerciseType RUNNING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType RUNNING_TREADMILL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SAILING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SCUBA_DIVING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SKATING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SKIING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SNOWBOARDING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SNOWSHOEING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SOCCER;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SOFTBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SQUASH;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SQUAT;
- enum_constant public static final androidx.health.services.client.data.ExerciseType STAIR_CLIMBING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType STAIR_CLIMBING_MACHINE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType STRENGTH_TRAINING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType STRETCHING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SURFING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SWIMMING_OPEN_WATER;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SWIMMING_POOL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType TABLE_TENNIS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType TENNIS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType UNKNOWN;
- enum_constant public static final androidx.health.services.client.data.ExerciseType UPPER_TWIST;
- enum_constant public static final androidx.health.services.client.data.ExerciseType VOLLEYBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType WALKING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType WATER_POLO;
- enum_constant public static final androidx.health.services.client.data.ExerciseType WEIGHTLIFTING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType WORKOUT;
- enum_constant public static final androidx.health.services.client.data.ExerciseType YOGA;
+ property public final String name;
+ field public static final androidx.health.services.client.data.ExerciseType ALPINE_SKIING;
+ field public static final androidx.health.services.client.data.ExerciseType BACKPACKING;
+ field public static final androidx.health.services.client.data.ExerciseType BACK_EXTENSION;
+ field public static final androidx.health.services.client.data.ExerciseType BADMINTON;
+ field public static final androidx.health.services.client.data.ExerciseType BARBELL_SHOULDER_PRESS;
+ field public static final androidx.health.services.client.data.ExerciseType BASEBALL;
+ field public static final androidx.health.services.client.data.ExerciseType BASKETBALL;
+ field public static final androidx.health.services.client.data.ExerciseType BENCH_PRESS;
+ field public static final androidx.health.services.client.data.ExerciseType BENCH_SIT_UP;
+ field public static final androidx.health.services.client.data.ExerciseType BIKING;
+ field public static final androidx.health.services.client.data.ExerciseType BIKING_STATIONARY;
+ field public static final androidx.health.services.client.data.ExerciseType BOOT_CAMP;
+ field public static final androidx.health.services.client.data.ExerciseType BOXING;
+ field public static final androidx.health.services.client.data.ExerciseType BURPEE;
+ field public static final androidx.health.services.client.data.ExerciseType CALISTHENICS;
+ field public static final androidx.health.services.client.data.ExerciseType CRICKET;
+ field public static final androidx.health.services.client.data.ExerciseType CROSS_COUNTRY_SKIING;
+ field public static final androidx.health.services.client.data.ExerciseType CRUNCH;
field public static final androidx.health.services.client.data.ExerciseType.Companion Companion;
+ field public static final androidx.health.services.client.data.ExerciseType DANCING;
+ field public static final androidx.health.services.client.data.ExerciseType DEADLIFT;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_CURL_LEFT_ARM;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_CURL_RIGHT_ARM;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_FRONT_RAISE;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_LATERAL_RAISE;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_LEFT_ARM;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_RIGHT_ARM;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_TWO_ARM;
+ field public static final androidx.health.services.client.data.ExerciseType ELLIPTICAL;
+ field public static final androidx.health.services.client.data.ExerciseType EXERCISE_CLASS;
+ field public static final androidx.health.services.client.data.ExerciseType FENCING;
+ field public static final androidx.health.services.client.data.ExerciseType FOOTBALL_AMERICAN;
+ field public static final androidx.health.services.client.data.ExerciseType FOOTBALL_AUSTRALIAN;
+ field public static final androidx.health.services.client.data.ExerciseType FORWARD_TWIST;
+ field public static final androidx.health.services.client.data.ExerciseType FRISBEE_DISC;
+ field public static final androidx.health.services.client.data.ExerciseType GOLF;
+ field public static final androidx.health.services.client.data.ExerciseType GUIDED_BREATHING;
+ field public static final androidx.health.services.client.data.ExerciseType GYMNASTICS;
+ field public static final androidx.health.services.client.data.ExerciseType HANDBALL;
+ field public static final androidx.health.services.client.data.ExerciseType HIGH_INTENSITY_INTERVAL_TRAINING;
+ field public static final androidx.health.services.client.data.ExerciseType HIKING;
+ field public static final androidx.health.services.client.data.ExerciseType HORSE_RIDING;
+ field public static final androidx.health.services.client.data.ExerciseType ICE_HOCKEY;
+ field public static final androidx.health.services.client.data.ExerciseType ICE_SKATING;
+ field public static final androidx.health.services.client.data.ExerciseType INLINE_SKATING;
+ field public static final androidx.health.services.client.data.ExerciseType JUMPING_JACK;
+ field public static final androidx.health.services.client.data.ExerciseType JUMP_ROPE;
+ field public static final androidx.health.services.client.data.ExerciseType LAT_PULL_DOWN;
+ field public static final androidx.health.services.client.data.ExerciseType LUNGE;
+ field public static final androidx.health.services.client.data.ExerciseType MARTIAL_ARTS;
+ field public static final androidx.health.services.client.data.ExerciseType MEDITATION;
+ field public static final androidx.health.services.client.data.ExerciseType MOUNTAIN_BIKING;
+ field public static final androidx.health.services.client.data.ExerciseType ORIENTEERING;
+ field public static final androidx.health.services.client.data.ExerciseType PADDLING;
+ field public static final androidx.health.services.client.data.ExerciseType PARA_GLIDING;
+ field public static final androidx.health.services.client.data.ExerciseType PILATES;
+ field public static final androidx.health.services.client.data.ExerciseType PLANK;
+ field public static final androidx.health.services.client.data.ExerciseType RACQUETBALL;
+ field public static final androidx.health.services.client.data.ExerciseType ROCK_CLIMBING;
+ field public static final androidx.health.services.client.data.ExerciseType ROLLER_HOCKEY;
+ field public static final androidx.health.services.client.data.ExerciseType ROLLER_SKATING;
+ field public static final androidx.health.services.client.data.ExerciseType ROWING;
+ field public static final androidx.health.services.client.data.ExerciseType ROWING_MACHINE;
+ field public static final androidx.health.services.client.data.ExerciseType RUGBY;
+ field public static final androidx.health.services.client.data.ExerciseType RUNNING;
+ field public static final androidx.health.services.client.data.ExerciseType RUNNING_TREADMILL;
+ field public static final androidx.health.services.client.data.ExerciseType SAILING;
+ field public static final androidx.health.services.client.data.ExerciseType SCUBA_DIVING;
+ field public static final androidx.health.services.client.data.ExerciseType SKATING;
+ field public static final androidx.health.services.client.data.ExerciseType SKIING;
+ field public static final androidx.health.services.client.data.ExerciseType SNOWBOARDING;
+ field public static final androidx.health.services.client.data.ExerciseType SNOWSHOEING;
+ field public static final androidx.health.services.client.data.ExerciseType SOCCER;
+ field public static final androidx.health.services.client.data.ExerciseType SOFTBALL;
+ field public static final androidx.health.services.client.data.ExerciseType SQUASH;
+ field public static final androidx.health.services.client.data.ExerciseType SQUAT;
+ field public static final androidx.health.services.client.data.ExerciseType STAIR_CLIMBING;
+ field public static final androidx.health.services.client.data.ExerciseType STAIR_CLIMBING_MACHINE;
+ field public static final androidx.health.services.client.data.ExerciseType STRENGTH_TRAINING;
+ field public static final androidx.health.services.client.data.ExerciseType STRETCHING;
+ field public static final androidx.health.services.client.data.ExerciseType SURFING;
+ field public static final androidx.health.services.client.data.ExerciseType SWIMMING_OPEN_WATER;
+ field public static final androidx.health.services.client.data.ExerciseType SWIMMING_POOL;
+ field public static final androidx.health.services.client.data.ExerciseType TABLE_TENNIS;
+ field public static final androidx.health.services.client.data.ExerciseType TENNIS;
+ field public static final androidx.health.services.client.data.ExerciseType UNKNOWN;
+ field public static final androidx.health.services.client.data.ExerciseType UPPER_TWIST;
+ field public static final androidx.health.services.client.data.ExerciseType VOLLEYBALL;
+ field public static final androidx.health.services.client.data.ExerciseType WALKING;
+ field public static final androidx.health.services.client.data.ExerciseType WATER_POLO;
+ field public static final androidx.health.services.client.data.ExerciseType WEIGHTLIFTING;
+ field public static final androidx.health.services.client.data.ExerciseType WORKOUT;
+ field public static final androidx.health.services.client.data.ExerciseType YACHTING;
+ field public static final androidx.health.services.client.data.ExerciseType YOGA;
}
public static final class ExerciseType.Companion {
@@ -582,7 +597,7 @@
}
public final class ExerciseTypeCapabilities extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.ExerciseTypeCapabilities> {
- ctor public ExerciseTypeCapabilities(java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypes, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.Set<? extends androidx.health.services.client.data.ComparisonType>> supportedGoals, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.Set<? extends androidx.health.services.client.data.ComparisonType>> supportedMilestones, boolean supportsAutoPauseAndResume, boolean supportsLaps);
+ ctor public ExerciseTypeCapabilities(java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypes, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.Set<androidx.health.services.client.data.ComparisonType>> supportedGoals, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.Set<androidx.health.services.client.data.ComparisonType>> supportedMilestones, boolean supportsAutoPauseAndResume, boolean supportsLaps);
method public androidx.health.services.client.proto.DataProto.ExerciseTypeCapabilities getProto();
method public java.util.Set<androidx.health.services.client.data.DataType> getSupportedDataTypes();
method public java.util.Map<androidx.health.services.client.data.DataType,java.util.Set<androidx.health.services.client.data.ComparisonType>> getSupportedGoals();
@@ -602,8 +617,10 @@
}
public final class ExerciseUpdate extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.ExerciseUpdate> {
- ctor public ExerciseUpdate(androidx.health.services.client.data.ExerciseState state, java.time.Instant? startTime, java.time.Duration activeDuration, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.List<androidx.health.services.client.data.DataPoint>> latestMetrics, java.util.Map<androidx.health.services.client.data.DataType,? extends androidx.health.services.client.data.AggregateDataPoint> latestAggregateMetrics, java.util.Set<androidx.health.services.client.data.AchievedExerciseGoal> latestAchievedGoals, java.util.Set<androidx.health.services.client.data.MilestoneMarkerSummary> latestMilestoneMarkerSummaries, androidx.health.services.client.data.ExerciseConfig? exerciseConfig);
+ ctor public ExerciseUpdate(androidx.health.services.client.data.ExerciseState state, java.time.Instant? startTime, java.time.Duration activeDuration, java.time.Duration? updateDurationFromBoot, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.List<androidx.health.services.client.data.DataPoint>> latestMetrics, java.util.Map<androidx.health.services.client.data.DataType,? extends androidx.health.services.client.data.AggregateDataPoint> latestAggregateMetrics, java.util.Set<androidx.health.services.client.data.AchievedExerciseGoal> latestAchievedGoals, java.util.Set<androidx.health.services.client.data.MilestoneMarkerSummary> latestMilestoneMarkerSummaries, androidx.health.services.client.data.ExerciseConfig? exerciseConfig, androidx.health.services.client.data.ExerciseUpdate.ActiveDurationCheckpoint? activeDurationCheckpoint);
method public java.time.Duration getActiveDuration();
+ method public java.time.Duration getActiveDurationAtDataPoint(androidx.health.services.client.data.DataPoint dataPoint);
+ method public androidx.health.services.client.data.ExerciseUpdate.ActiveDurationCheckpoint? getActiveDurationCheckpoint();
method public androidx.health.services.client.data.ExerciseConfig? getExerciseConfig();
method public java.util.Set<androidx.health.services.client.data.AchievedExerciseGoal> getLatestAchievedGoals();
method public java.util.Map<androidx.health.services.client.data.DataType,androidx.health.services.client.data.AggregateDataPoint> getLatestAggregateMetrics();
@@ -613,6 +630,7 @@
method public java.time.Instant? getStartTime();
method public androidx.health.services.client.data.ExerciseState getState();
property public final java.time.Duration activeDuration;
+ property public final androidx.health.services.client.data.ExerciseUpdate.ActiveDurationCheckpoint? activeDurationCheckpoint;
property public final androidx.health.services.client.data.ExerciseConfig? exerciseConfig;
property public final java.util.Set<androidx.health.services.client.data.AchievedExerciseGoal> latestAchievedGoals;
property public final java.util.Map<androidx.health.services.client.data.DataType,androidx.health.services.client.data.AggregateDataPoint> latestAggregateMetrics;
@@ -624,37 +642,52 @@
field public static final androidx.health.services.client.data.ExerciseUpdate.Companion Companion;
}
+ public static final class ExerciseUpdate.ActiveDurationCheckpoint {
+ ctor public ExerciseUpdate.ActiveDurationCheckpoint(java.time.Instant time, java.time.Duration activeDuration);
+ method public java.time.Duration getActiveDuration();
+ method public java.time.Instant getTime();
+ property public final java.time.Duration activeDuration;
+ property public final java.time.Instant time;
+ }
+
public static final class ExerciseUpdate.Companion {
}
- public final class HrAccuracy extends androidx.health.services.client.data.DataPointAccuracy {
- ctor public HrAccuracy(androidx.health.services.client.data.HrAccuracy.SensorStatus sensorStatus);
+ public final class HeartRateAccuracy extends androidx.health.services.client.data.DataPointAccuracy {
+ ctor public HeartRateAccuracy(androidx.health.services.client.data.HeartRateAccuracy.SensorStatus sensorStatus);
method public androidx.health.services.client.proto.DataProto.DataPointAccuracy getProto();
- method public androidx.health.services.client.data.HrAccuracy.SensorStatus getSensorStatus();
- property public final androidx.health.services.client.data.HrAccuracy.SensorStatus sensorStatus;
- field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.HrAccuracy> CREATOR;
- field public static final androidx.health.services.client.data.HrAccuracy.Companion Companion;
+ method public androidx.health.services.client.data.HeartRateAccuracy.SensorStatus getSensorStatus();
+ property public final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus sensorStatus;
+ field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.HeartRateAccuracy> CREATOR;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.Companion Companion;
}
- public static final class HrAccuracy.Companion {
+ public static final class HeartRateAccuracy.Companion {
}
- public enum HrAccuracy.SensorStatus {
- method public final int getId();
+ public static final class HeartRateAccuracy.SensorStatus {
+ method public int getId();
+ method public String getName();
property public final int id;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus ACCURACY_HIGH;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus ACCURACY_LOW;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus ACCURACY_MEDIUM;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus NO_CONTACT;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus UNKNOWN;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus UNRELIABLE;
+ property public final String name;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus ACCURACY_HIGH;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus ACCURACY_LOW;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus ACCURACY_MEDIUM;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus.Companion Companion;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus NO_CONTACT;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus UNKNOWN;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus UNRELIABLE;
+ }
+
+ public static final class HeartRateAccuracy.SensorStatus.Companion {
}
public final class LocationAccuracy extends androidx.health.services.client.data.DataPointAccuracy {
- ctor public LocationAccuracy(double horizontalPositionError);
- method public double getHorizontalPositionError();
+ ctor public LocationAccuracy(double horizontalPositionErrorMeters, optional double verticalPositionErrorMeters);
+ ctor public LocationAccuracy(double horizontalPositionErrorMeters);
+ method public double getHorizontalPositionErrorMeters();
method public androidx.health.services.client.proto.DataProto.DataPointAccuracy getProto();
- property public final double horizontalPositionError;
+ property public final double horizontalPositionErrorMeters;
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.LocationAccuracy> CREATOR;
field public static final androidx.health.services.client.data.LocationAccuracy.Companion Companion;
}
@@ -662,17 +695,19 @@
public static final class LocationAccuracy.Companion {
}
- public enum LocationAvailability implements androidx.health.services.client.data.Availability {
- method public static final androidx.health.services.client.data.LocationAvailability? fromId(int id);
+ public final class LocationAvailability implements androidx.health.services.client.data.Availability {
+ method public static androidx.health.services.client.data.LocationAvailability? fromId(int id);
method public int getId();
+ method public String getName();
property public int id;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability ACQUIRED_TETHERED;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability ACQUIRED_UNTETHERED;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability ACQUIRING;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability NO_GPS;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability UNAVAILABLE;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability UNKNOWN;
+ property public final String name;
+ field public static final androidx.health.services.client.data.LocationAvailability ACQUIRED_TETHERED;
+ field public static final androidx.health.services.client.data.LocationAvailability ACQUIRED_UNTETHERED;
+ field public static final androidx.health.services.client.data.LocationAvailability ACQUIRING;
field public static final androidx.health.services.client.data.LocationAvailability.Companion Companion;
+ field public static final androidx.health.services.client.data.LocationAvailability NO_GNSS;
+ field public static final androidx.health.services.client.data.LocationAvailability UNAVAILABLE;
+ field public static final androidx.health.services.client.data.LocationAvailability UNKNOWN;
}
public static final class LocationAvailability.Companion {
@@ -712,15 +747,15 @@
}
public final class PassiveGoal extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.PassiveGoal> {
- ctor public PassiveGoal(androidx.health.services.client.data.DataTypeCondition dataTypeCondition, androidx.health.services.client.data.PassiveGoal.TriggerType triggerType);
+ ctor public PassiveGoal(androidx.health.services.client.data.DataTypeCondition dataTypeCondition, int triggerFrequency);
method public static androidx.health.services.client.data.PassiveGoal? fromIntent(android.content.Intent intent);
method public androidx.health.services.client.data.DataTypeCondition getDataTypeCondition();
method public androidx.health.services.client.proto.DataProto.PassiveGoal getProto();
- method public androidx.health.services.client.data.PassiveGoal.TriggerType getTriggerType();
+ method public int getTriggerFrequency();
method public boolean isTriggered(androidx.health.services.client.data.DataPoint dataPoint);
method public void putToIntent(android.content.Intent intent);
property public final androidx.health.services.client.data.DataTypeCondition dataTypeCondition;
- property public final androidx.health.services.client.data.PassiveGoal.TriggerType triggerType;
+ property public final int triggerFrequency;
field public static final String ACTION_GOAL = "hs.passivemonitoring.GOAL";
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.PassiveGoal> CREATOR;
field public static final androidx.health.services.client.data.PassiveGoal.Companion Companion;
@@ -730,25 +765,12 @@
method public androidx.health.services.client.data.PassiveGoal? fromIntent(android.content.Intent intent);
}
- public enum PassiveGoal.TriggerType {
- method public static final androidx.health.services.client.data.PassiveGoal.TriggerType? fromId(int id);
- method public final int getId();
- property public final int id;
- enum_constant public static final androidx.health.services.client.data.PassiveGoal.TriggerType ONCE;
- enum_constant public static final androidx.health.services.client.data.PassiveGoal.TriggerType REPEATED;
- field public static final androidx.health.services.client.data.PassiveGoal.TriggerType.Companion Companion;
- }
-
- public static final class PassiveGoal.TriggerType.Companion {
- method public androidx.health.services.client.data.PassiveGoal.TriggerType? fromId(int id);
- }
-
public final class PassiveMonitoringCapabilities extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.PassiveMonitoringCapabilities> {
- ctor public PassiveMonitoringCapabilities(java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesPassiveMonitoring, java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesEvents);
+ ctor public PassiveMonitoringCapabilities(java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesPassiveMonitoring, java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesPassiveGoals, java.util.Set<androidx.health.services.client.data.UserActivityState> supportedUserActivityStates);
method public androidx.health.services.client.proto.DataProto.PassiveMonitoringCapabilities getProto();
- method public java.util.Set<androidx.health.services.client.data.DataType> getSupportedDataTypesEvents();
+ method public java.util.Set<androidx.health.services.client.data.DataType> getSupportedDataTypesPassiveGoals();
method public java.util.Set<androidx.health.services.client.data.DataType> getSupportedDataTypesPassiveMonitoring();
- property public final java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesEvents;
+ property public final java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesPassiveGoals;
property public final java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesPassiveMonitoring;
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.PassiveMonitoringCapabilities> CREATOR;
field public static final androidx.health.services.client.data.PassiveMonitoringCapabilities.Companion Companion;
@@ -758,15 +780,15 @@
}
public final class PassiveMonitoringConfig extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.PassiveMonitoringConfig> {
- ctor protected PassiveMonitoringConfig(java.util.Set<androidx.health.services.client.data.DataType> dataTypes, android.content.ComponentName componentName, boolean shouldIncludeUserActivityState);
+ ctor public PassiveMonitoringConfig(java.util.Set<androidx.health.services.client.data.DataType> dataTypes, android.content.ComponentName componentName, optional boolean requestUserActivityState);
method public static androidx.health.services.client.data.PassiveMonitoringConfig.Builder builder();
method public android.content.ComponentName getComponentName();
method public java.util.Set<androidx.health.services.client.data.DataType> getDataTypes();
method public androidx.health.services.client.proto.DataProto.PassiveMonitoringConfig getProto();
- method public boolean getShouldIncludeUserActivityState();
+ method public boolean getRequestUserActivityState();
property public final android.content.ComponentName componentName;
property public final java.util.Set<androidx.health.services.client.data.DataType> dataTypes;
- property public final boolean shouldIncludeUserActivityState;
+ property public final boolean requestUserActivityState;
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.PassiveMonitoringConfig> CREATOR;
field public static final androidx.health.services.client.data.PassiveMonitoringConfig.Companion Companion;
}
@@ -776,7 +798,7 @@
method public androidx.health.services.client.data.PassiveMonitoringConfig build();
method public androidx.health.services.client.data.PassiveMonitoringConfig.Builder setComponentName(android.content.ComponentName componentName);
method public androidx.health.services.client.data.PassiveMonitoringConfig.Builder setDataTypes(java.util.Set<androidx.health.services.client.data.DataType> dataTypes);
- method public androidx.health.services.client.data.PassiveMonitoringConfig.Builder setShouldIncludeUserActivityState(boolean shouldIncludeUserActivityState);
+ method public androidx.health.services.client.data.PassiveMonitoringConfig.Builder setRequestUserActivityState(boolean requestUserActivityState);
}
public static final class PassiveMonitoringConfig.Companion {
@@ -861,19 +883,20 @@
method public androidx.health.services.client.data.UserActivityInfo createUnknownTypeState(java.time.Instant stateChangeTime);
}
- public enum UserActivityState {
- method public static final androidx.health.services.client.data.UserActivityState? fromId(int id);
- method public final int getId();
+ public final class UserActivityState {
+ ctor public UserActivityState(int id, String name);
+ method public int getId();
+ method public String getName();
property public final int id;
- enum_constant public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_ASLEEP;
- enum_constant public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_EXERCISE;
- enum_constant public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_PASSIVE;
- enum_constant public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_UNKNOWN;
+ property public final String name;
field public static final androidx.health.services.client.data.UserActivityState.Companion Companion;
+ field public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_ASLEEP;
+ field public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_EXERCISE;
+ field public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_PASSIVE;
+ field public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_UNKNOWN;
}
public static final class UserActivityState.Companion {
- method public androidx.health.services.client.data.UserActivityState? fromId(int id);
}
public final class Value extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.Value> {
@@ -916,8 +939,7 @@
}
public final class WarmUpConfig extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.WarmUpConfig> {
- ctor protected WarmUpConfig(androidx.health.services.client.data.ExerciseType exerciseType, java.util.Set<androidx.health.services.client.data.DataType> dataTypes);
- method public static androidx.health.services.client.data.WarmUpConfig.Builder builder();
+ ctor public WarmUpConfig(androidx.health.services.client.data.ExerciseType exerciseType, java.util.Set<androidx.health.services.client.data.DataType> dataTypes);
method public java.util.Set<androidx.health.services.client.data.DataType> getDataTypes();
method public androidx.health.services.client.data.ExerciseType getExerciseType();
method public androidx.health.services.client.proto.DataProto.WarmUpConfig getProto();
@@ -927,15 +949,7 @@
field public static final androidx.health.services.client.data.WarmUpConfig.Companion Companion;
}
- public static final class WarmUpConfig.Builder {
- ctor public WarmUpConfig.Builder();
- method public androidx.health.services.client.data.WarmUpConfig build();
- method public androidx.health.services.client.data.WarmUpConfig.Builder setDataTypes(java.util.Set<androidx.health.services.client.data.DataType> dataTypes);
- method public androidx.health.services.client.data.WarmUpConfig.Builder setExerciseType(androidx.health.services.client.data.ExerciseType exerciseType);
- }
-
public static final class WarmUpConfig.Companion {
- method public androidx.health.services.client.data.WarmUpConfig.Builder builder();
}
}
diff --git a/health/health-services-client/api/restricted_current.txt b/health/health-services-client/api/restricted_current.txt
index edfe8a1..7c59c28 100644
--- a/health/health-services-client/api/restricted_current.txt
+++ b/health/health-services-client/api/restricted_current.txt
@@ -2,29 +2,30 @@
package androidx.health.services.client {
public interface ExerciseClient {
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> addGoalToActiveExercise(androidx.health.services.client.data.ExerciseGoal exerciseGoal);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> clearUpdateListener(androidx.health.services.client.ExerciseUpdateListener listener);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> endExercise();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> flushExercise();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> addGoalToActiveExerciseAsync(androidx.health.services.client.data.ExerciseGoal exerciseGoal);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> clearUpdateCallbackAsync(androidx.health.services.client.ExerciseUpdateCallback callback);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> endExerciseAsync();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> flushExerciseAsync();
method public com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.ExerciseCapabilities> getCapabilities();
- method public com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.ExerciseInfo> getCurrentExerciseInfo();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> markLap();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> overrideAutoPauseAndResumeForActiveExercise(boolean enabled);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> pauseExercise();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> prepareExercise(androidx.health.services.client.data.WarmUpConfig configuration);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> removeGoalFromActiveExercise(androidx.health.services.client.data.ExerciseGoal exerciseGoal);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> resumeExercise();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> setUpdateListener(androidx.health.services.client.ExerciseUpdateListener listener);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> setUpdateListener(androidx.health.services.client.ExerciseUpdateListener listener, java.util.concurrent.Executor executor);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> startExercise(androidx.health.services.client.data.ExerciseConfig configuration);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.ExerciseInfo> getCurrentExerciseInfoAsync();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> markLapAsync();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> overrideAutoPauseAndResumeForActiveExerciseAsync(boolean enabled);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> pauseExerciseAsync();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> prepareExerciseAsync(androidx.health.services.client.data.WarmUpConfig configuration);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> removeGoalFromActiveExerciseAsync(androidx.health.services.client.data.ExerciseGoal exerciseGoal);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> resumeExerciseAsync();
+ method public void setUpdateCallback(androidx.health.services.client.ExerciseUpdateCallback callback);
+ method public void setUpdateCallback(java.util.concurrent.Executor executor, androidx.health.services.client.ExerciseUpdateCallback callback);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> startExerciseAsync(androidx.health.services.client.data.ExerciseConfig configuration);
property public abstract com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.ExerciseCapabilities> capabilities;
- property public abstract com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.ExerciseInfo> currentExerciseInfo;
}
- public interface ExerciseUpdateListener {
+ public interface ExerciseUpdateCallback {
method public void onAvailabilityChanged(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.data.Availability availability);
- method public void onExerciseUpdate(androidx.health.services.client.data.ExerciseUpdate update);
- method public void onLapSummary(androidx.health.services.client.data.ExerciseLapSummary lapSummary);
+ method public void onExerciseUpdateReceived(androidx.health.services.client.data.ExerciseUpdate update);
+ method public void onLapSummaryReceived(androidx.health.services.client.data.ExerciseLapSummary lapSummary);
+ method public void onRegistered();
+ method public void onRegistrationFailed(Throwable throwable);
}
public final class HealthServices {
@@ -43,14 +44,16 @@
public interface MeasureCallback {
method public void onAvailabilityChanged(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.data.Availability availability);
- method public void onData(java.util.List<androidx.health.services.client.data.DataPoint> data);
+ method public void onDataReceived(java.util.List<androidx.health.services.client.data.DataPoint> data);
+ method public default void onRegistered();
+ method public default void onRegistrationFailed(Throwable throwable);
}
public interface MeasureClient {
method public com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.MeasureCapabilities> getCapabilities();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerCallback(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.MeasureCallback callback);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerCallback(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.MeasureCallback callback, java.util.concurrent.Executor executor);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterCallback(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.MeasureCallback callback);
+ method public void registerCallback(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.MeasureCallback callback);
+ method public void registerCallback(androidx.health.services.client.data.DataType dataType, java.util.concurrent.Executor executor, androidx.health.services.client.MeasureCallback callback);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterCallbackAsync(androidx.health.services.client.data.DataType dataType, androidx.health.services.client.MeasureCallback callback);
property public abstract com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.MeasureCapabilities> capabilities;
}
@@ -59,13 +62,13 @@
}
public interface PassiveMonitoringClient {
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> flush();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> flushAsync();
method public com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.PassiveMonitoringCapabilities> getCapabilities();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerDataCallback(androidx.health.services.client.data.PassiveMonitoringConfig configuration);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerDataCallback(androidx.health.services.client.data.PassiveMonitoringConfig configuration, androidx.health.services.client.PassiveMonitoringCallback callback);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerPassiveGoalCallback(androidx.health.services.client.data.PassiveGoal passiveGoal, android.content.ComponentName componentName);
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterDataCallback();
- method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterPassiveGoalCallback(androidx.health.services.client.data.PassiveGoal passiveGoal);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerDataCallbackAsync(androidx.health.services.client.data.PassiveMonitoringConfig configuration);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerDataCallbackAsync(androidx.health.services.client.data.PassiveMonitoringConfig configuration, androidx.health.services.client.PassiveMonitoringCallback callback);
+ method public <T extends android.content.BroadcastReceiver> com.google.common.util.concurrent.ListenableFuture<java.lang.Void> registerPassiveGoalCallbackAsync(androidx.health.services.client.data.PassiveGoal passiveGoal, Class<T> broadcastReceiver);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterDataCallbackAsync();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void> unregisterPassiveGoalCallbackAsync(androidx.health.services.client.data.PassiveGoal passiveGoal);
property public abstract com.google.common.util.concurrent.ListenableFuture<androidx.health.services.client.data.PassiveMonitoringCapabilities> capabilities;
}
@@ -90,12 +93,12 @@
}
@Keep public final class AggregateDataPoints {
- method public static androidx.health.services.client.data.StatisticalDataPoint aggregateAbsoluteElevation(double minAbsElevation, double maxAbsElevation, double avgAbsElevation, java.time.Instant startTime, java.time.Instant endTime);
+ method public static androidx.health.services.client.data.StatisticalDataPoint aggregateAbsoluteElevation(double minAbsElevationMeters, double maxAbsElevationMeters, double avgAbsElevationMeters, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.AggregateDataPoint aggregateCalories(double kcalories, java.time.Instant startTime, java.time.Instant endTime);
- method public static androidx.health.services.client.data.AggregateDataPoint aggregateDistance(double distance, java.time.Instant startTime, java.time.Instant endTime);
+ method public static androidx.health.services.client.data.AggregateDataPoint aggregateDistance(double meters, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.AggregateDataPoint aggregateElevationGain(double gainMeters, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.StatisticalDataPoint aggregateHeartRate(double minBpm, double maxBpm, double avgBpm, java.time.Instant startTime, java.time.Instant endTime);
- method public static androidx.health.services.client.data.AggregateDataPoint aggregatePace(double minMillisPerKm, double maxMillisPerKm, double avgMillisPerKm, java.time.Instant startTime, java.time.Instant endTime);
+ method public static androidx.health.services.client.data.AggregateDataPoint aggregatePace(java.time.Duration minMillisPerKm, java.time.Duration maxMillisPerKm, java.time.Duration avgMillisPerKm, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.StatisticalDataPoint aggregateSpeed(double minMetersPerSecond, double maxMetersPerSecond, double avgMetersPerSecond, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.AggregateDataPoint aggregateSteps(long steps, java.time.Instant startTime, java.time.Instant endTime);
method public static androidx.health.services.client.data.AggregateDataPoint aggregateSwimmingStrokes(long swimmingStrokes, java.time.Instant startTime, java.time.Instant endTime);
@@ -111,19 +114,20 @@
public static final class Availability.Companion {
}
- public enum ComparisonType {
- method public static final androidx.health.services.client.data.ComparisonType? fromId(int id);
- method public final int getId();
+ public final class ComparisonType {
+ method public int getId();
+ method public String getName();
property public final int id;
- enum_constant public static final androidx.health.services.client.data.ComparisonType GREATER_THAN;
- enum_constant public static final androidx.health.services.client.data.ComparisonType GREATER_THAN_OR_EQUAL;
- enum_constant public static final androidx.health.services.client.data.ComparisonType LESS_THAN;
- enum_constant public static final androidx.health.services.client.data.ComparisonType LESS_THAN_OR_EQUAL;
+ property public final String name;
field public static final androidx.health.services.client.data.ComparisonType.Companion Companion;
+ field public static final androidx.health.services.client.data.ComparisonType GREATER_THAN;
+ field public static final androidx.health.services.client.data.ComparisonType GREATER_THAN_OR_EQUAL;
+ field public static final androidx.health.services.client.data.ComparisonType LESS_THAN;
+ field public static final androidx.health.services.client.data.ComparisonType LESS_THAN_OR_EQUAL;
+ field public static final androidx.health.services.client.data.ComparisonType UNKNOWN;
}
public static final class ComparisonType.Companion {
- method public androidx.health.services.client.data.ComparisonType? fromId(int id);
}
public final class CumulativeDataPoint extends androidx.health.services.client.data.AggregateDataPoint {
@@ -189,24 +193,22 @@
method public static androidx.health.services.client.data.DataPoint calories(double kcalories, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot, optional android.os.Bundle? metadata);
method public static androidx.health.services.client.data.DataPoint calories(double kcalories, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method public static androidx.health.services.client.data.DataPoint dailyCalories(double calories, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
- method public static androidx.health.services.client.data.DataPoint dailyDistance(double distance, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
+ method public static androidx.health.services.client.data.DataPoint dailyDistance(double meters, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method public static androidx.health.services.client.data.DataPoint dailyFloors(double floors, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method public static androidx.health.services.client.data.DataPoint dailySteps(long steps, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method public static androidx.health.services.client.data.DataPoint distance(double meters, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot, optional android.os.Bundle? metadata);
method public static androidx.health.services.client.data.DataPoint distance(double meters, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
- method public static androidx.health.services.client.data.DataPoint elevationGain(double meters, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot, optional android.os.Bundle? metadata);
- method public static androidx.health.services.client.data.DataPoint elevationGain(double meters, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method public static androidx.health.services.client.data.DataPoint floors(double floors, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot, optional android.os.Bundle? metadata);
method public static androidx.health.services.client.data.DataPoint floors(double floors, java.time.Duration startDurationFromBoot, java.time.Duration endDurationFromBoot);
method @Keep public static java.util.List<androidx.health.services.client.data.DataPoint> getDataPoints(android.content.Intent intent);
method public static boolean getPermissionsGranted(android.content.Intent intent);
- method public static androidx.health.services.client.data.DataPoint heartRate(double bpm, java.time.Duration durationFromBoot, optional androidx.health.services.client.data.HrAccuracy? accuracy);
+ method public static androidx.health.services.client.data.DataPoint heartRate(double bpm, java.time.Duration durationFromBoot, optional androidx.health.services.client.data.HeartRateAccuracy? accuracy);
method public static androidx.health.services.client.data.DataPoint heartRate(double bpm, java.time.Duration durationFromBoot);
method public static androidx.health.services.client.data.DataPoint location(double latitude, double longitude, optional double altitude, optional double bearing, java.time.Duration durationFromBoot, optional androidx.health.services.client.data.LocationAccuracy? accuracy);
method public static androidx.health.services.client.data.DataPoint location(double latitude, double longitude, optional double altitude, optional double bearing, java.time.Duration durationFromBoot);
method public static androidx.health.services.client.data.DataPoint location(double latitude, double longitude, optional double altitude, java.time.Duration durationFromBoot);
method public static androidx.health.services.client.data.DataPoint location(double latitude, double longitude, java.time.Duration durationFromBoot);
- method public static androidx.health.services.client.data.DataPoint pace(double millisPerKm, java.time.Duration durationFromBoot);
+ method public static androidx.health.services.client.data.DataPoint pace(java.time.Duration millisPerKm, java.time.Duration durationFromBoot);
method public static void putDataPoints(android.content.Intent intent, java.util.Collection<androidx.health.services.client.data.DataPoint> dataPoints);
method public static void putPermissionsGranted(android.content.Intent intent, boolean granted);
method public static androidx.health.services.client.data.DataPoint speed(double metersPerSecond, java.time.Duration durationFromBoot, optional android.os.Bundle? metadata);
@@ -243,6 +245,7 @@
field public static final androidx.health.services.client.data.DataType DECLINE_DURATION;
field public static final androidx.health.services.client.data.DataType DISTANCE;
field public static final androidx.health.services.client.data.DataType ELEVATION_GAIN;
+ field public static final androidx.health.services.client.data.DataType ELEVATION_LOSS;
field public static final androidx.health.services.client.data.DataType FLAT_GROUND_DISTANCE;
field public static final androidx.health.services.client.data.DataType FLAT_GROUND_DURATION;
field public static final androidx.health.services.client.data.DataType FLOORS;
@@ -269,20 +272,31 @@
public static final class DataType.Companion {
}
- public enum DataType.TimeType {
- enum_constant public static final androidx.health.services.client.data.DataType.TimeType INTERVAL;
- enum_constant public static final androidx.health.services.client.data.DataType.TimeType SAMPLE;
+ public static final class DataType.TimeType {
+ method public int getId();
+ method public String getName();
+ property public final int id;
+ property public final String name;
+ field public static final androidx.health.services.client.data.DataType.TimeType.Companion Companion;
+ field public static final androidx.health.services.client.data.DataType.TimeType INTERVAL;
+ field public static final androidx.health.services.client.data.DataType.TimeType SAMPLE;
}
- public enum DataTypeAvailability implements androidx.health.services.client.data.Availability {
- method public static final androidx.health.services.client.data.DataTypeAvailability? fromId(int id);
+ public static final class DataType.TimeType.Companion {
+ }
+
+ public final class DataTypeAvailability implements androidx.health.services.client.data.Availability {
+ method public static androidx.health.services.client.data.DataTypeAvailability? fromId(int id);
method public int getId();
+ method public String getName();
property public int id;
- enum_constant public static final androidx.health.services.client.data.DataTypeAvailability ACQUIRING;
- enum_constant public static final androidx.health.services.client.data.DataTypeAvailability AVAILABLE;
- enum_constant public static final androidx.health.services.client.data.DataTypeAvailability UNAVAILABLE;
- enum_constant public static final androidx.health.services.client.data.DataTypeAvailability UNKNOWN;
+ property public final String name;
+ field public static final androidx.health.services.client.data.DataTypeAvailability ACQUIRING;
+ field public static final androidx.health.services.client.data.DataTypeAvailability AVAILABLE;
field public static final androidx.health.services.client.data.DataTypeAvailability.Companion Companion;
+ field public static final androidx.health.services.client.data.DataTypeAvailability UNAVAILABLE;
+ field public static final androidx.health.services.client.data.DataTypeAvailability UNAVAILABLE_DEVICE_OFF_BODY;
+ field public static final androidx.health.services.client.data.DataTypeAvailability UNKNOWN;
}
public static final class DataTypeAvailability.Companion {
@@ -331,7 +345,7 @@
}
public final class ExerciseConfig extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.ExerciseConfig> {
- ctor protected ExerciseConfig(androidx.health.services.client.data.ExerciseType exerciseType, java.util.Set<androidx.health.services.client.data.DataType> dataTypes, java.util.Set<androidx.health.services.client.data.DataType> aggregateDataTypes, boolean shouldEnableAutoPauseAndResume, boolean shouldEnableGps, java.util.List<androidx.health.services.client.data.ExerciseGoal> exerciseGoals, android.os.Bundle exerciseParams);
+ ctor public ExerciseConfig(androidx.health.services.client.data.ExerciseType exerciseType, java.util.Set<androidx.health.services.client.data.DataType> dataTypes, java.util.Set<androidx.health.services.client.data.DataType> aggregateDataTypes, boolean isAutoPauseAndResumeEnabled, boolean isGpsEnabled, java.util.List<androidx.health.services.client.data.ExerciseGoal> exerciseGoals, android.os.Bundle exerciseParams);
method public static androidx.health.services.client.data.ExerciseConfig.Builder builder();
method public java.util.Set<androidx.health.services.client.data.DataType> getAggregateDataTypes();
method public java.util.Set<androidx.health.services.client.data.DataType> getDataTypes();
@@ -339,15 +353,15 @@
method public android.os.Bundle getExerciseParams();
method public androidx.health.services.client.data.ExerciseType getExerciseType();
method public androidx.health.services.client.proto.DataProto.ExerciseConfig getProto();
- method public boolean getShouldEnableAutoPauseAndResume();
- method public boolean getShouldEnableGps();
+ method public boolean isAutoPauseAndResumeEnabled();
+ method public boolean isGpsEnabled();
property public final java.util.Set<androidx.health.services.client.data.DataType> aggregateDataTypes;
property public final java.util.Set<androidx.health.services.client.data.DataType> dataTypes;
property public final java.util.List<androidx.health.services.client.data.ExerciseGoal> exerciseGoals;
property public final android.os.Bundle exerciseParams;
property public final androidx.health.services.client.data.ExerciseType exerciseType;
- property public final boolean shouldEnableAutoPauseAndResume;
- property public final boolean shouldEnableGps;
+ property public final boolean isAutoPauseAndResumeEnabled;
+ property public final boolean isGpsEnabled;
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.ExerciseConfig> CREATOR;
field public static final androidx.health.services.client.data.ExerciseConfig.Companion Companion;
}
@@ -360,8 +374,8 @@
method public androidx.health.services.client.data.ExerciseConfig.Builder setExerciseGoals(java.util.List<androidx.health.services.client.data.ExerciseGoal> exerciseGoals);
method public androidx.health.services.client.data.ExerciseConfig.Builder setExerciseParams(android.os.Bundle exerciseParams);
method public androidx.health.services.client.data.ExerciseConfig.Builder setExerciseType(androidx.health.services.client.data.ExerciseType exerciseType);
- method public androidx.health.services.client.data.ExerciseConfig.Builder setShouldEnableAutoPauseAndResume(boolean shouldEnableAutoPauseAndResume);
- method public androidx.health.services.client.data.ExerciseConfig.Builder setShouldEnableGps(boolean shouldEnableGps);
+ method public androidx.health.services.client.data.ExerciseConfig.Builder setIsAutoPauseAndResumeEnabled(boolean autoPauseAndResumeEnabled);
+ method public androidx.health.services.client.data.ExerciseConfig.Builder setIsGpsEnabled(boolean gpsEnabled);
}
public static final class ExerciseConfig.Companion {
@@ -389,13 +403,15 @@
method public androidx.health.services.client.data.ExerciseGoal createOneTimeGoal(androidx.health.services.client.data.DataTypeCondition condition);
}
- public enum ExerciseGoalType {
- method public static final androidx.health.services.client.data.ExerciseGoalType? fromId(int id);
- method public final int getId();
+ public final class ExerciseGoalType {
+ method public static androidx.health.services.client.data.ExerciseGoalType? fromId(int id);
+ method public int getId();
+ method public String getName();
property public final int id;
- enum_constant public static final androidx.health.services.client.data.ExerciseGoalType MILESTONE;
- enum_constant public static final androidx.health.services.client.data.ExerciseGoalType ONE_TIME_GOAL;
+ property public final String name;
field public static final androidx.health.services.client.data.ExerciseGoalType.Companion Companion;
+ field public static final androidx.health.services.client.data.ExerciseGoalType MILESTONE;
+ field public static final androidx.health.services.client.data.ExerciseGoalType ONE_TIME_GOAL;
}
public static final class ExerciseGoalType.Companion {
@@ -403,11 +419,11 @@
}
public final class ExerciseInfo extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.ExerciseInfo> {
- ctor public ExerciseInfo(androidx.health.services.client.data.ExerciseTrackedStatus exerciseTrackedStatus, androidx.health.services.client.data.ExerciseType exerciseType);
- method public androidx.health.services.client.data.ExerciseTrackedStatus getExerciseTrackedStatus();
+ ctor public ExerciseInfo(int exerciseTrackedStatus, androidx.health.services.client.data.ExerciseType exerciseType);
+ method public int getExerciseTrackedStatus();
method public androidx.health.services.client.data.ExerciseType getExerciseType();
method public androidx.health.services.client.proto.DataProto.ExerciseInfo getProto();
- property public final androidx.health.services.client.data.ExerciseTrackedStatus exerciseTrackedStatus;
+ property public final int exerciseTrackedStatus;
property public final androidx.health.services.client.data.ExerciseType exerciseType;
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.ExerciseInfo> CREATOR;
field public static final androidx.health.services.client.data.ExerciseInfo.Companion Companion;
@@ -436,145 +452,144 @@
public static final class ExerciseLapSummary.Companion {
}
- public enum ExerciseState {
- method public static final androidx.health.services.client.data.ExerciseState? fromId(int id);
- method public final int getId();
- method public final boolean isEnded();
- method public final boolean isEnding();
- method public final boolean isPaused();
- method public final boolean isResuming();
+ public final class ExerciseState {
+ method public static androidx.health.services.client.data.ExerciseState? fromId(int id);
+ method public int getId();
+ method public String getName();
+ method public boolean isEnded();
+ method public boolean isEnding();
+ method public boolean isPaused();
+ method public boolean isResuming();
property public final int id;
property public final boolean isEnded;
property public final boolean isEnding;
property public final boolean isPaused;
property public final boolean isResuming;
- enum_constant public static final androidx.health.services.client.data.ExerciseState ACTIVE;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_ENDED;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_ENDED_PERMISSION_LOST;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_ENDING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_ENDING_PERMISSION_LOST;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_PAUSED;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_PAUSING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState AUTO_RESUMING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState PREPARING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState TERMINATED;
- enum_constant public static final androidx.health.services.client.data.ExerciseState TERMINATING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_ENDED;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_ENDING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_PAUSED;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_PAUSING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_RESUMING;
- enum_constant public static final androidx.health.services.client.data.ExerciseState USER_STARTING;
+ property public final String name;
+ field public static final androidx.health.services.client.data.ExerciseState ACTIVE;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_ENDED;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_ENDED_PERMISSION_LOST;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_ENDING;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_ENDING_PERMISSION_LOST;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_PAUSED;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_PAUSING;
+ field public static final androidx.health.services.client.data.ExerciseState AUTO_RESUMING;
field public static final androidx.health.services.client.data.ExerciseState.Companion Companion;
+ field public static final androidx.health.services.client.data.ExerciseState PREPARING;
+ field public static final androidx.health.services.client.data.ExerciseState TERMINATED;
+ field public static final androidx.health.services.client.data.ExerciseState TERMINATING;
+ field public static final androidx.health.services.client.data.ExerciseState USER_ENDED;
+ field public static final androidx.health.services.client.data.ExerciseState USER_ENDING;
+ field public static final androidx.health.services.client.data.ExerciseState USER_PAUSED;
+ field public static final androidx.health.services.client.data.ExerciseState USER_PAUSING;
+ field public static final androidx.health.services.client.data.ExerciseState USER_RESUMING;
+ field public static final androidx.health.services.client.data.ExerciseState USER_STARTING;
}
public static final class ExerciseState.Companion {
method public androidx.health.services.client.data.ExerciseState? fromId(int id);
}
- public enum ExerciseTrackedStatus {
- method public static final androidx.health.services.client.data.ExerciseTrackedStatus? fromId(int id);
- method public final int getId();
+ public final class ExerciseType {
+ method public static androidx.health.services.client.data.ExerciseType fromId(int id);
+ method public int getId();
+ method public String getName();
property public final int id;
- enum_constant public static final androidx.health.services.client.data.ExerciseTrackedStatus NO_EXERCISE_IN_PROGRESS;
- enum_constant public static final androidx.health.services.client.data.ExerciseTrackedStatus OTHER_APP_IN_PROGRESS;
- enum_constant public static final androidx.health.services.client.data.ExerciseTrackedStatus OWNED_EXERCISE_IN_PROGRESS;
- field public static final androidx.health.services.client.data.ExerciseTrackedStatus.Companion Companion;
- }
-
- public static final class ExerciseTrackedStatus.Companion {
- method public androidx.health.services.client.data.ExerciseTrackedStatus? fromId(int id);
- }
-
- public enum ExerciseType {
- method public static final androidx.health.services.client.data.ExerciseType fromId(int id);
- method public final int getId();
- property public final int id;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BACK_EXTENSION;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BADMINTON;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BARBELL_SHOULDER_PRESS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BASEBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BASKETBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BENCH_PRESS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BENCH_SIT_UP;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BIKING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BIKING_STATIONARY;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BOOT_CAMP;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BOXING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType BURPEE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType CALISTHENICS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType CRICKET;
- enum_constant public static final androidx.health.services.client.data.ExerciseType CRUNCH;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DANCING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DEADLIFT;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_CURL_LEFT_ARM;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_CURL_RIGHT_ARM;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_FRONT_RAISE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_LATERAL_RAISE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_LEFT_ARM;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_RIGHT_ARM;
- enum_constant public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_TWO_ARM;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ELLIPTICAL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType EXERCISE_CLASS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType FENCING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType FOOTBALL_AMERICAN;
- enum_constant public static final androidx.health.services.client.data.ExerciseType FOOTBALL_AUSTRALIAN;
- enum_constant public static final androidx.health.services.client.data.ExerciseType FORWARD_TWIST;
- enum_constant public static final androidx.health.services.client.data.ExerciseType FRISBEE_DISC;
- enum_constant public static final androidx.health.services.client.data.ExerciseType GOLF;
- enum_constant public static final androidx.health.services.client.data.ExerciseType GUIDED_BREATHING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType GYMNASTICS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType HANDBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType HIGH_INTENSITY_INTERVAL_TRAINING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType HIKING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ICE_HOCKEY;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ICE_SKATING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType JUMPING_JACK;
- enum_constant public static final androidx.health.services.client.data.ExerciseType JUMP_ROPE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType LAT_PULL_DOWN;
- enum_constant public static final androidx.health.services.client.data.ExerciseType LUNGE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType MARTIAL_ARTS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType MEDITATION;
- enum_constant public static final androidx.health.services.client.data.ExerciseType PADDLING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType PARA_GLIDING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType PILATES;
- enum_constant public static final androidx.health.services.client.data.ExerciseType PLANK;
- enum_constant public static final androidx.health.services.client.data.ExerciseType RACQUETBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ROCK_CLIMBING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ROLLER_HOCKEY;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ROWING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType ROWING_MACHINE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType RUGBY;
- enum_constant public static final androidx.health.services.client.data.ExerciseType RUNNING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType RUNNING_TREADMILL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SAILING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SCUBA_DIVING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SKATING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SKIING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SNOWBOARDING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SNOWSHOEING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SOCCER;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SOFTBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SQUASH;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SQUAT;
- enum_constant public static final androidx.health.services.client.data.ExerciseType STAIR_CLIMBING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType STAIR_CLIMBING_MACHINE;
- enum_constant public static final androidx.health.services.client.data.ExerciseType STRENGTH_TRAINING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType STRETCHING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SURFING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SWIMMING_OPEN_WATER;
- enum_constant public static final androidx.health.services.client.data.ExerciseType SWIMMING_POOL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType TABLE_TENNIS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType TENNIS;
- enum_constant public static final androidx.health.services.client.data.ExerciseType UNKNOWN;
- enum_constant public static final androidx.health.services.client.data.ExerciseType UPPER_TWIST;
- enum_constant public static final androidx.health.services.client.data.ExerciseType VOLLEYBALL;
- enum_constant public static final androidx.health.services.client.data.ExerciseType WALKING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType WATER_POLO;
- enum_constant public static final androidx.health.services.client.data.ExerciseType WEIGHTLIFTING;
- enum_constant public static final androidx.health.services.client.data.ExerciseType WORKOUT;
- enum_constant public static final androidx.health.services.client.data.ExerciseType YOGA;
+ property public final String name;
+ field public static final androidx.health.services.client.data.ExerciseType ALPINE_SKIING;
+ field public static final androidx.health.services.client.data.ExerciseType BACKPACKING;
+ field public static final androidx.health.services.client.data.ExerciseType BACK_EXTENSION;
+ field public static final androidx.health.services.client.data.ExerciseType BADMINTON;
+ field public static final androidx.health.services.client.data.ExerciseType BARBELL_SHOULDER_PRESS;
+ field public static final androidx.health.services.client.data.ExerciseType BASEBALL;
+ field public static final androidx.health.services.client.data.ExerciseType BASKETBALL;
+ field public static final androidx.health.services.client.data.ExerciseType BENCH_PRESS;
+ field public static final androidx.health.services.client.data.ExerciseType BENCH_SIT_UP;
+ field public static final androidx.health.services.client.data.ExerciseType BIKING;
+ field public static final androidx.health.services.client.data.ExerciseType BIKING_STATIONARY;
+ field public static final androidx.health.services.client.data.ExerciseType BOOT_CAMP;
+ field public static final androidx.health.services.client.data.ExerciseType BOXING;
+ field public static final androidx.health.services.client.data.ExerciseType BURPEE;
+ field public static final androidx.health.services.client.data.ExerciseType CALISTHENICS;
+ field public static final androidx.health.services.client.data.ExerciseType CRICKET;
+ field public static final androidx.health.services.client.data.ExerciseType CROSS_COUNTRY_SKIING;
+ field public static final androidx.health.services.client.data.ExerciseType CRUNCH;
field public static final androidx.health.services.client.data.ExerciseType.Companion Companion;
+ field public static final androidx.health.services.client.data.ExerciseType DANCING;
+ field public static final androidx.health.services.client.data.ExerciseType DEADLIFT;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_CURL_LEFT_ARM;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_CURL_RIGHT_ARM;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_FRONT_RAISE;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_LATERAL_RAISE;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_LEFT_ARM;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_RIGHT_ARM;
+ field public static final androidx.health.services.client.data.ExerciseType DUMBBELL_TRICEPS_EXTENSION_TWO_ARM;
+ field public static final androidx.health.services.client.data.ExerciseType ELLIPTICAL;
+ field public static final androidx.health.services.client.data.ExerciseType EXERCISE_CLASS;
+ field public static final androidx.health.services.client.data.ExerciseType FENCING;
+ field public static final androidx.health.services.client.data.ExerciseType FOOTBALL_AMERICAN;
+ field public static final androidx.health.services.client.data.ExerciseType FOOTBALL_AUSTRALIAN;
+ field public static final androidx.health.services.client.data.ExerciseType FORWARD_TWIST;
+ field public static final androidx.health.services.client.data.ExerciseType FRISBEE_DISC;
+ field public static final androidx.health.services.client.data.ExerciseType GOLF;
+ field public static final androidx.health.services.client.data.ExerciseType GUIDED_BREATHING;
+ field public static final androidx.health.services.client.data.ExerciseType GYMNASTICS;
+ field public static final androidx.health.services.client.data.ExerciseType HANDBALL;
+ field public static final androidx.health.services.client.data.ExerciseType HIGH_INTENSITY_INTERVAL_TRAINING;
+ field public static final androidx.health.services.client.data.ExerciseType HIKING;
+ field public static final androidx.health.services.client.data.ExerciseType HORSE_RIDING;
+ field public static final androidx.health.services.client.data.ExerciseType ICE_HOCKEY;
+ field public static final androidx.health.services.client.data.ExerciseType ICE_SKATING;
+ field public static final androidx.health.services.client.data.ExerciseType INLINE_SKATING;
+ field public static final androidx.health.services.client.data.ExerciseType JUMPING_JACK;
+ field public static final androidx.health.services.client.data.ExerciseType JUMP_ROPE;
+ field public static final androidx.health.services.client.data.ExerciseType LAT_PULL_DOWN;
+ field public static final androidx.health.services.client.data.ExerciseType LUNGE;
+ field public static final androidx.health.services.client.data.ExerciseType MARTIAL_ARTS;
+ field public static final androidx.health.services.client.data.ExerciseType MEDITATION;
+ field public static final androidx.health.services.client.data.ExerciseType MOUNTAIN_BIKING;
+ field public static final androidx.health.services.client.data.ExerciseType ORIENTEERING;
+ field public static final androidx.health.services.client.data.ExerciseType PADDLING;
+ field public static final androidx.health.services.client.data.ExerciseType PARA_GLIDING;
+ field public static final androidx.health.services.client.data.ExerciseType PILATES;
+ field public static final androidx.health.services.client.data.ExerciseType PLANK;
+ field public static final androidx.health.services.client.data.ExerciseType RACQUETBALL;
+ field public static final androidx.health.services.client.data.ExerciseType ROCK_CLIMBING;
+ field public static final androidx.health.services.client.data.ExerciseType ROLLER_HOCKEY;
+ field public static final androidx.health.services.client.data.ExerciseType ROLLER_SKATING;
+ field public static final androidx.health.services.client.data.ExerciseType ROWING;
+ field public static final androidx.health.services.client.data.ExerciseType ROWING_MACHINE;
+ field public static final androidx.health.services.client.data.ExerciseType RUGBY;
+ field public static final androidx.health.services.client.data.ExerciseType RUNNING;
+ field public static final androidx.health.services.client.data.ExerciseType RUNNING_TREADMILL;
+ field public static final androidx.health.services.client.data.ExerciseType SAILING;
+ field public static final androidx.health.services.client.data.ExerciseType SCUBA_DIVING;
+ field public static final androidx.health.services.client.data.ExerciseType SKATING;
+ field public static final androidx.health.services.client.data.ExerciseType SKIING;
+ field public static final androidx.health.services.client.data.ExerciseType SNOWBOARDING;
+ field public static final androidx.health.services.client.data.ExerciseType SNOWSHOEING;
+ field public static final androidx.health.services.client.data.ExerciseType SOCCER;
+ field public static final androidx.health.services.client.data.ExerciseType SOFTBALL;
+ field public static final androidx.health.services.client.data.ExerciseType SQUASH;
+ field public static final androidx.health.services.client.data.ExerciseType SQUAT;
+ field public static final androidx.health.services.client.data.ExerciseType STAIR_CLIMBING;
+ field public static final androidx.health.services.client.data.ExerciseType STAIR_CLIMBING_MACHINE;
+ field public static final androidx.health.services.client.data.ExerciseType STRENGTH_TRAINING;
+ field public static final androidx.health.services.client.data.ExerciseType STRETCHING;
+ field public static final androidx.health.services.client.data.ExerciseType SURFING;
+ field public static final androidx.health.services.client.data.ExerciseType SWIMMING_OPEN_WATER;
+ field public static final androidx.health.services.client.data.ExerciseType SWIMMING_POOL;
+ field public static final androidx.health.services.client.data.ExerciseType TABLE_TENNIS;
+ field public static final androidx.health.services.client.data.ExerciseType TENNIS;
+ field public static final androidx.health.services.client.data.ExerciseType UNKNOWN;
+ field public static final androidx.health.services.client.data.ExerciseType UPPER_TWIST;
+ field public static final androidx.health.services.client.data.ExerciseType VOLLEYBALL;
+ field public static final androidx.health.services.client.data.ExerciseType WALKING;
+ field public static final androidx.health.services.client.data.ExerciseType WATER_POLO;
+ field public static final androidx.health.services.client.data.ExerciseType WEIGHTLIFTING;
+ field public static final androidx.health.services.client.data.ExerciseType WORKOUT;
+ field public static final androidx.health.services.client.data.ExerciseType YACHTING;
+ field public static final androidx.health.services.client.data.ExerciseType YOGA;
}
public static final class ExerciseType.Companion {
@@ -582,7 +597,7 @@
}
public final class ExerciseTypeCapabilities extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.ExerciseTypeCapabilities> {
- ctor public ExerciseTypeCapabilities(java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypes, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.Set<? extends androidx.health.services.client.data.ComparisonType>> supportedGoals, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.Set<? extends androidx.health.services.client.data.ComparisonType>> supportedMilestones, boolean supportsAutoPauseAndResume, boolean supportsLaps);
+ ctor public ExerciseTypeCapabilities(java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypes, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.Set<androidx.health.services.client.data.ComparisonType>> supportedGoals, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.Set<androidx.health.services.client.data.ComparisonType>> supportedMilestones, boolean supportsAutoPauseAndResume, boolean supportsLaps);
method public androidx.health.services.client.proto.DataProto.ExerciseTypeCapabilities getProto();
method public java.util.Set<androidx.health.services.client.data.DataType> getSupportedDataTypes();
method public java.util.Map<androidx.health.services.client.data.DataType,java.util.Set<androidx.health.services.client.data.ComparisonType>> getSupportedGoals();
@@ -602,8 +617,10 @@
}
public final class ExerciseUpdate extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.ExerciseUpdate> {
- ctor public ExerciseUpdate(androidx.health.services.client.data.ExerciseState state, java.time.Instant? startTime, java.time.Duration activeDuration, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.List<androidx.health.services.client.data.DataPoint>> latestMetrics, java.util.Map<androidx.health.services.client.data.DataType,? extends androidx.health.services.client.data.AggregateDataPoint> latestAggregateMetrics, java.util.Set<androidx.health.services.client.data.AchievedExerciseGoal> latestAchievedGoals, java.util.Set<androidx.health.services.client.data.MilestoneMarkerSummary> latestMilestoneMarkerSummaries, androidx.health.services.client.data.ExerciseConfig? exerciseConfig);
+ ctor public ExerciseUpdate(androidx.health.services.client.data.ExerciseState state, java.time.Instant? startTime, java.time.Duration activeDuration, java.time.Duration? updateDurationFromBoot, java.util.Map<androidx.health.services.client.data.DataType,? extends java.util.List<androidx.health.services.client.data.DataPoint>> latestMetrics, java.util.Map<androidx.health.services.client.data.DataType,? extends androidx.health.services.client.data.AggregateDataPoint> latestAggregateMetrics, java.util.Set<androidx.health.services.client.data.AchievedExerciseGoal> latestAchievedGoals, java.util.Set<androidx.health.services.client.data.MilestoneMarkerSummary> latestMilestoneMarkerSummaries, androidx.health.services.client.data.ExerciseConfig? exerciseConfig, androidx.health.services.client.data.ExerciseUpdate.ActiveDurationCheckpoint? activeDurationCheckpoint);
method public java.time.Duration getActiveDuration();
+ method public java.time.Duration getActiveDurationAtDataPoint(androidx.health.services.client.data.DataPoint dataPoint);
+ method public androidx.health.services.client.data.ExerciseUpdate.ActiveDurationCheckpoint? getActiveDurationCheckpoint();
method public androidx.health.services.client.data.ExerciseConfig? getExerciseConfig();
method public java.util.Set<androidx.health.services.client.data.AchievedExerciseGoal> getLatestAchievedGoals();
method public java.util.Map<androidx.health.services.client.data.DataType,androidx.health.services.client.data.AggregateDataPoint> getLatestAggregateMetrics();
@@ -613,6 +630,7 @@
method public java.time.Instant? getStartTime();
method public androidx.health.services.client.data.ExerciseState getState();
property public final java.time.Duration activeDuration;
+ property public final androidx.health.services.client.data.ExerciseUpdate.ActiveDurationCheckpoint? activeDurationCheckpoint;
property public final androidx.health.services.client.data.ExerciseConfig? exerciseConfig;
property public final java.util.Set<androidx.health.services.client.data.AchievedExerciseGoal> latestAchievedGoals;
property public final java.util.Map<androidx.health.services.client.data.DataType,androidx.health.services.client.data.AggregateDataPoint> latestAggregateMetrics;
@@ -624,37 +642,52 @@
field public static final androidx.health.services.client.data.ExerciseUpdate.Companion Companion;
}
+ public static final class ExerciseUpdate.ActiveDurationCheckpoint {
+ ctor public ExerciseUpdate.ActiveDurationCheckpoint(java.time.Instant time, java.time.Duration activeDuration);
+ method public java.time.Duration getActiveDuration();
+ method public java.time.Instant getTime();
+ property public final java.time.Duration activeDuration;
+ property public final java.time.Instant time;
+ }
+
public static final class ExerciseUpdate.Companion {
}
- public final class HrAccuracy extends androidx.health.services.client.data.DataPointAccuracy {
- ctor public HrAccuracy(androidx.health.services.client.data.HrAccuracy.SensorStatus sensorStatus);
+ public final class HeartRateAccuracy extends androidx.health.services.client.data.DataPointAccuracy {
+ ctor public HeartRateAccuracy(androidx.health.services.client.data.HeartRateAccuracy.SensorStatus sensorStatus);
method public androidx.health.services.client.proto.DataProto.DataPointAccuracy getProto();
- method public androidx.health.services.client.data.HrAccuracy.SensorStatus getSensorStatus();
- property public final androidx.health.services.client.data.HrAccuracy.SensorStatus sensorStatus;
- field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.HrAccuracy> CREATOR;
- field public static final androidx.health.services.client.data.HrAccuracy.Companion Companion;
+ method public androidx.health.services.client.data.HeartRateAccuracy.SensorStatus getSensorStatus();
+ property public final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus sensorStatus;
+ field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.HeartRateAccuracy> CREATOR;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.Companion Companion;
}
- public static final class HrAccuracy.Companion {
+ public static final class HeartRateAccuracy.Companion {
}
- public enum HrAccuracy.SensorStatus {
- method public final int getId();
+ public static final class HeartRateAccuracy.SensorStatus {
+ method public int getId();
+ method public String getName();
property public final int id;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus ACCURACY_HIGH;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus ACCURACY_LOW;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus ACCURACY_MEDIUM;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus NO_CONTACT;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus UNKNOWN;
- enum_constant public static final androidx.health.services.client.data.HrAccuracy.SensorStatus UNRELIABLE;
+ property public final String name;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus ACCURACY_HIGH;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus ACCURACY_LOW;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus ACCURACY_MEDIUM;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus.Companion Companion;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus NO_CONTACT;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus UNKNOWN;
+ field public static final androidx.health.services.client.data.HeartRateAccuracy.SensorStatus UNRELIABLE;
+ }
+
+ public static final class HeartRateAccuracy.SensorStatus.Companion {
}
public final class LocationAccuracy extends androidx.health.services.client.data.DataPointAccuracy {
- ctor public LocationAccuracy(double horizontalPositionError);
- method public double getHorizontalPositionError();
+ ctor public LocationAccuracy(double horizontalPositionErrorMeters, optional double verticalPositionErrorMeters);
+ ctor public LocationAccuracy(double horizontalPositionErrorMeters);
+ method public double getHorizontalPositionErrorMeters();
method public androidx.health.services.client.proto.DataProto.DataPointAccuracy getProto();
- property public final double horizontalPositionError;
+ property public final double horizontalPositionErrorMeters;
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.LocationAccuracy> CREATOR;
field public static final androidx.health.services.client.data.LocationAccuracy.Companion Companion;
}
@@ -662,17 +695,19 @@
public static final class LocationAccuracy.Companion {
}
- public enum LocationAvailability implements androidx.health.services.client.data.Availability {
- method public static final androidx.health.services.client.data.LocationAvailability? fromId(int id);
+ public final class LocationAvailability implements androidx.health.services.client.data.Availability {
+ method public static androidx.health.services.client.data.LocationAvailability? fromId(int id);
method public int getId();
+ method public String getName();
property public int id;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability ACQUIRED_TETHERED;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability ACQUIRED_UNTETHERED;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability ACQUIRING;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability NO_GPS;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability UNAVAILABLE;
- enum_constant public static final androidx.health.services.client.data.LocationAvailability UNKNOWN;
+ property public final String name;
+ field public static final androidx.health.services.client.data.LocationAvailability ACQUIRED_TETHERED;
+ field public static final androidx.health.services.client.data.LocationAvailability ACQUIRED_UNTETHERED;
+ field public static final androidx.health.services.client.data.LocationAvailability ACQUIRING;
field public static final androidx.health.services.client.data.LocationAvailability.Companion Companion;
+ field public static final androidx.health.services.client.data.LocationAvailability NO_GNSS;
+ field public static final androidx.health.services.client.data.LocationAvailability UNAVAILABLE;
+ field public static final androidx.health.services.client.data.LocationAvailability UNKNOWN;
}
public static final class LocationAvailability.Companion {
@@ -712,15 +747,15 @@
}
public final class PassiveGoal extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.PassiveGoal> {
- ctor public PassiveGoal(androidx.health.services.client.data.DataTypeCondition dataTypeCondition, androidx.health.services.client.data.PassiveGoal.TriggerType triggerType);
+ ctor public PassiveGoal(androidx.health.services.client.data.DataTypeCondition dataTypeCondition, int triggerFrequency);
method public static androidx.health.services.client.data.PassiveGoal? fromIntent(android.content.Intent intent);
method public androidx.health.services.client.data.DataTypeCondition getDataTypeCondition();
method public androidx.health.services.client.proto.DataProto.PassiveGoal getProto();
- method public androidx.health.services.client.data.PassiveGoal.TriggerType getTriggerType();
+ method public int getTriggerFrequency();
method public boolean isTriggered(androidx.health.services.client.data.DataPoint dataPoint);
method public void putToIntent(android.content.Intent intent);
property public final androidx.health.services.client.data.DataTypeCondition dataTypeCondition;
- property public final androidx.health.services.client.data.PassiveGoal.TriggerType triggerType;
+ property public final int triggerFrequency;
field public static final String ACTION_GOAL = "hs.passivemonitoring.GOAL";
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.PassiveGoal> CREATOR;
field public static final androidx.health.services.client.data.PassiveGoal.Companion Companion;
@@ -730,25 +765,12 @@
method public androidx.health.services.client.data.PassiveGoal? fromIntent(android.content.Intent intent);
}
- public enum PassiveGoal.TriggerType {
- method public static final androidx.health.services.client.data.PassiveGoal.TriggerType? fromId(int id);
- method public final int getId();
- property public final int id;
- enum_constant public static final androidx.health.services.client.data.PassiveGoal.TriggerType ONCE;
- enum_constant public static final androidx.health.services.client.data.PassiveGoal.TriggerType REPEATED;
- field public static final androidx.health.services.client.data.PassiveGoal.TriggerType.Companion Companion;
- }
-
- public static final class PassiveGoal.TriggerType.Companion {
- method public androidx.health.services.client.data.PassiveGoal.TriggerType? fromId(int id);
- }
-
public final class PassiveMonitoringCapabilities extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.PassiveMonitoringCapabilities> {
- ctor public PassiveMonitoringCapabilities(java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesPassiveMonitoring, java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesEvents);
+ ctor public PassiveMonitoringCapabilities(java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesPassiveMonitoring, java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesPassiveGoals, java.util.Set<androidx.health.services.client.data.UserActivityState> supportedUserActivityStates);
method public androidx.health.services.client.proto.DataProto.PassiveMonitoringCapabilities getProto();
- method public java.util.Set<androidx.health.services.client.data.DataType> getSupportedDataTypesEvents();
+ method public java.util.Set<androidx.health.services.client.data.DataType> getSupportedDataTypesPassiveGoals();
method public java.util.Set<androidx.health.services.client.data.DataType> getSupportedDataTypesPassiveMonitoring();
- property public final java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesEvents;
+ property public final java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesPassiveGoals;
property public final java.util.Set<androidx.health.services.client.data.DataType> supportedDataTypesPassiveMonitoring;
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.PassiveMonitoringCapabilities> CREATOR;
field public static final androidx.health.services.client.data.PassiveMonitoringCapabilities.Companion Companion;
@@ -758,15 +780,15 @@
}
public final class PassiveMonitoringConfig extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.PassiveMonitoringConfig> {
- ctor protected PassiveMonitoringConfig(java.util.Set<androidx.health.services.client.data.DataType> dataTypes, android.content.ComponentName componentName, boolean shouldIncludeUserActivityState);
+ ctor public PassiveMonitoringConfig(java.util.Set<androidx.health.services.client.data.DataType> dataTypes, android.content.ComponentName componentName, optional boolean requestUserActivityState);
method public static androidx.health.services.client.data.PassiveMonitoringConfig.Builder builder();
method public android.content.ComponentName getComponentName();
method public java.util.Set<androidx.health.services.client.data.DataType> getDataTypes();
method public androidx.health.services.client.proto.DataProto.PassiveMonitoringConfig getProto();
- method public boolean getShouldIncludeUserActivityState();
+ method public boolean getRequestUserActivityState();
property public final android.content.ComponentName componentName;
property public final java.util.Set<androidx.health.services.client.data.DataType> dataTypes;
- property public final boolean shouldIncludeUserActivityState;
+ property public final boolean requestUserActivityState;
field public static final android.os.Parcelable.Creator<androidx.health.services.client.data.PassiveMonitoringConfig> CREATOR;
field public static final androidx.health.services.client.data.PassiveMonitoringConfig.Companion Companion;
}
@@ -776,7 +798,7 @@
method public androidx.health.services.client.data.PassiveMonitoringConfig build();
method public androidx.health.services.client.data.PassiveMonitoringConfig.Builder setComponentName(android.content.ComponentName componentName);
method public androidx.health.services.client.data.PassiveMonitoringConfig.Builder setDataTypes(java.util.Set<androidx.health.services.client.data.DataType> dataTypes);
- method public androidx.health.services.client.data.PassiveMonitoringConfig.Builder setShouldIncludeUserActivityState(boolean shouldIncludeUserActivityState);
+ method public androidx.health.services.client.data.PassiveMonitoringConfig.Builder setRequestUserActivityState(boolean requestUserActivityState);
}
public static final class PassiveMonitoringConfig.Companion {
@@ -861,19 +883,20 @@
method public androidx.health.services.client.data.UserActivityInfo createUnknownTypeState(java.time.Instant stateChangeTime);
}
- public enum UserActivityState {
- method public static final androidx.health.services.client.data.UserActivityState? fromId(int id);
- method public final int getId();
+ public final class UserActivityState {
+ ctor public UserActivityState(int id, String name);
+ method public int getId();
+ method public String getName();
property public final int id;
- enum_constant public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_ASLEEP;
- enum_constant public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_EXERCISE;
- enum_constant public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_PASSIVE;
- enum_constant public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_UNKNOWN;
+ property public final String name;
field public static final androidx.health.services.client.data.UserActivityState.Companion Companion;
+ field public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_ASLEEP;
+ field public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_EXERCISE;
+ field public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_PASSIVE;
+ field public static final androidx.health.services.client.data.UserActivityState USER_ACTIVITY_UNKNOWN;
}
public static final class UserActivityState.Companion {
- method public androidx.health.services.client.data.UserActivityState? fromId(int id);
}
public final class Value extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.Value> {
@@ -916,8 +939,7 @@
}
public final class WarmUpConfig extends androidx.health.services.client.data.ProtoParcelable<androidx.health.services.client.proto.DataProto.WarmUpConfig> {
- ctor protected WarmUpConfig(androidx.health.services.client.data.ExerciseType exerciseType, java.util.Set<androidx.health.services.client.data.DataType> dataTypes);
- method public static androidx.health.services.client.data.WarmUpConfig.Builder builder();
+ ctor public WarmUpConfig(androidx.health.services.client.data.ExerciseType exerciseType, java.util.Set<androidx.health.services.client.data.DataType> dataTypes);
method public java.util.Set<androidx.health.services.client.data.DataType> getDataTypes();
method public androidx.health.services.client.data.ExerciseType getExerciseType();
method public androidx.health.services.client.proto.DataProto.WarmUpConfig getProto();
@@ -927,15 +949,7 @@
field public static final androidx.health.services.client.data.WarmUpConfig.Companion Companion;
}
- public static final class WarmUpConfig.Builder {
- ctor public WarmUpConfig.Builder();
- method public androidx.health.services.client.data.WarmUpConfig build();
- method public androidx.health.services.client.data.WarmUpConfig.Builder setDataTypes(java.util.Set<androidx.health.services.client.data.DataType> dataTypes);
- method public androidx.health.services.client.data.WarmUpConfig.Builder setExerciseType(androidx.health.services.client.data.ExerciseType exerciseType);
- }
-
public static final class WarmUpConfig.Companion {
- method public androidx.health.services.client.data.WarmUpConfig.Builder builder();
}
}
diff --git a/health/health-services-client/src/main/AndroidManifest.xml b/health/health-services-client/src/main/AndroidManifest.xml
index c9a2be8..2cacce6 100644
--- a/health/health-services-client/src/main/AndroidManifest.xml
+++ b/health/health-services-client/src/main/AndroidManifest.xml
@@ -12,5 +12,16 @@
limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <application>
+ <service
+ android:name="androidx.health.services.client.impl.VersionApiService"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="hs.versionclient.BIND" />
+ </intent-filter>
+ </service>
+ </application>
+
</manifest>
diff --git a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/IPassiveListenerCallback.aidl
similarity index 67%
copy from health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl
copy to health/health-services-client/src/main/aidl/androidx/health/services/client/impl/IPassiveListenerCallback.aidl
index 1b59985..1d2c503 100644
--- a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl
+++ b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/IPassiveListenerCallback.aidl
@@ -14,7 +14,15 @@
* limitations under the License.
*/
-package androidx.health.services.client.impl.request;
+package androidx.health.services.client.impl;
-/** @hide */
-parcelable EventRequest;
\ No newline at end of file
+import androidx.health.services.client.impl.event.PassiveListenerEvent;
+
+/**
+ * Interface to get passive monitoring updates.
+ *
+ * @hide
+ */
+oneway interface IPassiveListenerCallback {
+ void onPassiveListenerEvent(in PassiveListenerEvent event) = 0;
+}
\ No newline at end of file
diff --git a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/IPassiveListenerService.aidl b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/IPassiveListenerService.aidl
new file mode 100644
index 0000000..e50fb7d
--- /dev/null
+++ b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/IPassiveListenerService.aidl
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2022 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.
+ */
+
+package androidx.health.services.client.impl;
+
+import androidx.health.services.client.impl.event.PassiveListenerEvent;
+
+/**
+ * @hide
+ */
+interface IPassiveListenerService {
+ /**
+ * API version of the AIDL interface. Should be incremented every time a new
+ * method is added.
+ */
+ const int API_VERSION = 1;
+
+ /**
+ * Returns version of this AIDL interface.
+ *
+ * <p> Can be used by client to detect version of the API on the service
+ * side. Returned version should be always > 0.
+ */
+ int getApiVersion() = 0;
+
+ void onPassiveListenerEvent(in PassiveListenerEvent event) = 1;
+}
\ No newline at end of file
diff --git a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/IPassiveMonitoringApiService.aidl b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/IPassiveMonitoringApiService.aidl
index 2402cafd..35add12 100644
--- a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/IPassiveMonitoringApiService.aidl
+++ b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/IPassiveMonitoringApiService.aidl
@@ -16,12 +16,15 @@
package androidx.health.services.client.impl;
+import androidx.health.services.client.impl.IPassiveListenerCallback;
import androidx.health.services.client.impl.IPassiveMonitoringCallback;
import androidx.health.services.client.impl.internal.IStatusCallback;
import androidx.health.services.client.impl.request.BackgroundRegistrationRequest;
import androidx.health.services.client.impl.request.CapabilitiesRequest;
import androidx.health.services.client.impl.request.FlushRequest;
import androidx.health.services.client.impl.request.PassiveGoalRequest;
+import androidx.health.services.client.impl.request.PassiveListenerCallbackRegistrationRequest;
+import androidx.health.services.client.impl.request.PassiveListenerServiceRegistrationRequest;
import androidx.health.services.client.impl.response.PassiveMonitoringCapabilitiesResponse;
/** @hide */
@@ -30,7 +33,7 @@
* API version of the AIDL interface. Should be incremented every time a new
* method is added.
*/
- const int API_VERSION = 2;
+ const int API_VERSION = 4;
/**
* Returns version of this AIDL interface.
@@ -54,9 +57,7 @@
*/
void registerDataCallback(in BackgroundRegistrationRequest request, in IPassiveMonitoringCallback callback, in IStatusCallback statusCallback) = 2;
- /**
- * Method to subscribe to a set of data types with corresponding callback intent.
- */
+ /** Method to unsubscribe from data updates. */
void unregisterDataCallback(in String packageName, in IStatusCallback statusCallback) = 3;
/**
@@ -69,4 +70,32 @@
/** Method to flush data metrics. */
void flush(in FlushRequest request, in IStatusCallback statusCallback) = 6;
+
+ /**
+ * Method to subscribe to updates via the passive listener service.
+ *
+ * This call was added in API_VERSION = 4.
+ */
+ void registerPassiveListenerService(in PassiveListenerServiceRegistrationRequest request, in IStatusCallback statusCallback) = 10;
+
+ /**
+ * Method to subscribe to updates via the passive listener callback.
+ *
+ * This call was added in API_VERSION = 4.
+ */
+ void registerPassiveListenerCallback(in PassiveListenerCallbackRegistrationRequest request, in IPassiveListenerCallback callback, in IStatusCallback statusCallback) = 11;
+
+ /**
+ * Method to unsubscribe from data updates via the passive listener service.
+ *
+ * This call was added in API_VERSION = 4.
+ */
+ void unregisterPassiveListenerService(in String packageName, in IStatusCallback statusCallback) = 12;
+
+ /**
+ * Method to unsubscribe from data updates via the passive listener callback.
+ *
+ * This call was added in API_VERSION = 4.
+ */
+ void unregisterPassiveListenerCallback(in String packageName, in IStatusCallback statusCallback) = 13;
}
diff --git a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/IVersionApiService.aidl b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/IVersionApiService.aidl
new file mode 100644
index 0000000..b3b7c84
--- /dev/null
+++ b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/IVersionApiService.aidl
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2022 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.
+ */
+
+package androidx.health.services.client.impl;
+
+import androidx.health.services.client.impl.IMeasureCallback;
+import androidx.health.services.client.impl.internal.IStatusCallback;
+import androidx.health.services.client.impl.request.CapabilitiesRequest;
+import androidx.health.services.client.impl.request.MeasureRegistrationRequest;
+import androidx.health.services.client.impl.request.MeasureUnregistrationRequest;
+import androidx.health.services.client.impl.response.MeasureCapabilitiesResponse;
+
+/**
+ * Interface to make ipc calls to query version information.
+ *
+ * @hide
+ */
+interface IVersionApiService {
+ /**
+ * API version of _this_ AIDL interface. Should be incremented every time a
+ * new method is added.
+ */
+ const int VERSION_API_SERVICE_VERSION = 1;
+
+ /**
+ * Version of the SDK as a whole. Should be incremented on each release,
+ * regardless of whether the API surface has changed.
+ */
+ const int CANONICAL_SDK_VERSION = 22;
+
+ /**
+ * Returns the version of _this_ AIDL interface.
+ *
+ * <p> Can be used by client to detect version of the API on the service
+ * side. Returned version should be always > 0.
+ */
+ int getVersionApiServiceVersion() = 0;
+
+ /**
+ * Returns the version of the SDK as a whole.
+ *
+ * <p> Can be used by client to detect version of the SDK on the service
+ * side. Returned version should be always > 0.
+ */
+ int getSdkVersion() = 1;
+}
diff --git a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/event/PassiveListenerEvent.aidl
similarity index 87%
copy from health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl
copy to health/health-services-client/src/main/aidl/androidx/health/services/client/impl/event/PassiveListenerEvent.aidl
index 1b59985..84ebcca 100644
--- a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl
+++ b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/event/PassiveListenerEvent.aidl
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package androidx.health.services.client.impl.request;
+package androidx.health.services.client.impl.event;
/** @hide */
-parcelable EventRequest;
\ No newline at end of file
+parcelable PassiveListenerEvent;
diff --git a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/BackgroundUnregistrationRequest.aidl b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/BackgroundUnregistrationRequest.aidl
deleted file mode 100644
index 8264c63..0000000
--- a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/BackgroundUnregistrationRequest.aidl
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Copyright (C) 2021 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.
- */
-
-package androidx.health.services.client.impl.request;
-
-/** @hide */
-parcelable BackgroundUnregistrationRequest;
\ No newline at end of file
diff --git a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/FlushRequest.aidl b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/FlushRequest.aidl
index 358fc36..9da8d84 100644
--- a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/FlushRequest.aidl
+++ b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/FlushRequest.aidl
@@ -17,4 +17,4 @@
package androidx.health.services.client.impl.request;
/** @hide */
-parcelable FlushRequest;
\ No newline at end of file
+parcelable FlushRequest;
diff --git a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/PassiveListenerCallbackRegistrationRequest.aidl
similarity index 85%
copy from health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl
copy to health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/PassiveListenerCallbackRegistrationRequest.aidl
index 1b59985..b96dea6 100644
--- a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl
+++ b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/PassiveListenerCallbackRegistrationRequest.aidl
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2021 The Android Open Source Project
+ * Copyright (C) 2022 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.
@@ -17,4 +17,4 @@
package androidx.health.services.client.impl.request;
/** @hide */
-parcelable EventRequest;
\ No newline at end of file
+parcelable PassiveListenerCallbackRegistrationRequest;
\ No newline at end of file
diff --git a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/PassiveListenerServiceRegistrationRequest.aidl
similarity index 92%
rename from health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl
rename to health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/PassiveListenerServiceRegistrationRequest.aidl
index 1b59985..ba9b1e1 100644
--- a/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/EventRequest.aidl
+++ b/health/health-services-client/src/main/aidl/androidx/health/services/client/impl/request/PassiveListenerServiceRegistrationRequest.aidl
@@ -17,4 +17,4 @@
package androidx.health.services.client.impl.request;
/** @hide */
-parcelable EventRequest;
\ No newline at end of file
+parcelable PassiveListenerServiceRegistrationRequest;
\ No newline at end of file
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/ExerciseClient.kt b/health/health-services-client/src/main/java/androidx/health/services/client/ExerciseClient.kt
index 2ef3f84..0286b89 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/ExerciseClient.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/ExerciseClient.kt
@@ -16,10 +16,14 @@
package androidx.health.services.client
+import androidx.health.services.client.data.DataPoint
+import androidx.health.services.client.data.DataType
import androidx.health.services.client.data.ExerciseCapabilities
import androidx.health.services.client.data.ExerciseConfig
import androidx.health.services.client.data.ExerciseGoal
import androidx.health.services.client.data.ExerciseInfo
+import androidx.health.services.client.data.ExerciseState
+import androidx.health.services.client.data.ExerciseType
import androidx.health.services.client.data.ExerciseUpdate
import androidx.health.services.client.data.WarmUpConfig
import com.google.common.util.concurrent.ListenableFuture
@@ -42,19 +46,20 @@
* capabilities will be a no-op for the prepare stage.
*
* The DataType availability can be obtained through the
- * [ExerciseUpdateListener.onAvailabilityChanged] callback. [ExerciseUpdate]s with the supported
- * DataType [DataPoint] will also be returned in the [ExerciseState#PREPARING] state, though no
+ * [ExerciseUpdateCallback.onAvailabilityChanged] callback. [ExerciseUpdate]s with the supported
+ * DataType [DataPoint] will also be returned in the [ExerciseState.PREPARING] state, though no
* aggregation will occur until the exercise is started.
*
* If an app is actively preparing and another app starts tracking an active exercise then the
- * preparing app should expect to receive an [ExerciseUpdate] with [ExerciseState#TERMINATED]
+ * preparing app should expect to receive an [ExerciseUpdate] with [ExerciseState.TERMINATED]
* indicating that their session has been superseded and ended. At that point no additional
* updates to availability or data will be sent until the app calls prepareExercise again.
*
+ * @param configuration the [WarmUpConfig] containing the desired exercise and data types
* @return a [ListenableFuture] that completes once Health Services starts preparing the sensors
* or fails due to missing permissions or the app owning another active exercise.
*/
- public fun prepareExercise(configuration: WarmUpConfig): ListenableFuture<Void>
+ public fun prepareExerciseAsync(configuration: WarmUpConfig): ListenableFuture<Void>
/**
* Starts a new exercise.
@@ -63,32 +68,33 @@
*
* Since Health Services only allows a single active exercise at a time, this will terminate any
* active exercise currently in progress before starting the new one. If this occurs, clients
- * can expect to receive an [ExerciseUpdate] with [ExerciseState#TERMINATED], indicating that
+ * can expect to receive an [ExerciseUpdate] with [ExerciseState.TERMINATED], indicating that
* their exercise has been superseded and that no additional updates will be sent. Clients can
- * use [currentExerciseInfo] (described below) to check if they or another app has an active
- * exercise in-progress.
+ * use [getCurrentExerciseInfoAsync] (described below) to check if they or another app has an
+ * active exercise in-progress.
*
- * If the client fails to maintain a live [ExerciseStateListener] for at least five minutes
+ * If the client fails to maintain a live [ExerciseUpdateCallback] for at least five minutes
* during the duration of the exercise, Health Services can decide to terminate the exercise. If
* this occurs, clients can expect to receive an [ExerciseUpdate] with
- * [ExerciseState#AUTO_ENDED] indicating that their exercise has been automatically ended due to
- * the lack of listener.
+ * [ExerciseState.AUTO_ENDED] indicating that their exercise has been automatically ended due to
+ * the lack of callback.
*
* Clients should only request [ExerciseType]s, [DataType]s, goals, and auto-pause enabled that
* matches the [ExerciseCapabilities] returned by [capabilities] since Health Services will
* reject requests asking for unsupported configurations.
*
+ * @param configuration the [ExerciseConfig] describing this exercise
* @return a [ListenableFuture] that completes once the exercise has been started or fails due
* to the application missing the required permissions or requesting metrics which are not
* supported for the given [ExerciseType].
*/
- public fun startExercise(configuration: ExerciseConfig): ListenableFuture<Void>
+ public fun startExerciseAsync(configuration: ExerciseConfig): ListenableFuture<Void>
/**
* Pauses the current exercise, if it is currently started.
*
- * Before transitioning to [ExerciseState.PAUSED], Health Services will flush and return the
- * sensor data. While the exercise is paused, active time and cumulative metrics such as
+ * Before transitioning to [ExerciseState.USER_PAUSED], Health Services will flush and return
+ * the sensor data. While the exercise is paused, active time and cumulative metrics such as
* distance will not accumulate. Instantaneous measurements such as speed and heart rate will
* continue to update if requested in the [ExerciseConfig].
*
@@ -103,7 +109,7 @@
* @return a [ListenableFuture] that completes once the exercise has been paused or fails if the
* calling application does not own the active exercise.
*/
- public fun pauseExercise(): ListenableFuture<Void>
+ public fun pauseExerciseAsync(): ListenableFuture<Void>
/**
* Resumes the current exercise, if it is currently paused.
@@ -116,13 +122,13 @@
* @return a [ListenableFuture] that completes once the exercise has been resumed or fails if
* the calling application does not own the active exercise.
*/
- public fun resumeExercise(): ListenableFuture<Void>
+ public fun resumeExerciseAsync(): ListenableFuture<Void>
/**
* Ends the current exercise, if it has been started.
*
* Health Services will flush and then shut down the active sensors and return an
- * [ExerciseUpdate] with [ExerciseState#USER_ENDED] to the [ExerciseUpdateListener]. If the
+ * [ExerciseUpdate] with [ExerciseState.USER_ENDED] to the [ExerciseUpdateCallback]. If the
* exercise has ended then this future will fail.
*
* No additional metrics will be produced for the exercise and any on device persisted data
@@ -131,7 +137,7 @@
* @return a [ListenableFuture] that completes once the exercise has been ended or fails if the
* calling application does not own the active exercise.
*/
- public fun endExercise(): ListenableFuture<Void>
+ public fun endExerciseAsync(): ListenableFuture<Void>
/**
* Flushes the sensors for the active exercise. This call should be used sparingly and will be
@@ -140,72 +146,84 @@
* @return a [ListenableFuture] that completes once the flush has been completed or fails if the
* calling application does not own the active exercise.
*/
- public fun flushExercise(): ListenableFuture<Void>
+ public fun flushExerciseAsync(): ListenableFuture<Void>
/**
- * Ends the current lap, calls [ExerciseStateListener.onLapSummary] with data spanning the
- * marked lap and starts a new lap. If the exercise supports laps this method can be called at
- * any point after an exercise has been started and before it has been ended regardless of the
- * exercise status.
+ * Ends the current lap, calls [ExerciseUpdateCallback.onLapSummaryReceived] with data spanning
+ * the marked lap and starts a new lap. If the exercise supports laps this method can be called
+ * at any point after an exercise has been started and before it has been ended regardless of
+ * the exercise status.
*
* The metrics in the lap summary will start from either the start time of the exercise or the
* last time a lap was marked to the time this method is being called.
*
* If there's no exercise being tracked or if the exercise does not support laps then this
* future will fail.
+ *
+ * @return a [ListenableFuture] that completes once the lap has been marked successfully or
+ * fails if the calling application does not own the active exercise
*/
- public fun markLap(): ListenableFuture<Void>
+ public fun markLapAsync(): ListenableFuture<Void>
/**
* Returns the current [ExerciseInfo].
*
* This can be used by clients to determine if they or another app already owns an active
* exercise being tracked by Health Services. For example, if an app is killed and it learns it
- * owns the active exercise it can register a new [ExerciseUpdateListener] and pick tracking up
+ * owns the active exercise it can register a new [ExerciseUpdateCallback] and pick tracking up
* from where it left off.
+ *
+ * @return a [ListenableFuture] that contains information about the current exercise or fails if
+ * the calling application does not own the active exercise
*/
- public val currentExerciseInfo: ListenableFuture<ExerciseInfo>
+ public fun getCurrentExerciseInfoAsync(): ListenableFuture<ExerciseInfo>
/**
- * Sets the listener for the current [ExerciseUpdate].
+ * Sets the callback for the current [ExerciseUpdate].
*
- * This listener won't be called until the calling application prepares or starts an exercise.
+ * This callback won't be called until the calling application prepares or starts an exercise.
* It will only receive updates from exercises tracked by this app.
*
- * If an exercise is in progress, the [ExerciseUpdateListener] is immediately called with the
+ * If an exercise is in progress, the [ExerciseUpdateCallback] is immediately called with the
* associated [ExerciseUpdate], and subsequently whenever the state is updated or an event is
* triggered. Health Services will cache [ExerciseUpdate]s of an active exercise that are
- * generated while a listener is not active (for example, due to the app getting killed) and
- * deliver them as soon as the listener is registered again. If the client fails to maintain a
- * live [ExerciseStateListener] for at least five minutes during the duration of the exercise
+ * generated while a callback is not active (for example, due to the app getting killed) and
+ * deliver them as soon as the callback is registered again. If the client fails to maintain a
+ * live [ExerciseUpdateCallback] for at least five minutes during the duration of the exercise
* Health Services can decide to terminate the exercise automatically. If this occurs, clients
- * can expect to receive an [ExerciseUpdate] with [ExerciseState#AUTO_ENDED] indicating that
- * their exercise has been automatically ended due to the lack of listener.
+ * can expect to receive an [ExerciseUpdate] with [ExerciseState.AUTO_ENDED] indicating that
+ * their exercise has been automatically ended due to the lack of callback.
*
- * Calls to the listener will be executed on the main application thread. To control where to
- * execute the listener, see the overload taking an [Executor]. To remove the listener use
- * [clearUpdateListener].
+ * Calls to the callback will be executed on the main application thread. To control where to
+ * execute the callback, see the overload taking an [Executor]. To remove the callback use
+ * [clearUpdateCallbackAsync].
+ *
+ * @param callback the [ExerciseUpdateCallback] that will receive updates from Health Services
*/
- public fun setUpdateListener(listener: ExerciseUpdateListener): ListenableFuture<Void>
+ public fun setUpdateCallback(callback: ExerciseUpdateCallback)
/**
- * Calls to the listener will be executed using the specified [Executor]. To execute the
- * listener on the main application thread use the overload without the [Executor].
+ * Calls to the callback will be executed using the specified [Executor]. To execute the
+ * callback on the main application thread use the overload without the [Executor].
+ *
+ * @param executor the [Executor] on which [callback] will be invoked
+ * @param callback the [ExerciseUpdateCallback] that will receive updates from Health Services
*/
- public fun setUpdateListener(
- listener: ExerciseUpdateListener,
- executor: Executor
- ): ListenableFuture<Void>
+ public fun setUpdateCallback(
+ executor: Executor,
+ callback: ExerciseUpdateCallback
+ )
/**
- * Clears the listener set using [setUpdateListener].
+ * Clears the callback set using [setUpdateCallback].
*
- * If this listener is not already registered then this will be a no-op.
+ * If this callback is not already registered then this will be a no-op.
*
- * @return a [ListenableFuture] that completes once the listener has been cleared (or verified
+ * @param callback the [ExerciseUpdateCallback] to clear
+ * @return a [ListenableFuture] that completes once the callback has been cleared (or verified
* not to be set).
*/
- public fun clearUpdateListener(listener: ExerciseUpdateListener): ListenableFuture<Void>
+ public fun clearUpdateCallbackAsync(callback: ExerciseUpdateCallback): ListenableFuture<Void>
/**
* Adds an [ExerciseGoal] for an active exercise.
@@ -213,10 +231,11 @@
* Goals apply to only active exercises owned by the client, and will be invalidated once the
* exercise is complete.
*
+ * @param exerciseGoal the [ExerciseGoal] to add to this exercise
* @return a [ListenableFuture] that completes once the exercise goal has been added. This
* returned [ListenableFuture] fails if the calling app does not own the active exercise.
*/
- public fun addGoalToActiveExercise(exerciseGoal: ExerciseGoal): ListenableFuture<Void>
+ public fun addGoalToActiveExerciseAsync(exerciseGoal: ExerciseGoal): ListenableFuture<Void>
/**
* Removes an exercise goal for an active exercise.
@@ -225,26 +244,35 @@
* different representation of a common milestone. e.g. milestone A for every 2kms, currently at
* threshold of 10kms, and milestone B for every 2kms, currently at threshold of 8kms).
*
+ * @param exerciseGoal the [ExerciseGoal] to remove from this exercise
* @return a [ListenableFuture] that completes once the exercise goal has been removed. This
* returned [ListenableFuture] fails if the exercise is not active, and will be a no-op if
* [exerciseGoal] has not been added in the past.
*/
- public fun removeGoalFromActiveExercise(exerciseGoal: ExerciseGoal): ListenableFuture<Void>
+ public fun removeGoalFromActiveExerciseAsync(
+ exerciseGoal: ExerciseGoal
+ ): ListenableFuture<Void>
/**
* Enables or disables auto pause/resume for the current exercise.
*
* @param enabled a boolean to indicate if should be enabled or disabled
+ * @return a [ListenableFuture] that completes once the override has completed. This
+ * returned [ListenableFuture] fails if an exercise is not active for this app.
*/
- public fun overrideAutoPauseAndResumeForActiveExercise(enabled: Boolean): ListenableFuture<Void>
+ public fun overrideAutoPauseAndResumeForActiveExerciseAsync(
+ enabled: Boolean
+ ): ListenableFuture<Void>
/**
* Returns the [ExerciseCapabilities] of this client for the device.
*
* This can be used to determine what [ExerciseType]s and [DataType]s this device supports.
* Clients should use the capabilities to inform their requests since Health Services will
- * typically reject requests made for [DataTypes] or features (such as auto-pause) which are not
+ * typically reject requests made for [DataType]s or features (such as auto-pause) which are not
* enabled for the rejected [ExerciseType].
+ *
+ * @return a [ListenableFuture] containing the [ExerciseCapabilities] for this device
*/
public val capabilities: ListenableFuture<ExerciseCapabilities>
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/ExerciseUpdateCallback.kt b/health/health-services-client/src/main/java/androidx/health/services/client/ExerciseUpdateCallback.kt
new file mode 100644
index 0000000..66ae32a
--- /dev/null
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/ExerciseUpdateCallback.kt
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+package androidx.health.services.client
+
+import androidx.health.services.client.data.Availability
+import androidx.health.services.client.data.DataType
+import androidx.health.services.client.data.ExerciseLapSummary
+import androidx.health.services.client.data.ExerciseState
+import androidx.health.services.client.data.ExerciseUpdate
+
+/** Callback that is called when the state of the current exercise is updated. */
+// TODO(b/179756577): Add onExerciseEnd(ExerciseSummary) method.
+public interface ExerciseUpdateCallback {
+
+ /** Called when this callback has been successfully registered with Health Services. */
+ public fun onRegistered()
+
+ /**
+ * Called when Health Services reports a failure with the registration of this callback.
+ *
+ * @param throwable a throwable sent by Health Services with information about the failure
+ */
+ public fun onRegistrationFailed(throwable: Throwable)
+
+ /**
+ * Called during an ACTIVE exercise or on any changes in [ExerciseState].
+ *
+ * @param update the [ExerciseUpdate] containing the latest exercise information
+ */
+ public fun onExerciseUpdateReceived(update: ExerciseUpdate)
+
+ /**
+ * Called during an [ExerciseState.ACTIVE] exercise once a lap has been marked.
+ *
+ * @param lapSummary an [ExerciseLapSummary] containing a summary of data collected during the
+ * past lap
+ */
+ public fun onLapSummaryReceived(lapSummary: ExerciseLapSummary)
+
+ /**
+ * Called during an [ExerciseState.ACTIVE] exercise when the availability of a [DataType]
+ * changes.
+ *
+ * @param dataType the [DataType] which experienced a change in availability
+ * @param availability the new [Availability] state
+ */
+ public fun onAvailabilityChanged(dataType: DataType, availability: Availability)
+}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/ExerciseUpdateListener.kt b/health/health-services-client/src/main/java/androidx/health/services/client/ExerciseUpdateListener.kt
deleted file mode 100644
index b6c8f9b..0000000
--- a/health/health-services-client/src/main/java/androidx/health/services/client/ExerciseUpdateListener.kt
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2021 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.
- */
-
-package androidx.health.services.client
-
-import androidx.health.services.client.data.Availability
-import androidx.health.services.client.data.DataType
-import androidx.health.services.client.data.ExerciseLapSummary
-import androidx.health.services.client.data.ExerciseState
-import androidx.health.services.client.data.ExerciseUpdate
-
-/** Listener that is called when the state of the current exercise is updated. */
-// TODO(b/179756577): Add onExerciseEnd(ExerciseSummary) method.
-public interface ExerciseUpdateListener {
- /** Called during an ACTIVE exercise or on any changes in [ExerciseState]. */
- public fun onExerciseUpdate(update: ExerciseUpdate)
-
- /** Called during an ACTIVE exercise once a lap has been marked. */
- public fun onLapSummary(lapSummary: ExerciseLapSummary)
-
- /** Called during an ACTIVE exercise when the availability of a [DataType] changes. */
- public fun onAvailabilityChanged(dataType: DataType, availability: Availability)
-}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/MeasureCallback.kt b/health/health-services-client/src/main/java/androidx/health/services/client/MeasureCallback.kt
index 7706b42..01f1123 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/MeasureCallback.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/MeasureCallback.kt
@@ -22,9 +22,31 @@
/** Callback for [MeasureClient.registerCallback]. */
public interface MeasureCallback {
- /** Called when the availability of a [DataType] changes. */
+
+ /** Called when this callback has been successfully registered with Health Services. */
+ public fun onRegistered() {}
+
+ /**
+ * Called when Health Services reports a failure with the registration of this callback. Common
+ * causes include: the calling app lacks the necessary permission, or the device does not
+ * support the requested [DataType].
+ *
+ * @param throwable a throwable sent by Health Services with information about the failure
+ */
+ public fun onRegistrationFailed(throwable: Throwable) {}
+
+ /**
+ * Called when the availability of a [DataType] changes.
+ *
+ * @param dataType the [DataType] that experienced a change in availability
+ * @param availability the new [Availability] status for this [dataType]
+ */
public fun onAvailabilityChanged(dataType: DataType, availability: Availability)
- /** Called when new data is available. Data can be batched in a list of [DataPoint]. */
- public fun onData(data: List<@JvmSuppressWildcards DataPoint>)
+ /**
+ * Called when new data is available. Data can be batched in a list of [DataPoint].
+ *
+ * @param data the (potentially batched) set of measured [DataPoint]s
+ */
+ public fun onDataReceived(data: List<@JvmSuppressWildcards DataPoint>)
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/MeasureClient.kt b/health/health-services-client/src/main/java/androidx/health/services/client/MeasureClient.kt
index 4aa9510..f682142 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/MeasureClient.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/MeasureClient.kt
@@ -48,30 +48,51 @@
* [MeasureCapabilities]. The returned future will fail if the request is not supported on a
* given device.
*
- * The callback will continue to be called until the app is killed or [unregisterCallback] is
- * called.
+ * The callback will continue to be called until the app is killed or [unregisterCallbackAsync]
+ * is called.
*
* If the same [callback] is already registered for the given [DataType], this operation is a
* no-op.
+ *
+ * @param dataType the [DataType] that needs to be measured
+ * @param callback the [MeasureCallback] to receive updates from Health Services
+ */
+ public fun registerCallback(dataType: DataType, callback: MeasureCallback)
+
+ /**
+ * Same as [registerCallback], except the [callback] is called on the given [Executor].
+ *
+ * @param dataType the [DataType] that needs to be measured
+ * @param executor the [Executor] on which [callback] will be invoked
+ * @param callback the [MeasureCallback] to receive updates from Health Services
*/
public fun registerCallback(
dataType: DataType,
+ executor: Executor,
callback: MeasureCallback
- ): ListenableFuture<Void>
+ )
- /** Same as [registerCallback], except the [callback] is called on the given [Executor]. */
- public fun registerCallback(
- dataType: DataType,
- callback: MeasureCallback,
- executor: Executor
- ): ListenableFuture<Void>
-
- /** Unregisters the given [MeasureCallback] for updates of the given [DataType]. */
- public fun unregisterCallback(
+ /**
+ * Unregisters the given [MeasureCallback] for updates of the given [DataType].
+ *
+ * @param dataType the [DataType] that needs to be unregistered
+ * @param callback the [MeasureCallback] which was used in registration
+ * @return a [ListenableFuture] that completes when the un-registration succeeds in Health
+ * Services. This is a no-op if the callback has already been unregistered.
+ */
+ public fun unregisterCallbackAsync(
dataType: DataType,
callback: MeasureCallback
): ListenableFuture<Void>
- /** Returns the [MeasureCapabilities] of this client for the device. */
+ /**
+ * Returns the [MeasureCapabilities] of this client for the device.
+ *
+ * This can be used to determine what [DataType]s this device supports for live measurement.
+ * Clients should use the capabilities to inform their requests since Health Services will
+ * typically reject requests made for [DataType]s which are not enabled for measurement.
+ *
+ * @return a [ListenableFuture] containing the [MeasureCapabilities] for this device
+ */
public val capabilities: ListenableFuture<MeasureCapabilities>
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/PassiveListenerCallback.kt b/health/health-services-client/src/main/java/androidx/health/services/client/PassiveListenerCallback.kt
new file mode 100644
index 0000000..72e689d
--- /dev/null
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/PassiveListenerCallback.kt
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2022 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.
+ */
+
+package androidx.health.services.client
+
+import androidx.health.services.client.data.DataPoint
+import androidx.health.services.client.data.PassiveGoal
+import androidx.health.services.client.data.UserActivityInfo
+
+/** A callback for receiving passive monitoring updates. */
+// TODO(b/227475943): Update method naming to be past tense, add onRegistered and
+// onRegistrationFailed, open up visibility, and consider renaming to PassiveMonitoringCallback
+internal interface PassiveListenerCallback {
+
+ /**
+ * Called when new [DataPoint]s are generated.
+ *
+ * @param dataPoints a list of new [DataPoint]s generated
+ */
+ public fun onNewDataPoints(dataPoints: List<DataPoint>) {}
+
+ /**
+ * Called when new [UserActivityInfo] is generated.
+ *
+ * @param info a new [UserActivityInfo] representing the current state
+ */
+ public fun onUserActivityInfo(info: UserActivityInfo) {}
+
+ /**
+ * Called when a [PassiveGoal] has been completed.
+ *
+ * @param goal the goal that has been completed
+ */
+ public fun onGoalCompleted(goal: PassiveGoal) {}
+
+ /**
+ * Called when the client has lost permission for the passive listener request. If this happens,
+ * WHS will automatically unregister the client request and stop the relevant sensors. The
+ * client can use this callback to detect the problem and either prompt the user to re-grant the
+ * permissions or re-register while requesting only that which the app does have permission for.
+ */
+ public fun onPermissionLost() {}
+}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/PassiveListenerService.kt b/health/health-services-client/src/main/java/androidx/health/services/client/PassiveListenerService.kt
new file mode 100644
index 0000000..9ef832a
--- /dev/null
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/PassiveListenerService.kt
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2022 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.
+ */
+
+package androidx.health.services.client
+
+import android.app.Service
+import android.content.Intent
+import android.os.IBinder
+import android.util.Log
+import androidx.health.services.client.impl.IPassiveListenerService
+import androidx.health.services.client.impl.event.PassiveListenerEvent
+import androidx.health.services.client.impl.response.PassiveMonitoringGoalResponse
+import androidx.health.services.client.impl.response.PassiveMonitoringUpdateResponse
+import androidx.health.services.client.proto.EventsProto.PassiveListenerEvent.EventCase.EVENT_NOT_SET
+import androidx.health.services.client.proto.EventsProto.PassiveListenerEvent.EventCase.HEALTH_EVENT_RESPONSE
+import androidx.health.services.client.proto.EventsProto.PassiveListenerEvent.EventCase.PASSIVE_GOAL_RESPONSE
+import androidx.health.services.client.proto.EventsProto.PassiveListenerEvent.EventCase.PASSIVE_UPDATE_RESPONSE
+import androidx.health.services.client.proto.EventsProto.PassiveListenerEvent.EventCase.PERMISSION_LOST_RESPONSE
+
+/**
+ * Service that enables receiving passive monitoring updates throughout the day when the app may not
+ * be running.
+ *
+ * Health Services will bind to the [PassiveListenerService] to deliver passive monitoring updates
+ * such as data or goal updates. Clients should extend this service and override those methods of
+ * the [PassiveListenerCallback] that they care about. They can then pass in their service to
+ * [PassiveMonitoringClient.registerPassiveListenerServiceAsync] to receive data updates.
+ */
+// TODO(b/227475943): open up visibility
+internal abstract class PassiveListenerService : PassiveListenerCallback, Service() {
+
+ private var wrapper: IPassiveListenerServiceWrapper? = null
+
+ final override fun onBind(intent: Intent): IBinder? {
+ wrapper = IPassiveListenerServiceWrapper()
+ return wrapper
+ }
+
+ private inner class IPassiveListenerServiceWrapper : IPassiveListenerService.Stub() {
+
+ override fun onPassiveListenerEvent(event: PassiveListenerEvent) {
+ val proto = event.proto
+
+ when (proto.eventCase) {
+ PASSIVE_UPDATE_RESPONSE -> {
+ val response = PassiveMonitoringUpdateResponse(proto.passiveUpdateResponse)
+ if (!response.passiveMonitoringUpdate.dataPoints.isEmpty()) {
+ this@PassiveListenerService.onNewDataPoints(
+ response.passiveMonitoringUpdate.dataPoints
+ )
+ }
+ for (userActivityInfo in
+ response.passiveMonitoringUpdate.userActivityInfoUpdates) {
+ this@PassiveListenerService.onUserActivityInfo(userActivityInfo)
+ }
+ }
+ PASSIVE_GOAL_RESPONSE -> {
+ val response = PassiveMonitoringGoalResponse(proto.passiveGoalResponse)
+ this@PassiveListenerService.onGoalCompleted(response.passiveGoal)
+ }
+ HEALTH_EVENT_RESPONSE -> {
+ // TODO(b/227475943): fill in when health events are added.
+ }
+ PERMISSION_LOST_RESPONSE -> {
+ this@PassiveListenerService.onPermissionLost()
+ }
+ null, EVENT_NOT_SET -> Log.w(TAG, "Received unknown event ${proto.eventCase}")
+ }
+ }
+
+ override fun getApiVersion(): Int {
+ return API_VERSION
+ }
+ }
+
+ private companion object {
+ const val TAG = "PassiveListenerService"
+ }
+}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/PassiveMonitoringClient.kt b/health/health-services-client/src/main/java/androidx/health/services/client/PassiveMonitoringClient.kt
index 298a7cc..794c18d 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/PassiveMonitoringClient.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/PassiveMonitoringClient.kt
@@ -33,16 +33,20 @@
* or triggered passive goals, regardless of whether or not the subscribing app is currently
* running, in the foreground or engaged in a workout.
*/
+// TODO(b/227475943): Remove old registration methods, add new registration methods, ensure new
+// registration methods do not return a ListenableFuture
public interface PassiveMonitoringClient {
/**
* Subscribes for updates on a set of data types to be periodically delivered to the app.
*
- * Data will be batched. Higher frequency updates are available through [ExerciseClient] or
- * [MeasureClient].
+ * Data will be batched and delivered from the point of initial registration and will continue
+ * to be delivered until the [DataType] is unregistered, either by explicitly calling
+ * [unregisterDataCallbackAsync] or by registering again without that [DataType] included in the
+ * request. Higher frequency updates are available through [ExerciseClient] or [MeasureClient].
*
* The data will be broadcast to the provided [ComponentName] periodically to the action:
- * [PassiveMonitoringUpdate.INTENT_DATA_ACTION]. A [PassiveMonitoringUpdate] can be extracted
- * from the intent using [PassiveMonitoringUpdate.fromIntent].
+ * [PassiveMonitoringUpdate.ACTION_DATA]. A [PassiveMonitoringUpdate] can be extracted from the
+ * intent using [PassiveMonitoringUpdate.fromIntent].
*
* Subscribing apps are responsible for ensuring they can receive the intent by e.g. declaring a
* suitable [BroadcastReceiver] in their app manifest.
@@ -51,40 +55,43 @@
* previous registration, if one had been made. The client is responsible for ensuring that
* their requested [PassiveMonitoringConfig] is supported on this device by checking the
* [PassiveMonitoringCapabilities]. The returned future will fail if the request is not
- * supported on a given device.
+ * supported on the current device or the client does not have the required permissions for the
+ * request.
*/
- public fun registerDataCallback(configuration: PassiveMonitoringConfig): ListenableFuture<Void>
+ public fun registerDataCallbackAsync(
+ configuration: PassiveMonitoringConfig
+ ): ListenableFuture<Void>
/**
- * Subscribes an intent callback (the same way as [PassiveMonitoringClient.registerDataCallback]
- * ) and a [PassiveMonitoringCallback] for updates on a set of data types periodically.
+ * Subscribes an intent callback (the same way as
+ * [PassiveMonitoringClient.registerDataCallbackAsync]) and a [PassiveMonitoringCallback] for
+ * updates on a set of data types periodically.
*
* The provided [callback] will take priority in receiving updates as long the app is alive and
* the callback can be successfully notified. Otherwise, updates will be delivered via Intent to
- * the [componentName] with the provided actionName.
+ * the [PassiveMonitoringConfig.componentName] with the [PassiveMonitoringUpdate.ACTION_DATA].
*
* This registration is unique per subscribing app. Subsequent registrations will replace the
* previous registration, if one had been made.
*/
- @SuppressWarnings("ExecutorRegistration")
- public fun registerDataCallback(
+ public fun registerDataCallbackAsync(
configuration: PassiveMonitoringConfig,
callback: PassiveMonitoringCallback
): ListenableFuture<Void>
/**
- * Unregisters the subscription made by [PassiveMonitoringClient.registerDataCallback].
+ * Unregisters the subscription made by [PassiveMonitoringClient.registerDataCallbackAsync].
*
- * The [Intent] will be broadcast to the [ComponentName] one last time with any remaining
- * buffered data.
+ * The [android.content.Intent] will be broadcast to the [ComponentName] one last time with any
+ * remaining buffered data.
*/
- public fun unregisterDataCallback(): ListenableFuture<Void>
+ public fun unregisterDataCallbackAsync(): ListenableFuture<Void>
/**
* Registers for notification of the [passiveGoal] being triggered.
*
* An Intent will be broadcast to the provided [ComponentName] with the action
- * [PassiveMonitoringUpdate.INTENT_GOAL_ACTION] whenever the [passiveGoal] is triggered.
+ * [PassiveGoal.ACTION_GOAL] whenever the [passiveGoal] is triggered.
*
* Subscribing apps are responsible for ensuring they can receive the intent by e.g. declaring a
* suitable [BroadcastReceiver] in their app manifest.
@@ -93,22 +100,32 @@
* passive goal that is equal, as per the definition of [PassiveGoal.equals], in which case the
* existing registration for that passive goal will be replaced.
*/
- public fun registerPassiveGoalCallback(
+ public fun <T : BroadcastReceiver> registerPassiveGoalCallbackAsync(
passiveGoal: PassiveGoal,
- componentName: ComponentName,
+ broadcastReceiver: Class<T>,
): ListenableFuture<Void>
/** Unregisters the subscription for the given [PassiveGoal]. */
- public fun unregisterPassiveGoalCallback(passiveGoal: PassiveGoal): ListenableFuture<Void>
+ public fun unregisterPassiveGoalCallbackAsync(passiveGoal: PassiveGoal): ListenableFuture<Void>
/**
* Flushes the sensors for the registered [DataType]s.
*
- * If no intent has been registered by this client, this will be a no-op. This call should be
+ * If no listener has been registered by this client, this will be a no-op. This call should be
* used sparingly and will be subject to throttling by Health Services.
+ *
+ * @return a [ListenableFuture] that will complete when the flush is finished
*/
- public fun flush(): ListenableFuture<Void>
+ public fun flushAsync(): ListenableFuture<Void>
- /** Returns the [PassiveMonitoringCapabilities] of this client for the device. */
+ /**
+ * Returns the [PassiveMonitoringCapabilities] of this client for this device.
+ *
+ * This can be used to determine what [DataType]s this device supports for passive monitoring
+ * and goals. Clients should use the capabilities to inform their requests since Health Services
+ * will typically reject requests made for [DataType]s which are not supported.
+ *
+ * @return a [ListenableFuture] containing the [PassiveMonitoringCapabilities] for this device
+ */
public val capabilities: ListenableFuture<PassiveMonitoringCapabilities>
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/AggregateDataPoints.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/AggregateDataPoints.kt
index 63ef304..1e1accf 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/AggregateDataPoints.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/AggregateDataPoints.kt
@@ -17,9 +17,10 @@
package androidx.health.services.client.data
import androidx.annotation.Keep
+import java.time.Duration
import java.time.Instant
-/** Helper class to facilitate working with [DataPoint] s. */
+/** Helper class to facilitate working with [DataPoint]s. */
// TODO(b/177504986): Remove all @Keep annotations once we figure out why this class gets stripped
// away by proguard.
@Keep
@@ -27,13 +28,13 @@
/**
* Creates a new [StatisticalDataPoint] of type [DataType.ABSOLUTE_ELEVATION] with the given
- * elevations in meters.
+ * elevations (in meters).
*/
@JvmStatic
public fun aggregateAbsoluteElevation(
- minAbsElevation: Double,
- maxAbsElevation: Double,
- avgAbsElevation: Double,
+ minAbsElevationMeters: Double,
+ maxAbsElevationMeters: Double,
+ avgAbsElevationMeters: Double,
startTime: Instant,
endTime: Instant
): StatisticalDataPoint =
@@ -41,9 +42,9 @@
startTime,
endTime,
DataType.ABSOLUTE_ELEVATION,
- Value.ofDouble(minAbsElevation),
- Value.ofDouble(maxAbsElevation),
- Value.ofDouble(avgAbsElevation)
+ Value.ofDouble(minAbsElevationMeters),
+ Value.ofDouble(maxAbsElevationMeters),
+ Value.ofDouble(avgAbsElevationMeters)
)
/**
@@ -58,14 +59,14 @@
): AggregateDataPoint =
CumulativeDataPoint(startTime, endTime, DataType.TOTAL_CALORIES, Value.ofDouble(kcalories))
- /** Creates a new [AggregateDataPoint] for the [DataType.DISTANCE] with the given `distance`. */
+ /** Creates a new [AggregateDataPoint] for the [DataType.DISTANCE] with the given `meters`. */
@JvmStatic
public fun aggregateDistance(
- distance: Double,
+ meters: Double,
startTime: Instant,
endTime: Instant
): AggregateDataPoint =
- CumulativeDataPoint(startTime, endTime, DataType.DISTANCE, Value.ofDouble(distance))
+ CumulativeDataPoint(startTime, endTime, DataType.DISTANCE, Value.ofDouble(meters))
/**
* Creates a new [AggregateDataPoint] for the [DataType.ELEVATION_GAIN] with the given
@@ -102,9 +103,9 @@
/** Creates a new [AggregateDataPoint] of type [DataType.PACE] with the given `millisPerKm`. */
@JvmStatic
public fun aggregatePace(
- minMillisPerKm: Double,
- maxMillisPerKm: Double,
- avgMillisPerKm: Double,
+ minMillisPerKm: Duration,
+ maxMillisPerKm: Duration,
+ avgMillisPerKm: Duration,
startTime: Instant,
endTime: Instant
): AggregateDataPoint =
@@ -112,9 +113,9 @@
startTime,
endTime,
DataType.PACE,
- Value.ofDouble(minMillisPerKm),
- Value.ofDouble(maxMillisPerKm),
- Value.ofDouble(avgMillisPerKm)
+ Value.ofDouble((minMillisPerKm.toMillis()).toDouble()),
+ Value.ofDouble((maxMillisPerKm.toMillis()).toDouble()),
+ Value.ofDouble((avgMillisPerKm.toMillis()).toDouble())
)
/**
@@ -148,6 +149,28 @@
CumulativeDataPoint(startTime, endTime, DataType.STEPS, Value.ofLong(steps))
/**
+ * Creates a new [AggregateDataPoint] of type [DataType.STEPS_PER_MINUTE] with the given
+ * `steps`.
+ */
+ @JvmStatic
+ // TODO(b/227475943): open up visibility
+ internal fun aggregateStepsPerMinute(
+ minstepsPerMinute: Long,
+ maxstepsPerMinute: Long,
+ avgstepsPerMinute: Long,
+ startTime: Instant,
+ endTime: Instant
+ ): AggregateDataPoint =
+ StatisticalDataPoint(
+ startTime,
+ endTime,
+ DataType.STEPS_PER_MINUTE,
+ Value.ofLong(minstepsPerMinute),
+ Value.ofLong(maxstepsPerMinute),
+ Value.ofLong(avgstepsPerMinute)
+ )
+
+ /**
* Creates a new [DataPoint] of type [DataType.SWIMMING_STROKES] with the given
* `swimmingStrokes`.
*/
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/Availability.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/Availability.kt
index e4c64eb..f4438ca 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/Availability.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/Availability.kt
@@ -16,6 +16,7 @@
package androidx.health.services.client.data
+import androidx.annotation.RestrictTo
import androidx.health.services.client.proto.DataProto
import androidx.health.services.client.proto.DataProto.Availability.AvailabilityCase
import androidx.health.services.client.proto.DataProto.Availability.DataTypeAvailability as DataTypeAvailabilityProto
@@ -25,6 +26,7 @@
public val id: Int
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
public fun toProto(): DataProto.Availability =
DataProto.Availability.newBuilder()
.setDataTypeAvailability(DataTypeAvailabilityProto.DATA_TYPE_AVAILABILITY_UNKNOWN)
@@ -32,6 +34,7 @@
public companion object {
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
@JvmStatic
public fun fromProto(proto: DataProto.Availability): Availability =
when (proto.availabilityCase) {
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/BundlesUtil.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/BundlesUtil.kt
index a92a13c..2659f03 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/BundlesUtil.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/BundlesUtil.kt
@@ -30,11 +30,11 @@
public object BundlesUtil {
@JvmStatic
- @Suppress("DEPRECATION")
internal fun toProto(bundle: Bundle): DataProto.Bundle {
val builder = DataProto.Bundle.newBuilder()
for (key in bundle.keySet()) {
+ @Suppress("DEPRECATION")
when (val value = bundle.get(key)) {
is Boolean -> builder.putBools(key, value)
is String -> builder.putStrings(key, value)
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/ComparisonType.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/ComparisonType.kt
index f5b56f0..c38ee65 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/ComparisonType.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/ComparisonType.kt
@@ -16,6 +16,7 @@
package androidx.health.services.client.data
+import androidx.annotation.RestrictTo
import androidx.health.services.client.proto.DataProto
import androidx.health.services.client.proto.DataProto.ComparisonType.COMPARISON_TYPE_GREATER_THAN
import androidx.health.services.client.proto.DataProto.ComparisonType.COMPARISON_TYPE_GREATER_THAN_OR_EQUAL
@@ -23,36 +24,73 @@
import androidx.health.services.client.proto.DataProto.ComparisonType.COMPARISON_TYPE_LESS_THAN_OR_EQUAL
import androidx.health.services.client.proto.DataProto.ComparisonType.COMPARISON_TYPE_UNKNOWN
-/** For determining when a threshold has been met or exceeded in a [MetricCondition]. */
-public enum class ComparisonType(public val id: Int) {
- // TODO(b/175064823): investigate adding EQUAL comparison type
- GREATER_THAN(1),
- GREATER_THAN_OR_EQUAL(2),
- LESS_THAN(3),
- LESS_THAN_OR_EQUAL(4);
+/** For determining when a threshold has been met or exceeded in a [DataTypeCondition]. */
+public class ComparisonType private constructor(public val id: Int, public val name: String) {
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is ComparisonType) return false
+ if (id != other.id) return false
+
+ return true
+ }
+
+ override fun hashCode(): Int = id
+
+ override fun toString(): String = name
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
internal fun toProto(): DataProto.ComparisonType =
when (this) {
GREATER_THAN -> COMPARISON_TYPE_GREATER_THAN
GREATER_THAN_OR_EQUAL -> COMPARISON_TYPE_GREATER_THAN_OR_EQUAL
LESS_THAN -> COMPARISON_TYPE_LESS_THAN
LESS_THAN_OR_EQUAL -> COMPARISON_TYPE_LESS_THAN_OR_EQUAL
+ else -> COMPARISON_TYPE_UNKNOWN
}
public companion object {
- @JvmStatic
- public fun fromId(id: Int): ComparisonType? = values().firstOrNull { it.id == id }
+ // **Note**: If new values are added the remote SDK version must be checked, since
+ // DataTypeCondition previously threw an IllegalStateException if fromProto returned null,
+ // which it did for UNKNOWN.
+ // TODO(b/175064823): investigate adding EQUAL comparison type
+
+ /** The ComparisonType is unknown, or this library version is too old to recognize it. */
+ @JvmField
+ public val UNKNOWN: ComparisonType = ComparisonType(0, "UNKNOWN")
+
+ /** The comparison should be `currentValue > threshold`. */
+ @JvmField
+ public val GREATER_THAN: ComparisonType = ComparisonType(1, "GREATER_THAN")
+
+ /** The comparison should be `currentValue >= threshold`. */
+ @JvmField
+ public val GREATER_THAN_OR_EQUAL: ComparisonType =
+ ComparisonType(2, "GREATER_THAN_OR_EQUAL")
+
+ /** The comparison should be `currentValue < threshold`. */
+ @JvmField public val LESS_THAN: ComparisonType = ComparisonType(3, "LESS_THAN")
+
+ /** The comparison should be `currentValue <= threshold`. */
+ @JvmField
+ public val LESS_THAN_OR_EQUAL: ComparisonType = ComparisonType(4, "LESS_THAN_OR_EQUAL")
+
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ @JvmField
+ public val VALUES: List<ComparisonType> =
+ listOf(GREATER_THAN, GREATER_THAN_OR_EQUAL, LESS_THAN, LESS_THAN_OR_EQUAL)
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
@JvmStatic
- internal fun fromProto(proto: DataProto.ComparisonType): ComparisonType? =
+ internal fun fromProto(proto: DataProto.ComparisonType): ComparisonType =
when (proto) {
COMPARISON_TYPE_GREATER_THAN -> GREATER_THAN
COMPARISON_TYPE_GREATER_THAN_OR_EQUAL -> GREATER_THAN_OR_EQUAL
COMPARISON_TYPE_LESS_THAN -> LESS_THAN
COMPARISON_TYPE_LESS_THAN_OR_EQUAL -> LESS_THAN_OR_EQUAL
- COMPARISON_TYPE_UNKNOWN -> null
+ COMPARISON_TYPE_UNKNOWN -> UNKNOWN
}
}
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/DataPoint.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/DataPoint.kt
index d2a40c5..af0cc1e 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/DataPoint.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/DataPoint.kt
@@ -104,7 +104,7 @@
* Returns the start [Instant] of this [DataPoint], knowing the time at which the system booted.
*
* @param bootInstant the [Instant] at which the system booted, this can be computed by
- * `Instant.ofEpochMilli(System.currentTimeMillis() - SystemClock.elapsedRealtime()) `
+ * `Instant.ofEpochMilli(System.currentTimeMillis() - SystemClock.elapsedRealtime())`
*/
public fun getStartInstant(bootInstant: Instant): Instant {
return bootInstant.plus(startDurationFromBoot)
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/DataPointAccuracy.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/DataPointAccuracy.kt
index 4942d1a..ac2b286 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/DataPointAccuracy.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/DataPointAccuracy.kt
@@ -28,7 +28,7 @@
internal companion object {
internal fun fromProto(proto: DataProto.DataPointAccuracy): DataPointAccuracy =
when (proto.accuracyCase) {
- HR_ACCURACY -> HrAccuracy(proto)
+ HR_ACCURACY -> HeartRateAccuracy(proto)
LOCATION_ACCURACY -> LocationAccuracy(proto)
null, ACCURACY_NOT_SET -> throw IllegalStateException("Accuracy not set on $proto")
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/DataPoints.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/DataPoints.kt
index 1c14738..1c7c20b 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/DataPoints.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/DataPoints.kt
@@ -22,7 +22,7 @@
import java.time.Duration
import java.util.ArrayList
-/** Helper class to facilitate working with [DataPoint] s. */
+/** Helper class to facilitate working with [DataPoint]s. */
// TODO(b/177504986): Remove all @Keep annotations once we figure out why this class gets stripped
// away by proguard.
@Keep
@@ -59,15 +59,17 @@
/** Name of intent extra containing whether permissions are granted or not. */
private const val EXTRA_PERMISSIONS_GRANTED: String = "hs.data_points_has_permissions"
- /** Retrieves the [DataPoint] s that are contained in the given [Intent], if any. */
+ /** Retrieves the [DataPoint]s that are contained in the given [Intent], if any. */
@Suppress("DEPRECATION")
@JvmStatic
@Keep
+ // TODO(b/227475943): remove this function once new passive APIs are submitted
public fun getDataPoints(intent: Intent): List<DataPoint> =
intent.getParcelableArrayListExtra(EXTRA_DATA_POINTS) ?: listOf()
- /** Puts the given [DataPoint] s in the given [Intent]. */
+ /** Puts the given [DataPoint]s in the given [Intent]. */
@JvmStatic
+ // TODO(b/227475943): remove this function once new passive APIs are submitted
public fun putDataPoints(intent: Intent, dataPoints: Collection<DataPoint>) {
val copy = ArrayList(dataPoints)
intent.putParcelableArrayListExtra(EXTRA_DATA_POINTS, copy)
@@ -75,12 +77,14 @@
/** Sets whether [DataPoint] permissions are `granted` in the given [Intent]. */
@JvmStatic
+ // TODO(b/227475943): remove this function once new passive APIs are submitted
public fun putPermissionsGranted(intent: Intent, granted: Boolean) {
intent.putExtra(EXTRA_PERMISSIONS_GRANTED, granted)
}
/** Retrieves whether permissions are granted in this [Intent]. */
@JvmStatic
+ // TODO(b/227475943): remove this function once new passive APIs are submitted
public fun getPermissionsGranted(intent: Intent): Boolean =
intent.getBooleanExtra(EXTRA_PERMISSIONS_GRANTED, true)
@@ -133,7 +137,8 @@
/** Creates a new [DataPoint] of type [DataType.ELEVATION_GAIN] with the given `meters`. */
@JvmStatic
@JvmOverloads
- public fun elevationGain(
+ // TODO(b/227475943): open up visibility
+ internal fun elevationGain(
meters: Double,
startDurationFromBoot: Duration,
endDurationFromBoot: Duration,
@@ -147,6 +152,24 @@
metadata ?: Bundle()
)
+ /** Create a new [DataPoint] of type [DataType.ELEVATION_LOSS] with the given `meters`. */
+ @JvmStatic
+ @JvmOverloads
+ // TODO(b/227475943): open up visibility
+ internal fun elevationLoss(
+ meters: Double,
+ startDurationFromBoot: Duration,
+ endDurationFromBoot: Duration,
+ metadata: Bundle? = null
+ ): DataPoint =
+ DataPoint.createInterval(
+ DataType.ELEVATION_LOSS,
+ Value.ofDouble(meters),
+ startDurationFromBoot,
+ endDurationFromBoot,
+ metadata ?: Bundle()
+ )
+
/** Creates a new [DataPoint] of type [DataType.ABSOLUTE_ELEVATION] with the given `meters`. */
@JvmStatic
@JvmOverloads
@@ -248,8 +271,12 @@
/** Creates a new [DataPoint] of type [DataType.PACE] with the given `millisPerKm`. */
@JvmStatic
- public fun pace(millisPerKm: Double, durationFromBoot: Duration): DataPoint =
- DataPoint.createSample(DataType.PACE, Value.ofDouble(millisPerKm), durationFromBoot)
+ public fun pace(millisPerKm: Duration, durationFromBoot: Duration): DataPoint =
+ DataPoint.createSample(
+ DataType.PACE,
+ Value.ofDouble((millisPerKm.toMillis()).toDouble()),
+ durationFromBoot
+ )
/**
* Creates a new [DataPoint] of type [DataType.HEART_RATE_BPM] with the given `bpm` and
@@ -260,7 +287,7 @@
public fun heartRate(
bpm: Double,
durationFromBoot: Duration,
- accuracy: HrAccuracy? = null
+ accuracy: HeartRateAccuracy? = null
): DataPoint =
DataPoint.createSample(
DataType.HEART_RATE_BPM,
@@ -311,16 +338,16 @@
endDurationFromBoot
)
- /** Creates a new [DataPoint] of type [DataType.DAILY_DISTANCE] with the given `distance`. */
+ /** Creates a new [DataPoint] of type [DataType.DAILY_DISTANCE] with the given `meters`. */
@JvmStatic
public fun dailyDistance(
- distance: Double,
+ meters: Double,
startDurationFromBoot: Duration,
endDurationFromBoot: Duration
): DataPoint =
DataPoint.createInterval(
DataType.DAILY_DISTANCE,
- Value.ofDouble(distance),
+ Value.ofDouble(meters),
startDurationFromBoot,
endDurationFromBoot
)
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/DataType.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/DataType.kt
index f056998..7c70380 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/DataType.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/DataType.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.data
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.DataType.TimeType
import androidx.health.services.client.proto.DataProto
import androidx.health.services.client.proto.DataProto.DataType.TimeType.TIME_TYPE_INTERVAL
@@ -27,8 +28,8 @@
* A data type is a representation of health data managed by Health Services.
*
* A [DataType] specifies the format of the values inside a [DataPoint]. Health Services defines
- * data types for instantaneous observations [TimeType.SAMPLE](e.g. heart rate) and data types for
- * change between readings [TimeType.INTERVAL](e.g. distance).
+ * data types for instantaneous observations [TimeType.SAMPLE] (e.g. heart rate) and data types for
+ * change between readings [TimeType.INTERVAL] (e.g. distance).
*
* Note: the data type defines only the representation and format of the data, and not how it's
* being collected, the sensor being used, or the parameters of the collection.
@@ -43,6 +44,7 @@
public val format: Int,
) : ProtoParcelable<DataProto.DataType>() {
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
public constructor(
proto: DataProto.DataType
) : this(
@@ -56,19 +58,47 @@
* Whether the `DataType` corresponds to a measurement spanning an interval, or a sample at a
* single point in time.
*/
- public enum class TimeType {
- INTERVAL,
- SAMPLE;
+ public class TimeType private constructor(public val id: Int, public val name: String) {
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is TimeType) return false
+ if (id != other.id) return false
+
+ return true
+ }
+
+ override fun hashCode(): Int = id
+
+ override fun toString(): String = name
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
internal fun toProto(): DataProto.DataType.TimeType =
when (this) {
INTERVAL -> TIME_TYPE_INTERVAL
SAMPLE -> TIME_TYPE_SAMPLE
+ else -> TIME_TYPE_UNKNOWN
}
- internal companion object {
+ public companion object {
+
+ /**
+ * TimeType that indicates the DataType has a value that represents an interval of time
+ * with a beginning and end. For example, number of steps taken over a span of time.
+ */
+ @JvmField
+ public val INTERVAL: TimeType = TimeType(1, "INTERVAL")
+
+ /**
+ * TimeType that indicates the DataType has a value that represents a single point in
+ * time. For example, heart rate reading at a specific time.
+ */
+ @JvmField
+ public val SAMPLE: TimeType = TimeType(2, "SAMPLE")
+
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
internal fun fromProto(proto: DataProto.DataType.TimeType): TimeType? =
when (proto) {
TIME_TYPE_INTERVAL -> INTERVAL
@@ -104,6 +134,15 @@
public val ELEVATION_GAIN: DataType =
DataType("Elevation Gain", TimeType.INTERVAL, Value.FORMAT_DOUBLE)
+ /**
+ * A measure of the loss in elevation expressed in meters in `double` format. This is a
+ * positive value representing elevation loss (a value of 10 will indicate 10m of elevation
+ * loss).
+ */
+ @JvmField
+ public val ELEVATION_LOSS: DataType =
+ DataType("Elevation Loss", TimeType.INTERVAL, Value.FORMAT_DOUBLE)
+
/** Absolute elevation between each reading expressed in meters in `double` format. */
@JvmField
public val ABSOLUTE_ELEVATION: DataType =
@@ -169,7 +208,7 @@
* Current heart rate, in beats per minute in `double` format.
*
* Accuracy for a [DataPoint] of type [DataType.HEART_RATE_BPM] is represented by
- * [HrAccuracy].
+ * [HeartRateAccuracy].
*/
@JvmField
public val HEART_RATE_BPM: DataType =
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/DataTypeAvailability.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/DataTypeAvailability.kt
index 58a0633..dd0c2ed 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/DataTypeAvailability.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/DataTypeAvailability.kt
@@ -16,18 +16,31 @@
package androidx.health.services.client.data
+import androidx.annotation.RestrictTo
import androidx.health.services.client.proto.DataProto
import androidx.health.services.client.proto.DataProto.Availability.DataTypeAvailability as DataTypeAvailabilityProto
import androidx.health.services.client.proto.DataProto.Availability.DataTypeAvailability.DATA_TYPE_AVAILABILITY_UNKNOWN
/** Availability of a [DataType]. */
-public enum class DataTypeAvailability(public override val id: Int) : Availability {
- UNKNOWN(0),
- AVAILABLE(1),
- ACQUIRING(2),
- UNAVAILABLE(3);
+public class DataTypeAvailability private constructor(
+ public override val id: Int,
+ public val name: String
+) : Availability {
+
+ override fun toString(): String = name
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is DataTypeAvailability) return false
+ if (id != other.id) return false
+
+ return true
+ }
+
+ override fun hashCode(): Int = id
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
public override fun toProto(): DataProto.Availability =
DataProto.Availability.newBuilder()
.setDataTypeAvailability(
@@ -36,11 +49,39 @@
.build()
public companion object {
- @JvmStatic
- public fun fromId(id: Int): DataTypeAvailability? = values().firstOrNull { it.id == id }
+ /**
+ * The availability is unknown, or is represented by a value too new for this library
+ * version to parse.
+ */
+ @JvmField
+ public val UNKNOWN: DataTypeAvailability = DataTypeAvailability(0, "UNKNOWN")
- /** @hide */
- public fun fromProto(proto: DataTypeAvailabilityProto): DataTypeAvailability =
+ /** The [DataType] is fully initialized and available. */
+ @JvmField
+ public val AVAILABLE: DataTypeAvailability = DataTypeAvailability(1, "AVAILABLE")
+
+ /** The [DataType] is currently acquiring. */
+ @JvmField
+ public val ACQUIRING: DataTypeAvailability = DataTypeAvailability(2, "ACQUIRING")
+
+ /** The [DataType] is unavailable; health services cannot acquire it. */
+ @JvmField
+ public val UNAVAILABLE: DataTypeAvailability = DataTypeAvailability(3, "UNAVAILABLE")
+
+ /** The [DataType] is not available because the device is currently off-body. */
+ @JvmField
+ public val UNAVAILABLE_DEVICE_OFF_BODY: DataTypeAvailability =
+ DataTypeAvailability(4, "UNAVAILABLE_DEVICE_OFF_BODY")
+
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ @JvmField
+ public val VALUES: List<DataTypeAvailability> =
+ listOf(UNKNOWN, AVAILABLE, ACQUIRING, UNAVAILABLE, UNAVAILABLE_DEVICE_OFF_BODY)
+
+ @JvmStatic
+ public fun fromId(id: Int): DataTypeAvailability? = VALUES.firstOrNull { it.id == id }
+
+ internal fun fromProto(proto: DataTypeAvailabilityProto): DataTypeAvailability =
fromId(proto.number) ?: UNKNOWN
}
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/DataTypeCondition.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/DataTypeCondition.kt
index 93cb80e..76f5076 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/DataTypeCondition.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/DataTypeCondition.kt
@@ -33,7 +33,6 @@
DataType(proto.dataType),
Value(proto.threshold),
ComparisonType.fromProto(proto.comparisonType)
- ?: throw IllegalStateException("Invalid ComparisonType: ${proto.comparisonType}")
)
init {
@@ -72,6 +71,7 @@
ComparisonType.GREATER_THAN -> comparison > 0
ComparisonType.LESS_THAN_OR_EQUAL -> comparison <= 0
ComparisonType.GREATER_THAN_OR_EQUAL -> comparison >= 0
+ else -> false
}
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/DataTypes.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/DataTypes.kt
index c308f4d..d16cfd9 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/DataTypes.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/DataTypes.kt
@@ -16,7 +16,7 @@
package androidx.health.services.client.data
-/** Helper class to facilitate working with [DataTypes] [DataType]. */
+/** Helper class to facilitate working with [DataType]s. */
public object DataTypes {
/** Check if a [DataType] will be aggregated as a statistical value. */
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseCapabilities.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseCapabilities.kt
index d19b806..fdd8433 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseCapabilities.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseCapabilities.kt
@@ -21,8 +21,8 @@
import androidx.health.services.client.proto.DataProto.ExerciseCapabilities.TypeToCapabilitiesEntry
/**
- * A place holder class that represents the capabilities of the
- * [androidx.health.services.client.ExerciseClient] on the device.
+ * Contains the capabilities supported by [androidx.health.services.client.ExerciseClient] on this
+ * device.
*/
@Suppress("ParcelCreator")
public class ExerciseCapabilities(
@@ -75,7 +75,7 @@
)
}
- /** Returns the set of [ExerciseType] s that support auto pause and resume on this device. */
+ /** Returns the set of [ExerciseType]s that support auto pause and resume on this device. */
public val autoPauseAndResumeEnabledExercises: Set<ExerciseType>
get() {
return typeToCapabilities
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseConfig.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseConfig.kt
index 100bde7..a8b4bd4 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseConfig.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseConfig.kt
@@ -18,29 +18,37 @@
import android.os.Bundle
import android.os.Parcelable
+import androidx.annotation.RestrictTo
+import androidx.health.services.client.ExerciseClient
import androidx.health.services.client.proto.DataProto
-/** Defines configuration for an exercise tracked using HealthServices. */
-@Suppress("DataClassPrivateConstructor", "ParcelCreator")
+/**
+ * Defines configuration for an exercise tracked using Health Services.
+ *
+ * @constructor Creates a new ExerciseConfig for an exercise tracked using Health Services
+ *
+ * @property exerciseType [ExerciseType] user is performing for this exercise
+ * @property dataTypes [DataType] which will be tracked for this exercise
+ * @property aggregateDataTypes [DataType]s which should be tracked as aggregates for this exercise
+ * @property isAutoPauseAndResumeEnabled whether auto-pause/ resume is enabled for this exercise
+ * @property isGpsEnabled whether GPS is enabled for this exercise
+ * @property exerciseGoals [ExerciseGoal]s for this exercise
+ * @property exerciseParams [Bundle] additional OEM specific params for this exercise
+ */
+@Suppress("ParcelCreator")
public class ExerciseConfig
-protected constructor(
- /**
- * [ExerciseType] the user is performing for this exercise.
- *
- * This information can be used to tune sensors, e.g. the calories estimate can take the MET
- * value into account.
- */
+public constructor(
public val exerciseType: ExerciseType,
public val dataTypes: Set<DataType>,
public val aggregateDataTypes: Set<DataType>,
- @get:JvmName("shouldEnableAutoPauseAndResume")
- public val shouldEnableAutoPauseAndResume: Boolean,
- @get:JvmName("shouldEnableGps") public val shouldEnableGps: Boolean,
+ public val isAutoPauseAndResumeEnabled: Boolean,
+ public val isGpsEnabled: Boolean,
public val exerciseGoals: List<ExerciseGoal>,
public val exerciseParams: Bundle,
) : ProtoParcelable<DataProto.ExerciseConfig>() {
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
public constructor(
proto: DataProto.ExerciseConfig
) : this(
@@ -54,9 +62,9 @@
)
init {
- require(!dataTypes.contains(DataType.LOCATION) || shouldEnableGps) {
- "If LOCATION data is being requested, setShouldEnableGps(true) must be configured in " +
- "the ExerciseConfig. "
+ require(!dataTypes.contains(DataType.LOCATION) || isGpsEnabled) {
+ "If LOCATION data is being requested, setGpsEnabled(true) must be configured in the " +
+ "ExerciseConfig. "
}
}
@@ -65,8 +73,8 @@
private var exerciseType: ExerciseType? = null
private var dataTypes: Set<DataType> = emptySet()
private var aggregateDataTypes: Set<DataType> = emptySet()
- private var shouldEnableAutoPauseAndResume: Boolean = false
- private var shouldEnableGps: Boolean = false
+ private var autoPauseAndResumeEnabled: Boolean = false
+ private var gpsEnabled: Boolean = false
private var exerciseGoals: List<ExerciseGoal> = emptyList()
private var exerciseParams: Bundle = Bundle.EMPTY
@@ -76,6 +84,8 @@
* Provide this parameter when tracking a workout to provide more accurate data. This
* information can be used to tune sensors, e.g. the calories estimate can take the MET
* value into account.
+ *
+ * @param exerciseType the [ExerciseType] representing this exercise
*/
public fun setExerciseType(exerciseType: ExerciseType): Builder {
require(exerciseType != ExerciseType.UNKNOWN) { "Must specify a valid exercise type." }
@@ -84,9 +94,11 @@
}
/**
- * Sets the requested [DataType] s that should be tracked during this exercise. If not
- * explicitly called, a default set of [DataType] will be chosen based on the [ExerciseType]
- * .
+ * Sets the requested [DataType]s that should be tracked during this exercise. If not
+ * explicitly called, a default set of [DataType] will be chosen based on the
+ * [ExerciseType].
+ *
+ * @param dataTypes set of [DataType]s to track during this exercise
*/
public fun setDataTypes(dataTypes: Set<DataType>): Builder {
this.dataTypes = dataTypes.toSet()
@@ -97,6 +109,8 @@
* Sets the requested [DataType]s that should be tracked as aggregates (i.e. total steps or
* average heart rate) during this exercise. If not explicitly called, a default set of
* [DataType] will be chosen based on the [ExerciseType].
+ *
+ * @param dataTypes set of aggregate [DataType]s to track during this exercise
*/
public fun setAggregateDataTypes(dataTypes: Set<DataType>): Builder {
this.aggregateDataTypes = dataTypes.toSet()
@@ -106,37 +120,41 @@
/**
* Sets whether auto pause and auto resume should be enabled for this exercise. If not set,
* auto-pause is disabled by default.
+ *
+ * @param autoPauseAndResumeEnabled if true, exercise will automatically pause and resume
*/
@Suppress("MissingGetterMatchingBuilder")
- public fun setShouldEnableAutoPauseAndResume(
- shouldEnableAutoPauseAndResume: Boolean
- ): Builder {
- this.shouldEnableAutoPauseAndResume = shouldEnableAutoPauseAndResume
+ public fun setIsAutoPauseAndResumeEnabled(autoPauseAndResumeEnabled: Boolean): Builder {
+ this.autoPauseAndResumeEnabled = autoPauseAndResumeEnabled
return this
}
/**
* Sets whether GPS will be used for this exercise. If not set, it's disabled by default.
*
- * <p>If {@link DataType#LOCATION} is among the data types requested for the exercise, GPS
- * usage MUST be enabled. Enabling GPS will improve data generation for types like distance
- * and speed.
+ * If [DataType.LOCATION] is among the data types requested for the exercise, GPS usage
+ * MUST be enabled. Enabling GPS will improve data generation for types like distance and
+ * speed.
*
- * <p>If no data type is specified in the configuration, WHS provides all data types
- * supported for the exercise. In this case, if {@link DataType#LOCATION} is among the
- * supported data types for the exercise but GPS usage is disabled (i.e. {@code
- * shouldEnableGps} is {@code false}, then [ExerciseClient.startExercise] will fail.
+ * If no data type is specified in the configuration, WHS provides all data types
+ * supported for the exercise. In this case, if [DataType.LOCATION] is among the supported
+ * data types for the exercise but GPS usage is disabled (i.e. [gpsEnabled] is `false`, then
+ * [ExerciseClient.startExerciseAsync] will fail.
+ *
+ * @param gpsEnabled if true, GPS will be enabled for this exercise
*/
@Suppress("MissingGetterMatchingBuilder")
- public fun setShouldEnableGps(shouldEnableGps: Boolean): Builder {
- this.shouldEnableGps = shouldEnableGps
+ public fun setIsGpsEnabled(gpsEnabled: Boolean): Builder {
+ this.gpsEnabled = gpsEnabled
return this
}
/**
- * Sets [ExerciseGoal] s specified for this exercise.
+ * Sets [ExerciseGoal]s specified for this exercise.
*
* This is useful to have goals specified before the start of an exercise.
+ *
+ * @param exerciseGoals the list of [ExerciseGoal]s to begin the exercise with
*/
public fun setExerciseGoals(exerciseGoals: List<ExerciseGoal>): Builder {
this.exerciseGoals = exerciseGoals.toList()
@@ -146,20 +164,22 @@
/**
* Sets additional OEM specific parameters for the current exercise. Intended to be used by
* OEMs or apps working closely with them.
+ *
+ * @param exerciseParams [Bundle] containing OEM specific parameters
*/
public fun setExerciseParams(exerciseParams: Bundle): Builder {
this.exerciseParams = exerciseParams
return this
}
- /** Returns the built `ExerciseConfig`. */
+ /** Returns the built [ExerciseConfig]. */
public fun build(): ExerciseConfig {
return ExerciseConfig(
checkNotNull(exerciseType) { "No exercise type specified" },
dataTypes,
aggregateDataTypes,
- shouldEnableAutoPauseAndResume,
- shouldEnableGps,
+ autoPauseAndResumeEnabled,
+ gpsEnabled,
exerciseGoals,
exerciseParams
)
@@ -172,8 +192,8 @@
.setExerciseType(exerciseType.toProto())
.addAllDataTypes(dataTypes.map { it.proto })
.addAllAggregateDataTypes(aggregateDataTypes.map { it.proto })
- .setIsAutoPauseAndResumeEnabled(shouldEnableAutoPauseAndResume)
- .setIsGpsUsageEnabled(shouldEnableGps)
+ .setIsAutoPauseAndResumeEnabled(isAutoPauseAndResumeEnabled)
+ .setIsGpsUsageEnabled(isGpsEnabled)
.addAllExerciseGoals(exerciseGoals.map { it.proto })
.setExerciseParams(BundlesUtil.toProto(exerciseParams))
.build()
@@ -184,8 +204,8 @@
"exerciseType=$exerciseType, " +
"dataTypes=$dataTypes, " +
"aggregateDataTypes=$aggregateDataTypes, " +
- "shouldEnableAutoPauseAndResume=$shouldEnableAutoPauseAndResume, " +
- "shouldEnableGps=$shouldEnableGps, " +
+ "isAutoPauseAndResumeEnabled=$isAutoPauseAndResumeEnabled, " +
+ "isGpsEnabled=$isGpsEnabled, " +
"exerciseGoals=$exerciseGoals)"
public companion object {
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseGoal.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseGoal.kt
index e65bcb8..1228e91 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseGoal.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseGoal.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.data
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.proto.DataProto
import java.util.Objects
@@ -98,6 +99,7 @@
*
* @hide
*/
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
public fun isEquivalentTo(other: ExerciseGoal): Boolean {
if (this.exerciseGoalType != other.exerciseGoalType) {
return false
@@ -108,7 +110,7 @@
ExerciseGoalType.MILESTONE ->
this.dataTypeCondition.dataType == other.dataTypeCondition.dataType &&
this.dataTypeCondition.comparisonType ==
- other.dataTypeCondition.comparisonType &&
+ other.dataTypeCondition.comparisonType &&
this.period == other.period &&
Value.isZero(
Value.modulo(
@@ -119,6 +121,7 @@
period!!
)
)
+ else -> equals(other)
}
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseGoalType.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseGoalType.kt
index 2c4e83c..ab28fd9 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseGoalType.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseGoalType.kt
@@ -16,34 +16,53 @@
package androidx.health.services.client.data
+import androidx.annotation.RestrictTo
import androidx.health.services.client.proto.DataProto
-import androidx.health.services.client.proto.DataProto.ExerciseGoalType.EXERCISE_GOAL_TYPE_MILESTONE
-import androidx.health.services.client.proto.DataProto.ExerciseGoalType.EXERCISE_GOAL_TYPE_ONE_TIME
import androidx.health.services.client.proto.DataProto.ExerciseGoalType.EXERCISE_GOAL_TYPE_UNKNOWN
/** Exercise goal types. */
-public enum class ExerciseGoalType(public val id: Int) {
- ONE_TIME_GOAL(1),
- MILESTONE(2);
+public class ExerciseGoalType private constructor(public val id: Int, public val name: String) {
+
+ override fun toString(): String = name
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is ExerciseGoalType) return false
+ if (id != other.id) return false
+
+ return true
+ }
+
+ override fun hashCode(): Int = id
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
internal fun toProto(): DataProto.ExerciseGoalType =
- when (this) {
- ONE_TIME_GOAL -> EXERCISE_GOAL_TYPE_ONE_TIME
- MILESTONE -> EXERCISE_GOAL_TYPE_MILESTONE
- }
+ DataProto.ExerciseGoalType.forNumber(id) ?: EXERCISE_GOAL_TYPE_UNKNOWN
public companion object {
+ /** Goal type indicating this goal is for one event and should then be removed. */
+ @JvmField
+ public val ONE_TIME_GOAL: ExerciseGoalType = ExerciseGoalType(1, "ONE_TIME_GOAL")
+
+ /**
+ * Goal type indicating this goal is for a repeating event and should remain until the
+ * calling app removes it.
+ */
+ @JvmField
+ public val MILESTONE: ExerciseGoalType = ExerciseGoalType(2, "MILESTONE")
+
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ @JvmField
+ public val VALUES: List<ExerciseGoalType> = listOf(ONE_TIME_GOAL, MILESTONE)
+
@JvmStatic
- public fun fromId(id: Int): ExerciseGoalType? = values().firstOrNull { it.id == id }
+ public fun fromId(id: Int): ExerciseGoalType? = VALUES.firstOrNull { it.id == id }
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
@JvmStatic
internal fun fromProto(proto: DataProto.ExerciseGoalType): ExerciseGoalType? =
- when (proto) {
- EXERCISE_GOAL_TYPE_ONE_TIME -> ONE_TIME_GOAL
- EXERCISE_GOAL_TYPE_MILESTONE -> MILESTONE
- EXERCISE_GOAL_TYPE_UNKNOWN -> null
- }
+ fromId(proto.number)
}
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseInfo.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseInfo.kt
index 25d04c8..739d59e 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseInfo.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseInfo.kt
@@ -17,14 +17,14 @@
package androidx.health.services.client.data
import android.os.Parcelable
+import androidx.health.services.client.data.ExerciseTrackedStatus.Companion.toProto
import androidx.health.services.client.proto.DataProto
-import java.lang.IllegalStateException
/** High-level info about the exercise. */
@Suppress("ParcelCreator")
public class ExerciseInfo(
/** Returns the [ExerciseTrackedStatus]. */
- public val exerciseTrackedStatus: ExerciseTrackedStatus,
+ @ExerciseTrackedStatus public val exerciseTrackedStatus: Int,
/**
* Returns the [ExerciseType] of the active exercise, or [ExerciseType.UNKNOWN] if there is no
@@ -36,8 +36,7 @@
internal constructor(
proto: DataProto.ExerciseInfo
) : this(
- ExerciseTrackedStatus.fromProto(proto.exerciseTrackedStatus)
- ?: throw IllegalStateException("Invalid status ${proto.exerciseTrackedStatus}"),
+ ExerciseTrackedStatus.fromProto(proto.exerciseTrackedStatus),
ExerciseType.fromProto(proto.exerciseType)
)
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseLapSummary.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseLapSummary.kt
index ed68049..3f80b3e 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseLapSummary.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseLapSummary.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.data
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.proto.DataProto
import androidx.health.services.client.proto.DataProto.ExerciseLapSummary.LapMetricsEntry
import java.time.Duration
@@ -41,14 +42,15 @@
public val activeDuration: Duration,
/**
- * Returns the [DataPoint] s for each metric keyed by [DataType] tracked between [startTime] and
- * [endTime] i.e. during the duration of this lap. This will only contain aggregated [DataType]
- * s calculated over the duration of the lap.
+ * Returns the [DataPoint]s for each metric keyed by [DataType] tracked between [startTime] and
+ * [endTime] i.e. during the duration of this lap. This will only contain aggregated [DataType]s
+ * calculated over the duration of the lap.
*/
public val lapMetrics: Map<DataType, AggregateDataPoint>,
) : ProtoParcelable<DataProto.ExerciseLapSummary>() {
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
public constructor(
proto: DataProto.ExerciseLapSummary
) : this(
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseState.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseState.kt
index 1d46cc3..a91eb1e 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseState.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseState.kt
@@ -16,133 +16,11 @@
package androidx.health.services.client.data
+import androidx.annotation.RestrictTo
import androidx.health.services.client.proto.DataProto
-/** Enumerates the state of an exercise. */
-public enum class ExerciseState(public val id: Int) {
- /**
- * The exercise is being prepared, GPS and HeartRate sensors will be turned on if requested in
- * the [WarmUpConfig].
- */
- PREPARING(15),
- /**
- * The exercise is actively being started, but we don't yet have sensor stability or GPS fix.
- *
- * Used only in the manually started exercise.
- */
- USER_STARTING(1),
-
- /**
- * The exercise is actively in-progress.
- *
- * Used in both of the manually started exercise and the automatic exercise detection. It's also
- * the state when the automatic exercise detection has detected an exercise and the exercise is
- * actively in-progress.
- */
- ACTIVE(2),
-
- /**
- * The session is being paused by the user. Sensors are actively being flushed.
- *
- * Used only in the manually started exercise.
- */
- USER_PAUSING(3),
-
- /**
- * The session has been paused by the user. Sensors have completed flushing.
- *
- * Used only in the manually started exercise.
- */
- USER_PAUSED(4),
-
- /**
- * The session is being paused by auto-pause. Sensors are actively being flushed.
- *
- * Used only in the manually started exercise.
- */
- AUTO_PAUSING(5),
-
- /**
- * The session has been automatically paused. Sensors have completed flushing.
- *
- * Used only in the manually started exercise.
- */
- AUTO_PAUSED(6),
-
- /**
- * The session is being resumed by the user.
- *
- * Used only in the manually started exercise.
- */
- USER_RESUMING(7),
-
- /**
- * The session is being automatically resumed.
- *
- * Used only in the manually started exercise.
- */
- AUTO_RESUMING(8),
-
- /**
- * The exercise is being ended by the user. Sensors are actively being flushed.
- *
- * Used only in the manually started exercise.
- */
- USER_ENDING(9),
-
- /**
- * The exercise has been ended by the user. No new metrics will be exported and a final summary
- * should be provided to the client.
- *
- * Used only in the manually started exercise.
- */
- USER_ENDED(10),
-
- /**
- * The exercise is being automatically ended due to a lack of exercise updates being received by
- * the user. Sensors are actively being flushed.
- *
- * Used only in the manually started exercise.
- */
- AUTO_ENDING(11),
-
- /**
- * The exercise has been automatically ended due to a lack of exercise updates being received by
- * the user. No new metrics will be exported and a final summary should be provided to the
- * client.
- *
- * Used only in the manually started exercise.
- */
- AUTO_ENDED(12),
-
- /**
- * The exercise is being automatically ended due to lack of client's permissions to receive data
- * for the exercise.
- */
- AUTO_ENDING_PERMISSION_LOST(16),
-
- /**
- * The exercise has been automatically ended due to lack of client's permissions to receive data
- * for the exercise.
- */
- AUTO_ENDED_PERMISSION_LOST(17),
-
- /**
- * The exercise is being ended because it has been superseded by a new exercise being started by
- * another client. Sensors are actively being flushed.
- *
- * Used in both of the manually started exercise and the automatic exercise detection.
- */
- TERMINATING(13),
-
- /**
- * The exercise has been ended because it was superseded by a new exercise being started by
- * another client. No new metrics will be exported and a final summary should be provided to the
- * client.
- *
- * Used in both of the manually started exercise and the automatic exercise detection.
- */
- TERMINATED(14);
+/** The state of an exercise. */
+public class ExerciseState private constructor(public val id: Int, public val name: String) {
/**
* Returns true if this [ExerciseState] corresponds to one of the paused states and false
@@ -176,21 +54,178 @@
public val isEnding: Boolean
get() = ENDING_STATES.contains(this)
+ override fun toString(): String = name
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is ExerciseState) return false
+ if (id != other.id) return false
+
+ return true
+ }
+
+ override fun hashCode(): Int = id
+
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
internal fun toProto(): DataProto.ExerciseState =
DataProto.ExerciseState.forNumber(id) ?: DataProto.ExerciseState.EXERCISE_STATE_UNKNOWN
public companion object {
+ /**
+ * The exercise is being prepared, GPS and HeartRate sensors will be turned on if requested
+ * in the [WarmUpConfig].
+ */
+ @JvmField public val PREPARING: ExerciseState = ExerciseState(15, "PREPARING")
+
+ /**
+ * The exercise is actively being started, but we don't yet have sensor stability or GPS
+ * fix.
+ *
+ * Used only in the manually started exercise.
+ */
+ @JvmField public val USER_STARTING: ExerciseState = ExerciseState(1, "USER_STARTING")
+
+ /**
+ * The exercise is actively in-progress.
+ *
+ * Used in both of the manually started exercise and the automatic exercise detection. It's
+ * also the state when the automatic exercise detection has detected an exercise and the
+ * exercise is actively in-progress.
+ */
+ @JvmField public val ACTIVE: ExerciseState = ExerciseState(2, "ACTIVE")
+
+ /**
+ * The session is being paused by the user. Sensors are actively being flushed.
+ *
+ * Used only in the manually started exercise.
+ */
+ @JvmField public val USER_PAUSING: ExerciseState = ExerciseState(3, "USER_PAUSING")
+
+ /**
+ * The session has been paused by the user. Sensors have completed flushing.
+ *
+ * Used only in the manually started exercise.
+ */
+ @JvmField public val USER_PAUSED: ExerciseState = ExerciseState(4, "USER_PAUSED")
+
+ /**
+ * The session is being paused by auto-pause. Sensors are actively being flushed.
+ *
+ * Used only in the manually started exercise.
+ */
+ @JvmField public val AUTO_PAUSING: ExerciseState = ExerciseState(5, "AUTO_PAUSING")
+
+ /**
+ * The session has been automatically paused. Sensors have completed flushing.
+ *
+ * Used only in the manually started exercise.
+ */
+ @JvmField public val AUTO_PAUSED: ExerciseState = ExerciseState(6, "AUTO_PAUSED")
+
+ /**
+ * The session is being resumed by the user.
+ *
+ * Used only in the manually started exercise.
+ */
+ @JvmField public val USER_RESUMING: ExerciseState = ExerciseState(7, "USER_RESUMING")
+
+ /**
+ * The session is being automatically resumed.
+ *
+ * Used only in the manually started exercise.
+ */
+ @JvmField public val AUTO_RESUMING: ExerciseState = ExerciseState(8, "AUTO_RESUMING")
+
+ /**
+ * The exercise is being ended by the user. Sensors are actively being flushed.
+ *
+ * Used only in the manually started exercise.
+ */
+ @JvmField public val USER_ENDING: ExerciseState = ExerciseState(9, "USER_ENDING")
+
+ /**
+ * The exercise has been ended by the user. No new metrics will be exported and a final
+ * summary should be provided to the client.
+ *
+ * Used only in the manually started exercise.
+ */
+ @JvmField public val USER_ENDED: ExerciseState = ExerciseState(10, "USER_ENDED")
+
+ /**
+ * The exercise is being automatically ended due to a lack of exercise updates being
+ * received by the user. Sensors are actively being flushed.
+ *
+ * Used only in the manually started exercise.
+ */
+ @JvmField public val AUTO_ENDING: ExerciseState = ExerciseState(11, "AUTO_ENDING")
+
+ /**
+ * The exercise has been automatically ended due to a lack of exercise updates being
+ * received by the user. No new metrics will be exported and a final summary should be
+ * provided to the client.
+ *
+ * Used only in the manually started exercise.
+ */
+ @JvmField public val AUTO_ENDED: ExerciseState = ExerciseState(12, "AUTO_ENDED")
+
+ /**
+ * The exercise is being automatically ended due to lack of client's permissions to receive
+ * data for the exercise.
+ */
+ @JvmField
+ public val AUTO_ENDING_PERMISSION_LOST: ExerciseState =
+ ExerciseState(16, "AUTO_ENDING_PERMISSION_LOST")
+
+ /**
+ * The exercise has been automatically ended due to lack of client's permissions to receive
+ * data for the exercise.
+ */
+ @JvmField
+ public val AUTO_ENDED_PERMISSION_LOST: ExerciseState =
+ ExerciseState(17, "AUTO_ENDED_PERMISSION_LOST")
+
+ /**
+ * The exercise is being ended because it has been superseded by a new exercise being
+ * started by another client. Sensors are actively being flushed.
+ *
+ * Used in both of the manually started exercise and the automatic exercise detection.
+ */
+ @JvmField public val TERMINATING: ExerciseState = ExerciseState(13, "TERMINATING")
+
+ /**
+ * The exercise has been ended because it was superseded by a new exercise being started by
+ * another client. No new metrics will be exported and a final summary should be provided to
+ * the client.
+ *
+ * Used in both of the manually started exercise and the automatic exercise detection.
+ */
+ @JvmField public val TERMINATED: ExerciseState = ExerciseState(14, "TERMINATED")
+
private val RESUMING_STATES = setOf(USER_RESUMING, AUTO_RESUMING)
private val PAUSED_STATES = setOf(USER_PAUSED, AUTO_PAUSED)
private val ENDED_STATES =
setOf(USER_ENDED, AUTO_ENDED, AUTO_ENDED_PERMISSION_LOST, TERMINATED)
private val ENDING_STATES =
setOf(USER_ENDING, AUTO_ENDING, AUTO_ENDING_PERMISSION_LOST, TERMINATING)
+ private val OTHER_STATES =
+ setOf(PREPARING, USER_STARTING, USER_PAUSING, AUTO_PAUSING, ACTIVE)
- @JvmStatic public fun fromId(id: Int): ExerciseState? = values().firstOrNull { it.id == id }
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ @JvmField
+ public val VALUES: Set<ExerciseState> =
+ HashSet<ExerciseState>().apply {
+ addAll(OTHER_STATES)
+ addAll(RESUMING_STATES)
+ addAll(PAUSED_STATES)
+ addAll(ENDED_STATES)
+ addAll(ENDING_STATES)
+ }
+
+ @JvmStatic public fun fromId(id: Int): ExerciseState? = VALUES.firstOrNull { it.id == id }
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
@JvmStatic
public fun fromProto(proto: DataProto.ExerciseState): ExerciseState? = fromId(proto.number)
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseTrackedStatus.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseTrackedStatus.kt
index a80f5c8..7665eb6 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseTrackedStatus.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseTrackedStatus.kt
@@ -16,28 +16,44 @@
package androidx.health.services.client.data
+import androidx.annotation.IntDef
+import androidx.annotation.RestrictTo
import androidx.health.services.client.proto.DataProto
import androidx.health.services.client.proto.DataProto.ExerciseTrackedStatus.EXERCISE_TRACKED_STATUS_UNKNOWN
-/** Status representing if an exercise is being tracked and which app owns the exercise. */
-public enum class ExerciseTrackedStatus(public val id: Int) {
- /** An app other than the calling one owns the active exercise in progress. */
- OTHER_APP_IN_PROGRESS(1),
- /** The current calling app owns the active exercise in progress. */
- OWNED_EXERCISE_IN_PROGRESS(2),
- /** There is not currently any exercise in progress owned by any app. */
- NO_EXERCISE_IN_PROGRESS(3);
-
- /** @hide */
- public fun toProto(): DataProto.ExerciseTrackedStatus =
- DataProto.ExerciseTrackedStatus.forNumber(id) ?: EXERCISE_TRACKED_STATUS_UNKNOWN
+/**
+ * Status representing if an exercise is being tracked and which app owns the exercise.
+ *
+ * @hide
+ */
+@Retention(AnnotationRetention.SOURCE)
+@IntDef(
+ ExerciseTrackedStatus.OTHER_APP_IN_PROGRESS,
+ ExerciseTrackedStatus.OWNED_EXERCISE_IN_PROGRESS,
+ ExerciseTrackedStatus.NO_EXERCISE_IN_PROGRESS
+)
+public annotation class ExerciseTrackedStatus {
public companion object {
- @JvmStatic
- public fun fromId(id: Int): ExerciseTrackedStatus? = values().firstOrNull { it.id == id }
+ /** Exercise Tracked Status is an unknown or unexpected value. */
+ public const val UNKNOWN: Int = 0
+ /** An app other than the calling one owns the active exercise in progress. */
+ public const val OTHER_APP_IN_PROGRESS: Int = 1
+ /** The current calling app owns the active exercise in progress. */
+ public const val OWNED_EXERCISE_IN_PROGRESS: Int = 2
+ /** There is not currently any exercise in progress owned by any app. */
+ public const val NO_EXERCISE_IN_PROGRESS: Int = 3
/** @hide */
- public fun fromProto(proto: DataProto.ExerciseTrackedStatus): ExerciseTrackedStatus? =
- fromId(proto.number)
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ internal fun @receiver:ExerciseTrackedStatus
+ Int.toProto(): DataProto.ExerciseTrackedStatus =
+ DataProto.ExerciseTrackedStatus.forNumber(this) ?: EXERCISE_TRACKED_STATUS_UNKNOWN
+
+ /** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ @ExerciseTrackedStatus
+ @Suppress("WrongConstant")
+ public fun fromProto(proto: DataProto.ExerciseTrackedStatus): Int = proto.number
}
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseType.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseType.kt
index d1420fd..6716a53 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseType.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseType.kt
@@ -16,116 +16,257 @@
package androidx.health.services.client.data
+import androidx.annotation.RestrictTo
import androidx.health.services.client.proto.DataProto
-// TODO(b/185276729): Keep track of values separately to maintain alphabetical order
-// once values are locked in
/** Exercise type used to configure sensors and algorithms. */
-public enum class ExerciseType(
+public class ExerciseType @RestrictTo(RestrictTo.Scope.LIBRARY) public constructor(
/** Returns a unique identifier of for the [ExerciseType], as an `int`. */
- public val id: Int
-) {
- /** The current exercise type of the user is unknown or not set. */
- UNKNOWN(0),
- BACK_EXTENSION(1),
- BADMINTON(2),
- BARBELL_SHOULDER_PRESS(3),
- BASEBALL(4),
- BASKETBALL(5),
- BENCH_PRESS(6),
- BENCH_SIT_UP(7),
- BIKING(8),
- BIKING_STATIONARY(9),
- BOOT_CAMP(10),
- BOXING(11),
- BURPEE(12),
+ public val id: Int,
- /** (E.g., push ups, sit ups, pull-ups, jumping jacks). */
- CALISTHENICS(13),
- CRICKET(14),
- CRUNCH(15),
- DANCING(16),
- DEADLIFT(17),
- DUMBBELL_CURL_RIGHT_ARM(18),
- DUMBBELL_CURL_LEFT_ARM(19),
- DUMBBELL_FRONT_RAISE(20),
- DUMBBELL_LATERAL_RAISE(21),
- DUMBBELL_TRICEPS_EXTENSION_LEFT_ARM(22),
- DUMBBELL_TRICEPS_EXTENSION_RIGHT_ARM(23),
- DUMBBELL_TRICEPS_EXTENSION_TWO_ARM(24),
- ELLIPTICAL(25),
- EXERCISE_CLASS(26),
- FENCING(27),
- FRISBEE_DISC(28),
- FOOTBALL_AMERICAN(29),
- FOOTBALL_AUSTRALIAN(30),
- FORWARD_TWIST(31),
- GOLF(32),
- GUIDED_BREATHING(33),
- GYMNASTICS(34),
- HANDBALL(35),
- HIGH_INTENSITY_INTERVAL_TRAINING(36),
- HIKING(37),
- ICE_HOCKEY(38),
- ICE_SKATING(39),
- JUMP_ROPE(40),
- JUMPING_JACK(41),
- LAT_PULL_DOWN(42),
- LUNGE(43),
- MARTIAL_ARTS(44),
- MEDITATION(45),
- PADDLING(46),
- PARA_GLIDING(47),
- PILATES(48),
- PLANK(49),
- RACQUETBALL(50),
- ROCK_CLIMBING(51),
- ROLLER_HOCKEY(52),
- ROWING(53),
- ROWING_MACHINE(54),
- RUNNING(55),
- RUNNING_TREADMILL(56),
- RUGBY(57),
- SAILING(58),
- SCUBA_DIVING(59),
- SKATING(60),
- SKIING(61),
- SNOWBOARDING(62),
- SNOWSHOEING(63),
- SOCCER(64),
- SOFTBALL(65),
- SQUASH(66),
- SQUAT(67),
- STAIR_CLIMBING(68),
- STAIR_CLIMBING_MACHINE(69),
- STRENGTH_TRAINING(70),
- STRETCHING(71),
- SURFING(72),
- SWIMMING_OPEN_WATER(73),
- SWIMMING_POOL(74),
- TABLE_TENNIS(75),
- TENNIS(76),
- UPPER_TWIST(77),
- VOLLEYBALL(78),
- WALKING(79),
- WATER_POLO(80),
- WEIGHTLIFTING(81),
- WORKOUT(82),
- YOGA(83);
+ /** Returns a human readable name to represent this [ExerciseType]. */
+ public val name: String
+) {
+
+ override fun toString(): String {
+ return name
+ }
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is ExerciseType) return false
+
+ if (id != other.id) return false
+
+ return true
+ }
+
+ override fun hashCode(): Int {
+ return id
+ }
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
public fun toProto(): DataProto.ExerciseType =
DataProto.ExerciseType.forNumber(id) ?: DataProto.ExerciseType.EXERCISE_TYPE_UNKNOWN
public companion object {
- private val IDS = initialize()
- private fun initialize(): Map<Int, ExerciseType> {
- val map = mutableMapOf<Int, ExerciseType>()
- for (exerciseType in values()) {
- map.put(exerciseType.id, exerciseType)
- }
- return map
- }
+ // Next ID: 93
+ /** The current exercise type of the user is unknown or not set. */
+ @JvmField public val UNKNOWN: ExerciseType = ExerciseType(0, "UNKNOWN")
+ @JvmField public val ALPINE_SKIING: ExerciseType = ExerciseType(92, "ALPINE_SKIING")
+ @JvmField public val BACKPACKING: ExerciseType = ExerciseType(84, "BACKPACKING")
+ @JvmField public val BACK_EXTENSION: ExerciseType = ExerciseType(1, "BACK_EXTENSION")
+ @JvmField public val BADMINTON: ExerciseType = ExerciseType(2, "BADMINTON")
+ @JvmField
+ public val BARBELL_SHOULDER_PRESS: ExerciseType = ExerciseType(3, "BARBELL_SHOULDER_PRESS")
+ @JvmField public val BASEBALL: ExerciseType = ExerciseType(4, "BASEBALL")
+ @JvmField public val BASKETBALL: ExerciseType = ExerciseType(5, "BASKETBALL")
+ @JvmField public val BENCH_PRESS: ExerciseType = ExerciseType(6, "BENCH_PRESS")
+ @JvmField public val BENCH_SIT_UP: ExerciseType = ExerciseType(7, "BENCH_SIT_UP")
+ @JvmField public val BIKING: ExerciseType = ExerciseType(8, "BIKING")
+ @JvmField public val BIKING_STATIONARY: ExerciseType = ExerciseType(9, "BIKING_STATIONARY")
+ @JvmField public val BOOT_CAMP: ExerciseType = ExerciseType(10, "BOOT_CAMP")
+ @JvmField public val BOXING: ExerciseType = ExerciseType(11, "BOXING")
+ @JvmField public val BURPEE: ExerciseType = ExerciseType(12, "BURPEE")
+
+ /** Calisthenics (E.g., push ups, sit ups, pull-ups, jumping jacks). */
+ @JvmField public val CALISTHENICS: ExerciseType = ExerciseType(13, "CALISTHENICS")
+ @JvmField public val CRICKET: ExerciseType = ExerciseType(14, "CRICKET")
+ @JvmField
+ public val CROSS_COUNTRY_SKIING: ExerciseType = ExerciseType(91, "CROSS_COUNTRY_SKIING")
+ @JvmField public val CRUNCH: ExerciseType = ExerciseType(15, "CRUNCH")
+ @JvmField public val DANCING: ExerciseType = ExerciseType(16, "DANCING")
+ @JvmField public val DEADLIFT: ExerciseType = ExerciseType(17, "DEADLIFT")
+ @JvmField
+ public val DUMBBELL_CURL_RIGHT_ARM: ExerciseType =
+ ExerciseType(18, "DUMBBELL_CURL_RIGHT_ARM")
+ @JvmField
+ public val DUMBBELL_CURL_LEFT_ARM: ExerciseType = ExerciseType(19, "DUMBBELL_CURL_LEFT_ARM")
+ @JvmField
+ public val DUMBBELL_FRONT_RAISE: ExerciseType = ExerciseType(20, "DUMBBELL_FRONT_RAISE")
+ @JvmField
+ public val DUMBBELL_LATERAL_RAISE: ExerciseType = ExerciseType(21, "DUMBBELL_LATERAL_RAISE")
+ @JvmField
+ public val DUMBBELL_TRICEPS_EXTENSION_LEFT_ARM: ExerciseType =
+ ExerciseType(22, "DUMBBELL_TRICEPS_EXTENSION_LEFT_ARM")
+ @JvmField
+ public val DUMBBELL_TRICEPS_EXTENSION_RIGHT_ARM: ExerciseType =
+ ExerciseType(23, "DUMBBELL_TRICEPS_EXTENSION_RIGHT_ARM")
+ @JvmField
+ public val DUMBBELL_TRICEPS_EXTENSION_TWO_ARM: ExerciseType =
+ ExerciseType(24, "DUMBBELL_TRICEPS_EXTENSION_TWO_ARM")
+ @JvmField public val ELLIPTICAL: ExerciseType = ExerciseType(25, "ELLIPTICAL")
+ @JvmField public val EXERCISE_CLASS: ExerciseType = ExerciseType(26, "EXERCISE_CLASS")
+ @JvmField public val FENCING: ExerciseType = ExerciseType(27, "FENCING")
+ @JvmField public val FRISBEE_DISC: ExerciseType = ExerciseType(28, "FRISBEE_DISC")
+ @JvmField public val FOOTBALL_AMERICAN: ExerciseType = ExerciseType(29, "FOOTBALL_AMERICAN")
+ @JvmField
+ public val FOOTBALL_AUSTRALIAN: ExerciseType = ExerciseType(30, "FOOTBALL_AUSTRALIAN")
+ @JvmField public val FORWARD_TWIST: ExerciseType = ExerciseType(31, "FORWARD_TWIST")
+ @JvmField public val GOLF: ExerciseType = ExerciseType(32, "GOLF")
+ @JvmField public val GUIDED_BREATHING: ExerciseType = ExerciseType(33, "GUIDED_BREATHING")
+ @JvmField public val HORSE_RIDING: ExerciseType = ExerciseType(88, "HORSE_RIDING")
+ @JvmField public val GYMNASTICS: ExerciseType = ExerciseType(34, "GYMNASTICS")
+ @JvmField public val HANDBALL: ExerciseType = ExerciseType(35, "HANDBALL")
+ @JvmField
+ public val HIGH_INTENSITY_INTERVAL_TRAINING: ExerciseType =
+ ExerciseType(36, "HIGH_INTENSITY_INTERVAL_TRAINING")
+ @JvmField public val HIKING: ExerciseType = ExerciseType(37, "HIKING")
+ @JvmField public val ICE_HOCKEY: ExerciseType = ExerciseType(38, "ICE_HOCKEY")
+ @JvmField public val ICE_SKATING: ExerciseType = ExerciseType(39, "ICE_SKATING")
+ @JvmField public val INLINE_SKATING: ExerciseType = ExerciseType(87, "INLINE_SKATING")
+ @JvmField public val JUMP_ROPE: ExerciseType = ExerciseType(40, "JUMP_ROPE")
+ @JvmField public val JUMPING_JACK: ExerciseType = ExerciseType(41, "JUMPING_JACK")
+ @JvmField public val LAT_PULL_DOWN: ExerciseType = ExerciseType(42, "LAT_PULL_DOWN")
+ @JvmField public val LUNGE: ExerciseType = ExerciseType(43, "LUNGE")
+ @JvmField public val MARTIAL_ARTS: ExerciseType = ExerciseType(44, "MARTIAL_ARTS")
+ @JvmField public val MEDITATION: ExerciseType = ExerciseType(45, "MEDITATION")
+ @JvmField public val MOUNTAIN_BIKING: ExerciseType = ExerciseType(85, "MOUNTAIN_BIKING")
+ @JvmField public val ORIENTEERING: ExerciseType = ExerciseType(86, "ORIENTEERING")
+ @JvmField public val PADDLING: ExerciseType = ExerciseType(46, "PADDLING")
+ @JvmField public val PARA_GLIDING: ExerciseType = ExerciseType(47, "PARA_GLIDING")
+ @JvmField public val PILATES: ExerciseType = ExerciseType(48, "PILATES")
+ @JvmField public val PLANK: ExerciseType = ExerciseType(49, "PLANK")
+ @JvmField public val RACQUETBALL: ExerciseType = ExerciseType(50, "RACQUETBALL")
+ @JvmField public val ROCK_CLIMBING: ExerciseType = ExerciseType(51, "ROCK_CLIMBING")
+ @JvmField public val ROLLER_HOCKEY: ExerciseType = ExerciseType(52, "ROLLER_HOCKEY")
+ @JvmField public val ROLLER_SKATING: ExerciseType = ExerciseType(89, "ROLLER_SKATING")
+ @JvmField public val ROWING: ExerciseType = ExerciseType(53, "ROWING")
+ @JvmField public val ROWING_MACHINE: ExerciseType = ExerciseType(54, "ROWING_MACHINE")
+ @JvmField public val RUNNING: ExerciseType = ExerciseType(55, "RUNNING")
+ @JvmField public val RUNNING_TREADMILL: ExerciseType = ExerciseType(56, "RUNNING_TREADMILL")
+ @JvmField public val RUGBY: ExerciseType = ExerciseType(57, "RUGBY")
+ @JvmField public val SAILING: ExerciseType = ExerciseType(58, "SAILING")
+ @JvmField public val SCUBA_DIVING: ExerciseType = ExerciseType(59, "SCUBA_DIVING")
+ @JvmField public val SKATING: ExerciseType = ExerciseType(60, "SKATING")
+ @JvmField public val SKIING: ExerciseType = ExerciseType(61, "SKIING")
+ @JvmField public val SNOWBOARDING: ExerciseType = ExerciseType(62, "SNOWBOARDING")
+ @JvmField public val SNOWSHOEING: ExerciseType = ExerciseType(63, "SNOWSHOEING")
+ @JvmField public val SOCCER: ExerciseType = ExerciseType(64, "SOCCER")
+ @JvmField public val SOFTBALL: ExerciseType = ExerciseType(65, "SOFTBALL")
+ @JvmField public val SQUASH: ExerciseType = ExerciseType(66, "SQUASH")
+ @JvmField public val SQUAT: ExerciseType = ExerciseType(67, "SQUAT")
+ @JvmField public val STAIR_CLIMBING: ExerciseType = ExerciseType(68, "STAIR_CLIMBING")
+ @JvmField
+ public val STAIR_CLIMBING_MACHINE: ExerciseType = ExerciseType(69, "STAIR_CLIMBING_MACHINE")
+ @JvmField public val STRENGTH_TRAINING: ExerciseType = ExerciseType(70, "STRENGTH_TRAINING")
+ @JvmField public val STRETCHING: ExerciseType = ExerciseType(71, "STRETCHING")
+ @JvmField public val SURFING: ExerciseType = ExerciseType(72, "SURFING")
+ @JvmField
+ public val SWIMMING_OPEN_WATER: ExerciseType = ExerciseType(73, "SWIMMING_OPEN_WATER")
+ @JvmField public val SWIMMING_POOL: ExerciseType = ExerciseType(74, "SWIMMING_POOL")
+ @JvmField public val TABLE_TENNIS: ExerciseType = ExerciseType(75, "TABLE_TENNIS")
+ @JvmField public val TENNIS: ExerciseType = ExerciseType(76, "TENNIS")
+ @JvmField public val UPPER_TWIST: ExerciseType = ExerciseType(77, "UPPER_TWIST")
+ @JvmField public val VOLLEYBALL: ExerciseType = ExerciseType(78, "VOLLEYBALL")
+ @JvmField public val WALKING: ExerciseType = ExerciseType(79, "WALKING")
+ @JvmField public val WATER_POLO: ExerciseType = ExerciseType(80, "WATER_POLO")
+ @JvmField public val WEIGHTLIFTING: ExerciseType = ExerciseType(81, "WEIGHTLIFTING")
+ @JvmField public val WORKOUT: ExerciseType = ExerciseType(82, "WORKOUT")
+ @JvmField public val YACHTING: ExerciseType = ExerciseType(90, "YACHTING")
+ @JvmField public val YOGA: ExerciseType = ExerciseType(83, "YOGA")
+
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ @JvmField
+ public val VALUES: List<ExerciseType> =
+ listOf(
+ UNKNOWN,
+ ALPINE_SKIING,
+ BACKPACKING,
+ BACK_EXTENSION,
+ BADMINTON,
+ BARBELL_SHOULDER_PRESS,
+ BASEBALL,
+ BASKETBALL,
+ BENCH_PRESS,
+ BENCH_SIT_UP,
+ BIKING,
+ BIKING_STATIONARY,
+ BOOT_CAMP,
+ BOXING,
+ BURPEE,
+ CALISTHENICS,
+ CRICKET,
+ CROSS_COUNTRY_SKIING,
+ CRUNCH,
+ DANCING,
+ DEADLIFT,
+ DUMBBELL_CURL_RIGHT_ARM,
+ DUMBBELL_CURL_LEFT_ARM,
+ DUMBBELL_FRONT_RAISE,
+ DUMBBELL_LATERAL_RAISE,
+ DUMBBELL_TRICEPS_EXTENSION_LEFT_ARM,
+ DUMBBELL_TRICEPS_EXTENSION_RIGHT_ARM,
+ DUMBBELL_TRICEPS_EXTENSION_TWO_ARM,
+ ELLIPTICAL,
+ EXERCISE_CLASS,
+ FENCING,
+ FRISBEE_DISC,
+ FOOTBALL_AMERICAN,
+ FOOTBALL_AUSTRALIAN,
+ FORWARD_TWIST,
+ GOLF,
+ GUIDED_BREATHING,
+ HORSE_RIDING,
+ GYMNASTICS,
+ HANDBALL,
+ HIGH_INTENSITY_INTERVAL_TRAINING,
+ HIKING,
+ ICE_HOCKEY,
+ ICE_SKATING,
+ INLINE_SKATING,
+ JUMP_ROPE,
+ JUMPING_JACK,
+ LAT_PULL_DOWN,
+ LUNGE,
+ MARTIAL_ARTS,
+ MEDITATION,
+ MOUNTAIN_BIKING,
+ ORIENTEERING,
+ PADDLING,
+ PARA_GLIDING,
+ PILATES,
+ PLANK,
+ RACQUETBALL,
+ ROCK_CLIMBING,
+ ROLLER_HOCKEY,
+ ROLLER_SKATING,
+ ROWING,
+ ROWING_MACHINE,
+ RUNNING,
+ RUNNING_TREADMILL,
+ RUGBY,
+ SAILING,
+ SCUBA_DIVING,
+ SKATING,
+ SKIING,
+ SNOWBOARDING,
+ SNOWSHOEING,
+ SOCCER,
+ SOFTBALL,
+ SQUASH,
+ SQUAT,
+ STAIR_CLIMBING,
+ STAIR_CLIMBING_MACHINE,
+ STRENGTH_TRAINING,
+ STRETCHING,
+ SURFING,
+ SWIMMING_OPEN_WATER,
+ SWIMMING_POOL,
+ TABLE_TENNIS,
+ TENNIS,
+ UPPER_TWIST,
+ VOLLEYBALL,
+ WALKING,
+ WATER_POLO,
+ WEIGHTLIFTING,
+ WORKOUT,
+ YACHTING,
+ YOGA,
+ )
+
+ private val IDS = VALUES.map { it.id to it }.toMap()
/**
* Returns the [ExerciseType] based on its unique `id`.
@@ -140,6 +281,7 @@
}
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
public fun fromProto(proto: DataProto.ExerciseType): ExerciseType = fromId(proto.number)
}
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseTypeCapabilities.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseTypeCapabilities.kt
index 90a14a2..06622d4 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseTypeCapabilities.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseTypeCapabilities.kt
@@ -25,7 +25,9 @@
@Suppress("ParcelCreator")
public class ExerciseTypeCapabilities(
public val supportedDataTypes: Set<DataType>,
+ /** Map from supported goals datatypes to a set of compatible [ComparisonType]s. */
public val supportedGoals: Map<DataType, Set<ComparisonType>>,
+ /** Map from supported milestone datatypes to a set of compatible [ComparisonType]s. */
public val supportedMilestones: Map<DataType, Set<ComparisonType>>,
public val supportsAutoPauseAndResume: Boolean,
public val supportsLaps: Boolean,
@@ -39,14 +41,22 @@
.supportedGoalsList
.map { entry ->
DataType(entry.dataType) to
- entry.comparisonTypesList.mapNotNull { ComparisonType.fromProto(it) }.toSet()
+ entry
+ .comparisonTypesList
+ .map { ComparisonType.fromProto(it) }
+ .filter { it != ComparisonType.UNKNOWN }
+ .toSet()
}
.toMap(),
proto
.supportedMilestonesList
.map { entry ->
DataType(entry.dataType) to
- entry.comparisonTypesList.mapNotNull { ComparisonType.fromProto(it) }.toSet()
+ entry
+ .comparisonTypesList
+ .map { ComparisonType.fromProto(it) }
+ .filter { it != ComparisonType.UNKNOWN }
+ .toSet()
}
.toMap(),
supportsAutoPauseAndResume = proto.isAutoPauseAndResumeSupported,
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseUpdate.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseUpdate.kt
index 6cabc9e..a36b589 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseUpdate.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/ExerciseUpdate.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.data
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.proto.DataProto
import androidx.health.services.client.proto.DataProto.AggregateDataPoint.AggregateCase.AGGREGATE_NOT_SET
import androidx.health.services.client.proto.DataProto.AggregateDataPoint.AggregateCase.CUMULATIVE_DATA_POINT
@@ -44,22 +45,26 @@
*/
public val activeDuration: Duration,
+ /** The duration since boot when this ExerciseUpdate was created. */
+ updateDurationFromBoot: Duration?,
+
/**
* Returns the list of latest [DataPoint] for each metric keyed by data type name. This allows a
* client to easily query for the "current" values of each metric since last call.
*/
public val latestMetrics: Map<DataType, List<DataPoint>>,
- /** Returns the latest aggregated values for each metric keyed by [DataType#name]. */
+ /** Returns the latest aggregated values for each metric keyed by [DataType.name]. */
public val latestAggregateMetrics: Map<DataType, AggregateDataPoint>,
/**
- * Returns the latest `#ONE_TIME_GOAL` [ExerciseGoal] s that have been achieved. `#MILESTONE`
- * [ExerciseGoal] s will be returned via `#getLatestMilestoneMarkerSummaries` below.
+ * Returns the latest [ExerciseGoalType.ONE_TIME_GOAL] [ExerciseGoal]s that have been achieved.
+ * [ExerciseGoalType.MILESTONE] [ExerciseGoal]s will be returned via
+ * [latestMilestoneMarkerSummaries].
*/
public val latestAchievedGoals: Set<AchievedExerciseGoal>,
- /** Returns the latest [MilestoneMarkerSummary] s. */
+ /** Returns the latest [MilestoneMarkerSummary]s. */
public val latestMilestoneMarkerSummaries: Set<MilestoneMarkerSummary>,
/**
@@ -67,9 +72,18 @@
* and returns `null` if the exercise is in prepare phase and hasn't been started yet.
*/
public val exerciseConfig: ExerciseConfig?,
+
+ /**
+ * Returns the [ActiveDurationCheckpoint] which can be used to determine the active duration of
+ * the exercise in a way that is consistent with Health Services. Clients can anchor their
+ * application timers against this to ensure their view of the active duration matches the view
+ * of Health Services.
+ */
+ public val activeDurationCheckpoint: ActiveDurationCheckpoint?,
) : ProtoParcelable<DataProto.ExerciseUpdate>() {
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
public constructor(
proto: DataProto.ExerciseUpdate
) : this(
@@ -77,6 +91,11 @@
?: throw IllegalStateException("Invalid ExerciseState: ${proto.state}"),
if (proto.hasStartTimeEpochMs()) Instant.ofEpochMilli(proto.startTimeEpochMs) else null,
Duration.ofMillis(proto.activeDurationMs),
+ if (proto.hasUpdateDurationFromBootMs()) {
+ Duration.ofMillis(proto.updateDurationFromBootMs)
+ } else {
+ null
+ },
proto
.latestMetricsList
.map { metric ->
@@ -96,9 +115,63 @@
.toMap(),
proto.latestAchievedGoalsList.map { AchievedExerciseGoal(it) }.toSet(),
proto.mileStoneMarkerSummariesList.map { MilestoneMarkerSummary(it) }.toSet(),
- if (proto.hasExerciseConfig()) ExerciseConfig(proto.exerciseConfig) else null
+ if (proto.hasExerciseConfig()) ExerciseConfig(proto.exerciseConfig) else null,
+ if (proto.hasActiveDurationCheckpoint()) {
+ ActiveDurationCheckpoint.fromProto(proto.activeDurationCheckpoint)
+ } else {
+ null
+ }
)
+ /**
+ * This records the last time the exercise transitioned from an active to an inactive state or
+ * from an inactive to an active state, where inactive states match those found in
+ * [ExerciseState.isPaused] or [ExerciseState.isEnded]. This can be used to calculate the
+ * exercise active duration in a way that is consistent with Health Service's view of the
+ * exercise.
+ *
+ * If the exercise is currently inactive, the exercise’s active duration will match
+ * [activeDuration] below. If the exercise is active, the active duration can be calculated by
+ * `activeDuration + (now() - time)`.
+ */
+ public class ActiveDurationCheckpoint(
+ /**
+ * Returns the time at which the exercise last transitioned between the active or inactive
+ * states.
+ */
+ public val time: Instant,
+
+ /**
+ * Returns the active duration of the exercise at the time it last transitioned to "active",
+ * or the duration when it transitioned to inactive if it's currently paused or stopped.
+ */
+ public val activeDuration: Duration,
+ ) {
+
+ /** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ internal fun toProto(): DataProto.ExerciseUpdate.ActiveDurationCheckpoint =
+ DataProto.ExerciseUpdate.ActiveDurationCheckpoint.newBuilder()
+ .setTimeEpochMs(time.toEpochMilli())
+ .setActiveDurationMs(activeDuration.toMillis())
+ .build()
+
+ override fun toString(): String =
+ "ActiveDurationCheckpoint(time=$time, activeDuration=$activeDuration)"
+
+ internal companion object {
+ /** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ internal fun fromProto(
+ proto: DataProto.ExerciseUpdate.ActiveDurationCheckpoint
+ ): ActiveDurationCheckpoint? =
+ ActiveDurationCheckpoint(
+ Instant.ofEpochMilli(proto.timeEpochMs),
+ Duration.ofMillis(proto.activeDurationMs)
+ )
+ }
+ }
+
/** @hide */
override val proto: DataProto.ExerciseUpdate by lazy {
val builder =
@@ -131,21 +204,69 @@
.addAllMileStoneMarkerSummaries(latestMilestoneMarkerSummaries.map { it.proto })
startTime?.let { builder.setStartTimeEpochMs(startTime.toEpochMilli()) }
+ _updateDurationFromBoot?.let {
+ builder.setUpdateDurationFromBootMs(_updateDurationFromBoot.toMillis())
+ }
exerciseConfig?.let { builder.setExerciseConfig(exerciseConfig.proto) }
+ activeDurationCheckpoint?.let {
+ builder.setActiveDurationCheckpoint(activeDurationCheckpoint.toProto())
+ }
builder.build()
}
+ private val _updateDurationFromBoot: Duration? = updateDurationFromBoot
+
+ /**
+ * Returns the duration since boot when this ExerciseUpdate was created.
+ *
+ * Throws an @IllegalStateException if this ExerciseUpdate does not contain a valid
+ * [updateDurationFromBoot] which may happen if the Health Services app is out of date.
+ */
+ // TODO(b/227475943): open up visibility
+ internal val updateDurationFromBoot: Duration
+ get() =
+ _updateDurationFromBoot
+ ?: error(
+ "updateDurationFromBoot unavailable; is the Health Services APK out of date?"
+ )
+
+ /**
+ * Returns the ActiveDuration of the exercise at the time of the provided [DataPoint]. The
+ * provided [DataPoint] should be present in this [ExerciseUpdate].
+ *
+ * Throws an @IllegalArgumentException if the dataPoint is not present in this ExerciseUpdate.
+ * This util should only be used with [DataPoint]s that come from the ExerciseUpdate itself.
+ */
+ public fun getActiveDurationAtDataPoint(dataPoint: DataPoint): Duration {
+ val dataPointList = latestMetrics[dataPoint.dataType]
+ if (dataPointList == null || dataPointList.indexOf(dataPoint) == -1) {
+ throw IllegalArgumentException("dataPoint not found in ExerciseUpdate")
+ }
+
+ // If we are paused then the last active time applies to all updates.
+ if (state == ExerciseState.USER_PAUSED || state == ExerciseState.AUTO_PAUSED) {
+ return activeDuration
+ }
+ // Active duration applies to when this update was generated so calculate for the given time
+ // by working backwards.
+ // First find time since this point was generated.
+ val durationSinceProvidedTime = updateDurationFromBoot.minus(dataPoint.endDurationFromBoot)
+ return activeDuration.minus(durationSinceProvidedTime)
+ }
+
override fun toString(): String =
"ExerciseUpdate(" +
"state=$state, " +
"startTime=$startTime, " +
"activeDuration=$activeDuration, " +
+ "updateDurationFromBoot=$_updateDurationFromBoot, " +
"latestMetrics=$latestMetrics, " +
"latestAggregateMetrics=$latestAggregateMetrics, " +
"latestAchievedGoals=$latestAchievedGoals, " +
"latestMilestoneMarkerSummaries=$latestMilestoneMarkerSummaries, " +
- "exerciseConfig=$exerciseConfig)"
+ "exerciseConfig=$exerciseConfig, " +
+ "activeDurationCheckpoint=$activeDurationCheckpoint)"
public companion object {
@JvmField
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/HeartRateAccuracy.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/HeartRateAccuracy.kt
new file mode 100644
index 0000000..e00dbef
--- /dev/null
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/HeartRateAccuracy.kt
@@ -0,0 +1,118 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+package androidx.health.services.client.data
+
+import android.os.Parcelable
+import androidx.annotation.RestrictTo
+import androidx.health.services.client.proto.DataProto
+import androidx.health.services.client.proto.DataProto.DataPointAccuracy.HrAccuracy as HrAccuracyProto
+import androidx.health.services.client.proto.DataProto.DataPointAccuracy.HrAccuracy.SensorStatus as SensorStatusProto
+
+/** Accuracy for a [DataType.HEART_RATE_BPM] data point. */
+@Suppress("ParcelCreator")
+public class HeartRateAccuracy(public val sensorStatus: SensorStatus) : DataPointAccuracy() {
+
+ internal constructor(
+ proto: DataProto.DataPointAccuracy
+ ) : this(SensorStatus.fromProto(proto.hrAccuracy.sensorStatus))
+
+ /** Status of the Heart Rate sensor in terms of accuracy. */
+ public class SensorStatus private constructor(public val id: Int, public val name: String) {
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is SensorStatus) return false
+ if (id != other.id) return false
+
+ return true
+ }
+
+ override fun hashCode(): Int = id
+
+ override fun toString(): String = name
+
+ /** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ internal fun toProto(): SensorStatusProto =
+ SensorStatusProto.forNumber(id) ?: SensorStatusProto.HR_ACCURACY_SENSOR_STATUS_UNKNOWN
+
+ public companion object {
+ /**
+ * The availability is unknown, or is represented by a value too new for this library
+ * version to parse.
+ */
+ @JvmField
+ public val UNKNOWN: SensorStatus = SensorStatus(0, "UNKNOWN")
+
+ /**
+ * The heart rate cannot be acquired because the sensor is not properly contacting skin.
+ */
+ @JvmField
+ public val NO_CONTACT: SensorStatus = SensorStatus(1, "NO_CONTACT")
+
+ /** Heart rate data is currently too unreliable to be used. */
+ @JvmField
+ public val UNRELIABLE: SensorStatus = SensorStatus(2, "UNRELIABLE")
+
+ /** Heart rate data is available but the accuracy is low. */
+ @JvmField
+ public val ACCURACY_LOW: SensorStatus = SensorStatus(3, "ACCURACY_LOW")
+
+ /** Heart rate data is available and the accuracy is medium. */
+ @JvmField
+ public val ACCURACY_MEDIUM: SensorStatus = SensorStatus(4, "ACCURACY_MEDIUM")
+
+ /** Heart rate data is available with high accuracy. */
+ @JvmField
+ public val ACCURACY_HIGH: SensorStatus = SensorStatus(5, "ACCURACY_HIGH")
+
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ @JvmField
+ public val VALUES: List<SensorStatus> =
+ listOf(
+ UNKNOWN,
+ NO_CONTACT,
+ UNRELIABLE,
+ ACCURACY_LOW,
+ ACCURACY_MEDIUM,
+ ACCURACY_HIGH,
+ )
+
+ /** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ public fun fromProto(proto: SensorStatusProto): SensorStatus =
+ VALUES.firstOrNull { it.id == proto.number } ?: UNKNOWN
+ }
+ }
+
+ /** @hide */
+ override val proto: DataProto.DataPointAccuracy by lazy {
+ DataProto.DataPointAccuracy.newBuilder()
+ .setHrAccuracy(HrAccuracyProto.newBuilder().setSensorStatus(sensorStatus.toProto()))
+ .build()
+ }
+
+ override fun toString(): String = "HrAccuracy(sensorStatus=$sensorStatus)"
+
+ public companion object {
+ @JvmField
+ public val CREATOR: Parcelable.Creator<HeartRateAccuracy> = newCreator {
+ val proto = DataProto.DataPointAccuracy.parseFrom(it)
+ HeartRateAccuracy(proto)
+ }
+ }
+}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/HrAccuracy.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/HrAccuracy.kt
deleted file mode 100644
index 3edb191..0000000
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/HrAccuracy.kt
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2021 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.
- */
-
-package androidx.health.services.client.data
-
-import android.os.Parcelable
-import androidx.health.services.client.proto.DataProto
-import androidx.health.services.client.proto.DataProto.DataPointAccuracy.HrAccuracy as HrAccuracyProto
-import androidx.health.services.client.proto.DataProto.DataPointAccuracy.HrAccuracy.SensorStatus as SensorStatusProto
-
-/** Accuracy for a [DataType.HEART_RATE_BPM] data point. */
-@Suppress("ParcelCreator")
-public class HrAccuracy(public val sensorStatus: SensorStatus) : DataPointAccuracy() {
-
- internal constructor(
- proto: DataProto.DataPointAccuracy
- ) : this(SensorStatus.fromProto(proto.hrAccuracy.sensorStatus))
-
- public enum class SensorStatus(public val id: Int) {
- UNKNOWN(0),
- NO_CONTACT(1),
- UNRELIABLE(2),
- ACCURACY_LOW(3),
- ACCURACY_MEDIUM(4),
- ACCURACY_HIGH(5);
-
- /** @hide */
- internal fun toProto(): SensorStatusProto =
- SensorStatusProto.forNumber(id) ?: SensorStatusProto.HR_ACCURACY_SENSOR_STATUS_UNKNOWN
-
- /** @hide */
- public companion object {
- /** @hide */
- public fun fromProto(proto: SensorStatusProto): SensorStatus =
- values().firstOrNull { it.id == proto.number } ?: UNKNOWN
- }
- }
-
- /** @hide */
- override val proto: DataProto.DataPointAccuracy by lazy {
- DataProto.DataPointAccuracy.newBuilder()
- .setHrAccuracy(HrAccuracyProto.newBuilder().setSensorStatus(sensorStatus.toProto()))
- .build()
- }
-
- override fun toString(): String = "HrAccuracy(sensorStatus=$sensorStatus)"
-
- public companion object {
- @JvmField
- public val CREATOR: Parcelable.Creator<HrAccuracy> = newCreator {
- val proto = DataProto.DataPointAccuracy.parseFrom(it)
- HrAccuracy(proto)
- }
- }
-}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/LocationAccuracy.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/LocationAccuracy.kt
index dd9b2be..58e6c6e 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/LocationAccuracy.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/LocationAccuracy.kt
@@ -22,30 +22,52 @@
/** Accuracy for a [DataType.LOCATION] data point. */
@Suppress("ParcelCreator")
-public class LocationAccuracy(
+public class LocationAccuracy
+@JvmOverloads
+constructor(
/** Represents the estimated horizontal accuracy of the location, radial, in meters. */
- public val horizontalPositionError: Double
+ public val horizontalPositionErrorMeters: Double,
+ /**
+ * Represents the estimated vertical accuracy of the location, radial, in meters, or it will
+ * equal [LocationAccuracy.UNAVAILABLE] if it cannot be provided.
+ */
+ // TODO(b/227475943): open up visibility
+ internal val verticalPositionErrorMeters: Double = -1.0,
) : DataPointAccuracy() {
internal constructor(
proto: DataProto.DataPointAccuracy
- ) : this(proto.locationAccuracy.horizontalPositionError)
+ ) : this(
+ proto.locationAccuracy.horizontalPositionError,
+ if (proto.locationAccuracy.hasVerticalPositionError()) {
+ proto.locationAccuracy.verticalPositionError
+ } else {
+ UNAVAILABLE
+ }
+ )
/** @hide */
override val proto: DataProto.DataPointAccuracy by lazy {
DataProto.DataPointAccuracy.newBuilder()
.setLocationAccuracy(
LocationAccuracyProto.newBuilder()
- .setHorizontalPositionError(horizontalPositionError)
+ .setHorizontalPositionError(horizontalPositionErrorMeters)
+ .setVerticalPositionError(verticalPositionErrorMeters)
.build()
)
.build()
}
override fun toString(): String =
- "LocationAccuracy(horizontalPositionError=$horizontalPositionError)"
+ "LocationAccuracy(horizontalPositionErrorMeters=$horizontalPositionErrorMeters," +
+ "verticalPositionErrorMeters=$verticalPositionErrorMeters)"
public companion object {
+
+ /** Value used when a `verticalPositionError` is not available. */
+ // TODO(b/227475943): open up visibility
+ internal const val UNAVAILABLE: Double = -1.0
+
@JvmField
public val CREATOR: Parcelable.Creator<LocationAccuracy> = newCreator {
val proto = DataProto.DataPointAccuracy.parseFrom(it)
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/LocationAvailability.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/LocationAvailability.kt
index acdd966..55c7bda 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/LocationAvailability.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/LocationAvailability.kt
@@ -16,30 +16,31 @@
package androidx.health.services.client.data
+import androidx.annotation.RestrictTo
import androidx.health.services.client.proto.DataProto
import androidx.health.services.client.proto.DataProto.Availability.LocationAvailability as LocationAvailabilityProto
import androidx.health.services.client.proto.DataProto.Availability.LocationAvailability.LOCATION_AVAILABILITY_UNKNOWN
/** Availability of a [DataType.LOCATION] data type. */
-public enum class LocationAvailability(public override val id: Int) : Availability {
- UNKNOWN(0),
+public class LocationAvailability private constructor(
+ public override val id: Int,
+ public val name: String
+) : Availability {
- /** Location is not available. */
- UNAVAILABLE(1),
+ override fun toString(): String = name
- /** The on-device GPS is disabled, so location cannot be acquired. */
- NO_GPS(2),
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is LocationAvailability) return false
+ if (id != other.id) return false
- /** Acquiring location. */
- ACQUIRING(3),
+ return true
+ }
- /** Acquired location through connected phone. */
- ACQUIRED_TETHERED(4),
-
- /** Acquired location through watch. */
- ACQUIRED_UNTETHERED(5);
+ override fun hashCode(): Int = id
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
public override fun toProto(): DataProto.Availability =
DataProto.Availability.newBuilder()
.setLocationAvailability(
@@ -48,11 +49,43 @@
.build()
public companion object {
+ /**
+ * The availability is unknown, or is represented by a value too new for this library
+ * version to parse.
+ */
+ @JvmField public val UNKNOWN: LocationAvailability = LocationAvailability(0, "UNKNOWN")
+
+ /** Location is not available. */
+ @JvmField
+ public val UNAVAILABLE: LocationAvailability = LocationAvailability(1, "UNAVAILABLE")
+
+ /** The on-device location service is disabled, so location cannot be acquired. */
+ @JvmField public val NO_GNSS: LocationAvailability = LocationAvailability(2, "NO_GNSS")
+
+ /** Acquiring location. */
+ @JvmField public val ACQUIRING: LocationAvailability = LocationAvailability(3, "ACQUIRING")
+
+ /** Acquired location through connected phone. */
+ @JvmField
+ public val ACQUIRED_TETHERED: LocationAvailability =
+ LocationAvailability(4, "ACQUIRED_TETHERED")
+
+ /** Acquired location through watch. */
+ @JvmField
+ public val ACQUIRED_UNTETHERED: LocationAvailability =
+ LocationAvailability(5, "ACQUIRED_UNTETHERED")
+
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ @JvmField
+ public val VALUES: List<LocationAvailability> =
+ listOf(UNKNOWN, UNAVAILABLE, NO_GNSS, ACQUIRING, ACQUIRED_TETHERED, ACQUIRED_UNTETHERED)
+
@JvmStatic
- public fun fromId(id: Int): LocationAvailability? = values().firstOrNull { it.id == id }
+ public fun fromId(id: Int): LocationAvailability? = VALUES.firstOrNull { it.id == id }
/** @hide */
- public fun fromProto(proto: LocationAvailabilityProto): LocationAvailability =
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ internal fun fromProto(proto: LocationAvailabilityProto): LocationAvailability =
fromId(proto.number) ?: UNKNOWN
}
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/MeasureCapabilities.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/MeasureCapabilities.kt
index ea57f1c..c7b2f71 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/MeasureCapabilities.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/MeasureCapabilities.kt
@@ -20,13 +20,13 @@
import androidx.health.services.client.proto.DataProto
/**
- * A place holder class that represents the capabilities of the
- * [androidx.health.services.client.MeasureClient] on the device.
+ * Contains the capabilities supported by [androidx.health.services.client.MeasureClient] on this
+ * device.
*/
@Suppress("ParcelCreator")
public class MeasureCapabilities(
/**
- * Set of supported [DataType] s for measure capture on this device.
+ * Set of supported [DataType]s for measure capture on this device.
*
* Some data types are not available for measurement; this is typically used to measure health
* data (e.g. HR).
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveGoal.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveGoal.kt
index 74118ef..12bbc10 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveGoal.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveGoal.kt
@@ -18,6 +18,9 @@
import android.content.Intent
import android.os.Parcelable
+import androidx.annotation.IntDef
+import androidx.annotation.RestrictTo
+import androidx.health.services.client.data.PassiveGoal.TriggerFrequency.Companion.toProto
import androidx.health.services.client.proto.DataProto.PassiveGoal as PassiveGoalProto
/** Defines an passive goal that will be triggered when the specified condition is met. */
@@ -25,22 +28,18 @@
public class PassiveGoal(
/** [DataTypeCondition] which must be met for the passive goal to be triggered. */
public val dataTypeCondition: DataTypeCondition,
- public val triggerType: TriggerType,
+ @TriggerFrequency public val triggerFrequency: Int,
) : ProtoParcelable<PassiveGoalProto>() {
internal constructor(
proto: PassiveGoalProto
- ) : this(
- DataTypeCondition(proto.condition),
- TriggerType.fromProto(proto.triggerType)
- ?: throw IllegalStateException("Invalid TriggerType ${proto.triggerType}")
- )
+ ) : this(DataTypeCondition(proto.condition), TriggerFrequency.fromProto(proto.triggerFrequency))
/** @hide */
override val proto: PassiveGoalProto by lazy {
PassiveGoalProto.newBuilder()
.setCondition(dataTypeCondition.proto)
- .setTriggerType(triggerType.toProto())
+ .setTriggerFrequency(triggerFrequency.toProto())
.build()
}
@@ -53,31 +52,45 @@
}
override fun toString(): String =
- "PassiveGoal(dataTypeCondition=$dataTypeCondition, triggerType=$triggerType)"
+ "PassiveGoal(dataTypeCondition=$dataTypeCondition, triggerFrequency=$triggerFrequency)"
- /** Whether or not repeated passive goals should be triggered. */
- public enum class TriggerType(public val id: Int) {
- /** The passive goal will trigger the first time the specified conditions are met. */
- ONCE(1),
-
- /**
- * The passive goal will trigger each time the specified conditions *become* met. Repeated
- * goals on daily metrics will trigger once per day.
- */
- REPEATED(2);
-
- /** @hide */
- public fun toProto(): PassiveGoalProto.TriggerType =
- PassiveGoalProto.TriggerType.forNumber(id)
- ?: PassiveGoalProto.TriggerType.TRIGGER_TYPE_UNKNOWN
+ /**
+ * The frequency at which passive goals should be triggered.
+ *
+ * @hide
+ */
+ @Retention(AnnotationRetention.SOURCE)
+ @IntDef(
+ TriggerFrequency.ONCE,
+ TriggerFrequency.REPEATED,
+ )
+ public annotation class TriggerFrequency {
public companion object {
- @JvmStatic
- public fun fromId(id: Int): TriggerType? = values().firstOrNull { it.id == id }
+ /** TriggerFrequency is an unknown or unexpected value. */
+ public const val UNKNOWN: Int = 0
+
+ /** The passive goal will trigger the first time the specified conditions are met. */
+ public const val ONCE: Int = 1
+
+ /**
+ * The passive goal will trigger *each time* the specified conditions become met.
+ * Repeated goals on daily metrics will trigger once per day.
+ */
+ public const val REPEATED: Int = 2
/** @hide */
- public fun fromProto(proto: PassiveGoalProto.TriggerType): TriggerType? =
- fromId(proto.number)
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ internal fun @receiver:TriggerFrequency
+ Int.toProto(): PassiveGoalProto.TriggerFrequency =
+ PassiveGoalProto.TriggerFrequency.forNumber(this)
+ ?: PassiveGoalProto.TriggerFrequency.TRIGGER_FREQUENCY_UNKNOWN
+
+ /** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ @TriggerFrequency
+ @Suppress("WrongConstant")
+ public fun fromProto(proto: PassiveGoalProto.TriggerFrequency): Int = proto.number
}
}
@@ -102,7 +115,7 @@
}
/**
- * Creates a [PassiveGoal] from an [Intent]. Returns null if no [PassiveGoal] is stored in
+ * Creates a [PassiveGoal] from an [Intent]. Returns `null` if no [PassiveGoal] is stored in
* the given intent.
*/
@Suppress("DEPRECATION")
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveListenerConfig.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveListenerConfig.kt
new file mode 100644
index 0000000..fbf2fdc
--- /dev/null
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveListenerConfig.kt
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2022 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.
+ */
+
+package androidx.health.services.client.data
+
+import android.os.Parcelable
+import androidx.health.services.client.PassiveListenerCallback
+import androidx.health.services.client.proto.DataProto
+
+/**
+ * Defines configuration for a passive monitoring listener request using Health Services.
+ *
+ * @constructor Creates a new [PassiveListenerConfig] which defines a request for passive monitoring
+ * using Health Services
+ *
+ * @property dataTypes set of [DataType]s which should be tracked. Requested data will be returned
+ * by [PassiveListenerCallback.onNewDataPoints].
+ * @property shouldRequestUserActivityState whether to request [UserActivityInfo] updates. Data will
+ * be returned by [PassiveListenerCallback.onUserActivityInfo]. If set to true, calling app must
+ * have [android.Manifest.permission.ACTIVITY_RECOGNITION].
+ * @property passiveGoals set of [PassiveGoal]s which should be tracked. Achieved goals will be
+ * returned by [PassiveListenerCallback.onGoalCompleted].
+ */
+@Suppress("ParcelCreator")
+// TODO(b/227475943): open up visibility
+internal class PassiveListenerConfig
+public constructor(
+ public val dataTypes: Set<DataType>,
+ @get:JvmName("shouldRequestUserActivityState")
+ public val shouldRequestUserActivityState: Boolean,
+ public val passiveGoals: Set<PassiveGoal>,
+) : ProtoParcelable<DataProto.PassiveListenerConfig>() {
+
+ internal constructor(
+ proto: DataProto.PassiveListenerConfig
+ ) : this(
+ proto.dataTypesList.map { DataType(it) }.toSet(),
+ proto.includeUserActivityState,
+ proto.passiveGoalsList.map { PassiveGoal(it) }.toSet(),
+ )
+
+ /** Builder for [PassiveListenerConfig] instances. */
+ // TODO(b/227475943): open up visibility
+ internal class Builder {
+ private var dataTypes: Set<DataType> = emptySet()
+ private var requestUserActivityState: Boolean = false
+ private var passiveGoals: Set<PassiveGoal> = emptySet()
+
+ /** Sets the requested [DataType]s that should be passively tracked. */
+ public fun setDataTypes(dataTypes: Set<DataType>): Builder {
+ this.dataTypes = dataTypes.toSet()
+ return this
+ }
+
+ /**
+ * Sets whether to request the [UserActivityState] updates. If not set they will not be
+ * included by default and [PassiveListenerCallback.onUserActivityInfo] will not be invoked.
+ * [UserActivityState] requires [android.Manifest.permission.ACTIVITY_RECOGNITION].
+ *
+ * @param requestUserActivityState whether to request user activity state tracking
+ */
+ @Suppress("MissingGetterMatchingBuilder")
+ public fun setShouldRequestUserActivityState(requestUserActivityState: Boolean): Builder {
+ this.requestUserActivityState = requestUserActivityState
+ return this
+ }
+
+ /**
+ * Sets the requested [PassiveGoal]s that should be passively tracked.
+ *
+ * @param passiveGoals the [PassiveGoal]s that should be tracked passively
+ */
+ public fun setPassiveGoals(passiveGoals: Set<PassiveGoal>): Builder {
+ this.passiveGoals = passiveGoals.toSet()
+ return this
+ }
+
+ /** Returns the built [PassiveListenerConfig]. */
+ public fun build(): PassiveListenerConfig {
+ return PassiveListenerConfig(
+ dataTypes,
+ requestUserActivityState,
+ passiveGoals
+ )
+ }
+ }
+
+ /** @hide */
+ override val proto: DataProto.PassiveListenerConfig by lazy {
+ DataProto.PassiveListenerConfig.newBuilder()
+ .addAllDataTypes(dataTypes.map { it.proto })
+ .setIncludeUserActivityState(shouldRequestUserActivityState)
+ .addAllPassiveGoals(passiveGoals.map { it.proto })
+ .build()
+ }
+
+ // TODO(b/227475943): open up visibility
+ internal companion object {
+ @JvmStatic public fun builder(): Builder = Builder()
+
+ @JvmField
+ public val CREATOR: Parcelable.Creator<PassiveListenerConfig> = newCreator { bytes ->
+ val proto = DataProto.PassiveListenerConfig.parseFrom(bytes)
+ PassiveListenerConfig(proto)
+ }
+ }
+}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveMonitoringCapabilities.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveMonitoringCapabilities.kt
index 201e181..4ce6e63 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveMonitoringCapabilities.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveMonitoringCapabilities.kt
@@ -21,27 +21,32 @@
import androidx.health.services.client.proto.DataProto.PassiveMonitoringCapabilities as PassiveMonitoringCapabilitiesProto
/**
- * A place holder class that represents the capabilities of the
- * [androidx.health.services.client.PassiveMonitoringClient] on the device.
+ * Contains the capabilities supported by [androidx.health.services.client.PassiveMonitoringClient]
+ * on this device.
*/
@Suppress("ParcelCreator")
public class PassiveMonitoringCapabilities(
/**
- * Set of supported [DataType] s for background capture on this device.
+ * Set of supported [DataType]s for background capture on this device.
*
* Some data types are only available during exercise (e.g. location) or for measurements.
*/
public val supportedDataTypesPassiveMonitoring: Set<DataType>,
- /** Set of supported [DataType] s for event callbacks on this device. */
- public val supportedDataTypesEvents: Set<DataType>,
+ /** Set of supported [DataType]s for goal callbacks on this device. */
+ public val supportedDataTypesPassiveGoals: Set<DataType>,
+
+ /** Set of supported [UserActivityState]s on this device. */
+ // TODO(b/227475943): open up visibility
+ internal val supportedUserActivityStates: Set<UserActivityState>,
) : ProtoParcelable<PassiveMonitoringCapabilitiesProto>() {
internal constructor(
proto: DataProto.PassiveMonitoringCapabilities
) : this(
proto.supportedDataTypesPassiveMonitoringList.map { DataType(it) }.toSet(),
- proto.supportedDataTypesEventsList.map { DataType(it) }.toSet()
+ proto.supportedDataTypesPassiveGoalsList.map { DataType(it) }.toSet(),
+ proto.supportedUserActivityStatesList.mapNotNull { UserActivityState.fromProto(it) }.toSet()
)
/** @hide */
@@ -50,14 +55,16 @@
.addAllSupportedDataTypesPassiveMonitoring(
supportedDataTypesPassiveMonitoring.map { it.proto }
)
- .addAllSupportedDataTypesEvents(supportedDataTypesEvents.map { it.proto })
+ .addAllSupportedDataTypesPassiveGoals(supportedDataTypesPassiveGoals.map { it.proto })
+ .addAllSupportedUserActivityStates(supportedUserActivityStates.map { it.toProto() })
.build()
}
override fun toString(): String =
"PassiveMonitoringCapabilities(" +
"supportedDataTypesPassiveMonitoring=$supportedDataTypesPassiveMonitoring, " +
- "supportedDataTypesEvents=$supportedDataTypesEvents)"
+ "supportedDataTypesPassiveGoals=$supportedDataTypesPassiveGoals, " +
+ "supportedUserActivityStates=$supportedUserActivityStates)"
public companion object {
@JvmField
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveMonitoringConfig.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveMonitoringConfig.kt
index 78ade89..183ef28 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveMonitoringConfig.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveMonitoringConfig.kt
@@ -20,14 +20,23 @@
import android.os.Parcelable
import androidx.health.services.client.proto.DataProto
-/** Configuration that defines a request for passive monitoring using HealthServices. */
-@Suppress("DataClassPrivateConstructor", "ParcelCreator")
+/**
+ * Defines configuration for a passive monitoring request using Health Services.
+ *
+ * @constructor Creates a new PassiveMonitoringConfig which defines a request for passive monitoring
+ * using Health Services
+ *
+ * @property dataTypes set of [DataType]s which should be tracked
+ * @property componentName [ComponentName] which [PassiveMonitoringUpdate] intents should be sent to
+ * @property requestUserActivityState whether to request the [UserActivityState] to be included in
+ * [PassiveMonitoringUpdate]s
+ */
+@Suppress("ParcelCreator")
public class PassiveMonitoringConfig
-protected constructor(
+constructor(
public val dataTypes: Set<DataType>,
public val componentName: ComponentName,
- @get:JvmName("shouldIncludeUserActivityState")
- public val shouldIncludeUserActivityState: Boolean,
+ @get:JvmName("requestUserActivityState") public val requestUserActivityState: Boolean = true,
) : ProtoParcelable<DataProto.PassiveMonitoringConfig>() {
internal constructor(
@@ -42,16 +51,20 @@
require(dataTypes.isNotEmpty()) { "Must specify the desired data types." }
}
- /** Builder for [PassiveMonitoringConfig] instances. */
+ /**
+ * Builder for [PassiveMonitoringConfig] instances.
+ *
+ * @constructor Create empty Builder
+ */
public class Builder {
private var dataTypes: Set<DataType> = emptySet()
private var componentName: ComponentName? = null
- private var shouldIncludeUserActivityState: Boolean = false
+ private var requestUserActivityState: Boolean = false
/**
- * Sets the requested [DataType] s that should be passively tracked. It is required to
+ * Sets the requested [DataType]s that should be passively tracked. It is required to
* specify a set of [DataType]s to create a valid configuration. Failure to do so will
- * result in an exception thrown when `build` is called.
+ * result in an exception thrown when [build] is called.
*/
public fun setDataTypes(dataTypes: Set<DataType>): Builder {
this.dataTypes = dataTypes.toSet()
@@ -67,15 +80,13 @@
}
/**
- * Sets whether to include the [UserActivityState] with the [PassiveMonitoringUpdate]s. If
- * not set they will not be included by default. [UserActivityState] requires
- * [permission.ACTIVITY_RECOGNITION]
+ * Sets whether to request the [UserActivityState] to be included in
+ * [PassiveMonitoringUpdate]s. If not set they will not be included by default.
+ * [UserActivityState] requires [android.Manifest.permission.ACTIVITY_RECOGNITION].
*/
@Suppress("MissingGetterMatchingBuilder")
- public fun setShouldIncludeUserActivityState(
- shouldIncludeUserActivityState: Boolean
- ): Builder {
- this.shouldIncludeUserActivityState = shouldIncludeUserActivityState
+ public fun setRequestUserActivityState(requestUserActivityState: Boolean): Builder {
+ this.requestUserActivityState = requestUserActivityState
return this
}
@@ -85,7 +96,7 @@
return PassiveMonitoringConfig(
dataTypes,
checkNotNull(componentName) { "No component name specified." },
- shouldIncludeUserActivityState,
+ requestUserActivityState,
)
}
}
@@ -96,7 +107,7 @@
.addAllDataTypes(dataTypes.map { it.proto })
.setPackageName(componentName.getPackageName())
.setReceiverClassName(componentName.getClassName())
- .setIncludeUserActivityState(shouldIncludeUserActivityState)
+ .setIncludeUserActivityState(requestUserActivityState)
.build()
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveMonitoringUpdate.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveMonitoringUpdate.kt
index fd6b262..21a7295 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveMonitoringUpdate.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/PassiveMonitoringUpdate.kt
@@ -24,7 +24,7 @@
/**
* Represents an update from Passive tracking.
*
- * Provides [DataPoint] s associated with the Passive tracking, in addition to data related to the
+ * Provides [DataPoint]s associated with the Passive tracking, in addition to data related to the
* user's [UserActivityState].
*/
@Suppress("ParcelCreator")
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/ProtoParcelable.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/ProtoParcelable.kt
index 85b49b0..f7fc80d 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/ProtoParcelable.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/ProtoParcelable.kt
@@ -19,10 +19,11 @@
import android.os.Parcel
import android.os.Parcelable
import android.os.Parcelable.Creator
+import androidx.annotation.RestrictTo
import com.google.protobuf.MessageLite
/**
- * Base class for parcelables backed by protos.
+ * Base class for parcelables backed by Protocol Buffers.
*
* Provided [proto] represents everything important to subclasses, they need not implement [equals]
* and [hashCode].
@@ -66,6 +67,7 @@
* .
* @hide
*/
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
public inline fun <reified U : ProtoParcelable<*>> newCreator(
crossinline parser: (ByteArray) -> U
): Creator<U> {
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/UserActivityInfo.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/UserActivityInfo.kt
index 2ebb589..e4aa0d8 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/UserActivityInfo.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/UserActivityInfo.kt
@@ -17,10 +17,10 @@
package androidx.health.services.client.data
import android.os.Parcelable
-import androidx.health.services.client.data.UserActivityState.USER_ACTIVITY_ASLEEP
-import androidx.health.services.client.data.UserActivityState.USER_ACTIVITY_EXERCISE
-import androidx.health.services.client.data.UserActivityState.USER_ACTIVITY_PASSIVE
-import androidx.health.services.client.data.UserActivityState.USER_ACTIVITY_UNKNOWN
+import androidx.health.services.client.data.UserActivityState.Companion.USER_ACTIVITY_ASLEEP
+import androidx.health.services.client.data.UserActivityState.Companion.USER_ACTIVITY_EXERCISE
+import androidx.health.services.client.data.UserActivityState.Companion.USER_ACTIVITY_PASSIVE
+import androidx.health.services.client.data.UserActivityState.Companion.USER_ACTIVITY_UNKNOWN
import androidx.health.services.client.proto.DataProto
import androidx.health.services.client.proto.DataProto.UserActivityInfo as UserActivityInfoProto
import java.time.Instant
@@ -28,7 +28,7 @@
/**
* Represents an update from Passive tracking.
*
- * Provides [DataPoint] s associated with the Passive tracking, in addition to data related to the
+ * Provides [DataPoint]s associated with the Passive tracking, in addition to data related to the
* user's [UserActivityState].
*/
@Suppress("ParcelCreator")
@@ -38,7 +38,7 @@
/**
* The [ExerciseInfo] of the user for a [UserActivityState.USER_ACTIVITY_EXERCISE] state, and
- * `null` for other [UserActivityState] s.
+ * `null` for other [UserActivityState]s.
*/
public val exerciseInfo: ExerciseInfo?,
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/UserActivityState.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/UserActivityState.kt
index bf13850..cc049c5 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/UserActivityState.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/UserActivityState.kt
@@ -16,25 +16,67 @@
package androidx.health.services.client.data
+import androidx.annotation.RestrictTo
import androidx.health.services.client.proto.DataProto.UserActivityState as UserActivityStateProto
/** Types of user activity states. */
-public enum class UserActivityState(public val id: Int) {
- USER_ACTIVITY_UNKNOWN(0),
- USER_ACTIVITY_EXERCISE(1),
- USER_ACTIVITY_PASSIVE(2),
- USER_ACTIVITY_ASLEEP(3);
+public class UserActivityState(public val id: Int, public val name: String) {
+
+ override fun equals(other: Any?): Boolean {
+ if (this === other) return true
+ if (other !is UserActivityState) return false
+ if (id != other.id) return false
+
+ return true
+ }
+
+ override fun hashCode(): Int = id
+
+ override fun toString(): String = name
/** @hide */
- public fun toProto(): UserActivityStateProto =
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ internal fun toProto(): UserActivityStateProto =
UserActivityStateProto.forNumber(id) ?: UserActivityStateProto.USER_ACTIVITY_STATE_UNKNOWN
public companion object {
- @JvmStatic
- public fun fromId(id: Int): UserActivityState? = values().firstOrNull { it.id == id }
+ /**
+ * The current activity state cannot be determined, or it is a new state that this library
+ * version is too old to recognize.
+ */
+ @JvmField
+ public val USER_ACTIVITY_UNKNOWN: UserActivityState =
+ UserActivityState(0, "USER_ACTIVITY_UNKNOWN")
+
+ /** The user is currently exercising. */
+ @JvmField
+ public val USER_ACTIVITY_EXERCISE: UserActivityState =
+ UserActivityState(1, "USER_ACTIVITY_EXERCISE")
+
+ /** The user is awake but is not currently exercising. */
+ @JvmField
+ public val USER_ACTIVITY_PASSIVE: UserActivityState =
+ UserActivityState(2, "USER_ACTIVITY_PASSIVE")
+
+ /** The user is asleep. */
+ @JvmField
+ public val USER_ACTIVITY_ASLEEP: UserActivityState =
+ UserActivityState(3, "USER_ACTIVITY_ASLEEP")
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
+ @JvmField
+ public val VALUES: List<UserActivityState> =
+ listOf(
+ USER_ACTIVITY_UNKNOWN,
+ USER_ACTIVITY_EXERCISE,
+ USER_ACTIVITY_PASSIVE,
+ USER_ACTIVITY_ASLEEP,
+ )
+
+ /** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
public fun fromProto(proto: UserActivityStateProto): UserActivityState =
- fromId(proto.number) ?: USER_ACTIVITY_UNKNOWN
+ VALUES.firstOrNull { it.id == proto.number } ?: USER_ACTIVITY_UNKNOWN
}
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/Value.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/Value.kt
index 0458097..fae68e6 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/Value.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/Value.kt
@@ -18,6 +18,7 @@
import android.os.Parcelable
import androidx.health.services.client.proto.DataProto
+import com.google.protobuf.ByteString
/** A [Parcelable] wrapper that can hold a value of a specified type. */
@Suppress("DataClassPrivateConstructor", "ParcelCreator")
@@ -33,6 +34,7 @@
DataProto.Value.ValueCase.DOUBLE_VAL -> FORMAT_DOUBLE
DataProto.Value.ValueCase.LONG_VAL -> FORMAT_LONG
DataProto.Value.ValueCase.DOUBLE_ARRAY_VAL -> FORMAT_DOUBLE_ARRAY
+ DataProto.Value.ValueCase.BYTE_ARRAY_VAL -> FORMAT_BYTE_ARRAY
else -> throw IllegalStateException("Unexpected format: ${proto.valueCase}")
}
@@ -48,6 +50,7 @@
FORMAT_LONG -> "longVal=${proto.longVal})"
FORMAT_DOUBLE -> "doubleVal=${proto.doubleVal})"
FORMAT_DOUBLE_ARRAY -> "doubleArrayVal=${proto.doubleArrayVal.doubleArrayList})"
+ FORMAT_BYTE_ARRAY -> "byteArrayVal=${proto.byteArrayVal})"
else -> throw IllegalStateException("Unexpected format: ${proto.valueCase}")
}
@@ -82,6 +85,21 @@
}
/**
+ * Returns this [Value] as a `ByteArray`.
+ *
+ * @throws IllegalStateException if [isByteArray] is `false`
+ */
+ // TODO(b/227475943): open up visibility
+ internal fun asByteArray(): ByteArray {
+ check(isByteArray) {
+ "Attempted to read value as ByteArray, but value is not of type ByteArray"
+ }
+ val byteArray = ByteArray(proto.byteArrayVal.size())
+ proto.byteArrayVal.copyTo(byteArray, 0)
+ return byteArray
+ }
+
+ /**
* Returns this [Value] represented as a `double[]`.
*
* @throws IllegalStateException if [isDoubleArray] is `false`
@@ -109,6 +127,11 @@
public val isDoubleArray: Boolean
get() = format == FORMAT_DOUBLE_ARRAY
+ /** Whether or not this [Value] can be represented as a `byteArray`. */
+ // TODO(b/227475943): open up visibility
+ internal val isByteArray: Boolean
+ get() = format == FORMAT_BYTE_ARRAY
+
public companion object {
/** The format used for a [Value] represented as a `double`. */
public const val FORMAT_DOUBLE: Int = 1
@@ -122,6 +145,10 @@
/** The format used for a [Value] represented as a `double[]`. */
public const val FORMAT_DOUBLE_ARRAY: Int = 3
+ /** The format used for a [Value] represented as a `ByteArray`. */
+ // TODO(b/227475943): open up visibility
+ internal const val FORMAT_BYTE_ARRAY: Int = 5
+
@JvmField
public val CREATOR: Parcelable.Creator<Value> = newCreator {
Value(DataProto.Value.parseFrom(it))
@@ -154,8 +181,14 @@
.build()
)
+ /** Creates a [Value] that represents a `ByteArray`. */
+ @JvmStatic
+ // TODO(b/227475943): open up visibility
+ internal fun ofByteArray(value: ByteArray): Value =
+ Value(DataProto.Value.newBuilder().setByteArrayVal(ByteString.copyFrom(value)).build())
+
/**
- * Compares two [Value] s based on their representation.
+ * Compares two [Value]s based on their representation.
*
* @throws IllegalStateException if `first` and `second` do not share the same format or are
* represented as a `double[]`
@@ -173,13 +206,17 @@
throw IllegalStateException(
"Attempted to compare Values with invalid format (double array)"
)
+ FORMAT_BYTE_ARRAY ->
+ throw IllegalStateException(
+ "Attempted to compate values with invalid format (byte array)"
+ )
else -> {}
}
throw IllegalStateException(String.format("Unexpected format: %s", first.format))
}
/**
- * Adds two [Value] s based on their representation.
+ * Adds two [Value]s based on their representation.
*
* @throws IllegalArgumentException if `first` and `second` do not share the same format or
* are represented as a `double[]` or `boolean`
@@ -200,12 +237,16 @@
throw IllegalArgumentException(
"Attempted to add Values with invalid format (double array)"
)
+ FORMAT_BYTE_ARRAY ->
+ throw IllegalArgumentException(
+ "Attempted to add Values with invalid format (ByteArray)"
+ )
else -> throw IllegalArgumentException("Unexpected format: ${first.format}")
}
}
/**
- * Subtracts two [Value] s based on their representation (i.e. returns `first` - `second`).
+ * Subtracts two [Value]s based on their representation (i.e. returns `first` - `second`).
*
* @throws IllegalArgumentException if `first` and `second` do not share the same format or
* are represented as a `double[]` or `boolean`
@@ -228,7 +269,7 @@
}
/**
- * Gets the modulo of two [Value] s based on their representation. (i.e. returns `first` %
+ * Gets the modulo of two [Value]s based on their representation. (i.e. returns `first` %
* `second`)
*
* @throws IllegalArgumentException if `first` and `second` do not share the same format or
@@ -255,7 +296,7 @@
/**
* Checks if a given [Value] is zero or not.
*
- * @throws IllegalArgumentException if `value` is a `double[]` or `bolean`
+ * @throws IllegalArgumentException if `value` is a `double[]` or `boolean`
*
* @hide
*/
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/data/WarmUpConfig.kt b/health/health-services-client/src/main/java/androidx/health/services/client/data/WarmUpConfig.kt
index 3faf143..ecfcb56 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/data/WarmUpConfig.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/data/WarmUpConfig.kt
@@ -19,16 +19,16 @@
import android.os.Parcelable
import androidx.health.services.client.proto.DataProto
-/** Defines configuration for an exercise tracked using HealthServices. */
-@Suppress("DataClassPrivateConstructor", "ParcelCreator")
-public class WarmUpConfig
-protected constructor(
- /**
- * [ExerciseType] the user is performing for this exercise.
- *
- * This information can be used to tune sensors, e.g. the calories estimate can take the MET
- * value into account.
- */
+/**
+ * Defines configuration for an exercise tracked using Health Services.
+ *
+ * @constructor Creates a new WarmUpConfig for an exercise tracked using Health Services
+ *
+ * @property exerciseType The active [ExerciseType] user is performing for this exercise
+ * @property dataTypes [DataType]s which should be tracked during this exercise
+ */
+@Suppress("ParcelCreator")
+public class WarmUpConfig(
public val exerciseType: ExerciseType,
public val dataTypes: Set<DataType>,
) : ProtoParcelable<DataProto.WarmUpConfig>() {
@@ -44,43 +44,6 @@
require(dataTypes.isNotEmpty()) { "Must specify the desired data types." }
}
- /** Builder for [WarmUpConfig] instances. */
- public class Builder {
- private var exerciseType: ExerciseType? = null
- private var dataTypes: Set<DataType>? = null
-
- /**
- * Sets the active [ExerciseType] the user is performing for this exercise.
- *
- * Provide this parameter when tracking a workout to provide more accurate data. This
- * information can be used to tune sensors, e.g. the calories estimate can take the MET
- * value into account.
- */
- public fun setExerciseType(exerciseType: ExerciseType): Builder {
- require(exerciseType != ExerciseType.UNKNOWN) { "Must specify a valid exercise type." }
- this.exerciseType = exerciseType
- return this
- }
-
- /**
- * Sets the requested [DataType]s that should be tracked during this exercise. If not
- * explicitly called, a default set of [DataType] will be chosen based on the [ExerciseType]
- * .
- */
- public fun setDataTypes(dataTypes: Set<DataType>): Builder {
- this.dataTypes = dataTypes.toSet()
- return this
- }
-
- /** Returns the built `WarmUpConfig`. */
- public fun build(): WarmUpConfig {
- return WarmUpConfig(
- checkNotNull(exerciseType) { "No exercise type specified" },
- checkNotNull(dataTypes) { "No data types specified" },
- )
- }
- }
-
/** @hide */
override val proto: DataProto.WarmUpConfig by lazy {
DataProto.WarmUpConfig.newBuilder()
@@ -93,8 +56,6 @@
"WarmUpConfig(exerciseType=$exerciseType, dataTypes=$dataTypes)"
public companion object {
- @JvmStatic public fun builder(): Builder = Builder()
-
@JvmField
public val CREATOR: Parcelable.Creator<WarmUpConfig> = newCreator { bytes ->
val proto = DataProto.WarmUpConfig.parseFrom(bytes)
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/ExerciseUpdateListenerStub.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/ExerciseUpdateListenerStub.kt
index 4be8edd..f691251 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/ExerciseUpdateListenerStub.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/ExerciseUpdateListenerStub.kt
@@ -18,7 +18,8 @@
import android.util.Log
import androidx.annotation.GuardedBy
-import androidx.health.services.client.ExerciseUpdateListener
+import androidx.annotation.RestrictTo
+import androidx.health.services.client.ExerciseUpdateCallback
import androidx.health.services.client.data.Availability
import androidx.health.services.client.data.DataType
import androidx.health.services.client.data.ExerciseLapSummary
@@ -35,8 +36,9 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class ExerciseUpdateListenerStub
-private constructor(private val listener: ExerciseUpdateListener, private val executor: Executor) :
+private constructor(private val listener: ExerciseUpdateCallback, private val executor: Executor) :
IExerciseUpdateListener.Stub() {
public val listenerKey: ListenerKey = ListenerKey(listener)
@@ -48,11 +50,13 @@
private fun triggerListener(proto: EventsProto.ExerciseUpdateListenerEvent) {
when (proto.eventCase) {
EventCase.EXERCISE_UPDATE_RESPONSE ->
- listener.onExerciseUpdate(
+ listener.onExerciseUpdateReceived(
ExerciseUpdate(proto.exerciseUpdateResponse.exerciseUpdate)
)
EventCase.LAP_SUMMARY_RESPONSE ->
- listener.onLapSummary(ExerciseLapSummary(proto.lapSummaryResponse.lapSummary))
+ listener.onLapSummaryReceived(
+ ExerciseLapSummary(proto.lapSummaryResponse.lapSummary)
+ )
EventCase.AVAILABILITY_RESPONSE ->
listener.onAvailabilityChanged(
DataType(proto.availabilityResponse.dataType),
@@ -63,17 +67,17 @@
}
/**
- * A class that stores unique active instances of [ExerciseUpdateListener] to ensure same binder
+ * A class that stores unique active instances of [ExerciseUpdateCallback] to ensure same binder
* object is passed by framework to service side of the IPC.
*/
public class ExerciseUpdateListenerCache private constructor() {
@GuardedBy("this")
- private val listeners: MutableMap<ExerciseUpdateListener, ExerciseUpdateListenerStub> =
+ private val listeners: MutableMap<ExerciseUpdateCallback, ExerciseUpdateListenerStub> =
HashMap()
@Synchronized
public fun getOrCreate(
- listener: ExerciseUpdateListener,
+ listener: ExerciseUpdateCallback,
executor: Executor
): ExerciseUpdateListenerStub {
return listeners.getOrPut(listener) { ExerciseUpdateListenerStub(listener, executor) }
@@ -81,9 +85,9 @@
@Synchronized
public fun remove(
- exerciseUpdateListener: ExerciseUpdateListener
+ exerciseUpdateCallback: ExerciseUpdateCallback
): ExerciseUpdateListenerStub? {
- return listeners.remove(exerciseUpdateListener)
+ return listeners.remove(exerciseUpdateCallback)
}
public companion object {
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/IpcConstants.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/IpcConstants.kt
index 38d1588..48fae70 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/IpcConstants.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/IpcConstants.kt
@@ -12,4 +12,5 @@
public const val HEALTH_SERVICES_BIND_ACTION: String = "hs.healthservicesclient.BIND"
public const val MEASURE_API_BIND_ACTION: String = "hs.measureclient.BIND"
public const val PASSIVE_API_BIND_ACTION: String = "hs.passiveclient.BIND"
+ public const val VERSION_API_BIND_ACTION: String = "hs.versionclient.BIND"
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/MeasureCallbackStub.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/MeasureCallbackStub.kt
index 35cdb14..1daa978 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/MeasureCallbackStub.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/MeasureCallbackStub.kt
@@ -18,6 +18,7 @@
import android.util.Log
import androidx.annotation.GuardedBy
+import androidx.annotation.RestrictTo
import androidx.annotation.VisibleForTesting
import androidx.health.services.client.MeasureCallback
import androidx.health.services.client.data.Availability
@@ -36,6 +37,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class MeasureCallbackStub
private constructor(callbackKey: MeasureCallbackKey, private val callback: MeasureCallback) :
IMeasureCallback.Stub() {
@@ -54,7 +56,7 @@
when (proto.eventCase) {
EventCase.DATA_POINT_RESPONSE -> {
val dataPointsResponse = DataPointsResponse(proto.dataPointResponse)
- callback.onData(dataPointsResponse.dataPoints)
+ callback.onDataReceived(dataPointsResponse.dataPoints)
}
EventCase.AVAILABILITY_RESPONSE ->
callback.onAvailabilityChanged(
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/PassiveListenerCallbackStub.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/PassiveListenerCallbackStub.kt
new file mode 100644
index 0000000..2a154f7
--- /dev/null
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/PassiveListenerCallbackStub.kt
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2022 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.
+ */
+
+package androidx.health.services.client.impl
+
+import android.util.Log
+import androidx.annotation.GuardedBy
+import androidx.health.services.client.PassiveListenerCallback
+import androidx.health.services.client.impl.event.PassiveListenerEvent
+import androidx.health.services.client.impl.ipc.internal.ListenerKey
+import androidx.health.services.client.impl.response.PassiveMonitoringGoalResponse
+import androidx.health.services.client.impl.response.PassiveMonitoringUpdateResponse
+import androidx.health.services.client.proto.EventsProto.PassiveListenerEvent.EventCase.EVENT_NOT_SET
+import androidx.health.services.client.proto.EventsProto.PassiveListenerEvent.EventCase.HEALTH_EVENT_RESPONSE
+import androidx.health.services.client.proto.EventsProto.PassiveListenerEvent.EventCase.PASSIVE_GOAL_RESPONSE
+import androidx.health.services.client.proto.EventsProto.PassiveListenerEvent.EventCase.PASSIVE_UPDATE_RESPONSE
+import androidx.health.services.client.proto.EventsProto.PassiveListenerEvent.EventCase.PERMISSION_LOST_RESPONSE
+
+/** A stub implementation for IPassiveListenerCallback. */
+internal class PassiveListenerCallbackStub(
+ private val packageName: String,
+ private val callback: PassiveListenerCallback
+) : IPassiveListenerCallback.Stub() {
+
+ public val listenerKey: ListenerKey = ListenerKey(packageName)
+
+ override fun onPassiveListenerEvent(event: PassiveListenerEvent) {
+ val proto = event.proto
+
+ when (proto.eventCase) {
+ PASSIVE_UPDATE_RESPONSE -> {
+ val response = PassiveMonitoringUpdateResponse(proto.passiveUpdateResponse)
+ if (!response.passiveMonitoringUpdate.dataPoints.isEmpty()) {
+ callback.onNewDataPoints(response.passiveMonitoringUpdate.dataPoints)
+ }
+ for (userActivityInfo in response.passiveMonitoringUpdate.userActivityInfoUpdates) {
+ callback.onUserActivityInfo(userActivityInfo)
+ }
+ }
+ PASSIVE_GOAL_RESPONSE -> {
+ val response = PassiveMonitoringGoalResponse(proto.passiveGoalResponse)
+ callback.onGoalCompleted(response.passiveGoal)
+ }
+ HEALTH_EVENT_RESPONSE -> {
+ // TODO(b/227475943): Fill this in when Health Event changes are added.
+ }
+ PERMISSION_LOST_RESPONSE -> {
+ callback.onPermissionLost()
+ }
+ null, EVENT_NOT_SET -> Log.w(TAG, "Received unknown event ${proto.eventCase}")
+ }
+ }
+
+ /**
+ * Its important to use the same stub for registration and un-registration, to ensure same
+ * binder object is passed by framework to service side of the IPC.
+ */
+ internal class PassiveListenerCallbackCache private constructor() {
+ private val listenerLock = Any()
+
+ @GuardedBy("listenerLock")
+ private val listeners: MutableMap<String, PassiveListenerCallbackStub> = HashMap()
+
+ public fun getOrCreate(
+ packageName: String,
+ callback: PassiveListenerCallback
+ ): PassiveListenerCallbackStub {
+ synchronized(listenerLock) {
+ return listeners.getOrPut(packageName) {
+ PassiveListenerCallbackStub(packageName, callback)
+ }
+ }
+ }
+
+ public fun remove(packageName: String): PassiveListenerCallbackStub? {
+ synchronized(listenerLock) {
+ return listeners.remove(packageName)
+ }
+ }
+
+ public companion object {
+ @JvmField
+ public val INSTANCE: PassiveListenerCallbackCache = PassiveListenerCallbackCache()
+ }
+ }
+
+ private companion object {
+ const val TAG = "PassiveListenerCallbackStub"
+ }
+}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/PassiveMonitoringCallbackStub.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/PassiveMonitoringCallbackStub.kt
index 0592190..e82f7ff 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/PassiveMonitoringCallbackStub.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/PassiveMonitoringCallbackStub.kt
@@ -18,6 +18,7 @@
import android.util.Log
import androidx.annotation.GuardedBy
+import androidx.annotation.RestrictTo
import androidx.health.services.client.PassiveMonitoringCallback
import androidx.health.services.client.impl.event.PassiveCallbackEvent
import androidx.health.services.client.impl.ipc.internal.ListenerKey
@@ -30,6 +31,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class PassiveMonitoringCallbackStub
private constructor(
private val packageName: String,
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/ServiceBackedExerciseClient.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/ServiceBackedExerciseClient.kt
index 9471af4..4127c81 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/ServiceBackedExerciseClient.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/ServiceBackedExerciseClient.kt
@@ -17,9 +17,10 @@
package androidx.health.services.client.impl
import android.content.Context
+import androidx.annotation.RestrictTo
import androidx.core.content.ContextCompat
import androidx.health.services.client.ExerciseClient
-import androidx.health.services.client.ExerciseUpdateListener
+import androidx.health.services.client.ExerciseUpdateCallback
import androidx.health.services.client.data.ExerciseCapabilities
import androidx.health.services.client.data.ExerciseConfig
import androidx.health.services.client.data.ExerciseGoal
@@ -39,8 +40,10 @@
import androidx.health.services.client.impl.request.FlushRequest
import androidx.health.services.client.impl.request.PrepareExerciseRequest
import androidx.health.services.client.impl.request.StartExerciseRequest
+import com.google.common.util.concurrent.FutureCallback
import com.google.common.util.concurrent.Futures
import com.google.common.util.concurrent.ListenableFuture
+import com.google.common.util.concurrent.SettableFuture
import java.util.concurrent.Executor
/**
@@ -48,8 +51,11 @@
*
* @hide
*/
-internal class ServiceBackedExerciseClient
-private constructor(private val context: Context, connectionManager: ConnectionManager) :
+@RestrictTo(RestrictTo.Scope.LIBRARY)
+internal class ServiceBackedExerciseClient(
+ private val context: Context,
+ connectionManager: ConnectionManager = HsConnectionManager.getInstance(context)
+) :
ExerciseClient,
Client<IExerciseApiService>(
CLIENT_CONFIGURATION,
@@ -60,7 +66,7 @@
private val packageName = context.packageName
- override fun prepareExercise(configuration: WarmUpConfig): ListenableFuture<Void> =
+ override fun prepareExerciseAsync(configuration: WarmUpConfig): ListenableFuture<Void> =
execute { service, resultFuture ->
service.prepareExercise(
PrepareExerciseRequest(packageName, configuration),
@@ -68,7 +74,7 @@
)
}
- override fun startExercise(configuration: ExerciseConfig): ListenableFuture<Void> =
+ override fun startExerciseAsync(configuration: ExerciseConfig): ListenableFuture<Void> =
execute { service, resultFuture ->
service.startExercise(
StartExerciseRequest(packageName, configuration),
@@ -76,54 +82,71 @@
)
}
- override fun pauseExercise(): ListenableFuture<Void> = execute { service, resultFuture ->
+ override fun pauseExerciseAsync(): ListenableFuture<Void> = execute { service, resultFuture ->
service.pauseExercise(packageName, StatusCallback(resultFuture))
}
- override fun resumeExercise(): ListenableFuture<Void> = execute { service, resultFuture ->
+ override fun resumeExerciseAsync(): ListenableFuture<Void> = execute { service, resultFuture ->
service.resumeExercise(packageName, StatusCallback(resultFuture))
}
- override fun endExercise(): ListenableFuture<Void> = execute { service, resultFuture ->
+ override fun endExerciseAsync(): ListenableFuture<Void> = execute { service, resultFuture ->
service.endExercise(packageName, StatusCallback(resultFuture))
}
- override fun flushExercise(): ListenableFuture<Void> {
+ override fun flushExerciseAsync(): ListenableFuture<Void> {
val request = FlushRequest(packageName)
return execute { service, resultFuture ->
service.flushExercise(request, StatusCallback(resultFuture))
}
}
- override fun markLap(): ListenableFuture<Void> = execute { service, resultFuture ->
+ override fun markLapAsync(): ListenableFuture<Void> = execute { service, resultFuture ->
service.markLap(packageName, StatusCallback(resultFuture))
}
- override val currentExerciseInfo: ListenableFuture<ExerciseInfo>
- get() = execute { service, resultFuture ->
+ override fun getCurrentExerciseInfoAsync(): ListenableFuture<ExerciseInfo> {
+ return execute { service, resultFuture ->
service.getCurrentExerciseInfo(packageName, ExerciseInfoCallback(resultFuture))
}
-
- override fun setUpdateListener(listener: ExerciseUpdateListener): ListenableFuture<Void> =
- setUpdateListener(listener, ContextCompat.getMainExecutor(context))
-
- override fun setUpdateListener(
- listener: ExerciseUpdateListener,
- executor: Executor
- ): ListenableFuture<Void> {
- val listenerStub =
- ExerciseUpdateListenerStub.ExerciseUpdateListenerCache.INSTANCE.getOrCreate(
- listener,
- executor
- )
- return registerListener(listenerStub.listenerKey) { service, resultFuture ->
- service.setUpdateListener(packageName, listenerStub, StatusCallback(resultFuture))
- }
}
- override fun clearUpdateListener(listener: ExerciseUpdateListener): ListenableFuture<Void> {
+ override fun setUpdateCallback(callback: ExerciseUpdateCallback) {
+ setUpdateCallback(ContextCompat.getMainExecutor(context), callback)
+ }
+
+ override fun setUpdateCallback(
+ executor: Executor,
+ callback: ExerciseUpdateCallback
+ ) {
val listenerStub =
- ExerciseUpdateListenerStub.ExerciseUpdateListenerCache.INSTANCE.remove(listener)
+ ExerciseUpdateListenerStub.ExerciseUpdateListenerCache.INSTANCE.getOrCreate(
+ callback,
+ executor
+ )
+ val future =
+ registerListener(listenerStub.listenerKey) { service, result: SettableFuture<Void?> ->
+ service.setUpdateListener(packageName, listenerStub, StatusCallback(result))
+ }
+ Futures.addCallback(
+ future,
+ object : FutureCallback<Void?> {
+ override fun onSuccess(result: Void?) {
+ callback.onRegistered()
+ }
+
+ override fun onFailure(t: Throwable) {
+ callback.onRegistrationFailed(t)
+ }
+ },
+ executor)
+ }
+
+ override fun clearUpdateCallbackAsync(
+ callback: ExerciseUpdateCallback
+ ): ListenableFuture<Void> {
+ val listenerStub =
+ ExerciseUpdateListenerStub.ExerciseUpdateListenerCache.INSTANCE.remove(callback)
?: return Futures.immediateFailedFuture(
IllegalArgumentException("Given listener was not added.")
)
@@ -132,7 +155,7 @@
}
}
- override fun addGoalToActiveExercise(exerciseGoal: ExerciseGoal): ListenableFuture<Void> =
+ override fun addGoalToActiveExerciseAsync(exerciseGoal: ExerciseGoal): ListenableFuture<Void> =
execute { service, resultFuture ->
service.addGoalToActiveExercise(
ExerciseGoalRequest(packageName, exerciseGoal),
@@ -140,15 +163,16 @@
)
}
- override fun removeGoalFromActiveExercise(exerciseGoal: ExerciseGoal): ListenableFuture<Void> =
- execute { service, resultFuture ->
- service.removeGoalFromActiveExercise(
- ExerciseGoalRequest(packageName, exerciseGoal),
- StatusCallback(resultFuture)
- )
- }
+ override fun removeGoalFromActiveExerciseAsync(
+ exerciseGoal: ExerciseGoal
+ ): ListenableFuture<Void> = execute { service, resultFuture ->
+ service.removeGoalFromActiveExercise(
+ ExerciseGoalRequest(packageName, exerciseGoal),
+ StatusCallback(resultFuture)
+ )
+ }
- override fun overrideAutoPauseAndResumeForActiveExercise(
+ override fun overrideAutoPauseAndResumeForActiveExerciseAsync(
enabled: Boolean
): ListenableFuture<Void> = execute { service, resultFuture ->
service.overrideAutoPauseAndResumeForActiveExercise(
@@ -161,7 +185,7 @@
get() =
Futures.transform(
execute { service -> service.getCapabilities(CapabilitiesRequest(packageName)) },
- { response -> response?.exerciseCapabilities },
+ { response -> response!!.exerciseCapabilities },
ContextCompat.getMainExecutor(context)
)
@@ -169,10 +193,5 @@
private const val CLIENT = "HealthServicesExerciseClient"
private val CLIENT_CONFIGURATION =
ClientConfiguration(CLIENT, SERVICE_PACKAGE_NAME, EXERCISE_API_BIND_ACTION)
-
- @JvmStatic
- fun getClient(context: Context): ServiceBackedExerciseClient {
- return ServiceBackedExerciseClient(context, HsConnectionManager.getInstance(context))
- }
}
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/ServiceBackedHealthServicesClient.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/ServiceBackedHealthServicesClient.kt
index 2ecb3ee..93d2494 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/ServiceBackedHealthServicesClient.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/ServiceBackedHealthServicesClient.kt
@@ -27,12 +27,8 @@
import androidx.health.services.client.impl.ipc.Client
import androidx.health.services.client.impl.ipc.ClientConfiguration
-/**
- * A [HealthServicesClient] implementation.
- *
- * @hide
- */
-public class ServiceBackedHealthServicesClient public constructor(context: Context) :
+/** A [HealthServicesClient] implementation. */
+internal class ServiceBackedHealthServicesClient(context: Context) :
HealthServicesClient,
Client<IHealthServicesApiService>(
CLIENT_CONFIGURATION,
@@ -44,11 +40,11 @@
private val applicationContext = context.applicationContext
override val exerciseClient: ExerciseClient
- get() = ServiceBackedExerciseClient.getClient(applicationContext)
+ get() = ServiceBackedExerciseClient(applicationContext)
override val passiveMonitoringClient: PassiveMonitoringClient
get() = ServiceBackedPassiveMonitoringClient(applicationContext)
override val measureClient: MeasureClient
- get() = ServiceBackedMeasureClient.getClient(applicationContext)
+ get() = ServiceBackedMeasureClient(applicationContext)
private companion object {
private const val CLIENT = "HealthServicesClient"
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/ServiceBackedMeasureClient.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/ServiceBackedMeasureClient.kt
index 44a0ea6..655ae5e 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/ServiceBackedMeasureClient.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/ServiceBackedMeasureClient.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl
import android.content.Context
+import androidx.annotation.RestrictTo
import androidx.annotation.VisibleForTesting
import androidx.core.content.ContextCompat
import androidx.health.services.client.MeasureCallback
@@ -34,19 +35,22 @@
import androidx.health.services.client.impl.request.CapabilitiesRequest
import androidx.health.services.client.impl.request.MeasureRegistrationRequest
import androidx.health.services.client.impl.request.MeasureUnregistrationRequest
+import com.google.common.util.concurrent.FutureCallback
import com.google.common.util.concurrent.Futures
import com.google.common.util.concurrent.ListenableFuture
+import com.google.common.util.concurrent.SettableFuture
import java.util.concurrent.Executor
/**
- * [MeasureClient] implementation that is backed by Health Services.
+ {* [MeasureClient] implementation that is backed by Health Services.
*
* @hide
*/
-@VisibleForTesting
+@RestrictTo(RestrictTo.Scope.LIBRARY)
+@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
public class ServiceBackedMeasureClient(
private val context: Context,
- connectionManager: ConnectionManager
+ connectionManager: ConnectionManager = HsConnectionManager.getInstance(context)
) :
MeasureClient,
Client<IMeasureApiService>(
@@ -56,25 +60,40 @@
{ service -> service.apiVersion }
) {
- override fun registerCallback(
- dataType: DataType,
- callback: MeasureCallback
- ): ListenableFuture<Void> =
- registerCallback(dataType, callback, ContextCompat.getMainExecutor(context))
-
- override fun registerCallback(
- dataType: DataType,
- callback: MeasureCallback,
- executor: Executor
- ): ListenableFuture<Void> {
- val request = MeasureRegistrationRequest(context.packageName, dataType)
- val callbackStub = MeasureCallbackCache.INSTANCE.getOrCreate(dataType, callback, executor)
- return registerListener(callbackStub.listenerKey) { service, resultFuture ->
- service.registerCallback(request, callbackStub, StatusCallback(resultFuture))
- }
+ override fun registerCallback(dataType: DataType, callback: MeasureCallback) {
+ registerCallback(dataType, ContextCompat.getMainExecutor(context), callback)
}
- override fun unregisterCallback(
+ override fun registerCallback(
+ dataType: DataType,
+ executor: Executor,
+ callback: MeasureCallback
+ ) {
+ val request = MeasureRegistrationRequest(context.packageName, dataType)
+ val callbackStub = MeasureCallbackCache.INSTANCE.getOrCreate(dataType, callback, executor)
+ val future =
+ registerListener(callbackStub.listenerKey) { service, result: SettableFuture<Void?> ->
+ service.registerCallback(
+ request,
+ callbackStub,
+ StatusCallback(result)
+ )
+ }
+ Futures.addCallback(
+ future,
+ object : FutureCallback<Void?> {
+ override fun onSuccess(result: Void?) {
+ callback.onRegistered()
+ }
+
+ override fun onFailure(t: Throwable) {
+ callback.onRegistrationFailed(t)
+ }
+ },
+ executor)
+ }
+
+ override fun unregisterCallbackAsync(
dataType: DataType,
callback: MeasureCallback
): ListenableFuture<Void> {
@@ -95,7 +114,7 @@
execute { service ->
service.getCapabilities(CapabilitiesRequest(context.packageName))
},
- { response -> response?.measureCapabilities },
+ { response -> response!!.measureCapabilities },
ContextCompat.getMainExecutor(context)
)
@@ -103,10 +122,5 @@
const val CLIENT = "HealthServicesMeasureClient"
private val CLIENT_CONFIGURATION =
ClientConfiguration(CLIENT, SERVICE_PACKAGE_NAME, MEASURE_API_BIND_ACTION)
-
- @JvmStatic
- fun getClient(context: Context): ServiceBackedMeasureClient {
- return ServiceBackedMeasureClient(context, HsConnectionManager.getInstance(context))
- }
}
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/ServiceBackedPassiveMonitoringClient.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/ServiceBackedPassiveMonitoringClient.kt
index 16f9885..1ef5028a 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/ServiceBackedPassiveMonitoringClient.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/ServiceBackedPassiveMonitoringClient.kt
@@ -16,17 +16,22 @@
package androidx.health.services.client.impl
-import android.content.ComponentName
+import android.content.BroadcastReceiver
import android.content.Context
+import androidx.annotation.RestrictTo
import androidx.annotation.VisibleForTesting
import androidx.core.content.ContextCompat
+import androidx.health.services.client.PassiveListenerCallback
+import androidx.health.services.client.PassiveListenerService
import androidx.health.services.client.PassiveMonitoringCallback
import androidx.health.services.client.PassiveMonitoringClient
import androidx.health.services.client.data.PassiveGoal
+import androidx.health.services.client.data.PassiveListenerConfig
import androidx.health.services.client.data.PassiveMonitoringCapabilities
import androidx.health.services.client.data.PassiveMonitoringConfig
import androidx.health.services.client.impl.IpcConstants.PASSIVE_API_BIND_ACTION
import androidx.health.services.client.impl.IpcConstants.SERVICE_PACKAGE_NAME
+import androidx.health.services.client.impl.PassiveListenerCallbackStub.PassiveListenerCallbackCache
import androidx.health.services.client.impl.PassiveMonitoringCallbackStub.PassiveMonitoringCallbackCache
import androidx.health.services.client.impl.internal.HsConnectionManager
import androidx.health.services.client.impl.internal.StatusCallback
@@ -37,6 +42,8 @@
import androidx.health.services.client.impl.request.CapabilitiesRequest
import androidx.health.services.client.impl.request.FlushRequest
import androidx.health.services.client.impl.request.PassiveGoalRequest
+import androidx.health.services.client.impl.request.PassiveListenerCallbackRegistrationRequest
+import androidx.health.services.client.impl.request.PassiveListenerServiceRegistrationRequest
import com.google.common.util.concurrent.Futures
import com.google.common.util.concurrent.ListenableFuture
@@ -45,6 +52,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
public class ServiceBackedPassiveMonitoringClient(
private val applicationContext: Context,
@@ -61,7 +69,7 @@
private val packageName = applicationContext.packageName
- override fun registerDataCallback(
+ override fun registerDataCallbackAsync(
configuration: PassiveMonitoringConfig
): ListenableFuture<Void> {
val callbackStub = PassiveMonitoringCallbackCache.INSTANCE.remove(packageName)
@@ -85,7 +93,7 @@
}
}
- override fun registerDataCallback(
+ override fun registerDataCallbackAsync(
configuration: PassiveMonitoringConfig,
callback: PassiveMonitoringCallback
): ListenableFuture<Void> {
@@ -100,7 +108,7 @@
}
}
- override fun unregisterDataCallback(): ListenableFuture<Void> {
+ override fun unregisterDataCallbackAsync(): ListenableFuture<Void> {
val callbackStub = PassiveMonitoringCallbackCache.INSTANCE.remove(packageName)
if (callbackStub != null) {
return unregisterListener(callbackStub.listenerKey) { service, resultFuture ->
@@ -112,25 +120,88 @@
}
}
- // TODO(jlannin): Make this take in the BroadcastReceiver directly.
- override fun registerPassiveGoalCallback(
+ override fun <T : BroadcastReceiver> registerPassiveGoalCallbackAsync(
passiveGoal: PassiveGoal,
- componentName: ComponentName,
+ broadcastReceiver: Class<T>,
): ListenableFuture<Void> {
- val request = PassiveGoalRequest(packageName, componentName.getClassName(), passiveGoal)
+ val request = PassiveGoalRequest(packageName, broadcastReceiver.getName(), passiveGoal)
return execute { service, resultFuture ->
service.registerPassiveGoalCallback(request, StatusCallback(resultFuture))
}
}
- override fun unregisterPassiveGoalCallback(passiveGoal: PassiveGoal): ListenableFuture<Void> {
+ override fun unregisterPassiveGoalCallbackAsync(
+ passiveGoal: PassiveGoal
+ ): ListenableFuture<Void> {
val request = PassiveGoalRequest(packageName, /*unused*/ "", passiveGoal)
return execute { service, resultFuture ->
service.unregisterPassiveGoalCallback(request, StatusCallback(resultFuture))
}
}
- override fun flush(): ListenableFuture<Void> {
+ // TODO(b/227475943): make public and add override after adding this back to the interface.
+ internal fun registerPassiveListenerServiceAsync(
+ passiveListenerService: Class<out PassiveListenerService>,
+ passiveListenerConfig: PassiveListenerConfig
+ ): ListenableFuture<Void> {
+ return executeWithVersionCheck(
+ { service, resultFuture ->
+ service.registerPassiveListenerService(
+ PassiveListenerServiceRegistrationRequest(
+ packageName,
+ passiveListenerService.getName(),
+ passiveListenerConfig
+ ),
+ StatusCallback(resultFuture)
+ )
+ },
+ /* minApiVersion= */ 4
+ )
+ }
+
+ // TODO(b/227475943): make public and add override after adding this back to the interface.
+ internal fun registerPassiveListenerCallbackAsync(
+ passiveListenerCallback: PassiveListenerCallback,
+ passiveListenerConfig: PassiveListenerConfig
+ ): ListenableFuture<Void> {
+ val callbackStub =
+ PassiveListenerCallbackCache.INSTANCE.getOrCreate(packageName, passiveListenerCallback)
+ return registerListener(callbackStub.listenerKey) { service, resultFuture ->
+ service.registerPassiveListenerCallback(
+ PassiveListenerCallbackRegistrationRequest(packageName, passiveListenerConfig),
+ callbackStub,
+ StatusCallback(resultFuture)
+ )
+ }
+ }
+
+ // TODO(b/227475943): make public and add override after adding this back to the interface.
+ internal fun unregisterPassiveListenerServiceAsync(): ListenableFuture<Void> {
+ return executeWithVersionCheck(
+ { service, resultFuture ->
+ service.unregisterPassiveListenerService(packageName, StatusCallback(resultFuture))
+ },
+ /* minApiVersion= */ 4
+ )
+ }
+
+ // TODO(b/227475943): make public and add override after adding this back to the interface.
+ internal fun unregisterPassiveListenerCallbackAsync(): ListenableFuture<Void> {
+ val callbackStub = PassiveListenerCallbackCache.INSTANCE.remove(packageName)
+ if (callbackStub != null) {
+ return unregisterListener(callbackStub.listenerKey) { service, resultFuture ->
+ service.unregisterPassiveListenerCallback(packageName, StatusCallback(resultFuture))
+ }
+ }
+ return executeWithVersionCheck(
+ { service, resultFuture ->
+ service.unregisterPassiveListenerCallback(packageName, StatusCallback(resultFuture))
+ },
+ /* minApiVersion= */ 4
+ )
+ }
+
+ override fun flushAsync(): ListenableFuture<Void> {
val request = FlushRequest(packageName)
return execute { service, resultFuture ->
service.flush(request, StatusCallback(resultFuture))
@@ -141,7 +212,7 @@
get() =
Futures.transform(
execute { service -> service.getCapabilities(CapabilitiesRequest(packageName)) },
- { response -> response?.passiveMonitoringCapabilities },
+ { response -> response!!.passiveMonitoringCapabilities },
ContextCompat.getMainExecutor(applicationContext)
)
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/VersionApiService.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/VersionApiService.kt
new file mode 100644
index 0000000..6ed241a
--- /dev/null
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/VersionApiService.kt
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2022 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.
+ */
+
+package androidx.health.services.client.impl
+
+import android.app.Service
+import android.content.Intent
+import android.os.IBinder
+import android.util.Log
+
+/** Service that allows querying the canonical SDK version used to compile this app. */
+// TODO(b/227475943): open up visibility
+internal class VersionApiService : Service() {
+
+ private val stub: VersionApiServiceStub = VersionApiServiceStub()
+
+ override fun onBind(intent: Intent): IBinder? {
+ if (intent.action != IpcConstants.VERSION_API_BIND_ACTION) {
+ Log.w(TAG, "Bind request with invalid action [${intent.action}]")
+ return null
+ }
+
+ return stub
+ }
+
+ private class VersionApiServiceStub : IVersionApiService.Stub() {
+ override fun getVersionApiServiceVersion(): Int =
+ IVersionApiService.VERSION_API_SERVICE_VERSION
+ override fun getSdkVersion(): Int = IVersionApiService.CANONICAL_SDK_VERSION
+ }
+
+ private companion object {
+ private const val TAG = "VersionApiService"
+ }
+}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/event/MeasureCallbackEvent.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/event/MeasureCallbackEvent.kt
index 17dfe12..4170ff1 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/event/MeasureCallbackEvent.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/event/MeasureCallbackEvent.kt
@@ -1,6 +1,7 @@
package androidx.health.services.client.impl.event
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.impl.response.AvailabilityResponse
import androidx.health.services.client.impl.response.DataPointsResponse
@@ -11,6 +12,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class MeasureCallbackEvent(public override val proto: ListenerProto) :
ProtoParcelable<ListenerProto>() {
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/event/PassiveCallbackEvent.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/event/PassiveCallbackEvent.kt
index 5c22157..337dcee 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/event/PassiveCallbackEvent.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/event/PassiveCallbackEvent.kt
@@ -1,6 +1,7 @@
package androidx.health.services.client.impl.event
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.impl.response.PassiveMonitoringUpdateResponse
import androidx.health.services.client.proto.EventsProto.PassiveCallbackEvent as EventProto
@@ -10,6 +11,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class PassiveCallbackEvent(public override val proto: EventProto) :
ProtoParcelable<EventProto>() {
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/event/PassiveListenerEvent.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/event/PassiveListenerEvent.kt
new file mode 100644
index 0000000..38e0951
--- /dev/null
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/event/PassiveListenerEvent.kt
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2022 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.
+ */
+
+package androidx.health.services.client.impl.event
+
+import android.os.Parcelable
+import androidx.health.services.client.PassiveListenerCallback
+import androidx.health.services.client.PassiveListenerService
+import androidx.health.services.client.data.ProtoParcelable
+import androidx.health.services.client.impl.response.PassiveMonitoringGoalResponse
+import androidx.health.services.client.impl.response.PassiveMonitoringUpdateResponse
+import androidx.health.services.client.proto.EventsProto.PassiveListenerEvent as EventProto
+import androidx.annotation.RestrictTo
+import androidx.health.services.client.proto.ResponsesProto.PermissionLostResponse
+
+/**
+ * An event representing a [PassiveListenerCallback] or [PassiveListenerService] invocation.
+ *
+ * @hide
+ */
+@RestrictTo(RestrictTo.Scope.LIBRARY)
+public class PassiveListenerEvent(public override val proto: EventProto) :
+ ProtoParcelable<EventProto>() {
+
+ public companion object {
+ @JvmField
+ public val CREATOR: Parcelable.Creator<PassiveListenerEvent> = newCreator {
+ PassiveListenerEvent(EventProto.parseFrom(it))
+ }
+
+ @JvmStatic
+ public fun createPermissionLostResponse(): PassiveListenerEvent =
+ PassiveListenerEvent(
+ EventProto.newBuilder()
+ .setPermissionLostResponse(PermissionLostResponse.newBuilder().build())
+ .build()
+ )
+
+ @JvmStatic
+ public fun createPassiveUpdateResponse(
+ response: PassiveMonitoringUpdateResponse
+ ): PassiveListenerEvent =
+ PassiveListenerEvent(
+ EventProto.newBuilder().setPassiveUpdateResponse(response.proto).build()
+ )
+
+ @JvmStatic
+ public fun createPassiveGoalResponse(
+ response: PassiveMonitoringGoalResponse
+ ): PassiveListenerEvent =
+ PassiveListenerEvent(
+ EventProto.newBuilder().setPassiveGoalResponse(response.proto).build()
+ )
+ }
+}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/internal/ExerciseInfoCallback.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/internal/ExerciseInfoCallback.kt
index 078cc154..b23d8bd 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/internal/ExerciseInfoCallback.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/internal/ExerciseInfoCallback.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.internal
import android.os.RemoteException
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.ExerciseInfo
import androidx.health.services.client.impl.response.ExerciseInfoResponse
import com.google.common.util.concurrent.SettableFuture
@@ -26,6 +27,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class ExerciseInfoCallback(private val resultFuture: SettableFuture<ExerciseInfo>) :
IExerciseInfoCallback.Stub() {
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/internal/HsConnectionManager.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/internal/HsConnectionManager.kt
index 56afcd2..7c19ca2 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/internal/HsConnectionManager.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/internal/HsConnectionManager.kt
@@ -22,6 +22,7 @@
import android.os.Looper
import android.os.Process
import androidx.annotation.GuardedBy
+import androidx.annotation.RestrictTo
import androidx.health.services.client.impl.ipc.internal.ConnectionManager
/**
@@ -29,6 +30,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public object HsConnectionManager {
private val lock = Any()
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/internal/StatusCallback.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/internal/StatusCallback.kt
index 89789e6..0618caf 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/internal/StatusCallback.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/internal/StatusCallback.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.internal
import android.os.RemoteException
+import androidx.annotation.RestrictTo
import com.google.common.util.concurrent.SettableFuture
/**
@@ -24,7 +25,8 @@
*
* @hide
*/
-public class StatusCallback(private val resultFuture: SettableFuture<Void>) :
+@RestrictTo(RestrictTo.Scope.LIBRARY)
+public class StatusCallback(private val resultFuture: SettableFuture<Void?>) :
IStatusCallback.Stub() {
@Throws(RemoteException::class)
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/ipc/Client.java b/health/health-services-client/src/main/java/androidx/health/services/client/impl/ipc/Client.java
index 3782df9..232ef3e5 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/ipc/Client.java
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/ipc/Client.java
@@ -137,9 +137,9 @@
@Override
public void onSuccess(Integer remoteVersion) {
if (remoteVersion < minApiVersion) {
- // This empty operation is executed just to connect to the service.
- // If we didn't connect it could happen that we won't detect
- // change in the API version.
+ // This empty operation is executed just to connect to the service. If
+ // we didn't connect it could happen that we won't detect change in the
+ // API version.
mConnectionManager.scheduleForExecution(
new BaseQueueOperation(mConnectionConfiguration));
@@ -258,8 +258,8 @@
return settableFuture;
}
- protected @NonNull Exception getApiVersionCheckFailureException(
- int currentVersion, int minApiVersion) {
+ @NonNull
+ protected Exception getApiVersionCheckFailureException(int currentVersion, int minApiVersion) {
return new ApiVersionException(currentVersion, minApiVersion);
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/ipc/ServiceOperation.java b/health/health-services-client/src/main/java/androidx/health/services/client/impl/ipc/ServiceOperation.java
deleted file mode 100644
index c15503e..0000000
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/ipc/ServiceOperation.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2021 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.
- */
-
-package androidx.health.services.client.impl.ipc;
-
-import android.os.IBinder;
-import android.os.RemoteException;
-
-import androidx.annotation.RestrictTo;
-import androidx.annotation.RestrictTo.Scope;
-
-import com.google.common.util.concurrent.SettableFuture;
-
-/**
- * General operation that will be executed against given service. A new operation can be created by
- * implementing this interface. User is then responsible for setting the result Future with the
- * result value.
- *
- * @param <R> Type of the returned value.
- * @hide
- */
-@RestrictTo(Scope.LIBRARY)
-public interface ServiceOperation<R> {
-
- /**
- * Method executed against the service.
- *
- * @param binder Already connected binder to the target service.
- * @param resultFuture A {@link SettableFuture} that should be set with the result.
- */
- void execute(IBinder binder, SettableFuture<R> resultFuture) throws RemoteException;
-}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/ipc/internal/DefaultExecutionTracker.java b/health/health-services-client/src/main/java/androidx/health/services/client/impl/ipc/internal/DefaultExecutionTracker.java
index 744ca14..99b0441 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/ipc/internal/DefaultExecutionTracker.java
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/ipc/internal/DefaultExecutionTracker.java
@@ -16,6 +16,7 @@
package androidx.health.services.client.impl.ipc.internal;
+import androidx.annotation.GuardedBy;
import androidx.annotation.RestrictTo;
import androidx.annotation.RestrictTo.Scope;
@@ -33,29 +34,32 @@
@SuppressWarnings("ExecutorTaskName")
@RestrictTo(Scope.LIBRARY)
public class DefaultExecutionTracker implements ExecutionTracker {
+ @GuardedBy("mFuturesInProgress") // future listener can be called from arbitrary thread
private final Set<SettableFuture<?>> mFuturesInProgress = new HashSet<>();
@Override
public void track(SettableFuture<?> future) {
synchronized (mFuturesInProgress) {
mFuturesInProgress.add(future);
+ future.addListener(
+ () -> {
+ synchronized (mFuturesInProgress) {
+ mFuturesInProgress.remove(future);
+ }
+ },
+ MoreExecutors.directExecutor());
}
- future.addListener(
- () -> {
- synchronized (mFuturesInProgress) {
- mFuturesInProgress.remove(future);
- }
- },
- MoreExecutors.directExecutor());
}
@Override
public void cancelPendingFutures(Throwable throwable) {
+ Set<SettableFuture<?>> futuresInProgressCopy;
synchronized (mFuturesInProgress) {
- for (SettableFuture<?> future : mFuturesInProgress) {
- future.setException(throwable);
- }
+ futuresInProgressCopy = new HashSet<>(mFuturesInProgress);
mFuturesInProgress.clear();
}
+ for (SettableFuture<?> future : futuresInProgressCopy) {
+ future.setException(throwable);
+ }
}
}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/AutoPauseAndResumeConfigRequest.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/AutoPauseAndResumeConfigRequest.kt
index 82284cb..125f749 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/AutoPauseAndResumeConfigRequest.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/AutoPauseAndResumeConfigRequest.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.request
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.proto.RequestsProto
@@ -25,6 +26,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class AutoPauseAndResumeConfigRequest(
public val packageName: String,
public val shouldEnable: Boolean,
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/BackgroundUnregistrationRequest.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/BackgroundUnregistrationRequest.kt
deleted file mode 100644
index abf5795..0000000
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/BackgroundUnregistrationRequest.kt
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) 2021 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.
- */
-
-package androidx.health.services.client.impl.request
-
-import android.os.Parcelable
-import androidx.health.services.client.data.ProtoParcelable
-import androidx.health.services.client.proto.RequestsProto
-
-/**
- * Request for background unregistration.
- *
- * @hide
- */
-public class BackgroundUnregistrationRequest(public val packageName: String) :
- ProtoParcelable<RequestsProto.PassiveMonitoringUnregistrationRequest>() {
-
- override val proto: RequestsProto.PassiveMonitoringUnregistrationRequest by lazy {
- RequestsProto.PassiveMonitoringUnregistrationRequest.newBuilder()
- .setPackageName(packageName)
- .build()
- }
-
- public companion object {
- @JvmField
- public val CREATOR: Parcelable.Creator<BackgroundUnregistrationRequest> = newCreator {
- val request = RequestsProto.PassiveMonitoringUnregistrationRequest.parseFrom(it)
- BackgroundUnregistrationRequest(request.packageName)
- }
- }
-}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/CapabilitiesRequest.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/CapabilitiesRequest.kt
index 008a9cc..cb477c9 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/CapabilitiesRequest.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/CapabilitiesRequest.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.request
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.proto.RequestsProto
@@ -25,6 +26,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class CapabilitiesRequest(public val packageName: String) :
ProtoParcelable<RequestsProto.CapabilitiesRequest>() {
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/ExerciseGoalRequest.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/ExerciseGoalRequest.kt
index 273d422..c1f22a7 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/ExerciseGoalRequest.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/ExerciseGoalRequest.kt
@@ -18,6 +18,7 @@
import android.os.Parcel
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.ExerciseGoal
/**
@@ -25,6 +26,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public data class ExerciseGoalRequest(val packageName: String, val exerciseGoal: ExerciseGoal) :
Parcelable {
override fun describeContents(): Int = 0
@@ -38,8 +40,8 @@
@JvmField
public val CREATOR: Parcelable.Creator<ExerciseGoalRequest> =
object : Parcelable.Creator<ExerciseGoalRequest> {
- @Suppress("deprecation")
override fun createFromParcel(source: Parcel): ExerciseGoalRequest? {
+ @Suppress("DEPRECATION")
return ExerciseGoalRequest(
source.readString() ?: return null,
source.readParcelable(ExerciseGoal::class.java.classLoader) ?: return null,
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/FlushRequest.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/FlushRequest.kt
index 575b42e..b232dfb 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/FlushRequest.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/FlushRequest.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.request
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.proto.RequestsProto
@@ -25,6 +26,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class FlushRequest(public val packageName: String) :
ProtoParcelable<RequestsProto.FlushRequest>() {
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/MeasureRegistrationRequest.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/MeasureRegistrationRequest.kt
index b383c30..7f9f61f 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/MeasureRegistrationRequest.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/MeasureRegistrationRequest.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.request
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.DataType
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.proto.RequestsProto
@@ -26,6 +27,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class MeasureRegistrationRequest(
public val packageName: String,
public val dataType: DataType,
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/MeasureUnregistrationRequest.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/MeasureUnregistrationRequest.kt
index 0682202..02c9d8f 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/MeasureUnregistrationRequest.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/MeasureUnregistrationRequest.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.request
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.DataType
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.proto.RequestsProto
@@ -26,6 +27,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class MeasureUnregistrationRequest(
public val packageName: String,
public val dataType: DataType,
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/PassiveGoalRequest.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/PassiveGoalRequest.kt
index bf921262..bb12d91 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/PassiveGoalRequest.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/PassiveGoalRequest.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.request
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.PassiveGoal
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.proto.RequestsProto
@@ -26,6 +27,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class PassiveGoalRequest(
public val packageName: String,
public val receiverClassName: String,
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/PassiveListenerCallbackRegistrationRequest.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/PassiveListenerCallbackRegistrationRequest.kt
new file mode 100644
index 0000000..8367d89
--- /dev/null
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/PassiveListenerCallbackRegistrationRequest.kt
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2022 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.
+ */
+
+package androidx.health.services.client.impl.request
+
+import android.os.Parcelable
+import androidx.annotation.RestrictTo
+import androidx.health.services.client.data.PassiveListenerConfig
+import androidx.health.services.client.data.ProtoParcelable
+import androidx.health.services.client.proto.RequestsProto
+
+/**
+ * Request for background registration.
+ *
+ * @hide
+ */
+@RestrictTo(RestrictTo.Scope.LIBRARY)
+internal class PassiveListenerCallbackRegistrationRequest(
+ public val packageName: String,
+ public val passiveListenerConfig: PassiveListenerConfig,
+) : ProtoParcelable<RequestsProto.PassiveListenerCallbackRegistrationRequest>() {
+
+ override val proto: RequestsProto.PassiveListenerCallbackRegistrationRequest by lazy {
+ RequestsProto.PassiveListenerCallbackRegistrationRequest.newBuilder()
+ .setPackageName(packageName)
+ .setConfig(passiveListenerConfig.proto)
+ .build()
+ }
+
+ public companion object {
+ @JvmField
+ public val CREATOR: Parcelable.Creator<PassiveListenerCallbackRegistrationRequest> =
+ newCreator { bytes ->
+ val proto =
+ RequestsProto.PassiveListenerCallbackRegistrationRequest.parseFrom(bytes)
+ PassiveListenerCallbackRegistrationRequest(
+ proto.packageName,
+ PassiveListenerConfig(proto.config)
+ )
+ }
+ }
+}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/PassiveListenerServiceRegistrationRequest.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/PassiveListenerServiceRegistrationRequest.kt
new file mode 100644
index 0000000..33b74c3
--- /dev/null
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/PassiveListenerServiceRegistrationRequest.kt
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2021 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.
+ */
+
+package androidx.health.services.client.impl.request
+
+import android.os.Parcelable
+import androidx.annotation.RestrictTo
+import androidx.health.services.client.data.PassiveListenerConfig
+import androidx.health.services.client.data.ProtoParcelable
+import androidx.health.services.client.proto.RequestsProto
+
+/**
+ * Request for background registration.
+ *
+ * @hide
+ */
+@RestrictTo(RestrictTo.Scope.LIBRARY)
+internal class PassiveListenerServiceRegistrationRequest(
+ public val packageName: String,
+ public val passiveListenerServiceClassName: String,
+ public val passiveListenerConfig: PassiveListenerConfig,
+) : ProtoParcelable<RequestsProto.PassiveListenerServiceRegistrationRequest>() {
+
+ override val proto: RequestsProto.PassiveListenerServiceRegistrationRequest by lazy {
+ RequestsProto.PassiveListenerServiceRegistrationRequest.newBuilder()
+ .setPackageName(packageName)
+ .setListenerServiceClass(passiveListenerServiceClassName)
+ .setConfig(passiveListenerConfig.proto)
+ .build()
+ }
+
+ public companion object {
+ @JvmField
+ public val CREATOR: Parcelable.Creator<PassiveListenerServiceRegistrationRequest> =
+ newCreator { bytes ->
+ val proto = RequestsProto.PassiveListenerServiceRegistrationRequest.parseFrom(bytes)
+ PassiveListenerServiceRegistrationRequest(
+ proto.packageName,
+ proto.listenerServiceClass,
+ PassiveListenerConfig(proto.config)
+ )
+ }
+ }
+}
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/PrepareExerciseRequest.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/PrepareExerciseRequest.kt
index e3ad5c3..ab6c470 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/PrepareExerciseRequest.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/PrepareExerciseRequest.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.request
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.data.WarmUpConfig
import androidx.health.services.client.proto.RequestsProto
@@ -26,6 +27,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class PrepareExerciseRequest(
public val packageName: String,
public val warmUpConfig: WarmUpConfig,
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/StartExerciseRequest.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/StartExerciseRequest.kt
index 20ecb16..aab8d00 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/StartExerciseRequest.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/request/StartExerciseRequest.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.request
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.ExerciseConfig
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.proto.RequestsProto
@@ -26,6 +27,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class StartExerciseRequest(
public val packageName: String,
public val exerciseConfig: ExerciseConfig,
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/AvailabilityResponse.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/AvailabilityResponse.kt
index f4b0f0f..d20636b 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/AvailabilityResponse.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/AvailabilityResponse.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.response
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.Availability
import androidx.health.services.client.data.DataType
import androidx.health.services.client.data.DataTypeAvailability
@@ -33,6 +34,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class AvailabilityResponse(
/** [DataType] of the [AvailabilityResponse]. */
public val dataType: DataType,
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/DataPointsResponse.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/DataPointsResponse.kt
index 46ab61b..60506e2 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/DataPointsResponse.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/DataPointsResponse.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.response
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.DataPoint
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.proto.ResponsesProto
@@ -26,10 +27,12 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class DataPointsResponse(public val dataPoints: List<DataPoint>) :
ProtoParcelable<ResponsesProto.DataPointsResponse>() {
/** @hide */
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
public constructor(
proto: ResponsesProto.DataPointsResponse
) : this(proto.dataPointsList.map { DataPoint(it) })
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/ExerciseCapabilitiesResponse.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/ExerciseCapabilitiesResponse.kt
index b66747a..0791601 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/ExerciseCapabilitiesResponse.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/ExerciseCapabilitiesResponse.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.response
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.ExerciseCapabilities
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.proto.ResponsesProto
@@ -27,6 +28,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class ExerciseCapabilitiesResponse(
/** [ExerciseCapabilities] supported by this device. */
public val exerciseCapabilities: ExerciseCapabilities,
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/ExerciseInfoResponse.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/ExerciseInfoResponse.kt
index cd53fe3..e08d6ba 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/ExerciseInfoResponse.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/ExerciseInfoResponse.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.response
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.ExerciseInfo
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.proto.ResponsesProto
@@ -26,6 +27,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class ExerciseInfoResponse(public val exerciseInfo: ExerciseInfo) :
ProtoParcelable<ResponsesProto.ExerciseInfoResponse>() {
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/ExerciseLapSummaryResponse.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/ExerciseLapSummaryResponse.kt
index 9729855..b9fdef5 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/ExerciseLapSummaryResponse.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/ExerciseLapSummaryResponse.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.response
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.ExerciseLapSummary
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.proto.ResponsesProto
@@ -26,6 +27,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class ExerciseLapSummaryResponse(public val exerciseLapSummary: ExerciseLapSummary) :
ProtoParcelable<ResponsesProto.ExerciseLapSummaryResponse>() {
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/ExerciseUpdateResponse.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/ExerciseUpdateResponse.kt
index 5b7eb19..5b9b295 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/ExerciseUpdateResponse.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/ExerciseUpdateResponse.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.response
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.ExerciseUpdate
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.proto.ResponsesProto
@@ -26,6 +27,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class ExerciseUpdateResponse(public val exerciseUpdate: ExerciseUpdate) :
ProtoParcelable<ResponsesProto.ExerciseUpdateResponse>() {
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/MeasureCapabilitiesResponse.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/MeasureCapabilitiesResponse.kt
index 01b8be4..d1876fa 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/MeasureCapabilitiesResponse.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/MeasureCapabilitiesResponse.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.response
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.MeasureCapabilities
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.proto.ResponsesProto
@@ -26,6 +27,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class MeasureCapabilitiesResponse(
/** [MeasureCapabilities] supported by this device. */
public val measureCapabilities: MeasureCapabilities,
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/PassiveMonitoringCapabilitiesResponse.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/PassiveMonitoringCapabilitiesResponse.kt
index d3491d1..0839429 100644
--- a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/PassiveMonitoringCapabilitiesResponse.kt
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/PassiveMonitoringCapabilitiesResponse.kt
@@ -17,6 +17,7 @@
package androidx.health.services.client.impl.response
import android.os.Parcelable
+import androidx.annotation.RestrictTo
import androidx.health.services.client.data.PassiveMonitoringCapabilities
import androidx.health.services.client.data.ProtoParcelable
import androidx.health.services.client.proto.ResponsesProto
@@ -26,6 +27,7 @@
*
* @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY)
public class PassiveMonitoringCapabilitiesResponse(
/** [PassiveMonitoringCapabilities] supported by this device. */
public val passiveMonitoringCapabilities: PassiveMonitoringCapabilities,
diff --git a/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/PassiveMonitoringGoalResponse.kt b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/PassiveMonitoringGoalResponse.kt
new file mode 100644
index 0000000..e70073f
--- /dev/null
+++ b/health/health-services-client/src/main/java/androidx/health/services/client/impl/response/PassiveMonitoringGoalResponse.kt
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2022 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.
+ */
+
+package androidx.health.services.client.impl.response
+
+import android.os.Parcelable
+import androidx.annotation.RestrictTo
+import androidx.health.services.client.data.PassiveGoal
+import androidx.health.services.client.data.ProtoParcelable
+import androidx.health.services.client.proto.ResponsesProto
+
+/**
+ * Response containing an achieved [PassiveGoal].
+ *
+ * @hide
+ */
+@RestrictTo(RestrictTo.Scope.LIBRARY)
+public class PassiveMonitoringGoalResponse(public val passiveGoal: PassiveGoal) :
+ ProtoParcelable<ResponsesProto.PassiveMonitoringGoalResponse>() {
+
+ /** @hide */
+ public constructor(
+ proto: ResponsesProto.PassiveMonitoringGoalResponse
+ ) : this(PassiveGoal(proto.goal))
+
+ override val proto: ResponsesProto.PassiveMonitoringGoalResponse by lazy {
+ ResponsesProto.PassiveMonitoringGoalResponse.newBuilder().setGoal(passiveGoal.proto).build()
+ }
+
+ public companion object {
+ @JvmField
+ public val CREATOR: Parcelable.Creator<PassiveMonitoringGoalResponse> =
+ newCreator { bytes ->
+ val proto = ResponsesProto.PassiveMonitoringGoalResponse.parseFrom(bytes)
+ PassiveMonitoringGoalResponse(proto)
+ }
+ }
+}
diff --git a/health/health-services-client/src/main/proto/data.proto b/health/health-services-client/src/main/proto/data.proto
index 1dd66b2..81a1fc4 100644
--- a/health/health-services-client/src/main/proto/data.proto
+++ b/health/health-services-client/src/main/proto/data.proto
@@ -51,58 +51,20 @@
}
}
-message AutoExerciseCapabilities {
- message SupportedExercisesEntry {
- optional ExerciseType exercise_type = 1;
- repeated DataType data_types = 2;
- reserved 3 to max; // Next ID
- }
- repeated SupportedExercisesEntry supported_exercises = 1;
- reserved 2 to max; // Next ID
-}
-
-message AutoExerciseConfig {
- repeated ExerciseType exercises_to_detect = 1;
- optional Bundle exercise_params = 2;
- reserved 3 to max; // Next ID
-}
-
-enum AutoExerciseDetectionDisabledReason {
- AUTO_EXERCISE_DETECTION_DISABLED_REASON_UNKNOWN = 0;
- AUTO_EXERCISE_DETECTION_DISABLED_REASON_NOT_APPLICABLE = 1;
- AUTO_EXERCISE_DETECTION_DISABLED_REASON_NOT_REGISTERED = 2;
- AUTO_EXERCISE_DETECTION_DISABLED_REASON_IN_ACTIVE_EXERCISE = 3;
- reserved 4 to max; // Next ID
-}
-
-message AutoExerciseDetectionState {
- optional AutoExerciseStatus status = 1;
- optional AutoExerciseDetectionDisabledReason disabled_reason = 2;
- optional ExerciseUpdate exercise_update = 3;
- reserved 4 to max; // Next ID
-}
-
-enum AutoExerciseStatus {
- AUTO_EXERCISE_STATUS_UNKNOWN = 0;
- AUTO_EXERCISE_STATUS_DETECTION_DISABLED = 1;
- AUTO_EXERCISE_STATUS_DETECTION_ENABLED = 2;
- AUTO_EXERCISE_STATUS_ONGOING_AUTO_EXERCISE = 3;
- reserved 4 to max; // Next ID
-}
-
message Availability {
enum DataTypeAvailability {
DATA_TYPE_AVAILABILITY_UNKNOWN = 0;
DATA_TYPE_AVAILABILITY_AVAILABLE = 1;
DATA_TYPE_AVAILABILITY_ACQUIRING = 2;
DATA_TYPE_AVAILABILITY_UNAVAILABLE = 3;
- reserved 4 to max; // Next ID
+ DATA_TYPE_AVAILABILITY_UNAVAILABLE_DEVICE_OFF_BODY = 4;
+ reserved 5 to max; // Next ID
}
enum LocationAvailability {
LOCATION_AVAILABILITY_UNKNOWN = 0;
LOCATION_AVAILABILITY_UNAVAILABLE = 1;
- LOCATION_AVAILABILITY_NO_GPS = 2;
+ LOCATION_AVAILABILITY_NO_GNSS = 2;
LOCATION_AVAILABILITY_ACQUIRING = 3;
LOCATION_AVAILABILITY_ACQUIRED_TETHERED = 4;
LOCATION_AVAILABILITY_ACQUIRED_UNTETHERED = 5;
@@ -167,8 +129,11 @@
}
message LocationAccuracy {
+ // Horizontal accuracy in meters.
optional double horizontal_position_error = 1;
- reserved 2 to max; // Next ID
+ // Vertical accuracy in meters.
+ optional double vertical_position_error = 2;
+ reserved 3 to max; // Next ID
}
oneof accuracy {
@@ -286,6 +251,8 @@
enum ExerciseType {
EXERCISE_TYPE_UNKNOWN = 0;
+ EXERCISE_TYPE_ALPINE_SKIING = 92;
+ EXERCISE_TYPE_BACKPACKING = 84;
EXERCISE_TYPE_BACK_EXTENSION = 1;
EXERCISE_TYPE_BADMINTON = 2;
EXERCISE_TYPE_BARBELL_SHOULDER_PRESS = 3;
@@ -300,6 +267,7 @@
EXERCISE_TYPE_BURPEE = 12;
EXERCISE_TYPE_CALISTHENICS = 13;
EXERCISE_TYPE_CRICKET = 14;
+ EXERCISE_TYPE_CROSS_COUNTRY_SKIING = 91;
EXERCISE_TYPE_CRUNCH = 15;
EXERCISE_TYPE_DANCING = 16;
EXERCISE_TYPE_DEADLIFT = 17;
@@ -323,13 +291,17 @@
EXERCISE_TYPE_HANDBALL = 35;
EXERCISE_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING = 36;
EXERCISE_TYPE_HIKING = 37;
+ EXERCISE_TYPE_HORSE_RIDING = 88;
EXERCISE_TYPE_ICE_HOCKEY = 38;
EXERCISE_TYPE_ICE_SKATING = 39;
+ EXERCISE_TYPE_INLINE_SKATING = 87;
EXERCISE_TYPE_JUMP_ROPE = 40;
EXERCISE_TYPE_JUMPING_JACK = 41;
EXERCISE_TYPE_LAT_PULL_DOWN = 42;
EXERCISE_TYPE_LUNGE = 43;
EXERCISE_TYPE_MARTIAL_ARTS = 44;
+ EXERCISE_TYPE_MOUNTAIN_BIKING = 85;
+ EXERCISE_TYPE_ORIENTEERING = 86;
EXERCISE_TYPE_MEDITATION = 45;
EXERCISE_TYPE_PADDLING = 46;
EXERCISE_TYPE_PARA_GLIDING = 47;
@@ -338,6 +310,7 @@
EXERCISE_TYPE_RACQUETBALL = 50;
EXERCISE_TYPE_ROCK_CLIMBING = 51;
EXERCISE_TYPE_ROLLER_HOCKEY = 52;
+ EXERCISE_TYPE_ROLLER_SKATING = 89;
EXERCISE_TYPE_ROWING = 53;
EXERCISE_TYPE_ROWING_MACHINE = 54;
EXERCISE_TYPE_RUNNING = 55;
@@ -368,8 +341,9 @@
EXERCISE_TYPE_WATER_POLO = 80;
EXERCISE_TYPE_WEIGHTLIFTING = 81;
EXERCISE_TYPE_WORKOUT = 82;
+ EXERCISE_TYPE_YACHTING = 90;
EXERCISE_TYPE_YOGA = 83;
- reserved 84 to max; // Next ID
+ reserved 93 to max; // Next ID
}
message ExerciseTypeCapabilities {
@@ -399,16 +373,24 @@
reserved 3 to max; // Next ID
}
+ message ActiveDurationCheckpoint {
+ optional int64 time_epoch_ms = 1;
+ optional int64 active_duration_ms = 2;
+ reserved 3 to max; // Next ID
+ }
+
optional ExerciseState state = 1;
optional int64 start_time_epoch_ms = 2;
optional int64 active_duration_ms = 3;
+ optional int64 update_duration_from_boot_ms = 9;
repeated LatestMetricsEntry latest_metrics = 4;
repeated AggregateDataPoint latest_aggregate_metrics = 8;
repeated AchievedExerciseGoal latest_achieved_goals = 5;
repeated MilestoneMarkerSummary mile_stone_marker_summaries = 6;
optional ExerciseConfig exercise_config = 7;
+ optional ActiveDurationCheckpoint active_duration_checkpoint = 10;
- reserved 9 to max; // Next ID
+ reserved 11 to max; // Next ID
}
message HealthEvent {
@@ -472,22 +454,34 @@
}
message PassiveGoal {
- enum TriggerType {
- TRIGGER_TYPE_UNKNOWN = 0;
- TRIGGER_TYPE_ONCE = 1;
- TRIGGER_TYPE_REPEATED = 2;
+ enum TriggerFrequency {
+ TRIGGER_FREQUENCY_UNKNOWN = 0;
+ TRIGGER_FREQUENCY_ONCE = 1;
+ TRIGGER_FREQUENCY_REPEATED = 2;
reserved 3 to max; // Next ID
}
optional DataTypeCondition condition = 1;
- optional TriggerType trigger_type = 2;
+ optional TriggerFrequency trigger_frequency = 2;
reserved 3 to max; // Next ID
}
message PassiveMonitoringCapabilities {
repeated DataType supported_data_types_passive_monitoring = 1;
- repeated DataType supported_data_types_events = 2;
- reserved 3 to max; // Next ID
+ repeated DataType supported_data_types_passive_goals = 2;
+ repeated int32 supported_hr_sampling_intervals_seconds = 3 [packed = true];
+ repeated HealthEvent.HealthEventType supported_health_event_types = 4
+ [packed = true];
+ repeated UserActivityState supported_user_activity_states = 5 [packed = true];
+ reserved 6 to max; // Next ID
+}
+
+message PassiveListenerConfig {
+ repeated DataType data_types = 1;
+ optional bool include_user_activity_state = 2;
+ repeated PassiveGoal passive_goals = 3;
+ repeated HealthEvent.HealthEventType health_event_types = 4;
+ reserved 5 to max; // Next ID
}
message PassiveMonitoringConfig {
@@ -532,6 +526,7 @@
int64 long_val = 2;
double double_val = 3;
DoubleArray double_array_val = 4;
+ bytes byte_array_val = 5;
}
- reserved 5 to max; // Next ID
+ reserved 6 to max; // Next ID
}
diff --git a/health/health-services-client/src/main/proto/events.proto b/health/health-services-client/src/main/proto/events.proto
index 4fb54d6..d8385ca 100644
--- a/health/health-services-client/src/main/proto/events.proto
+++ b/health/health-services-client/src/main/proto/events.proto
@@ -46,4 +46,15 @@
}
reserved 2 to max; // Next ID
-}
\ No newline at end of file
+}
+
+message PassiveListenerEvent {
+ oneof event {
+ PassiveMonitoringUpdateResponse passive_update_response = 1;
+ PassiveMonitoringGoalResponse passive_goal_response = 2;
+ HealthEventResponse health_event_response = 3;
+ PermissionLostResponse permission_lost_response = 4;
+ }
+
+ reserved 5 to max; // Next ID
+}
diff --git a/health/health-services-client/src/main/proto/requests.proto b/health/health-services-client/src/main/proto/requests.proto
index ace7978..d71c3a7 100644
--- a/health/health-services-client/src/main/proto/requests.proto
+++ b/health/health-services-client/src/main/proto/requests.proto
@@ -85,7 +85,19 @@
reserved 3 to max; // Next ID
}
-// Request for passive unregistration.
+message PassiveListenerCallbackRegistrationRequest {
+ optional string package_name = 1;
+ optional PassiveListenerConfig config = 2;
+ reserved 3 to max; // Next ID
+}
+
+message PassiveListenerServiceRegistrationRequest {
+ optional string package_name = 1;
+ optional string listener_service_class = 2;
+ optional PassiveListenerConfig config = 3;
+ reserved 4 to max; // Next ID
+}
+
message PassiveGoalRequest {
optional string package_name = 1;
optional string receiver_class_name = 2;
@@ -93,32 +105,14 @@
reserved 4 to max; // Next ID
}
-// Request for passive unregistration.
-message PassiveMonitoringUnregistrationRequest {
- optional string package_name = 1;
- reserved 2 to max; // Next ID
-}
-
message PrepareExerciseRequest {
optional string package_name = 1;
optional WarmUpConfig config = 2;
reserved 3 to max; // Next ID
}
-message RegisterForAutoExerciseRequest {
- optional string package_name = 1;
- optional AutoExerciseConfig config = 2;
- reserved 3 to max; // Next ID
-}
-
message StartExerciseRequest {
optional string package_name = 1;
optional ExerciseConfig config = 2;
reserved 3 to max; // Next ID
}
-
-// Request to unregister for automatic exercise detection updates.
-message UnregisterFromAutoExerciseRequest {
- optional string package_name = 1;
- reserved 2 to max; // Next ID
-}
diff --git a/health/health-services-client/src/main/proto/responses.proto b/health/health-services-client/src/main/proto/responses.proto
index c42d449..eb72f92 100644
--- a/health/health-services-client/src/main/proto/responses.proto
+++ b/health/health-services-client/src/main/proto/responses.proto
@@ -23,16 +23,6 @@
option java_package = "androidx.health.services.client.proto";
option java_outer_classname = "ResponsesProto";
-message AutoExerciseCapabilitiesResponse {
- optional AutoExerciseCapabilities capabilities = 1;
- reserved 2 to max; // Next ID
-}
-
-message AutoExerciseDetectionStateResponse {
- optional AutoExerciseDetectionState state = 1;
- reserved 2 to max; // Next ID
-}
-
message AvailabilityResponse {
optional DataType data_type = 1;
optional Availability availability = 2;
@@ -64,6 +54,11 @@
reserved 2 to max; // Next ID
}
+message HealthEventResponse {
+ optional HealthEvent health_event = 1;
+ reserved 2 to max; // Next ID
+}
+
message HeartRateAlertParamsResponse {
optional HeartRateAlertParams params = 1;
reserved 2 to max; // Next ID
@@ -79,7 +74,14 @@
reserved 2 to max; // Next ID
}
+message PassiveMonitoringGoalResponse {
+ optional PassiveGoal goal = 1;
+ reserved 2 to max; // Next ID
+}
+
message PassiveMonitoringUpdateResponse {
optional PassiveMonitoringUpdate update = 1;
reserved 2 to max; // Next ID
-}
\ No newline at end of file
+}
+
+message PermissionLostResponse {}
diff --git a/libraryversions.toml b/libraryversions.toml
index bb41f7d..401060a 100644
--- a/libraryversions.toml
+++ b/libraryversions.toml
@@ -18,12 +18,12 @@
CAR_APP = "1.3.0-alpha01"
COLLECTION = "1.3.0-alpha01"
COLLECTION2 = "1.3.0-alpha01"
-COMPOSE = "1.2.0-alpha08"
-COMPOSE_MATERIAL3 = "1.0.0-alpha10"
+COMPOSE = "1.2.0-alpha09"
+COMPOSE_MATERIAL3 = "1.0.0-alpha11"
CONTENTPAGER = "1.1.0-alpha01"
COORDINATORLAYOUT = "1.3.0-alpha01"
CORE = "1.8.0-rc01"
-CORE_ANIMATION = "1.0.0-beta01"
+CORE_ANIMATION = "1.0.0-beta02"
CORE_ANIMATION_TESTING = "1.0.0-beta01"
CORE_APPDIGEST = "1.0.0-alpha01"
CORE_GOOGLE_SHORTCUTS = "1.1.0-alpha02"
@@ -38,12 +38,12 @@
CUSTOMVIEW_POOLINGCONTAINER = "1.0.0-alpha02"
DATASTORE = "1.1.0-alpha01"
DOCUMENTFILE = "1.1.0-alpha02"
-DRAGANDDROP = "1.0.0-rc01"
+DRAGANDDROP = "1.1.0-alpha01"
DRAWERLAYOUT = "1.2.0-alpha01"
DYNAMICANIMATION = "1.1.0-alpha04"
DYNAMICANIMATION_KTX = "1.0.0-alpha04"
EMOJI = "1.2.0-alpha03"
-EMOJI2 = "1.2.0-alpha04"
+EMOJI2 = "1.2.0-alpha05"
ENTERPRISE = "1.1.0-rc01"
EXIFINTERFACE = "1.4.0-alpha01"
FRAGMENT = "1.5.0-beta01"
@@ -107,27 +107,27 @@
TESTEXT = "1.0.0-alpha01"
TESTSCREENSHOT = "1.0.0-alpha01"
TEXT = "1.0.0-alpha01"
-TRACING = "1.1.0-rc01"
+TRACING = "1.2.0-alpha01"
TRACING_PERFETTO = "1.0.0-alpha01"
TRANSITION = "1.5.0-alpha01"
TVPROVIDER = "1.1.0-alpha02"
-VECTORDRAWABLE = "1.2.0-beta01"
+VECTORDRAWABLE = "1.2.0-beta02"
VECTORDRAWABLE_ANIMATED = "1.2.0-beta01"
-VECTORDRAWABLE_SEEKABLE = "1.0.0-beta01"
+VECTORDRAWABLE_SEEKABLE = "1.0.0-beta02"
VERSIONED_PARCELABLE = "1.2.0-alpha01"
VIEWPAGER = "1.1.0-alpha02"
VIEWPAGER2 = "1.1.0-beta02"
WEAR = "1.3.0-alpha03"
-WEAR_COMPOSE = "1.0.0-alpha21"
+WEAR_COMPOSE = "1.0.0-alpha22"
WEAR_INPUT = "1.2.0-alpha03"
WEAR_INPUT_TESTING = "1.2.0-alpha03"
WEAR_ONGOING = "1.1.0-alpha01"
WEAR_PHONE_INTERACTIONS = "1.1.0-alpha04"
WEAR_REMOTE_INTERACTIONS = "1.1.0-alpha01"
WEAR_TILES = "1.1.0-alpha06"
-WEAR_WATCHFACE = "1.1.0-beta01"
+WEAR_WATCHFACE = "1.1.0-beta02"
WEBKIT = "1.5.0-alpha01"
-WINDOW = "1.1.0-alpha01"
+WINDOW = "1.1.0-alpha02"
WINDOW_EXTENSIONS = "1.1.0-alpha01"
WINDOW_SIDECAR = "1.0.0-rc01"
WORK = "2.8.0-alpha02"
diff --git a/lifecycle/OWNERS b/lifecycle/OWNERS
index 27789fd..a1887e7 100644
--- a/lifecycle/OWNERS
+++ b/lifecycle/OWNERS
@@ -2,6 +2,7 @@
ilake@google.com
jbwoods@google.com
sanura@google.com
+clarafok@google.com
sergeyv@google.com
yboyar@google.com
diff --git a/lifecycle/lifecycle-common-java8/api/2.5.0-beta02.txt b/lifecycle/lifecycle-common-java8/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/lifecycle/lifecycle-common-java8/api/2.5.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/lifecycle/lifecycle-common-java8/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-common-java8/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/lifecycle/lifecycle-common-java8/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/lifecycle/lifecycle-common-java8/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-common-java8/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/lifecycle/lifecycle-common-java8/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/lifecycle/lifecycle-common/api/2.5.0-beta02.txt b/lifecycle/lifecycle-common/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..1e1ed43
--- /dev/null
+++ b/lifecycle/lifecycle-common/api/2.5.0-beta02.txt
@@ -0,0 +1,60 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public interface DefaultLifecycleObserver extends androidx.lifecycle.LifecycleObserver androidx.lifecycle.LifecycleObserver {
+ method public default void onCreate(androidx.lifecycle.LifecycleOwner);
+ method public default void onDestroy(androidx.lifecycle.LifecycleOwner);
+ method public default void onPause(androidx.lifecycle.LifecycleOwner);
+ method public default void onResume(androidx.lifecycle.LifecycleOwner);
+ method public default void onStart(androidx.lifecycle.LifecycleOwner);
+ method public default void onStop(androidx.lifecycle.LifecycleOwner);
+ }
+
+ public abstract class Lifecycle {
+ ctor public Lifecycle();
+ method @MainThread public abstract void addObserver(androidx.lifecycle.LifecycleObserver);
+ method @MainThread public abstract androidx.lifecycle.Lifecycle.State getCurrentState();
+ method @MainThread public abstract void removeObserver(androidx.lifecycle.LifecycleObserver);
+ }
+
+ public enum Lifecycle.Event {
+ method public static androidx.lifecycle.Lifecycle.Event? downFrom(androidx.lifecycle.Lifecycle.State);
+ method public static androidx.lifecycle.Lifecycle.Event? downTo(androidx.lifecycle.Lifecycle.State);
+ method public androidx.lifecycle.Lifecycle.State getTargetState();
+ method public static androidx.lifecycle.Lifecycle.Event? upFrom(androidx.lifecycle.Lifecycle.State);
+ method public static androidx.lifecycle.Lifecycle.Event? upTo(androidx.lifecycle.Lifecycle.State);
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_ANY;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_CREATE;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_DESTROY;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_PAUSE;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_RESUME;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_START;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_STOP;
+ }
+
+ public enum Lifecycle.State {
+ method public boolean isAtLeast(androidx.lifecycle.Lifecycle.State);
+ enum_constant public static final androidx.lifecycle.Lifecycle.State CREATED;
+ enum_constant public static final androidx.lifecycle.Lifecycle.State DESTROYED;
+ enum_constant public static final androidx.lifecycle.Lifecycle.State INITIALIZED;
+ enum_constant public static final androidx.lifecycle.Lifecycle.State RESUMED;
+ enum_constant public static final androidx.lifecycle.Lifecycle.State STARTED;
+ }
+
+ public interface LifecycleEventObserver extends androidx.lifecycle.LifecycleObserver {
+ method public void onStateChanged(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.Event);
+ }
+
+ public interface LifecycleObserver {
+ }
+
+ public interface LifecycleOwner {
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ }
+
+ @Deprecated @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) public @interface OnLifecycleEvent {
+ method @Deprecated public abstract androidx.lifecycle.Lifecycle.Event! value();
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-common/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-common/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..1e1ed43
--- /dev/null
+++ b/lifecycle/lifecycle-common/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,60 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public interface DefaultLifecycleObserver extends androidx.lifecycle.LifecycleObserver androidx.lifecycle.LifecycleObserver {
+ method public default void onCreate(androidx.lifecycle.LifecycleOwner);
+ method public default void onDestroy(androidx.lifecycle.LifecycleOwner);
+ method public default void onPause(androidx.lifecycle.LifecycleOwner);
+ method public default void onResume(androidx.lifecycle.LifecycleOwner);
+ method public default void onStart(androidx.lifecycle.LifecycleOwner);
+ method public default void onStop(androidx.lifecycle.LifecycleOwner);
+ }
+
+ public abstract class Lifecycle {
+ ctor public Lifecycle();
+ method @MainThread public abstract void addObserver(androidx.lifecycle.LifecycleObserver);
+ method @MainThread public abstract androidx.lifecycle.Lifecycle.State getCurrentState();
+ method @MainThread public abstract void removeObserver(androidx.lifecycle.LifecycleObserver);
+ }
+
+ public enum Lifecycle.Event {
+ method public static androidx.lifecycle.Lifecycle.Event? downFrom(androidx.lifecycle.Lifecycle.State);
+ method public static androidx.lifecycle.Lifecycle.Event? downTo(androidx.lifecycle.Lifecycle.State);
+ method public androidx.lifecycle.Lifecycle.State getTargetState();
+ method public static androidx.lifecycle.Lifecycle.Event? upFrom(androidx.lifecycle.Lifecycle.State);
+ method public static androidx.lifecycle.Lifecycle.Event? upTo(androidx.lifecycle.Lifecycle.State);
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_ANY;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_CREATE;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_DESTROY;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_PAUSE;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_RESUME;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_START;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_STOP;
+ }
+
+ public enum Lifecycle.State {
+ method public boolean isAtLeast(androidx.lifecycle.Lifecycle.State);
+ enum_constant public static final androidx.lifecycle.Lifecycle.State CREATED;
+ enum_constant public static final androidx.lifecycle.Lifecycle.State DESTROYED;
+ enum_constant public static final androidx.lifecycle.Lifecycle.State INITIALIZED;
+ enum_constant public static final androidx.lifecycle.Lifecycle.State RESUMED;
+ enum_constant public static final androidx.lifecycle.Lifecycle.State STARTED;
+ }
+
+ public interface LifecycleEventObserver extends androidx.lifecycle.LifecycleObserver {
+ method public void onStateChanged(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.Event);
+ }
+
+ public interface LifecycleObserver {
+ }
+
+ public interface LifecycleOwner {
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ }
+
+ @Deprecated @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) public @interface OnLifecycleEvent {
+ method @Deprecated public abstract androidx.lifecycle.Lifecycle.Event! value();
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-common/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-common/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..c09d138
--- /dev/null
+++ b/lifecycle/lifecycle-common/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,76 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public interface DefaultLifecycleObserver extends androidx.lifecycle.LifecycleObserver androidx.lifecycle.LifecycleObserver {
+ method public default void onCreate(androidx.lifecycle.LifecycleOwner);
+ method public default void onDestroy(androidx.lifecycle.LifecycleOwner);
+ method public default void onPause(androidx.lifecycle.LifecycleOwner);
+ method public default void onResume(androidx.lifecycle.LifecycleOwner);
+ method public default void onStart(androidx.lifecycle.LifecycleOwner);
+ method public default void onStop(androidx.lifecycle.LifecycleOwner);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface GeneratedAdapter {
+ method public void callMethods(androidx.lifecycle.LifecycleOwner!, androidx.lifecycle.Lifecycle.Event!, boolean, androidx.lifecycle.MethodCallsLogger!);
+ }
+
+ @Deprecated @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public interface GenericLifecycleObserver extends androidx.lifecycle.LifecycleEventObserver {
+ }
+
+ public abstract class Lifecycle {
+ ctor public Lifecycle();
+ method @MainThread public abstract void addObserver(androidx.lifecycle.LifecycleObserver);
+ method @MainThread public abstract androidx.lifecycle.Lifecycle.State getCurrentState();
+ method @MainThread public abstract void removeObserver(androidx.lifecycle.LifecycleObserver);
+ }
+
+ public enum Lifecycle.Event {
+ method public static androidx.lifecycle.Lifecycle.Event? downFrom(androidx.lifecycle.Lifecycle.State);
+ method public static androidx.lifecycle.Lifecycle.Event? downTo(androidx.lifecycle.Lifecycle.State);
+ method public androidx.lifecycle.Lifecycle.State getTargetState();
+ method public static androidx.lifecycle.Lifecycle.Event? upFrom(androidx.lifecycle.Lifecycle.State);
+ method public static androidx.lifecycle.Lifecycle.Event? upTo(androidx.lifecycle.Lifecycle.State);
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_ANY;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_CREATE;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_DESTROY;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_PAUSE;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_RESUME;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_START;
+ enum_constant public static final androidx.lifecycle.Lifecycle.Event ON_STOP;
+ }
+
+ public enum Lifecycle.State {
+ method public boolean isAtLeast(androidx.lifecycle.Lifecycle.State);
+ enum_constant public static final androidx.lifecycle.Lifecycle.State CREATED;
+ enum_constant public static final androidx.lifecycle.Lifecycle.State DESTROYED;
+ enum_constant public static final androidx.lifecycle.Lifecycle.State INITIALIZED;
+ enum_constant public static final androidx.lifecycle.Lifecycle.State RESUMED;
+ enum_constant public static final androidx.lifecycle.Lifecycle.State STARTED;
+ }
+
+ public interface LifecycleEventObserver extends androidx.lifecycle.LifecycleObserver {
+ method public void onStateChanged(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.Event);
+ }
+
+ public interface LifecycleObserver {
+ }
+
+ public interface LifecycleOwner {
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class Lifecycling {
+ method public static String! getAdapterName(String!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class MethodCallsLogger {
+ ctor public MethodCallsLogger();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public boolean approveCall(String!, int);
+ }
+
+ @Deprecated @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) public @interface OnLifecycleEvent {
+ method @Deprecated public abstract androidx.lifecycle.Lifecycle.Event! value();
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-extensions/api/2.5.0-beta02.txt b/lifecycle/lifecycle-extensions/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..88798d8
--- /dev/null
+++ b/lifecycle/lifecycle-extensions/api/2.5.0-beta02.txt
@@ -0,0 +1,22 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ @Deprecated public class ViewModelProviders {
+ ctor @Deprecated public ViewModelProviders();
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.Fragment);
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.FragmentActivity);
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.Fragment, androidx.lifecycle.ViewModelProvider.Factory?);
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.FragmentActivity, androidx.lifecycle.ViewModelProvider.Factory?);
+ }
+
+ @Deprecated public static class ViewModelProviders.DefaultFactory extends androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory {
+ ctor @Deprecated public ViewModelProviders.DefaultFactory(android.app.Application);
+ }
+
+ @Deprecated public class ViewModelStores {
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelStore of(androidx.fragment.app.FragmentActivity);
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelStore of(androidx.fragment.app.Fragment);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-extensions/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-extensions/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..88798d8
--- /dev/null
+++ b/lifecycle/lifecycle-extensions/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,22 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ @Deprecated public class ViewModelProviders {
+ ctor @Deprecated public ViewModelProviders();
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.Fragment);
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.FragmentActivity);
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.Fragment, androidx.lifecycle.ViewModelProvider.Factory?);
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.FragmentActivity, androidx.lifecycle.ViewModelProvider.Factory?);
+ }
+
+ @Deprecated public static class ViewModelProviders.DefaultFactory extends androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory {
+ ctor @Deprecated public ViewModelProviders.DefaultFactory(android.app.Application);
+ }
+
+ @Deprecated public class ViewModelStores {
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelStore of(androidx.fragment.app.FragmentActivity);
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelStore of(androidx.fragment.app.Fragment);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-extensions/api/res-2.5.0-beta02.txt b/lifecycle/lifecycle-extensions/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lifecycle/lifecycle-extensions/api/res-2.5.0-beta02.txt
diff --git a/lifecycle/lifecycle-extensions/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-extensions/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..88798d8
--- /dev/null
+++ b/lifecycle/lifecycle-extensions/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,22 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ @Deprecated public class ViewModelProviders {
+ ctor @Deprecated public ViewModelProviders();
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.Fragment);
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.FragmentActivity);
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.Fragment, androidx.lifecycle.ViewModelProvider.Factory?);
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelProvider of(androidx.fragment.app.FragmentActivity, androidx.lifecycle.ViewModelProvider.Factory?);
+ }
+
+ @Deprecated public static class ViewModelProviders.DefaultFactory extends androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory {
+ ctor @Deprecated public ViewModelProviders.DefaultFactory(android.app.Application);
+ }
+
+ @Deprecated public class ViewModelStores {
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelStore of(androidx.fragment.app.FragmentActivity);
+ method @Deprecated @MainThread public static androidx.lifecycle.ViewModelStore of(androidx.fragment.app.Fragment);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-livedata-core-ktx/api/2.5.0-beta02.txt b/lifecycle/lifecycle-livedata-core-ktx/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..daac648
--- /dev/null
+++ b/lifecycle/lifecycle-livedata-core-ktx/api/2.5.0-beta02.txt
@@ -0,0 +1,9 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class LiveDataKt {
+ method @Deprecated @MainThread public static inline <T> androidx.lifecycle.Observer<T> observe(androidx.lifecycle.LiveData<T>, androidx.lifecycle.LifecycleOwner owner, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> onChanged);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-livedata-core-ktx/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-livedata-core-ktx/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..daac648
--- /dev/null
+++ b/lifecycle/lifecycle-livedata-core-ktx/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,9 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class LiveDataKt {
+ method @Deprecated @MainThread public static inline <T> androidx.lifecycle.Observer<T> observe(androidx.lifecycle.LiveData<T>, androidx.lifecycle.LifecycleOwner owner, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> onChanged);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-livedata-core-ktx/api/res-2.5.0-beta02.txt b/lifecycle/lifecycle-livedata-core-ktx/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lifecycle/lifecycle-livedata-core-ktx/api/res-2.5.0-beta02.txt
diff --git a/lifecycle/lifecycle-livedata-core-ktx/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-livedata-core-ktx/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..daac648
--- /dev/null
+++ b/lifecycle/lifecycle-livedata-core-ktx/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,9 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class LiveDataKt {
+ method @Deprecated @MainThread public static inline <T> androidx.lifecycle.Observer<T> observe(androidx.lifecycle.LiveData<T>, androidx.lifecycle.LifecycleOwner owner, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> onChanged);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-livedata-core/api/2.5.0-beta02.txt b/lifecycle/lifecycle-livedata-core/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..1e8b9bc
--- /dev/null
+++ b/lifecycle/lifecycle-livedata-core/api/2.5.0-beta02.txt
@@ -0,0 +1,32 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public abstract class LiveData<T> {
+ ctor public LiveData(T!);
+ ctor public LiveData();
+ method public T? getValue();
+ method public boolean hasActiveObservers();
+ method public boolean hasObservers();
+ method @MainThread public void observe(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Observer<? super T>);
+ method @MainThread public void observeForever(androidx.lifecycle.Observer<? super T>);
+ method protected void onActive();
+ method protected void onInactive();
+ method protected void postValue(T!);
+ method @MainThread public void removeObserver(androidx.lifecycle.Observer<? super T>);
+ method @MainThread public void removeObservers(androidx.lifecycle.LifecycleOwner);
+ method @MainThread protected void setValue(T!);
+ }
+
+ public class MutableLiveData<T> extends androidx.lifecycle.LiveData<T> {
+ ctor public MutableLiveData(T!);
+ ctor public MutableLiveData();
+ method public void postValue(T!);
+ method public void setValue(T!);
+ }
+
+ public interface Observer<T> {
+ method public void onChanged(T!);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-livedata-core/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-livedata-core/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..1e8b9bc
--- /dev/null
+++ b/lifecycle/lifecycle-livedata-core/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,32 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public abstract class LiveData<T> {
+ ctor public LiveData(T!);
+ ctor public LiveData();
+ method public T? getValue();
+ method public boolean hasActiveObservers();
+ method public boolean hasObservers();
+ method @MainThread public void observe(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Observer<? super T>);
+ method @MainThread public void observeForever(androidx.lifecycle.Observer<? super T>);
+ method protected void onActive();
+ method protected void onInactive();
+ method protected void postValue(T!);
+ method @MainThread public void removeObserver(androidx.lifecycle.Observer<? super T>);
+ method @MainThread public void removeObservers(androidx.lifecycle.LifecycleOwner);
+ method @MainThread protected void setValue(T!);
+ }
+
+ public class MutableLiveData<T> extends androidx.lifecycle.LiveData<T> {
+ ctor public MutableLiveData(T!);
+ ctor public MutableLiveData();
+ method public void postValue(T!);
+ method public void setValue(T!);
+ }
+
+ public interface Observer<T> {
+ method public void onChanged(T!);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-livedata-core/api/res-2.5.0-beta02.txt b/lifecycle/lifecycle-livedata-core/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lifecycle/lifecycle-livedata-core/api/res-2.5.0-beta02.txt
diff --git a/lifecycle/lifecycle-livedata-core/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-livedata-core/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..1e8b9bc
--- /dev/null
+++ b/lifecycle/lifecycle-livedata-core/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,32 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public abstract class LiveData<T> {
+ ctor public LiveData(T!);
+ ctor public LiveData();
+ method public T? getValue();
+ method public boolean hasActiveObservers();
+ method public boolean hasObservers();
+ method @MainThread public void observe(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Observer<? super T>);
+ method @MainThread public void observeForever(androidx.lifecycle.Observer<? super T>);
+ method protected void onActive();
+ method protected void onInactive();
+ method protected void postValue(T!);
+ method @MainThread public void removeObserver(androidx.lifecycle.Observer<? super T>);
+ method @MainThread public void removeObservers(androidx.lifecycle.LifecycleOwner);
+ method @MainThread protected void setValue(T!);
+ }
+
+ public class MutableLiveData<T> extends androidx.lifecycle.LiveData<T> {
+ ctor public MutableLiveData(T!);
+ ctor public MutableLiveData();
+ method public void postValue(T!);
+ method public void setValue(T!);
+ }
+
+ public interface Observer<T> {
+ method public void onChanged(T!);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-livedata-ktx/api/2.5.0-beta02.txt b/lifecycle/lifecycle-livedata-ktx/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..7bf189f
--- /dev/null
+++ b/lifecycle/lifecycle-livedata-ktx/api/2.5.0-beta02.txt
@@ -0,0 +1,31 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class CoroutineLiveDataKt {
+ method public static <T> androidx.lifecycle.LiveData<T> liveData(optional kotlin.coroutines.CoroutineContext context, optional long timeoutInMs, kotlin.jvm.functions.Function2<? super androidx.lifecycle.LiveDataScope<T>,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+ method @RequiresApi(android.os.Build.VERSION_CODES.O) public static <T> androidx.lifecycle.LiveData<T> liveData(optional kotlin.coroutines.CoroutineContext context, java.time.Duration timeout, kotlin.jvm.functions.Function2<? super androidx.lifecycle.LiveDataScope<T>,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+ }
+
+ public final class FlowLiveDataConversions {
+ method public static <T> kotlinx.coroutines.flow.Flow<T> asFlow(androidx.lifecycle.LiveData<T>);
+ method public static <T> androidx.lifecycle.LiveData<T> asLiveData(kotlinx.coroutines.flow.Flow<? extends T>, optional kotlin.coroutines.CoroutineContext context, optional long timeoutInMs);
+ method public static <T> androidx.lifecycle.LiveData<T> asLiveData(kotlinx.coroutines.flow.Flow<? extends T>, optional kotlin.coroutines.CoroutineContext context);
+ method public static <T> androidx.lifecycle.LiveData<T> asLiveData(kotlinx.coroutines.flow.Flow<? extends T>);
+ method @RequiresApi(android.os.Build.VERSION_CODES.O) public static <T> androidx.lifecycle.LiveData<T> asLiveData(kotlinx.coroutines.flow.Flow<? extends T>, optional kotlin.coroutines.CoroutineContext context, java.time.Duration timeout);
+ }
+
+ public interface LiveDataScope<T> {
+ method public suspend Object? emit(T? value, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method public suspend Object? emitSource(androidx.lifecycle.LiveData<T> source, kotlin.coroutines.Continuation<? super kotlinx.coroutines.DisposableHandle>);
+ method public T? getLatestValue();
+ property public abstract T? latestValue;
+ }
+
+ public final class TransformationsKt {
+ method @CheckResult public static inline <X> androidx.lifecycle.LiveData<X> distinctUntilChanged(androidx.lifecycle.LiveData<X>);
+ method @CheckResult public static inline <X, Y> androidx.lifecycle.LiveData<Y> map(androidx.lifecycle.LiveData<X>, kotlin.jvm.functions.Function1<? super X,? extends Y> transform);
+ method @CheckResult public static inline <X, Y> androidx.lifecycle.LiveData<Y> switchMap(androidx.lifecycle.LiveData<X>, kotlin.jvm.functions.Function1<? super X,? extends androidx.lifecycle.LiveData<Y>> transform);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-livedata-ktx/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-livedata-ktx/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..b542f27
--- /dev/null
+++ b/lifecycle/lifecycle-livedata-ktx/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,31 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class CoroutineLiveDataKt {
+ method public static <T> androidx.lifecycle.LiveData<T> liveData(optional kotlin.coroutines.CoroutineContext context, optional long timeoutInMs, @kotlin.BuilderInference kotlin.jvm.functions.Function2<? super androidx.lifecycle.LiveDataScope<T>,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+ method @RequiresApi(android.os.Build.VERSION_CODES.O) public static <T> androidx.lifecycle.LiveData<T> liveData(optional kotlin.coroutines.CoroutineContext context, java.time.Duration timeout, @kotlin.BuilderInference kotlin.jvm.functions.Function2<? super androidx.lifecycle.LiveDataScope<T>,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+ }
+
+ public final class FlowLiveDataConversions {
+ method public static <T> kotlinx.coroutines.flow.Flow<T> asFlow(androidx.lifecycle.LiveData<T>);
+ method public static <T> androidx.lifecycle.LiveData<T> asLiveData(kotlinx.coroutines.flow.Flow<? extends T>, optional kotlin.coroutines.CoroutineContext context, optional long timeoutInMs);
+ method public static <T> androidx.lifecycle.LiveData<T> asLiveData(kotlinx.coroutines.flow.Flow<? extends T>, optional kotlin.coroutines.CoroutineContext context);
+ method public static <T> androidx.lifecycle.LiveData<T> asLiveData(kotlinx.coroutines.flow.Flow<? extends T>);
+ method @RequiresApi(android.os.Build.VERSION_CODES.O) public static <T> androidx.lifecycle.LiveData<T> asLiveData(kotlinx.coroutines.flow.Flow<? extends T>, optional kotlin.coroutines.CoroutineContext context, java.time.Duration timeout);
+ }
+
+ public interface LiveDataScope<T> {
+ method public suspend Object? emit(T? value, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method public suspend Object? emitSource(androidx.lifecycle.LiveData<T> source, kotlin.coroutines.Continuation<? super kotlinx.coroutines.DisposableHandle>);
+ method public T? getLatestValue();
+ property public abstract T? latestValue;
+ }
+
+ public final class TransformationsKt {
+ method @CheckResult public static inline <X> androidx.lifecycle.LiveData<X> distinctUntilChanged(androidx.lifecycle.LiveData<X>);
+ method @CheckResult public static inline <X, Y> androidx.lifecycle.LiveData<Y> map(androidx.lifecycle.LiveData<X>, kotlin.jvm.functions.Function1<? super X,? extends Y> transform);
+ method @CheckResult public static inline <X, Y> androidx.lifecycle.LiveData<Y> switchMap(androidx.lifecycle.LiveData<X>, kotlin.jvm.functions.Function1<? super X,? extends androidx.lifecycle.LiveData<Y>> transform);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-livedata-ktx/api/res-2.5.0-beta02.txt b/lifecycle/lifecycle-livedata-ktx/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lifecycle/lifecycle-livedata-ktx/api/res-2.5.0-beta02.txt
diff --git a/lifecycle/lifecycle-livedata-ktx/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-livedata-ktx/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..7bf189f
--- /dev/null
+++ b/lifecycle/lifecycle-livedata-ktx/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,31 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class CoroutineLiveDataKt {
+ method public static <T> androidx.lifecycle.LiveData<T> liveData(optional kotlin.coroutines.CoroutineContext context, optional long timeoutInMs, kotlin.jvm.functions.Function2<? super androidx.lifecycle.LiveDataScope<T>,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+ method @RequiresApi(android.os.Build.VERSION_CODES.O) public static <T> androidx.lifecycle.LiveData<T> liveData(optional kotlin.coroutines.CoroutineContext context, java.time.Duration timeout, kotlin.jvm.functions.Function2<? super androidx.lifecycle.LiveDataScope<T>,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+ }
+
+ public final class FlowLiveDataConversions {
+ method public static <T> kotlinx.coroutines.flow.Flow<T> asFlow(androidx.lifecycle.LiveData<T>);
+ method public static <T> androidx.lifecycle.LiveData<T> asLiveData(kotlinx.coroutines.flow.Flow<? extends T>, optional kotlin.coroutines.CoroutineContext context, optional long timeoutInMs);
+ method public static <T> androidx.lifecycle.LiveData<T> asLiveData(kotlinx.coroutines.flow.Flow<? extends T>, optional kotlin.coroutines.CoroutineContext context);
+ method public static <T> androidx.lifecycle.LiveData<T> asLiveData(kotlinx.coroutines.flow.Flow<? extends T>);
+ method @RequiresApi(android.os.Build.VERSION_CODES.O) public static <T> androidx.lifecycle.LiveData<T> asLiveData(kotlinx.coroutines.flow.Flow<? extends T>, optional kotlin.coroutines.CoroutineContext context, java.time.Duration timeout);
+ }
+
+ public interface LiveDataScope<T> {
+ method public suspend Object? emit(T? value, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method public suspend Object? emitSource(androidx.lifecycle.LiveData<T> source, kotlin.coroutines.Continuation<? super kotlinx.coroutines.DisposableHandle>);
+ method public T? getLatestValue();
+ property public abstract T? latestValue;
+ }
+
+ public final class TransformationsKt {
+ method @CheckResult public static inline <X> androidx.lifecycle.LiveData<X> distinctUntilChanged(androidx.lifecycle.LiveData<X>);
+ method @CheckResult public static inline <X, Y> androidx.lifecycle.LiveData<Y> map(androidx.lifecycle.LiveData<X>, kotlin.jvm.functions.Function1<? super X,? extends Y> transform);
+ method @CheckResult public static inline <X, Y> androidx.lifecycle.LiveData<Y> switchMap(androidx.lifecycle.LiveData<X>, kotlin.jvm.functions.Function1<? super X,? extends androidx.lifecycle.LiveData<Y>> transform);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-livedata/api/2.5.0-beta02.txt b/lifecycle/lifecycle-livedata/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..e3cda57
--- /dev/null
+++ b/lifecycle/lifecycle-livedata/api/2.5.0-beta02.txt
@@ -0,0 +1,17 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public class MediatorLiveData<T> extends androidx.lifecycle.MutableLiveData<T> {
+ ctor public MediatorLiveData();
+ method @MainThread public <S> void addSource(androidx.lifecycle.LiveData<S!>, androidx.lifecycle.Observer<? super S>);
+ method @MainThread public <S> void removeSource(androidx.lifecycle.LiveData<S!>);
+ }
+
+ public class Transformations {
+ method @MainThread public static <X> androidx.lifecycle.LiveData<X!> distinctUntilChanged(androidx.lifecycle.LiveData<X!>);
+ method @MainThread public static <X, Y> androidx.lifecycle.LiveData<Y!> map(androidx.lifecycle.LiveData<X!>, androidx.arch.core.util.Function<X!,Y!>);
+ method @MainThread public static <X, Y> androidx.lifecycle.LiveData<Y!> switchMap(androidx.lifecycle.LiveData<X!>, androidx.arch.core.util.Function<X!,androidx.lifecycle.LiveData<Y!>!>);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-livedata/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-livedata/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..e3cda57
--- /dev/null
+++ b/lifecycle/lifecycle-livedata/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,17 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public class MediatorLiveData<T> extends androidx.lifecycle.MutableLiveData<T> {
+ ctor public MediatorLiveData();
+ method @MainThread public <S> void addSource(androidx.lifecycle.LiveData<S!>, androidx.lifecycle.Observer<? super S>);
+ method @MainThread public <S> void removeSource(androidx.lifecycle.LiveData<S!>);
+ }
+
+ public class Transformations {
+ method @MainThread public static <X> androidx.lifecycle.LiveData<X!> distinctUntilChanged(androidx.lifecycle.LiveData<X!>);
+ method @MainThread public static <X, Y> androidx.lifecycle.LiveData<Y!> map(androidx.lifecycle.LiveData<X!>, androidx.arch.core.util.Function<X!,Y!>);
+ method @MainThread public static <X, Y> androidx.lifecycle.LiveData<Y!> switchMap(androidx.lifecycle.LiveData<X!>, androidx.arch.core.util.Function<X!,androidx.lifecycle.LiveData<Y!>!>);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-livedata/api/res-2.5.0-beta02.txt b/lifecycle/lifecycle-livedata/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lifecycle/lifecycle-livedata/api/res-2.5.0-beta02.txt
diff --git a/lifecycle/lifecycle-livedata/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-livedata/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..ea6cc5e
--- /dev/null
+++ b/lifecycle/lifecycle-livedata/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,25 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public abstract class ComputableLiveData<T> {
+ ctor public ComputableLiveData();
+ ctor public ComputableLiveData(java.util.concurrent.Executor);
+ method @WorkerThread protected abstract T! compute();
+ method public androidx.lifecycle.LiveData<T!> getLiveData();
+ method public void invalidate();
+ }
+
+ public class MediatorLiveData<T> extends androidx.lifecycle.MutableLiveData<T> {
+ ctor public MediatorLiveData();
+ method @MainThread public <S> void addSource(androidx.lifecycle.LiveData<S!>, androidx.lifecycle.Observer<? super S>);
+ method @MainThread public <S> void removeSource(androidx.lifecycle.LiveData<S!>);
+ }
+
+ public class Transformations {
+ method @MainThread public static <X> androidx.lifecycle.LiveData<X!> distinctUntilChanged(androidx.lifecycle.LiveData<X!>);
+ method @MainThread public static <X, Y> androidx.lifecycle.LiveData<Y!> map(androidx.lifecycle.LiveData<X!>, androidx.arch.core.util.Function<X!,Y!>);
+ method @MainThread public static <X, Y> androidx.lifecycle.LiveData<Y!> switchMap(androidx.lifecycle.LiveData<X!>, androidx.arch.core.util.Function<X!,androidx.lifecycle.LiveData<Y!>!>);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-process/api/2.5.0-beta02.txt b/lifecycle/lifecycle-process/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..429b2b2
--- /dev/null
+++ b/lifecycle/lifecycle-process/api/2.5.0-beta02.txt
@@ -0,0 +1,16 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class ProcessLifecycleInitializer implements androidx.startup.Initializer<androidx.lifecycle.LifecycleOwner> {
+ ctor public ProcessLifecycleInitializer();
+ method public androidx.lifecycle.LifecycleOwner create(android.content.Context);
+ method public java.util.List<java.lang.Class<? extends androidx.startup.Initializer<?>>!> dependencies();
+ }
+
+ public class ProcessLifecycleOwner implements androidx.lifecycle.LifecycleOwner {
+ method public static androidx.lifecycle.LifecycleOwner get();
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-process/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-process/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..429b2b2
--- /dev/null
+++ b/lifecycle/lifecycle-process/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,16 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class ProcessLifecycleInitializer implements androidx.startup.Initializer<androidx.lifecycle.LifecycleOwner> {
+ ctor public ProcessLifecycleInitializer();
+ method public androidx.lifecycle.LifecycleOwner create(android.content.Context);
+ method public java.util.List<java.lang.Class<? extends androidx.startup.Initializer<?>>!> dependencies();
+ }
+
+ public class ProcessLifecycleOwner implements androidx.lifecycle.LifecycleOwner {
+ method public static androidx.lifecycle.LifecycleOwner get();
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-process/api/res-2.5.0-beta02.txt b/lifecycle/lifecycle-process/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lifecycle/lifecycle-process/api/res-2.5.0-beta02.txt
diff --git a/lifecycle/lifecycle-process/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-process/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..429b2b2
--- /dev/null
+++ b/lifecycle/lifecycle-process/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,16 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class ProcessLifecycleInitializer implements androidx.startup.Initializer<androidx.lifecycle.LifecycleOwner> {
+ ctor public ProcessLifecycleInitializer();
+ method public androidx.lifecycle.LifecycleOwner create(android.content.Context);
+ method public java.util.List<java.lang.Class<? extends androidx.startup.Initializer<?>>!> dependencies();
+ }
+
+ public class ProcessLifecycleOwner implements androidx.lifecycle.LifecycleOwner {
+ method public static androidx.lifecycle.LifecycleOwner get();
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-reactivestreams-ktx/api/2.5.0-beta02.txt b/lifecycle/lifecycle-reactivestreams-ktx/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..6cb0d11
--- /dev/null
+++ b/lifecycle/lifecycle-reactivestreams-ktx/api/2.5.0-beta02.txt
@@ -0,0 +1,10 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class LiveDataReactiveSteamsKt {
+ method public static inline <T> androidx.lifecycle.LiveData<T> toLiveData(org.reactivestreams.Publisher<T>);
+ method public static inline <T> org.reactivestreams.Publisher<T> toPublisher(androidx.lifecycle.LiveData<T>, androidx.lifecycle.LifecycleOwner lifecycle);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-reactivestreams-ktx/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-reactivestreams-ktx/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..6cb0d11
--- /dev/null
+++ b/lifecycle/lifecycle-reactivestreams-ktx/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,10 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class LiveDataReactiveSteamsKt {
+ method public static inline <T> androidx.lifecycle.LiveData<T> toLiveData(org.reactivestreams.Publisher<T>);
+ method public static inline <T> org.reactivestreams.Publisher<T> toPublisher(androidx.lifecycle.LiveData<T>, androidx.lifecycle.LifecycleOwner lifecycle);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-reactivestreams-ktx/api/res-2.5.0-beta02.txt b/lifecycle/lifecycle-reactivestreams-ktx/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lifecycle/lifecycle-reactivestreams-ktx/api/res-2.5.0-beta02.txt
diff --git a/lifecycle/lifecycle-reactivestreams-ktx/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-reactivestreams-ktx/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..6cb0d11
--- /dev/null
+++ b/lifecycle/lifecycle-reactivestreams-ktx/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,10 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class LiveDataReactiveSteamsKt {
+ method public static inline <T> androidx.lifecycle.LiveData<T> toLiveData(org.reactivestreams.Publisher<T>);
+ method public static inline <T> org.reactivestreams.Publisher<T> toPublisher(androidx.lifecycle.LiveData<T>, androidx.lifecycle.LifecycleOwner lifecycle);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-reactivestreams/api/2.5.0-beta02.txt b/lifecycle/lifecycle-reactivestreams/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..2cf698a
--- /dev/null
+++ b/lifecycle/lifecycle-reactivestreams/api/2.5.0-beta02.txt
@@ -0,0 +1,10 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class LiveDataReactiveStreams {
+ method public static <T> androidx.lifecycle.LiveData<T!> fromPublisher(org.reactivestreams.Publisher<T!>);
+ method public static <T> org.reactivestreams.Publisher<T!> toPublisher(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.LiveData<T!>);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-reactivestreams/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-reactivestreams/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..2cf698a
--- /dev/null
+++ b/lifecycle/lifecycle-reactivestreams/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,10 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class LiveDataReactiveStreams {
+ method public static <T> androidx.lifecycle.LiveData<T!> fromPublisher(org.reactivestreams.Publisher<T!>);
+ method public static <T> org.reactivestreams.Publisher<T!> toPublisher(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.LiveData<T!>);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-reactivestreams/api/res-2.5.0-beta02.txt b/lifecycle/lifecycle-reactivestreams/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lifecycle/lifecycle-reactivestreams/api/res-2.5.0-beta02.txt
diff --git a/lifecycle/lifecycle-reactivestreams/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-reactivestreams/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..2cf698a
--- /dev/null
+++ b/lifecycle/lifecycle-reactivestreams/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,10 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class LiveDataReactiveStreams {
+ method public static <T> androidx.lifecycle.LiveData<T!> fromPublisher(org.reactivestreams.Publisher<T!>);
+ method public static <T> org.reactivestreams.Publisher<T!> toPublisher(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.LiveData<T!>);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-runtime-ktx/api/2.5.0-beta02.txt b/lifecycle/lifecycle-runtime-ktx/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..46720fe
--- /dev/null
+++ b/lifecycle/lifecycle-runtime-ktx/api/2.5.0-beta02.txt
@@ -0,0 +1,57 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class FlowExtKt {
+ method public static <T> kotlinx.coroutines.flow.Flow<T> flowWithLifecycle(kotlinx.coroutines.flow.Flow<? extends T>, androidx.lifecycle.Lifecycle lifecycle, optional androidx.lifecycle.Lifecycle.State minActiveState);
+ }
+
+ public abstract class LifecycleCoroutineScope implements kotlinx.coroutines.CoroutineScope {
+ method public final kotlinx.coroutines.Job launchWhenCreated(kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+ method public final kotlinx.coroutines.Job launchWhenResumed(kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+ method public final kotlinx.coroutines.Job launchWhenStarted(kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+ }
+
+ public final class LifecycleDestroyedException extends java.util.concurrent.CancellationException {
+ ctor public LifecycleDestroyedException();
+ }
+
+ public final class LifecycleKt {
+ method public static androidx.lifecycle.LifecycleCoroutineScope getCoroutineScope(androidx.lifecycle.Lifecycle);
+ }
+
+ public final class LifecycleOwnerKt {
+ method public static androidx.lifecycle.LifecycleCoroutineScope getLifecycleScope(androidx.lifecycle.LifecycleOwner);
+ }
+
+ public final class PausingDispatcherKt {
+ method public static suspend <T> Object? whenCreated(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenCreated(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenResumed(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenResumed(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenStarted(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenStarted(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenStateAtLeast(androidx.lifecycle.Lifecycle, androidx.lifecycle.Lifecycle.State minState, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ }
+
+ public final class RepeatOnLifecycleKt {
+ method public static suspend Object? repeatOnLifecycle(androidx.lifecycle.Lifecycle, androidx.lifecycle.Lifecycle.State state, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method public static suspend Object? repeatOnLifecycle(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State state, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ }
+
+ public final class ViewKt {
+ method public static androidx.lifecycle.LifecycleOwner? findViewTreeLifecycleOwner(android.view.View);
+ }
+
+ public final class WithLifecycleStateKt {
+ method public static suspend inline <R> Object? withCreated(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withCreated(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withResumed(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withResumed(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withStarted(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withStarted(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withStateAtLeast(androidx.lifecycle.Lifecycle, androidx.lifecycle.Lifecycle.State state, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withStateAtLeast(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State state, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-runtime-ktx/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-runtime-ktx/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..46720fe
--- /dev/null
+++ b/lifecycle/lifecycle-runtime-ktx/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,57 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class FlowExtKt {
+ method public static <T> kotlinx.coroutines.flow.Flow<T> flowWithLifecycle(kotlinx.coroutines.flow.Flow<? extends T>, androidx.lifecycle.Lifecycle lifecycle, optional androidx.lifecycle.Lifecycle.State minActiveState);
+ }
+
+ public abstract class LifecycleCoroutineScope implements kotlinx.coroutines.CoroutineScope {
+ method public final kotlinx.coroutines.Job launchWhenCreated(kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+ method public final kotlinx.coroutines.Job launchWhenResumed(kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+ method public final kotlinx.coroutines.Job launchWhenStarted(kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+ }
+
+ public final class LifecycleDestroyedException extends java.util.concurrent.CancellationException {
+ ctor public LifecycleDestroyedException();
+ }
+
+ public final class LifecycleKt {
+ method public static androidx.lifecycle.LifecycleCoroutineScope getCoroutineScope(androidx.lifecycle.Lifecycle);
+ }
+
+ public final class LifecycleOwnerKt {
+ method public static androidx.lifecycle.LifecycleCoroutineScope getLifecycleScope(androidx.lifecycle.LifecycleOwner);
+ }
+
+ public final class PausingDispatcherKt {
+ method public static suspend <T> Object? whenCreated(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenCreated(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenResumed(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenResumed(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenStarted(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenStarted(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenStateAtLeast(androidx.lifecycle.Lifecycle, androidx.lifecycle.Lifecycle.State minState, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ }
+
+ public final class RepeatOnLifecycleKt {
+ method public static suspend Object? repeatOnLifecycle(androidx.lifecycle.Lifecycle, androidx.lifecycle.Lifecycle.State state, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method public static suspend Object? repeatOnLifecycle(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State state, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ }
+
+ public final class ViewKt {
+ method public static androidx.lifecycle.LifecycleOwner? findViewTreeLifecycleOwner(android.view.View);
+ }
+
+ public final class WithLifecycleStateKt {
+ method public static suspend inline <R> Object? withCreated(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withCreated(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withResumed(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withResumed(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withStarted(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withStarted(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withStateAtLeast(androidx.lifecycle.Lifecycle, androidx.lifecycle.Lifecycle.State state, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withStateAtLeast(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State state, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-runtime-ktx/api/res-2.5.0-beta02.txt b/lifecycle/lifecycle-runtime-ktx/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lifecycle/lifecycle-runtime-ktx/api/res-2.5.0-beta02.txt
diff --git a/lifecycle/lifecycle-runtime-ktx/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-runtime-ktx/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..28a306d
--- /dev/null
+++ b/lifecycle/lifecycle-runtime-ktx/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,59 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class FlowExtKt {
+ method public static <T> kotlinx.coroutines.flow.Flow<T> flowWithLifecycle(kotlinx.coroutines.flow.Flow<? extends T>, androidx.lifecycle.Lifecycle lifecycle, optional androidx.lifecycle.Lifecycle.State minActiveState);
+ }
+
+ public abstract class LifecycleCoroutineScope implements kotlinx.coroutines.CoroutineScope {
+ method public final kotlinx.coroutines.Job launchWhenCreated(kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+ method public final kotlinx.coroutines.Job launchWhenResumed(kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+ method public final kotlinx.coroutines.Job launchWhenStarted(kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block);
+ }
+
+ public final class LifecycleDestroyedException extends java.util.concurrent.CancellationException {
+ ctor public LifecycleDestroyedException();
+ }
+
+ public final class LifecycleKt {
+ method public static androidx.lifecycle.LifecycleCoroutineScope getCoroutineScope(androidx.lifecycle.Lifecycle);
+ }
+
+ public final class LifecycleOwnerKt {
+ method public static androidx.lifecycle.LifecycleCoroutineScope getLifecycleScope(androidx.lifecycle.LifecycleOwner);
+ }
+
+ public final class PausingDispatcherKt {
+ method public static suspend <T> Object? whenCreated(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenCreated(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenResumed(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenResumed(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenStarted(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenStarted(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ method public static suspend <T> Object? whenStateAtLeast(androidx.lifecycle.Lifecycle, androidx.lifecycle.Lifecycle.State minState, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super T>,?> block, kotlin.coroutines.Continuation<? super T>);
+ }
+
+ public final class RepeatOnLifecycleKt {
+ method public static suspend Object? repeatOnLifecycle(androidx.lifecycle.Lifecycle, androidx.lifecycle.Lifecycle.State state, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method public static suspend Object? repeatOnLifecycle(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State state, kotlin.jvm.functions.Function2<? super kotlinx.coroutines.CoroutineScope,? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> block, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ }
+
+ public final class ViewKt {
+ method public static androidx.lifecycle.LifecycleOwner? findViewTreeLifecycleOwner(android.view.View);
+ }
+
+ public final class WithLifecycleStateKt {
+ method @kotlin.PublishedApi internal static suspend <R> Object? suspendWithStateAtLeastUnchecked(androidx.lifecycle.Lifecycle, androidx.lifecycle.Lifecycle.State state, boolean dispatchNeeded, kotlinx.coroutines.CoroutineDispatcher lifecycleDispatcher, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withCreated(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withCreated(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withResumed(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withResumed(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withStarted(androidx.lifecycle.Lifecycle, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withStarted(androidx.lifecycle.LifecycleOwner, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withStateAtLeast(androidx.lifecycle.Lifecycle, androidx.lifecycle.Lifecycle.State state, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method public static suspend inline <R> Object? withStateAtLeast(androidx.lifecycle.LifecycleOwner, androidx.lifecycle.Lifecycle.State state, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ method @kotlin.PublishedApi internal static suspend inline <R> Object? withStateAtLeastUnchecked(androidx.lifecycle.Lifecycle, androidx.lifecycle.Lifecycle.State state, kotlin.jvm.functions.Function0<? extends R> block, kotlin.coroutines.Continuation<? super R>);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-runtime-testing/api/2.5.0-beta02.txt b/lifecycle/lifecycle-runtime-testing/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..dc2274c
--- /dev/null
+++ b/lifecycle/lifecycle-runtime-testing/api/2.5.0-beta02.txt
@@ -0,0 +1,18 @@
+// Signature format: 4.0
+package androidx.lifecycle.testing {
+
+ public final class TestLifecycleOwner implements androidx.lifecycle.LifecycleOwner {
+ ctor public TestLifecycleOwner(optional androidx.lifecycle.Lifecycle.State initialState, optional kotlinx.coroutines.CoroutineDispatcher coroutineDispatcher);
+ ctor public TestLifecycleOwner(optional androidx.lifecycle.Lifecycle.State initialState);
+ ctor public TestLifecycleOwner();
+ method public androidx.lifecycle.Lifecycle.State getCurrentState();
+ method public androidx.lifecycle.LifecycleRegistry getLifecycle();
+ method public int getObserverCount();
+ method public void handleLifecycleEvent(androidx.lifecycle.Lifecycle.Event event);
+ method public void setCurrentState(androidx.lifecycle.Lifecycle.State);
+ property public final androidx.lifecycle.Lifecycle.State currentState;
+ property public final int observerCount;
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-runtime-testing/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-runtime-testing/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..dc2274c
--- /dev/null
+++ b/lifecycle/lifecycle-runtime-testing/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,18 @@
+// Signature format: 4.0
+package androidx.lifecycle.testing {
+
+ public final class TestLifecycleOwner implements androidx.lifecycle.LifecycleOwner {
+ ctor public TestLifecycleOwner(optional androidx.lifecycle.Lifecycle.State initialState, optional kotlinx.coroutines.CoroutineDispatcher coroutineDispatcher);
+ ctor public TestLifecycleOwner(optional androidx.lifecycle.Lifecycle.State initialState);
+ ctor public TestLifecycleOwner();
+ method public androidx.lifecycle.Lifecycle.State getCurrentState();
+ method public androidx.lifecycle.LifecycleRegistry getLifecycle();
+ method public int getObserverCount();
+ method public void handleLifecycleEvent(androidx.lifecycle.Lifecycle.Event event);
+ method public void setCurrentState(androidx.lifecycle.Lifecycle.State);
+ property public final androidx.lifecycle.Lifecycle.State currentState;
+ property public final int observerCount;
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-runtime-testing/api/res-2.5.0-beta02.txt b/lifecycle/lifecycle-runtime-testing/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lifecycle/lifecycle-runtime-testing/api/res-2.5.0-beta02.txt
diff --git a/lifecycle/lifecycle-runtime-testing/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-runtime-testing/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..dc2274c
--- /dev/null
+++ b/lifecycle/lifecycle-runtime-testing/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,18 @@
+// Signature format: 4.0
+package androidx.lifecycle.testing {
+
+ public final class TestLifecycleOwner implements androidx.lifecycle.LifecycleOwner {
+ ctor public TestLifecycleOwner(optional androidx.lifecycle.Lifecycle.State initialState, optional kotlinx.coroutines.CoroutineDispatcher coroutineDispatcher);
+ ctor public TestLifecycleOwner(optional androidx.lifecycle.Lifecycle.State initialState);
+ ctor public TestLifecycleOwner();
+ method public androidx.lifecycle.Lifecycle.State getCurrentState();
+ method public androidx.lifecycle.LifecycleRegistry getLifecycle();
+ method public int getObserverCount();
+ method public void handleLifecycleEvent(androidx.lifecycle.Lifecycle.Event event);
+ method public void setCurrentState(androidx.lifecycle.Lifecycle.State);
+ property public final androidx.lifecycle.Lifecycle.State currentState;
+ property public final int observerCount;
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-runtime/api/2.5.0-beta02.txt b/lifecycle/lifecycle-runtime/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..5bbe95f
--- /dev/null
+++ b/lifecycle/lifecycle-runtime/api/2.5.0-beta02.txt
@@ -0,0 +1,26 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public class LifecycleRegistry extends androidx.lifecycle.Lifecycle {
+ ctor public LifecycleRegistry(androidx.lifecycle.LifecycleOwner);
+ method public void addObserver(androidx.lifecycle.LifecycleObserver);
+ method @VisibleForTesting public static androidx.lifecycle.LifecycleRegistry createUnsafe(androidx.lifecycle.LifecycleOwner);
+ method public androidx.lifecycle.Lifecycle.State getCurrentState();
+ method public int getObserverCount();
+ method public void handleLifecycleEvent(androidx.lifecycle.Lifecycle.Event);
+ method @Deprecated @MainThread public void markState(androidx.lifecycle.Lifecycle.State);
+ method public void removeObserver(androidx.lifecycle.LifecycleObserver);
+ method @MainThread public void setCurrentState(androidx.lifecycle.Lifecycle.State);
+ }
+
+ @Deprecated public interface LifecycleRegistryOwner extends androidx.lifecycle.LifecycleOwner {
+ method @Deprecated public androidx.lifecycle.LifecycleRegistry getLifecycle();
+ }
+
+ public class ViewTreeLifecycleOwner {
+ method public static androidx.lifecycle.LifecycleOwner? get(android.view.View);
+ method public static void set(android.view.View, androidx.lifecycle.LifecycleOwner?);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-runtime/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-runtime/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..5bbe95f
--- /dev/null
+++ b/lifecycle/lifecycle-runtime/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,26 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public class LifecycleRegistry extends androidx.lifecycle.Lifecycle {
+ ctor public LifecycleRegistry(androidx.lifecycle.LifecycleOwner);
+ method public void addObserver(androidx.lifecycle.LifecycleObserver);
+ method @VisibleForTesting public static androidx.lifecycle.LifecycleRegistry createUnsafe(androidx.lifecycle.LifecycleOwner);
+ method public androidx.lifecycle.Lifecycle.State getCurrentState();
+ method public int getObserverCount();
+ method public void handleLifecycleEvent(androidx.lifecycle.Lifecycle.Event);
+ method @Deprecated @MainThread public void markState(androidx.lifecycle.Lifecycle.State);
+ method public void removeObserver(androidx.lifecycle.LifecycleObserver);
+ method @MainThread public void setCurrentState(androidx.lifecycle.Lifecycle.State);
+ }
+
+ @Deprecated public interface LifecycleRegistryOwner extends androidx.lifecycle.LifecycleOwner {
+ method @Deprecated public androidx.lifecycle.LifecycleRegistry getLifecycle();
+ }
+
+ public class ViewTreeLifecycleOwner {
+ method public static androidx.lifecycle.LifecycleOwner? get(android.view.View);
+ method public static void set(android.view.View, androidx.lifecycle.LifecycleOwner?);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-runtime/api/res-2.5.0-beta02.txt b/lifecycle/lifecycle-runtime/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lifecycle/lifecycle-runtime/api/res-2.5.0-beta02.txt
diff --git a/lifecycle/lifecycle-runtime/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-runtime/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..74af488
--- /dev/null
+++ b/lifecycle/lifecycle-runtime/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,37 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public class LifecycleRegistry extends androidx.lifecycle.Lifecycle {
+ ctor public LifecycleRegistry(androidx.lifecycle.LifecycleOwner);
+ method public void addObserver(androidx.lifecycle.LifecycleObserver);
+ method @VisibleForTesting public static androidx.lifecycle.LifecycleRegistry createUnsafe(androidx.lifecycle.LifecycleOwner);
+ method public androidx.lifecycle.Lifecycle.State getCurrentState();
+ method public int getObserverCount();
+ method public void handleLifecycleEvent(androidx.lifecycle.Lifecycle.Event);
+ method @Deprecated @MainThread public void markState(androidx.lifecycle.Lifecycle.State);
+ method public void removeObserver(androidx.lifecycle.LifecycleObserver);
+ method @MainThread public void setCurrentState(androidx.lifecycle.Lifecycle.State);
+ }
+
+ @Deprecated public interface LifecycleRegistryOwner extends androidx.lifecycle.LifecycleOwner {
+ method @Deprecated public androidx.lifecycle.LifecycleRegistry getLifecycle();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class ReportFragment extends android.app.Fragment {
+ ctor public ReportFragment();
+ method public static void injectIfNeededIn(android.app.Activity!);
+ method public void onActivityCreated(android.os.Bundle!);
+ method public void onDestroy();
+ method public void onPause();
+ method public void onResume();
+ method public void onStart();
+ method public void onStop();
+ }
+
+ public class ViewTreeLifecycleOwner {
+ method public static androidx.lifecycle.LifecycleOwner? get(android.view.View);
+ method public static void set(android.view.View, androidx.lifecycle.LifecycleOwner?);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-service/api/2.5.0-beta02.txt b/lifecycle/lifecycle-service/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..a29040d
--- /dev/null
+++ b/lifecycle/lifecycle-service/api/2.5.0-beta02.txt
@@ -0,0 +1,21 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public class LifecycleService extends android.app.Service implements androidx.lifecycle.LifecycleOwner {
+ ctor public LifecycleService();
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ method @CallSuper public android.os.IBinder? onBind(android.content.Intent);
+ method @CallSuper public void onStart(android.content.Intent?, int);
+ }
+
+ public class ServiceLifecycleDispatcher {
+ ctor public ServiceLifecycleDispatcher(androidx.lifecycle.LifecycleOwner);
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ method public void onServicePreSuperOnBind();
+ method public void onServicePreSuperOnCreate();
+ method public void onServicePreSuperOnDestroy();
+ method public void onServicePreSuperOnStart();
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-service/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-service/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..a29040d
--- /dev/null
+++ b/lifecycle/lifecycle-service/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,21 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public class LifecycleService extends android.app.Service implements androidx.lifecycle.LifecycleOwner {
+ ctor public LifecycleService();
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ method @CallSuper public android.os.IBinder? onBind(android.content.Intent);
+ method @CallSuper public void onStart(android.content.Intent?, int);
+ }
+
+ public class ServiceLifecycleDispatcher {
+ ctor public ServiceLifecycleDispatcher(androidx.lifecycle.LifecycleOwner);
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ method public void onServicePreSuperOnBind();
+ method public void onServicePreSuperOnCreate();
+ method public void onServicePreSuperOnDestroy();
+ method public void onServicePreSuperOnStart();
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-service/api/res-2.5.0-beta02.txt b/lifecycle/lifecycle-service/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lifecycle/lifecycle-service/api/res-2.5.0-beta02.txt
diff --git a/lifecycle/lifecycle-service/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-service/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..a29040d
--- /dev/null
+++ b/lifecycle/lifecycle-service/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,21 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public class LifecycleService extends android.app.Service implements androidx.lifecycle.LifecycleOwner {
+ ctor public LifecycleService();
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ method @CallSuper public android.os.IBinder? onBind(android.content.Intent);
+ method @CallSuper public void onStart(android.content.Intent?, int);
+ }
+
+ public class ServiceLifecycleDispatcher {
+ ctor public ServiceLifecycleDispatcher(androidx.lifecycle.LifecycleOwner);
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ method public void onServicePreSuperOnBind();
+ method public void onServicePreSuperOnCreate();
+ method public void onServicePreSuperOnDestroy();
+ method public void onServicePreSuperOnStart();
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-viewmodel-compose/api/2.5.0-beta02.txt b/lifecycle/lifecycle-viewmodel-compose/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..856dad6
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel-compose/api/2.5.0-beta02.txt
@@ -0,0 +1,23 @@
+// Signature format: 4.0
+package androidx.lifecycle.viewmodel.compose {
+
+ public final class LocalViewModelStoreOwner {
+ method @androidx.compose.runtime.Composable public androidx.lifecycle.ViewModelStoreOwner? getCurrent();
+ method public infix androidx.compose.runtime.ProvidedValue<androidx.lifecycle.ViewModelStoreOwner> provides(androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner);
+ property @androidx.compose.runtime.Composable public final androidx.lifecycle.ViewModelStoreOwner? current;
+ field public static final androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner INSTANCE;
+ }
+
+ public final class SavedStateHandleSaverKt {
+ }
+
+ public final class ViewModelKt {
+ method @androidx.compose.runtime.Composable public static <VM extends androidx.lifecycle.ViewModel> VM viewModel(Class<VM> modelClass, optional androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner, optional String? key, optional androidx.lifecycle.ViewModelProvider.Factory? factory, optional androidx.lifecycle.viewmodel.CreationExtras extras);
+ method @Deprecated @androidx.compose.runtime.Composable public static inline <reified VM extends androidx.lifecycle.ViewModel> VM! viewModel(optional androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner, optional String key, optional androidx.lifecycle.ViewModelProvider.Factory? factory);
+ method @androidx.compose.runtime.Composable public static inline <reified VM extends androidx.lifecycle.ViewModel> VM! viewModel(optional androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner, optional String key, optional androidx.lifecycle.ViewModelProvider.Factory? factory, optional androidx.lifecycle.viewmodel.CreationExtras extras);
+ method @Deprecated @androidx.compose.runtime.Composable public static <VM extends androidx.lifecycle.ViewModel> VM! viewModel(Class<VM> modelClass, optional androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner, optional String key, optional androidx.lifecycle.ViewModelProvider.Factory? factory);
+ method @androidx.compose.runtime.Composable public static inline <reified VM extends androidx.lifecycle.ViewModel> VM! viewModel(optional androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner, optional String key, kotlin.jvm.functions.Function1<? super androidx.lifecycle.viewmodel.CreationExtras,? extends VM> initializer);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-viewmodel-compose/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-viewmodel-compose/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..8a4ed64
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel-compose/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,30 @@
+// Signature format: 4.0
+package androidx.lifecycle.viewmodel.compose {
+
+ public final class LocalViewModelStoreOwner {
+ method @androidx.compose.runtime.Composable public androidx.lifecycle.ViewModelStoreOwner? getCurrent();
+ method public infix androidx.compose.runtime.ProvidedValue<androidx.lifecycle.ViewModelStoreOwner> provides(androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner);
+ property @androidx.compose.runtime.Composable public final androidx.lifecycle.ViewModelStoreOwner? current;
+ field public static final androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner INSTANCE;
+ }
+
+ @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface SavedStateHandleSaveableApi {
+ }
+
+ public final class SavedStateHandleSaverKt {
+ method @androidx.lifecycle.viewmodel.compose.SavedStateHandleSaveableApi public static <T> T saveable(androidx.lifecycle.SavedStateHandle, String key, optional androidx.compose.runtime.saveable.Saver<T,?> saver, kotlin.jvm.functions.Function0<? extends T> init);
+ method @androidx.lifecycle.viewmodel.compose.SavedStateHandleSaveableApi public static <T> androidx.compose.runtime.MutableState<T> saveable(androidx.lifecycle.SavedStateHandle, String key, androidx.compose.runtime.saveable.Saver<T,?> stateSaver, kotlin.jvm.functions.Function0<? extends androidx.compose.runtime.MutableState<T>> init);
+ method @androidx.lifecycle.viewmodel.compose.SavedStateHandleSaveableApi public static <T> kotlin.properties.PropertyDelegateProvider<java.lang.Object,kotlin.properties.ReadOnlyProperty<java.lang.Object,T>> saveable(androidx.lifecycle.SavedStateHandle, optional androidx.compose.runtime.saveable.Saver<T,?> saver, kotlin.jvm.functions.Function0<? extends T> init);
+ method @androidx.lifecycle.viewmodel.compose.SavedStateHandleSaveableApi public static <T, M extends androidx.compose.runtime.MutableState<T>> kotlin.properties.PropertyDelegateProvider<java.lang.Object,kotlin.properties.ReadWriteProperty<java.lang.Object,T>> saveableMutableState(androidx.lifecycle.SavedStateHandle, optional androidx.compose.runtime.saveable.Saver<T,?> stateSaver, kotlin.jvm.functions.Function0<? extends M> init);
+ }
+
+ public final class ViewModelKt {
+ method @androidx.compose.runtime.Composable public static <VM extends androidx.lifecycle.ViewModel> VM viewModel(Class<VM> modelClass, optional androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner, optional String? key, optional androidx.lifecycle.ViewModelProvider.Factory? factory, optional androidx.lifecycle.viewmodel.CreationExtras extras);
+ method @Deprecated @androidx.compose.runtime.Composable public static inline <reified VM extends androidx.lifecycle.ViewModel> VM! viewModel(optional androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner, optional String key, optional androidx.lifecycle.ViewModelProvider.Factory? factory);
+ method @androidx.compose.runtime.Composable public static inline <reified VM extends androidx.lifecycle.ViewModel> VM! viewModel(optional androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner, optional String key, optional androidx.lifecycle.ViewModelProvider.Factory? factory, optional androidx.lifecycle.viewmodel.CreationExtras extras);
+ method @Deprecated @androidx.compose.runtime.Composable public static <VM extends androidx.lifecycle.ViewModel> VM! viewModel(Class<VM> modelClass, optional androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner, optional String key, optional androidx.lifecycle.ViewModelProvider.Factory? factory);
+ method @androidx.compose.runtime.Composable public static inline <reified VM extends androidx.lifecycle.ViewModel> VM! viewModel(optional androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner, optional String key, kotlin.jvm.functions.Function1<? super androidx.lifecycle.viewmodel.CreationExtras,? extends VM> initializer);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-viewmodel-compose/api/res-2.5.0-beta02.txt b/lifecycle/lifecycle-viewmodel-compose/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel-compose/api/res-2.5.0-beta02.txt
diff --git a/lifecycle/lifecycle-viewmodel-compose/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-viewmodel-compose/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..856dad6
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel-compose/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,23 @@
+// Signature format: 4.0
+package androidx.lifecycle.viewmodel.compose {
+
+ public final class LocalViewModelStoreOwner {
+ method @androidx.compose.runtime.Composable public androidx.lifecycle.ViewModelStoreOwner? getCurrent();
+ method public infix androidx.compose.runtime.ProvidedValue<androidx.lifecycle.ViewModelStoreOwner> provides(androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner);
+ property @androidx.compose.runtime.Composable public final androidx.lifecycle.ViewModelStoreOwner? current;
+ field public static final androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner INSTANCE;
+ }
+
+ public final class SavedStateHandleSaverKt {
+ }
+
+ public final class ViewModelKt {
+ method @androidx.compose.runtime.Composable public static <VM extends androidx.lifecycle.ViewModel> VM viewModel(Class<VM> modelClass, optional androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner, optional String? key, optional androidx.lifecycle.ViewModelProvider.Factory? factory, optional androidx.lifecycle.viewmodel.CreationExtras extras);
+ method @Deprecated @androidx.compose.runtime.Composable public static inline <reified VM extends androidx.lifecycle.ViewModel> VM! viewModel(optional androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner, optional String key, optional androidx.lifecycle.ViewModelProvider.Factory? factory);
+ method @androidx.compose.runtime.Composable public static inline <reified VM extends androidx.lifecycle.ViewModel> VM! viewModel(optional androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner, optional String key, optional androidx.lifecycle.ViewModelProvider.Factory? factory, optional androidx.lifecycle.viewmodel.CreationExtras extras);
+ method @Deprecated @androidx.compose.runtime.Composable public static <VM extends androidx.lifecycle.ViewModel> VM! viewModel(Class<VM> modelClass, optional androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner, optional String key, optional androidx.lifecycle.ViewModelProvider.Factory? factory);
+ method @androidx.compose.runtime.Composable public static inline <reified VM extends androidx.lifecycle.ViewModel> VM! viewModel(optional androidx.lifecycle.ViewModelStoreOwner viewModelStoreOwner, optional String key, kotlin.jvm.functions.Function1<? super androidx.lifecycle.viewmodel.CreationExtras,? extends VM> initializer);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-viewmodel-ktx/api/2.5.0-beta02.txt b/lifecycle/lifecycle-viewmodel-ktx/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..1d1d247
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel-ktx/api/2.5.0-beta02.txt
@@ -0,0 +1,9 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class ViewModelKt {
+ method public static kotlinx.coroutines.CoroutineScope getViewModelScope(androidx.lifecycle.ViewModel);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-viewmodel-ktx/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-viewmodel-ktx/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..1d1d247
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel-ktx/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,9 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class ViewModelKt {
+ method public static kotlinx.coroutines.CoroutineScope getViewModelScope(androidx.lifecycle.ViewModel);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-viewmodel-ktx/api/res-2.5.0-beta02.txt b/lifecycle/lifecycle-viewmodel-ktx/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel-ktx/api/res-2.5.0-beta02.txt
diff --git a/lifecycle/lifecycle-viewmodel-ktx/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-viewmodel-ktx/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..1d1d247
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel-ktx/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,9 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public final class ViewModelKt {
+ method public static kotlinx.coroutines.CoroutineScope getViewModelScope(androidx.lifecycle.ViewModel);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-viewmodel-savedstate/api/2.5.0-beta02.txt b/lifecycle/lifecycle-viewmodel-savedstate/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..35fdaaa
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel-savedstate/api/2.5.0-beta02.txt
@@ -0,0 +1,47 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public abstract class AbstractSavedStateViewModelFactory implements androidx.lifecycle.ViewModelProvider.Factory {
+ ctor public AbstractSavedStateViewModelFactory();
+ ctor public AbstractSavedStateViewModelFactory(androidx.savedstate.SavedStateRegistryOwner, android.os.Bundle?);
+ method public final <T extends androidx.lifecycle.ViewModel> T create(Class<T!>, androidx.lifecycle.viewmodel.CreationExtras);
+ method public final <T extends androidx.lifecycle.ViewModel> T create(Class<T!>);
+ method protected abstract <T extends androidx.lifecycle.ViewModel> T create(String, Class<T!>, androidx.lifecycle.SavedStateHandle);
+ }
+
+ public final class SavedStateHandle {
+ ctor public SavedStateHandle(java.util.Map<java.lang.String,?> initialState);
+ ctor public SavedStateHandle();
+ method @MainThread public void clearSavedStateProvider(String key);
+ method @MainThread public operator boolean contains(String key);
+ method @MainThread public operator <T> T? get(String key);
+ method @MainThread public <T> androidx.lifecycle.MutableLiveData<T> getLiveData(String key);
+ method @MainThread public <T> androidx.lifecycle.MutableLiveData<T> getLiveData(String key, T? initialValue);
+ method @MainThread public <T> kotlinx.coroutines.flow.StateFlow<T> getStateFlow(String key, T? initialValue);
+ method @MainThread public java.util.Set<java.lang.String> keys();
+ method @MainThread public <T> T? remove(String key);
+ method @MainThread public operator <T> void set(String key, T? value);
+ method @MainThread public void setSavedStateProvider(String key, androidx.savedstate.SavedStateRegistry.SavedStateProvider provider);
+ field public static final androidx.lifecycle.SavedStateHandle.Companion Companion;
+ }
+
+ public static final class SavedStateHandle.Companion {
+ }
+
+ public final class SavedStateHandleSupport {
+ method @MainThread public static androidx.lifecycle.SavedStateHandle createSavedStateHandle(androidx.lifecycle.viewmodel.CreationExtras);
+ method @MainThread public static <T extends androidx.savedstate.SavedStateRegistryOwner & androidx.lifecycle.ViewModelStoreOwner> void enableSavedStateHandles(T);
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Key<android.os.Bundle> DEFAULT_ARGS_KEY;
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Key<androidx.savedstate.SavedStateRegistryOwner> SAVED_STATE_REGISTRY_OWNER_KEY;
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Key<androidx.lifecycle.ViewModelStoreOwner> VIEW_MODEL_STORE_OWNER_KEY;
+ }
+
+ public final class SavedStateViewModelFactory implements androidx.lifecycle.ViewModelProvider.Factory {
+ ctor public SavedStateViewModelFactory();
+ ctor public SavedStateViewModelFactory(android.app.Application? application, androidx.savedstate.SavedStateRegistryOwner owner);
+ ctor public SavedStateViewModelFactory(android.app.Application? application, androidx.savedstate.SavedStateRegistryOwner owner, android.os.Bundle? defaultArgs);
+ method public <T extends androidx.lifecycle.ViewModel> T create(String key, Class<T> modelClass);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-viewmodel-savedstate/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-viewmodel-savedstate/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..35fdaaa
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel-savedstate/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,47 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public abstract class AbstractSavedStateViewModelFactory implements androidx.lifecycle.ViewModelProvider.Factory {
+ ctor public AbstractSavedStateViewModelFactory();
+ ctor public AbstractSavedStateViewModelFactory(androidx.savedstate.SavedStateRegistryOwner, android.os.Bundle?);
+ method public final <T extends androidx.lifecycle.ViewModel> T create(Class<T!>, androidx.lifecycle.viewmodel.CreationExtras);
+ method public final <T extends androidx.lifecycle.ViewModel> T create(Class<T!>);
+ method protected abstract <T extends androidx.lifecycle.ViewModel> T create(String, Class<T!>, androidx.lifecycle.SavedStateHandle);
+ }
+
+ public final class SavedStateHandle {
+ ctor public SavedStateHandle(java.util.Map<java.lang.String,?> initialState);
+ ctor public SavedStateHandle();
+ method @MainThread public void clearSavedStateProvider(String key);
+ method @MainThread public operator boolean contains(String key);
+ method @MainThread public operator <T> T? get(String key);
+ method @MainThread public <T> androidx.lifecycle.MutableLiveData<T> getLiveData(String key);
+ method @MainThread public <T> androidx.lifecycle.MutableLiveData<T> getLiveData(String key, T? initialValue);
+ method @MainThread public <T> kotlinx.coroutines.flow.StateFlow<T> getStateFlow(String key, T? initialValue);
+ method @MainThread public java.util.Set<java.lang.String> keys();
+ method @MainThread public <T> T? remove(String key);
+ method @MainThread public operator <T> void set(String key, T? value);
+ method @MainThread public void setSavedStateProvider(String key, androidx.savedstate.SavedStateRegistry.SavedStateProvider provider);
+ field public static final androidx.lifecycle.SavedStateHandle.Companion Companion;
+ }
+
+ public static final class SavedStateHandle.Companion {
+ }
+
+ public final class SavedStateHandleSupport {
+ method @MainThread public static androidx.lifecycle.SavedStateHandle createSavedStateHandle(androidx.lifecycle.viewmodel.CreationExtras);
+ method @MainThread public static <T extends androidx.savedstate.SavedStateRegistryOwner & androidx.lifecycle.ViewModelStoreOwner> void enableSavedStateHandles(T);
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Key<android.os.Bundle> DEFAULT_ARGS_KEY;
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Key<androidx.savedstate.SavedStateRegistryOwner> SAVED_STATE_REGISTRY_OWNER_KEY;
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Key<androidx.lifecycle.ViewModelStoreOwner> VIEW_MODEL_STORE_OWNER_KEY;
+ }
+
+ public final class SavedStateViewModelFactory implements androidx.lifecycle.ViewModelProvider.Factory {
+ ctor public SavedStateViewModelFactory();
+ ctor public SavedStateViewModelFactory(android.app.Application? application, androidx.savedstate.SavedStateRegistryOwner owner);
+ ctor public SavedStateViewModelFactory(android.app.Application? application, androidx.savedstate.SavedStateRegistryOwner owner, android.os.Bundle? defaultArgs);
+ method public <T extends androidx.lifecycle.ViewModel> T create(String key, Class<T> modelClass);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-viewmodel-savedstate/api/res-2.5.0-beta02.txt b/lifecycle/lifecycle-viewmodel-savedstate/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel-savedstate/api/res-2.5.0-beta02.txt
diff --git a/lifecycle/lifecycle-viewmodel-savedstate/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-viewmodel-savedstate/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..35fdaaa
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel-savedstate/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,47 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public abstract class AbstractSavedStateViewModelFactory implements androidx.lifecycle.ViewModelProvider.Factory {
+ ctor public AbstractSavedStateViewModelFactory();
+ ctor public AbstractSavedStateViewModelFactory(androidx.savedstate.SavedStateRegistryOwner, android.os.Bundle?);
+ method public final <T extends androidx.lifecycle.ViewModel> T create(Class<T!>, androidx.lifecycle.viewmodel.CreationExtras);
+ method public final <T extends androidx.lifecycle.ViewModel> T create(Class<T!>);
+ method protected abstract <T extends androidx.lifecycle.ViewModel> T create(String, Class<T!>, androidx.lifecycle.SavedStateHandle);
+ }
+
+ public final class SavedStateHandle {
+ ctor public SavedStateHandle(java.util.Map<java.lang.String,?> initialState);
+ ctor public SavedStateHandle();
+ method @MainThread public void clearSavedStateProvider(String key);
+ method @MainThread public operator boolean contains(String key);
+ method @MainThread public operator <T> T? get(String key);
+ method @MainThread public <T> androidx.lifecycle.MutableLiveData<T> getLiveData(String key);
+ method @MainThread public <T> androidx.lifecycle.MutableLiveData<T> getLiveData(String key, T? initialValue);
+ method @MainThread public <T> kotlinx.coroutines.flow.StateFlow<T> getStateFlow(String key, T? initialValue);
+ method @MainThread public java.util.Set<java.lang.String> keys();
+ method @MainThread public <T> T? remove(String key);
+ method @MainThread public operator <T> void set(String key, T? value);
+ method @MainThread public void setSavedStateProvider(String key, androidx.savedstate.SavedStateRegistry.SavedStateProvider provider);
+ field public static final androidx.lifecycle.SavedStateHandle.Companion Companion;
+ }
+
+ public static final class SavedStateHandle.Companion {
+ }
+
+ public final class SavedStateHandleSupport {
+ method @MainThread public static androidx.lifecycle.SavedStateHandle createSavedStateHandle(androidx.lifecycle.viewmodel.CreationExtras);
+ method @MainThread public static <T extends androidx.savedstate.SavedStateRegistryOwner & androidx.lifecycle.ViewModelStoreOwner> void enableSavedStateHandles(T);
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Key<android.os.Bundle> DEFAULT_ARGS_KEY;
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Key<androidx.savedstate.SavedStateRegistryOwner> SAVED_STATE_REGISTRY_OWNER_KEY;
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Key<androidx.lifecycle.ViewModelStoreOwner> VIEW_MODEL_STORE_OWNER_KEY;
+ }
+
+ public final class SavedStateViewModelFactory implements androidx.lifecycle.ViewModelProvider.Factory {
+ ctor public SavedStateViewModelFactory();
+ ctor public SavedStateViewModelFactory(android.app.Application? application, androidx.savedstate.SavedStateRegistryOwner owner);
+ ctor public SavedStateViewModelFactory(android.app.Application? application, androidx.savedstate.SavedStateRegistryOwner owner, android.os.Bundle? defaultArgs);
+ method public <T extends androidx.lifecycle.ViewModel> T create(String key, Class<T> modelClass);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-viewmodel/api/2.5.0-beta02.txt b/lifecycle/lifecycle-viewmodel/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..70f4a97
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel/api/2.5.0-beta02.txt
@@ -0,0 +1,133 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public class AndroidViewModel extends androidx.lifecycle.ViewModel {
+ ctor public AndroidViewModel(android.app.Application);
+ method public <T extends android.app.Application> T getApplication();
+ }
+
+ public interface HasDefaultViewModelProviderFactory {
+ method public default androidx.lifecycle.viewmodel.CreationExtras getDefaultViewModelCreationExtras();
+ method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory();
+ }
+
+ public abstract class ViewModel {
+ ctor public ViewModel();
+ ctor public ViewModel(java.io.Closeable!...);
+ method public void addCloseable(java.io.Closeable);
+ method protected void onCleared();
+ }
+
+ public final class ViewModelLazy<VM extends androidx.lifecycle.ViewModel> implements kotlin.Lazy<VM> {
+ ctor public ViewModelLazy(kotlin.reflect.KClass<VM> viewModelClass, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStore> storeProducer, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory> factoryProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras> extrasProducer);
+ ctor public ViewModelLazy(kotlin.reflect.KClass<VM> viewModelClass, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStore> storeProducer, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory> factoryProducer);
+ method public VM getValue();
+ method public boolean isInitialized();
+ property public VM value;
+ }
+
+ public class ViewModelProvider {
+ ctor public ViewModelProvider(androidx.lifecycle.ViewModelStore store, androidx.lifecycle.ViewModelProvider.Factory factory, optional androidx.lifecycle.viewmodel.CreationExtras defaultCreationExtras);
+ ctor public ViewModelProvider(androidx.lifecycle.ViewModelStore store, androidx.lifecycle.ViewModelProvider.Factory factory);
+ ctor public ViewModelProvider(androidx.lifecycle.ViewModelStoreOwner owner);
+ ctor public ViewModelProvider(androidx.lifecycle.ViewModelStoreOwner owner, androidx.lifecycle.ViewModelProvider.Factory factory);
+ method @MainThread public operator <T extends androidx.lifecycle.ViewModel> T get(Class<T> modelClass);
+ method @MainThread public operator <T extends androidx.lifecycle.ViewModel> T get(String key, Class<T> modelClass);
+ }
+
+ public static class ViewModelProvider.AndroidViewModelFactory extends androidx.lifecycle.ViewModelProvider.NewInstanceFactory {
+ ctor public ViewModelProvider.AndroidViewModelFactory();
+ ctor public ViewModelProvider.AndroidViewModelFactory(android.app.Application application);
+ method public static final androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory getInstance(android.app.Application application);
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Key<android.app.Application> APPLICATION_KEY;
+ field public static final androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory.Companion Companion;
+ }
+
+ public static final class ViewModelProvider.AndroidViewModelFactory.Companion {
+ method public androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory getInstance(android.app.Application application);
+ }
+
+ public static interface ViewModelProvider.Factory {
+ method public default <T extends androidx.lifecycle.ViewModel> T create(Class<T> modelClass);
+ method public default <T extends androidx.lifecycle.ViewModel> T create(Class<T> modelClass, androidx.lifecycle.viewmodel.CreationExtras extras);
+ method public default static androidx.lifecycle.ViewModelProvider.Factory from(androidx.lifecycle.viewmodel.ViewModelInitializer<?>... initializers);
+ field public static final androidx.lifecycle.ViewModelProvider.Factory.Companion Companion;
+ }
+
+ public static final class ViewModelProvider.Factory.Companion {
+ method public androidx.lifecycle.ViewModelProvider.Factory from(androidx.lifecycle.viewmodel.ViewModelInitializer<?>... initializers);
+ }
+
+ public static class ViewModelProvider.NewInstanceFactory implements androidx.lifecycle.ViewModelProvider.Factory {
+ ctor public ViewModelProvider.NewInstanceFactory();
+ field public static final androidx.lifecycle.ViewModelProvider.NewInstanceFactory.Companion Companion;
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Key<java.lang.String> VIEW_MODEL_KEY;
+ }
+
+ public static final class ViewModelProvider.NewInstanceFactory.Companion {
+ }
+
+ public final class ViewModelProviderGetKt {
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> VM! get(androidx.lifecycle.ViewModelProvider);
+ }
+
+ public class ViewModelStore {
+ ctor public ViewModelStore();
+ method public final void clear();
+ }
+
+ public interface ViewModelStoreOwner {
+ method public androidx.lifecycle.ViewModelStore getViewModelStore();
+ }
+
+ public final class ViewTreeViewModelKt {
+ method public static androidx.lifecycle.ViewModelStoreOwner? findViewTreeViewModelStoreOwner(android.view.View);
+ }
+
+ public class ViewTreeViewModelStoreOwner {
+ method public static androidx.lifecycle.ViewModelStoreOwner? get(android.view.View);
+ method public static void set(android.view.View, androidx.lifecycle.ViewModelStoreOwner?);
+ }
+
+}
+
+package androidx.lifecycle.viewmodel {
+
+ public abstract class CreationExtras {
+ method public abstract operator <T> T? get(androidx.lifecycle.viewmodel.CreationExtras.Key<T> key);
+ }
+
+ public static final class CreationExtras.Empty extends androidx.lifecycle.viewmodel.CreationExtras {
+ method public <T> T? get(androidx.lifecycle.viewmodel.CreationExtras.Key<T> key);
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Empty INSTANCE;
+ }
+
+ public static interface CreationExtras.Key<T> {
+ }
+
+ @androidx.lifecycle.viewmodel.ViewModelFactoryDsl public final class InitializerViewModelFactoryBuilder {
+ ctor public InitializerViewModelFactoryBuilder();
+ method public <T extends androidx.lifecycle.ViewModel> void addInitializer(kotlin.reflect.KClass<T> clazz, kotlin.jvm.functions.Function1<? super androidx.lifecycle.viewmodel.CreationExtras,? extends T> initializer);
+ method public androidx.lifecycle.ViewModelProvider.Factory build();
+ }
+
+ public final class InitializerViewModelFactoryKt {
+ method public static inline <reified VM extends androidx.lifecycle.ViewModel> void initializer(androidx.lifecycle.viewmodel.InitializerViewModelFactoryBuilder, kotlin.jvm.functions.Function1<? super androidx.lifecycle.viewmodel.CreationExtras,? extends VM> initializer);
+ method public static inline androidx.lifecycle.ViewModelProvider.Factory viewModelFactory(kotlin.jvm.functions.Function1<? super androidx.lifecycle.viewmodel.InitializerViewModelFactoryBuilder,kotlin.Unit> builder);
+ }
+
+ public final class MutableCreationExtras extends androidx.lifecycle.viewmodel.CreationExtras {
+ ctor public MutableCreationExtras(optional androidx.lifecycle.viewmodel.CreationExtras initialExtras);
+ method public <T> T? get(androidx.lifecycle.viewmodel.CreationExtras.Key<T> key);
+ method public operator <T> void set(androidx.lifecycle.viewmodel.CreationExtras.Key<T> key, T? t);
+ }
+
+ @kotlin.DslMarker public @interface ViewModelFactoryDsl {
+ }
+
+ public final class ViewModelInitializer<T extends androidx.lifecycle.ViewModel> {
+ ctor public ViewModelInitializer(Class<T> clazz, kotlin.jvm.functions.Function1<? super androidx.lifecycle.viewmodel.CreationExtras,? extends T> initializer);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-viewmodel/api/public_plus_experimental_2.5.0-beta02.txt b/lifecycle/lifecycle-viewmodel/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..70f4a97
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,133 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public class AndroidViewModel extends androidx.lifecycle.ViewModel {
+ ctor public AndroidViewModel(android.app.Application);
+ method public <T extends android.app.Application> T getApplication();
+ }
+
+ public interface HasDefaultViewModelProviderFactory {
+ method public default androidx.lifecycle.viewmodel.CreationExtras getDefaultViewModelCreationExtras();
+ method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory();
+ }
+
+ public abstract class ViewModel {
+ ctor public ViewModel();
+ ctor public ViewModel(java.io.Closeable!...);
+ method public void addCloseable(java.io.Closeable);
+ method protected void onCleared();
+ }
+
+ public final class ViewModelLazy<VM extends androidx.lifecycle.ViewModel> implements kotlin.Lazy<VM> {
+ ctor public ViewModelLazy(kotlin.reflect.KClass<VM> viewModelClass, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStore> storeProducer, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory> factoryProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras> extrasProducer);
+ ctor public ViewModelLazy(kotlin.reflect.KClass<VM> viewModelClass, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStore> storeProducer, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory> factoryProducer);
+ method public VM getValue();
+ method public boolean isInitialized();
+ property public VM value;
+ }
+
+ public class ViewModelProvider {
+ ctor public ViewModelProvider(androidx.lifecycle.ViewModelStore store, androidx.lifecycle.ViewModelProvider.Factory factory, optional androidx.lifecycle.viewmodel.CreationExtras defaultCreationExtras);
+ ctor public ViewModelProvider(androidx.lifecycle.ViewModelStore store, androidx.lifecycle.ViewModelProvider.Factory factory);
+ ctor public ViewModelProvider(androidx.lifecycle.ViewModelStoreOwner owner);
+ ctor public ViewModelProvider(androidx.lifecycle.ViewModelStoreOwner owner, androidx.lifecycle.ViewModelProvider.Factory factory);
+ method @MainThread public operator <T extends androidx.lifecycle.ViewModel> T get(Class<T> modelClass);
+ method @MainThread public operator <T extends androidx.lifecycle.ViewModel> T get(String key, Class<T> modelClass);
+ }
+
+ public static class ViewModelProvider.AndroidViewModelFactory extends androidx.lifecycle.ViewModelProvider.NewInstanceFactory {
+ ctor public ViewModelProvider.AndroidViewModelFactory();
+ ctor public ViewModelProvider.AndroidViewModelFactory(android.app.Application application);
+ method public static final androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory getInstance(android.app.Application application);
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Key<android.app.Application> APPLICATION_KEY;
+ field public static final androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory.Companion Companion;
+ }
+
+ public static final class ViewModelProvider.AndroidViewModelFactory.Companion {
+ method public androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory getInstance(android.app.Application application);
+ }
+
+ public static interface ViewModelProvider.Factory {
+ method public default <T extends androidx.lifecycle.ViewModel> T create(Class<T> modelClass);
+ method public default <T extends androidx.lifecycle.ViewModel> T create(Class<T> modelClass, androidx.lifecycle.viewmodel.CreationExtras extras);
+ method public default static androidx.lifecycle.ViewModelProvider.Factory from(androidx.lifecycle.viewmodel.ViewModelInitializer<?>... initializers);
+ field public static final androidx.lifecycle.ViewModelProvider.Factory.Companion Companion;
+ }
+
+ public static final class ViewModelProvider.Factory.Companion {
+ method public androidx.lifecycle.ViewModelProvider.Factory from(androidx.lifecycle.viewmodel.ViewModelInitializer<?>... initializers);
+ }
+
+ public static class ViewModelProvider.NewInstanceFactory implements androidx.lifecycle.ViewModelProvider.Factory {
+ ctor public ViewModelProvider.NewInstanceFactory();
+ field public static final androidx.lifecycle.ViewModelProvider.NewInstanceFactory.Companion Companion;
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Key<java.lang.String> VIEW_MODEL_KEY;
+ }
+
+ public static final class ViewModelProvider.NewInstanceFactory.Companion {
+ }
+
+ public final class ViewModelProviderGetKt {
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> VM! get(androidx.lifecycle.ViewModelProvider);
+ }
+
+ public class ViewModelStore {
+ ctor public ViewModelStore();
+ method public final void clear();
+ }
+
+ public interface ViewModelStoreOwner {
+ method public androidx.lifecycle.ViewModelStore getViewModelStore();
+ }
+
+ public final class ViewTreeViewModelKt {
+ method public static androidx.lifecycle.ViewModelStoreOwner? findViewTreeViewModelStoreOwner(android.view.View);
+ }
+
+ public class ViewTreeViewModelStoreOwner {
+ method public static androidx.lifecycle.ViewModelStoreOwner? get(android.view.View);
+ method public static void set(android.view.View, androidx.lifecycle.ViewModelStoreOwner?);
+ }
+
+}
+
+package androidx.lifecycle.viewmodel {
+
+ public abstract class CreationExtras {
+ method public abstract operator <T> T? get(androidx.lifecycle.viewmodel.CreationExtras.Key<T> key);
+ }
+
+ public static final class CreationExtras.Empty extends androidx.lifecycle.viewmodel.CreationExtras {
+ method public <T> T? get(androidx.lifecycle.viewmodel.CreationExtras.Key<T> key);
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Empty INSTANCE;
+ }
+
+ public static interface CreationExtras.Key<T> {
+ }
+
+ @androidx.lifecycle.viewmodel.ViewModelFactoryDsl public final class InitializerViewModelFactoryBuilder {
+ ctor public InitializerViewModelFactoryBuilder();
+ method public <T extends androidx.lifecycle.ViewModel> void addInitializer(kotlin.reflect.KClass<T> clazz, kotlin.jvm.functions.Function1<? super androidx.lifecycle.viewmodel.CreationExtras,? extends T> initializer);
+ method public androidx.lifecycle.ViewModelProvider.Factory build();
+ }
+
+ public final class InitializerViewModelFactoryKt {
+ method public static inline <reified VM extends androidx.lifecycle.ViewModel> void initializer(androidx.lifecycle.viewmodel.InitializerViewModelFactoryBuilder, kotlin.jvm.functions.Function1<? super androidx.lifecycle.viewmodel.CreationExtras,? extends VM> initializer);
+ method public static inline androidx.lifecycle.ViewModelProvider.Factory viewModelFactory(kotlin.jvm.functions.Function1<? super androidx.lifecycle.viewmodel.InitializerViewModelFactoryBuilder,kotlin.Unit> builder);
+ }
+
+ public final class MutableCreationExtras extends androidx.lifecycle.viewmodel.CreationExtras {
+ ctor public MutableCreationExtras(optional androidx.lifecycle.viewmodel.CreationExtras initialExtras);
+ method public <T> T? get(androidx.lifecycle.viewmodel.CreationExtras.Key<T> key);
+ method public operator <T> void set(androidx.lifecycle.viewmodel.CreationExtras.Key<T> key, T? t);
+ }
+
+ @kotlin.DslMarker public @interface ViewModelFactoryDsl {
+ }
+
+ public final class ViewModelInitializer<T extends androidx.lifecycle.ViewModel> {
+ ctor public ViewModelInitializer(Class<T> clazz, kotlin.jvm.functions.Function1<? super androidx.lifecycle.viewmodel.CreationExtras,? extends T> initializer);
+ }
+
+}
+
diff --git a/lifecycle/lifecycle-viewmodel/api/res-2.5.0-beta02.txt b/lifecycle/lifecycle-viewmodel/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel/api/res-2.5.0-beta02.txt
diff --git a/lifecycle/lifecycle-viewmodel/api/restricted_2.5.0-beta02.txt b/lifecycle/lifecycle-viewmodel/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..70f4a97
--- /dev/null
+++ b/lifecycle/lifecycle-viewmodel/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,133 @@
+// Signature format: 4.0
+package androidx.lifecycle {
+
+ public class AndroidViewModel extends androidx.lifecycle.ViewModel {
+ ctor public AndroidViewModel(android.app.Application);
+ method public <T extends android.app.Application> T getApplication();
+ }
+
+ public interface HasDefaultViewModelProviderFactory {
+ method public default androidx.lifecycle.viewmodel.CreationExtras getDefaultViewModelCreationExtras();
+ method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory();
+ }
+
+ public abstract class ViewModel {
+ ctor public ViewModel();
+ ctor public ViewModel(java.io.Closeable!...);
+ method public void addCloseable(java.io.Closeable);
+ method protected void onCleared();
+ }
+
+ public final class ViewModelLazy<VM extends androidx.lifecycle.ViewModel> implements kotlin.Lazy<VM> {
+ ctor public ViewModelLazy(kotlin.reflect.KClass<VM> viewModelClass, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStore> storeProducer, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory> factoryProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras> extrasProducer);
+ ctor public ViewModelLazy(kotlin.reflect.KClass<VM> viewModelClass, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelStore> storeProducer, kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory> factoryProducer);
+ method public VM getValue();
+ method public boolean isInitialized();
+ property public VM value;
+ }
+
+ public class ViewModelProvider {
+ ctor public ViewModelProvider(androidx.lifecycle.ViewModelStore store, androidx.lifecycle.ViewModelProvider.Factory factory, optional androidx.lifecycle.viewmodel.CreationExtras defaultCreationExtras);
+ ctor public ViewModelProvider(androidx.lifecycle.ViewModelStore store, androidx.lifecycle.ViewModelProvider.Factory factory);
+ ctor public ViewModelProvider(androidx.lifecycle.ViewModelStoreOwner owner);
+ ctor public ViewModelProvider(androidx.lifecycle.ViewModelStoreOwner owner, androidx.lifecycle.ViewModelProvider.Factory factory);
+ method @MainThread public operator <T extends androidx.lifecycle.ViewModel> T get(Class<T> modelClass);
+ method @MainThread public operator <T extends androidx.lifecycle.ViewModel> T get(String key, Class<T> modelClass);
+ }
+
+ public static class ViewModelProvider.AndroidViewModelFactory extends androidx.lifecycle.ViewModelProvider.NewInstanceFactory {
+ ctor public ViewModelProvider.AndroidViewModelFactory();
+ ctor public ViewModelProvider.AndroidViewModelFactory(android.app.Application application);
+ method public static final androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory getInstance(android.app.Application application);
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Key<android.app.Application> APPLICATION_KEY;
+ field public static final androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory.Companion Companion;
+ }
+
+ public static final class ViewModelProvider.AndroidViewModelFactory.Companion {
+ method public androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory getInstance(android.app.Application application);
+ }
+
+ public static interface ViewModelProvider.Factory {
+ method public default <T extends androidx.lifecycle.ViewModel> T create(Class<T> modelClass);
+ method public default <T extends androidx.lifecycle.ViewModel> T create(Class<T> modelClass, androidx.lifecycle.viewmodel.CreationExtras extras);
+ method public default static androidx.lifecycle.ViewModelProvider.Factory from(androidx.lifecycle.viewmodel.ViewModelInitializer<?>... initializers);
+ field public static final androidx.lifecycle.ViewModelProvider.Factory.Companion Companion;
+ }
+
+ public static final class ViewModelProvider.Factory.Companion {
+ method public androidx.lifecycle.ViewModelProvider.Factory from(androidx.lifecycle.viewmodel.ViewModelInitializer<?>... initializers);
+ }
+
+ public static class ViewModelProvider.NewInstanceFactory implements androidx.lifecycle.ViewModelProvider.Factory {
+ ctor public ViewModelProvider.NewInstanceFactory();
+ field public static final androidx.lifecycle.ViewModelProvider.NewInstanceFactory.Companion Companion;
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Key<java.lang.String> VIEW_MODEL_KEY;
+ }
+
+ public static final class ViewModelProvider.NewInstanceFactory.Companion {
+ }
+
+ public final class ViewModelProviderGetKt {
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> VM! get(androidx.lifecycle.ViewModelProvider);
+ }
+
+ public class ViewModelStore {
+ ctor public ViewModelStore();
+ method public final void clear();
+ }
+
+ public interface ViewModelStoreOwner {
+ method public androidx.lifecycle.ViewModelStore getViewModelStore();
+ }
+
+ public final class ViewTreeViewModelKt {
+ method public static androidx.lifecycle.ViewModelStoreOwner? findViewTreeViewModelStoreOwner(android.view.View);
+ }
+
+ public class ViewTreeViewModelStoreOwner {
+ method public static androidx.lifecycle.ViewModelStoreOwner? get(android.view.View);
+ method public static void set(android.view.View, androidx.lifecycle.ViewModelStoreOwner?);
+ }
+
+}
+
+package androidx.lifecycle.viewmodel {
+
+ public abstract class CreationExtras {
+ method public abstract operator <T> T? get(androidx.lifecycle.viewmodel.CreationExtras.Key<T> key);
+ }
+
+ public static final class CreationExtras.Empty extends androidx.lifecycle.viewmodel.CreationExtras {
+ method public <T> T? get(androidx.lifecycle.viewmodel.CreationExtras.Key<T> key);
+ field public static final androidx.lifecycle.viewmodel.CreationExtras.Empty INSTANCE;
+ }
+
+ public static interface CreationExtras.Key<T> {
+ }
+
+ @androidx.lifecycle.viewmodel.ViewModelFactoryDsl public final class InitializerViewModelFactoryBuilder {
+ ctor public InitializerViewModelFactoryBuilder();
+ method public <T extends androidx.lifecycle.ViewModel> void addInitializer(kotlin.reflect.KClass<T> clazz, kotlin.jvm.functions.Function1<? super androidx.lifecycle.viewmodel.CreationExtras,? extends T> initializer);
+ method public androidx.lifecycle.ViewModelProvider.Factory build();
+ }
+
+ public final class InitializerViewModelFactoryKt {
+ method public static inline <reified VM extends androidx.lifecycle.ViewModel> void initializer(androidx.lifecycle.viewmodel.InitializerViewModelFactoryBuilder, kotlin.jvm.functions.Function1<? super androidx.lifecycle.viewmodel.CreationExtras,? extends VM> initializer);
+ method public static inline androidx.lifecycle.ViewModelProvider.Factory viewModelFactory(kotlin.jvm.functions.Function1<? super androidx.lifecycle.viewmodel.InitializerViewModelFactoryBuilder,kotlin.Unit> builder);
+ }
+
+ public final class MutableCreationExtras extends androidx.lifecycle.viewmodel.CreationExtras {
+ ctor public MutableCreationExtras(optional androidx.lifecycle.viewmodel.CreationExtras initialExtras);
+ method public <T> T? get(androidx.lifecycle.viewmodel.CreationExtras.Key<T> key);
+ method public operator <T> void set(androidx.lifecycle.viewmodel.CreationExtras.Key<T> key, T? t);
+ }
+
+ @kotlin.DslMarker public @interface ViewModelFactoryDsl {
+ }
+
+ public final class ViewModelInitializer<T extends androidx.lifecycle.ViewModel> {
+ ctor public ViewModelInitializer(Class<T> clazz, kotlin.jvm.functions.Function1<? super androidx.lifecycle.viewmodel.CreationExtras,? extends T> initializer);
+ }
+
+}
+
diff --git a/lint-checks/src/main/java/androidx/build/lint/BanInappropriateExperimentalUsage.kt b/lint-checks/src/main/java/androidx/build/lint/BanInappropriateExperimentalUsage.kt
index 042123d..f9a9953 100644
--- a/lint-checks/src/main/java/androidx/build/lint/BanInappropriateExperimentalUsage.kt
+++ b/lint-checks/src/main/java/androidx/build/lint/BanInappropriateExperimentalUsage.kt
@@ -72,12 +72,22 @@
*/
if (signature != null && APPLICATION_OPT_IN_ANNOTATIONS.contains(signature)) {
if (DEBUG) {
- println("Processing $signature annotation")
+ println("Found an @OptIn annotation. Attempting to find markerClass element(s)")
}
val markerClass: UExpression? = node.findAttributeValue("markerClass")
if (markerClass != null) {
- getUElementsFromOptInMarkerClass(markerClass).forEach { uElement ->
+ val markerClasses = getUElementsFromOptInMarkerClass(markerClass)
+
+ if (DEBUG && markerClasses.isNotEmpty()) {
+ println("Found ${markerClasses.size} markerClass(es): ")
+ }
+
+ markerClasses.forEach { uElement ->
+ if (DEBUG) {
+ println("Inspecting markerClass annotation " +
+ uElement.getQualifiedName())
+ }
inspectAnnotation(uElement, node)
}
}
@@ -130,8 +140,8 @@
if (annotations.any { APPLICABLE_ANNOTATIONS.contains(it.qualifiedName) }) {
if (DEBUG) {
println(
- "${context.driver.mode}: used ${node.qualifiedName} in " +
- "${context.project}"
+ "${context.driver.mode}: used ${annotation.getQualifiedName()} in " +
+ context.project.mavenCoordinate.groupId
)
}
verifyUsageOfElementIsWithinSameGroup(
@@ -169,31 +179,47 @@
atomicGroupList: List<String>,
) {
val evaluator = context.evaluator
+
+ // The location where the annotation is used
val usageCoordinates = evaluator.getLibrary(usage) ?: context.project.mavenCoordinate
val usageGroupId = usageCoordinates?.groupId
- val annotationGroup = evaluator.getLibrary(annotation) ?: return
- val annotationGroupId = annotationGroup.groupId
- val isUsedInSameGroup = annotationGroupId == usageGroupId
- val isUsedInDifferentArtifact = usageCoordinates.artifactId != annotationGroup.artifactId
+ // The location where the annotation is declared
+ // TODO (b/222554358): annotationGroup is (unexpectedly) null sometimes; fix this
+ val annotationCoordinates = evaluator.getLibrary(annotation) ?: return
+ val annotationGroupId = annotationCoordinates.groupId
+
+ val isUsedInSameGroup = usageCoordinates.groupId == annotationCoordinates.groupId
+ val isUsedInSameArtifact = usageCoordinates.artifactId == annotationCoordinates.artifactId
val isAtomic = atomicGroupList.contains(usageGroupId)
- if (!isUsedInSameGroup || (isUsedInSameGroup && isUsedInDifferentArtifact && !isAtomic)) {
- if (DEBUG) {
- println(
- "${context.driver.mode}: report usage of $annotationGroupId in $usageGroupId"
- )
- }
- Incident(context)
- .issue(issue)
- .at(usage)
- .message(
- "`Experimental` and `RequiresOptIn` APIs may only be used within the " +
- "same-version group where they were defined."
- )
- .report()
+
+ /**
+ * Usage of experimental APIs is allowed in either of the following conditions:
+ *
+ * - Both the group ID and artifact ID in `usageCoordinates` and
+ * `annotationCoordinates` match
+ * - The group IDs match, and that group ID is atomic
+ */
+ if ((isUsedInSameGroup && isUsedInSameArtifact) || (isUsedInSameGroup && isAtomic)) return
+
+ // Log inappropriate experimental usage
+ if (DEBUG) {
+ println(
+ "${context.driver.mode}: report usage of $annotationGroupId in $usageGroupId"
+ )
}
+ Incident(context)
+ .issue(issue)
+ .at(usage)
+ .message(
+ "`Experimental` and `RequiresOptIn` APIs may only be used within the " +
+ "same-version group where they were defined."
+ )
+ .report()
}
+ private fun UElement.getQualifiedName() = (this as UClass).qualifiedName
+
companion object {
private const val DEBUG = false
diff --git a/mediarouter/mediarouter/proguard-rules.pro b/mediarouter/mediarouter/proguard-rules.pro
index 5016e8f..74c1584 100644
--- a/mediarouter/mediarouter/proguard-rules.pro
+++ b/mediarouter/mediarouter/proguard-rules.pro
@@ -12,5 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# Prevent MediaRouteActionProvider from being removed or renamed.
--keep class androidx.mediarouter.app.MediaRouteActionProvider { public <init>(...); }
+# Allow R8 / ProGuard to remove debugging code.
+-assumevalues class androidx.mediarouter.** {
+ static boolean DEBUG return false;
+}
diff --git a/navigation/OWNERS b/navigation/OWNERS
index 4719789..bf053cd 100644
--- a/navigation/OWNERS
+++ b/navigation/OWNERS
@@ -4,6 +4,7 @@
danysantiago@google.com
sergeyv@google.com
sanura@google.com
+clarafok@google.com
per-file settings.gradle = dustinlam@google.com, rahulrav@google.com
diff --git a/navigation/navigation-common-ktx/api/2.5.0-beta02.txt b/navigation/navigation-common-ktx/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/navigation/navigation-common-ktx/api/2.5.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/navigation/navigation-common-ktx/api/public_plus_experimental_2.5.0-beta02.txt b/navigation/navigation-common-ktx/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/navigation/navigation-common-ktx/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/navigation/navigation-common-ktx/api/res-2.5.0-beta02.txt b/navigation/navigation-common-ktx/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/navigation/navigation-common-ktx/api/res-2.5.0-beta02.txt
diff --git a/navigation/navigation-common-ktx/api/restricted_2.5.0-beta02.txt b/navigation/navigation-common-ktx/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/navigation/navigation-common-ktx/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/navigation/navigation-common/api/2.5.0-beta02.txt b/navigation/navigation-common/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..fe9681f
--- /dev/null
+++ b/navigation/navigation-common/api/2.5.0-beta02.txt
@@ -0,0 +1,522 @@
+// Signature format: 4.0
+package androidx.navigation {
+
+ public final class ActionOnlyNavDirections implements androidx.navigation.NavDirections {
+ ctor public ActionOnlyNavDirections(int actionId);
+ method public int component1();
+ method public androidx.navigation.ActionOnlyNavDirections copy(int actionId);
+ method public int getActionId();
+ method public android.os.Bundle getArguments();
+ property public int actionId;
+ property public android.os.Bundle arguments;
+ }
+
+ @androidx.navigation.NavOptionsDsl public final class AnimBuilder {
+ ctor public AnimBuilder();
+ method public int getEnter();
+ method public int getExit();
+ method public int getPopEnter();
+ method public int getPopExit();
+ method public void setEnter(int);
+ method public void setExit(int);
+ method public void setPopEnter(int);
+ method public void setPopExit(int);
+ property public final int enter;
+ property public final int exit;
+ property public final int popEnter;
+ property public final int popExit;
+ }
+
+ public interface FloatingWindow {
+ }
+
+ public final class NamedNavArgument {
+ method public operator String component1();
+ method public operator androidx.navigation.NavArgument component2();
+ method public androidx.navigation.NavArgument getArgument();
+ method public String getName();
+ property public final androidx.navigation.NavArgument argument;
+ property public final String name;
+ }
+
+ public final class NamedNavArgumentKt {
+ method public static androidx.navigation.NamedNavArgument navArgument(String name, kotlin.jvm.functions.Function1<? super androidx.navigation.NavArgumentBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavAction {
+ ctor public NavAction(@IdRes int destinationId, optional androidx.navigation.NavOptions? navOptions, optional android.os.Bundle? defaultArguments);
+ ctor public NavAction(@IdRes int destinationId, optional androidx.navigation.NavOptions? navOptions);
+ ctor public NavAction(@IdRes int destinationId);
+ method public android.os.Bundle? getDefaultArguments();
+ method public int getDestinationId();
+ method public androidx.navigation.NavOptions? getNavOptions();
+ method public void setDefaultArguments(android.os.Bundle?);
+ method public void setNavOptions(androidx.navigation.NavOptions?);
+ property public final android.os.Bundle? defaultArguments;
+ property public final int destinationId;
+ property public final androidx.navigation.NavOptions? navOptions;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class NavActionBuilder {
+ ctor public NavActionBuilder();
+ method public java.util.Map<java.lang.String,java.lang.Object> getDefaultArguments();
+ method public int getDestinationId();
+ method public void navOptions(kotlin.jvm.functions.Function1<? super androidx.navigation.NavOptionsBuilder,kotlin.Unit> optionsBuilder);
+ method public void setDestinationId(int);
+ property public final java.util.Map<java.lang.String,java.lang.Object> defaultArguments;
+ property public final int destinationId;
+ }
+
+ public interface NavArgs {
+ }
+
+ public final class NavArgsLazy<Args extends androidx.navigation.NavArgs> implements kotlin.Lazy<Args> {
+ ctor public NavArgsLazy(kotlin.reflect.KClass<Args> navArgsClass, kotlin.jvm.functions.Function0<android.os.Bundle> argumentProducer);
+ method public Args getValue();
+ method public boolean isInitialized();
+ property public Args value;
+ }
+
+ public final class NavArgsLazyKt {
+ }
+
+ public final class NavArgument {
+ method public Object? getDefaultValue();
+ method public androidx.navigation.NavType<java.lang.Object> getType();
+ method public boolean isDefaultValuePresent();
+ method public boolean isNullable();
+ property public final Object? defaultValue;
+ property public final boolean isDefaultValuePresent;
+ property public final boolean isNullable;
+ property public final androidx.navigation.NavType<java.lang.Object> type;
+ }
+
+ public static final class NavArgument.Builder {
+ ctor public NavArgument.Builder();
+ method public androidx.navigation.NavArgument build();
+ method public androidx.navigation.NavArgument.Builder setDefaultValue(Object? defaultValue);
+ method public androidx.navigation.NavArgument.Builder setIsNullable(boolean isNullable);
+ method public <T> androidx.navigation.NavArgument.Builder setType(androidx.navigation.NavType<T> type);
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class NavArgumentBuilder {
+ ctor public NavArgumentBuilder();
+ method public androidx.navigation.NavArgument build();
+ method public Object? getDefaultValue();
+ method public boolean getNullable();
+ method public androidx.navigation.NavType<?> getType();
+ method public void setDefaultValue(Object?);
+ method public void setNullable(boolean);
+ method public void setType(androidx.navigation.NavType<?>);
+ property public final Object? defaultValue;
+ property public final boolean nullable;
+ property public final androidx.navigation.NavType<?> type;
+ }
+
+ public final class NavBackStackEntry implements androidx.lifecycle.HasDefaultViewModelProviderFactory androidx.lifecycle.LifecycleOwner androidx.savedstate.SavedStateRegistryOwner androidx.lifecycle.ViewModelStoreOwner {
+ method public android.os.Bundle? getArguments();
+ method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory();
+ method public androidx.navigation.NavDestination getDestination();
+ method public String getId();
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ method public androidx.lifecycle.SavedStateHandle getSavedStateHandle();
+ method public androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
+ method public androidx.lifecycle.ViewModelStore getViewModelStore();
+ property public final android.os.Bundle? arguments;
+ property public final androidx.navigation.NavDestination destination;
+ property public final String id;
+ property public final androidx.lifecycle.SavedStateHandle savedStateHandle;
+ property public androidx.savedstate.SavedStateRegistry savedStateRegistry;
+ }
+
+ public final class NavDeepLink {
+ method public String? getAction();
+ method public String? getMimeType();
+ method public String? getUriPattern();
+ property public final String? action;
+ property public final String? mimeType;
+ property public final String? uriPattern;
+ }
+
+ public static final class NavDeepLink.Builder {
+ method public androidx.navigation.NavDeepLink build();
+ method public static androidx.navigation.NavDeepLink.Builder fromAction(String action);
+ method public static androidx.navigation.NavDeepLink.Builder fromMimeType(String mimeType);
+ method public static androidx.navigation.NavDeepLink.Builder fromUriPattern(String uriPattern);
+ method public androidx.navigation.NavDeepLink.Builder setAction(String action);
+ method public androidx.navigation.NavDeepLink.Builder setMimeType(String mimeType);
+ method public androidx.navigation.NavDeepLink.Builder setUriPattern(String uriPattern);
+ }
+
+ @kotlin.DslMarker public @interface NavDeepLinkDsl {
+ }
+
+ @androidx.navigation.NavDeepLinkDsl public final class NavDeepLinkDslBuilder {
+ ctor public NavDeepLinkDslBuilder();
+ method public String? getAction();
+ method public String? getMimeType();
+ method public String? getUriPattern();
+ method public void setAction(String?);
+ method public void setMimeType(String?);
+ method public void setUriPattern(String?);
+ property public final String? action;
+ property public final String? mimeType;
+ property public final String? uriPattern;
+ }
+
+ public final class NavDeepLinkDslBuilderKt {
+ method public static androidx.navigation.NavDeepLink navDeepLink(kotlin.jvm.functions.Function1<? super androidx.navigation.NavDeepLinkDslBuilder,kotlin.Unit> deepLinkBuilder);
+ }
+
+ public class NavDeepLinkRequest {
+ method public String? getAction();
+ method public String? getMimeType();
+ method public android.net.Uri? getUri();
+ property public String? action;
+ property public String? mimeType;
+ property public android.net.Uri? uri;
+ }
+
+ public static final class NavDeepLinkRequest.Builder {
+ method public androidx.navigation.NavDeepLinkRequest build();
+ method public static androidx.navigation.NavDeepLinkRequest.Builder fromAction(String action);
+ method public static androidx.navigation.NavDeepLinkRequest.Builder fromMimeType(String mimeType);
+ method public static androidx.navigation.NavDeepLinkRequest.Builder fromUri(android.net.Uri uri);
+ method public androidx.navigation.NavDeepLinkRequest.Builder setAction(String action);
+ method public androidx.navigation.NavDeepLinkRequest.Builder setMimeType(String mimeType);
+ method public androidx.navigation.NavDeepLinkRequest.Builder setUri(android.net.Uri uri);
+ field public static final androidx.navigation.NavDeepLinkRequest.Builder.Companion Companion;
+ }
+
+ public static final class NavDeepLinkRequest.Builder.Companion {
+ method public androidx.navigation.NavDeepLinkRequest.Builder fromAction(String action);
+ method public androidx.navigation.NavDeepLinkRequest.Builder fromMimeType(String mimeType);
+ method public androidx.navigation.NavDeepLinkRequest.Builder fromUri(android.net.Uri uri);
+ }
+
+ public class NavDestination {
+ ctor public NavDestination(String navigatorName);
+ ctor public NavDestination(androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
+ method public final void addArgument(String argumentName, androidx.navigation.NavArgument argument);
+ method public final void addDeepLink(String uriPattern);
+ method public final void addDeepLink(androidx.navigation.NavDeepLink navDeepLink);
+ method public final androidx.navigation.NavAction? getAction(@IdRes int id);
+ method public final java.util.Map<java.lang.String,androidx.navigation.NavArgument> getArguments();
+ method public static final kotlin.sequences.Sequence<androidx.navigation.NavDestination> getHierarchy(androidx.navigation.NavDestination);
+ method @IdRes public final int getId();
+ method public final CharSequence? getLabel();
+ method public final String getNavigatorName();
+ method public final androidx.navigation.NavGraph? getParent();
+ method public final String? getRoute();
+ method public boolean hasDeepLink(android.net.Uri deepLink);
+ method public boolean hasDeepLink(androidx.navigation.NavDeepLinkRequest deepLinkRequest);
+ method @CallSuper public void onInflate(android.content.Context context, android.util.AttributeSet attrs);
+ method protected static final <C> Class<? extends C> parseClassFromName(android.content.Context context, String name, Class<? extends C> expectedClassType);
+ method public final void putAction(@IdRes int actionId, @IdRes int destId);
+ method public final void putAction(@IdRes int actionId, androidx.navigation.NavAction action);
+ method public final void removeAction(@IdRes int actionId);
+ method public final void removeArgument(String argumentName);
+ method public final void setId(@IdRes int);
+ method public final void setLabel(CharSequence?);
+ method public final void setRoute(String?);
+ property public final java.util.Map<java.lang.String,androidx.navigation.NavArgument> arguments;
+ property @IdRes public final int id;
+ property public final CharSequence? label;
+ property public final String navigatorName;
+ property public final androidx.navigation.NavGraph? parent;
+ property public final String? route;
+ field public static final androidx.navigation.NavDestination.Companion Companion;
+ }
+
+ @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public static @interface NavDestination.ClassType {
+ method public abstract kotlin.reflect.KClass<?> value();
+ property public abstract kotlin.reflect.KClass<?> value;
+ }
+
+ public static final class NavDestination.Companion {
+ method public kotlin.sequences.Sequence<androidx.navigation.NavDestination> getHierarchy(androidx.navigation.NavDestination);
+ method protected <C> Class<? extends C> parseClassFromName(android.content.Context context, String name, Class<? extends C> expectedClassType);
+ }
+
+ @androidx.navigation.NavDestinationDsl public class NavDestinationBuilder<D extends androidx.navigation.NavDestination> {
+ ctor @Deprecated public NavDestinationBuilder(androidx.navigation.Navigator<? extends D> navigator, @IdRes int id);
+ ctor public NavDestinationBuilder(androidx.navigation.Navigator<? extends D> navigator, String? route);
+ method @Deprecated public final void action(int actionId, kotlin.jvm.functions.Function1<? super androidx.navigation.NavActionBuilder,kotlin.Unit> actionBuilder);
+ method public final void argument(String name, kotlin.jvm.functions.Function1<? super androidx.navigation.NavArgumentBuilder,kotlin.Unit> argumentBuilder);
+ method public D build();
+ method public final void deepLink(String uriPattern);
+ method public final void deepLink(kotlin.jvm.functions.Function1<? super androidx.navigation.NavDeepLinkDslBuilder,kotlin.Unit> navDeepLink);
+ method public final int getId();
+ method public final CharSequence? getLabel();
+ method protected final androidx.navigation.Navigator<? extends D> getNavigator();
+ method public final String? getRoute();
+ method public final void setLabel(CharSequence?);
+ property public final int id;
+ property public final CharSequence? label;
+ property protected final androidx.navigation.Navigator<? extends D> navigator;
+ property public final String? route;
+ }
+
+ @kotlin.DslMarker public @interface NavDestinationDsl {
+ }
+
+ public interface NavDirections {
+ method @IdRes public int getActionId();
+ method public android.os.Bundle getArguments();
+ property @IdRes public abstract int actionId;
+ property public abstract android.os.Bundle arguments;
+ }
+
+ public class NavGraph extends androidx.navigation.NavDestination implements java.lang.Iterable<androidx.navigation.NavDestination> kotlin.jvm.internal.markers.KMappedMarker {
+ ctor public NavGraph(androidx.navigation.Navigator<? extends androidx.navigation.NavGraph> navGraphNavigator);
+ method public final void addAll(androidx.navigation.NavGraph other);
+ method public final void addDestination(androidx.navigation.NavDestination node);
+ method public final void addDestinations(java.util.Collection<? extends androidx.navigation.NavDestination> nodes);
+ method public final void addDestinations(androidx.navigation.NavDestination... nodes);
+ method public final void clear();
+ method public final androidx.navigation.NavDestination? findNode(@IdRes int resId);
+ method public final androidx.navigation.NavDestination? findNode(String? route);
+ method public static final androidx.navigation.NavDestination findStartDestination(androidx.navigation.NavGraph);
+ method @Deprecated @IdRes public final int getStartDestination();
+ method @IdRes public final int getStartDestinationId();
+ method public final String? getStartDestinationRoute();
+ method public final java.util.Iterator<androidx.navigation.NavDestination> iterator();
+ method public final void remove(androidx.navigation.NavDestination node);
+ method public final void setStartDestination(int startDestId);
+ method public final void setStartDestination(String startDestRoute);
+ property @IdRes public final int startDestinationId;
+ property public final String? startDestinationRoute;
+ field public static final androidx.navigation.NavGraph.Companion Companion;
+ }
+
+ public static final class NavGraph.Companion {
+ method public androidx.navigation.NavDestination findStartDestination(androidx.navigation.NavGraph);
+ }
+
+ @androidx.navigation.NavDestinationDsl public class NavGraphBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.NavGraph> {
+ ctor @Deprecated public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, @IdRes int id, @IdRes int startDestination);
+ ctor public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, String startDestination, String? route);
+ method public final void addDestination(androidx.navigation.NavDestination destination);
+ method public androidx.navigation.NavGraph build();
+ method public final <D extends androidx.navigation.NavDestination> void destination(androidx.navigation.NavDestinationBuilder<? extends D> navDestination);
+ method public final androidx.navigation.NavigatorProvider getProvider();
+ method public final operator void unaryPlus(androidx.navigation.NavDestination);
+ property public final androidx.navigation.NavigatorProvider provider;
+ }
+
+ public final class NavGraphBuilderKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method @Deprecated public static inline void navigation(androidx.navigation.NavGraphBuilder, @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method public static inline void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavGraphKt {
+ method public static operator boolean contains(androidx.navigation.NavGraph, @IdRes int id);
+ method public static operator boolean contains(androidx.navigation.NavGraph, String route);
+ method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, @IdRes int id);
+ method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, String route);
+ method public static inline operator void minusAssign(androidx.navigation.NavGraph, androidx.navigation.NavDestination node);
+ method public static inline operator void plusAssign(androidx.navigation.NavGraph, androidx.navigation.NavDestination node);
+ method public static inline operator void plusAssign(androidx.navigation.NavGraph, androidx.navigation.NavGraph other);
+ }
+
+ @androidx.navigation.Navigator.Name("navigation") public class NavGraphNavigator extends androidx.navigation.Navigator<androidx.navigation.NavGraph> {
+ ctor public NavGraphNavigator(androidx.navigation.NavigatorProvider navigatorProvider);
+ method public androidx.navigation.NavGraph createDestination();
+ }
+
+ public final class NavOptions {
+ method @AnimRes @AnimatorRes public int getEnterAnim();
+ method @AnimRes @AnimatorRes public int getExitAnim();
+ method @AnimRes @AnimatorRes public int getPopEnterAnim();
+ method @AnimRes @AnimatorRes public int getPopExitAnim();
+ method @Deprecated @IdRes public int getPopUpTo();
+ method @IdRes public int getPopUpToId();
+ method public String? getPopUpToRoute();
+ method public boolean isPopUpToInclusive();
+ method public boolean shouldLaunchSingleTop();
+ method public boolean shouldPopUpToSaveState();
+ method public boolean shouldRestoreState();
+ property @AnimRes @AnimatorRes public final int enterAnim;
+ property @AnimRes @AnimatorRes public final int exitAnim;
+ property @AnimRes @AnimatorRes public final int popEnterAnim;
+ property @AnimRes @AnimatorRes public final int popExitAnim;
+ property @IdRes public final int popUpToId;
+ property public final String? popUpToRoute;
+ }
+
+ public static final class NavOptions.Builder {
+ ctor public NavOptions.Builder();
+ method public androidx.navigation.NavOptions build();
+ method public androidx.navigation.NavOptions.Builder setEnterAnim(@AnimRes @AnimatorRes int enterAnim);
+ method public androidx.navigation.NavOptions.Builder setExitAnim(@AnimRes @AnimatorRes int exitAnim);
+ method public androidx.navigation.NavOptions.Builder setLaunchSingleTop(boolean singleTop);
+ method public androidx.navigation.NavOptions.Builder setPopEnterAnim(@AnimRes @AnimatorRes int popEnterAnim);
+ method public androidx.navigation.NavOptions.Builder setPopExitAnim(@AnimRes @AnimatorRes int popExitAnim);
+ method public androidx.navigation.NavOptions.Builder setPopUpTo(@IdRes int destinationId, boolean inclusive, optional boolean saveState);
+ method public androidx.navigation.NavOptions.Builder setPopUpTo(@IdRes int destinationId, boolean inclusive);
+ method public androidx.navigation.NavOptions.Builder setPopUpTo(String? route, boolean inclusive, optional boolean saveState);
+ method public androidx.navigation.NavOptions.Builder setPopUpTo(String? route, boolean inclusive);
+ method public androidx.navigation.NavOptions.Builder setRestoreState(boolean restoreState);
+ }
+
+ @androidx.navigation.NavOptionsDsl public final class NavOptionsBuilder {
+ ctor public NavOptionsBuilder();
+ method public void anim(kotlin.jvm.functions.Function1<? super androidx.navigation.AnimBuilder,kotlin.Unit> animBuilder);
+ method public boolean getLaunchSingleTop();
+ method @Deprecated public int getPopUpTo();
+ method public int getPopUpToId();
+ method public String? getPopUpToRoute();
+ method public boolean getRestoreState();
+ method public void popUpTo(@IdRes int id, optional kotlin.jvm.functions.Function1<? super androidx.navigation.PopUpToBuilder,kotlin.Unit> popUpToBuilder);
+ method public void popUpTo(String route, optional kotlin.jvm.functions.Function1<? super androidx.navigation.PopUpToBuilder,kotlin.Unit> popUpToBuilder);
+ method public void setLaunchSingleTop(boolean);
+ method @Deprecated public void setPopUpTo(int);
+ method public void setRestoreState(boolean);
+ property public final boolean launchSingleTop;
+ property @Deprecated public final int popUpTo;
+ property public final int popUpToId;
+ property public final String? popUpToRoute;
+ property public final boolean restoreState;
+ }
+
+ public final class NavOptionsBuilderKt {
+ method public static androidx.navigation.NavOptions navOptions(kotlin.jvm.functions.Function1<? super androidx.navigation.NavOptionsBuilder,kotlin.Unit> optionsBuilder);
+ }
+
+ @kotlin.DslMarker public @interface NavOptionsDsl {
+ }
+
+ public abstract class NavType<T> {
+ ctor public NavType(boolean isNullableAllowed);
+ method public static androidx.navigation.NavType<?> fromArgType(String? type, String? packageName);
+ method public abstract operator T? get(android.os.Bundle bundle, String key);
+ method public String getName();
+ method public boolean isNullableAllowed();
+ method public abstract T! parseValue(String value);
+ method public abstract void put(android.os.Bundle bundle, String key, T? value);
+ property public boolean isNullableAllowed;
+ property public String name;
+ field public static final androidx.navigation.NavType<boolean[]> BoolArrayType;
+ field public static final androidx.navigation.NavType<java.lang.Boolean> BoolType;
+ field public static final androidx.navigation.NavType.Companion Companion;
+ field public static final androidx.navigation.NavType<float[]> FloatArrayType;
+ field public static final androidx.navigation.NavType<java.lang.Float> FloatType;
+ field public static final androidx.navigation.NavType<int[]> IntArrayType;
+ field public static final androidx.navigation.NavType<java.lang.Integer> IntType;
+ field public static final androidx.navigation.NavType<long[]> LongArrayType;
+ field public static final androidx.navigation.NavType<java.lang.Long> LongType;
+ field public static final androidx.navigation.NavType<java.lang.Integer> ReferenceType;
+ field public static final androidx.navigation.NavType<java.lang.String[]> StringArrayType;
+ field public static final androidx.navigation.NavType<java.lang.String> StringType;
+ }
+
+ public static final class NavType.Companion {
+ method public androidx.navigation.NavType<?> fromArgType(String? type, String? packageName);
+ }
+
+ public static final class NavType.EnumType<D extends java.lang.Enum<?>> extends androidx.navigation.NavType.SerializableType<D> {
+ ctor public NavType.EnumType(Class<D> type);
+ property public String name;
+ }
+
+ public static final class NavType.ParcelableArrayType<D extends android.os.Parcelable> extends androidx.navigation.NavType<D[]> {
+ ctor public NavType.ParcelableArrayType(Class<D> type);
+ method public D![]? get(android.os.Bundle bundle, String key);
+ method public D![] parseValue(String value);
+ method public void put(android.os.Bundle bundle, String key, D![]? value);
+ property public String name;
+ }
+
+ public static final class NavType.ParcelableType<D> extends androidx.navigation.NavType<D> {
+ ctor public NavType.ParcelableType(Class<D> type);
+ method public D? get(android.os.Bundle bundle, String key);
+ method public D! parseValue(String value);
+ method public void put(android.os.Bundle bundle, String key, D? value);
+ property public String name;
+ }
+
+ public static final class NavType.SerializableArrayType<D extends java.io.Serializable> extends androidx.navigation.NavType<D[]> {
+ ctor public NavType.SerializableArrayType(Class<D> type);
+ method public D![]? get(android.os.Bundle bundle, String key);
+ method public D![] parseValue(String value);
+ method public void put(android.os.Bundle bundle, String key, D![]? value);
+ property public String name;
+ }
+
+ public static class NavType.SerializableType<D extends java.io.Serializable> extends androidx.navigation.NavType<D> {
+ ctor public NavType.SerializableType(Class<D> type);
+ method public D? get(android.os.Bundle bundle, String key);
+ method public D parseValue(String value);
+ method public void put(android.os.Bundle bundle, String key, D value);
+ property public String name;
+ }
+
+ public abstract class Navigator<D extends androidx.navigation.NavDestination> {
+ ctor public Navigator();
+ method public abstract D createDestination();
+ method protected final androidx.navigation.NavigatorState getState();
+ method public final boolean isAttached();
+ method public void navigate(java.util.List<androidx.navigation.NavBackStackEntry> entries, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ method public androidx.navigation.NavDestination? navigate(D destination, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ method @CallSuper public void onAttach(androidx.navigation.NavigatorState state);
+ method public void onLaunchSingleTop(androidx.navigation.NavBackStackEntry backStackEntry);
+ method public void onRestoreState(android.os.Bundle savedState);
+ method public android.os.Bundle? onSaveState();
+ method public void popBackStack(androidx.navigation.NavBackStackEntry popUpTo, boolean savedState);
+ method public boolean popBackStack();
+ property public final boolean isAttached;
+ property protected final androidx.navigation.NavigatorState state;
+ }
+
+ public static interface Navigator.Extras {
+ }
+
+ @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public static @interface Navigator.Name {
+ method public abstract String value();
+ property public abstract String value;
+ }
+
+ public class NavigatorProvider {
+ ctor public NavigatorProvider();
+ method public final androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>? addNavigator(androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
+ method @CallSuper public androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>? addNavigator(String name, androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
+ method public final <T extends androidx.navigation.Navigator<?>> T getNavigator(Class<T> navigatorClass);
+ method @CallSuper public <T extends androidx.navigation.Navigator<?>> T getNavigator(String name);
+ }
+
+ public final class NavigatorProviderKt {
+ method public static inline operator <T extends androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>> T get(androidx.navigation.NavigatorProvider, String name);
+ method public static inline operator <T extends androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>> T get(androidx.navigation.NavigatorProvider, kotlin.reflect.KClass<T> clazz);
+ method public static inline operator void plusAssign(androidx.navigation.NavigatorProvider, androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
+ method public static inline operator androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>? set(androidx.navigation.NavigatorProvider, String name, androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
+ }
+
+ public abstract class NavigatorState {
+ ctor public NavigatorState();
+ method public abstract androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments);
+ method public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> getBackStack();
+ method public final kotlinx.coroutines.flow.StateFlow<java.util.Set<androidx.navigation.NavBackStackEntry>> getTransitionsInProgress();
+ method public void markTransitionComplete(androidx.navigation.NavBackStackEntry entry);
+ method @CallSuper public void onLaunchSingleTop(androidx.navigation.NavBackStackEntry backStackEntry);
+ method public void pop(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState);
+ method public void popWithTransition(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState);
+ method public void push(androidx.navigation.NavBackStackEntry backStackEntry);
+ method public void pushWithTransition(androidx.navigation.NavBackStackEntry backStackEntry);
+ property public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> backStack;
+ property public final kotlinx.coroutines.flow.StateFlow<java.util.Set<androidx.navigation.NavBackStackEntry>> transitionsInProgress;
+ }
+
+ @androidx.navigation.NavOptionsDsl public final class PopUpToBuilder {
+ ctor public PopUpToBuilder();
+ method public boolean getInclusive();
+ method public boolean getSaveState();
+ method public void setInclusive(boolean);
+ method public void setSaveState(boolean);
+ property public final boolean inclusive;
+ property public final boolean saveState;
+ }
+
+}
+
diff --git a/navigation/navigation-common/api/public_plus_experimental_2.5.0-beta02.txt b/navigation/navigation-common/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..fe9681f
--- /dev/null
+++ b/navigation/navigation-common/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,522 @@
+// Signature format: 4.0
+package androidx.navigation {
+
+ public final class ActionOnlyNavDirections implements androidx.navigation.NavDirections {
+ ctor public ActionOnlyNavDirections(int actionId);
+ method public int component1();
+ method public androidx.navigation.ActionOnlyNavDirections copy(int actionId);
+ method public int getActionId();
+ method public android.os.Bundle getArguments();
+ property public int actionId;
+ property public android.os.Bundle arguments;
+ }
+
+ @androidx.navigation.NavOptionsDsl public final class AnimBuilder {
+ ctor public AnimBuilder();
+ method public int getEnter();
+ method public int getExit();
+ method public int getPopEnter();
+ method public int getPopExit();
+ method public void setEnter(int);
+ method public void setExit(int);
+ method public void setPopEnter(int);
+ method public void setPopExit(int);
+ property public final int enter;
+ property public final int exit;
+ property public final int popEnter;
+ property public final int popExit;
+ }
+
+ public interface FloatingWindow {
+ }
+
+ public final class NamedNavArgument {
+ method public operator String component1();
+ method public operator androidx.navigation.NavArgument component2();
+ method public androidx.navigation.NavArgument getArgument();
+ method public String getName();
+ property public final androidx.navigation.NavArgument argument;
+ property public final String name;
+ }
+
+ public final class NamedNavArgumentKt {
+ method public static androidx.navigation.NamedNavArgument navArgument(String name, kotlin.jvm.functions.Function1<? super androidx.navigation.NavArgumentBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavAction {
+ ctor public NavAction(@IdRes int destinationId, optional androidx.navigation.NavOptions? navOptions, optional android.os.Bundle? defaultArguments);
+ ctor public NavAction(@IdRes int destinationId, optional androidx.navigation.NavOptions? navOptions);
+ ctor public NavAction(@IdRes int destinationId);
+ method public android.os.Bundle? getDefaultArguments();
+ method public int getDestinationId();
+ method public androidx.navigation.NavOptions? getNavOptions();
+ method public void setDefaultArguments(android.os.Bundle?);
+ method public void setNavOptions(androidx.navigation.NavOptions?);
+ property public final android.os.Bundle? defaultArguments;
+ property public final int destinationId;
+ property public final androidx.navigation.NavOptions? navOptions;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class NavActionBuilder {
+ ctor public NavActionBuilder();
+ method public java.util.Map<java.lang.String,java.lang.Object> getDefaultArguments();
+ method public int getDestinationId();
+ method public void navOptions(kotlin.jvm.functions.Function1<? super androidx.navigation.NavOptionsBuilder,kotlin.Unit> optionsBuilder);
+ method public void setDestinationId(int);
+ property public final java.util.Map<java.lang.String,java.lang.Object> defaultArguments;
+ property public final int destinationId;
+ }
+
+ public interface NavArgs {
+ }
+
+ public final class NavArgsLazy<Args extends androidx.navigation.NavArgs> implements kotlin.Lazy<Args> {
+ ctor public NavArgsLazy(kotlin.reflect.KClass<Args> navArgsClass, kotlin.jvm.functions.Function0<android.os.Bundle> argumentProducer);
+ method public Args getValue();
+ method public boolean isInitialized();
+ property public Args value;
+ }
+
+ public final class NavArgsLazyKt {
+ }
+
+ public final class NavArgument {
+ method public Object? getDefaultValue();
+ method public androidx.navigation.NavType<java.lang.Object> getType();
+ method public boolean isDefaultValuePresent();
+ method public boolean isNullable();
+ property public final Object? defaultValue;
+ property public final boolean isDefaultValuePresent;
+ property public final boolean isNullable;
+ property public final androidx.navigation.NavType<java.lang.Object> type;
+ }
+
+ public static final class NavArgument.Builder {
+ ctor public NavArgument.Builder();
+ method public androidx.navigation.NavArgument build();
+ method public androidx.navigation.NavArgument.Builder setDefaultValue(Object? defaultValue);
+ method public androidx.navigation.NavArgument.Builder setIsNullable(boolean isNullable);
+ method public <T> androidx.navigation.NavArgument.Builder setType(androidx.navigation.NavType<T> type);
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class NavArgumentBuilder {
+ ctor public NavArgumentBuilder();
+ method public androidx.navigation.NavArgument build();
+ method public Object? getDefaultValue();
+ method public boolean getNullable();
+ method public androidx.navigation.NavType<?> getType();
+ method public void setDefaultValue(Object?);
+ method public void setNullable(boolean);
+ method public void setType(androidx.navigation.NavType<?>);
+ property public final Object? defaultValue;
+ property public final boolean nullable;
+ property public final androidx.navigation.NavType<?> type;
+ }
+
+ public final class NavBackStackEntry implements androidx.lifecycle.HasDefaultViewModelProviderFactory androidx.lifecycle.LifecycleOwner androidx.savedstate.SavedStateRegistryOwner androidx.lifecycle.ViewModelStoreOwner {
+ method public android.os.Bundle? getArguments();
+ method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory();
+ method public androidx.navigation.NavDestination getDestination();
+ method public String getId();
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ method public androidx.lifecycle.SavedStateHandle getSavedStateHandle();
+ method public androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
+ method public androidx.lifecycle.ViewModelStore getViewModelStore();
+ property public final android.os.Bundle? arguments;
+ property public final androidx.navigation.NavDestination destination;
+ property public final String id;
+ property public final androidx.lifecycle.SavedStateHandle savedStateHandle;
+ property public androidx.savedstate.SavedStateRegistry savedStateRegistry;
+ }
+
+ public final class NavDeepLink {
+ method public String? getAction();
+ method public String? getMimeType();
+ method public String? getUriPattern();
+ property public final String? action;
+ property public final String? mimeType;
+ property public final String? uriPattern;
+ }
+
+ public static final class NavDeepLink.Builder {
+ method public androidx.navigation.NavDeepLink build();
+ method public static androidx.navigation.NavDeepLink.Builder fromAction(String action);
+ method public static androidx.navigation.NavDeepLink.Builder fromMimeType(String mimeType);
+ method public static androidx.navigation.NavDeepLink.Builder fromUriPattern(String uriPattern);
+ method public androidx.navigation.NavDeepLink.Builder setAction(String action);
+ method public androidx.navigation.NavDeepLink.Builder setMimeType(String mimeType);
+ method public androidx.navigation.NavDeepLink.Builder setUriPattern(String uriPattern);
+ }
+
+ @kotlin.DslMarker public @interface NavDeepLinkDsl {
+ }
+
+ @androidx.navigation.NavDeepLinkDsl public final class NavDeepLinkDslBuilder {
+ ctor public NavDeepLinkDslBuilder();
+ method public String? getAction();
+ method public String? getMimeType();
+ method public String? getUriPattern();
+ method public void setAction(String?);
+ method public void setMimeType(String?);
+ method public void setUriPattern(String?);
+ property public final String? action;
+ property public final String? mimeType;
+ property public final String? uriPattern;
+ }
+
+ public final class NavDeepLinkDslBuilderKt {
+ method public static androidx.navigation.NavDeepLink navDeepLink(kotlin.jvm.functions.Function1<? super androidx.navigation.NavDeepLinkDslBuilder,kotlin.Unit> deepLinkBuilder);
+ }
+
+ public class NavDeepLinkRequest {
+ method public String? getAction();
+ method public String? getMimeType();
+ method public android.net.Uri? getUri();
+ property public String? action;
+ property public String? mimeType;
+ property public android.net.Uri? uri;
+ }
+
+ public static final class NavDeepLinkRequest.Builder {
+ method public androidx.navigation.NavDeepLinkRequest build();
+ method public static androidx.navigation.NavDeepLinkRequest.Builder fromAction(String action);
+ method public static androidx.navigation.NavDeepLinkRequest.Builder fromMimeType(String mimeType);
+ method public static androidx.navigation.NavDeepLinkRequest.Builder fromUri(android.net.Uri uri);
+ method public androidx.navigation.NavDeepLinkRequest.Builder setAction(String action);
+ method public androidx.navigation.NavDeepLinkRequest.Builder setMimeType(String mimeType);
+ method public androidx.navigation.NavDeepLinkRequest.Builder setUri(android.net.Uri uri);
+ field public static final androidx.navigation.NavDeepLinkRequest.Builder.Companion Companion;
+ }
+
+ public static final class NavDeepLinkRequest.Builder.Companion {
+ method public androidx.navigation.NavDeepLinkRequest.Builder fromAction(String action);
+ method public androidx.navigation.NavDeepLinkRequest.Builder fromMimeType(String mimeType);
+ method public androidx.navigation.NavDeepLinkRequest.Builder fromUri(android.net.Uri uri);
+ }
+
+ public class NavDestination {
+ ctor public NavDestination(String navigatorName);
+ ctor public NavDestination(androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
+ method public final void addArgument(String argumentName, androidx.navigation.NavArgument argument);
+ method public final void addDeepLink(String uriPattern);
+ method public final void addDeepLink(androidx.navigation.NavDeepLink navDeepLink);
+ method public final androidx.navigation.NavAction? getAction(@IdRes int id);
+ method public final java.util.Map<java.lang.String,androidx.navigation.NavArgument> getArguments();
+ method public static final kotlin.sequences.Sequence<androidx.navigation.NavDestination> getHierarchy(androidx.navigation.NavDestination);
+ method @IdRes public final int getId();
+ method public final CharSequence? getLabel();
+ method public final String getNavigatorName();
+ method public final androidx.navigation.NavGraph? getParent();
+ method public final String? getRoute();
+ method public boolean hasDeepLink(android.net.Uri deepLink);
+ method public boolean hasDeepLink(androidx.navigation.NavDeepLinkRequest deepLinkRequest);
+ method @CallSuper public void onInflate(android.content.Context context, android.util.AttributeSet attrs);
+ method protected static final <C> Class<? extends C> parseClassFromName(android.content.Context context, String name, Class<? extends C> expectedClassType);
+ method public final void putAction(@IdRes int actionId, @IdRes int destId);
+ method public final void putAction(@IdRes int actionId, androidx.navigation.NavAction action);
+ method public final void removeAction(@IdRes int actionId);
+ method public final void removeArgument(String argumentName);
+ method public final void setId(@IdRes int);
+ method public final void setLabel(CharSequence?);
+ method public final void setRoute(String?);
+ property public final java.util.Map<java.lang.String,androidx.navigation.NavArgument> arguments;
+ property @IdRes public final int id;
+ property public final CharSequence? label;
+ property public final String navigatorName;
+ property public final androidx.navigation.NavGraph? parent;
+ property public final String? route;
+ field public static final androidx.navigation.NavDestination.Companion Companion;
+ }
+
+ @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public static @interface NavDestination.ClassType {
+ method public abstract kotlin.reflect.KClass<?> value();
+ property public abstract kotlin.reflect.KClass<?> value;
+ }
+
+ public static final class NavDestination.Companion {
+ method public kotlin.sequences.Sequence<androidx.navigation.NavDestination> getHierarchy(androidx.navigation.NavDestination);
+ method protected <C> Class<? extends C> parseClassFromName(android.content.Context context, String name, Class<? extends C> expectedClassType);
+ }
+
+ @androidx.navigation.NavDestinationDsl public class NavDestinationBuilder<D extends androidx.navigation.NavDestination> {
+ ctor @Deprecated public NavDestinationBuilder(androidx.navigation.Navigator<? extends D> navigator, @IdRes int id);
+ ctor public NavDestinationBuilder(androidx.navigation.Navigator<? extends D> navigator, String? route);
+ method @Deprecated public final void action(int actionId, kotlin.jvm.functions.Function1<? super androidx.navigation.NavActionBuilder,kotlin.Unit> actionBuilder);
+ method public final void argument(String name, kotlin.jvm.functions.Function1<? super androidx.navigation.NavArgumentBuilder,kotlin.Unit> argumentBuilder);
+ method public D build();
+ method public final void deepLink(String uriPattern);
+ method public final void deepLink(kotlin.jvm.functions.Function1<? super androidx.navigation.NavDeepLinkDslBuilder,kotlin.Unit> navDeepLink);
+ method public final int getId();
+ method public final CharSequence? getLabel();
+ method protected final androidx.navigation.Navigator<? extends D> getNavigator();
+ method public final String? getRoute();
+ method public final void setLabel(CharSequence?);
+ property public final int id;
+ property public final CharSequence? label;
+ property protected final androidx.navigation.Navigator<? extends D> navigator;
+ property public final String? route;
+ }
+
+ @kotlin.DslMarker public @interface NavDestinationDsl {
+ }
+
+ public interface NavDirections {
+ method @IdRes public int getActionId();
+ method public android.os.Bundle getArguments();
+ property @IdRes public abstract int actionId;
+ property public abstract android.os.Bundle arguments;
+ }
+
+ public class NavGraph extends androidx.navigation.NavDestination implements java.lang.Iterable<androidx.navigation.NavDestination> kotlin.jvm.internal.markers.KMappedMarker {
+ ctor public NavGraph(androidx.navigation.Navigator<? extends androidx.navigation.NavGraph> navGraphNavigator);
+ method public final void addAll(androidx.navigation.NavGraph other);
+ method public final void addDestination(androidx.navigation.NavDestination node);
+ method public final void addDestinations(java.util.Collection<? extends androidx.navigation.NavDestination> nodes);
+ method public final void addDestinations(androidx.navigation.NavDestination... nodes);
+ method public final void clear();
+ method public final androidx.navigation.NavDestination? findNode(@IdRes int resId);
+ method public final androidx.navigation.NavDestination? findNode(String? route);
+ method public static final androidx.navigation.NavDestination findStartDestination(androidx.navigation.NavGraph);
+ method @Deprecated @IdRes public final int getStartDestination();
+ method @IdRes public final int getStartDestinationId();
+ method public final String? getStartDestinationRoute();
+ method public final java.util.Iterator<androidx.navigation.NavDestination> iterator();
+ method public final void remove(androidx.navigation.NavDestination node);
+ method public final void setStartDestination(int startDestId);
+ method public final void setStartDestination(String startDestRoute);
+ property @IdRes public final int startDestinationId;
+ property public final String? startDestinationRoute;
+ field public static final androidx.navigation.NavGraph.Companion Companion;
+ }
+
+ public static final class NavGraph.Companion {
+ method public androidx.navigation.NavDestination findStartDestination(androidx.navigation.NavGraph);
+ }
+
+ @androidx.navigation.NavDestinationDsl public class NavGraphBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.NavGraph> {
+ ctor @Deprecated public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, @IdRes int id, @IdRes int startDestination);
+ ctor public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, String startDestination, String? route);
+ method public final void addDestination(androidx.navigation.NavDestination destination);
+ method public androidx.navigation.NavGraph build();
+ method public final <D extends androidx.navigation.NavDestination> void destination(androidx.navigation.NavDestinationBuilder<? extends D> navDestination);
+ method public final androidx.navigation.NavigatorProvider getProvider();
+ method public final operator void unaryPlus(androidx.navigation.NavDestination);
+ property public final androidx.navigation.NavigatorProvider provider;
+ }
+
+ public final class NavGraphBuilderKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method @Deprecated public static inline void navigation(androidx.navigation.NavGraphBuilder, @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method public static inline void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavGraphKt {
+ method public static operator boolean contains(androidx.navigation.NavGraph, @IdRes int id);
+ method public static operator boolean contains(androidx.navigation.NavGraph, String route);
+ method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, @IdRes int id);
+ method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, String route);
+ method public static inline operator void minusAssign(androidx.navigation.NavGraph, androidx.navigation.NavDestination node);
+ method public static inline operator void plusAssign(androidx.navigation.NavGraph, androidx.navigation.NavDestination node);
+ method public static inline operator void plusAssign(androidx.navigation.NavGraph, androidx.navigation.NavGraph other);
+ }
+
+ @androidx.navigation.Navigator.Name("navigation") public class NavGraphNavigator extends androidx.navigation.Navigator<androidx.navigation.NavGraph> {
+ ctor public NavGraphNavigator(androidx.navigation.NavigatorProvider navigatorProvider);
+ method public androidx.navigation.NavGraph createDestination();
+ }
+
+ public final class NavOptions {
+ method @AnimRes @AnimatorRes public int getEnterAnim();
+ method @AnimRes @AnimatorRes public int getExitAnim();
+ method @AnimRes @AnimatorRes public int getPopEnterAnim();
+ method @AnimRes @AnimatorRes public int getPopExitAnim();
+ method @Deprecated @IdRes public int getPopUpTo();
+ method @IdRes public int getPopUpToId();
+ method public String? getPopUpToRoute();
+ method public boolean isPopUpToInclusive();
+ method public boolean shouldLaunchSingleTop();
+ method public boolean shouldPopUpToSaveState();
+ method public boolean shouldRestoreState();
+ property @AnimRes @AnimatorRes public final int enterAnim;
+ property @AnimRes @AnimatorRes public final int exitAnim;
+ property @AnimRes @AnimatorRes public final int popEnterAnim;
+ property @AnimRes @AnimatorRes public final int popExitAnim;
+ property @IdRes public final int popUpToId;
+ property public final String? popUpToRoute;
+ }
+
+ public static final class NavOptions.Builder {
+ ctor public NavOptions.Builder();
+ method public androidx.navigation.NavOptions build();
+ method public androidx.navigation.NavOptions.Builder setEnterAnim(@AnimRes @AnimatorRes int enterAnim);
+ method public androidx.navigation.NavOptions.Builder setExitAnim(@AnimRes @AnimatorRes int exitAnim);
+ method public androidx.navigation.NavOptions.Builder setLaunchSingleTop(boolean singleTop);
+ method public androidx.navigation.NavOptions.Builder setPopEnterAnim(@AnimRes @AnimatorRes int popEnterAnim);
+ method public androidx.navigation.NavOptions.Builder setPopExitAnim(@AnimRes @AnimatorRes int popExitAnim);
+ method public androidx.navigation.NavOptions.Builder setPopUpTo(@IdRes int destinationId, boolean inclusive, optional boolean saveState);
+ method public androidx.navigation.NavOptions.Builder setPopUpTo(@IdRes int destinationId, boolean inclusive);
+ method public androidx.navigation.NavOptions.Builder setPopUpTo(String? route, boolean inclusive, optional boolean saveState);
+ method public androidx.navigation.NavOptions.Builder setPopUpTo(String? route, boolean inclusive);
+ method public androidx.navigation.NavOptions.Builder setRestoreState(boolean restoreState);
+ }
+
+ @androidx.navigation.NavOptionsDsl public final class NavOptionsBuilder {
+ ctor public NavOptionsBuilder();
+ method public void anim(kotlin.jvm.functions.Function1<? super androidx.navigation.AnimBuilder,kotlin.Unit> animBuilder);
+ method public boolean getLaunchSingleTop();
+ method @Deprecated public int getPopUpTo();
+ method public int getPopUpToId();
+ method public String? getPopUpToRoute();
+ method public boolean getRestoreState();
+ method public void popUpTo(@IdRes int id, optional kotlin.jvm.functions.Function1<? super androidx.navigation.PopUpToBuilder,kotlin.Unit> popUpToBuilder);
+ method public void popUpTo(String route, optional kotlin.jvm.functions.Function1<? super androidx.navigation.PopUpToBuilder,kotlin.Unit> popUpToBuilder);
+ method public void setLaunchSingleTop(boolean);
+ method @Deprecated public void setPopUpTo(int);
+ method public void setRestoreState(boolean);
+ property public final boolean launchSingleTop;
+ property @Deprecated public final int popUpTo;
+ property public final int popUpToId;
+ property public final String? popUpToRoute;
+ property public final boolean restoreState;
+ }
+
+ public final class NavOptionsBuilderKt {
+ method public static androidx.navigation.NavOptions navOptions(kotlin.jvm.functions.Function1<? super androidx.navigation.NavOptionsBuilder,kotlin.Unit> optionsBuilder);
+ }
+
+ @kotlin.DslMarker public @interface NavOptionsDsl {
+ }
+
+ public abstract class NavType<T> {
+ ctor public NavType(boolean isNullableAllowed);
+ method public static androidx.navigation.NavType<?> fromArgType(String? type, String? packageName);
+ method public abstract operator T? get(android.os.Bundle bundle, String key);
+ method public String getName();
+ method public boolean isNullableAllowed();
+ method public abstract T! parseValue(String value);
+ method public abstract void put(android.os.Bundle bundle, String key, T? value);
+ property public boolean isNullableAllowed;
+ property public String name;
+ field public static final androidx.navigation.NavType<boolean[]> BoolArrayType;
+ field public static final androidx.navigation.NavType<java.lang.Boolean> BoolType;
+ field public static final androidx.navigation.NavType.Companion Companion;
+ field public static final androidx.navigation.NavType<float[]> FloatArrayType;
+ field public static final androidx.navigation.NavType<java.lang.Float> FloatType;
+ field public static final androidx.navigation.NavType<int[]> IntArrayType;
+ field public static final androidx.navigation.NavType<java.lang.Integer> IntType;
+ field public static final androidx.navigation.NavType<long[]> LongArrayType;
+ field public static final androidx.navigation.NavType<java.lang.Long> LongType;
+ field public static final androidx.navigation.NavType<java.lang.Integer> ReferenceType;
+ field public static final androidx.navigation.NavType<java.lang.String[]> StringArrayType;
+ field public static final androidx.navigation.NavType<java.lang.String> StringType;
+ }
+
+ public static final class NavType.Companion {
+ method public androidx.navigation.NavType<?> fromArgType(String? type, String? packageName);
+ }
+
+ public static final class NavType.EnumType<D extends java.lang.Enum<?>> extends androidx.navigation.NavType.SerializableType<D> {
+ ctor public NavType.EnumType(Class<D> type);
+ property public String name;
+ }
+
+ public static final class NavType.ParcelableArrayType<D extends android.os.Parcelable> extends androidx.navigation.NavType<D[]> {
+ ctor public NavType.ParcelableArrayType(Class<D> type);
+ method public D![]? get(android.os.Bundle bundle, String key);
+ method public D![] parseValue(String value);
+ method public void put(android.os.Bundle bundle, String key, D![]? value);
+ property public String name;
+ }
+
+ public static final class NavType.ParcelableType<D> extends androidx.navigation.NavType<D> {
+ ctor public NavType.ParcelableType(Class<D> type);
+ method public D? get(android.os.Bundle bundle, String key);
+ method public D! parseValue(String value);
+ method public void put(android.os.Bundle bundle, String key, D? value);
+ property public String name;
+ }
+
+ public static final class NavType.SerializableArrayType<D extends java.io.Serializable> extends androidx.navigation.NavType<D[]> {
+ ctor public NavType.SerializableArrayType(Class<D> type);
+ method public D![]? get(android.os.Bundle bundle, String key);
+ method public D![] parseValue(String value);
+ method public void put(android.os.Bundle bundle, String key, D![]? value);
+ property public String name;
+ }
+
+ public static class NavType.SerializableType<D extends java.io.Serializable> extends androidx.navigation.NavType<D> {
+ ctor public NavType.SerializableType(Class<D> type);
+ method public D? get(android.os.Bundle bundle, String key);
+ method public D parseValue(String value);
+ method public void put(android.os.Bundle bundle, String key, D value);
+ property public String name;
+ }
+
+ public abstract class Navigator<D extends androidx.navigation.NavDestination> {
+ ctor public Navigator();
+ method public abstract D createDestination();
+ method protected final androidx.navigation.NavigatorState getState();
+ method public final boolean isAttached();
+ method public void navigate(java.util.List<androidx.navigation.NavBackStackEntry> entries, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ method public androidx.navigation.NavDestination? navigate(D destination, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ method @CallSuper public void onAttach(androidx.navigation.NavigatorState state);
+ method public void onLaunchSingleTop(androidx.navigation.NavBackStackEntry backStackEntry);
+ method public void onRestoreState(android.os.Bundle savedState);
+ method public android.os.Bundle? onSaveState();
+ method public void popBackStack(androidx.navigation.NavBackStackEntry popUpTo, boolean savedState);
+ method public boolean popBackStack();
+ property public final boolean isAttached;
+ property protected final androidx.navigation.NavigatorState state;
+ }
+
+ public static interface Navigator.Extras {
+ }
+
+ @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public static @interface Navigator.Name {
+ method public abstract String value();
+ property public abstract String value;
+ }
+
+ public class NavigatorProvider {
+ ctor public NavigatorProvider();
+ method public final androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>? addNavigator(androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
+ method @CallSuper public androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>? addNavigator(String name, androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
+ method public final <T extends androidx.navigation.Navigator<?>> T getNavigator(Class<T> navigatorClass);
+ method @CallSuper public <T extends androidx.navigation.Navigator<?>> T getNavigator(String name);
+ }
+
+ public final class NavigatorProviderKt {
+ method public static inline operator <T extends androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>> T get(androidx.navigation.NavigatorProvider, String name);
+ method public static inline operator <T extends androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>> T get(androidx.navigation.NavigatorProvider, kotlin.reflect.KClass<T> clazz);
+ method public static inline operator void plusAssign(androidx.navigation.NavigatorProvider, androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
+ method public static inline operator androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>? set(androidx.navigation.NavigatorProvider, String name, androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
+ }
+
+ public abstract class NavigatorState {
+ ctor public NavigatorState();
+ method public abstract androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments);
+ method public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> getBackStack();
+ method public final kotlinx.coroutines.flow.StateFlow<java.util.Set<androidx.navigation.NavBackStackEntry>> getTransitionsInProgress();
+ method public void markTransitionComplete(androidx.navigation.NavBackStackEntry entry);
+ method @CallSuper public void onLaunchSingleTop(androidx.navigation.NavBackStackEntry backStackEntry);
+ method public void pop(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState);
+ method public void popWithTransition(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState);
+ method public void push(androidx.navigation.NavBackStackEntry backStackEntry);
+ method public void pushWithTransition(androidx.navigation.NavBackStackEntry backStackEntry);
+ property public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> backStack;
+ property public final kotlinx.coroutines.flow.StateFlow<java.util.Set<androidx.navigation.NavBackStackEntry>> transitionsInProgress;
+ }
+
+ @androidx.navigation.NavOptionsDsl public final class PopUpToBuilder {
+ ctor public PopUpToBuilder();
+ method public boolean getInclusive();
+ method public boolean getSaveState();
+ method public void setInclusive(boolean);
+ method public void setSaveState(boolean);
+ property public final boolean inclusive;
+ property public final boolean saveState;
+ }
+
+}
+
diff --git a/navigation/navigation-common/api/res-2.5.0-beta02.txt b/navigation/navigation-common/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/navigation/navigation-common/api/res-2.5.0-beta02.txt
diff --git a/navigation/navigation-common/api/restricted_2.5.0-beta02.txt b/navigation/navigation-common/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..fe9681f
--- /dev/null
+++ b/navigation/navigation-common/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,522 @@
+// Signature format: 4.0
+package androidx.navigation {
+
+ public final class ActionOnlyNavDirections implements androidx.navigation.NavDirections {
+ ctor public ActionOnlyNavDirections(int actionId);
+ method public int component1();
+ method public androidx.navigation.ActionOnlyNavDirections copy(int actionId);
+ method public int getActionId();
+ method public android.os.Bundle getArguments();
+ property public int actionId;
+ property public android.os.Bundle arguments;
+ }
+
+ @androidx.navigation.NavOptionsDsl public final class AnimBuilder {
+ ctor public AnimBuilder();
+ method public int getEnter();
+ method public int getExit();
+ method public int getPopEnter();
+ method public int getPopExit();
+ method public void setEnter(int);
+ method public void setExit(int);
+ method public void setPopEnter(int);
+ method public void setPopExit(int);
+ property public final int enter;
+ property public final int exit;
+ property public final int popEnter;
+ property public final int popExit;
+ }
+
+ public interface FloatingWindow {
+ }
+
+ public final class NamedNavArgument {
+ method public operator String component1();
+ method public operator androidx.navigation.NavArgument component2();
+ method public androidx.navigation.NavArgument getArgument();
+ method public String getName();
+ property public final androidx.navigation.NavArgument argument;
+ property public final String name;
+ }
+
+ public final class NamedNavArgumentKt {
+ method public static androidx.navigation.NamedNavArgument navArgument(String name, kotlin.jvm.functions.Function1<? super androidx.navigation.NavArgumentBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavAction {
+ ctor public NavAction(@IdRes int destinationId, optional androidx.navigation.NavOptions? navOptions, optional android.os.Bundle? defaultArguments);
+ ctor public NavAction(@IdRes int destinationId, optional androidx.navigation.NavOptions? navOptions);
+ ctor public NavAction(@IdRes int destinationId);
+ method public android.os.Bundle? getDefaultArguments();
+ method public int getDestinationId();
+ method public androidx.navigation.NavOptions? getNavOptions();
+ method public void setDefaultArguments(android.os.Bundle?);
+ method public void setNavOptions(androidx.navigation.NavOptions?);
+ property public final android.os.Bundle? defaultArguments;
+ property public final int destinationId;
+ property public final androidx.navigation.NavOptions? navOptions;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class NavActionBuilder {
+ ctor public NavActionBuilder();
+ method public java.util.Map<java.lang.String,java.lang.Object> getDefaultArguments();
+ method public int getDestinationId();
+ method public void navOptions(kotlin.jvm.functions.Function1<? super androidx.navigation.NavOptionsBuilder,kotlin.Unit> optionsBuilder);
+ method public void setDestinationId(int);
+ property public final java.util.Map<java.lang.String,java.lang.Object> defaultArguments;
+ property public final int destinationId;
+ }
+
+ public interface NavArgs {
+ }
+
+ public final class NavArgsLazy<Args extends androidx.navigation.NavArgs> implements kotlin.Lazy<Args> {
+ ctor public NavArgsLazy(kotlin.reflect.KClass<Args> navArgsClass, kotlin.jvm.functions.Function0<android.os.Bundle> argumentProducer);
+ method public Args getValue();
+ method public boolean isInitialized();
+ property public Args value;
+ }
+
+ public final class NavArgsLazyKt {
+ }
+
+ public final class NavArgument {
+ method public Object? getDefaultValue();
+ method public androidx.navigation.NavType<java.lang.Object> getType();
+ method public boolean isDefaultValuePresent();
+ method public boolean isNullable();
+ property public final Object? defaultValue;
+ property public final boolean isDefaultValuePresent;
+ property public final boolean isNullable;
+ property public final androidx.navigation.NavType<java.lang.Object> type;
+ }
+
+ public static final class NavArgument.Builder {
+ ctor public NavArgument.Builder();
+ method public androidx.navigation.NavArgument build();
+ method public androidx.navigation.NavArgument.Builder setDefaultValue(Object? defaultValue);
+ method public androidx.navigation.NavArgument.Builder setIsNullable(boolean isNullable);
+ method public <T> androidx.navigation.NavArgument.Builder setType(androidx.navigation.NavType<T> type);
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class NavArgumentBuilder {
+ ctor public NavArgumentBuilder();
+ method public androidx.navigation.NavArgument build();
+ method public Object? getDefaultValue();
+ method public boolean getNullable();
+ method public androidx.navigation.NavType<?> getType();
+ method public void setDefaultValue(Object?);
+ method public void setNullable(boolean);
+ method public void setType(androidx.navigation.NavType<?>);
+ property public final Object? defaultValue;
+ property public final boolean nullable;
+ property public final androidx.navigation.NavType<?> type;
+ }
+
+ public final class NavBackStackEntry implements androidx.lifecycle.HasDefaultViewModelProviderFactory androidx.lifecycle.LifecycleOwner androidx.savedstate.SavedStateRegistryOwner androidx.lifecycle.ViewModelStoreOwner {
+ method public android.os.Bundle? getArguments();
+ method public androidx.lifecycle.ViewModelProvider.Factory getDefaultViewModelProviderFactory();
+ method public androidx.navigation.NavDestination getDestination();
+ method public String getId();
+ method public androidx.lifecycle.Lifecycle getLifecycle();
+ method public androidx.lifecycle.SavedStateHandle getSavedStateHandle();
+ method public androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
+ method public androidx.lifecycle.ViewModelStore getViewModelStore();
+ property public final android.os.Bundle? arguments;
+ property public final androidx.navigation.NavDestination destination;
+ property public final String id;
+ property public final androidx.lifecycle.SavedStateHandle savedStateHandle;
+ property public androidx.savedstate.SavedStateRegistry savedStateRegistry;
+ }
+
+ public final class NavDeepLink {
+ method public String? getAction();
+ method public String? getMimeType();
+ method public String? getUriPattern();
+ property public final String? action;
+ property public final String? mimeType;
+ property public final String? uriPattern;
+ }
+
+ public static final class NavDeepLink.Builder {
+ method public androidx.navigation.NavDeepLink build();
+ method public static androidx.navigation.NavDeepLink.Builder fromAction(String action);
+ method public static androidx.navigation.NavDeepLink.Builder fromMimeType(String mimeType);
+ method public static androidx.navigation.NavDeepLink.Builder fromUriPattern(String uriPattern);
+ method public androidx.navigation.NavDeepLink.Builder setAction(String action);
+ method public androidx.navigation.NavDeepLink.Builder setMimeType(String mimeType);
+ method public androidx.navigation.NavDeepLink.Builder setUriPattern(String uriPattern);
+ }
+
+ @kotlin.DslMarker public @interface NavDeepLinkDsl {
+ }
+
+ @androidx.navigation.NavDeepLinkDsl public final class NavDeepLinkDslBuilder {
+ ctor public NavDeepLinkDslBuilder();
+ method public String? getAction();
+ method public String? getMimeType();
+ method public String? getUriPattern();
+ method public void setAction(String?);
+ method public void setMimeType(String?);
+ method public void setUriPattern(String?);
+ property public final String? action;
+ property public final String? mimeType;
+ property public final String? uriPattern;
+ }
+
+ public final class NavDeepLinkDslBuilderKt {
+ method public static androidx.navigation.NavDeepLink navDeepLink(kotlin.jvm.functions.Function1<? super androidx.navigation.NavDeepLinkDslBuilder,kotlin.Unit> deepLinkBuilder);
+ }
+
+ public class NavDeepLinkRequest {
+ method public String? getAction();
+ method public String? getMimeType();
+ method public android.net.Uri? getUri();
+ property public String? action;
+ property public String? mimeType;
+ property public android.net.Uri? uri;
+ }
+
+ public static final class NavDeepLinkRequest.Builder {
+ method public androidx.navigation.NavDeepLinkRequest build();
+ method public static androidx.navigation.NavDeepLinkRequest.Builder fromAction(String action);
+ method public static androidx.navigation.NavDeepLinkRequest.Builder fromMimeType(String mimeType);
+ method public static androidx.navigation.NavDeepLinkRequest.Builder fromUri(android.net.Uri uri);
+ method public androidx.navigation.NavDeepLinkRequest.Builder setAction(String action);
+ method public androidx.navigation.NavDeepLinkRequest.Builder setMimeType(String mimeType);
+ method public androidx.navigation.NavDeepLinkRequest.Builder setUri(android.net.Uri uri);
+ field public static final androidx.navigation.NavDeepLinkRequest.Builder.Companion Companion;
+ }
+
+ public static final class NavDeepLinkRequest.Builder.Companion {
+ method public androidx.navigation.NavDeepLinkRequest.Builder fromAction(String action);
+ method public androidx.navigation.NavDeepLinkRequest.Builder fromMimeType(String mimeType);
+ method public androidx.navigation.NavDeepLinkRequest.Builder fromUri(android.net.Uri uri);
+ }
+
+ public class NavDestination {
+ ctor public NavDestination(String navigatorName);
+ ctor public NavDestination(androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
+ method public final void addArgument(String argumentName, androidx.navigation.NavArgument argument);
+ method public final void addDeepLink(String uriPattern);
+ method public final void addDeepLink(androidx.navigation.NavDeepLink navDeepLink);
+ method public final androidx.navigation.NavAction? getAction(@IdRes int id);
+ method public final java.util.Map<java.lang.String,androidx.navigation.NavArgument> getArguments();
+ method public static final kotlin.sequences.Sequence<androidx.navigation.NavDestination> getHierarchy(androidx.navigation.NavDestination);
+ method @IdRes public final int getId();
+ method public final CharSequence? getLabel();
+ method public final String getNavigatorName();
+ method public final androidx.navigation.NavGraph? getParent();
+ method public final String? getRoute();
+ method public boolean hasDeepLink(android.net.Uri deepLink);
+ method public boolean hasDeepLink(androidx.navigation.NavDeepLinkRequest deepLinkRequest);
+ method @CallSuper public void onInflate(android.content.Context context, android.util.AttributeSet attrs);
+ method protected static final <C> Class<? extends C> parseClassFromName(android.content.Context context, String name, Class<? extends C> expectedClassType);
+ method public final void putAction(@IdRes int actionId, @IdRes int destId);
+ method public final void putAction(@IdRes int actionId, androidx.navigation.NavAction action);
+ method public final void removeAction(@IdRes int actionId);
+ method public final void removeArgument(String argumentName);
+ method public final void setId(@IdRes int);
+ method public final void setLabel(CharSequence?);
+ method public final void setRoute(String?);
+ property public final java.util.Map<java.lang.String,androidx.navigation.NavArgument> arguments;
+ property @IdRes public final int id;
+ property public final CharSequence? label;
+ property public final String navigatorName;
+ property public final androidx.navigation.NavGraph? parent;
+ property public final String? route;
+ field public static final androidx.navigation.NavDestination.Companion Companion;
+ }
+
+ @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public static @interface NavDestination.ClassType {
+ method public abstract kotlin.reflect.KClass<?> value();
+ property public abstract kotlin.reflect.KClass<?> value;
+ }
+
+ public static final class NavDestination.Companion {
+ method public kotlin.sequences.Sequence<androidx.navigation.NavDestination> getHierarchy(androidx.navigation.NavDestination);
+ method protected <C> Class<? extends C> parseClassFromName(android.content.Context context, String name, Class<? extends C> expectedClassType);
+ }
+
+ @androidx.navigation.NavDestinationDsl public class NavDestinationBuilder<D extends androidx.navigation.NavDestination> {
+ ctor @Deprecated public NavDestinationBuilder(androidx.navigation.Navigator<? extends D> navigator, @IdRes int id);
+ ctor public NavDestinationBuilder(androidx.navigation.Navigator<? extends D> navigator, String? route);
+ method @Deprecated public final void action(int actionId, kotlin.jvm.functions.Function1<? super androidx.navigation.NavActionBuilder,kotlin.Unit> actionBuilder);
+ method public final void argument(String name, kotlin.jvm.functions.Function1<? super androidx.navigation.NavArgumentBuilder,kotlin.Unit> argumentBuilder);
+ method public D build();
+ method public final void deepLink(String uriPattern);
+ method public final void deepLink(kotlin.jvm.functions.Function1<? super androidx.navigation.NavDeepLinkDslBuilder,kotlin.Unit> navDeepLink);
+ method public final int getId();
+ method public final CharSequence? getLabel();
+ method protected final androidx.navigation.Navigator<? extends D> getNavigator();
+ method public final String? getRoute();
+ method public final void setLabel(CharSequence?);
+ property public final int id;
+ property public final CharSequence? label;
+ property protected final androidx.navigation.Navigator<? extends D> navigator;
+ property public final String? route;
+ }
+
+ @kotlin.DslMarker public @interface NavDestinationDsl {
+ }
+
+ public interface NavDirections {
+ method @IdRes public int getActionId();
+ method public android.os.Bundle getArguments();
+ property @IdRes public abstract int actionId;
+ property public abstract android.os.Bundle arguments;
+ }
+
+ public class NavGraph extends androidx.navigation.NavDestination implements java.lang.Iterable<androidx.navigation.NavDestination> kotlin.jvm.internal.markers.KMappedMarker {
+ ctor public NavGraph(androidx.navigation.Navigator<? extends androidx.navigation.NavGraph> navGraphNavigator);
+ method public final void addAll(androidx.navigation.NavGraph other);
+ method public final void addDestination(androidx.navigation.NavDestination node);
+ method public final void addDestinations(java.util.Collection<? extends androidx.navigation.NavDestination> nodes);
+ method public final void addDestinations(androidx.navigation.NavDestination... nodes);
+ method public final void clear();
+ method public final androidx.navigation.NavDestination? findNode(@IdRes int resId);
+ method public final androidx.navigation.NavDestination? findNode(String? route);
+ method public static final androidx.navigation.NavDestination findStartDestination(androidx.navigation.NavGraph);
+ method @Deprecated @IdRes public final int getStartDestination();
+ method @IdRes public final int getStartDestinationId();
+ method public final String? getStartDestinationRoute();
+ method public final java.util.Iterator<androidx.navigation.NavDestination> iterator();
+ method public final void remove(androidx.navigation.NavDestination node);
+ method public final void setStartDestination(int startDestId);
+ method public final void setStartDestination(String startDestRoute);
+ property @IdRes public final int startDestinationId;
+ property public final String? startDestinationRoute;
+ field public static final androidx.navigation.NavGraph.Companion Companion;
+ }
+
+ public static final class NavGraph.Companion {
+ method public androidx.navigation.NavDestination findStartDestination(androidx.navigation.NavGraph);
+ }
+
+ @androidx.navigation.NavDestinationDsl public class NavGraphBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.NavGraph> {
+ ctor @Deprecated public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, @IdRes int id, @IdRes int startDestination);
+ ctor public NavGraphBuilder(androidx.navigation.NavigatorProvider provider, String startDestination, String? route);
+ method public final void addDestination(androidx.navigation.NavDestination destination);
+ method public androidx.navigation.NavGraph build();
+ method public final <D extends androidx.navigation.NavDestination> void destination(androidx.navigation.NavDestinationBuilder<? extends D> navDestination);
+ method public final androidx.navigation.NavigatorProvider getProvider();
+ method public final operator void unaryPlus(androidx.navigation.NavDestination);
+ property public final androidx.navigation.NavigatorProvider provider;
+ }
+
+ public final class NavGraphBuilderKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method @Deprecated public static inline void navigation(androidx.navigation.NavGraphBuilder, @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method public static inline void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavGraphKt {
+ method public static operator boolean contains(androidx.navigation.NavGraph, @IdRes int id);
+ method public static operator boolean contains(androidx.navigation.NavGraph, String route);
+ method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, @IdRes int id);
+ method public static inline operator androidx.navigation.NavDestination get(androidx.navigation.NavGraph, String route);
+ method public static inline operator void minusAssign(androidx.navigation.NavGraph, androidx.navigation.NavDestination node);
+ method public static inline operator void plusAssign(androidx.navigation.NavGraph, androidx.navigation.NavDestination node);
+ method public static inline operator void plusAssign(androidx.navigation.NavGraph, androidx.navigation.NavGraph other);
+ }
+
+ @androidx.navigation.Navigator.Name("navigation") public class NavGraphNavigator extends androidx.navigation.Navigator<androidx.navigation.NavGraph> {
+ ctor public NavGraphNavigator(androidx.navigation.NavigatorProvider navigatorProvider);
+ method public androidx.navigation.NavGraph createDestination();
+ }
+
+ public final class NavOptions {
+ method @AnimRes @AnimatorRes public int getEnterAnim();
+ method @AnimRes @AnimatorRes public int getExitAnim();
+ method @AnimRes @AnimatorRes public int getPopEnterAnim();
+ method @AnimRes @AnimatorRes public int getPopExitAnim();
+ method @Deprecated @IdRes public int getPopUpTo();
+ method @IdRes public int getPopUpToId();
+ method public String? getPopUpToRoute();
+ method public boolean isPopUpToInclusive();
+ method public boolean shouldLaunchSingleTop();
+ method public boolean shouldPopUpToSaveState();
+ method public boolean shouldRestoreState();
+ property @AnimRes @AnimatorRes public final int enterAnim;
+ property @AnimRes @AnimatorRes public final int exitAnim;
+ property @AnimRes @AnimatorRes public final int popEnterAnim;
+ property @AnimRes @AnimatorRes public final int popExitAnim;
+ property @IdRes public final int popUpToId;
+ property public final String? popUpToRoute;
+ }
+
+ public static final class NavOptions.Builder {
+ ctor public NavOptions.Builder();
+ method public androidx.navigation.NavOptions build();
+ method public androidx.navigation.NavOptions.Builder setEnterAnim(@AnimRes @AnimatorRes int enterAnim);
+ method public androidx.navigation.NavOptions.Builder setExitAnim(@AnimRes @AnimatorRes int exitAnim);
+ method public androidx.navigation.NavOptions.Builder setLaunchSingleTop(boolean singleTop);
+ method public androidx.navigation.NavOptions.Builder setPopEnterAnim(@AnimRes @AnimatorRes int popEnterAnim);
+ method public androidx.navigation.NavOptions.Builder setPopExitAnim(@AnimRes @AnimatorRes int popExitAnim);
+ method public androidx.navigation.NavOptions.Builder setPopUpTo(@IdRes int destinationId, boolean inclusive, optional boolean saveState);
+ method public androidx.navigation.NavOptions.Builder setPopUpTo(@IdRes int destinationId, boolean inclusive);
+ method public androidx.navigation.NavOptions.Builder setPopUpTo(String? route, boolean inclusive, optional boolean saveState);
+ method public androidx.navigation.NavOptions.Builder setPopUpTo(String? route, boolean inclusive);
+ method public androidx.navigation.NavOptions.Builder setRestoreState(boolean restoreState);
+ }
+
+ @androidx.navigation.NavOptionsDsl public final class NavOptionsBuilder {
+ ctor public NavOptionsBuilder();
+ method public void anim(kotlin.jvm.functions.Function1<? super androidx.navigation.AnimBuilder,kotlin.Unit> animBuilder);
+ method public boolean getLaunchSingleTop();
+ method @Deprecated public int getPopUpTo();
+ method public int getPopUpToId();
+ method public String? getPopUpToRoute();
+ method public boolean getRestoreState();
+ method public void popUpTo(@IdRes int id, optional kotlin.jvm.functions.Function1<? super androidx.navigation.PopUpToBuilder,kotlin.Unit> popUpToBuilder);
+ method public void popUpTo(String route, optional kotlin.jvm.functions.Function1<? super androidx.navigation.PopUpToBuilder,kotlin.Unit> popUpToBuilder);
+ method public void setLaunchSingleTop(boolean);
+ method @Deprecated public void setPopUpTo(int);
+ method public void setRestoreState(boolean);
+ property public final boolean launchSingleTop;
+ property @Deprecated public final int popUpTo;
+ property public final int popUpToId;
+ property public final String? popUpToRoute;
+ property public final boolean restoreState;
+ }
+
+ public final class NavOptionsBuilderKt {
+ method public static androidx.navigation.NavOptions navOptions(kotlin.jvm.functions.Function1<? super androidx.navigation.NavOptionsBuilder,kotlin.Unit> optionsBuilder);
+ }
+
+ @kotlin.DslMarker public @interface NavOptionsDsl {
+ }
+
+ public abstract class NavType<T> {
+ ctor public NavType(boolean isNullableAllowed);
+ method public static androidx.navigation.NavType<?> fromArgType(String? type, String? packageName);
+ method public abstract operator T? get(android.os.Bundle bundle, String key);
+ method public String getName();
+ method public boolean isNullableAllowed();
+ method public abstract T! parseValue(String value);
+ method public abstract void put(android.os.Bundle bundle, String key, T? value);
+ property public boolean isNullableAllowed;
+ property public String name;
+ field public static final androidx.navigation.NavType<boolean[]> BoolArrayType;
+ field public static final androidx.navigation.NavType<java.lang.Boolean> BoolType;
+ field public static final androidx.navigation.NavType.Companion Companion;
+ field public static final androidx.navigation.NavType<float[]> FloatArrayType;
+ field public static final androidx.navigation.NavType<java.lang.Float> FloatType;
+ field public static final androidx.navigation.NavType<int[]> IntArrayType;
+ field public static final androidx.navigation.NavType<java.lang.Integer> IntType;
+ field public static final androidx.navigation.NavType<long[]> LongArrayType;
+ field public static final androidx.navigation.NavType<java.lang.Long> LongType;
+ field public static final androidx.navigation.NavType<java.lang.Integer> ReferenceType;
+ field public static final androidx.navigation.NavType<java.lang.String[]> StringArrayType;
+ field public static final androidx.navigation.NavType<java.lang.String> StringType;
+ }
+
+ public static final class NavType.Companion {
+ method public androidx.navigation.NavType<?> fromArgType(String? type, String? packageName);
+ }
+
+ public static final class NavType.EnumType<D extends java.lang.Enum<?>> extends androidx.navigation.NavType.SerializableType<D> {
+ ctor public NavType.EnumType(Class<D> type);
+ property public String name;
+ }
+
+ public static final class NavType.ParcelableArrayType<D extends android.os.Parcelable> extends androidx.navigation.NavType<D[]> {
+ ctor public NavType.ParcelableArrayType(Class<D> type);
+ method public D![]? get(android.os.Bundle bundle, String key);
+ method public D![] parseValue(String value);
+ method public void put(android.os.Bundle bundle, String key, D![]? value);
+ property public String name;
+ }
+
+ public static final class NavType.ParcelableType<D> extends androidx.navigation.NavType<D> {
+ ctor public NavType.ParcelableType(Class<D> type);
+ method public D? get(android.os.Bundle bundle, String key);
+ method public D! parseValue(String value);
+ method public void put(android.os.Bundle bundle, String key, D? value);
+ property public String name;
+ }
+
+ public static final class NavType.SerializableArrayType<D extends java.io.Serializable> extends androidx.navigation.NavType<D[]> {
+ ctor public NavType.SerializableArrayType(Class<D> type);
+ method public D![]? get(android.os.Bundle bundle, String key);
+ method public D![] parseValue(String value);
+ method public void put(android.os.Bundle bundle, String key, D![]? value);
+ property public String name;
+ }
+
+ public static class NavType.SerializableType<D extends java.io.Serializable> extends androidx.navigation.NavType<D> {
+ ctor public NavType.SerializableType(Class<D> type);
+ method public D? get(android.os.Bundle bundle, String key);
+ method public D parseValue(String value);
+ method public void put(android.os.Bundle bundle, String key, D value);
+ property public String name;
+ }
+
+ public abstract class Navigator<D extends androidx.navigation.NavDestination> {
+ ctor public Navigator();
+ method public abstract D createDestination();
+ method protected final androidx.navigation.NavigatorState getState();
+ method public final boolean isAttached();
+ method public void navigate(java.util.List<androidx.navigation.NavBackStackEntry> entries, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ method public androidx.navigation.NavDestination? navigate(D destination, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ method @CallSuper public void onAttach(androidx.navigation.NavigatorState state);
+ method public void onLaunchSingleTop(androidx.navigation.NavBackStackEntry backStackEntry);
+ method public void onRestoreState(android.os.Bundle savedState);
+ method public android.os.Bundle? onSaveState();
+ method public void popBackStack(androidx.navigation.NavBackStackEntry popUpTo, boolean savedState);
+ method public boolean popBackStack();
+ property public final boolean isAttached;
+ property protected final androidx.navigation.NavigatorState state;
+ }
+
+ public static interface Navigator.Extras {
+ }
+
+ @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets={kotlin.annotation.AnnotationTarget.ANNOTATION_CLASS, kotlin.annotation.AnnotationTarget.CLASS}) public static @interface Navigator.Name {
+ method public abstract String value();
+ property public abstract String value;
+ }
+
+ public class NavigatorProvider {
+ ctor public NavigatorProvider();
+ method public final androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>? addNavigator(androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
+ method @CallSuper public androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>? addNavigator(String name, androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
+ method public final <T extends androidx.navigation.Navigator<?>> T getNavigator(Class<T> navigatorClass);
+ method @CallSuper public <T extends androidx.navigation.Navigator<?>> T getNavigator(String name);
+ }
+
+ public final class NavigatorProviderKt {
+ method public static inline operator <T extends androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>> T get(androidx.navigation.NavigatorProvider, String name);
+ method public static inline operator <T extends androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>> T get(androidx.navigation.NavigatorProvider, kotlin.reflect.KClass<T> clazz);
+ method public static inline operator void plusAssign(androidx.navigation.NavigatorProvider, androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
+ method public static inline operator androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>? set(androidx.navigation.NavigatorProvider, String name, androidx.navigation.Navigator<? extends androidx.navigation.NavDestination> navigator);
+ }
+
+ public abstract class NavigatorState {
+ ctor public NavigatorState();
+ method public abstract androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments);
+ method public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> getBackStack();
+ method public final kotlinx.coroutines.flow.StateFlow<java.util.Set<androidx.navigation.NavBackStackEntry>> getTransitionsInProgress();
+ method public void markTransitionComplete(androidx.navigation.NavBackStackEntry entry);
+ method @CallSuper public void onLaunchSingleTop(androidx.navigation.NavBackStackEntry backStackEntry);
+ method public void pop(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState);
+ method public void popWithTransition(androidx.navigation.NavBackStackEntry popUpTo, boolean saveState);
+ method public void push(androidx.navigation.NavBackStackEntry backStackEntry);
+ method public void pushWithTransition(androidx.navigation.NavBackStackEntry backStackEntry);
+ property public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> backStack;
+ property public final kotlinx.coroutines.flow.StateFlow<java.util.Set<androidx.navigation.NavBackStackEntry>> transitionsInProgress;
+ }
+
+ @androidx.navigation.NavOptionsDsl public final class PopUpToBuilder {
+ ctor public PopUpToBuilder();
+ method public boolean getInclusive();
+ method public boolean getSaveState();
+ method public void setInclusive(boolean);
+ method public void setSaveState(boolean);
+ property public final boolean inclusive;
+ property public final boolean saveState;
+ }
+
+}
+
diff --git a/navigation/navigation-common/build.gradle b/navigation/navigation-common/build.gradle
index ca5da5a..6fa419a 100644
--- a/navigation/navigation-common/build.gradle
+++ b/navigation/navigation-common/build.gradle
@@ -32,10 +32,10 @@
dependencies {
api("androidx.annotation:annotation:1.1.0")
- api(projectOrArtifact(":lifecycle:lifecycle-runtime-ktx"))
- api(projectOrArtifact(":lifecycle:lifecycle-viewmodel-ktx"))
- api(projectOrArtifact(":savedstate:savedstate-ktx"))
- api(projectOrArtifact(":lifecycle:lifecycle-viewmodel-savedstate"))
+ api("androidx.lifecycle:lifecycle-runtime-ktx:2.5.0-rc01")
+ api("androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.0-rc01")
+ api("androidx.savedstate:savedstate-ktx:1.2.0-rc01")
+ api("androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.0-rc01")
implementation("androidx.core:core-ktx:1.1.0")
implementation("androidx.collection:collection-ktx:1.1.0")
diff --git a/navigation/navigation-compose-lint/src/main/java/androidx/navigation/compose/lint/UnrememberedGetBackStackEntryDetector.kt b/navigation/navigation-compose-lint/src/main/java/androidx/navigation/compose/lint/UnrememberedGetBackStackEntryDetector.kt
index 00a0b44..4313039 100644
--- a/navigation/navigation-compose-lint/src/main/java/androidx/navigation/compose/lint/UnrememberedGetBackStackEntryDetector.kt
+++ b/navigation/navigation-compose-lint/src/main/java/androidx/navigation/compose/lint/UnrememberedGetBackStackEntryDetector.kt
@@ -20,8 +20,8 @@
import androidx.compose.lint.Name
import androidx.compose.lint.Package
-import androidx.compose.lint.invokedInComposableBodyAndNotRemembered
import androidx.compose.lint.isInPackageName
+import androidx.compose.lint.isNotRememberedWithKeys
import com.android.tools.lint.detector.api.Category
import com.android.tools.lint.detector.api.Detector
import com.android.tools.lint.detector.api.Implementation
@@ -31,12 +31,12 @@
import com.android.tools.lint.detector.api.Severity
import com.android.tools.lint.detector.api.SourceCodeScanner
import com.intellij.psi.PsiMethod
-import org.jetbrains.uast.UCallExpression
import java.util.EnumSet
+import org.jetbrains.uast.UCallExpression
/**
* [Detector] that checks `getBackStackEntry` calls to make sure that if they are called inside a
- * Composable body, they are `remember`ed.
+ * Composable body, they are `remember`ed with a `NavBackStackEntry` as a key.
*/
class UnrememberedGetBackStackEntryDetector : Detector(), SourceCodeScanner {
override fun getApplicableMethodNames(): List<String> = listOf(
@@ -46,12 +46,13 @@
override fun visitMethodCall(context: JavaContext, node: UCallExpression, method: PsiMethod) {
if (!method.isInPackageName(PackageName)) return
- if (node.invokedInComposableBodyAndNotRemembered()) {
+ if (node.isNotRememberedWithKeys(NavBackStackEntry)) {
context.report(
UnrememberedGetBackStackEntry,
node,
context.getNameLocation(node),
- "Calling getBackStackEntry during composition without using `remember`"
+ "Calling getBackStackEntry during composition without using `remember` " +
+ "with a NavBackStackEntry key"
)
}
}
@@ -59,11 +60,15 @@
companion object {
val UnrememberedGetBackStackEntry = Issue.create(
"UnrememberedGetBackStackEntry",
- "Calling getBackStackEntry during composition with using `remember`",
+ "Calling getBackStackEntry during composition without using `remember`" +
+ "with a NavBackStackEntry key",
"Backstack entries retrieved during composition need to be `remember`ed, otherwise " +
- "they will be retrieved from the navController again, and be changed. Either " +
- "hoist the state to an object that is not created during composition, or wrap " +
- "the state in a call to `remember`.",
+ "they will be retrieved from the navController again, and be changed. You also " +
+ "need to pass in a key of a NavBackStackEntry to the remember call or they will " +
+ "not be updated properly. If this is in a `NavGraphBuilder.composable` scope, " +
+ "you should pass in the lambda's given entry as the key. Either hoist the state " +
+ "to an object that is not created during composition, or wrap the state in a " +
+ "call to `remember` with a `NavBackStackEntry` as a key.",
Category.CORRECTNESS, 3, Severity.ERROR,
Implementation(
UnrememberedGetBackStackEntryDetector::class.java,
@@ -75,3 +80,4 @@
private val PackageName = Package("androidx.navigation")
private val GetBackStackEntry = Name(PackageName, "getBackStackEntry")
+private val NavBackStackEntry = Name(PackageName, "NavBackStackEntry")
diff --git a/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/UnrememberedGetBackStackEntryDetectorTest.kt b/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/UnrememberedGetBackStackEntryDetectorTest.kt
index defabf5..b33210d 100644
--- a/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/UnrememberedGetBackStackEntryDetectorTest.kt
+++ b/navigation/navigation-compose-lint/src/test/java/androidx/navigation/compose/lint/UnrememberedGetBackStackEntryDetectorTest.kt
@@ -108,28 +108,28 @@
.run()
.expect(
"""
-src/com/example/{.kt:10: Error: Calling getBackStackEntry during composition without using remember [UnrememberedGetBackStackEntry]
+src/com/example/{.kt:10: Error: Calling getBackStackEntry during composition without using remember with a NavBackStackEntry key [UnrememberedGetBackStackEntry]
navController.getBackStackEntry("test")
~~~~~~~~~~~~~~~~~
-src/com/example/{.kt:15: Error: Calling getBackStackEntry during composition without using remember [UnrememberedGetBackStackEntry]
+src/com/example/{.kt:15: Error: Calling getBackStackEntry during composition without using remember with a NavBackStackEntry key [UnrememberedGetBackStackEntry]
navController.getBackStackEntry("test")
~~~~~~~~~~~~~~~~~
-src/com/example/{.kt:20: Error: Calling getBackStackEntry during composition without using remember [UnrememberedGetBackStackEntry]
+src/com/example/{.kt:20: Error: Calling getBackStackEntry during composition without using remember with a NavBackStackEntry key [UnrememberedGetBackStackEntry]
navController.getBackStackEntry("test")
~~~~~~~~~~~~~~~~~
-src/com/example/{.kt:30: Error: Calling getBackStackEntry during composition without using remember [UnrememberedGetBackStackEntry]
+src/com/example/{.kt:30: Error: Calling getBackStackEntry during composition without using remember with a NavBackStackEntry key [UnrememberedGetBackStackEntry]
navController.getBackStackEntry("test")
~~~~~~~~~~~~~~~~~
-src/com/example/{.kt:34: Error: Calling getBackStackEntry during composition without using remember [UnrememberedGetBackStackEntry]
+src/com/example/{.kt:34: Error: Calling getBackStackEntry during composition without using remember with a NavBackStackEntry key [UnrememberedGetBackStackEntry]
navController.getBackStackEntry("test")
~~~~~~~~~~~~~~~~~
-src/com/example/{.kt:41: Error: Calling getBackStackEntry during composition without using remember [UnrememberedGetBackStackEntry]
+src/com/example/{.kt:41: Error: Calling getBackStackEntry during composition without using remember with a NavBackStackEntry key [UnrememberedGetBackStackEntry]
navController.getBackStackEntry("test")
~~~~~~~~~~~~~~~~~
-src/com/example/{.kt:46: Error: Calling getBackStackEntry during composition without using remember [UnrememberedGetBackStackEntry]
+src/com/example/{.kt:46: Error: Calling getBackStackEntry during composition without using remember with a NavBackStackEntry key [UnrememberedGetBackStackEntry]
navController.getBackStackEntry("test")
~~~~~~~~~~~~~~~~~
-src/com/example/{.kt:54: Error: Calling getBackStackEntry during composition without using remember [UnrememberedGetBackStackEntry]
+src/com/example/{.kt:54: Error: Calling getBackStackEntry during composition without using remember with a NavBackStackEntry key [UnrememberedGetBackStackEntry]
val entry = navController.getBackStackEntry("test")
~~~~~~~~~~~~~~~~~
8 errors, 0 warnings
@@ -138,7 +138,7 @@
}
@Test
- fun rememberedInsideComposableBody() {
+ fun rememberedInsideComposableBodyWithoutEntryKey() {
lint().files(
kotlin(
"""
@@ -196,6 +196,102 @@
NAV_CONTROLLER
)
.run()
+ .expect(
+ """
+src/com/example/test.kt:10: Error: Calling getBackStackEntry during composition without using remember with a NavBackStackEntry key [UnrememberedGetBackStackEntry]
+ val entry = remember { navController.getBackStackEntry("test") }
+ ~~~~~~~~~~~~~~~~~
+src/com/example/test.kt:15: Error: Calling getBackStackEntry during composition without using remember with a NavBackStackEntry key [UnrememberedGetBackStackEntry]
+ val entry = remember { navController.getBackStackEntry("test") }
+ ~~~~~~~~~~~~~~~~~
+src/com/example/test.kt:20: Error: Calling getBackStackEntry during composition without using remember with a NavBackStackEntry key [UnrememberedGetBackStackEntry]
+ val entry = remember { navController.getBackStackEntry("test") }
+ ~~~~~~~~~~~~~~~~~
+src/com/example/test.kt:30: Error: Calling getBackStackEntry during composition without using remember with a NavBackStackEntry key [UnrememberedGetBackStackEntry]
+ val entry = remember { navController.getBackStackEntry("test") }
+ ~~~~~~~~~~~~~~~~~
+src/com/example/test.kt:34: Error: Calling getBackStackEntry during composition without using remember with a NavBackStackEntry key [UnrememberedGetBackStackEntry]
+ val entry = remember { navController.getBackStackEntry("test") }
+ ~~~~~~~~~~~~~~~~~
+src/com/example/test.kt:41: Error: Calling getBackStackEntry during composition without using remember with a NavBackStackEntry key [UnrememberedGetBackStackEntry]
+ val entry = remember { navController.getBackStackEntry("test") }
+ ~~~~~~~~~~~~~~~~~
+src/com/example/test.kt:46: Error: Calling getBackStackEntry during composition without using remember with a NavBackStackEntry key [UnrememberedGetBackStackEntry]
+ val entry = remember { navController.getBackStackEntry("test") }
+ ~~~~~~~~~~~~~~~~~
+7 errors, 0 warnings
+ """
+ )
+ }
+
+ @Test
+ fun rememberedInsideComposableBodyWithEntryKey() {
+ lint().files(
+ kotlin(
+ """
+ package com.example
+
+ import androidx.compose.runtime.*
+ import androidx.navigation.NavController
+ import androidx.navigation.NavBackStackEntry
+
+ @Composable
+ fun Test() {
+ val navController = NavController()
+ val rememberedEntry = NavBackStackEntry()
+ val entry = remember(rememberedEntry) { navController.getBackStackEntry("test") }
+ }
+
+ val lambda = @Composable {
+ val navController = NavController()
+ val rememberedEntry = NavBackStackEntry()
+ val entry = remember(rememberedEntry) { navController.getBackStackEntry("test") }
+ }
+
+ val lambda2: @Composable () -> Unit = {
+ val navController = NavController()
+ val rememberedEntry = NavBackStackEntry()
+ val entry = remember(rememberedEntry) { navController.getBackStackEntry("test") }
+ }
+
+ @Composable
+ fun LambdaParameter(content: @Composable () -> Unit) {}
+
+ @Composable
+ fun Test2() {
+ LambdaParameter(content = {
+ val navController = NavController()
+ val rememberedEntry = NavBackStackEntry()
+ val entry = remember(rememberedEntry) { navController.getBackStackEntry("test") }
+ })
+ LambdaParameter {
+ val navController = NavController()
+ val rememberedEntry = NavBackStackEntry()
+ val entry = remember(rememberedEntry) { navController.getBackStackEntry("test") }
+ }
+ }
+
+ fun test3() {
+ val localLambda1 = @Composable {
+ val navController = NavController()
+ val rememberedEntry = NavBackStackEntry()
+ val entry = remember(rememberedEntry) { navController.getBackStackEntry("test") }
+ }
+
+ val localLambda2: @Composable () -> Unit = {
+ val navController = NavController()
+ val rememberedEntry = NavBackStackEntry()
+ val entry = remember(rememberedEntry) { navController.getBackStackEntry("test") }
+ }
+ }
+ """
+ ),
+ Stubs.Composable,
+ Stubs.Remember,
+ NAV_BACK_STACK_ENTRY,
+ NAV_CONTROLLER
+ )
+ .run()
.expectClean()
}
diff --git a/navigation/navigation-compose/api/2.5.0-beta02.txt b/navigation/navigation-compose/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..d46757e
--- /dev/null
+++ b/navigation/navigation-compose/api/2.5.0-beta02.txt
@@ -0,0 +1,47 @@
+// Signature format: 4.0
+package androidx.navigation.compose {
+
+ @androidx.navigation.Navigator.Name("composable") public final class ComposeNavigator extends androidx.navigation.Navigator<androidx.navigation.compose.ComposeNavigator.Destination> {
+ ctor public ComposeNavigator();
+ method public androidx.navigation.compose.ComposeNavigator.Destination createDestination();
+ }
+
+ @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class ComposeNavigator.Destination extends androidx.navigation.NavDestination {
+ ctor public ComposeNavigator.Destination(androidx.navigation.compose.ComposeNavigator navigator, kotlin.jvm.functions.Function1<? super androidx.navigation.NavBackStackEntry,kotlin.Unit> content);
+ }
+
+ public final class DialogHostKt {
+ method @androidx.compose.runtime.Composable public static void DialogHost(androidx.navigation.compose.DialogNavigator dialogNavigator);
+ }
+
+ @androidx.navigation.Navigator.Name("dialog") public final class DialogNavigator extends androidx.navigation.Navigator<androidx.navigation.compose.DialogNavigator.Destination> {
+ ctor public DialogNavigator();
+ method public androidx.navigation.compose.DialogNavigator.Destination createDestination();
+ }
+
+ @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class DialogNavigator.Destination extends androidx.navigation.NavDestination implements androidx.navigation.FloatingWindow {
+ ctor public DialogNavigator.Destination(androidx.navigation.compose.DialogNavigator navigator, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1<? super androidx.navigation.NavBackStackEntry,kotlin.Unit> content);
+ }
+
+ public final class NavBackStackEntryProviderKt {
+ method @androidx.compose.runtime.Composable public static void LocalOwnersProvider(androidx.navigation.NavBackStackEntry, androidx.compose.runtime.saveable.SaveableStateHolder saveableStateHolder, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+ }
+
+ public final class NavGraphBuilderKt {
+ method public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List<androidx.navigation.NamedNavArgument> arguments, optional java.util.List<androidx.navigation.NavDeepLink> deepLinks, kotlin.jvm.functions.Function1<? super androidx.navigation.NavBackStackEntry,kotlin.Unit> content);
+ method public static void dialog(androidx.navigation.NavGraphBuilder, String route, optional java.util.List<androidx.navigation.NamedNavArgument> arguments, optional java.util.List<androidx.navigation.NavDeepLink> deepLinks, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1<? super androidx.navigation.NavBackStackEntry,kotlin.Unit> content);
+ method public static void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, optional java.util.List<androidx.navigation.NamedNavArgument> arguments, optional java.util.List<androidx.navigation.NavDeepLink> deepLinks, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavHostControllerKt {
+ method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.navigation.NavBackStackEntry> currentBackStackEntryAsState(androidx.navigation.NavController);
+ method @androidx.compose.runtime.Composable public static androidx.navigation.NavHostController rememberNavController(androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>... navigators);
+ }
+
+ public final class NavHostKt {
+ method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier);
+ }
+
+}
+
diff --git a/navigation/navigation-compose/api/public_plus_experimental_2.5.0-beta02.txt b/navigation/navigation-compose/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..d46757e
--- /dev/null
+++ b/navigation/navigation-compose/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,47 @@
+// Signature format: 4.0
+package androidx.navigation.compose {
+
+ @androidx.navigation.Navigator.Name("composable") public final class ComposeNavigator extends androidx.navigation.Navigator<androidx.navigation.compose.ComposeNavigator.Destination> {
+ ctor public ComposeNavigator();
+ method public androidx.navigation.compose.ComposeNavigator.Destination createDestination();
+ }
+
+ @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class ComposeNavigator.Destination extends androidx.navigation.NavDestination {
+ ctor public ComposeNavigator.Destination(androidx.navigation.compose.ComposeNavigator navigator, kotlin.jvm.functions.Function1<? super androidx.navigation.NavBackStackEntry,kotlin.Unit> content);
+ }
+
+ public final class DialogHostKt {
+ method @androidx.compose.runtime.Composable public static void DialogHost(androidx.navigation.compose.DialogNavigator dialogNavigator);
+ }
+
+ @androidx.navigation.Navigator.Name("dialog") public final class DialogNavigator extends androidx.navigation.Navigator<androidx.navigation.compose.DialogNavigator.Destination> {
+ ctor public DialogNavigator();
+ method public androidx.navigation.compose.DialogNavigator.Destination createDestination();
+ }
+
+ @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class DialogNavigator.Destination extends androidx.navigation.NavDestination implements androidx.navigation.FloatingWindow {
+ ctor public DialogNavigator.Destination(androidx.navigation.compose.DialogNavigator navigator, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1<? super androidx.navigation.NavBackStackEntry,kotlin.Unit> content);
+ }
+
+ public final class NavBackStackEntryProviderKt {
+ method @androidx.compose.runtime.Composable public static void LocalOwnersProvider(androidx.navigation.NavBackStackEntry, androidx.compose.runtime.saveable.SaveableStateHolder saveableStateHolder, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+ }
+
+ public final class NavGraphBuilderKt {
+ method public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List<androidx.navigation.NamedNavArgument> arguments, optional java.util.List<androidx.navigation.NavDeepLink> deepLinks, kotlin.jvm.functions.Function1<? super androidx.navigation.NavBackStackEntry,kotlin.Unit> content);
+ method public static void dialog(androidx.navigation.NavGraphBuilder, String route, optional java.util.List<androidx.navigation.NamedNavArgument> arguments, optional java.util.List<androidx.navigation.NavDeepLink> deepLinks, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1<? super androidx.navigation.NavBackStackEntry,kotlin.Unit> content);
+ method public static void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, optional java.util.List<androidx.navigation.NamedNavArgument> arguments, optional java.util.List<androidx.navigation.NavDeepLink> deepLinks, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavHostControllerKt {
+ method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.navigation.NavBackStackEntry> currentBackStackEntryAsState(androidx.navigation.NavController);
+ method @androidx.compose.runtime.Composable public static androidx.navigation.NavHostController rememberNavController(androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>... navigators);
+ }
+
+ public final class NavHostKt {
+ method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier);
+ }
+
+}
+
diff --git a/navigation/navigation-compose/api/res-2.5.0-beta02.txt b/navigation/navigation-compose/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/navigation/navigation-compose/api/res-2.5.0-beta02.txt
diff --git a/navigation/navigation-compose/api/restricted_2.5.0-beta02.txt b/navigation/navigation-compose/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..d46757e
--- /dev/null
+++ b/navigation/navigation-compose/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,47 @@
+// Signature format: 4.0
+package androidx.navigation.compose {
+
+ @androidx.navigation.Navigator.Name("composable") public final class ComposeNavigator extends androidx.navigation.Navigator<androidx.navigation.compose.ComposeNavigator.Destination> {
+ ctor public ComposeNavigator();
+ method public androidx.navigation.compose.ComposeNavigator.Destination createDestination();
+ }
+
+ @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class ComposeNavigator.Destination extends androidx.navigation.NavDestination {
+ ctor public ComposeNavigator.Destination(androidx.navigation.compose.ComposeNavigator navigator, kotlin.jvm.functions.Function1<? super androidx.navigation.NavBackStackEntry,kotlin.Unit> content);
+ }
+
+ public final class DialogHostKt {
+ method @androidx.compose.runtime.Composable public static void DialogHost(androidx.navigation.compose.DialogNavigator dialogNavigator);
+ }
+
+ @androidx.navigation.Navigator.Name("dialog") public final class DialogNavigator extends androidx.navigation.Navigator<androidx.navigation.compose.DialogNavigator.Destination> {
+ ctor public DialogNavigator();
+ method public androidx.navigation.compose.DialogNavigator.Destination createDestination();
+ }
+
+ @androidx.navigation.NavDestination.ClassType(Composable::class) public static final class DialogNavigator.Destination extends androidx.navigation.NavDestination implements androidx.navigation.FloatingWindow {
+ ctor public DialogNavigator.Destination(androidx.navigation.compose.DialogNavigator navigator, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1<? super androidx.navigation.NavBackStackEntry,kotlin.Unit> content);
+ }
+
+ public final class NavBackStackEntryProviderKt {
+ method @androidx.compose.runtime.Composable public static void LocalOwnersProvider(androidx.navigation.NavBackStackEntry, androidx.compose.runtime.saveable.SaveableStateHolder saveableStateHolder, kotlin.jvm.functions.Function0<kotlin.Unit> content);
+ }
+
+ public final class NavGraphBuilderKt {
+ method public static void composable(androidx.navigation.NavGraphBuilder, String route, optional java.util.List<androidx.navigation.NamedNavArgument> arguments, optional java.util.List<androidx.navigation.NavDeepLink> deepLinks, kotlin.jvm.functions.Function1<? super androidx.navigation.NavBackStackEntry,kotlin.Unit> content);
+ method public static void dialog(androidx.navigation.NavGraphBuilder, String route, optional java.util.List<androidx.navigation.NamedNavArgument> arguments, optional java.util.List<androidx.navigation.NavDeepLink> deepLinks, optional androidx.compose.ui.window.DialogProperties dialogProperties, kotlin.jvm.functions.Function1<? super androidx.navigation.NavBackStackEntry,kotlin.Unit> content);
+ method public static void navigation(androidx.navigation.NavGraphBuilder, String startDestination, String route, optional java.util.List<androidx.navigation.NamedNavArgument> arguments, optional java.util.List<androidx.navigation.NavDeepLink> deepLinks, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavHostControllerKt {
+ method @androidx.compose.runtime.Composable public static androidx.compose.runtime.State<androidx.navigation.NavBackStackEntry> currentBackStackEntryAsState(androidx.navigation.NavController);
+ method @androidx.compose.runtime.Composable public static androidx.navigation.NavHostController rememberNavController(androidx.navigation.Navigator<? extends androidx.navigation.NavDestination>... navigators);
+ }
+
+ public final class NavHostKt {
+ method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, String startDestination, optional androidx.compose.ui.Modifier modifier, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method @androidx.compose.runtime.Composable public static void NavHost(androidx.navigation.NavHostController navController, androidx.navigation.NavGraph graph, optional androidx.compose.ui.Modifier modifier);
+ }
+
+}
+
diff --git a/navigation/navigation-compose/build.gradle b/navigation/navigation-compose/build.gradle
index 7fc27fe..bf562fe 100644
--- a/navigation/navigation-compose/build.gradle
+++ b/navigation/navigation-compose/build.gradle
@@ -29,18 +29,18 @@
implementation(libs.kotlinStdlib)
implementation("androidx.compose.foundation:foundation-layout:1.0.1")
- api(projectOrArtifact(":activity:activity-compose"))
+ api("androidx.activity:activity-compose:1.5.0-rc01")
api("androidx.compose.animation:animation:1.0.1")
api("androidx.compose.runtime:runtime:1.0.1")
api("androidx.compose.runtime:runtime-saveable:1.0.1")
api("androidx.compose.ui:ui:1.0.1")
- api(projectOrArtifact(":lifecycle:lifecycle-viewmodel-compose"))
+ api("androidx.lifecycle:lifecycle-viewmodel-compose:2.5.0-rc01")
// old version of common-java8 conflicts with newer version, because both have
// DefaultLifecycleEventObserver.
// Outside of androidx this is resolved via constraint added to lifecycle-common,
// but it doesn't work in androidx.
// See aosp/1804059
- implementation projectOrArtifact(":lifecycle:lifecycle-common-java8")
+ implementation "androidx.lifecycle:lifecycle-common-java8:2.5.0-rc01"
api(projectOrArtifact(":navigation:navigation-runtime-ktx"))
androidTestImplementation(projectOrArtifact(":compose:material:material"))
diff --git a/navigation/navigation-compose/samples/build.gradle b/navigation/navigation-compose/samples/build.gradle
index 5f4d6a8..3b53aff 100644
--- a/navigation/navigation-compose/samples/build.gradle
+++ b/navigation/navigation-compose/samples/build.gradle
@@ -34,6 +34,8 @@
implementation(projectOrArtifact(":navigation:navigation-compose"))
implementation("androidx.compose.material:material:1.0.1")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.1")
+ implementation(projectOrArtifact(":lifecycle:lifecycle-runtime-ktx"))
+ implementation(projectOrArtifact(":savedstate:savedstate-ktx"))
}
androidx {
diff --git a/navigation/navigation-dynamic-features-fragment/api/2.5.0-beta02.txt b/navigation/navigation-dynamic-features-fragment/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..fe32d9b
--- /dev/null
+++ b/navigation/navigation-dynamic-features-fragment/api/2.5.0-beta02.txt
@@ -0,0 +1,69 @@
+// Signature format: 4.0
+package androidx.navigation.dynamicfeatures.fragment {
+
+ @androidx.navigation.Navigator.Name("fragment") public final class DynamicFragmentNavigator extends androidx.navigation.fragment.FragmentNavigator {
+ ctor public DynamicFragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager manager, int containerId, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager);
+ method public androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator.Destination createDestination();
+ }
+
+ public static final class DynamicFragmentNavigator.Destination extends androidx.navigation.fragment.FragmentNavigator.Destination {
+ ctor public DynamicFragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider);
+ ctor public DynamicFragmentNavigator.Destination(androidx.navigation.Navigator<? extends androidx.navigation.fragment.FragmentNavigator.Destination> fragmentNavigator);
+ method public String? getModuleName();
+ method public void setModuleName(String?);
+ property public final String? moduleName;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class DynamicFragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.fragment.FragmentNavigator.Destination> {
+ ctor @Deprecated public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, @IdRes int id, String fragmentClassName);
+ ctor public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, String route, String fragmentClassName);
+ method public androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator.Destination build();
+ method public String? getModuleName();
+ method public void setModuleName(String?);
+ property public final String? moduleName;
+ }
+
+ public final class DynamicFragmentNavigatorDestinationBuilderKt {
+ method @Deprecated public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String fragmentClassName, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigatorDestinationBuilder,kotlin.Unit> builder);
+ method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String fragmentClassName, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigatorDestinationBuilder,kotlin.Unit> builder);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ }
+
+ public class DynamicNavHostFragment extends androidx.navigation.fragment.NavHostFragment {
+ ctor public DynamicNavHostFragment();
+ method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+ method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId);
+ method protected com.google.android.play.core.splitinstall.SplitInstallManager createSplitInstallManager();
+ field public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment.Companion Companion;
+ }
+
+ public static final class DynamicNavHostFragment.Companion {
+ method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+ method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId);
+ }
+
+}
+
+package androidx.navigation.dynamicfeatures.fragment.ui {
+
+ public abstract class AbstractProgressFragment extends androidx.fragment.app.Fragment {
+ ctor public AbstractProgressFragment();
+ ctor public AbstractProgressFragment(int contentLayoutId);
+ method protected abstract void onCancelled();
+ method protected abstract void onFailed(@com.google.android.play.core.splitinstall.model.SplitInstallErrorCode int errorCode);
+ method protected void onInstalled();
+ method protected abstract void onProgress(@com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus int status, long bytesDownloaded, long bytesTotal);
+ }
+
+ public final class DefaultProgressFragment extends androidx.navigation.dynamicfeatures.fragment.ui.AbstractProgressFragment {
+ ctor public DefaultProgressFragment();
+ method protected void onCancelled();
+ method protected void onFailed(@com.google.android.play.core.splitinstall.model.SplitInstallErrorCode int errorCode);
+ method protected void onProgress(int status, long bytesDownloaded, long bytesTotal);
+ }
+
+}
+
diff --git a/navigation/navigation-dynamic-features-fragment/api/public_plus_experimental_2.5.0-beta02.txt b/navigation/navigation-dynamic-features-fragment/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..fe32d9b
--- /dev/null
+++ b/navigation/navigation-dynamic-features-fragment/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,69 @@
+// Signature format: 4.0
+package androidx.navigation.dynamicfeatures.fragment {
+
+ @androidx.navigation.Navigator.Name("fragment") public final class DynamicFragmentNavigator extends androidx.navigation.fragment.FragmentNavigator {
+ ctor public DynamicFragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager manager, int containerId, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager);
+ method public androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator.Destination createDestination();
+ }
+
+ public static final class DynamicFragmentNavigator.Destination extends androidx.navigation.fragment.FragmentNavigator.Destination {
+ ctor public DynamicFragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider);
+ ctor public DynamicFragmentNavigator.Destination(androidx.navigation.Navigator<? extends androidx.navigation.fragment.FragmentNavigator.Destination> fragmentNavigator);
+ method public String? getModuleName();
+ method public void setModuleName(String?);
+ property public final String? moduleName;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class DynamicFragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.fragment.FragmentNavigator.Destination> {
+ ctor @Deprecated public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, @IdRes int id, String fragmentClassName);
+ ctor public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, String route, String fragmentClassName);
+ method public androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator.Destination build();
+ method public String? getModuleName();
+ method public void setModuleName(String?);
+ property public final String? moduleName;
+ }
+
+ public final class DynamicFragmentNavigatorDestinationBuilderKt {
+ method @Deprecated public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String fragmentClassName, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigatorDestinationBuilder,kotlin.Unit> builder);
+ method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String fragmentClassName, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigatorDestinationBuilder,kotlin.Unit> builder);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ }
+
+ public class DynamicNavHostFragment extends androidx.navigation.fragment.NavHostFragment {
+ ctor public DynamicNavHostFragment();
+ method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+ method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId);
+ method protected com.google.android.play.core.splitinstall.SplitInstallManager createSplitInstallManager();
+ field public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment.Companion Companion;
+ }
+
+ public static final class DynamicNavHostFragment.Companion {
+ method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+ method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId);
+ }
+
+}
+
+package androidx.navigation.dynamicfeatures.fragment.ui {
+
+ public abstract class AbstractProgressFragment extends androidx.fragment.app.Fragment {
+ ctor public AbstractProgressFragment();
+ ctor public AbstractProgressFragment(int contentLayoutId);
+ method protected abstract void onCancelled();
+ method protected abstract void onFailed(@com.google.android.play.core.splitinstall.model.SplitInstallErrorCode int errorCode);
+ method protected void onInstalled();
+ method protected abstract void onProgress(@com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus int status, long bytesDownloaded, long bytesTotal);
+ }
+
+ public final class DefaultProgressFragment extends androidx.navigation.dynamicfeatures.fragment.ui.AbstractProgressFragment {
+ ctor public DefaultProgressFragment();
+ method protected void onCancelled();
+ method protected void onFailed(@com.google.android.play.core.splitinstall.model.SplitInstallErrorCode int errorCode);
+ method protected void onProgress(int status, long bytesDownloaded, long bytesTotal);
+ }
+
+}
+
diff --git a/navigation/navigation-dynamic-features-fragment/api/res-2.5.0-beta02.txt b/navigation/navigation-dynamic-features-fragment/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/navigation/navigation-dynamic-features-fragment/api/res-2.5.0-beta02.txt
diff --git a/navigation/navigation-dynamic-features-fragment/api/restricted_2.5.0-beta02.txt b/navigation/navigation-dynamic-features-fragment/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..fe32d9b
--- /dev/null
+++ b/navigation/navigation-dynamic-features-fragment/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,69 @@
+// Signature format: 4.0
+package androidx.navigation.dynamicfeatures.fragment {
+
+ @androidx.navigation.Navigator.Name("fragment") public final class DynamicFragmentNavigator extends androidx.navigation.fragment.FragmentNavigator {
+ ctor public DynamicFragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager manager, int containerId, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager);
+ method public androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator.Destination createDestination();
+ }
+
+ public static final class DynamicFragmentNavigator.Destination extends androidx.navigation.fragment.FragmentNavigator.Destination {
+ ctor public DynamicFragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider);
+ ctor public DynamicFragmentNavigator.Destination(androidx.navigation.Navigator<? extends androidx.navigation.fragment.FragmentNavigator.Destination> fragmentNavigator);
+ method public String? getModuleName();
+ method public void setModuleName(String?);
+ property public final String? moduleName;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class DynamicFragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.fragment.FragmentNavigator.Destination> {
+ ctor @Deprecated public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, @IdRes int id, String fragmentClassName);
+ ctor public DynamicFragmentNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator navigator, String route, String fragmentClassName);
+ method public androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator.Destination build();
+ method public String? getModuleName();
+ method public void setModuleName(String?);
+ property public final String? moduleName;
+ }
+
+ public final class DynamicFragmentNavigatorDestinationBuilderKt {
+ method @Deprecated public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String fragmentClassName, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigatorDestinationBuilder,kotlin.Unit> builder);
+ method public static inline void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String fragmentClassName, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigatorDestinationBuilder,kotlin.Unit> builder);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ }
+
+ public class DynamicNavHostFragment extends androidx.navigation.fragment.NavHostFragment {
+ ctor public DynamicNavHostFragment();
+ method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+ method public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId);
+ method protected com.google.android.play.core.splitinstall.SplitInstallManager createSplitInstallManager();
+ field public static final androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment.Companion Companion;
+ }
+
+ public static final class DynamicNavHostFragment.Companion {
+ method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+ method public androidx.navigation.dynamicfeatures.fragment.DynamicNavHostFragment create(@NavigationRes int graphResId);
+ }
+
+}
+
+package androidx.navigation.dynamicfeatures.fragment.ui {
+
+ public abstract class AbstractProgressFragment extends androidx.fragment.app.Fragment {
+ ctor public AbstractProgressFragment();
+ ctor public AbstractProgressFragment(int contentLayoutId);
+ method protected abstract void onCancelled();
+ method protected abstract void onFailed(@com.google.android.play.core.splitinstall.model.SplitInstallErrorCode int errorCode);
+ method protected void onInstalled();
+ method protected abstract void onProgress(@com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus int status, long bytesDownloaded, long bytesTotal);
+ }
+
+ public final class DefaultProgressFragment extends androidx.navigation.dynamicfeatures.fragment.ui.AbstractProgressFragment {
+ ctor public DefaultProgressFragment();
+ method protected void onCancelled();
+ method protected void onFailed(@com.google.android.play.core.splitinstall.model.SplitInstallErrorCode int errorCode);
+ method protected void onProgress(int status, long bytesDownloaded, long bytesTotal);
+ }
+
+}
+
diff --git a/navigation/navigation-dynamic-features-runtime/api/2.5.0-beta02.txt b/navigation/navigation-dynamic-features-runtime/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..e4c37db
--- /dev/null
+++ b/navigation/navigation-dynamic-features-runtime/api/2.5.0-beta02.txt
@@ -0,0 +1,154 @@
+// Signature format: 4.0
+package androidx.navigation.dynamicfeatures {
+
+ @androidx.navigation.Navigator.Name("activity") public final class DynamicActivityNavigator extends androidx.navigation.ActivityNavigator {
+ ctor public DynamicActivityNavigator(android.content.Context context, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager);
+ method public androidx.navigation.dynamicfeatures.DynamicActivityNavigator.Destination createDestination();
+ }
+
+ public static final class DynamicActivityNavigator.Destination extends androidx.navigation.ActivityNavigator.Destination {
+ ctor public DynamicActivityNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider);
+ ctor public DynamicActivityNavigator.Destination(androidx.navigation.Navigator<? extends androidx.navigation.ActivityNavigator.Destination> activityNavigator);
+ method public String? getModuleName();
+ method public void setModuleName(String?);
+ property public final String? moduleName;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class DynamicActivityNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.ActivityNavigator.Destination> {
+ ctor @Deprecated public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, @IdRes int id);
+ ctor public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, String route);
+ method public androidx.navigation.dynamicfeatures.DynamicActivityNavigator.Destination build();
+ method public String? getAction();
+ method public String? getActivityClassName();
+ method public android.net.Uri? getData();
+ method public String? getDataPattern();
+ method public String? getModuleName();
+ method public String? getTargetPackage();
+ method public void setAction(String?);
+ method public void setActivityClassName(String?);
+ method public void setData(android.net.Uri?);
+ method public void setDataPattern(String?);
+ method public void setModuleName(String?);
+ method public void setTargetPackage(String?);
+ property public final String? action;
+ property public final String? activityClassName;
+ property public final android.net.Uri? data;
+ property public final String? dataPattern;
+ property public final String? moduleName;
+ property public final String? targetPackage;
+ }
+
+ public final class DynamicActivityNavigatorDestinationBuilderKt {
+ method @Deprecated public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicActivityNavigatorDestinationBuilder,kotlin.Unit> builder);
+ method public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicActivityNavigatorDestinationBuilder,kotlin.Unit> builder);
+ }
+
+ public final class DynamicExtras implements androidx.navigation.Navigator.Extras {
+ ctor public DynamicExtras(optional androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor, optional androidx.navigation.Navigator.Extras? destinationExtras);
+ ctor public DynamicExtras(optional androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor);
+ ctor public DynamicExtras();
+ method public androidx.navigation.Navigator.Extras? getDestinationExtras();
+ method public androidx.navigation.dynamicfeatures.DynamicInstallMonitor? getInstallMonitor();
+ property public final androidx.navigation.Navigator.Extras? destinationExtras;
+ property public final androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor;
+ }
+
+ @androidx.navigation.Navigator.Name("navigation") public final class DynamicGraphNavigator extends androidx.navigation.NavGraphNavigator {
+ ctor public DynamicGraphNavigator(androidx.navigation.NavigatorProvider navigatorProvider, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager);
+ method public androidx.navigation.dynamicfeatures.DynamicGraphNavigator.DynamicNavGraph createDestination();
+ method public void installDefaultProgressDestination(kotlin.jvm.functions.Function0<? extends androidx.navigation.NavDestination> progressDestinationSupplier);
+ }
+
+ public static final class DynamicGraphNavigator.DynamicNavGraph extends androidx.navigation.NavGraph {
+ ctor public DynamicGraphNavigator.DynamicNavGraph(androidx.navigation.dynamicfeatures.DynamicGraphNavigator navGraphNavigator, androidx.navigation.NavigatorProvider navigatorProvider);
+ method public String? getModuleName();
+ method public int getProgressDestination();
+ method public void setModuleName(String?);
+ method public void setProgressDestination(int);
+ property public final String? moduleName;
+ property public final int progressDestination;
+ }
+
+ @androidx.navigation.Navigator.Name("include-dynamic") public final class DynamicIncludeGraphNavigator extends androidx.navigation.Navigator<androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph> {
+ ctor public DynamicIncludeGraphNavigator(android.content.Context context, androidx.navigation.NavigatorProvider navigatorProvider, androidx.navigation.NavInflater navInflater, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager);
+ method public androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph createDestination();
+ }
+
+ public static final class DynamicIncludeGraphNavigator.DynamicIncludeNavGraph extends androidx.navigation.NavDestination {
+ method public String? getGraphPackage();
+ method public String? getGraphResourceName();
+ method public String? getModuleName();
+ method public void setGraphPackage(String?);
+ method public void setGraphResourceName(String?);
+ method public void setModuleName(String?);
+ property public final String? graphPackage;
+ property public final String? graphResourceName;
+ property public final String? moduleName;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class DynamicIncludeNavGraphBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph> {
+ ctor @Deprecated public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, @IdRes int id, String moduleName, String graphResourceName);
+ ctor public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, String route, String moduleName, String graphResourceName);
+ method public androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph build();
+ method public String? getGraphPackage();
+ method public void setGraphPackage(String?);
+ property public final String? graphPackage;
+ }
+
+ public final class DynamicIncludeNavGraphBuilderKt {
+ method @Deprecated public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String moduleName, String graphResourceName);
+ method @Deprecated public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String moduleName, String graphResourceName, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicIncludeNavGraphBuilder,kotlin.Unit> builder);
+ method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String moduleName, String graphResourceName);
+ method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String moduleName, String graphResourceName, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicIncludeNavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public class DynamicInstallManager {
+ ctor public DynamicInstallManager(android.content.Context context, com.google.android.play.core.splitinstall.SplitInstallManager splitInstallManager);
+ }
+
+ public final class DynamicInstallMonitor {
+ ctor public DynamicInstallMonitor();
+ method public void cancelInstall();
+ method public Exception? getException();
+ method public int getSessionId();
+ method public androidx.lifecycle.LiveData<com.google.android.play.core.splitinstall.SplitInstallSessionState> getStatus();
+ method public boolean isInstallRequired();
+ property public final Exception? exception;
+ property public final boolean isInstallRequired;
+ property public final int sessionId;
+ property public final androidx.lifecycle.LiveData<com.google.android.play.core.splitinstall.SplitInstallSessionState> status;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class DynamicNavGraphBuilder extends androidx.navigation.NavGraphBuilder {
+ ctor @Deprecated public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, @IdRes int id, @IdRes int startDestination);
+ ctor public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, String startDestination, optional String? route);
+ method public String? getModuleName();
+ method public int getProgressDestination();
+ method public String? getProgressDestinationRoute();
+ method public void setModuleName(String?);
+ method public void setProgressDestination(int);
+ method public void setProgressDestinationRoute(String?);
+ property public final String? moduleName;
+ property public final int progressDestination;
+ property public final String? progressDestinationRoute;
+ }
+
+ public final class DynamicNavGraphBuilderKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ method @Deprecated public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ method public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String startDestination, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavControllerKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavHostKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ }
+
+}
+
diff --git a/navigation/navigation-dynamic-features-runtime/api/public_plus_experimental_2.5.0-beta02.txt b/navigation/navigation-dynamic-features-runtime/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..e4c37db
--- /dev/null
+++ b/navigation/navigation-dynamic-features-runtime/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,154 @@
+// Signature format: 4.0
+package androidx.navigation.dynamicfeatures {
+
+ @androidx.navigation.Navigator.Name("activity") public final class DynamicActivityNavigator extends androidx.navigation.ActivityNavigator {
+ ctor public DynamicActivityNavigator(android.content.Context context, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager);
+ method public androidx.navigation.dynamicfeatures.DynamicActivityNavigator.Destination createDestination();
+ }
+
+ public static final class DynamicActivityNavigator.Destination extends androidx.navigation.ActivityNavigator.Destination {
+ ctor public DynamicActivityNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider);
+ ctor public DynamicActivityNavigator.Destination(androidx.navigation.Navigator<? extends androidx.navigation.ActivityNavigator.Destination> activityNavigator);
+ method public String? getModuleName();
+ method public void setModuleName(String?);
+ property public final String? moduleName;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class DynamicActivityNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.ActivityNavigator.Destination> {
+ ctor @Deprecated public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, @IdRes int id);
+ ctor public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, String route);
+ method public androidx.navigation.dynamicfeatures.DynamicActivityNavigator.Destination build();
+ method public String? getAction();
+ method public String? getActivityClassName();
+ method public android.net.Uri? getData();
+ method public String? getDataPattern();
+ method public String? getModuleName();
+ method public String? getTargetPackage();
+ method public void setAction(String?);
+ method public void setActivityClassName(String?);
+ method public void setData(android.net.Uri?);
+ method public void setDataPattern(String?);
+ method public void setModuleName(String?);
+ method public void setTargetPackage(String?);
+ property public final String? action;
+ property public final String? activityClassName;
+ property public final android.net.Uri? data;
+ property public final String? dataPattern;
+ property public final String? moduleName;
+ property public final String? targetPackage;
+ }
+
+ public final class DynamicActivityNavigatorDestinationBuilderKt {
+ method @Deprecated public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicActivityNavigatorDestinationBuilder,kotlin.Unit> builder);
+ method public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicActivityNavigatorDestinationBuilder,kotlin.Unit> builder);
+ }
+
+ public final class DynamicExtras implements androidx.navigation.Navigator.Extras {
+ ctor public DynamicExtras(optional androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor, optional androidx.navigation.Navigator.Extras? destinationExtras);
+ ctor public DynamicExtras(optional androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor);
+ ctor public DynamicExtras();
+ method public androidx.navigation.Navigator.Extras? getDestinationExtras();
+ method public androidx.navigation.dynamicfeatures.DynamicInstallMonitor? getInstallMonitor();
+ property public final androidx.navigation.Navigator.Extras? destinationExtras;
+ property public final androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor;
+ }
+
+ @androidx.navigation.Navigator.Name("navigation") public final class DynamicGraphNavigator extends androidx.navigation.NavGraphNavigator {
+ ctor public DynamicGraphNavigator(androidx.navigation.NavigatorProvider navigatorProvider, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager);
+ method public androidx.navigation.dynamicfeatures.DynamicGraphNavigator.DynamicNavGraph createDestination();
+ method public void installDefaultProgressDestination(kotlin.jvm.functions.Function0<? extends androidx.navigation.NavDestination> progressDestinationSupplier);
+ }
+
+ public static final class DynamicGraphNavigator.DynamicNavGraph extends androidx.navigation.NavGraph {
+ ctor public DynamicGraphNavigator.DynamicNavGraph(androidx.navigation.dynamicfeatures.DynamicGraphNavigator navGraphNavigator, androidx.navigation.NavigatorProvider navigatorProvider);
+ method public String? getModuleName();
+ method public int getProgressDestination();
+ method public void setModuleName(String?);
+ method public void setProgressDestination(int);
+ property public final String? moduleName;
+ property public final int progressDestination;
+ }
+
+ @androidx.navigation.Navigator.Name("include-dynamic") public final class DynamicIncludeGraphNavigator extends androidx.navigation.Navigator<androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph> {
+ ctor public DynamicIncludeGraphNavigator(android.content.Context context, androidx.navigation.NavigatorProvider navigatorProvider, androidx.navigation.NavInflater navInflater, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager);
+ method public androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph createDestination();
+ }
+
+ public static final class DynamicIncludeGraphNavigator.DynamicIncludeNavGraph extends androidx.navigation.NavDestination {
+ method public String? getGraphPackage();
+ method public String? getGraphResourceName();
+ method public String? getModuleName();
+ method public void setGraphPackage(String?);
+ method public void setGraphResourceName(String?);
+ method public void setModuleName(String?);
+ property public final String? graphPackage;
+ property public final String? graphResourceName;
+ property public final String? moduleName;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class DynamicIncludeNavGraphBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph> {
+ ctor @Deprecated public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, @IdRes int id, String moduleName, String graphResourceName);
+ ctor public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, String route, String moduleName, String graphResourceName);
+ method public androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph build();
+ method public String? getGraphPackage();
+ method public void setGraphPackage(String?);
+ property public final String? graphPackage;
+ }
+
+ public final class DynamicIncludeNavGraphBuilderKt {
+ method @Deprecated public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String moduleName, String graphResourceName);
+ method @Deprecated public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String moduleName, String graphResourceName, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicIncludeNavGraphBuilder,kotlin.Unit> builder);
+ method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String moduleName, String graphResourceName);
+ method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String moduleName, String graphResourceName, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicIncludeNavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public class DynamicInstallManager {
+ ctor public DynamicInstallManager(android.content.Context context, com.google.android.play.core.splitinstall.SplitInstallManager splitInstallManager);
+ }
+
+ public final class DynamicInstallMonitor {
+ ctor public DynamicInstallMonitor();
+ method public void cancelInstall();
+ method public Exception? getException();
+ method public int getSessionId();
+ method public androidx.lifecycle.LiveData<com.google.android.play.core.splitinstall.SplitInstallSessionState> getStatus();
+ method public boolean isInstallRequired();
+ property public final Exception? exception;
+ property public final boolean isInstallRequired;
+ property public final int sessionId;
+ property public final androidx.lifecycle.LiveData<com.google.android.play.core.splitinstall.SplitInstallSessionState> status;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class DynamicNavGraphBuilder extends androidx.navigation.NavGraphBuilder {
+ ctor @Deprecated public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, @IdRes int id, @IdRes int startDestination);
+ ctor public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, String startDestination, optional String? route);
+ method public String? getModuleName();
+ method public int getProgressDestination();
+ method public String? getProgressDestinationRoute();
+ method public void setModuleName(String?);
+ method public void setProgressDestination(int);
+ method public void setProgressDestinationRoute(String?);
+ property public final String? moduleName;
+ property public final int progressDestination;
+ property public final String? progressDestinationRoute;
+ }
+
+ public final class DynamicNavGraphBuilderKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ method @Deprecated public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ method public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String startDestination, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavControllerKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavHostKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ }
+
+}
+
diff --git a/navigation/navigation-dynamic-features-runtime/api/res-2.5.0-beta02.txt b/navigation/navigation-dynamic-features-runtime/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/navigation/navigation-dynamic-features-runtime/api/res-2.5.0-beta02.txt
diff --git a/navigation/navigation-dynamic-features-runtime/api/restricted_2.5.0-beta02.txt b/navigation/navigation-dynamic-features-runtime/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..e4c37db
--- /dev/null
+++ b/navigation/navigation-dynamic-features-runtime/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,154 @@
+// Signature format: 4.0
+package androidx.navigation.dynamicfeatures {
+
+ @androidx.navigation.Navigator.Name("activity") public final class DynamicActivityNavigator extends androidx.navigation.ActivityNavigator {
+ ctor public DynamicActivityNavigator(android.content.Context context, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager);
+ method public androidx.navigation.dynamicfeatures.DynamicActivityNavigator.Destination createDestination();
+ }
+
+ public static final class DynamicActivityNavigator.Destination extends androidx.navigation.ActivityNavigator.Destination {
+ ctor public DynamicActivityNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider);
+ ctor public DynamicActivityNavigator.Destination(androidx.navigation.Navigator<? extends androidx.navigation.ActivityNavigator.Destination> activityNavigator);
+ method public String? getModuleName();
+ method public void setModuleName(String?);
+ property public final String? moduleName;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class DynamicActivityNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.ActivityNavigator.Destination> {
+ ctor @Deprecated public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, @IdRes int id);
+ ctor public DynamicActivityNavigatorDestinationBuilder(androidx.navigation.dynamicfeatures.DynamicActivityNavigator activityNavigator, String route);
+ method public androidx.navigation.dynamicfeatures.DynamicActivityNavigator.Destination build();
+ method public String? getAction();
+ method public String? getActivityClassName();
+ method public android.net.Uri? getData();
+ method public String? getDataPattern();
+ method public String? getModuleName();
+ method public String? getTargetPackage();
+ method public void setAction(String?);
+ method public void setActivityClassName(String?);
+ method public void setData(android.net.Uri?);
+ method public void setDataPattern(String?);
+ method public void setModuleName(String?);
+ method public void setTargetPackage(String?);
+ property public final String? action;
+ property public final String? activityClassName;
+ property public final android.net.Uri? data;
+ property public final String? dataPattern;
+ property public final String? moduleName;
+ property public final String? targetPackage;
+ }
+
+ public final class DynamicActivityNavigatorDestinationBuilderKt {
+ method @Deprecated public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicActivityNavigatorDestinationBuilder,kotlin.Unit> builder);
+ method public static inline void activity(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicActivityNavigatorDestinationBuilder,kotlin.Unit> builder);
+ }
+
+ public final class DynamicExtras implements androidx.navigation.Navigator.Extras {
+ ctor public DynamicExtras(optional androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor, optional androidx.navigation.Navigator.Extras? destinationExtras);
+ ctor public DynamicExtras(optional androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor);
+ ctor public DynamicExtras();
+ method public androidx.navigation.Navigator.Extras? getDestinationExtras();
+ method public androidx.navigation.dynamicfeatures.DynamicInstallMonitor? getInstallMonitor();
+ property public final androidx.navigation.Navigator.Extras? destinationExtras;
+ property public final androidx.navigation.dynamicfeatures.DynamicInstallMonitor? installMonitor;
+ }
+
+ @androidx.navigation.Navigator.Name("navigation") public final class DynamicGraphNavigator extends androidx.navigation.NavGraphNavigator {
+ ctor public DynamicGraphNavigator(androidx.navigation.NavigatorProvider navigatorProvider, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager);
+ method public androidx.navigation.dynamicfeatures.DynamicGraphNavigator.DynamicNavGraph createDestination();
+ method public void installDefaultProgressDestination(kotlin.jvm.functions.Function0<? extends androidx.navigation.NavDestination> progressDestinationSupplier);
+ }
+
+ public static final class DynamicGraphNavigator.DynamicNavGraph extends androidx.navigation.NavGraph {
+ ctor public DynamicGraphNavigator.DynamicNavGraph(androidx.navigation.dynamicfeatures.DynamicGraphNavigator navGraphNavigator, androidx.navigation.NavigatorProvider navigatorProvider);
+ method public String? getModuleName();
+ method public int getProgressDestination();
+ method public void setModuleName(String?);
+ method public void setProgressDestination(int);
+ property public final String? moduleName;
+ property public final int progressDestination;
+ }
+
+ @androidx.navigation.Navigator.Name("include-dynamic") public final class DynamicIncludeGraphNavigator extends androidx.navigation.Navigator<androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph> {
+ ctor public DynamicIncludeGraphNavigator(android.content.Context context, androidx.navigation.NavigatorProvider navigatorProvider, androidx.navigation.NavInflater navInflater, androidx.navigation.dynamicfeatures.DynamicInstallManager installManager);
+ method public androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph createDestination();
+ }
+
+ public static final class DynamicIncludeGraphNavigator.DynamicIncludeNavGraph extends androidx.navigation.NavDestination {
+ method public String? getGraphPackage();
+ method public String? getGraphResourceName();
+ method public String? getModuleName();
+ method public void setGraphPackage(String?);
+ method public void setGraphResourceName(String?);
+ method public void setModuleName(String?);
+ property public final String? graphPackage;
+ property public final String? graphResourceName;
+ property public final String? moduleName;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class DynamicIncludeNavGraphBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph> {
+ ctor @Deprecated public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, @IdRes int id, String moduleName, String graphResourceName);
+ ctor public DynamicIncludeNavGraphBuilder(androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator dynamicIncludeGraphNavigator, String route, String moduleName, String graphResourceName);
+ method public androidx.navigation.dynamicfeatures.DynamicIncludeGraphNavigator.DynamicIncludeNavGraph build();
+ method public String? getGraphPackage();
+ method public void setGraphPackage(String?);
+ property public final String? graphPackage;
+ }
+
+ public final class DynamicIncludeNavGraphBuilderKt {
+ method @Deprecated public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String moduleName, String graphResourceName);
+ method @Deprecated public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, String moduleName, String graphResourceName, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicIncludeNavGraphBuilder,kotlin.Unit> builder);
+ method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String moduleName, String graphResourceName);
+ method public static inline void includeDynamic(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String route, String moduleName, String graphResourceName, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicIncludeNavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public class DynamicInstallManager {
+ ctor public DynamicInstallManager(android.content.Context context, com.google.android.play.core.splitinstall.SplitInstallManager splitInstallManager);
+ }
+
+ public final class DynamicInstallMonitor {
+ ctor public DynamicInstallMonitor();
+ method public void cancelInstall();
+ method public Exception? getException();
+ method public int getSessionId();
+ method public androidx.lifecycle.LiveData<com.google.android.play.core.splitinstall.SplitInstallSessionState> getStatus();
+ method public boolean isInstallRequired();
+ property public final Exception? exception;
+ property public final boolean isInstallRequired;
+ property public final int sessionId;
+ property public final androidx.lifecycle.LiveData<com.google.android.play.core.splitinstall.SplitInstallSessionState> status;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class DynamicNavGraphBuilder extends androidx.navigation.NavGraphBuilder {
+ ctor @Deprecated public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, @IdRes int id, @IdRes int startDestination);
+ ctor public DynamicNavGraphBuilder(androidx.navigation.NavigatorProvider provider, String startDestination, optional String? route);
+ method public String? getModuleName();
+ method public int getProgressDestination();
+ method public String? getProgressDestinationRoute();
+ method public void setModuleName(String?);
+ method public void setProgressDestination(int);
+ method public void setProgressDestinationRoute(String?);
+ property public final String? moduleName;
+ property public final int progressDestination;
+ property public final String? progressDestinationRoute;
+ }
+
+ public final class DynamicNavGraphBuilderKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ method @Deprecated public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph navigation(androidx.navigation.NavigatorProvider, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ method public static inline void navigation(androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder, String startDestination, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavControllerKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavHostKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.dynamicfeatures.DynamicNavGraphBuilder,kotlin.Unit> builder);
+ }
+
+}
+
diff --git a/navigation/navigation-fragment-ktx/api/2.5.0-beta02.txt b/navigation/navigation-fragment-ktx/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/navigation/navigation-fragment-ktx/api/2.5.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/navigation/navigation-fragment-ktx/api/public_plus_experimental_2.5.0-beta02.txt b/navigation/navigation-fragment-ktx/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/navigation/navigation-fragment-ktx/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/navigation/navigation-fragment-ktx/api/res-2.5.0-beta02.txt b/navigation/navigation-fragment-ktx/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/navigation/navigation-fragment-ktx/api/res-2.5.0-beta02.txt
diff --git a/navigation/navigation-fragment-ktx/api/restricted_2.5.0-beta02.txt b/navigation/navigation-fragment-ktx/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/navigation/navigation-fragment-ktx/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/navigation/navigation-fragment/api/2.5.0-beta02.txt b/navigation/navigation-fragment/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..52fc882
--- /dev/null
+++ b/navigation/navigation-fragment/api/2.5.0-beta02.txt
@@ -0,0 +1,125 @@
+// Signature format: 4.0
+package androidx.navigation {
+
+ public final class NavGraphViewModelLazyKt {
+ method @Deprecated @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! navGraphViewModels(androidx.fragment.app.Fragment, @IdRes int navGraphId, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! navGraphViewModels(androidx.fragment.app.Fragment, @IdRes int navGraphId, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras>? extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @Deprecated @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! navGraphViewModels(androidx.fragment.app.Fragment, String navGraphRoute, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! navGraphViewModels(androidx.fragment.app.Fragment, String navGraphRoute, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras>? extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ }
+
+}
+
+package androidx.navigation.fragment {
+
+ public abstract class AbstractListDetailFragment extends androidx.fragment.app.Fragment {
+ ctor public AbstractListDetailFragment();
+ method public final androidx.navigation.fragment.NavHostFragment getDetailPaneNavHostFragment();
+ method public final androidx.slidingpanelayout.widget.SlidingPaneLayout getSlidingPaneLayout();
+ method public androidx.navigation.fragment.NavHostFragment onCreateDetailPaneNavHostFragment();
+ method public abstract android.view.View onCreateListPaneView(android.view.LayoutInflater inflater, android.view.ViewGroup? container, android.os.Bundle? savedInstanceState);
+ method @CallSuper public final android.view.View onCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup? container, android.os.Bundle? savedInstanceState);
+ method public void onListPaneViewCreated(android.view.View view, android.os.Bundle? savedInstanceState);
+ method @CallSuper public final void onViewCreated(android.view.View view, android.os.Bundle? savedInstanceState);
+ property public final androidx.navigation.fragment.NavHostFragment detailPaneNavHostFragment;
+ property public final androidx.slidingpanelayout.widget.SlidingPaneLayout slidingPaneLayout;
+ }
+
+ @androidx.navigation.Navigator.Name("dialog") public final class DialogFragmentNavigator extends androidx.navigation.Navigator<androidx.navigation.fragment.DialogFragmentNavigator.Destination> {
+ ctor public DialogFragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager);
+ method public androidx.navigation.fragment.DialogFragmentNavigator.Destination createDestination();
+ }
+
+ @androidx.navigation.NavDestination.ClassType(DialogFragment::class) public static class DialogFragmentNavigator.Destination extends androidx.navigation.NavDestination implements androidx.navigation.FloatingWindow {
+ ctor public DialogFragmentNavigator.Destination(androidx.navigation.Navigator<? extends androidx.navigation.fragment.DialogFragmentNavigator.Destination> fragmentNavigator);
+ ctor public DialogFragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider);
+ method public final String getClassName();
+ method public final androidx.navigation.fragment.DialogFragmentNavigator.Destination setClassName(String className);
+ property public final String className;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class DialogFragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.fragment.DialogFragmentNavigator.Destination> {
+ ctor @Deprecated public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, @IdRes int id, kotlin.reflect.KClass<? extends androidx.fragment.app.DialogFragment> fragmentClass);
+ ctor public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, String route, kotlin.reflect.KClass<? extends androidx.fragment.app.DialogFragment> fragmentClass);
+ method public androidx.navigation.fragment.DialogFragmentNavigator.Destination build();
+ }
+
+ public final class DialogFragmentNavigatorDestinationBuilderKt {
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.DialogFragment> void dialog(androidx.navigation.NavGraphBuilder, @IdRes int id);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.DialogFragment> void dialog(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1<? super androidx.navigation.fragment.DialogFragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ method public static inline <reified F extends androidx.fragment.app.DialogFragment> void dialog(androidx.navigation.NavGraphBuilder, String route);
+ method public static inline <reified F extends androidx.fragment.app.DialogFragment> void dialog(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.fragment.DialogFragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ }
+
+ public final class FragmentKt {
+ method public static androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment);
+ }
+
+ public final class FragmentNavArgsLazyKt {
+ method @MainThread public static inline <reified Args extends androidx.navigation.NavArgs> androidx.navigation.NavArgsLazy<Args>! navArgs(androidx.fragment.app.Fragment);
+ }
+
+ @androidx.navigation.Navigator.Name("fragment") public class FragmentNavigator extends androidx.navigation.Navigator<androidx.navigation.fragment.FragmentNavigator.Destination> {
+ ctor public FragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager, int containerId);
+ method public androidx.navigation.fragment.FragmentNavigator.Destination createDestination();
+ method @Deprecated public androidx.fragment.app.Fragment instantiateFragment(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager, String className, android.os.Bundle? args);
+ }
+
+ @androidx.navigation.NavDestination.ClassType(Fragment::class) public static class FragmentNavigator.Destination extends androidx.navigation.NavDestination {
+ ctor public FragmentNavigator.Destination(androidx.navigation.Navigator<? extends androidx.navigation.fragment.FragmentNavigator.Destination> fragmentNavigator);
+ ctor public FragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider);
+ method public final String getClassName();
+ method public final androidx.navigation.fragment.FragmentNavigator.Destination setClassName(String className);
+ property public final String className;
+ }
+
+ public static final class FragmentNavigator.Extras implements androidx.navigation.Navigator.Extras {
+ method public java.util.Map<android.view.View,java.lang.String> getSharedElements();
+ property public final java.util.Map<android.view.View,java.lang.String> sharedElements;
+ }
+
+ public static final class FragmentNavigator.Extras.Builder {
+ ctor public FragmentNavigator.Extras.Builder();
+ method public androidx.navigation.fragment.FragmentNavigator.Extras.Builder addSharedElement(android.view.View sharedElement, String name);
+ method public androidx.navigation.fragment.FragmentNavigator.Extras.Builder addSharedElements(java.util.Map<android.view.View,java.lang.String> sharedElements);
+ method public androidx.navigation.fragment.FragmentNavigator.Extras build();
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class FragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.fragment.FragmentNavigator.Destination> {
+ ctor @Deprecated public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, @IdRes int id, kotlin.reflect.KClass<? extends androidx.fragment.app.Fragment> fragmentClass);
+ ctor public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, String route, kotlin.reflect.KClass<? extends androidx.fragment.app.Fragment> fragmentClass);
+ method public androidx.navigation.fragment.FragmentNavigator.Destination build();
+ }
+
+ public final class FragmentNavigatorDestinationBuilderKt {
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.NavGraphBuilder, @IdRes int id);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1<? super androidx.navigation.fragment.FragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.NavGraphBuilder, String route);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.fragment.FragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ }
+
+ public final class FragmentNavigatorExtrasKt {
+ method public static androidx.navigation.fragment.FragmentNavigator.Extras FragmentNavigatorExtras(kotlin.Pair<? extends android.view.View,java.lang.String>... sharedElements);
+ }
+
+ public class NavHostFragment extends androidx.fragment.app.Fragment implements androidx.navigation.NavHost {
+ ctor public NavHostFragment();
+ method public static final androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+ method public static final androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId);
+ method @Deprecated protected androidx.navigation.Navigator<? extends androidx.navigation.fragment.FragmentNavigator.Destination> createFragmentNavigator();
+ method public static final androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment fragment);
+ method public final androidx.navigation.NavController getNavController();
+ method @Deprecated @CallSuper protected void onCreateNavController(androidx.navigation.NavController navController);
+ method @CallSuper protected void onCreateNavHostController(androidx.navigation.NavHostController navHostController);
+ property public final androidx.navigation.NavController navController;
+ field public static final androidx.navigation.fragment.NavHostFragment.Companion Companion;
+ }
+
+ public static final class NavHostFragment.Companion {
+ method public androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+ method public androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId);
+ method public androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment fragment);
+ }
+
+}
+
diff --git a/navigation/navigation-fragment/api/public_plus_experimental_2.5.0-beta02.txt b/navigation/navigation-fragment/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..52fc882
--- /dev/null
+++ b/navigation/navigation-fragment/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,125 @@
+// Signature format: 4.0
+package androidx.navigation {
+
+ public final class NavGraphViewModelLazyKt {
+ method @Deprecated @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! navGraphViewModels(androidx.fragment.app.Fragment, @IdRes int navGraphId, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! navGraphViewModels(androidx.fragment.app.Fragment, @IdRes int navGraphId, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras>? extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @Deprecated @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! navGraphViewModels(androidx.fragment.app.Fragment, String navGraphRoute, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! navGraphViewModels(androidx.fragment.app.Fragment, String navGraphRoute, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras>? extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ }
+
+}
+
+package androidx.navigation.fragment {
+
+ public abstract class AbstractListDetailFragment extends androidx.fragment.app.Fragment {
+ ctor public AbstractListDetailFragment();
+ method public final androidx.navigation.fragment.NavHostFragment getDetailPaneNavHostFragment();
+ method public final androidx.slidingpanelayout.widget.SlidingPaneLayout getSlidingPaneLayout();
+ method public androidx.navigation.fragment.NavHostFragment onCreateDetailPaneNavHostFragment();
+ method public abstract android.view.View onCreateListPaneView(android.view.LayoutInflater inflater, android.view.ViewGroup? container, android.os.Bundle? savedInstanceState);
+ method @CallSuper public final android.view.View onCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup? container, android.os.Bundle? savedInstanceState);
+ method public void onListPaneViewCreated(android.view.View view, android.os.Bundle? savedInstanceState);
+ method @CallSuper public final void onViewCreated(android.view.View view, android.os.Bundle? savedInstanceState);
+ property public final androidx.navigation.fragment.NavHostFragment detailPaneNavHostFragment;
+ property public final androidx.slidingpanelayout.widget.SlidingPaneLayout slidingPaneLayout;
+ }
+
+ @androidx.navigation.Navigator.Name("dialog") public final class DialogFragmentNavigator extends androidx.navigation.Navigator<androidx.navigation.fragment.DialogFragmentNavigator.Destination> {
+ ctor public DialogFragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager);
+ method public androidx.navigation.fragment.DialogFragmentNavigator.Destination createDestination();
+ }
+
+ @androidx.navigation.NavDestination.ClassType(DialogFragment::class) public static class DialogFragmentNavigator.Destination extends androidx.navigation.NavDestination implements androidx.navigation.FloatingWindow {
+ ctor public DialogFragmentNavigator.Destination(androidx.navigation.Navigator<? extends androidx.navigation.fragment.DialogFragmentNavigator.Destination> fragmentNavigator);
+ ctor public DialogFragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider);
+ method public final String getClassName();
+ method public final androidx.navigation.fragment.DialogFragmentNavigator.Destination setClassName(String className);
+ property public final String className;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class DialogFragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.fragment.DialogFragmentNavigator.Destination> {
+ ctor @Deprecated public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, @IdRes int id, kotlin.reflect.KClass<? extends androidx.fragment.app.DialogFragment> fragmentClass);
+ ctor public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, String route, kotlin.reflect.KClass<? extends androidx.fragment.app.DialogFragment> fragmentClass);
+ method public androidx.navigation.fragment.DialogFragmentNavigator.Destination build();
+ }
+
+ public final class DialogFragmentNavigatorDestinationBuilderKt {
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.DialogFragment> void dialog(androidx.navigation.NavGraphBuilder, @IdRes int id);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.DialogFragment> void dialog(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1<? super androidx.navigation.fragment.DialogFragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ method public static inline <reified F extends androidx.fragment.app.DialogFragment> void dialog(androidx.navigation.NavGraphBuilder, String route);
+ method public static inline <reified F extends androidx.fragment.app.DialogFragment> void dialog(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.fragment.DialogFragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ }
+
+ public final class FragmentKt {
+ method public static androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment);
+ }
+
+ public final class FragmentNavArgsLazyKt {
+ method @MainThread public static inline <reified Args extends androidx.navigation.NavArgs> androidx.navigation.NavArgsLazy<Args>! navArgs(androidx.fragment.app.Fragment);
+ }
+
+ @androidx.navigation.Navigator.Name("fragment") public class FragmentNavigator extends androidx.navigation.Navigator<androidx.navigation.fragment.FragmentNavigator.Destination> {
+ ctor public FragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager, int containerId);
+ method public androidx.navigation.fragment.FragmentNavigator.Destination createDestination();
+ method @Deprecated public androidx.fragment.app.Fragment instantiateFragment(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager, String className, android.os.Bundle? args);
+ }
+
+ @androidx.navigation.NavDestination.ClassType(Fragment::class) public static class FragmentNavigator.Destination extends androidx.navigation.NavDestination {
+ ctor public FragmentNavigator.Destination(androidx.navigation.Navigator<? extends androidx.navigation.fragment.FragmentNavigator.Destination> fragmentNavigator);
+ ctor public FragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider);
+ method public final String getClassName();
+ method public final androidx.navigation.fragment.FragmentNavigator.Destination setClassName(String className);
+ property public final String className;
+ }
+
+ public static final class FragmentNavigator.Extras implements androidx.navigation.Navigator.Extras {
+ method public java.util.Map<android.view.View,java.lang.String> getSharedElements();
+ property public final java.util.Map<android.view.View,java.lang.String> sharedElements;
+ }
+
+ public static final class FragmentNavigator.Extras.Builder {
+ ctor public FragmentNavigator.Extras.Builder();
+ method public androidx.navigation.fragment.FragmentNavigator.Extras.Builder addSharedElement(android.view.View sharedElement, String name);
+ method public androidx.navigation.fragment.FragmentNavigator.Extras.Builder addSharedElements(java.util.Map<android.view.View,java.lang.String> sharedElements);
+ method public androidx.navigation.fragment.FragmentNavigator.Extras build();
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class FragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.fragment.FragmentNavigator.Destination> {
+ ctor @Deprecated public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, @IdRes int id, kotlin.reflect.KClass<? extends androidx.fragment.app.Fragment> fragmentClass);
+ ctor public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, String route, kotlin.reflect.KClass<? extends androidx.fragment.app.Fragment> fragmentClass);
+ method public androidx.navigation.fragment.FragmentNavigator.Destination build();
+ }
+
+ public final class FragmentNavigatorDestinationBuilderKt {
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.NavGraphBuilder, @IdRes int id);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1<? super androidx.navigation.fragment.FragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.NavGraphBuilder, String route);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.fragment.FragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ }
+
+ public final class FragmentNavigatorExtrasKt {
+ method public static androidx.navigation.fragment.FragmentNavigator.Extras FragmentNavigatorExtras(kotlin.Pair<? extends android.view.View,java.lang.String>... sharedElements);
+ }
+
+ public class NavHostFragment extends androidx.fragment.app.Fragment implements androidx.navigation.NavHost {
+ ctor public NavHostFragment();
+ method public static final androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+ method public static final androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId);
+ method @Deprecated protected androidx.navigation.Navigator<? extends androidx.navigation.fragment.FragmentNavigator.Destination> createFragmentNavigator();
+ method public static final androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment fragment);
+ method public final androidx.navigation.NavController getNavController();
+ method @Deprecated @CallSuper protected void onCreateNavController(androidx.navigation.NavController navController);
+ method @CallSuper protected void onCreateNavHostController(androidx.navigation.NavHostController navHostController);
+ property public final androidx.navigation.NavController navController;
+ field public static final androidx.navigation.fragment.NavHostFragment.Companion Companion;
+ }
+
+ public static final class NavHostFragment.Companion {
+ method public androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+ method public androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId);
+ method public androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment fragment);
+ }
+
+}
+
diff --git a/navigation/navigation-fragment/api/res-2.5.0-beta02.txt b/navigation/navigation-fragment/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/navigation/navigation-fragment/api/res-2.5.0-beta02.txt
diff --git a/navigation/navigation-fragment/api/restricted_2.5.0-beta02.txt b/navigation/navigation-fragment/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..52fc882
--- /dev/null
+++ b/navigation/navigation-fragment/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,125 @@
+// Signature format: 4.0
+package androidx.navigation {
+
+ public final class NavGraphViewModelLazyKt {
+ method @Deprecated @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! navGraphViewModels(androidx.fragment.app.Fragment, @IdRes int navGraphId, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! navGraphViewModels(androidx.fragment.app.Fragment, @IdRes int navGraphId, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras>? extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @Deprecated @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! navGraphViewModels(androidx.fragment.app.Fragment, String navGraphRoute, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ method @MainThread public static inline <reified VM extends androidx.lifecycle.ViewModel> kotlin.Lazy<? extends VM>! navGraphViewModels(androidx.fragment.app.Fragment, String navGraphRoute, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.viewmodel.CreationExtras>? extrasProducer, optional kotlin.jvm.functions.Function0<? extends androidx.lifecycle.ViewModelProvider.Factory>? factoryProducer);
+ }
+
+}
+
+package androidx.navigation.fragment {
+
+ public abstract class AbstractListDetailFragment extends androidx.fragment.app.Fragment {
+ ctor public AbstractListDetailFragment();
+ method public final androidx.navigation.fragment.NavHostFragment getDetailPaneNavHostFragment();
+ method public final androidx.slidingpanelayout.widget.SlidingPaneLayout getSlidingPaneLayout();
+ method public androidx.navigation.fragment.NavHostFragment onCreateDetailPaneNavHostFragment();
+ method public abstract android.view.View onCreateListPaneView(android.view.LayoutInflater inflater, android.view.ViewGroup? container, android.os.Bundle? savedInstanceState);
+ method @CallSuper public final android.view.View onCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup? container, android.os.Bundle? savedInstanceState);
+ method public void onListPaneViewCreated(android.view.View view, android.os.Bundle? savedInstanceState);
+ method @CallSuper public final void onViewCreated(android.view.View view, android.os.Bundle? savedInstanceState);
+ property public final androidx.navigation.fragment.NavHostFragment detailPaneNavHostFragment;
+ property public final androidx.slidingpanelayout.widget.SlidingPaneLayout slidingPaneLayout;
+ }
+
+ @androidx.navigation.Navigator.Name("dialog") public final class DialogFragmentNavigator extends androidx.navigation.Navigator<androidx.navigation.fragment.DialogFragmentNavigator.Destination> {
+ ctor public DialogFragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager);
+ method public androidx.navigation.fragment.DialogFragmentNavigator.Destination createDestination();
+ }
+
+ @androidx.navigation.NavDestination.ClassType(DialogFragment::class) public static class DialogFragmentNavigator.Destination extends androidx.navigation.NavDestination implements androidx.navigation.FloatingWindow {
+ ctor public DialogFragmentNavigator.Destination(androidx.navigation.Navigator<? extends androidx.navigation.fragment.DialogFragmentNavigator.Destination> fragmentNavigator);
+ ctor public DialogFragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider);
+ method public final String getClassName();
+ method public final androidx.navigation.fragment.DialogFragmentNavigator.Destination setClassName(String className);
+ property public final String className;
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class DialogFragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.fragment.DialogFragmentNavigator.Destination> {
+ ctor @Deprecated public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, @IdRes int id, kotlin.reflect.KClass<? extends androidx.fragment.app.DialogFragment> fragmentClass);
+ ctor public DialogFragmentNavigatorDestinationBuilder(androidx.navigation.fragment.DialogFragmentNavigator navigator, String route, kotlin.reflect.KClass<? extends androidx.fragment.app.DialogFragment> fragmentClass);
+ method public androidx.navigation.fragment.DialogFragmentNavigator.Destination build();
+ }
+
+ public final class DialogFragmentNavigatorDestinationBuilderKt {
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.DialogFragment> void dialog(androidx.navigation.NavGraphBuilder, @IdRes int id);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.DialogFragment> void dialog(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1<? super androidx.navigation.fragment.DialogFragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ method public static inline <reified F extends androidx.fragment.app.DialogFragment> void dialog(androidx.navigation.NavGraphBuilder, String route);
+ method public static inline <reified F extends androidx.fragment.app.DialogFragment> void dialog(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.fragment.DialogFragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ }
+
+ public final class FragmentKt {
+ method public static androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment);
+ }
+
+ public final class FragmentNavArgsLazyKt {
+ method @MainThread public static inline <reified Args extends androidx.navigation.NavArgs> androidx.navigation.NavArgsLazy<Args>! navArgs(androidx.fragment.app.Fragment);
+ }
+
+ @androidx.navigation.Navigator.Name("fragment") public class FragmentNavigator extends androidx.navigation.Navigator<androidx.navigation.fragment.FragmentNavigator.Destination> {
+ ctor public FragmentNavigator(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager, int containerId);
+ method public androidx.navigation.fragment.FragmentNavigator.Destination createDestination();
+ method @Deprecated public androidx.fragment.app.Fragment instantiateFragment(android.content.Context context, androidx.fragment.app.FragmentManager fragmentManager, String className, android.os.Bundle? args);
+ }
+
+ @androidx.navigation.NavDestination.ClassType(Fragment::class) public static class FragmentNavigator.Destination extends androidx.navigation.NavDestination {
+ ctor public FragmentNavigator.Destination(androidx.navigation.Navigator<? extends androidx.navigation.fragment.FragmentNavigator.Destination> fragmentNavigator);
+ ctor public FragmentNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider);
+ method public final String getClassName();
+ method public final androidx.navigation.fragment.FragmentNavigator.Destination setClassName(String className);
+ property public final String className;
+ }
+
+ public static final class FragmentNavigator.Extras implements androidx.navigation.Navigator.Extras {
+ method public java.util.Map<android.view.View,java.lang.String> getSharedElements();
+ property public final java.util.Map<android.view.View,java.lang.String> sharedElements;
+ }
+
+ public static final class FragmentNavigator.Extras.Builder {
+ ctor public FragmentNavigator.Extras.Builder();
+ method public androidx.navigation.fragment.FragmentNavigator.Extras.Builder addSharedElement(android.view.View sharedElement, String name);
+ method public androidx.navigation.fragment.FragmentNavigator.Extras.Builder addSharedElements(java.util.Map<android.view.View,java.lang.String> sharedElements);
+ method public androidx.navigation.fragment.FragmentNavigator.Extras build();
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class FragmentNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.fragment.FragmentNavigator.Destination> {
+ ctor @Deprecated public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, @IdRes int id, kotlin.reflect.KClass<? extends androidx.fragment.app.Fragment> fragmentClass);
+ ctor public FragmentNavigatorDestinationBuilder(androidx.navigation.fragment.FragmentNavigator navigator, String route, kotlin.reflect.KClass<? extends androidx.fragment.app.Fragment> fragmentClass);
+ method public androidx.navigation.fragment.FragmentNavigator.Destination build();
+ }
+
+ public final class FragmentNavigatorDestinationBuilderKt {
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.NavGraphBuilder, @IdRes int id);
+ method @Deprecated public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1<? super androidx.navigation.fragment.FragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.NavGraphBuilder, String route);
+ method public static inline <reified F extends androidx.fragment.app.Fragment> void fragment(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.fragment.FragmentNavigatorDestinationBuilder,? extends kotlin.Unit> builder);
+ }
+
+ public final class FragmentNavigatorExtrasKt {
+ method public static androidx.navigation.fragment.FragmentNavigator.Extras FragmentNavigatorExtras(kotlin.Pair<? extends android.view.View,java.lang.String>... sharedElements);
+ }
+
+ public class NavHostFragment extends androidx.fragment.app.Fragment implements androidx.navigation.NavHost {
+ ctor public NavHostFragment();
+ method public static final androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+ method public static final androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId);
+ method @Deprecated protected androidx.navigation.Navigator<? extends androidx.navigation.fragment.FragmentNavigator.Destination> createFragmentNavigator();
+ method public static final androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment fragment);
+ method public final androidx.navigation.NavController getNavController();
+ method @Deprecated @CallSuper protected void onCreateNavController(androidx.navigation.NavController navController);
+ method @CallSuper protected void onCreateNavHostController(androidx.navigation.NavHostController navHostController);
+ property public final androidx.navigation.NavController navController;
+ field public static final androidx.navigation.fragment.NavHostFragment.Companion Companion;
+ }
+
+ public static final class NavHostFragment.Companion {
+ method public androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId, optional android.os.Bundle? startDestinationArgs);
+ method public androidx.navigation.fragment.NavHostFragment create(@NavigationRes int graphResId);
+ method public androidx.navigation.NavController findNavController(androidx.fragment.app.Fragment fragment);
+ }
+
+}
+
diff --git a/navigation/navigation-runtime-ktx/api/2.5.0-beta02.txt b/navigation/navigation-runtime-ktx/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/navigation/navigation-runtime-ktx/api/2.5.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/navigation/navigation-runtime-ktx/api/public_plus_experimental_2.5.0-beta02.txt b/navigation/navigation-runtime-ktx/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/navigation/navigation-runtime-ktx/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/navigation/navigation-runtime-ktx/api/res-2.5.0-beta02.txt b/navigation/navigation-runtime-ktx/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/navigation/navigation-runtime-ktx/api/res-2.5.0-beta02.txt
diff --git a/navigation/navigation-runtime-ktx/api/restricted_2.5.0-beta02.txt b/navigation/navigation-runtime-ktx/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/navigation/navigation-runtime-ktx/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/navigation/navigation-runtime-lint/build.gradle b/navigation/navigation-runtime-lint/build.gradle
new file mode 100644
index 0000000..c586a3d
--- /dev/null
+++ b/navigation/navigation-runtime-lint/build.gradle
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2022 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.
+ */
+
+import androidx.build.LibraryType
+
+plugins {
+ id("AndroidXPlugin")
+ id("kotlin")
+}
+
+dependencies {
+ compileOnly(libs.androidLintMinApi)
+ compileOnly(libs.kotlinStdlib)
+
+ testImplementation(libs.kotlinStdlib)
+ testImplementation(libs.androidLint)
+ testImplementation(libs.androidLintTests)
+ testImplementation(libs.junit)
+ testImplementation(libs.truth)
+}
+
+androidx {
+ name = "Navigation Runtime Lint"
+ type = LibraryType.LINT
+ mavenGroup = LibraryGroups.NAVIGATION
+ inceptionYear = "2022"
+ description = "Lint checks for Navigation Runtime"
+}
diff --git a/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/DeepLinkInActivityDestinationDetector.kt b/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/DeepLinkInActivityDestinationDetector.kt
new file mode 100644
index 0000000..89d6730
--- /dev/null
+++ b/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/DeepLinkInActivityDestinationDetector.kt
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2022 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("UnstableApiUsage")
+
+package androidx.navigation.runtime.lint
+
+import com.android.SdkConstants.TAG_ACTIVITY
+import com.android.SdkConstants.TAG_DEEP_LINK
+import com.android.resources.ResourceFolderType
+import com.android.tools.lint.detector.api.Category
+import com.android.tools.lint.detector.api.Implementation
+import com.android.tools.lint.detector.api.Incident
+import com.android.tools.lint.detector.api.Issue
+import com.android.tools.lint.detector.api.ResourceXmlDetector
+import com.android.tools.lint.detector.api.Scope
+import com.android.tools.lint.detector.api.Severity
+import com.android.tools.lint.detector.api.XmlContext
+import java.util.Collections
+import org.w3c.dom.Element
+
+/**
+ * Lint check for detecting use of <deeplink> inside of <activity>.
+ */
+class DeepLinkInActivityDestinationDetector : ResourceXmlDetector() {
+
+ override fun appliesTo(folderType: ResourceFolderType): Boolean {
+ return folderType == ResourceFolderType.NAVIGATION
+ }
+
+ override fun getApplicableElements(): Collection<String>? = Collections.singleton(TAG_DEEP_LINK)
+
+ override fun visitElement(context: XmlContext, element: Element) {
+ if (element.parentNode?.nodeName == TAG_ACTIVITY) {
+ val incident = Incident(context)
+ .issue(DeepLinkInActivityDestination)
+ .location(context.getLocation(element))
+ .message("Do not attach a <deeplink> to an <activity> destination. " +
+ "Attach the deeplink directly to the second activity or the start " +
+ "destination of a nav host in the second activity instead.")
+ .scope(context.getNameLocation(element))
+ context.report(incident)
+ }
+ }
+
+ companion object {
+ val DeepLinkInActivityDestination = Issue.create(
+ id = "DeepLinkInActivityDestination",
+ briefDescription = "A <deeplink> should not be attached to an <activity> destination",
+ explanation = """Attaching a <deeplink> to an <activity> destination will never give \
+ the right behavior when using an implicit deep link on another app's task \
+ (where the system back should immediately take the user back to the app that \
+ triggered the deep link). Instead, attach the deep link directly to \
+ the second activity (either by manually writing the appropriate <intent-filter> \
+ or by adding the <deeplink> to the start destination of a nav host in that second \
+ activity).""",
+ category = Category.CORRECTNESS,
+ severity = Severity.WARNING,
+ implementation = Implementation(
+ DeepLinkInActivityDestinationDetector::class.java, Scope.RESOURCE_FILE_SCOPE
+ ),
+ androidSpecific = true
+ )
+ }
+}
diff --git a/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/NavigationRuntimeIssueRegistry.kt b/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/NavigationRuntimeIssueRegistry.kt
new file mode 100644
index 0000000..b4d90ba
--- /dev/null
+++ b/navigation/navigation-runtime-lint/src/main/java/androidx/navigation/runtime/lint/NavigationRuntimeIssueRegistry.kt
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2022 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("UnstableApiUsage")
+
+package androidx.navigation.runtime.lint
+
+import com.android.tools.lint.client.api.IssueRegistry
+import com.android.tools.lint.client.api.Vendor
+import com.android.tools.lint.detector.api.CURRENT_API
+
+/**
+ * [IssueRegistry] containing runtime specific lint issues.
+ */
+class NavigationRuntimeIssueRegistry : IssueRegistry() {
+ // Tests are run with this version. We ensure that with ApiLintVersionsTest
+ override val api = 13
+ override val minApi = CURRENT_API
+ override val issues get() = listOf(
+ DeepLinkInActivityDestinationDetector.DeepLinkInActivityDestination
+ )
+ override val vendor = Vendor(
+ feedbackUrl = "https://issuetracker.google.com/issues/new?component=409828",
+ vendorName = "Android Open Source Project",
+ identifier = "androidx.navigation.runtime"
+ )
+}
diff --git a/navigation/navigation-runtime-lint/src/main/resources/META-INF/services/com.android.tools.lint.client.api.IssueRegistry b/navigation/navigation-runtime-lint/src/main/resources/META-INF/services/com.android.tools.lint.client.api.IssueRegistry
new file mode 100644
index 0000000..89f8da4
--- /dev/null
+++ b/navigation/navigation-runtime-lint/src/main/resources/META-INF/services/com.android.tools.lint.client.api.IssueRegistry
@@ -0,0 +1 @@
+androidx.navigation.runtime.lint.NavigationRuntimeIssueRegistry
diff --git a/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/ApiLintVersionsTest.kt b/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/ApiLintVersionsTest.kt
new file mode 100644
index 0000000..64f4740
--- /dev/null
+++ b/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/ApiLintVersionsTest.kt
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2022 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.
+ */
+
+package androidx.navigation.runtime.lint
+
+import com.android.tools.lint.client.api.LintClient
+import com.android.tools.lint.detector.api.CURRENT_API
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+
+@RunWith(JUnit4::class)
+class ApiLintVersionsTest {
+ @Test
+ fun versionsCheck() {
+ LintClient.clientName = LintClient.CLIENT_UNIT_TESTS
+
+ val registry = NavigationRuntimeIssueRegistry()
+ assertThat(registry.api).isEqualTo(CURRENT_API)
+ assertThat(registry.minApi).isEqualTo(10)
+ }
+}
diff --git a/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/DeepLinkInActivityDestinationDetectorTest.kt b/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/DeepLinkInActivityDestinationDetectorTest.kt
new file mode 100644
index 0000000..a9e4177
--- /dev/null
+++ b/navigation/navigation-runtime-lint/src/test/java/androidx/navigation/runtime/lint/DeepLinkInActivityDestinationDetectorTest.kt
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2022 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.
+ */
+
+package androidx.navigation.runtime.lint
+
+import com.android.tools.lint.checks.infrastructure.LintDetectorTest
+import com.android.tools.lint.detector.api.Detector
+import com.android.tools.lint.detector.api.Issue
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.junit.runners.JUnit4
+
+@RunWith(JUnit4::class)
+class DeepLinkInActivityDestinationDetectorTest : LintDetectorTest() {
+ override fun getDetector(): Detector = DeepLinkInActivityDestinationDetector()
+
+ override fun getIssues(): MutableList<Issue> {
+ return mutableListOf(DeepLinkInActivityDestinationDetector.DeepLinkInActivityDestination)
+ }
+
+ @Test
+ fun expectPass() {
+ lint().files(
+ xml("res/navigation/nav_main.xml",
+ """
+<navigation xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/nav_main"
+ app:startDestination="@id/fragment_main"
+ >
+
+ <fragment
+ android:id="@+id/fragment_main"
+ android:name="com.example.deeplink.MainFragment"
+ >
+ <deepLink app:uri="www.example.com" />
+ </fragment>
+
+ <activity
+ android:id="@+id/activity_deep_link"
+ android:name="com.example.deeplink.Activity"
+ />
+
+</navigation>
+ """
+ )
+ )
+ .run()
+ .expectClean()
+ }
+
+ @Test
+ fun expectFail() {
+ lint().files(
+ xml("res/navigation/nav_main.xml",
+ """
+<navigation xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/nav_main"
+ app:startDestination="@id/fragment_main"
+ >
+
+ <fragment
+ android:id="@+id/fragment_main"
+ android:name="com.example.deeplink.MainFragment"
+ />
+
+ <activity
+ android:id="@+id/activity_deep_link"
+ android:name="com.example.deeplink.DeepLinkActivity"
+ >
+ <deepLink app:uri="www.example.com" />
+ </activity>
+
+</navigation>
+ """
+ )
+ )
+ .run()
+ .expect("""
+res/navigation/nav_main.xml:17: Warning: Do not attach a <deeplink> to an <activity> destination. Attach the deeplink directly to the second activity or the start destination of a nav host in the second activity instead. [DeepLinkInActivityDestination]
+ <deepLink app:uri="www.example.com" />
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+0 errors, 1 warnings
+ """
+ )
+ }
+}
diff --git a/navigation/navigation-runtime/api/2.5.0-beta02.txt b/navigation/navigation-runtime/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..7f117bb
--- /dev/null
+++ b/navigation/navigation-runtime/api/2.5.0-beta02.txt
@@ -0,0 +1,224 @@
+// Signature format: 4.0
+package androidx.navigation {
+
+ public final class ActivityKt {
+ method public static androidx.navigation.NavController findNavController(android.app.Activity, @IdRes int viewId);
+ }
+
+ public final class ActivityNavArgsLazyKt {
+ method @MainThread public static inline <reified Args extends androidx.navigation.NavArgs> androidx.navigation.NavArgsLazy<Args>! navArgs(android.app.Activity);
+ }
+
+ @androidx.navigation.Navigator.Name("activity") public class ActivityNavigator extends androidx.navigation.Navigator<androidx.navigation.ActivityNavigator.Destination> {
+ ctor public ActivityNavigator(android.content.Context context);
+ method public static final void applyPopAnimationsToPendingTransition(android.app.Activity activity);
+ method public androidx.navigation.ActivityNavigator.Destination createDestination();
+ method public androidx.navigation.NavDestination? navigate(androidx.navigation.ActivityNavigator.Destination destination, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ field public static final androidx.navigation.ActivityNavigator.Companion Companion;
+ }
+
+ public static final class ActivityNavigator.Companion {
+ method public void applyPopAnimationsToPendingTransition(android.app.Activity activity);
+ }
+
+ @androidx.navigation.NavDestination.ClassType(Activity::class) public static class ActivityNavigator.Destination extends androidx.navigation.NavDestination {
+ ctor public ActivityNavigator.Destination(androidx.navigation.Navigator<? extends androidx.navigation.ActivityNavigator.Destination> activityNavigator);
+ ctor public ActivityNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider);
+ method public final String? getAction();
+ method public final android.content.ComponentName? getComponent();
+ method public final android.net.Uri? getData();
+ method public final String? getDataPattern();
+ method public final android.content.Intent? getIntent();
+ method public final String? getTargetPackage();
+ method public final androidx.navigation.ActivityNavigator.Destination setAction(String? action);
+ method public final androidx.navigation.ActivityNavigator.Destination setComponentName(android.content.ComponentName? name);
+ method public final androidx.navigation.ActivityNavigator.Destination setData(android.net.Uri? data);
+ method public final androidx.navigation.ActivityNavigator.Destination setDataPattern(String? dataPattern);
+ method public final androidx.navigation.ActivityNavigator.Destination setIntent(android.content.Intent? intent);
+ method public final androidx.navigation.ActivityNavigator.Destination setTargetPackage(String? packageName);
+ property public final String? action;
+ property public final android.content.ComponentName? component;
+ property public final android.net.Uri? data;
+ property public final String? dataPattern;
+ property public final android.content.Intent? intent;
+ property public final String? targetPackage;
+ }
+
+ public static final class ActivityNavigator.Extras implements androidx.navigation.Navigator.Extras {
+ method public androidx.core.app.ActivityOptionsCompat? getActivityOptions();
+ method public int getFlags();
+ property public final androidx.core.app.ActivityOptionsCompat? activityOptions;
+ property public final int flags;
+ }
+
+ public static final class ActivityNavigator.Extras.Builder {
+ ctor public ActivityNavigator.Extras.Builder();
+ method public androidx.navigation.ActivityNavigator.Extras.Builder addFlags(int flags);
+ method public androidx.navigation.ActivityNavigator.Extras build();
+ method public androidx.navigation.ActivityNavigator.Extras.Builder setActivityOptions(androidx.core.app.ActivityOptionsCompat activityOptions);
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class ActivityNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.ActivityNavigator.Destination> {
+ ctor @Deprecated public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, @IdRes int id);
+ ctor public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, String route);
+ method public androidx.navigation.ActivityNavigator.Destination build();
+ method public String? getAction();
+ method public kotlin.reflect.KClass<? extends android.app.Activity>? getActivityClass();
+ method public android.net.Uri? getData();
+ method public String? getDataPattern();
+ method public String? getTargetPackage();
+ method public void setAction(String?);
+ method public void setActivityClass(kotlin.reflect.KClass<? extends android.app.Activity>?);
+ method public void setData(android.net.Uri?);
+ method public void setDataPattern(String?);
+ method public void setTargetPackage(String?);
+ property public final String? action;
+ property public final kotlin.reflect.KClass<? extends android.app.Activity>? activityClass;
+ property public final android.net.Uri? data;
+ property public final String? dataPattern;
+ property public final String? targetPackage;
+ }
+
+ public final class ActivityNavigatorDestinationBuilderKt {
+ method @Deprecated public static inline void activity(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1<? super androidx.navigation.ActivityNavigatorDestinationBuilder,kotlin.Unit> builder);
+ method public static inline void activity(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.ActivityNavigatorDestinationBuilder,kotlin.Unit> builder);
+ }
+
+ public final class ActivityNavigatorExtrasKt {
+ method public static androidx.navigation.ActivityNavigator.Extras ActivityNavigatorExtras(optional androidx.core.app.ActivityOptionsCompat? activityOptions, optional int flags);
+ }
+
+ public class NavController {
+ ctor public NavController(android.content.Context context);
+ method public void addOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener listener);
+ method @MainThread public final boolean clearBackStack(String route);
+ method @MainThread public final boolean clearBackStack(@IdRes int destinationId);
+ method public androidx.navigation.NavDeepLinkBuilder createDeepLink();
+ method public androidx.navigation.NavBackStackEntry getBackStackEntry(@IdRes int destinationId);
+ method public final androidx.navigation.NavBackStackEntry getBackStackEntry(String route);
+ method public androidx.navigation.NavBackStackEntry? getCurrentBackStackEntry();
+ method public final kotlinx.coroutines.flow.Flow<androidx.navigation.NavBackStackEntry> getCurrentBackStackEntryFlow();
+ method public androidx.navigation.NavDestination? getCurrentDestination();
+ method @MainThread public androidx.navigation.NavGraph getGraph();
+ method public androidx.navigation.NavInflater getNavInflater();
+ method public androidx.navigation.NavigatorProvider getNavigatorProvider();
+ method public androidx.navigation.NavBackStackEntry? getPreviousBackStackEntry();
+ method public androidx.lifecycle.ViewModelStoreOwner getViewModelStoreOwner(@IdRes int navGraphId);
+ method public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> getVisibleEntries();
+ method @MainThread public boolean handleDeepLink(android.content.Intent? intent);
+ method @MainThread public void navigate(@IdRes int resId);
+ method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args);
+ method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions);
+ method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ method @MainThread public void navigate(android.net.Uri deepLink);
+ method @MainThread public void navigate(android.net.Uri deepLink, androidx.navigation.NavOptions? navOptions);
+ method @MainThread public void navigate(android.net.Uri deepLink, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request);
+ method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request, androidx.navigation.NavOptions? navOptions);
+ method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ method @MainThread public void navigate(androidx.navigation.NavDirections directions);
+ method @MainThread public void navigate(androidx.navigation.NavDirections directions, androidx.navigation.NavOptions? navOptions);
+ method @MainThread public void navigate(androidx.navigation.NavDirections directions, androidx.navigation.Navigator.Extras navigatorExtras);
+ method public final void navigate(String route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavOptionsBuilder,kotlin.Unit> builder);
+ method public final void navigate(String route, optional androidx.navigation.NavOptions? navOptions, optional androidx.navigation.Navigator.Extras? navigatorExtras);
+ method public final void navigate(String route, optional androidx.navigation.NavOptions? navOptions);
+ method public final void navigate(String route);
+ method @MainThread public boolean navigateUp();
+ method @MainThread public boolean popBackStack();
+ method @MainThread public boolean popBackStack(@IdRes int destinationId, boolean inclusive);
+ method @MainThread public boolean popBackStack(@IdRes int destinationId, boolean inclusive, boolean saveState);
+ method @MainThread public final boolean popBackStack(String route, boolean inclusive, optional boolean saveState);
+ method @MainThread public final boolean popBackStack(String route, boolean inclusive);
+ method public void removeOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener listener);
+ method @CallSuper public void restoreState(android.os.Bundle? navState);
+ method @CallSuper public android.os.Bundle? saveState();
+ method @CallSuper @MainThread public void setGraph(androidx.navigation.NavGraph);
+ method @CallSuper @MainThread public void setGraph(@NavigationRes int graphResId);
+ method @CallSuper @MainThread public void setGraph(@NavigationRes int graphResId, android.os.Bundle? startDestinationArgs);
+ method @CallSuper @MainThread public void setGraph(androidx.navigation.NavGraph graph, android.os.Bundle? startDestinationArgs);
+ property public androidx.navigation.NavBackStackEntry? currentBackStackEntry;
+ property public final kotlinx.coroutines.flow.Flow<androidx.navigation.NavBackStackEntry> currentBackStackEntryFlow;
+ property public androidx.navigation.NavDestination? currentDestination;
+ property @MainThread public androidx.navigation.NavGraph graph;
+ property public androidx.navigation.NavInflater navInflater;
+ property public androidx.navigation.NavigatorProvider navigatorProvider;
+ property public androidx.navigation.NavBackStackEntry? previousBackStackEntry;
+ property public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> visibleEntries;
+ field public static final androidx.navigation.NavController.Companion Companion;
+ field public static final String KEY_DEEP_LINK_INTENT = "android-support-nav:controller:deepLinkIntent";
+ }
+
+ public static final class NavController.Companion {
+ }
+
+ public static fun interface NavController.OnDestinationChangedListener {
+ method public void onDestinationChanged(androidx.navigation.NavController controller, androidx.navigation.NavDestination destination, android.os.Bundle? arguments);
+ }
+
+ public final class NavControllerKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavDeepLinkBuilder {
+ ctor public NavDeepLinkBuilder(android.content.Context context);
+ method public androidx.navigation.NavDeepLinkBuilder addDestination(@IdRes int destId, optional android.os.Bundle? args);
+ method public androidx.navigation.NavDeepLinkBuilder addDestination(@IdRes int destId);
+ method public androidx.navigation.NavDeepLinkBuilder addDestination(String route, optional android.os.Bundle? args);
+ method public androidx.navigation.NavDeepLinkBuilder addDestination(String route);
+ method public android.app.PendingIntent createPendingIntent();
+ method public androidx.core.app.TaskStackBuilder createTaskStackBuilder();
+ method public androidx.navigation.NavDeepLinkBuilder setArguments(android.os.Bundle? args);
+ method public androidx.navigation.NavDeepLinkBuilder setComponentName(Class<? extends android.app.Activity> activityClass);
+ method public androidx.navigation.NavDeepLinkBuilder setComponentName(android.content.ComponentName componentName);
+ method public androidx.navigation.NavDeepLinkBuilder setDestination(@IdRes int destId, optional android.os.Bundle? args);
+ method public androidx.navigation.NavDeepLinkBuilder setDestination(@IdRes int destId);
+ method public androidx.navigation.NavDeepLinkBuilder setDestination(String destRoute, optional android.os.Bundle? args);
+ method public androidx.navigation.NavDeepLinkBuilder setDestination(String destRoute);
+ method public androidx.navigation.NavDeepLinkBuilder setGraph(@NavigationRes int navGraphId);
+ method public androidx.navigation.NavDeepLinkBuilder setGraph(androidx.navigation.NavGraph navGraph);
+ }
+
+ public interface NavHost {
+ method public androidx.navigation.NavController getNavController();
+ property public abstract androidx.navigation.NavController navController;
+ }
+
+ public class NavHostController extends androidx.navigation.NavController {
+ ctor public NavHostController(android.content.Context context);
+ method public final void enableOnBackPressed(boolean enabled);
+ method public final void setLifecycleOwner(androidx.lifecycle.LifecycleOwner owner);
+ method public final void setOnBackPressedDispatcher(androidx.activity.OnBackPressedDispatcher dispatcher);
+ method public final void setViewModelStore(androidx.lifecycle.ViewModelStore viewModelStore);
+ }
+
+ public final class NavHostKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavInflater {
+ ctor public NavInflater(android.content.Context context, androidx.navigation.NavigatorProvider navigatorProvider);
+ method public androidx.navigation.NavGraph inflate(@NavigationRes int graphResId);
+ field public static final androidx.navigation.NavInflater.Companion Companion;
+ }
+
+ public static final class NavInflater.Companion {
+ }
+
+ public final class Navigation {
+ method public static android.view.View.OnClickListener createNavigateOnClickListener(@IdRes int resId, optional android.os.Bundle? args);
+ method public static android.view.View.OnClickListener createNavigateOnClickListener(@IdRes int resId);
+ method public static android.view.View.OnClickListener createNavigateOnClickListener(androidx.navigation.NavDirections directions);
+ method public static androidx.navigation.NavController findNavController(android.app.Activity activity, @IdRes int viewId);
+ method public static androidx.navigation.NavController findNavController(android.view.View view);
+ method public static void setViewNavController(android.view.View view, androidx.navigation.NavController? controller);
+ field public static final androidx.navigation.Navigation INSTANCE;
+ }
+
+ public final class ViewKt {
+ method public static androidx.navigation.NavController findNavController(android.view.View);
+ }
+
+}
+
diff --git a/navigation/navigation-runtime/api/public_plus_experimental_2.5.0-beta02.txt b/navigation/navigation-runtime/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..70ea8db
--- /dev/null
+++ b/navigation/navigation-runtime/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,229 @@
+// Signature format: 4.0
+package androidx.navigation {
+
+ public final class ActivityKt {
+ method public static androidx.navigation.NavController findNavController(android.app.Activity, @IdRes int viewId);
+ }
+
+ public final class ActivityNavArgsLazyKt {
+ method @MainThread public static inline <reified Args extends androidx.navigation.NavArgs> androidx.navigation.NavArgsLazy<Args>! navArgs(android.app.Activity);
+ }
+
+ @androidx.navigation.Navigator.Name("activity") public class ActivityNavigator extends androidx.navigation.Navigator<androidx.navigation.ActivityNavigator.Destination> {
+ ctor public ActivityNavigator(android.content.Context context);
+ method public static final void applyPopAnimationsToPendingTransition(android.app.Activity activity);
+ method public androidx.navigation.ActivityNavigator.Destination createDestination();
+ method public androidx.navigation.NavDestination? navigate(androidx.navigation.ActivityNavigator.Destination destination, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ field public static final androidx.navigation.ActivityNavigator.Companion Companion;
+ }
+
+ public static final class ActivityNavigator.Companion {
+ method public void applyPopAnimationsToPendingTransition(android.app.Activity activity);
+ }
+
+ @androidx.navigation.NavDestination.ClassType(Activity::class) public static class ActivityNavigator.Destination extends androidx.navigation.NavDestination {
+ ctor public ActivityNavigator.Destination(androidx.navigation.Navigator<? extends androidx.navigation.ActivityNavigator.Destination> activityNavigator);
+ ctor public ActivityNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider);
+ method public final String? getAction();
+ method public final android.content.ComponentName? getComponent();
+ method public final android.net.Uri? getData();
+ method public final String? getDataPattern();
+ method public final android.content.Intent? getIntent();
+ method public final String? getTargetPackage();
+ method public final androidx.navigation.ActivityNavigator.Destination setAction(String? action);
+ method public final androidx.navigation.ActivityNavigator.Destination setComponentName(android.content.ComponentName? name);
+ method public final androidx.navigation.ActivityNavigator.Destination setData(android.net.Uri? data);
+ method public final androidx.navigation.ActivityNavigator.Destination setDataPattern(String? dataPattern);
+ method public final androidx.navigation.ActivityNavigator.Destination setIntent(android.content.Intent? intent);
+ method public final androidx.navigation.ActivityNavigator.Destination setTargetPackage(String? packageName);
+ property public final String? action;
+ property public final android.content.ComponentName? component;
+ property public final android.net.Uri? data;
+ property public final String? dataPattern;
+ property public final android.content.Intent? intent;
+ property public final String? targetPackage;
+ }
+
+ public static final class ActivityNavigator.Extras implements androidx.navigation.Navigator.Extras {
+ method public androidx.core.app.ActivityOptionsCompat? getActivityOptions();
+ method public int getFlags();
+ property public final androidx.core.app.ActivityOptionsCompat? activityOptions;
+ property public final int flags;
+ }
+
+ public static final class ActivityNavigator.Extras.Builder {
+ ctor public ActivityNavigator.Extras.Builder();
+ method public androidx.navigation.ActivityNavigator.Extras.Builder addFlags(int flags);
+ method public androidx.navigation.ActivityNavigator.Extras build();
+ method public androidx.navigation.ActivityNavigator.Extras.Builder setActivityOptions(androidx.core.app.ActivityOptionsCompat activityOptions);
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class ActivityNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.ActivityNavigator.Destination> {
+ ctor @Deprecated public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, @IdRes int id);
+ ctor public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, String route);
+ method public androidx.navigation.ActivityNavigator.Destination build();
+ method public String? getAction();
+ method public kotlin.reflect.KClass<? extends android.app.Activity>? getActivityClass();
+ method public android.net.Uri? getData();
+ method public String? getDataPattern();
+ method public String? getTargetPackage();
+ method public void setAction(String?);
+ method public void setActivityClass(kotlin.reflect.KClass<? extends android.app.Activity>?);
+ method public void setData(android.net.Uri?);
+ method public void setDataPattern(String?);
+ method public void setTargetPackage(String?);
+ property public final String? action;
+ property public final kotlin.reflect.KClass<? extends android.app.Activity>? activityClass;
+ property public final android.net.Uri? data;
+ property public final String? dataPattern;
+ property public final String? targetPackage;
+ }
+
+ public final class ActivityNavigatorDestinationBuilderKt {
+ method @Deprecated public static inline void activity(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1<? super androidx.navigation.ActivityNavigatorDestinationBuilder,kotlin.Unit> builder);
+ method public static inline void activity(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.ActivityNavigatorDestinationBuilder,kotlin.Unit> builder);
+ }
+
+ public final class ActivityNavigatorExtrasKt {
+ method public static androidx.navigation.ActivityNavigator.Extras ActivityNavigatorExtras(optional androidx.core.app.ActivityOptionsCompat? activityOptions, optional int flags);
+ }
+
+ public class NavController {
+ ctor public NavController(android.content.Context context);
+ method public void addOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener listener);
+ method @MainThread public final boolean clearBackStack(String route);
+ method @MainThread public final boolean clearBackStack(@IdRes int destinationId);
+ method public androidx.navigation.NavDeepLinkBuilder createDeepLink();
+ method @androidx.navigation.NavDeepLinkSaveStateControl public static final void enableDeepLinkSaveState(boolean saveState);
+ method public androidx.navigation.NavBackStackEntry getBackStackEntry(@IdRes int destinationId);
+ method public final androidx.navigation.NavBackStackEntry getBackStackEntry(String route);
+ method public androidx.navigation.NavBackStackEntry? getCurrentBackStackEntry();
+ method public final kotlinx.coroutines.flow.Flow<androidx.navigation.NavBackStackEntry> getCurrentBackStackEntryFlow();
+ method public androidx.navigation.NavDestination? getCurrentDestination();
+ method @MainThread public androidx.navigation.NavGraph getGraph();
+ method public androidx.navigation.NavInflater getNavInflater();
+ method public androidx.navigation.NavigatorProvider getNavigatorProvider();
+ method public androidx.navigation.NavBackStackEntry? getPreviousBackStackEntry();
+ method public androidx.lifecycle.ViewModelStoreOwner getViewModelStoreOwner(@IdRes int navGraphId);
+ method public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> getVisibleEntries();
+ method @MainThread public boolean handleDeepLink(android.content.Intent? intent);
+ method @MainThread public void navigate(@IdRes int resId);
+ method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args);
+ method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions);
+ method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ method @MainThread public void navigate(android.net.Uri deepLink);
+ method @MainThread public void navigate(android.net.Uri deepLink, androidx.navigation.NavOptions? navOptions);
+ method @MainThread public void navigate(android.net.Uri deepLink, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request);
+ method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request, androidx.navigation.NavOptions? navOptions);
+ method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ method @MainThread public void navigate(androidx.navigation.NavDirections directions);
+ method @MainThread public void navigate(androidx.navigation.NavDirections directions, androidx.navigation.NavOptions? navOptions);
+ method @MainThread public void navigate(androidx.navigation.NavDirections directions, androidx.navigation.Navigator.Extras navigatorExtras);
+ method public final void navigate(String route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavOptionsBuilder,kotlin.Unit> builder);
+ method public final void navigate(String route, optional androidx.navigation.NavOptions? navOptions, optional androidx.navigation.Navigator.Extras? navigatorExtras);
+ method public final void navigate(String route, optional androidx.navigation.NavOptions? navOptions);
+ method public final void navigate(String route);
+ method @MainThread public boolean navigateUp();
+ method @MainThread public boolean popBackStack();
+ method @MainThread public boolean popBackStack(@IdRes int destinationId, boolean inclusive);
+ method @MainThread public boolean popBackStack(@IdRes int destinationId, boolean inclusive, boolean saveState);
+ method @MainThread public final boolean popBackStack(String route, boolean inclusive, optional boolean saveState);
+ method @MainThread public final boolean popBackStack(String route, boolean inclusive);
+ method public void removeOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener listener);
+ method @CallSuper public void restoreState(android.os.Bundle? navState);
+ method @CallSuper public android.os.Bundle? saveState();
+ method @CallSuper @MainThread public void setGraph(androidx.navigation.NavGraph);
+ method @CallSuper @MainThread public void setGraph(@NavigationRes int graphResId);
+ method @CallSuper @MainThread public void setGraph(@NavigationRes int graphResId, android.os.Bundle? startDestinationArgs);
+ method @CallSuper @MainThread public void setGraph(androidx.navigation.NavGraph graph, android.os.Bundle? startDestinationArgs);
+ property public androidx.navigation.NavBackStackEntry? currentBackStackEntry;
+ property public final kotlinx.coroutines.flow.Flow<androidx.navigation.NavBackStackEntry> currentBackStackEntryFlow;
+ property public androidx.navigation.NavDestination? currentDestination;
+ property @MainThread public androidx.navigation.NavGraph graph;
+ property public androidx.navigation.NavInflater navInflater;
+ property public androidx.navigation.NavigatorProvider navigatorProvider;
+ property public androidx.navigation.NavBackStackEntry? previousBackStackEntry;
+ property public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> visibleEntries;
+ field public static final androidx.navigation.NavController.Companion Companion;
+ field public static final String KEY_DEEP_LINK_INTENT = "android-support-nav:controller:deepLinkIntent";
+ }
+
+ public static final class NavController.Companion {
+ method @androidx.navigation.NavDeepLinkSaveStateControl public void enableDeepLinkSaveState(boolean saveState);
+ }
+
+ public static fun interface NavController.OnDestinationChangedListener {
+ method public void onDestinationChanged(androidx.navigation.NavController controller, androidx.navigation.NavDestination destination, android.os.Bundle? arguments);
+ }
+
+ public final class NavControllerKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavDeepLinkBuilder {
+ ctor public NavDeepLinkBuilder(android.content.Context context);
+ method public androidx.navigation.NavDeepLinkBuilder addDestination(@IdRes int destId, optional android.os.Bundle? args);
+ method public androidx.navigation.NavDeepLinkBuilder addDestination(@IdRes int destId);
+ method public androidx.navigation.NavDeepLinkBuilder addDestination(String route, optional android.os.Bundle? args);
+ method public androidx.navigation.NavDeepLinkBuilder addDestination(String route);
+ method public android.app.PendingIntent createPendingIntent();
+ method public androidx.core.app.TaskStackBuilder createTaskStackBuilder();
+ method public androidx.navigation.NavDeepLinkBuilder setArguments(android.os.Bundle? args);
+ method public androidx.navigation.NavDeepLinkBuilder setComponentName(Class<? extends android.app.Activity> activityClass);
+ method public androidx.navigation.NavDeepLinkBuilder setComponentName(android.content.ComponentName componentName);
+ method public androidx.navigation.NavDeepLinkBuilder setDestination(@IdRes int destId, optional android.os.Bundle? args);
+ method public androidx.navigation.NavDeepLinkBuilder setDestination(@IdRes int destId);
+ method public androidx.navigation.NavDeepLinkBuilder setDestination(String destRoute, optional android.os.Bundle? args);
+ method public androidx.navigation.NavDeepLinkBuilder setDestination(String destRoute);
+ method public androidx.navigation.NavDeepLinkBuilder setGraph(@NavigationRes int navGraphId);
+ method public androidx.navigation.NavDeepLinkBuilder setGraph(androidx.navigation.NavGraph navGraph);
+ }
+
+ @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface NavDeepLinkSaveStateControl {
+ }
+
+ public interface NavHost {
+ method public androidx.navigation.NavController getNavController();
+ property public abstract androidx.navigation.NavController navController;
+ }
+
+ public class NavHostController extends androidx.navigation.NavController {
+ ctor public NavHostController(android.content.Context context);
+ method public final void enableOnBackPressed(boolean enabled);
+ method public final void setLifecycleOwner(androidx.lifecycle.LifecycleOwner owner);
+ method public final void setOnBackPressedDispatcher(androidx.activity.OnBackPressedDispatcher dispatcher);
+ method public final void setViewModelStore(androidx.lifecycle.ViewModelStore viewModelStore);
+ }
+
+ public final class NavHostKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavInflater {
+ ctor public NavInflater(android.content.Context context, androidx.navigation.NavigatorProvider navigatorProvider);
+ method public androidx.navigation.NavGraph inflate(@NavigationRes int graphResId);
+ field public static final androidx.navigation.NavInflater.Companion Companion;
+ }
+
+ public static final class NavInflater.Companion {
+ }
+
+ public final class Navigation {
+ method public static android.view.View.OnClickListener createNavigateOnClickListener(@IdRes int resId, optional android.os.Bundle? args);
+ method public static android.view.View.OnClickListener createNavigateOnClickListener(@IdRes int resId);
+ method public static android.view.View.OnClickListener createNavigateOnClickListener(androidx.navigation.NavDirections directions);
+ method public static androidx.navigation.NavController findNavController(android.app.Activity activity, @IdRes int viewId);
+ method public static androidx.navigation.NavController findNavController(android.view.View view);
+ method public static void setViewNavController(android.view.View view, androidx.navigation.NavController? controller);
+ field public static final androidx.navigation.Navigation INSTANCE;
+ }
+
+ public final class ViewKt {
+ method public static androidx.navigation.NavController findNavController(android.view.View);
+ }
+
+}
+
diff --git a/navigation/navigation-runtime/api/res-2.5.0-beta02.txt b/navigation/navigation-runtime/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/navigation/navigation-runtime/api/res-2.5.0-beta02.txt
diff --git a/navigation/navigation-runtime/api/restricted_2.5.0-beta02.txt b/navigation/navigation-runtime/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..7f117bb
--- /dev/null
+++ b/navigation/navigation-runtime/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,224 @@
+// Signature format: 4.0
+package androidx.navigation {
+
+ public final class ActivityKt {
+ method public static androidx.navigation.NavController findNavController(android.app.Activity, @IdRes int viewId);
+ }
+
+ public final class ActivityNavArgsLazyKt {
+ method @MainThread public static inline <reified Args extends androidx.navigation.NavArgs> androidx.navigation.NavArgsLazy<Args>! navArgs(android.app.Activity);
+ }
+
+ @androidx.navigation.Navigator.Name("activity") public class ActivityNavigator extends androidx.navigation.Navigator<androidx.navigation.ActivityNavigator.Destination> {
+ ctor public ActivityNavigator(android.content.Context context);
+ method public static final void applyPopAnimationsToPendingTransition(android.app.Activity activity);
+ method public androidx.navigation.ActivityNavigator.Destination createDestination();
+ method public androidx.navigation.NavDestination? navigate(androidx.navigation.ActivityNavigator.Destination destination, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ field public static final androidx.navigation.ActivityNavigator.Companion Companion;
+ }
+
+ public static final class ActivityNavigator.Companion {
+ method public void applyPopAnimationsToPendingTransition(android.app.Activity activity);
+ }
+
+ @androidx.navigation.NavDestination.ClassType(Activity::class) public static class ActivityNavigator.Destination extends androidx.navigation.NavDestination {
+ ctor public ActivityNavigator.Destination(androidx.navigation.Navigator<? extends androidx.navigation.ActivityNavigator.Destination> activityNavigator);
+ ctor public ActivityNavigator.Destination(androidx.navigation.NavigatorProvider navigatorProvider);
+ method public final String? getAction();
+ method public final android.content.ComponentName? getComponent();
+ method public final android.net.Uri? getData();
+ method public final String? getDataPattern();
+ method public final android.content.Intent? getIntent();
+ method public final String? getTargetPackage();
+ method public final androidx.navigation.ActivityNavigator.Destination setAction(String? action);
+ method public final androidx.navigation.ActivityNavigator.Destination setComponentName(android.content.ComponentName? name);
+ method public final androidx.navigation.ActivityNavigator.Destination setData(android.net.Uri? data);
+ method public final androidx.navigation.ActivityNavigator.Destination setDataPattern(String? dataPattern);
+ method public final androidx.navigation.ActivityNavigator.Destination setIntent(android.content.Intent? intent);
+ method public final androidx.navigation.ActivityNavigator.Destination setTargetPackage(String? packageName);
+ property public final String? action;
+ property public final android.content.ComponentName? component;
+ property public final android.net.Uri? data;
+ property public final String? dataPattern;
+ property public final android.content.Intent? intent;
+ property public final String? targetPackage;
+ }
+
+ public static final class ActivityNavigator.Extras implements androidx.navigation.Navigator.Extras {
+ method public androidx.core.app.ActivityOptionsCompat? getActivityOptions();
+ method public int getFlags();
+ property public final androidx.core.app.ActivityOptionsCompat? activityOptions;
+ property public final int flags;
+ }
+
+ public static final class ActivityNavigator.Extras.Builder {
+ ctor public ActivityNavigator.Extras.Builder();
+ method public androidx.navigation.ActivityNavigator.Extras.Builder addFlags(int flags);
+ method public androidx.navigation.ActivityNavigator.Extras build();
+ method public androidx.navigation.ActivityNavigator.Extras.Builder setActivityOptions(androidx.core.app.ActivityOptionsCompat activityOptions);
+ }
+
+ @androidx.navigation.NavDestinationDsl public final class ActivityNavigatorDestinationBuilder extends androidx.navigation.NavDestinationBuilder<androidx.navigation.ActivityNavigator.Destination> {
+ ctor @Deprecated public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, @IdRes int id);
+ ctor public ActivityNavigatorDestinationBuilder(androidx.navigation.ActivityNavigator navigator, String route);
+ method public androidx.navigation.ActivityNavigator.Destination build();
+ method public String? getAction();
+ method public kotlin.reflect.KClass<? extends android.app.Activity>? getActivityClass();
+ method public android.net.Uri? getData();
+ method public String? getDataPattern();
+ method public String? getTargetPackage();
+ method public void setAction(String?);
+ method public void setActivityClass(kotlin.reflect.KClass<? extends android.app.Activity>?);
+ method public void setData(android.net.Uri?);
+ method public void setDataPattern(String?);
+ method public void setTargetPackage(String?);
+ property public final String? action;
+ property public final kotlin.reflect.KClass<? extends android.app.Activity>? activityClass;
+ property public final android.net.Uri? data;
+ property public final String? dataPattern;
+ property public final String? targetPackage;
+ }
+
+ public final class ActivityNavigatorDestinationBuilderKt {
+ method @Deprecated public static inline void activity(androidx.navigation.NavGraphBuilder, @IdRes int id, kotlin.jvm.functions.Function1<? super androidx.navigation.ActivityNavigatorDestinationBuilder,kotlin.Unit> builder);
+ method public static inline void activity(androidx.navigation.NavGraphBuilder, String route, kotlin.jvm.functions.Function1<? super androidx.navigation.ActivityNavigatorDestinationBuilder,kotlin.Unit> builder);
+ }
+
+ public final class ActivityNavigatorExtrasKt {
+ method public static androidx.navigation.ActivityNavigator.Extras ActivityNavigatorExtras(optional androidx.core.app.ActivityOptionsCompat? activityOptions, optional int flags);
+ }
+
+ public class NavController {
+ ctor public NavController(android.content.Context context);
+ method public void addOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener listener);
+ method @MainThread public final boolean clearBackStack(String route);
+ method @MainThread public final boolean clearBackStack(@IdRes int destinationId);
+ method public androidx.navigation.NavDeepLinkBuilder createDeepLink();
+ method public androidx.navigation.NavBackStackEntry getBackStackEntry(@IdRes int destinationId);
+ method public final androidx.navigation.NavBackStackEntry getBackStackEntry(String route);
+ method public androidx.navigation.NavBackStackEntry? getCurrentBackStackEntry();
+ method public final kotlinx.coroutines.flow.Flow<androidx.navigation.NavBackStackEntry> getCurrentBackStackEntryFlow();
+ method public androidx.navigation.NavDestination? getCurrentDestination();
+ method @MainThread public androidx.navigation.NavGraph getGraph();
+ method public androidx.navigation.NavInflater getNavInflater();
+ method public androidx.navigation.NavigatorProvider getNavigatorProvider();
+ method public androidx.navigation.NavBackStackEntry? getPreviousBackStackEntry();
+ method public androidx.lifecycle.ViewModelStoreOwner getViewModelStoreOwner(@IdRes int navGraphId);
+ method public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> getVisibleEntries();
+ method @MainThread public boolean handleDeepLink(android.content.Intent? intent);
+ method @MainThread public void navigate(@IdRes int resId);
+ method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args);
+ method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions);
+ method @MainThread public void navigate(@IdRes int resId, android.os.Bundle? args, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ method @MainThread public void navigate(android.net.Uri deepLink);
+ method @MainThread public void navigate(android.net.Uri deepLink, androidx.navigation.NavOptions? navOptions);
+ method @MainThread public void navigate(android.net.Uri deepLink, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request);
+ method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request, androidx.navigation.NavOptions? navOptions);
+ method @MainThread public void navigate(androidx.navigation.NavDeepLinkRequest request, androidx.navigation.NavOptions? navOptions, androidx.navigation.Navigator.Extras? navigatorExtras);
+ method @MainThread public void navigate(androidx.navigation.NavDirections directions);
+ method @MainThread public void navigate(androidx.navigation.NavDirections directions, androidx.navigation.NavOptions? navOptions);
+ method @MainThread public void navigate(androidx.navigation.NavDirections directions, androidx.navigation.Navigator.Extras navigatorExtras);
+ method public final void navigate(String route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavOptionsBuilder,kotlin.Unit> builder);
+ method public final void navigate(String route, optional androidx.navigation.NavOptions? navOptions, optional androidx.navigation.Navigator.Extras? navigatorExtras);
+ method public final void navigate(String route, optional androidx.navigation.NavOptions? navOptions);
+ method public final void navigate(String route);
+ method @MainThread public boolean navigateUp();
+ method @MainThread public boolean popBackStack();
+ method @MainThread public boolean popBackStack(@IdRes int destinationId, boolean inclusive);
+ method @MainThread public boolean popBackStack(@IdRes int destinationId, boolean inclusive, boolean saveState);
+ method @MainThread public final boolean popBackStack(String route, boolean inclusive, optional boolean saveState);
+ method @MainThread public final boolean popBackStack(String route, boolean inclusive);
+ method public void removeOnDestinationChangedListener(androidx.navigation.NavController.OnDestinationChangedListener listener);
+ method @CallSuper public void restoreState(android.os.Bundle? navState);
+ method @CallSuper public android.os.Bundle? saveState();
+ method @CallSuper @MainThread public void setGraph(androidx.navigation.NavGraph);
+ method @CallSuper @MainThread public void setGraph(@NavigationRes int graphResId);
+ method @CallSuper @MainThread public void setGraph(@NavigationRes int graphResId, android.os.Bundle? startDestinationArgs);
+ method @CallSuper @MainThread public void setGraph(androidx.navigation.NavGraph graph, android.os.Bundle? startDestinationArgs);
+ property public androidx.navigation.NavBackStackEntry? currentBackStackEntry;
+ property public final kotlinx.coroutines.flow.Flow<androidx.navigation.NavBackStackEntry> currentBackStackEntryFlow;
+ property public androidx.navigation.NavDestination? currentDestination;
+ property @MainThread public androidx.navigation.NavGraph graph;
+ property public androidx.navigation.NavInflater navInflater;
+ property public androidx.navigation.NavigatorProvider navigatorProvider;
+ property public androidx.navigation.NavBackStackEntry? previousBackStackEntry;
+ property public final kotlinx.coroutines.flow.StateFlow<java.util.List<androidx.navigation.NavBackStackEntry>> visibleEntries;
+ field public static final androidx.navigation.NavController.Companion Companion;
+ field public static final String KEY_DEEP_LINK_INTENT = "android-support-nav:controller:deepLinkIntent";
+ }
+
+ public static final class NavController.Companion {
+ }
+
+ public static fun interface NavController.OnDestinationChangedListener {
+ method public void onDestinationChanged(androidx.navigation.NavController controller, androidx.navigation.NavDestination destination, android.os.Bundle? arguments);
+ }
+
+ public final class NavControllerKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavController, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavDeepLinkBuilder {
+ ctor public NavDeepLinkBuilder(android.content.Context context);
+ method public androidx.navigation.NavDeepLinkBuilder addDestination(@IdRes int destId, optional android.os.Bundle? args);
+ method public androidx.navigation.NavDeepLinkBuilder addDestination(@IdRes int destId);
+ method public androidx.navigation.NavDeepLinkBuilder addDestination(String route, optional android.os.Bundle? args);
+ method public androidx.navigation.NavDeepLinkBuilder addDestination(String route);
+ method public android.app.PendingIntent createPendingIntent();
+ method public androidx.core.app.TaskStackBuilder createTaskStackBuilder();
+ method public androidx.navigation.NavDeepLinkBuilder setArguments(android.os.Bundle? args);
+ method public androidx.navigation.NavDeepLinkBuilder setComponentName(Class<? extends android.app.Activity> activityClass);
+ method public androidx.navigation.NavDeepLinkBuilder setComponentName(android.content.ComponentName componentName);
+ method public androidx.navigation.NavDeepLinkBuilder setDestination(@IdRes int destId, optional android.os.Bundle? args);
+ method public androidx.navigation.NavDeepLinkBuilder setDestination(@IdRes int destId);
+ method public androidx.navigation.NavDeepLinkBuilder setDestination(String destRoute, optional android.os.Bundle? args);
+ method public androidx.navigation.NavDeepLinkBuilder setDestination(String destRoute);
+ method public androidx.navigation.NavDeepLinkBuilder setGraph(@NavigationRes int navGraphId);
+ method public androidx.navigation.NavDeepLinkBuilder setGraph(androidx.navigation.NavGraph navGraph);
+ }
+
+ public interface NavHost {
+ method public androidx.navigation.NavController getNavController();
+ property public abstract androidx.navigation.NavController navController;
+ }
+
+ public class NavHostController extends androidx.navigation.NavController {
+ ctor public NavHostController(android.content.Context context);
+ method public final void enableOnBackPressed(boolean enabled);
+ method public final void setLifecycleOwner(androidx.lifecycle.LifecycleOwner owner);
+ method public final void setOnBackPressedDispatcher(androidx.activity.OnBackPressedDispatcher dispatcher);
+ method public final void setViewModelStore(androidx.lifecycle.ViewModelStore viewModelStore);
+ }
+
+ public final class NavHostKt {
+ method @Deprecated public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, optional @IdRes int id, @IdRes int startDestination, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ method public static inline androidx.navigation.NavGraph createGraph(androidx.navigation.NavHost, String startDestination, optional String? route, kotlin.jvm.functions.Function1<? super androidx.navigation.NavGraphBuilder,kotlin.Unit> builder);
+ }
+
+ public final class NavInflater {
+ ctor public NavInflater(android.content.Context context, androidx.navigation.NavigatorProvider navigatorProvider);
+ method public androidx.navigation.NavGraph inflate(@NavigationRes int graphResId);
+ field public static final androidx.navigation.NavInflater.Companion Companion;
+ }
+
+ public static final class NavInflater.Companion {
+ }
+
+ public final class Navigation {
+ method public static android.view.View.OnClickListener createNavigateOnClickListener(@IdRes int resId, optional android.os.Bundle? args);
+ method public static android.view.View.OnClickListener createNavigateOnClickListener(@IdRes int resId);
+ method public static android.view.View.OnClickListener createNavigateOnClickListener(androidx.navigation.NavDirections directions);
+ method public static androidx.navigation.NavController findNavController(android.app.Activity activity, @IdRes int viewId);
+ method public static androidx.navigation.NavController findNavController(android.view.View view);
+ method public static void setViewNavController(android.view.View view, androidx.navigation.NavController? controller);
+ field public static final androidx.navigation.Navigation INSTANCE;
+ }
+
+ public final class ViewKt {
+ method public static androidx.navigation.NavController findNavController(android.view.View);
+ }
+
+}
+
diff --git a/navigation/navigation-runtime/build.gradle b/navigation/navigation-runtime/build.gradle
index 34ea7a4..e9386aa 100644
--- a/navigation/navigation-runtime/build.gradle
+++ b/navigation/navigation-runtime/build.gradle
@@ -25,9 +25,9 @@
dependencies {
api(project(":navigation:navigation-common"))
- api(projectOrArtifact(":activity:activity-ktx"))
- api(projectOrArtifact(":lifecycle:lifecycle-runtime-ktx"))
- api(projectOrArtifact(":lifecycle:lifecycle-viewmodel-ktx"))
+ api("androidx.activity:activity-ktx:1.5.0-rc01")
+ api("androidx.lifecycle:lifecycle-runtime-ktx:2.5.0-rc01")
+ api("androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.0-rc01")
api("androidx.annotation:annotation-experimental:1.1.0")
implementation('androidx.collection:collection:1.0.0')
@@ -47,6 +47,8 @@
androidTestImplementation(libs.dexmakerMockito, excludes.bytebuddy)
androidTestImplementation(libs.kotlinStdlib)
androidTestImplementation(libs.multidex)
+
+ lintPublish(project(':navigation:navigation-runtime-lint'))
}
android {
@@ -69,4 +71,4 @@
// Allow usage of Kotlin's @OptIn.
freeCompilerArgs += ["-opt-in=kotlin.RequiresOptIn"]
}
-}
\ No newline at end of file
+}
diff --git a/navigation/navigation-testing/api/2.5.0-beta02.txt b/navigation/navigation-testing/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..89f60a4
--- /dev/null
+++ b/navigation/navigation-testing/api/2.5.0-beta02.txt
@@ -0,0 +1,23 @@
+// Signature format: 4.0
+package androidx.navigation.testing {
+
+ public final class TestNavHostController extends androidx.navigation.NavHostController {
+ ctor public TestNavHostController(android.content.Context context);
+ method public java.util.List<androidx.navigation.NavBackStackEntry> getBackStack();
+ method public void setCurrentDestination(@IdRes int destId, optional android.os.Bundle args);
+ method public void setCurrentDestination(@IdRes int destId);
+ method public void setCurrentDestination(String destRoute, optional android.os.Bundle args);
+ method public void setCurrentDestination(String destRoute);
+ property public final java.util.List<androidx.navigation.NavBackStackEntry> backStack;
+ }
+
+ public final class TestNavigatorState extends androidx.navigation.NavigatorState {
+ ctor public TestNavigatorState(optional android.content.Context? context, optional kotlinx.coroutines.CoroutineDispatcher coroutineDispatcher);
+ ctor public TestNavigatorState(optional android.content.Context? context);
+ ctor public TestNavigatorState();
+ method public androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments);
+ method public androidx.navigation.NavBackStackEntry restoreBackStackEntry(androidx.navigation.NavBackStackEntry previouslySavedEntry);
+ }
+
+}
+
diff --git a/navigation/navigation-testing/api/public_plus_experimental_2.5.0-beta02.txt b/navigation/navigation-testing/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..89f60a4
--- /dev/null
+++ b/navigation/navigation-testing/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,23 @@
+// Signature format: 4.0
+package androidx.navigation.testing {
+
+ public final class TestNavHostController extends androidx.navigation.NavHostController {
+ ctor public TestNavHostController(android.content.Context context);
+ method public java.util.List<androidx.navigation.NavBackStackEntry> getBackStack();
+ method public void setCurrentDestination(@IdRes int destId, optional android.os.Bundle args);
+ method public void setCurrentDestination(@IdRes int destId);
+ method public void setCurrentDestination(String destRoute, optional android.os.Bundle args);
+ method public void setCurrentDestination(String destRoute);
+ property public final java.util.List<androidx.navigation.NavBackStackEntry> backStack;
+ }
+
+ public final class TestNavigatorState extends androidx.navigation.NavigatorState {
+ ctor public TestNavigatorState(optional android.content.Context? context, optional kotlinx.coroutines.CoroutineDispatcher coroutineDispatcher);
+ ctor public TestNavigatorState(optional android.content.Context? context);
+ ctor public TestNavigatorState();
+ method public androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments);
+ method public androidx.navigation.NavBackStackEntry restoreBackStackEntry(androidx.navigation.NavBackStackEntry previouslySavedEntry);
+ }
+
+}
+
diff --git a/navigation/navigation-testing/api/res-2.5.0-beta02.txt b/navigation/navigation-testing/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/navigation/navigation-testing/api/res-2.5.0-beta02.txt
diff --git a/navigation/navigation-testing/api/restricted_2.5.0-beta02.txt b/navigation/navigation-testing/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..89f60a4
--- /dev/null
+++ b/navigation/navigation-testing/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,23 @@
+// Signature format: 4.0
+package androidx.navigation.testing {
+
+ public final class TestNavHostController extends androidx.navigation.NavHostController {
+ ctor public TestNavHostController(android.content.Context context);
+ method public java.util.List<androidx.navigation.NavBackStackEntry> getBackStack();
+ method public void setCurrentDestination(@IdRes int destId, optional android.os.Bundle args);
+ method public void setCurrentDestination(@IdRes int destId);
+ method public void setCurrentDestination(String destRoute, optional android.os.Bundle args);
+ method public void setCurrentDestination(String destRoute);
+ property public final java.util.List<androidx.navigation.NavBackStackEntry> backStack;
+ }
+
+ public final class TestNavigatorState extends androidx.navigation.NavigatorState {
+ ctor public TestNavigatorState(optional android.content.Context? context, optional kotlinx.coroutines.CoroutineDispatcher coroutineDispatcher);
+ ctor public TestNavigatorState(optional android.content.Context? context);
+ ctor public TestNavigatorState();
+ method public androidx.navigation.NavBackStackEntry createBackStackEntry(androidx.navigation.NavDestination destination, android.os.Bundle? arguments);
+ method public androidx.navigation.NavBackStackEntry restoreBackStackEntry(androidx.navigation.NavBackStackEntry previouslySavedEntry);
+ }
+
+}
+
diff --git a/navigation/navigation-ui-ktx/api/2.5.0-beta02.txt b/navigation/navigation-ui-ktx/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/navigation/navigation-ui-ktx/api/2.5.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/navigation/navigation-ui-ktx/api/public_plus_experimental_2.5.0-beta02.txt b/navigation/navigation-ui-ktx/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/navigation/navigation-ui-ktx/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/navigation/navigation-ui-ktx/api/res-2.5.0-beta02.txt b/navigation/navigation-ui-ktx/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/navigation/navigation-ui-ktx/api/res-2.5.0-beta02.txt
diff --git a/navigation/navigation-ui-ktx/api/restricted_2.5.0-beta02.txt b/navigation/navigation-ui-ktx/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/navigation/navigation-ui-ktx/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/navigation/navigation-ui/api/2.5.0-beta02.txt b/navigation/navigation-ui/api/2.5.0-beta02.txt
new file mode 100644
index 0000000..9551da2
--- /dev/null
+++ b/navigation/navigation-ui/api/2.5.0-beta02.txt
@@ -0,0 +1,87 @@
+// Signature format: 4.0
+package androidx.navigation.ui {
+
+ public final class ActivityKt {
+ method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout);
+ method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ }
+
+ public final class AppBarConfiguration {
+ method @Deprecated public androidx.drawerlayout.widget.DrawerLayout? getDrawerLayout();
+ method public androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? getFallbackOnNavigateUpListener();
+ method public androidx.customview.widget.Openable? getOpenableLayout();
+ method public java.util.Set<java.lang.Integer> getTopLevelDestinations();
+ property @Deprecated public final androidx.drawerlayout.widget.DrawerLayout? drawerLayout;
+ property public final androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? fallbackOnNavigateUpListener;
+ property public final androidx.customview.widget.Openable? openableLayout;
+ property public final java.util.Set<java.lang.Integer> topLevelDestinations;
+ }
+
+ public static final class AppBarConfiguration.Builder {
+ ctor public AppBarConfiguration.Builder(androidx.navigation.NavGraph navGraph);
+ ctor public AppBarConfiguration.Builder(android.view.Menu topLevelMenu);
+ ctor public AppBarConfiguration.Builder(int... topLevelDestinationIds);
+ ctor public AppBarConfiguration.Builder(java.util.Set<java.lang.Integer> topLevelDestinationIds);
+ method public androidx.navigation.ui.AppBarConfiguration build();
+ method @Deprecated public androidx.navigation.ui.AppBarConfiguration.Builder setDrawerLayout(androidx.drawerlayout.widget.DrawerLayout? drawerLayout);
+ method public androidx.navigation.ui.AppBarConfiguration.Builder setFallbackOnNavigateUpListener(androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? fallbackOnNavigateUpListener);
+ method public androidx.navigation.ui.AppBarConfiguration.Builder setOpenableLayout(androidx.customview.widget.Openable? openableLayout);
+ }
+
+ public static fun interface AppBarConfiguration.OnNavigateUpListener {
+ method public boolean onNavigateUp();
+ }
+
+ public final class AppBarConfigurationKt {
+ method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(androidx.navigation.NavGraph navGraph, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0<java.lang.Boolean> fallbackOnNavigateUpListener);
+ method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(android.view.Menu topLevelMenu, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0<java.lang.Boolean> fallbackOnNavigateUpListener);
+ method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(java.util.Set<java.lang.Integer> topLevelDestinationIds, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0<java.lang.Boolean> fallbackOnNavigateUpListener);
+ }
+
+ public final class BottomNavigationViewKt {
+ method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView, androidx.navigation.NavController navController);
+ }
+
+ public final class CollapsingToolbarLayoutKt {
+ method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout);
+ method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ }
+
+ public final class MenuItemKt {
+ method public static boolean onNavDestinationSelected(android.view.MenuItem, androidx.navigation.NavController navController);
+ }
+
+ public final class NavControllerKt {
+ method public static boolean navigateUp(androidx.navigation.NavController, androidx.customview.widget.Openable? drawerLayout);
+ method public static boolean navigateUp(androidx.navigation.NavController, androidx.navigation.ui.AppBarConfiguration appBarConfiguration);
+ }
+
+ public final class NavigationUI {
+ method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
+ method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.navigation.ui.AppBarConfiguration configuration);
+ method public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController);
+ method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
+ method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController);
+ method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
+ method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController);
+ method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
+ method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController);
+ method public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController);
+ method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController);
+ field public static final androidx.navigation.ui.NavigationUI INSTANCE;
+ }
+
+ public final class NavigationViewKt {
+ method public static void setupWithNavController(com.google.android.material.navigation.NavigationView, androidx.navigation.NavController navController);
+ }
+
+ public final class ToolbarKt {
+ method public static void setupWithNavController(androidx.appcompat.widget.Toolbar, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout);
+ method public static void setupWithNavController(androidx.appcompat.widget.Toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ }
+
+}
+
diff --git a/navigation/navigation-ui/api/public_plus_experimental_2.5.0-beta02.txt b/navigation/navigation-ui/api/public_plus_experimental_2.5.0-beta02.txt
new file mode 100644
index 0000000..62b5ce4
--- /dev/null
+++ b/navigation/navigation-ui/api/public_plus_experimental_2.5.0-beta02.txt
@@ -0,0 +1,93 @@
+// Signature format: 4.0
+package androidx.navigation.ui {
+
+ public final class ActivityKt {
+ method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout);
+ method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ }
+
+ public final class AppBarConfiguration {
+ method @Deprecated public androidx.drawerlayout.widget.DrawerLayout? getDrawerLayout();
+ method public androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? getFallbackOnNavigateUpListener();
+ method public androidx.customview.widget.Openable? getOpenableLayout();
+ method public java.util.Set<java.lang.Integer> getTopLevelDestinations();
+ property @Deprecated public final androidx.drawerlayout.widget.DrawerLayout? drawerLayout;
+ property public final androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? fallbackOnNavigateUpListener;
+ property public final androidx.customview.widget.Openable? openableLayout;
+ property public final java.util.Set<java.lang.Integer> topLevelDestinations;
+ }
+
+ public static final class AppBarConfiguration.Builder {
+ ctor public AppBarConfiguration.Builder(androidx.navigation.NavGraph navGraph);
+ ctor public AppBarConfiguration.Builder(android.view.Menu topLevelMenu);
+ ctor public AppBarConfiguration.Builder(int... topLevelDestinationIds);
+ ctor public AppBarConfiguration.Builder(java.util.Set<java.lang.Integer> topLevelDestinationIds);
+ method public androidx.navigation.ui.AppBarConfiguration build();
+ method @Deprecated public androidx.navigation.ui.AppBarConfiguration.Builder setDrawerLayout(androidx.drawerlayout.widget.DrawerLayout? drawerLayout);
+ method public androidx.navigation.ui.AppBarConfiguration.Builder setFallbackOnNavigateUpListener(androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? fallbackOnNavigateUpListener);
+ method public androidx.navigation.ui.AppBarConfiguration.Builder setOpenableLayout(androidx.customview.widget.Openable? openableLayout);
+ }
+
+ public static fun interface AppBarConfiguration.OnNavigateUpListener {
+ method public boolean onNavigateUp();
+ }
+
+ public final class AppBarConfigurationKt {
+ method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(androidx.navigation.NavGraph navGraph, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0<java.lang.Boolean> fallbackOnNavigateUpListener);
+ method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(android.view.Menu topLevelMenu, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0<java.lang.Boolean> fallbackOnNavigateUpListener);
+ method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(java.util.Set<java.lang.Integer> topLevelDestinationIds, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0<java.lang.Boolean> fallbackOnNavigateUpListener);
+ }
+
+ public final class BottomNavigationViewKt {
+ method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView, androidx.navigation.NavController navController);
+ }
+
+ public final class CollapsingToolbarLayoutKt {
+ method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout);
+ method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ }
+
+ public final class MenuItemKt {
+ method public static boolean onNavDestinationSelected(android.view.MenuItem, androidx.navigation.NavController navController);
+ }
+
+ public final class NavControllerKt {
+ method public static boolean navigateUp(androidx.navigation.NavController, androidx.customview.widget.Openable? drawerLayout);
+ method public static boolean navigateUp(androidx.navigation.NavController, androidx.navigation.ui.AppBarConfiguration appBarConfiguration);
+ }
+
+ public final class NavigationUI {
+ method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
+ method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.navigation.ui.AppBarConfiguration configuration);
+ method public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController);
+ method @androidx.navigation.ui.NavigationUiSaveStateControl public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController, boolean saveState);
+ method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
+ method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController);
+ method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
+ method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController);
+ method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
+ method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController);
+ method public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController);
+ method @androidx.navigation.ui.NavigationUiSaveStateControl public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController, boolean saveState);
+ method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController);
+ method @androidx.navigation.ui.NavigationUiSaveStateControl public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController, boolean saveState);
+ field public static final androidx.navigation.ui.NavigationUI INSTANCE;
+ }
+
+ @kotlin.RequiresOptIn(level=kotlin.RequiresOptIn.Level.WARNING) @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.RUNTIME) @kotlin.annotation.Target(allowedTargets=kotlin.annotation.AnnotationTarget.FUNCTION) public @interface NavigationUiSaveStateControl {
+ }
+
+ public final class NavigationViewKt {
+ method public static void setupWithNavController(com.google.android.material.navigation.NavigationView, androidx.navigation.NavController navController);
+ }
+
+ public final class ToolbarKt {
+ method public static void setupWithNavController(androidx.appcompat.widget.Toolbar, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout);
+ method public static void setupWithNavController(androidx.appcompat.widget.Toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ }
+
+}
+
diff --git a/navigation/navigation-ui/api/res-2.5.0-beta02.txt b/navigation/navigation-ui/api/res-2.5.0-beta02.txt
new file mode 100644
index 0000000..e65fdbe
--- /dev/null
+++ b/navigation/navigation-ui/api/res-2.5.0-beta02.txt
@@ -0,0 +1,8 @@
+anim nav_default_enter_anim
+anim nav_default_exit_anim
+anim nav_default_pop_enter_anim
+anim nav_default_pop_exit_anim
+animator nav_default_enter_anim
+animator nav_default_exit_anim
+animator nav_default_pop_enter_anim
+animator nav_default_pop_exit_anim
diff --git a/navigation/navigation-ui/api/restricted_2.5.0-beta02.txt b/navigation/navigation-ui/api/restricted_2.5.0-beta02.txt
new file mode 100644
index 0000000..9551da2
--- /dev/null
+++ b/navigation/navigation-ui/api/restricted_2.5.0-beta02.txt
@@ -0,0 +1,87 @@
+// Signature format: 4.0
+package androidx.navigation.ui {
+
+ public final class ActivityKt {
+ method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout);
+ method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ }
+
+ public final class AppBarConfiguration {
+ method @Deprecated public androidx.drawerlayout.widget.DrawerLayout? getDrawerLayout();
+ method public androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? getFallbackOnNavigateUpListener();
+ method public androidx.customview.widget.Openable? getOpenableLayout();
+ method public java.util.Set<java.lang.Integer> getTopLevelDestinations();
+ property @Deprecated public final androidx.drawerlayout.widget.DrawerLayout? drawerLayout;
+ property public final androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? fallbackOnNavigateUpListener;
+ property public final androidx.customview.widget.Openable? openableLayout;
+ property public final java.util.Set<java.lang.Integer> topLevelDestinations;
+ }
+
+ public static final class AppBarConfiguration.Builder {
+ ctor public AppBarConfiguration.Builder(androidx.navigation.NavGraph navGraph);
+ ctor public AppBarConfiguration.Builder(android.view.Menu topLevelMenu);
+ ctor public AppBarConfiguration.Builder(int... topLevelDestinationIds);
+ ctor public AppBarConfiguration.Builder(java.util.Set<java.lang.Integer> topLevelDestinationIds);
+ method public androidx.navigation.ui.AppBarConfiguration build();
+ method @Deprecated public androidx.navigation.ui.AppBarConfiguration.Builder setDrawerLayout(androidx.drawerlayout.widget.DrawerLayout? drawerLayout);
+ method public androidx.navigation.ui.AppBarConfiguration.Builder setFallbackOnNavigateUpListener(androidx.navigation.ui.AppBarConfiguration.OnNavigateUpListener? fallbackOnNavigateUpListener);
+ method public androidx.navigation.ui.AppBarConfiguration.Builder setOpenableLayout(androidx.customview.widget.Openable? openableLayout);
+ }
+
+ public static fun interface AppBarConfiguration.OnNavigateUpListener {
+ method public boolean onNavigateUp();
+ }
+
+ public final class AppBarConfigurationKt {
+ method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(androidx.navigation.NavGraph navGraph, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0<java.lang.Boolean> fallbackOnNavigateUpListener);
+ method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(android.view.Menu topLevelMenu, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0<java.lang.Boolean> fallbackOnNavigateUpListener);
+ method public static inline androidx.navigation.ui.AppBarConfiguration AppBarConfiguration(java.util.Set<java.lang.Integer> topLevelDestinationIds, optional androidx.customview.widget.Openable? drawerLayout, optional kotlin.jvm.functions.Function0<java.lang.Boolean> fallbackOnNavigateUpListener);
+ }
+
+ public final class BottomNavigationViewKt {
+ method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView, androidx.navigation.NavController navController);
+ }
+
+ public final class CollapsingToolbarLayoutKt {
+ method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout);
+ method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ }
+
+ public final class MenuItemKt {
+ method public static boolean onNavDestinationSelected(android.view.MenuItem, androidx.navigation.NavController navController);
+ }
+
+ public final class NavControllerKt {
+ method public static boolean navigateUp(androidx.navigation.NavController, androidx.customview.widget.Openable? drawerLayout);
+ method public static boolean navigateUp(androidx.navigation.NavController, androidx.navigation.ui.AppBarConfiguration appBarConfiguration);
+ }
+
+ public final class NavigationUI {
+ method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
+ method public static boolean navigateUp(androidx.navigation.NavController navController, androidx.navigation.ui.AppBarConfiguration configuration);
+ method public static boolean onNavDestinationSelected(android.view.MenuItem item, androidx.navigation.NavController navController);
+ method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
+ method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ method public static void setupActionBarWithNavController(androidx.appcompat.app.AppCompatActivity activity, androidx.navigation.NavController navController);
+ method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
+ method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ method public static void setupWithNavController(androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController);
+ method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, androidx.customview.widget.Openable? openableLayout);
+ method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ method public static void setupWithNavController(com.google.android.material.appbar.CollapsingToolbarLayout collapsingToolbarLayout, androidx.appcompat.widget.Toolbar toolbar, androidx.navigation.NavController navController);
+ method public static void setupWithNavController(com.google.android.material.navigation.NavigationView navigationView, androidx.navigation.NavController navController);
+ method public static void setupWithNavController(com.google.android.material.navigation.NavigationBarView navigationBarView, androidx.navigation.NavController navController);
+ field public static final androidx.navigation.ui.NavigationUI INSTANCE;
+ }
+
+ public final class NavigationViewKt {
+ method public static void setupWithNavController(com.google.android.material.navigation.NavigationView, androidx.navigation.NavController navController);
+ }
+
+ public final class ToolbarKt {
+ method public static void setupWithNavController(androidx.appcompat.widget.Toolbar, androidx.navigation.NavController navController, androidx.drawerlayout.widget.DrawerLayout? drawerLayout);
+ method public static void setupWithNavController(androidx.appcompat.widget.Toolbar, androidx.navigation.NavController navController, optional androidx.navigation.ui.AppBarConfiguration configuration);
+ }
+
+}
+
diff --git a/navigation/settings.gradle b/navigation/settings.gradle
index eedf5f4..1850a6f 100644
--- a/navigation/settings.gradle
+++ b/navigation/settings.gradle
@@ -29,9 +29,10 @@
selectProjectsFromAndroidX({ name ->
// Compose projects are not supported in playground yet
if (name.startsWith(":navigation")) return true
- if (name == ":annotation:annotation-sampled") return true
+ if (name.startsWith(":annotation")) return true
if (name == ":compose:integration-tests:demos:common") return true
- if (name == ":lifecycle:lifecycle-viewmodel-savedstate") return true
+ if (name.startsWith(":lifecycle")) return true
+ if (name.startsWith(":savedstate")) return true
if (name == ":internal-testutils-navigation") return true
if (name == ":internal-testutils-runtime") return true
if (name == ":internal-testutils-truth") return true
diff --git a/playground-common/androidx-shared.properties b/playground-common/androidx-shared.properties
index c31e4d0..d678753 100644
--- a/playground-common/androidx-shared.properties
+++ b/playground-common/androidx-shared.properties
@@ -25,21 +25,56 @@
# at configuration time.
org.gradle.jvmargs=-Xmx4g -XX:+HeapDumpOnOutOfMemoryError -XX:+UseParallelGC -XX:MaxMetaspaceSize=512m -Dkotlin.daemon.jvm.options=-XX:MaxMetaspaceSize=1g -Dlint.nullness.ignore-deprecated=true
+org.gradle.configureondemand=true
+org.gradle.parallel=true
+org.gradle.caching=true
+# Disabled due to https://github.com/gradle/gradle/issues/18626
+# org.gradle.vfs.watch=true
+org.gradle.dependency.verification.console=verbose
+org.gradle.unsafe.configuration-cache=true
+org.gradle.unsafe.configuration-cache-problems=warn
+org.gradle.unsafe.configuration-cache.max-problems=4000
+
+android.uniquePackageNames=false
+android.enableAdditionalTestOutput=true
android.useAndroidX=true
+android.nonTransitiveRClass=true
+android.disableAutomaticComponentCreation=true
+# Suppress pointless warning about mpp being experimental
+kotlin.mpp.stability.nowarn=true
+# Workaround for b/141364941
+android.forceJacocoOutOfProcess=true
+android.experimental.lint.missingBaselineIsEmptyBaseline=true
+
+# Generate versioned API files
+androidx.writeVersionedApiFiles=true
+
# Disable features we do not use
android.defaults.buildfeatures.aidl=false
android.defaults.buildfeatures.buildconfig=false
android.defaults.buildfeatures.renderscript=false
android.defaults.buildfeatures.resvalues=false
android.defaults.buildfeatures.shaders=false
-android.disableAutomaticComponentCreation=true
-android.experimental.lint.missingBaselineIsEmptyBaseline=true
-org.gradle.configureondemand=true
-org.gradle.parallel=true
-org.gradle.caching=true
-# Disabled due to https://github.com/gradle/gradle/issues/18626
-# org.gradle.vfs.watch=true
-org.gradle.unsafe.configuration-cache=true
-org.gradle.unsafe.configuration-cache-problems=warn
-org.gradle.unsafe.configuration-cache.max-problems=4000
+# do not automatically include stdlib
+kotlin.stdlib.default.dependency=false
+
+# https://b.corp.google.com/issues/227307216
+kotlin.mpp.absentAndroidTarget.nowarn=true
+
+# Enable adding baseline-prof.txt files to AAR artifacts
+android.experimental.enableArtProfiles=true
+
+# Disallow resolving dependencies at configuration time, which is a slight performance problem
+android.dependencyResolutionAtConfigurationTime.disallow=true
+android.suppressUnsupportedOptionWarnings=android.suppressUnsupportedOptionWarnings,android.dependencyResolutionAtConfigurationTime.disallow,android.experimental.lint.missingBaselineIsEmptyBaseline
+# Workaround for b/162074215
+android.includeDependencyInfoInApks=false
+
+# Properties we often want to toggle
+# ksp.version.check=false
+# androidx.compose.multiplatformEnabled=true
+
+# Do _not_ toggle or override unless you have read and understand this:
+# https://blog.jetbrains.com/kotlin/2021/10/important-ua-parser-js-exploit-and-kotlin-js/
+androidx.kmp.js.enabled=false
diff --git a/playground-common/playground-build.gradle b/playground-common/playground-build.gradle
index b01e5cb..3184ca7 100644
--- a/playground-common/playground-build.gradle
+++ b/playground-common/playground-build.gradle
@@ -32,9 +32,6 @@
def metalavaRepo = "https://androidx.dev/metalava/builds/${metalavaBuildId}/artifacts/repo/m2repository"
def dokkaRepo = "https://androidx.dev/dokka/builds/${dokkaBuildId}/artifacts/repository"
repositories {
- maven {
- url "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev/"
- }
google()
mavenCentral()
maven {
@@ -51,21 +48,13 @@
artifact()
}
}
- gradlePluginPortal()
+ gradlePluginPortal().content {
+ it.includeModule("gradle.plugin.com.github.johnrengelman", "shadow")
+ it.includeModule("me.champeau.gradle", "japicmp-gradle-plugin")
+ }
}
ext.repos = [:]
- dependencies {
- // NOTE: It's not really clear why asm:9.1 must be explicitly declared here since it should
- // be provided transitively.
- classpath("org.ow2.asm:asm:9.1")
- classpath(libs.androidGradlePluginz)
- classpath(libs.kotlinGradlePluginz)
- classpath(libs.kspGradlePluginz)
- classpath(libs.gson)
- classpath(libs.shadow)
- classpath(libs.japicmpPluginz)
- }
}
apply from: "$supportRootFolder/buildSrc/dependencies.gradle"
diff --git a/playground-common/playground-plugin/settings.gradle b/playground-common/playground-plugin/settings.gradle
index 52efe3b..3fe85ca 100644
--- a/playground-common/playground-plugin/settings.gradle
+++ b/playground-common/playground-plugin/settings.gradle
@@ -17,14 +17,19 @@
pluginManagement {
repositories {
mavenCentral()
- gradlePluginPortal()
+ gradlePluginPortal().content {
+ it.includeModule("org.jetbrains.kotlin.jvm", "org.jetbrains.kotlin.jvm.gradle.plugin")
+ }
}
}
dependencyResolutionManagement {
repositories {
mavenCentral()
- gradlePluginPortal()
+ gradlePluginPortal().content {
+ it.includeModule("com.gradle", "gradle-enterprise-gradle-plugin")
+ it.includeModule("com.gradle", "common-custom-user-data-gradle-plugin")
+ }
}
}
diff --git a/playground-common/playground-plugin/src/main/kotlin/androidx/playground/PlaygroundExtension.kt b/playground-common/playground-plugin/src/main/kotlin/androidx/playground/PlaygroundExtension.kt
index 28f2663..ea0f050 100644
--- a/playground-common/playground-plugin/src/main/kotlin/androidx/playground/PlaygroundExtension.kt
+++ b/playground-common/playground-plugin/src/main/kotlin/androidx/playground/PlaygroundExtension.kt
@@ -87,6 +87,11 @@
* @param relativePathToRoot The relative path of the project to the root AndroidX project
*/
fun setupPlayground(relativePathToRoot: String) {
+ // gradlePluginPortal has a variety of unsigned binaries that have proper signatures
+ // in mavenCentral, so don't use gradlePluginPortal()
+ settings.pluginManagement.repositories {
+ it.mavenCentral()
+ }
val projectDir = settings.rootProject.projectDir
val supportRoot = File(projectDir, relativePathToRoot).canonicalFile
this.supportRootDir = supportRoot
@@ -156,4 +161,4 @@
if (name == ":lifecycle:lifecycle-common-java8") return true
return false
}
-}
\ No newline at end of file
+}
diff --git a/room/integration-tests/kotlintestapp/build.gradle b/room/integration-tests/kotlintestapp/build.gradle
index 128ef22..00e68bc 100644
--- a/room/integration-tests/kotlintestapp/build.gradle
+++ b/room/integration-tests/kotlintestapp/build.gradle
@@ -86,7 +86,6 @@
project(path: ":room:room-compiler", configuration: "shadowAndImplementation")
)
androidTestImplementation(projectOrArtifact(":lifecycle:lifecycle-livedata-ktx"))
- androidTestImplementation(projectOrArtifact(":arch:core:core-runtime")) // Added for b/155802460
androidTestImplementation(libs.testExtJunit)
androidTestImplementation(libs.testCore)
androidTestImplementation(libs.testRunner) {
@@ -100,14 +99,13 @@
androidTestImplementation(libs.truth)
androidTestImplementation(libs.kotlinTest)
androidTestImplementation(project(":room:room-guava"))
- androidTestImplementation(project(":room:room-paging")) // Added for b/155802460
androidTestImplementation(project(":room:room-testing"))
androidTestImplementation(project(":room:room-rxjava2"))
androidTestImplementation(project(":room:room-rxjava3"))
androidTestImplementation(project(":room:room-ktx"))
androidTestImplementation(project(":internal-testutils-common"))
androidTestImplementation("androidx.arch.core:core-testing:2.0.1")
- androidTestImplementation(projectOrArtifact(":paging:paging-runtime"))
+ androidTestImplementation("androidx.paging:paging-runtime:3.1.1")
androidTestImplementation(libs.guavaAndroid)
androidTestImplementation(libs.rxjava2)
testImplementation(libs.mockitoCore)
diff --git a/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/PagingSourceTest.kt b/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/PagingSourceTest.kt
index bd0ac39..bf212a9 100644
--- a/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/PagingSourceTest.kt
+++ b/room/integration-tests/kotlintestapp/src/androidTest/java/androidx/room/integration/kotlintestapp/test/PagingSourceTest.kt
@@ -17,6 +17,7 @@
package androidx.room.integration.kotlintestapp.test
import androidx.paging.AsyncPagingDataDiffer
+import androidx.paging.ItemSnapshotList
import androidx.paging.LoadState
import androidx.paging.Pager
import androidx.paging.PagingConfig
@@ -42,7 +43,6 @@
import androidx.test.core.app.ApplicationProvider
import androidx.test.espresso.base.MainThread
import androidx.test.ext.junit.runners.AndroidJUnit4
-import androidx.test.filters.FlakyTest
import androidx.test.filters.MediumTest
import androidx.testutils.FilteringExecutor
import androidx.testutils.withTestTimeout
@@ -53,7 +53,6 @@
import kotlinx.coroutines.cancel
import kotlinx.coroutines.cancelAndJoin
import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.distinctUntilChangedBy
import kotlinx.coroutines.flow.drop
@@ -143,9 +142,9 @@
val items = createItems(startId = 15, count = 50)
db.dao.insert(items)
runTest {
- itemStore.awaitInitialLoad()
+ val initialLoad = itemStore.awaitInitialLoad()
assertThat(
- itemStore.peekItems()
+ initialLoad
).containsExactlyElementsIn(
items.createExpected(
fromIndex = 0,
@@ -180,9 +179,9 @@
pagingSourceFactory = { db.dao.loadItemsRaw(query) }
)
runTest(pager = pager) {
- itemStore.awaitInitialLoad()
+ val initialLoad = itemStore.awaitInitialLoad()
assertThat(
- itemStore.peekItems()
+ initialLoad
).containsExactlyElementsIn(
items.createExpected(
fromIndex = 0,
@@ -205,7 +204,6 @@
}
@Test
- @FlakyTest(bugId = 213635127)
fun loadEverything_inReverse() {
// open db
val items = createItems(startId = 0, count = 100)
@@ -217,9 +215,9 @@
db.dao.loadItems()
}
runTest(pager) {
- itemStore.awaitInitialLoad()
+ val initialLoad = itemStore.awaitInitialLoad()
assertThat(
- itemStore.peekItems()
+ initialLoad
).containsExactlyElementsIn(
items.createExpected(
// Paging 3 implementation loads starting from initial key
@@ -257,9 +255,9 @@
pagingSourceFactory = { db.dao.loadItemsRaw(query) }
)
runTest(pager) {
- itemStore.awaitInitialLoad()
+ val initialLoad = itemStore.awaitInitialLoad()
assertThat(
- itemStore.peekItems()
+ initialLoad
).containsExactlyElementsIn(
items.createExpected(
// Paging 3 implementation loads starting from initial key
@@ -297,9 +295,9 @@
)
runTest(pager = pager) {
- itemStore.awaitInitialLoad()
+ val initialLoad = itemStore.awaitInitialLoad()
assertThat(
- itemStore.peekItems()
+ initialLoad
).containsExactlyElementsIn(
// returns items 20 to 28 with 21 null place holders after
items.createBoundedExpected(
@@ -343,9 +341,9 @@
)
runTest(pager = pager) {
- itemStore.awaitInitialLoad()
+ val initialLoad = itemStore.awaitInitialLoad()
assertThat(
- itemStore.peekItems()
+ initialLoad
).containsExactlyElementsIn(
// returns items 50 to 58 with 11 null place holders after
items.createBoundedExpected(
@@ -383,9 +381,9 @@
db.dao.loadItems()
}
runTest(pager = pager) {
- itemStore.awaitInitialLoad()
+ val initialLoad = itemStore.awaitInitialLoad()
assertThat(
- itemStore.peekItems()
+ initialLoad
).containsExactlyElementsIn(
// should return last page when key is too large
items.createExpected(
@@ -418,9 +416,9 @@
db.dao.loadItems()
}
runTest(pager = pager) {
- itemStore.awaitInitialLoad()
+ val initialLoad = itemStore.awaitInitialLoad()
assertThat(
- itemStore.peekItems()
+ initialLoad
).containsExactlyElementsIn(
items.createExpected(
fromIndex = 0,
@@ -459,9 +457,9 @@
)
runTest(pager) {
- itemStore.awaitInitialLoad()
+ val initialLoad = itemStore.awaitInitialLoad()
assertThat(
- itemStore.peekItems()
+ initialLoad
).containsExactlyElementsIn(
// should load starting from initial Key = 30
items.createExpected(
@@ -567,13 +565,13 @@
)
runTest(pager) {
- itemStore.awaitInitialLoad()
+ val initialLoad = itemStore.awaitInitialLoad()
val initialItems = items.createExpected(
fromIndex = 20,
toIndex = 20 + CONFIG.initialLoadSize
)
assertThat(
- itemStore.peekItems()
+ initialLoad
).containsExactlyElementsIn(
// should load starting from initial Key = 20
initialItems
@@ -636,9 +634,9 @@
val items = createItems(startId = 0, count = 90)
db.dao.insert(items)
runTest {
- itemStore.awaitInitialLoad()
+ val initialLoad = itemStore.awaitInitialLoad()
assertThat(
- itemStore.peekItems()
+ initialLoad
).containsExactlyElementsIn(
items.createExpected(
fromIndex = 0,
@@ -919,11 +917,13 @@
}
}
- suspend fun awaitInitialLoad() = withTestTimeout {
- withContext(Dispatchers.Main) {
- generation.filter { it.initialLoadCompleted }.first()
+ suspend fun awaitInitialLoad(): ItemSnapshotList<PagingEntity> =
+ withTestTimeout {
+ withContext(Dispatchers.Main) {
+ generation.filter { it.initialLoadCompleted }.first()
+ asyncDiffer.snapshot()
+ }
}
- }
suspend fun awaitGeneration(id: Int) = withTestTimeout {
withContext(Dispatchers.Main) {
diff --git a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/DeclarationCollector.kt b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/DeclarationCollector.kt
index f5bbf53..038f117 100644
--- a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/DeclarationCollector.kt
+++ b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/DeclarationCollector.kt
@@ -36,7 +36,7 @@
}
}
// visit all declared fields on super types
- type.superType?.typeElement?.let { parent ->
+ type.superClass?.typeElement?.let { parent ->
yieldAllFields(parent)
}
}
@@ -66,7 +66,7 @@
}
}
// Next, visit all super class methods.
- type.superType?.typeElement?.let {
+ type.superClass?.typeElement?.let {
collectAllMethodsByName(it)
}
// Finally, visit all methods declared in this type.
diff --git a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/XTypeElement.kt b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/XTypeElement.kt
index 650a183..7a16840 100644
--- a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/XTypeElement.kt
+++ b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/XTypeElement.kt
@@ -44,7 +44,24 @@
/**
* The super type of this element if it represents a class.
*/
+ @Deprecated(
+ message = "Function name was misleading.",
+ replaceWith = ReplaceWith("superClass")
+ )
val superType: XType?
+ get() = superClass
+
+ /**
+ * The direct super types of this element.
+ *
+ * See [JLS 4.10.2](https://docs.oracle.com/javase/specs/jls/se18/html/jls-4.html#jls-4.10.2)
+ */
+ val superTypes: List<XType>
+
+ /**
+ * The super class of this element if it represents a class.
+ */
+ val superClass: XType?
/**
* The super interfaces implemented by this class.
diff --git a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/javac/JavacTypeElement.kt b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/javac/JavacTypeElement.kt
index 7fdfbc9..9a5fa0a 100644
--- a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/javac/JavacTypeElement.kt
+++ b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/javac/JavacTypeElement.kt
@@ -22,6 +22,7 @@
import androidx.room.compiler.processing.XHasModifiers
import androidx.room.compiler.processing.XMethodElement
import androidx.room.compiler.processing.XMemberContainer
+import androidx.room.compiler.processing.XType
import androidx.room.compiler.processing.XTypeElement
import androidx.room.compiler.processing.collectAllMethods
import androidx.room.compiler.processing.collectFieldsIncludingPrivateSupers
@@ -31,6 +32,7 @@
import com.google.auto.common.MoreElements
import com.google.auto.common.MoreTypes
import com.squareup.javapoet.ClassName
+import com.squareup.javapoet.TypeName
import javax.lang.model.element.ElementKind
import javax.lang.model.element.TypeElement
import javax.lang.model.type.TypeKind
@@ -175,7 +177,18 @@
)
}
- override val superType: JavacType? by lazy {
+ override val superTypes: List<XType> by lazy {
+ buildList {
+ if (isInterface() && superInterfaces.isEmpty()) {
+ add(env.requireType(TypeName.OBJECT))
+ } else {
+ superClass?.let { add(it) }
+ addAll(superInterfaces)
+ }
+ }
+ }
+
+ override val superClass: JavacType? by lazy {
// javac models non-existing types as TypeKind.NONE but we prefer to make it nullable.
// just makes more sense and safer as we don't need to check for none.
diff --git a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KspTypeElement.kt b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KspTypeElement.kt
index 36983be..4133789 100644
--- a/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KspTypeElement.kt
+++ b/room/room-compiler-processing/src/main/java/androidx/room/compiler/processing/ksp/KspTypeElement.kt
@@ -42,6 +42,7 @@
import com.google.devtools.ksp.symbol.KSPropertyDeclaration
import com.google.devtools.ksp.symbol.Modifier
import com.squareup.javapoet.ClassName
+import com.squareup.javapoet.TypeName
internal sealed class KspTypeElement(
env: KspProcessingEnv,
@@ -83,15 +84,32 @@
)
}
- override val superType: XType? by lazy {
- declaration.superTypes.firstOrNull {
- val type = it.resolve().declaration as? KSClassDeclaration ?: return@firstOrNull false
- type.classKind == ClassKind.CLASS
- }?.let {
- env.wrap(
- ksType = it.resolve(),
- allowPrimitives = false
- )
+ override val superTypes: List<XType> by lazy {
+ buildList {
+ if (isInterface() && superInterfaces.isEmpty()) {
+ add(env.requireType(TypeName.OBJECT))
+ } else {
+ superClass?.let { add(it) }
+ addAll(superInterfaces)
+ }
+ }
+ }
+
+ override val superClass: XType? by lazy {
+ if (isInterface()) {
+ // interfaces don't have super classes (they do have super types)
+ null
+ } else {
+ declaration.superTypes.firstOrNull {
+ val type =
+ it.resolve().declaration as? KSClassDeclaration ?: return@firstOrNull false
+ type.classKind == ClassKind.CLASS
+ }?.let {
+ env.wrap(
+ ksType = it.resolve(),
+ allowPrimitives = false
+ )
+ }
}
}
diff --git a/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XElementTest.kt b/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XElementTest.kt
index c071a0c..a607bcc 100644
--- a/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XElementTest.kt
+++ b/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XElementTest.kt
@@ -469,7 +469,7 @@
) {
val element = it.processingEnv.requireTypeElement("java.lang.Object")
// make sure we return null for not existing types
- assertThat(element.superType).isNull()
+ assertThat(element.superClass).isNull()
}
}
diff --git a/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XProcessingEnvTest.kt b/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XProcessingEnvTest.kt
index 5e567bb..a66452a 100644
--- a/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XProcessingEnvTest.kt
+++ b/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XProcessingEnvTest.kt
@@ -123,7 +123,7 @@
assertThat(element.getDeclaredMethods()).hasSize(2)
assertThat(element.kindName()).isEqualTo("class")
assertThat(element.isInterface()).isFalse()
- assertThat(element.superType?.typeName).isEqualTo(TypeName.OBJECT)
+ assertThat(element.superClass?.typeName).isEqualTo(TypeName.OBJECT)
}
}
diff --git a/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeElementTest.kt b/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeElementTest.kt
index 79b7dd2..0c1d116 100644
--- a/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeElementTest.kt
+++ b/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeElementTest.kt
@@ -118,13 +118,18 @@
}
abstract class AbstractClass {}
interface MyInterface {}
+ interface AnotherInterface : MyInterface {}
""".trimIndent()
)
runProcessorTest(sources = listOf(src)) { invocation ->
invocation.processingEnv.requireTypeElement("foo.bar.Baz").let {
- assertThat(it.superType).isEqualTo(
+ assertThat(it.superClass).isEqualTo(
invocation.processingEnv.requireType("foo.bar.AbstractClass")
)
+ assertThat(it.superTypes).containsExactly(
+ invocation.processingEnv.requireType("foo.bar.AbstractClass"),
+ invocation.processingEnv.requireType("foo.bar.MyInterface")
+ )
assertThat(it.type).isEqualTo(
invocation.processingEnv.requireType("foo.bar.Baz")
)
@@ -133,11 +138,12 @@
assertThat(it.isAbstract()).isFalse()
}
invocation.processingEnv.requireTypeElement("foo.bar.AbstractClass").let {
- assertThat(it.superType).let {
- it.isEqualTo(
- invocation.processingEnv.requireType(TypeName.OBJECT)
- )
- }
+ assertThat(it.superClass).isEqualTo(
+ invocation.processingEnv.requireType(TypeName.OBJECT)
+ )
+ assertThat(it.superTypes).containsExactly(
+ invocation.processingEnv.requireType(TypeName.OBJECT)
+ )
assertThat(it.isAbstract()).isTrue()
assertThat(it.isInterface()).isFalse()
assertThat(it.type).isEqualTo(
@@ -145,8 +151,8 @@
)
}
invocation.processingEnv.requireTypeElement("foo.bar.MyInterface").let {
- assertThat(it.superType).isAnyOf(
- null,
+ assertThat(it.superClass).isNull()
+ assertThat(it.superTypes).containsExactly(
invocation.processingEnv.requireType(TypeName.OBJECT)
)
assertThat(it.isInterface()).isTrue()
@@ -154,6 +160,16 @@
invocation.processingEnv.requireType("foo.bar.MyInterface")
)
}
+ invocation.processingEnv.requireTypeElement("foo.bar.AnotherInterface").let {
+ assertThat(it.superClass).isNull()
+ assertThat(it.superTypes).containsExactly(
+ invocation.processingEnv.requireType("foo.bar.MyInterface")
+ )
+ assertThat(it.isInterface()).isTrue()
+ assertThat(it.type).isEqualTo(
+ invocation.processingEnv.requireType("foo.bar.AnotherInterface")
+ )
+ }
}
}
@@ -810,7 +826,7 @@
runProcessorTest(sources = listOf(src)) { invocation ->
val base = invocation.processingEnv.requireTypeElement("DerivedInterface")
val methodNames = base.getAllMethods().toList().jvmNames()
- assertThat(methodNames).containsAtLeast(
+ assertThat(methodNames).containsExactly(
"get", "getAll", "putAll", "getAllWithDefault"
)
}
@@ -1211,21 +1227,21 @@
assertThat(base.getDeclaredMethods().jvmNames()).containsExactly(
"getX"
)
- assertThat(base.getAllMethods().jvmNames()).contains(
+ assertThat(base.getAllMethods().jvmNames()).containsExactly(
"getX"
)
- assertThat(base.getAllNonPrivateInstanceMethods().jvmNames()).contains(
+ assertThat(base.getAllNonPrivateInstanceMethods().jvmNames()).containsExactly(
"getX"
)
}
invocation.processingEnv.requireTypeElement("GetterSetter").let { sub ->
- assertThat(sub.getDeclaredMethods().jvmNames()).containsAtLeast(
+ assertThat(sub.getDeclaredMethods().jvmNames()).containsExactly(
"getY", "setY"
)
- assertThat(sub.getAllMethods().jvmNames()).containsAtLeast(
+ assertThat(sub.getAllMethods().jvmNames()).containsExactly(
"getX", "getY", "setY"
)
- assertThat(sub.getAllNonPrivateInstanceMethods().jvmNames()).containsAtLeast(
+ assertThat(sub.getAllNonPrivateInstanceMethods().jvmNames()).containsExactly(
"getX", "getY", "setY"
)
}
diff --git a/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeTest.kt b/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeTest.kt
index e9105f8..9f0364c 100644
--- a/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeTest.kt
+++ b/room/room-compiler-processing/src/test/java/androidx/room/compiler/processing/XTypeTest.kt
@@ -270,7 +270,7 @@
sources = listOf(missingTypeRef)
) {
val element = it.processingEnv.requireTypeElement("foo.bar.Baz")
- assertThat(element.superType?.isError()).isTrue()
+ assertThat(element.superClass?.isError()).isTrue()
it.assertCompilationResult {
compilationDidFail()
}
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/ext/xtype_ext.kt b/room/room-compiler/src/main/kotlin/androidx/room/ext/xtype_ext.kt
index b9e1dd7..315afe6 100644
--- a/room/room-compiler/src/main/kotlin/androidx/room/ext/xtype_ext.kt
+++ b/room/room-compiler/src/main/kotlin/androidx/room/ext/xtype_ext.kt
@@ -95,7 +95,7 @@
if (hasEquals && hasHashCode) return true
- return typeElement.superType?.let { it.implementsEqualsAndHashcode() } ?: false
+ return typeElement.superClass?.implementsEqualsAndHashcode() ?: false
}
/**
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/processor/DaoProcessor.kt b/room/room-compiler/src/main/kotlin/androidx/room/processor/DaoProcessor.kt
index 0a4a532..7e90b44 100644
--- a/room/room-compiler/src/main/kotlin/androidx/room/processor/DaoProcessor.kt
+++ b/room/room-compiler/src/main/kotlin/androidx/room/processor/DaoProcessor.kt
@@ -172,9 +172,7 @@
// Kotlin.
val unannotatedMethods = methods[Any::class] ?: emptyList<XMethodElement>()
val delegatingMethods =
- if (element.superType != null ||
- element.getSuperInterfaceElements().isNotEmpty()
- ) {
+ if (element.superClass != null || element.getSuperInterfaceElements().isNotEmpty()) {
matchKotlinBoxedPrimitiveMethods(
unannotatedMethods,
methods.values.flatten() - unannotatedMethods
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/processor/TableEntityProcessor.kt b/room/room-compiler/src/main/kotlin/androidx/room/processor/TableEntityProcessor.kt
index 73f549f..1c17c65 100644
--- a/room/room-compiler/src/main/kotlin/androidx/room/processor/TableEntityProcessor.kt
+++ b/room/room-compiler/src/main/kotlin/androidx/room/processor/TableEntityProcessor.kt
@@ -123,7 +123,7 @@
)
}
}
- val superIndices = loadSuperIndices(element.superType, tableName, inheritSuperIndices)
+ val superIndices = loadSuperIndices(element.superClass, tableName, inheritSuperIndices)
val indexInputs = entityIndices + fieldIndices + superIndices
val indices = validateAndCreateIndices(indexInputs, pojo)
@@ -387,7 +387,7 @@
}
} ?: emptyList()
// checks supers.
- val mySuper = typeElement.superType
+ val mySuper = typeElement.superClass
val superPKeys = if (mySuper != null && mySuper.isNotNone()) {
// my super cannot see my fields so remove them.
val remainingFields = availableFields.filterNot {
@@ -444,7 +444,7 @@
myPKeys.first()
} else if (myPKeys.isEmpty()) {
// i have not declared anything, delegate to super
- val mySuper = typeElement.superType
+ val mySuper = typeElement.superClass
if (mySuper != null && mySuper.isNotNone()) {
return choosePrimaryKey(candidates, mySuper.typeElement!!)
}
@@ -567,6 +567,6 @@
emptyList()
}
} ?: emptyList()
- return myIndices + loadSuperIndices(parentTypeElement.superType, tableName, inherit)
+ return myIndices + loadSuperIndices(parentTypeElement.superClass, tableName, inherit)
}
}
diff --git a/room/room-paging-guava/src/main/kotlin/androidx/room/paging/guava/LimitOffsetListenableFuturePagingSource.kt b/room/room-paging-guava/src/main/java/androidx/room/paging/guava/LimitOffsetListenableFuturePagingSource.kt
similarity index 100%
rename from room/room-paging-guava/src/main/kotlin/androidx/room/paging/guava/LimitOffsetListenableFuturePagingSource.kt
rename to room/room-paging-guava/src/main/java/androidx/room/paging/guava/LimitOffsetListenableFuturePagingSource.kt
diff --git a/room/room-paging/build.gradle b/room/room-paging/build.gradle
index 84367bf..e1a2e69 100644
--- a/room/room-paging/build.gradle
+++ b/room/room-paging/build.gradle
@@ -47,7 +47,7 @@
api(project(":room:room-runtime"))
implementation(project(":room:room-ktx"))
- api("androidx.paging:paging-common:3.1.0")
+ api("androidx.paging:paging-common:3.1.1")
androidTestImplementation(libs.kotlinCoroutinesTest)
androidTestImplementation(libs.multidex)
diff --git a/room/room-paging/src/main/kotlin/androidx/room/paging/LimitOffsetPagingSource.kt b/room/room-paging/src/main/java/androidx/room/paging/LimitOffsetPagingSource.kt
similarity index 100%
rename from room/room-paging/src/main/kotlin/androidx/room/paging/LimitOffsetPagingSource.kt
rename to room/room-paging/src/main/java/androidx/room/paging/LimitOffsetPagingSource.kt
diff --git a/room/room-paging/src/main/kotlin/androidx/room/paging/util/RoomPagingUtil.kt b/room/room-paging/src/main/java/androidx/room/paging/util/RoomPagingUtil.kt
similarity index 100%
rename from room/room-paging/src/main/kotlin/androidx/room/paging/util/RoomPagingUtil.kt
rename to room/room-paging/src/main/java/androidx/room/paging/util/RoomPagingUtil.kt
diff --git a/room/room-paging/src/main/kotlin/androidx/room/paging/util/ThreadSafeInvalidationObserver.kt b/room/room-paging/src/main/java/androidx/room/paging/util/ThreadSafeInvalidationObserver.kt
similarity index 100%
rename from room/room-paging/src/main/kotlin/androidx/room/paging/util/ThreadSafeInvalidationObserver.kt
rename to room/room-paging/src/main/java/androidx/room/paging/util/ThreadSafeInvalidationObserver.kt
diff --git a/savedstate/savedstate-ktx/api/1.2.0-beta02.txt b/savedstate/savedstate-ktx/api/1.2.0-beta02.txt
new file mode 100644
index 0000000..b01f511
--- /dev/null
+++ b/savedstate/savedstate-ktx/api/1.2.0-beta02.txt
@@ -0,0 +1,9 @@
+// Signature format: 4.0
+package androidx.savedstate {
+
+ public final class ViewKt {
+ method @Deprecated public static androidx.savedstate.SavedStateRegistryOwner! findViewTreeSavedStateRegistryOwner(android.view.View);
+ }
+
+}
+
diff --git a/savedstate/savedstate-ktx/api/public_plus_experimental_1.2.0-beta02.txt b/savedstate/savedstate-ktx/api/public_plus_experimental_1.2.0-beta02.txt
new file mode 100644
index 0000000..b01f511
--- /dev/null
+++ b/savedstate/savedstate-ktx/api/public_plus_experimental_1.2.0-beta02.txt
@@ -0,0 +1,9 @@
+// Signature format: 4.0
+package androidx.savedstate {
+
+ public final class ViewKt {
+ method @Deprecated public static androidx.savedstate.SavedStateRegistryOwner! findViewTreeSavedStateRegistryOwner(android.view.View);
+ }
+
+}
+
diff --git a/savedstate/savedstate-ktx/api/res-1.2.0-beta02.txt b/savedstate/savedstate-ktx/api/res-1.2.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/savedstate/savedstate-ktx/api/res-1.2.0-beta02.txt
diff --git a/savedstate/savedstate-ktx/api/restricted_1.2.0-beta02.txt b/savedstate/savedstate-ktx/api/restricted_1.2.0-beta02.txt
new file mode 100644
index 0000000..b01f511
--- /dev/null
+++ b/savedstate/savedstate-ktx/api/restricted_1.2.0-beta02.txt
@@ -0,0 +1,9 @@
+// Signature format: 4.0
+package androidx.savedstate {
+
+ public final class ViewKt {
+ method @Deprecated public static androidx.savedstate.SavedStateRegistryOwner! findViewTreeSavedStateRegistryOwner(android.view.View);
+ }
+
+}
+
diff --git a/savedstate/savedstate/api/1.2.0-beta02.txt b/savedstate/savedstate/api/1.2.0-beta02.txt
new file mode 100644
index 0000000..6fe1a0d
--- /dev/null
+++ b/savedstate/savedstate/api/1.2.0-beta02.txt
@@ -0,0 +1,47 @@
+// Signature format: 4.0
+package androidx.savedstate {
+
+ public final class SavedStateRegistry {
+ method @MainThread public android.os.Bundle? consumeRestoredStateForKey(String key);
+ method public androidx.savedstate.SavedStateRegistry.SavedStateProvider? getSavedStateProvider(String key);
+ method @MainThread public boolean isRestored();
+ method @MainThread public void registerSavedStateProvider(String key, androidx.savedstate.SavedStateRegistry.SavedStateProvider provider);
+ method @MainThread public void runOnNextRecreation(Class<? extends androidx.savedstate.SavedStateRegistry.AutoRecreated> clazz);
+ method @MainThread public void unregisterSavedStateProvider(String key);
+ property @MainThread public final boolean isRestored;
+ }
+
+ public static interface SavedStateRegistry.AutoRecreated {
+ method public void onRecreated(androidx.savedstate.SavedStateRegistryOwner owner);
+ }
+
+ public static fun interface SavedStateRegistry.SavedStateProvider {
+ method public android.os.Bundle saveState();
+ }
+
+ public final class SavedStateRegistryController {
+ method public static androidx.savedstate.SavedStateRegistryController create(androidx.savedstate.SavedStateRegistryOwner owner);
+ method public androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
+ method @MainThread public void performAttach();
+ method @MainThread public void performRestore(android.os.Bundle? savedState);
+ method @MainThread public void performSave(android.os.Bundle outBundle);
+ property public final androidx.savedstate.SavedStateRegistry savedStateRegistry;
+ field public static final androidx.savedstate.SavedStateRegistryController.Companion Companion;
+ }
+
+ public static final class SavedStateRegistryController.Companion {
+ method public androidx.savedstate.SavedStateRegistryController create(androidx.savedstate.SavedStateRegistryOwner owner);
+ }
+
+ public interface SavedStateRegistryOwner extends androidx.lifecycle.LifecycleOwner {
+ method public androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
+ property public abstract androidx.savedstate.SavedStateRegistry savedStateRegistry;
+ }
+
+ public final class ViewTreeSavedStateRegistryOwner {
+ method public static androidx.savedstate.SavedStateRegistryOwner? get(android.view.View);
+ method public static void set(android.view.View, androidx.savedstate.SavedStateRegistryOwner? owner);
+ }
+
+}
+
diff --git a/savedstate/savedstate/api/public_plus_experimental_1.2.0-beta02.txt b/savedstate/savedstate/api/public_plus_experimental_1.2.0-beta02.txt
new file mode 100644
index 0000000..6fe1a0d
--- /dev/null
+++ b/savedstate/savedstate/api/public_plus_experimental_1.2.0-beta02.txt
@@ -0,0 +1,47 @@
+// Signature format: 4.0
+package androidx.savedstate {
+
+ public final class SavedStateRegistry {
+ method @MainThread public android.os.Bundle? consumeRestoredStateForKey(String key);
+ method public androidx.savedstate.SavedStateRegistry.SavedStateProvider? getSavedStateProvider(String key);
+ method @MainThread public boolean isRestored();
+ method @MainThread public void registerSavedStateProvider(String key, androidx.savedstate.SavedStateRegistry.SavedStateProvider provider);
+ method @MainThread public void runOnNextRecreation(Class<? extends androidx.savedstate.SavedStateRegistry.AutoRecreated> clazz);
+ method @MainThread public void unregisterSavedStateProvider(String key);
+ property @MainThread public final boolean isRestored;
+ }
+
+ public static interface SavedStateRegistry.AutoRecreated {
+ method public void onRecreated(androidx.savedstate.SavedStateRegistryOwner owner);
+ }
+
+ public static fun interface SavedStateRegistry.SavedStateProvider {
+ method public android.os.Bundle saveState();
+ }
+
+ public final class SavedStateRegistryController {
+ method public static androidx.savedstate.SavedStateRegistryController create(androidx.savedstate.SavedStateRegistryOwner owner);
+ method public androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
+ method @MainThread public void performAttach();
+ method @MainThread public void performRestore(android.os.Bundle? savedState);
+ method @MainThread public void performSave(android.os.Bundle outBundle);
+ property public final androidx.savedstate.SavedStateRegistry savedStateRegistry;
+ field public static final androidx.savedstate.SavedStateRegistryController.Companion Companion;
+ }
+
+ public static final class SavedStateRegistryController.Companion {
+ method public androidx.savedstate.SavedStateRegistryController create(androidx.savedstate.SavedStateRegistryOwner owner);
+ }
+
+ public interface SavedStateRegistryOwner extends androidx.lifecycle.LifecycleOwner {
+ method public androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
+ property public abstract androidx.savedstate.SavedStateRegistry savedStateRegistry;
+ }
+
+ public final class ViewTreeSavedStateRegistryOwner {
+ method public static androidx.savedstate.SavedStateRegistryOwner? get(android.view.View);
+ method public static void set(android.view.View, androidx.savedstate.SavedStateRegistryOwner? owner);
+ }
+
+}
+
diff --git a/savedstate/savedstate/api/res-1.2.0-beta02.txt b/savedstate/savedstate/api/res-1.2.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/savedstate/savedstate/api/res-1.2.0-beta02.txt
diff --git a/savedstate/savedstate/api/restricted_1.2.0-beta02.txt b/savedstate/savedstate/api/restricted_1.2.0-beta02.txt
new file mode 100644
index 0000000..6fe1a0d
--- /dev/null
+++ b/savedstate/savedstate/api/restricted_1.2.0-beta02.txt
@@ -0,0 +1,47 @@
+// Signature format: 4.0
+package androidx.savedstate {
+
+ public final class SavedStateRegistry {
+ method @MainThread public android.os.Bundle? consumeRestoredStateForKey(String key);
+ method public androidx.savedstate.SavedStateRegistry.SavedStateProvider? getSavedStateProvider(String key);
+ method @MainThread public boolean isRestored();
+ method @MainThread public void registerSavedStateProvider(String key, androidx.savedstate.SavedStateRegistry.SavedStateProvider provider);
+ method @MainThread public void runOnNextRecreation(Class<? extends androidx.savedstate.SavedStateRegistry.AutoRecreated> clazz);
+ method @MainThread public void unregisterSavedStateProvider(String key);
+ property @MainThread public final boolean isRestored;
+ }
+
+ public static interface SavedStateRegistry.AutoRecreated {
+ method public void onRecreated(androidx.savedstate.SavedStateRegistryOwner owner);
+ }
+
+ public static fun interface SavedStateRegistry.SavedStateProvider {
+ method public android.os.Bundle saveState();
+ }
+
+ public final class SavedStateRegistryController {
+ method public static androidx.savedstate.SavedStateRegistryController create(androidx.savedstate.SavedStateRegistryOwner owner);
+ method public androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
+ method @MainThread public void performAttach();
+ method @MainThread public void performRestore(android.os.Bundle? savedState);
+ method @MainThread public void performSave(android.os.Bundle outBundle);
+ property public final androidx.savedstate.SavedStateRegistry savedStateRegistry;
+ field public static final androidx.savedstate.SavedStateRegistryController.Companion Companion;
+ }
+
+ public static final class SavedStateRegistryController.Companion {
+ method public androidx.savedstate.SavedStateRegistryController create(androidx.savedstate.SavedStateRegistryOwner owner);
+ }
+
+ public interface SavedStateRegistryOwner extends androidx.lifecycle.LifecycleOwner {
+ method public androidx.savedstate.SavedStateRegistry getSavedStateRegistry();
+ property public abstract androidx.savedstate.SavedStateRegistry savedStateRegistry;
+ }
+
+ public final class ViewTreeSavedStateRegistryOwner {
+ method public static androidx.savedstate.SavedStateRegistryOwner? get(android.view.View);
+ method public static void set(android.view.View, androidx.savedstate.SavedStateRegistryOwner? owner);
+ }
+
+}
+
diff --git a/settings.gradle b/settings.gradle
index 8bd3b85..afc7025 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -431,6 +431,7 @@
includeProject(":compose:lint:common-test", [BuildType.COMPOSE, BuildType.MAIN])
includeProject(":compose:material", [BuildType.COMPOSE])
includeProject(":compose:material3:material3", [BuildType.COMPOSE])
+includeProject(":compose:material3:material3-lint", [BuildType.COMPOSE])
includeProject(":compose:material3:material3-window-size-class", [BuildType.COMPOSE])
includeProject(":compose:material3:material3-window-size-class:material3-window-size-class-samples", "compose/material3/material3-window-size-class/samples", [BuildType.COMPOSE])
includeProject(":compose:material:material", [BuildType.COMPOSE])
@@ -659,6 +660,7 @@
includeProject(":navigation:navigation-integration-tests", "navigation/integration-tests", [BuildType.MAIN, BuildType.FLAN])
includeProject(":navigation:navigation-integration-tests:testapp", "navigation/integration-tests/testapp", [BuildType.MAIN, BuildType.FLAN])
includeProject(":navigation:navigation-runtime", [BuildType.MAIN, BuildType.FLAN, BuildType.COMPOSE])
+includeProject(":navigation:navigation-runtime-lint", [BuildType.MAIN, BuildType.FLAN, BuildType.COMPOSE])
includeProject(":navigation:navigation-runtime-ktx", [BuildType.MAIN, BuildType.FLAN, BuildType.COMPOSE])
includeProject(":navigation:navigation-runtime-truth", [BuildType.MAIN, BuildType.FLAN])
includeProject(":navigation:navigation-safe-args-generator", [BuildType.MAIN, BuildType.FLAN])
diff --git a/vectordrawable/vectordrawable-seekable/api/1.0.0-beta02.txt b/vectordrawable/vectordrawable-seekable/api/1.0.0-beta02.txt
new file mode 100644
index 0000000..dab885b
--- /dev/null
+++ b/vectordrawable/vectordrawable-seekable/api/1.0.0-beta02.txt
@@ -0,0 +1,35 @@
+// Signature format: 4.0
+package androidx.vectordrawable.graphics.drawable {
+
+ public class SeekableAnimatedVectorDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Animatable {
+ method public void clearAnimationCallbacks();
+ method public static androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable? create(android.content.Context, @DrawableRes int);
+ method public static androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable createFromXmlInner(android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme?) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+ method public void draw(android.graphics.Canvas);
+ method @IntRange(from=0) public long getCurrentPlayTime();
+ method @Deprecated public int getOpacity();
+ method public long getTotalDuration();
+ method public boolean isPaused();
+ method public boolean isRunning();
+ method public void pause();
+ method public void registerAnimationCallback(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable.AnimationCallback);
+ method public void resume();
+ method public void setAlpha(@IntRange(from=0, to=255) int);
+ method public void setColorFilter(android.graphics.ColorFilter?);
+ method public void setCurrentPlayTime(@IntRange(from=0) long);
+ method public void start();
+ method public void stop();
+ method public boolean unregisterAnimationCallback(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable.AnimationCallback);
+ }
+
+ public abstract static class SeekableAnimatedVectorDrawable.AnimationCallback {
+ ctor public SeekableAnimatedVectorDrawable.AnimationCallback();
+ method public void onAnimationEnd(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable);
+ method public void onAnimationPause(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable);
+ method public void onAnimationResume(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable);
+ method public void onAnimationStart(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable);
+ method public void onAnimationUpdate(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable);
+ }
+
+}
+
diff --git a/vectordrawable/vectordrawable-seekable/api/public_plus_experimental_1.0.0-beta02.txt b/vectordrawable/vectordrawable-seekable/api/public_plus_experimental_1.0.0-beta02.txt
new file mode 100644
index 0000000..dab885b
--- /dev/null
+++ b/vectordrawable/vectordrawable-seekable/api/public_plus_experimental_1.0.0-beta02.txt
@@ -0,0 +1,35 @@
+// Signature format: 4.0
+package androidx.vectordrawable.graphics.drawable {
+
+ public class SeekableAnimatedVectorDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Animatable {
+ method public void clearAnimationCallbacks();
+ method public static androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable? create(android.content.Context, @DrawableRes int);
+ method public static androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable createFromXmlInner(android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme?) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+ method public void draw(android.graphics.Canvas);
+ method @IntRange(from=0) public long getCurrentPlayTime();
+ method @Deprecated public int getOpacity();
+ method public long getTotalDuration();
+ method public boolean isPaused();
+ method public boolean isRunning();
+ method public void pause();
+ method public void registerAnimationCallback(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable.AnimationCallback);
+ method public void resume();
+ method public void setAlpha(@IntRange(from=0, to=255) int);
+ method public void setColorFilter(android.graphics.ColorFilter?);
+ method public void setCurrentPlayTime(@IntRange(from=0) long);
+ method public void start();
+ method public void stop();
+ method public boolean unregisterAnimationCallback(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable.AnimationCallback);
+ }
+
+ public abstract static class SeekableAnimatedVectorDrawable.AnimationCallback {
+ ctor public SeekableAnimatedVectorDrawable.AnimationCallback();
+ method public void onAnimationEnd(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable);
+ method public void onAnimationPause(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable);
+ method public void onAnimationResume(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable);
+ method public void onAnimationStart(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable);
+ method public void onAnimationUpdate(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable);
+ }
+
+}
+
diff --git a/vectordrawable/vectordrawable-seekable/api/res-1.0.0-beta02.txt b/vectordrawable/vectordrawable-seekable/api/res-1.0.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/vectordrawable/vectordrawable-seekable/api/res-1.0.0-beta02.txt
diff --git a/vectordrawable/vectordrawable-seekable/api/restricted_1.0.0-beta02.txt b/vectordrawable/vectordrawable-seekable/api/restricted_1.0.0-beta02.txt
new file mode 100644
index 0000000..dab885b
--- /dev/null
+++ b/vectordrawable/vectordrawable-seekable/api/restricted_1.0.0-beta02.txt
@@ -0,0 +1,35 @@
+// Signature format: 4.0
+package androidx.vectordrawable.graphics.drawable {
+
+ public class SeekableAnimatedVectorDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Animatable {
+ method public void clearAnimationCallbacks();
+ method public static androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable? create(android.content.Context, @DrawableRes int);
+ method public static androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable createFromXmlInner(android.content.res.Resources, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.content.res.Resources.Theme?) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+ method public void draw(android.graphics.Canvas);
+ method @IntRange(from=0) public long getCurrentPlayTime();
+ method @Deprecated public int getOpacity();
+ method public long getTotalDuration();
+ method public boolean isPaused();
+ method public boolean isRunning();
+ method public void pause();
+ method public void registerAnimationCallback(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable.AnimationCallback);
+ method public void resume();
+ method public void setAlpha(@IntRange(from=0, to=255) int);
+ method public void setColorFilter(android.graphics.ColorFilter?);
+ method public void setCurrentPlayTime(@IntRange(from=0) long);
+ method public void start();
+ method public void stop();
+ method public boolean unregisterAnimationCallback(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable.AnimationCallback);
+ }
+
+ public abstract static class SeekableAnimatedVectorDrawable.AnimationCallback {
+ ctor public SeekableAnimatedVectorDrawable.AnimationCallback();
+ method public void onAnimationEnd(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable);
+ method public void onAnimationPause(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable);
+ method public void onAnimationResume(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable);
+ method public void onAnimationStart(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable);
+ method public void onAnimationUpdate(androidx.vectordrawable.graphics.drawable.SeekableAnimatedVectorDrawable);
+ }
+
+}
+
diff --git a/vectordrawable/vectordrawable/api/1.2.0-beta02.txt b/vectordrawable/vectordrawable/api/1.2.0-beta02.txt
new file mode 100644
index 0000000..5a6c00b
--- /dev/null
+++ b/vectordrawable/vectordrawable/api/1.2.0-beta02.txt
@@ -0,0 +1,15 @@
+// Signature format: 4.0
+package androidx.vectordrawable.graphics.drawable {
+
+ public class VectorDrawableCompat extends android.graphics.drawable.Drawable {
+ method public static androidx.vectordrawable.graphics.drawable.VectorDrawableCompat? create(android.content.res.Resources, @DrawableRes int, android.content.res.Resources.Theme?);
+ method public static androidx.vectordrawable.graphics.drawable.VectorDrawableCompat! createFromXmlInner(android.content.res.Resources!, org.xmlpull.v1.XmlPullParser!, android.util.AttributeSet!, android.content.res.Resources.Theme!) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+ method public void draw(android.graphics.Canvas!);
+ method public int getOpacity();
+ method public void setAlpha(int);
+ method public void setColorFilter(android.graphics.ColorFilter!);
+ method public void setColorFilter(int, android.graphics.PorterDuff.Mode!);
+ }
+
+}
+
diff --git a/vectordrawable/vectordrawable/api/public_plus_experimental_1.2.0-beta02.txt b/vectordrawable/vectordrawable/api/public_plus_experimental_1.2.0-beta02.txt
new file mode 100644
index 0000000..5a6c00b
--- /dev/null
+++ b/vectordrawable/vectordrawable/api/public_plus_experimental_1.2.0-beta02.txt
@@ -0,0 +1,15 @@
+// Signature format: 4.0
+package androidx.vectordrawable.graphics.drawable {
+
+ public class VectorDrawableCompat extends android.graphics.drawable.Drawable {
+ method public static androidx.vectordrawable.graphics.drawable.VectorDrawableCompat? create(android.content.res.Resources, @DrawableRes int, android.content.res.Resources.Theme?);
+ method public static androidx.vectordrawable.graphics.drawable.VectorDrawableCompat! createFromXmlInner(android.content.res.Resources!, org.xmlpull.v1.XmlPullParser!, android.util.AttributeSet!, android.content.res.Resources.Theme!) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+ method public void draw(android.graphics.Canvas!);
+ method public int getOpacity();
+ method public void setAlpha(int);
+ method public void setColorFilter(android.graphics.ColorFilter!);
+ method public void setColorFilter(int, android.graphics.PorterDuff.Mode!);
+ }
+
+}
+
diff --git a/vectordrawable/vectordrawable/api/res-1.2.0-beta02.txt b/vectordrawable/vectordrawable/api/res-1.2.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/vectordrawable/vectordrawable/api/res-1.2.0-beta02.txt
diff --git a/vectordrawable/vectordrawable/api/restricted_1.2.0-beta02.txt b/vectordrawable/vectordrawable/api/restricted_1.2.0-beta02.txt
new file mode 100644
index 0000000..30d66c1
--- /dev/null
+++ b/vectordrawable/vectordrawable/api/restricted_1.2.0-beta02.txt
@@ -0,0 +1,16 @@
+// Signature format: 4.0
+package androidx.vectordrawable.graphics.drawable {
+
+ public class VectorDrawableCompat extends android.graphics.drawable.Drawable implements androidx.core.graphics.drawable.TintAwareDrawable {
+ method public static androidx.vectordrawable.graphics.drawable.VectorDrawableCompat? create(android.content.res.Resources, @DrawableRes int, android.content.res.Resources.Theme?);
+ method public static androidx.vectordrawable.graphics.drawable.VectorDrawableCompat! createFromXmlInner(android.content.res.Resources!, org.xmlpull.v1.XmlPullParser!, android.util.AttributeSet!, android.content.res.Resources.Theme!) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
+ method public void draw(android.graphics.Canvas!);
+ method public int getOpacity();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public float getPixelSize();
+ method public void setAlpha(int);
+ method public void setColorFilter(android.graphics.ColorFilter!);
+ method public void setColorFilter(int, android.graphics.PorterDuff.Mode!);
+ }
+
+}
+
diff --git a/wear/compose/compose-foundation/src/androidAndroidTest/kotlin/androidx/wear/compose/foundation/CurvedPaddingTest.kt b/wear/compose/compose-foundation/src/androidAndroidTest/kotlin/androidx/wear/compose/foundation/CurvedPaddingTest.kt
new file mode 100644
index 0000000..44e155e
--- /dev/null
+++ b/wear/compose/compose-foundation/src/androidAndroidTest/kotlin/androidx/wear/compose/foundation/CurvedPaddingTest.kt
@@ -0,0 +1,140 @@
+/*
+ * Copyright 2022 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.
+ */
+
+package androidx.wear.compose.foundation
+
+import androidx.compose.ui.platform.LocalDensity
+import androidx.compose.ui.test.junit4.createComposeRule
+import androidx.compose.ui.unit.Dp
+import androidx.compose.ui.unit.dp
+import org.junit.Rule
+import org.junit.Test
+
+class CurvedPaddingTest {
+
+ @get:Rule
+ val rule = createComposeRule()
+
+ @Test
+ fun padding_all_works() =
+ check_padding_result(
+ 3.dp,
+ 3.dp,
+ 3.dp,
+ 3.dp,
+ CurvedModifier.padding(3.dp)
+ )
+
+ @Test
+ fun padding_angular_and_radial_works() =
+ check_padding_result(
+ outerPadding = 4.dp,
+ innerPadding = 4.dp,
+ beforePadding = 6.dp,
+ afterPadding = 6.dp,
+ CurvedModifier.padding(radial = 4.dp, angular = 6.dp)
+ )
+
+ @Test
+ fun basic_padding_works() =
+ check_padding_result(
+ outerPadding = 3.dp,
+ innerPadding = 4.dp,
+ beforePadding = 5.dp,
+ afterPadding = 6.dp,
+ CurvedModifier.padding(
+ outer = 3.dp,
+ inner = 4.dp,
+ before = 5.dp,
+ after = 6.dp
+ )
+ )
+
+ @Test
+ fun nested_padding_works() =
+ check_padding_result(
+ 11.dp,
+ 14.dp,
+ 18.dp,
+ 25.dp,
+ CurvedModifier
+ .padding(3.dp, 4.dp, 5.dp, 6.dp)
+ .padding(8.dp, 10.dp, 13.dp, 19.dp)
+ )
+
+ private fun check_padding_result(
+ outerPadding: Dp,
+ innerPadding: Dp,
+ beforePadding: Dp,
+ afterPadding: Dp,
+ modifier: CurvedModifier
+ ) {
+
+ val paddedCapturedInfo = CapturedInfo()
+ val componentCapturedInfo = CapturedInfo()
+
+ val componentThickness = 10.dp
+ val componentSweepDegrees = 90f
+
+ var outerPaddingPx = 0f
+ var innerPaddingPx = 0f
+ var beforePaddingPx = 0f
+ var afterPaddingPx = 0f
+ var componentThicknessPx = 0f
+
+ rule.setContent {
+ with(LocalDensity.current) {
+ outerPaddingPx = outerPadding.toPx()
+ innerPaddingPx = innerPadding.toPx()
+ beforePaddingPx = beforePadding.toPx()
+ afterPaddingPx = afterPadding.toPx()
+ componentThicknessPx = componentThickness.toPx()
+ }
+ CurvedLayout {
+ curvedRow(modifier = CurvedModifier
+ .spy(paddedCapturedInfo)
+ .then(modifier)
+ .spy(componentCapturedInfo)
+ .size(
+ sweepDegrees = componentSweepDegrees,
+ thickness = componentThickness
+ )
+ ) { }
+ }
+ }
+
+ rule.runOnIdle {
+ val measureRadius = componentCapturedInfo.lastLayoutInfo!!.measureRadius
+ val beforePaddingAsAngle = beforePaddingPx / measureRadius
+ val afterPaddingAsAngle = afterPaddingPx / measureRadius
+
+ // Check sizes.
+ val paddingAsAngle = (beforePaddingAsAngle + afterPaddingAsAngle).toDegrees()
+ paddedCapturedInfo.checkDimensions(
+ componentSweepDegrees + paddingAsAngle,
+ componentThicknessPx + outerPaddingPx + innerPaddingPx
+ )
+ componentCapturedInfo.checkDimensions(componentSweepDegrees, componentThicknessPx)
+
+ // Check its position.
+ componentCapturedInfo.checkPositionRelativeTo(
+ paddedCapturedInfo,
+ expectedAngularPositionDegrees = beforePaddingAsAngle,
+ expectedRadialPositionPx = outerPaddingPx,
+ )
+ }
+ }
+}
diff --git a/wear/compose/compose-foundation/src/androidAndroidTest/kotlin/androidx/wear/compose/foundation/SpyModifier.kt b/wear/compose/compose-foundation/src/androidAndroidTest/kotlin/androidx/wear/compose/foundation/SpyModifier.kt
index 45360e3..ce5b3a8 100644
--- a/wear/compose/compose-foundation/src/androidAndroidTest/kotlin/androidx/wear/compose/foundation/SpyModifier.kt
+++ b/wear/compose/compose-foundation/src/androidAndroidTest/kotlin/androidx/wear/compose/foundation/SpyModifier.kt
@@ -112,6 +112,23 @@
)
}
+internal fun CapturedInfo.checkPositionRelativeTo(
+ target: CapturedInfo,
+ expectedAngularPositionDegrees: Float,
+ expectedRadialPositionPx: Float
+) {
+ Assert.assertEquals(
+ expectedAngularPositionDegrees,
+ lastLayoutInfo!!.startAngleRadians - target.lastLayoutInfo!!.startAngleRadians,
+ FINE_FLOAT_TOLERANCE
+ )
+ Assert.assertEquals(
+ expectedRadialPositionPx,
+ target.lastLayoutInfo!!.outerRadius - lastLayoutInfo!!.outerRadius,
+ FINE_FLOAT_TOLERANCE
+ )
+}
+
internal fun CurvedModifier.spy(capturedInfo: CapturedInfo) =
this.then { wrapped -> SpyCurvedChildWrapper(capturedInfo, wrapped) }
diff --git a/wear/compose/compose-foundation/src/commonMain/kotlin/androidx/wear/compose/foundation/CurvedPadding.kt b/wear/compose/compose-foundation/src/commonMain/kotlin/androidx/wear/compose/foundation/CurvedPadding.kt
index 43be9c2..44024d7 100644
--- a/wear/compose/compose-foundation/src/commonMain/kotlin/androidx/wear/compose/foundation/CurvedPadding.kt
+++ b/wear/compose/compose-foundation/src/commonMain/kotlin/androidx/wear/compose/foundation/CurvedPadding.kt
@@ -207,7 +207,7 @@
partialLayoutInfo.sweepRadians + angularPadding,
partialLayoutInfo.outerRadius + outerPx,
partialLayoutInfo.thickness + innerPx + outerPx,
- partialLayoutInfo.measureRadius + outerPx
+ partialLayoutInfo.measureRadius
)
}
diff --git a/wear/compose/compose-material/samples/src/main/java/androidx/wear/compose/material/samples/ChipSample.kt b/wear/compose/compose-material/samples/src/main/java/androidx/wear/compose/material/samples/ChipSample.kt
index ca582a7..290ce62 100644
--- a/wear/compose/compose-material/samples/src/main/java/androidx/wear/compose/material/samples/ChipSample.kt
+++ b/wear/compose/compose-material/samples/src/main/java/androidx/wear/compose/material/samples/ChipSample.kt
@@ -34,12 +34,39 @@
@Sampled
@Composable
+fun ChipWithIconAndLabel() {
+ Chip(
+ onClick = { /* Do something */ },
+ enabled = true,
+ // When we have only primary label we can have up to 2 lines of text
+ label = {
+ Text(
+ text = "Main label can span over 2 lines",
+ maxLines = 2, overflow = TextOverflow.Ellipsis
+ )
+ },
+ icon = {
+ Icon(
+ painter = painterResource(id = R.drawable.ic_airplanemode_active_24px),
+ contentDescription = "airplane",
+ modifier = Modifier.size(ChipDefaults.IconSize)
+ .wrapContentSize(align = Alignment.Center),
+ )
+ }
+ )
+}
+
+@Sampled
+@Composable
fun ChipWithIconAndLabels() {
Chip(
onClick = { /* Do something */ },
enabled = true,
- label = { Text(text = "Main label") },
- secondaryLabel = { Text(text = "secondary label") },
+ // When we have both label and secondary label present limit both to 1 line of text
+ label = { Text(text = "Main label", maxLines = 1, overflow = TextOverflow.Ellipsis) },
+ secondaryLabel = {
+ Text(text = "secondary label", maxLines = 1, overflow = TextOverflow.Ellipsis)
+ },
icon = {
Icon(
painter = painterResource(id = R.drawable.ic_airplanemode_active_24px),
@@ -57,6 +84,7 @@
CompactChip(
onClick = { /* Do something */ },
enabled = true,
+ // CompactChip label should be no more than 1 line of text
label = {
Text("Single line label", maxLines = 1, overflow = TextOverflow.Ellipsis)
},
@@ -76,6 +104,7 @@
CompactChip(
onClick = { /* Do something */ },
enabled = true,
+ // CompactChip label should be no more than 1 line of text
label = {
Text(
text = "Single line label",
diff --git a/wear/compose/compose-material/samples/src/main/java/androidx/wear/compose/material/samples/ToggleChipSample.kt b/wear/compose/compose-material/samples/src/main/java/androidx/wear/compose/material/samples/ToggleChipSample.kt
index 7ee5288..b5d38f4 100644
--- a/wear/compose/compose-material/samples/src/main/java/androidx/wear/compose/material/samples/ToggleChipSample.kt
+++ b/wear/compose/compose-material/samples/src/main/java/androidx/wear/compose/material/samples/ToggleChipSample.kt
@@ -39,6 +39,7 @@
@Composable
fun ToggleChipWithIcon() {
var checked by remember { mutableStateOf(true) }
+ // When we have both label and secondary label present limit both to 1 line of text
ToggleChip(
label = {
Text("SwitchIcon", maxLines = 1, overflow = TextOverflow.Ellipsis)
@@ -75,8 +76,11 @@
@Composable
fun SplitToggleChipWithCheckbox() {
var checked by remember { mutableStateOf(true) }
+ // When we have no secondary label we can have up to 2 lines of text
SplitToggleChip(
- label = { Text("Split with CheckboxIcon") },
+ label = {
+ Text("Split with CheckboxIcon", maxLines = 2, overflow = TextOverflow.Ellipsis)
+ },
checked = checked,
toggleControl = {
Icon(
diff --git a/wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/Chip.kt b/wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/Chip.kt
index ba24155..285c2a0 100644
--- a/wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/Chip.kt
+++ b/wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/Chip.kt
@@ -158,6 +158,9 @@
*
* Chips can be enabled or disabled. A disabled chip will not respond to click events.
*
+ * Example of a [Chip] with icon and a label only with longer text:
+ * @sample androidx.wear.compose.material.samples.ChipWithIconAndLabel
+ *
* Example of a [Chip] with icon, label and secondary label:
* @sample androidx.wear.compose.material.samples.ChipWithIconAndLabels
*
diff --git a/wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/Picker.kt b/wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/Picker.kt
index 1b79bdb..80021bf 100644
--- a/wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/Picker.kt
+++ b/wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/Picker.kt
@@ -221,7 +221,7 @@
/**
* Index of the item selected (i.e., at the center)
*/
- val selectedOption: Int
+ public val selectedOption: Int
get() = (scalingLazyListState.centerItemIndex + optionsOffset) % numberOfOptions
/**
@@ -233,7 +233,7 @@
*
* @param index The index of the option to scroll to.
*/
- suspend fun scrollToOption(index: Int) {
+ public suspend fun scrollToOption(index: Int) {
val itemIndex =
if (!repeatItems) {
index
@@ -244,7 +244,7 @@
scalingLazyListState.scrollToItem(itemIndex, 0)
}
- companion object {
+ public companion object {
/**
* The default [Saver] implementation for [PickerState].
*/
@@ -267,18 +267,18 @@
)
}
- override suspend fun scroll(
+ public override suspend fun scroll(
scrollPriority: MutatePriority,
block: suspend ScrollScope.() -> Unit
) {
scalingLazyListState.scroll(scrollPriority, block)
}
- override fun dispatchRawDelta(delta: Float): Float {
+ public override fun dispatchRawDelta(delta: Float): Float {
return scalingLazyListState.dispatchRawDelta(delta)
}
- override val isScrollInProgress: Boolean
+ public override val isScrollInProgress: Boolean
get() = scalingLazyListState.isScrollInProgress
private fun verifyNumberOfOptions(numberOfOptions: Int) {
@@ -298,7 +298,7 @@
* Scaling params are used to determine when items start to be scaled down and alpha applied,
* and how much. For details, see [ScalingParams]
*/
- fun scalingParams(
+ public fun scalingParams(
edgeScale: Float = 0.45f,
edgeAlpha: Float = 1.0f,
minElementHeight: Float = 0.0f,
@@ -339,7 +339,11 @@
}
}
- val DefaultGradientRatio = 0.33f
+ /**
+ * Default Picker gradient ratio - the proportion of the Picker height allocated to each of the
+ * of the top and bottom gradients.
+ */
+ public val DefaultGradientRatio = 0.33f
}
/**
@@ -349,7 +353,7 @@
/**
* Index of the item selected (i.e., at the center)
*/
- val selectedOption: Int
+ public val selectedOption: Int
}
@Stable
diff --git a/wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/ScalingLazyListState.kt b/wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/ScalingLazyListState.kt
index 6ba18f5..453194b 100644
--- a/wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/ScalingLazyListState.kt
+++ b/wear/compose/compose-material/src/commonMain/kotlin/androidx/wear/compose/material/ScalingLazyListState.kt
@@ -71,6 +71,13 @@
*
* @param initialCenterItemScrollOffset the initial value for
* [ScalingLazyListState.centerItemScrollOffset]
+ *
+ * Note that it is not always possible for the values provided by [initialCenterItemIndex] and
+ * [initialCenterItemScrollOffset] to be honored, e.g. If [initialCenterItemIndex] is set to a value
+ * larger than the number of items initially in the list, or to an index that can not be placed in
+ * the middle of the screen due to the contentPadding or autoCentering properties provided to the
+ * [ScalingLazyColumn]. After the [ScalingLazyColumn] is initially drawn the actual values for the
+ * [centerItemIndex] and [centerItemScrollOffset] can be read from the state.
*/
@Stable
class ScalingLazyListState constructor(
diff --git a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/MaterialDemos.kt b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/MaterialDemos.kt
index a709b58..5221a5a 100644
--- a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/MaterialDemos.kt
+++ b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/MaterialDemos.kt
@@ -28,6 +28,7 @@
import androidx.wear.compose.material.samples.AppCardWithIcon
import androidx.wear.compose.material.samples.ButtonWithIcon
import androidx.wear.compose.material.samples.ButtonWithText
+import androidx.wear.compose.material.samples.ChipWithIconAndLabel
import androidx.wear.compose.material.samples.ChipWithIconAndLabels
import androidx.wear.compose.material.samples.CircularProgressIndicatorFullscreenWithGap
import androidx.wear.compose.material.samples.CircularProgressIndicatorWithAnimation
@@ -260,6 +261,11 @@
DemoCategory(
"Samples",
listOf(
+ ComposableDemo("Chip With Icon And long Label") {
+ Centralize(Modifier.padding(horizontal = 10.dp)) {
+ ChipWithIconAndLabel()
+ }
+ },
ComposableDemo("Chip With Icon And Labels") {
Centralize(Modifier.padding(horizontal = 10.dp)) {
ChipWithIconAndLabels()
diff --git a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/PickerDemo.kt b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/PickerDemo.kt
index 8a0ad6b..be31ccb 100644
--- a/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/PickerDemo.kt
+++ b/wear/compose/integration-tests/demos/src/main/java/androidx/wear/compose/integration/demos/PickerDemo.kt
@@ -221,7 +221,7 @@
initiallySelectedOption = 6
),
focusRequester = focusRequester1,
- modifier = Modifier.size(40.dp, 100.dp),
+ modifier = Modifier.size(64.dp, 100.dp),
readOnlyLabel = { LabelText("Hour") }
) { hour: Int ->
TimePiece(
diff --git a/wear/compose/integration-tests/macrobenchmark-target/src/main/AndroidManifest.xml b/wear/compose/integration-tests/macrobenchmark-target/src/main/AndroidManifest.xml
index dac72dd..e7975fc 100644
--- a/wear/compose/integration-tests/macrobenchmark-target/src/main/AndroidManifest.xml
+++ b/wear/compose/integration-tests/macrobenchmark-target/src/main/AndroidManifest.xml
@@ -50,10 +50,6 @@
android:theme="@style/AppTheme"
android:exported="true">
<intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- <intent-filter>
<action android:name=
"androidx.wear.compose.integration.macrobenchmark.target.SWIPE_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
@@ -76,6 +72,10 @@
android:theme="@style/AppTheme"
android:exported="true">
<intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ <intent-filter>
<action android:name=
"androidx.wear.compose.integration.macrobenchmark.target.BASELINE_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
diff --git a/wear/compose/integration-tests/macrobenchmark-target/src/main/java/androidx/wear/compose/integration/macrobenchmark/target/BaselineActivity.kt b/wear/compose/integration-tests/macrobenchmark-target/src/main/java/androidx/wear/compose/integration/macrobenchmark/target/BaselineActivity.kt
index 756bf60..84a58aa 100644
--- a/wear/compose/integration-tests/macrobenchmark-target/src/main/java/androidx/wear/compose/integration/macrobenchmark/target/BaselineActivity.kt
+++ b/wear/compose/integration-tests/macrobenchmark-target/src/main/java/androidx/wear/compose/integration/macrobenchmark/target/BaselineActivity.kt
@@ -19,11 +19,15 @@
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
+import androidx.compose.foundation.ScrollState
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.rememberScrollState
@@ -83,6 +87,14 @@
private val ALERT_DIALOG = "alert-dialog"
private val CONFIRMATION_DIALOG = "confirmation-dialog"
+private val BUTTONS = "buttons"
+private val CARDS = "cards"
+private val CHIPS = "chips"
+private val DIALOGS = "dialogs"
+private val PICKER = "picker"
+private val PROGRESSINDICATORS = "progressindicators"
+private val SLIDER = "slider"
+private val START_INDEX = "start-index"
private val STEPPER = "stepper"
private val SWIPE_DISMISS = "swipe-dismiss"
private val PROGRESS_INDICATOR = "progress-indicator"
@@ -101,39 +113,18 @@
Scaffold(
timeText = { TimeText() },
positionIndicator = { PositionIndicator(scrollState = scrollState) },
- vignette = {
- Vignette(vignettePosition = VignettePosition.TopAndBottom)
- },
+ vignette = { Vignette(vignettePosition = VignettePosition.TopAndBottom) },
) {
SwipeDismissableNavHost(
navController = navController,
- startDestination = "start",
+ startDestination = START_INDEX,
modifier = Modifier
.background(MaterialTheme.colors.background)
.semantics { contentDescription = SWIPE_DISMISS }
) {
- composable("start") {
- Box {
- CurvedTexts()
- Column(
- modifier = Modifier
- .fillMaxSize()
- .verticalScroll(state = scrollState)
- .padding(vertical = 16.dp)
- .semantics { contentDescription = CONTENT_DESCRIPTION },
- verticalArrangement = Arrangement.Center,
- horizontalAlignment = Alignment.CenterHorizontally
- ) {
- Dialogs(navController)
- Steppers(navController)
- ProgressIndicators(navController)
- Buttons()
- Cards()
- Chips()
- Sliders()
- Pickers()
- }
- }
+ composable(START_INDEX) { StartIndex(navController, scrollState) }
+ composable(DIALOGS) {
+ Dialogs(navController)
}
composable(ALERT_DIALOG) {
Alert(
@@ -148,17 +139,11 @@
content = { Text("Confirmation") },
)
}
- composable(STEPPER) {
- var value by remember { mutableStateOf(2f) }
- Stepper(
- value = value,
- onValueChange = { value = it },
- increaseIcon = { Icon(StepperDefaults.Increase, "Increase") },
- decreaseIcon = { Icon(StepperDefaults.Decrease, "Decrease") },
- valueRange = 1f..4f,
- steps = 7
- ) { Text("Value: $value") }
- }
+ composable(BUTTONS) { Buttons() }
+ composable(CARDS) { Cards() }
+ composable(CHIPS) { Chips() }
+ composable(PICKER) { Picker(scrollState) }
+ composable(PROGRESSINDICATORS) { ProgressIndicators(navController) }
composable(PROGRESS_INDICATOR) {
CircularProgressIndicator(
modifier = Modifier.fillMaxSize(),
@@ -170,11 +155,14 @@
composable(PROGRESS_INDICATOR_INDETERMINATE) {
Column(
verticalArrangement = Arrangement.Center,
- horizontalAlignment = Alignment.CenterHorizontally
+ horizontalAlignment = Alignment.CenterHorizontally,
+ modifier = Modifier.fillMaxSize(),
) {
CircularProgressIndicator()
}
}
+ composable(SLIDER) { Slider() }
+ composable(STEPPER) { Stepper() }
}
}
}
@@ -183,49 +171,234 @@
}
@Composable
+fun StartIndex(navController: NavHostController, scrollState: ScrollState) {
+ Box {
+ CurvedTexts()
+ Column(
+ modifier = Modifier
+ .fillMaxSize()
+ .verticalScroll(state = scrollState)
+ .padding(vertical = 32.dp)
+ .semantics { contentDescription = CONTENT_DESCRIPTION },
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
+ Row(horizontalArrangement = Arrangement.spacedBy(4.dp)) {
+ Widget(navController, BUTTONS, "Btn", BUTTONS)
+ Widget(navController, CARDS, "Card", CARDS)
+ }
+ Spacer(modifier = Modifier.height(4.dp))
+ Row(horizontalArrangement = Arrangement.spacedBy(4.dp)) {
+ Widget(navController, CHIPS, "Chip", CHIPS)
+ Widget(navController, DIALOGS, "Dlg", DIALOGS)
+ Widget(navController, PICKER, "Pick", PICKER)
+ }
+ Spacer(modifier = Modifier.height(4.dp))
+ Row(horizontalArrangement = Arrangement.spacedBy(4.dp)) {
+ Widget(navController, PROGRESSINDICATORS,
+ "Prog", PROGRESSINDICATORS)
+ Widget(navController, SLIDER, "Sldr", SLIDER)
+ Widget(navController, STEPPER, "Stpr", STEPPER)
+ }
+ }
+ }
+}
+
+@Composable
+fun Dialogs(navController: NavHostController) {
+ Column(
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
+ ListHeader { Text("Dialogs") }
+ CompactChip(
+ onClick = { navController.navigate(ALERT_DIALOG) },
+ colors = ChipDefaults.primaryChipColors(),
+ label = { Text(ALERT_DIALOG) },
+ modifier = Modifier.semantics {
+ contentDescription = ALERT_DIALOG
+ },
+ )
+ Spacer(Modifier.height(4.dp))
+ CompactChip(
+ onClick = { navController.navigate(CONFIRMATION_DIALOG) },
+ colors = ChipDefaults.primaryChipColors(),
+ label = { Text(CONFIRMATION_DIALOG) },
+ modifier = Modifier.semantics {
+ contentDescription = CONFIRMATION_DIALOG
+ },
+ )
+ }
+}
+
+@Composable
fun Buttons() {
- ListHeader { Text("Buttons") }
- Button(onClick = {}) { Text("Button") }
- CompactButton(onClick = {}) { Text("CompactButton") }
- ToggleButton(checked = true, onCheckedChange = {}) { Text("ToggleButton") }
+ Column(
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
+ ListHeader { Text("Buttons") }
+ Button(onClick = {}) { Text("Button") }
+ CompactButton(onClick = {}) { Text("CompactButton") }
+ ToggleButton(
+ checked = true,
+ onCheckedChange = {}) { Text("ToggleButton") }
+ }
}
@Composable
fun Cards() {
- ListHeader { Text("Cards") }
- Card(onClick = {}) { Text("Card") }
- AppCard(onClick = {}, appName = {}, time = {}, title = {}) { Text("AppCard") }
- TitleCard(onClick = {}, title = {}) { Text("TitleCard") }
+ Column(
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
+ ListHeader { Text("Cards") }
+ Card(onClick = {}) { Text("Card") }
+ AppCard(onClick = {},
+ appName = { Text("AppName") }, title = {},
+ time = { Text("02:34") }) {
+ Text("AppCard")
+ }
+ TitleCard(onClick = {}, title = { Text("Title") }) {
+ Text("TitleCard")
+ }
+ }
}
@Composable
fun Chips() {
- ListHeader { Text("Chips") }
- Chip(onClick = {}, colors = ChipDefaults.primaryChipColors()) { Text("Chip") }
- CompactChip(onClick = {}, label = { Text("CompactChip") })
- ToggleChip(
- checked = true,
- onCheckedChange = {},
- label = { Text("ToggleChip") },
- toggleControl = {
- Icon(
- imageVector = ToggleChipDefaults.radioIcon(checked = false),
- contentDescription = null
- )
- }
- )
- SplitToggleChip(
- checked = true,
- onCheckedChange = {},
- label = { Text("SplitToggleChip") },
- onClick = {},
- toggleControl = {
- Icon(
- imageVector = ToggleChipDefaults.radioIcon(checked = true),
- contentDescription = null
- )
- }
- )
+ Column(
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
+ ListHeader { Text("Chips") }
+ Chip(
+ onClick = {},
+ colors = ChipDefaults.primaryChipColors()
+ ) { Text("Chip") }
+ CompactChip(onClick = {}, label = { Text("CompactChip") })
+ ToggleChip(
+ checked = true,
+ onCheckedChange = {},
+ label = { Text("ToggleChip") },
+ toggleControl = {
+ Icon(
+ imageVector =
+ ToggleChipDefaults.radioIcon(checked = false),
+ contentDescription = null
+ )
+ }
+ )
+ SplitToggleChip(
+ checked = true,
+ onCheckedChange = {},
+ label = { Text("SplitToggleChip") },
+ onClick = {},
+ toggleControl = {
+ Icon(
+ imageVector =
+ ToggleChipDefaults.radioIcon(checked = true),
+ contentDescription = null
+ )
+ }
+ )
+ }
+}
+
+@Composable
+fun Picker(scrollState: ScrollState) {
+ Column(
+ modifier = Modifier
+ .fillMaxSize()
+ .verticalScroll(state = scrollState)
+ .padding(vertical = 16.dp)
+ .semantics { contentDescription = CONTENT_DESCRIPTION },
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
+ ListHeader { Text("Pickers") }
+ val items = listOf("One", "Two", "Three", "Four", "Five")
+ Picker(
+ state = rememberPickerState(items.size),
+ option = { Text(items[it]) },
+ modifier = Modifier.size(100.dp, 100.dp),
+ )
+ }
+}
+
+@Composable
+fun ProgressIndicators(navController: NavHostController) {
+ Column(
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
+ ListHeader { Text("Progress Indicators") }
+ // Test both circular progress indicator with gap and spinning indicator.
+ CompactChip(
+ onClick = { navController.navigate(PROGRESS_INDICATOR) },
+ colors = ChipDefaults.primaryChipColors(),
+ label = { Text(PROGRESS_INDICATOR) },
+ modifier = Modifier.semantics {
+ contentDescription = PROGRESS_INDICATOR
+ },
+ )
+ Spacer(Modifier.height(4.dp))
+ CompactChip(
+ onClick = {
+ navController.navigate(
+ PROGRESS_INDICATOR_INDETERMINATE
+ )
+ },
+ colors = ChipDefaults.primaryChipColors(),
+ label = { Text(PROGRESS_INDICATOR_INDETERMINATE) },
+ modifier = Modifier.semantics {
+ contentDescription = PROGRESS_INDICATOR_INDETERMINATE
+ },
+ )
+ }
+}
+
+@Composable
+fun Slider() {
+ Column(
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
+ ListHeader { Text("Sliders") }
+ var value by remember { mutableStateOf(4.5f) }
+ InlineSlider(
+ value = value,
+ onValueChange = { value = it },
+ increaseIcon = {
+ Icon(
+ InlineSliderDefaults.Increase,
+ "Increase"
+ )
+ },
+ decreaseIcon = {
+ Icon(
+ InlineSliderDefaults.Decrease,
+ "Decrease"
+ )
+ },
+ valueRange = 3f..6f,
+ steps = 5,
+ segmented = false
+ )
+ }
+}
+
+@Composable
+fun Stepper() {
+ var value by remember { mutableStateOf(2f) }
+ Stepper(
+ value = value,
+ onValueChange = { value = it },
+ increaseIcon = { Icon(StepperDefaults.Increase, "Increase") },
+ decreaseIcon = { Icon(StepperDefaults.Decrease, "Decrease") },
+ valueRange = 1f..4f,
+ steps = 7
+ ) { Text("Value: $value") }
}
@Composable
@@ -248,73 +421,11 @@
}
@Composable
-fun Dialogs(navController: NavHostController) {
- ListHeader { Text("Dialogs") }
- CompactChip(
- onClick = { navController.navigate(ALERT_DIALOG) },
- colors = ChipDefaults.primaryChipColors(),
- label = { Text(ALERT_DIALOG) },
- modifier = Modifier.semantics { contentDescription = ALERT_DIALOG },
- )
- CompactChip(
- onClick = { navController.navigate(CONFIRMATION_DIALOG) },
- colors = ChipDefaults.primaryChipColors(),
- label = { Text(CONFIRMATION_DIALOG) },
- modifier = Modifier.semantics { contentDescription = CONFIRMATION_DIALOG },
- )
-}
-
-@Composable
-fun Pickers() {
- ListHeader { Text("Pickers") }
- val items = listOf("One", "Two", "Three", "Four", "Five")
- Picker(
- state = rememberPickerState(items.size),
- option = { Text(items[it]) },
- modifier = Modifier.size(100.dp, 100.dp),
- )
-}
-
-@Composable
-fun ProgressIndicators(navController: NavHostController) {
- ListHeader { Text("Progress Indicators") }
- // Test both circular progress indicator with gap and spinning indicator.
- CompactChip(
- onClick = { navController.navigate(PROGRESS_INDICATOR) },
- colors = ChipDefaults.primaryChipColors(),
- label = { Text(PROGRESS_INDICATOR) },
- modifier = Modifier.semantics { contentDescription = PROGRESS_INDICATOR },
- )
- CompactChip(
- onClick = { navController.navigate(PROGRESS_INDICATOR_INDETERMINATE) },
- colors = ChipDefaults.primaryChipColors(),
- label = { Text(PROGRESS_INDICATOR_INDETERMINATE) },
- modifier = Modifier.semantics { contentDescription = PROGRESS_INDICATOR_INDETERMINATE },
- )
-}
-
-@Composable
-fun Sliders() {
- ListHeader { Text("Sliders") }
- var value by remember { mutableStateOf(4.5f) }
- InlineSlider(
- value = value,
- onValueChange = { value = it },
- increaseIcon = { Icon(InlineSliderDefaults.Increase, "Increase") },
- decreaseIcon = { Icon(InlineSliderDefaults.Decrease, "Decrease") },
- valueRange = 3f..6f,
- steps = 5,
- segmented = false
- )
-}
-
-@Composable
-fun Steppers(navController: NavHostController) {
- ListHeader { Text("Steppers") }
- CompactChip(
- onClick = { navController.navigate(STEPPER) },
- colors = ChipDefaults.primaryChipColors(),
- label = { Text(STEPPER) },
- modifier = Modifier.semantics { contentDescription = STEPPER },
- )
+fun Widget(navController: NavHostController, destination: String, text: String, desc: String) {
+ Button(
+ onClick = { navController.navigate(destination) },
+ modifier = Modifier.semantics { contentDescription = desc }
+ ) {
+ Text(text)
+ }
}
diff --git a/wear/compose/integration-tests/macrobenchmark/src/androidTest/java/androidx/wear/compose/integration/macrobenchmark/BaselineProfile.kt b/wear/compose/integration-tests/macrobenchmark/src/androidTest/java/androidx/wear/compose/integration/macrobenchmark/BaselineProfile.kt
index 74d435c..9114d23 100644
--- a/wear/compose/integration-tests/macrobenchmark/src/androidTest/java/androidx/wear/compose/integration/macrobenchmark/BaselineProfile.kt
+++ b/wear/compose/integration-tests/macrobenchmark/src/androidTest/java/androidx/wear/compose/integration/macrobenchmark/BaselineProfile.kt
@@ -17,14 +17,15 @@
package androidx.wear.compose.integration.macrobenchmark.test
import android.content.Intent
-import android.graphics.Point
import androidx.benchmark.macro.ExperimentalBaselineProfilesApi
import androidx.benchmark.macro.junit4.BaselineProfileRule
import androidx.test.filters.LargeTest
import androidx.test.filters.SdkSuppress
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.By
+import androidx.test.uiautomator.BySelector
import androidx.test.uiautomator.UiDevice
+import androidx.test.uiautomator.Until
import androidx.testutils.createCompilationParams
import org.junit.Before
import org.junit.Rule
@@ -66,6 +67,13 @@
private lateinit var device: UiDevice
private val ALERT_DIALOG = "alert-dialog"
private val CONFIRMATION_DIALOG = "confirmation-dialog"
+ private val BUTTONS = "buttons"
+ private val CARDS = "cards"
+ private val CHIPS = "chips"
+ private val DIALOGS = "dialogs"
+ private val PICKER = "picker"
+ private val PROGRESSINDICATORS = "progressindicators"
+ private val SLIDER = "slider"
private val STEPPER = "stepper"
private val PROGRESS_INDICATOR = "progress-indicator"
private val PROGRESS_INDICATOR_INDETERMINATE = "progress-indicator-indeterminate"
@@ -84,37 +92,46 @@
val intent = Intent()
intent.action = ACTION
startActivityAndWait(intent)
- testDestination(ALERT_DIALOG)
- scrollDown()
- testDestination(CONFIRMATION_DIALOG)
- scrollDown()
- testDestination(STEPPER)
- scrollDown()
- testDestination(PROGRESS_INDICATOR)
- scrollDown()
- testDestination(PROGRESS_INDICATOR_INDETERMINATE)
-
- repeat(30) {
- scrollDown()
- }
+ testDestination(description = BUTTONS)
+ testDestination(description = CARDS)
+ testDestination(description = CHIPS)
+ testDialogs()
+ testDestination(description = PICKER)
+ testProgressIndicators()
+ testDestination(description = SLIDER)
+ testDestination(description = STEPPER)
}
)
}
- private fun testDestination(name: String) {
- device.findObject(By.desc(name)).click()
+ private fun testDialogs() {
+ findAndClick(By.desc(DIALOGS))
+ device.waitForIdle()
+ testDestination(description = ALERT_DIALOG)
+ testDestination(description = CONFIRMATION_DIALOG)
+ device.pressBack()
+ device.waitForIdle()
+ }
+
+ private fun testProgressIndicators() {
+ findAndClick(By.desc(PROGRESSINDICATORS))
+ device.waitForIdle()
+ testDestination(description = PROGRESS_INDICATOR)
+ testDestination(description = PROGRESS_INDICATOR_INDETERMINATE)
+ device.pressBack()
+ device.waitForIdle()
+ }
+
+ private fun testDestination(description: String) {
+ findAndClick(By.desc(description))
device.waitForIdle()
device.pressBack()
device.waitForIdle()
}
- private fun scrollDown() {
- // Scroll down to view remaining UI elements
- // Setting a gesture margin is important otherwise gesture nav is triggered.
- val list = device.findObject(By.desc(CONTENT_DESCRIPTION))
- list.setGestureMargin(device.displayWidth / 5)
- list.drag(Point(list.visibleCenter.x, list.visibleCenter.y / 3))
- device.waitForIdle()
+ private fun findAndClick(selector: BySelector) {
+ device.wait(Until.findObject(selector), 3000)
+ device.findObject(selector).click()
}
companion object {
diff --git a/wear/tiles/OWNERS b/wear/tiles/OWNERS
index 7c0968e..b831820 100644
--- a/wear/tiles/OWNERS
+++ b/wear/tiles/OWNERS
@@ -1,3 +1,4 @@
# Bug component: 1112272
jgarside@google.com
-jnichol@google.com
\ No newline at end of file
+jnichol@google.com
+msab@google.com
diff --git a/wear/watchface/watchface-client-guava/api/1.1.0-beta02.txt b/wear/watchface/watchface-client-guava/api/1.1.0-beta02.txt
new file mode 100644
index 0000000..ace6824
--- /dev/null
+++ b/wear/watchface/watchface-client-guava/api/1.1.0-beta02.txt
@@ -0,0 +1,32 @@
+// Signature format: 4.0
+package androidx.wear.watchface.client {
+
+ public class ListenableWatchFaceControlClient implements androidx.wear.watchface.client.WatchFaceControlClient {
+ ctor public ListenableWatchFaceControlClient(androidx.wear.watchface.client.WatchFaceControlClient watchFaceControlClient);
+ method public void close();
+ method @Deprecated public androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, int surfaceWidth, int surfaceHeight);
+ method public androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(String id, android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, int surfaceWidth, int surfaceHeight);
+ method public static final com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.client.ListenableWatchFaceControlClient> createWatchFaceControlClient(android.content.Context context, String watchFacePackageName);
+ method @Deprecated public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.DefaultComplicationDataSourcePolicyAndType> getDefaultComplicationDataSourcePoliciesAndType(android.content.ComponentName watchFaceName);
+ method public androidx.wear.watchface.client.EditorServiceClient getEditorServiceClient();
+ method public androidx.wear.watchface.client.InteractiveWatchFaceClient? getInteractiveWatchFaceClientInstance(String instanceId);
+ method public suspend Object? getOrCreateInteractiveWatchFaceClient(String id, androidx.wear.watchface.client.DeviceConfig deviceConfig, androidx.wear.watchface.client.WatchUiState watchUiState, androidx.wear.watchface.style.UserStyleData? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.InteractiveWatchFaceClient>);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.client.InteractiveWatchFaceClient> listenableGetOrCreateInteractiveWatchFaceClient(String id, androidx.wear.watchface.client.DeviceConfig deviceConfig, androidx.wear.watchface.client.WatchUiState watchUiState, androidx.wear.watchface.style.UserStyleData? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData);
+ field public static final androidx.wear.watchface.client.ListenableWatchFaceControlClient.Companion Companion;
+ }
+
+ public static final class ListenableWatchFaceControlClient.Companion {
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.client.ListenableWatchFaceControlClient> createWatchFaceControlClient(android.content.Context context, String watchFacePackageName);
+ }
+
+ public final class ListenableWatchFaceMetadataClient {
+ method public static com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.client.WatchFaceMetadataClient> create(android.content.Context context, android.content.ComponentName watchFaceName);
+ field public static final androidx.wear.watchface.client.ListenableWatchFaceMetadataClient.Companion Companion;
+ }
+
+ public static final class ListenableWatchFaceMetadataClient.Companion {
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.client.WatchFaceMetadataClient> create(android.content.Context context, android.content.ComponentName watchFaceName);
+ }
+
+}
+
diff --git a/wear/watchface/watchface-client-guava/api/public_plus_experimental_1.1.0-beta02.txt b/wear/watchface/watchface-client-guava/api/public_plus_experimental_1.1.0-beta02.txt
new file mode 100644
index 0000000..ace6824
--- /dev/null
+++ b/wear/watchface/watchface-client-guava/api/public_plus_experimental_1.1.0-beta02.txt
@@ -0,0 +1,32 @@
+// Signature format: 4.0
+package androidx.wear.watchface.client {
+
+ public class ListenableWatchFaceControlClient implements androidx.wear.watchface.client.WatchFaceControlClient {
+ ctor public ListenableWatchFaceControlClient(androidx.wear.watchface.client.WatchFaceControlClient watchFaceControlClient);
+ method public void close();
+ method @Deprecated public androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, int surfaceWidth, int surfaceHeight);
+ method public androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(String id, android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, int surfaceWidth, int surfaceHeight);
+ method public static final com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.client.ListenableWatchFaceControlClient> createWatchFaceControlClient(android.content.Context context, String watchFacePackageName);
+ method @Deprecated public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.DefaultComplicationDataSourcePolicyAndType> getDefaultComplicationDataSourcePoliciesAndType(android.content.ComponentName watchFaceName);
+ method public androidx.wear.watchface.client.EditorServiceClient getEditorServiceClient();
+ method public androidx.wear.watchface.client.InteractiveWatchFaceClient? getInteractiveWatchFaceClientInstance(String instanceId);
+ method public suspend Object? getOrCreateInteractiveWatchFaceClient(String id, androidx.wear.watchface.client.DeviceConfig deviceConfig, androidx.wear.watchface.client.WatchUiState watchUiState, androidx.wear.watchface.style.UserStyleData? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.InteractiveWatchFaceClient>);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.client.InteractiveWatchFaceClient> listenableGetOrCreateInteractiveWatchFaceClient(String id, androidx.wear.watchface.client.DeviceConfig deviceConfig, androidx.wear.watchface.client.WatchUiState watchUiState, androidx.wear.watchface.style.UserStyleData? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData);
+ field public static final androidx.wear.watchface.client.ListenableWatchFaceControlClient.Companion Companion;
+ }
+
+ public static final class ListenableWatchFaceControlClient.Companion {
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.client.ListenableWatchFaceControlClient> createWatchFaceControlClient(android.content.Context context, String watchFacePackageName);
+ }
+
+ public final class ListenableWatchFaceMetadataClient {
+ method public static com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.client.WatchFaceMetadataClient> create(android.content.Context context, android.content.ComponentName watchFaceName);
+ field public static final androidx.wear.watchface.client.ListenableWatchFaceMetadataClient.Companion Companion;
+ }
+
+ public static final class ListenableWatchFaceMetadataClient.Companion {
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.client.WatchFaceMetadataClient> create(android.content.Context context, android.content.ComponentName watchFaceName);
+ }
+
+}
+
diff --git a/wear/watchface/watchface-client-guava/api/res-1.1.0-beta02.txt b/wear/watchface/watchface-client-guava/api/res-1.1.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/watchface/watchface-client-guava/api/res-1.1.0-beta02.txt
diff --git a/wear/watchface/watchface-client-guava/api/restricted_1.1.0-beta02.txt b/wear/watchface/watchface-client-guava/api/restricted_1.1.0-beta02.txt
new file mode 100644
index 0000000..ace6824
--- /dev/null
+++ b/wear/watchface/watchface-client-guava/api/restricted_1.1.0-beta02.txt
@@ -0,0 +1,32 @@
+// Signature format: 4.0
+package androidx.wear.watchface.client {
+
+ public class ListenableWatchFaceControlClient implements androidx.wear.watchface.client.WatchFaceControlClient {
+ ctor public ListenableWatchFaceControlClient(androidx.wear.watchface.client.WatchFaceControlClient watchFaceControlClient);
+ method public void close();
+ method @Deprecated public androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, int surfaceWidth, int surfaceHeight);
+ method public androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(String id, android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, int surfaceWidth, int surfaceHeight);
+ method public static final com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.client.ListenableWatchFaceControlClient> createWatchFaceControlClient(android.content.Context context, String watchFacePackageName);
+ method @Deprecated public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.DefaultComplicationDataSourcePolicyAndType> getDefaultComplicationDataSourcePoliciesAndType(android.content.ComponentName watchFaceName);
+ method public androidx.wear.watchface.client.EditorServiceClient getEditorServiceClient();
+ method public androidx.wear.watchface.client.InteractiveWatchFaceClient? getInteractiveWatchFaceClientInstance(String instanceId);
+ method public suspend Object? getOrCreateInteractiveWatchFaceClient(String id, androidx.wear.watchface.client.DeviceConfig deviceConfig, androidx.wear.watchface.client.WatchUiState watchUiState, androidx.wear.watchface.style.UserStyleData? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.InteractiveWatchFaceClient>);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.client.InteractiveWatchFaceClient> listenableGetOrCreateInteractiveWatchFaceClient(String id, androidx.wear.watchface.client.DeviceConfig deviceConfig, androidx.wear.watchface.client.WatchUiState watchUiState, androidx.wear.watchface.style.UserStyleData? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData);
+ field public static final androidx.wear.watchface.client.ListenableWatchFaceControlClient.Companion Companion;
+ }
+
+ public static final class ListenableWatchFaceControlClient.Companion {
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.client.ListenableWatchFaceControlClient> createWatchFaceControlClient(android.content.Context context, String watchFacePackageName);
+ }
+
+ public final class ListenableWatchFaceMetadataClient {
+ method public static com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.client.WatchFaceMetadataClient> create(android.content.Context context, android.content.ComponentName watchFaceName);
+ field public static final androidx.wear.watchface.client.ListenableWatchFaceMetadataClient.Companion Companion;
+ }
+
+ public static final class ListenableWatchFaceMetadataClient.Companion {
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.client.WatchFaceMetadataClient> create(android.content.Context context, android.content.ComponentName watchFaceName);
+ }
+
+}
+
diff --git a/wear/watchface/watchface-client/api/1.1.0-beta02.txt b/wear/watchface/watchface-client/api/1.1.0-beta02.txt
new file mode 100644
index 0000000..6937121
--- /dev/null
+++ b/wear/watchface/watchface-client/api/1.1.0-beta02.txt
@@ -0,0 +1,244 @@
+// Signature format: 4.0
+package androidx.wear.watchface.client {
+
+ public final class ComplicationSlotMetadata {
+ ctor public ComplicationSlotMetadata(androidx.wear.watchface.complications.ComplicationSlotBounds? bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isInitiallyEnabled, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras);
+ method public androidx.wear.watchface.complications.ComplicationSlotBounds? getBounds();
+ method public int getBoundsType();
+ method public android.os.Bundle getComplicationConfigExtras();
+ method public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getDefaultDataSourcePolicy();
+ method public boolean getFixedComplicationDataSource();
+ method public java.util.List<androidx.wear.watchface.complications.data.ComplicationType> getSupportedTypes();
+ method public boolean isInitiallyEnabled();
+ property public final androidx.wear.watchface.complications.ComplicationSlotBounds? bounds;
+ property public final int boundsType;
+ property public final android.os.Bundle complicationConfigExtras;
+ property public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy;
+ property public final boolean fixedComplicationDataSource;
+ property public final boolean isInitiallyEnabled;
+ property public final java.util.List<androidx.wear.watchface.complications.data.ComplicationType> supportedTypes;
+ }
+
+ public final class ComplicationSlotState {
+ ctor public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras, Integer? nameResourceId, Integer? screenReaderNameResourceId);
+ ctor @Deprecated public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras);
+ method public android.graphics.Rect getBounds();
+ method public int getBoundsType();
+ method public android.os.Bundle getComplicationConfigExtras();
+ method public androidx.wear.watchface.complications.data.ComplicationType getCurrentType();
+ method public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getDefaultDataSourcePolicy();
+ method @Deprecated public androidx.wear.watchface.complications.data.ComplicationType getDefaultDataSourceType();
+ method public boolean getFixedComplicationDataSource();
+ method public Integer? getNameResourceId();
+ method public Integer? getScreenReaderNameResourceId();
+ method public java.util.List<androidx.wear.watchface.complications.data.ComplicationType> getSupportedTypes();
+ method public boolean isEnabled();
+ method public boolean isInitiallyEnabled();
+ property public final android.graphics.Rect bounds;
+ property public final int boundsType;
+ property public final android.os.Bundle complicationConfigExtras;
+ property public final androidx.wear.watchface.complications.data.ComplicationType currentType;
+ property public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy;
+ property @Deprecated public final androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType;
+ property public final boolean fixedComplicationDataSource;
+ property public final boolean isEnabled;
+ property public final boolean isInitiallyEnabled;
+ property public final Integer? nameResourceId;
+ property public final Integer? screenReaderNameResourceId;
+ property public final java.util.List<androidx.wear.watchface.complications.data.ComplicationType> supportedTypes;
+ }
+
+ @Deprecated public final class DefaultComplicationDataSourcePolicyAndType {
+ ctor @Deprecated public DefaultComplicationDataSourcePolicyAndType(androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy policy, androidx.wear.watchface.complications.data.ComplicationType type);
+ method @Deprecated public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getPolicy();
+ method @Deprecated public androidx.wear.watchface.complications.data.ComplicationType getType();
+ property public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy policy;
+ property public final androidx.wear.watchface.complications.data.ComplicationType type;
+ }
+
+ public final class DeviceConfig {
+ ctor public DeviceConfig(boolean hasLowBitAmbient, boolean hasBurnInProtection, long analogPreviewReferenceTimeMillis, long digitalPreviewReferenceTimeMillis);
+ method public long getAnalogPreviewReferenceTimeMillis();
+ method public long getDigitalPreviewReferenceTimeMillis();
+ method public boolean getHasBurnInProtection();
+ method public boolean getHasLowBitAmbient();
+ property public final long analogPreviewReferenceTimeMillis;
+ property public final long digitalPreviewReferenceTimeMillis;
+ property public final boolean hasBurnInProtection;
+ property public final boolean hasLowBitAmbient;
+ }
+
+ public final class DeviceConfigKt {
+ }
+
+ public interface EditorListener {
+ method public void onEditorStateChanged(androidx.wear.watchface.client.EditorState editorState);
+ }
+
+ public interface EditorServiceClient {
+ method public void addListener(androidx.wear.watchface.client.EditorListener editorListener, java.util.concurrent.Executor listenerExecutor);
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void closeEditor() throws android.os.RemoteException;
+ method public void removeListener(androidx.wear.watchface.client.EditorListener editorListener);
+ }
+
+ public final class EditorState {
+ method public java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData> getPreviewComplicationsData();
+ method public android.graphics.Bitmap? getPreviewImage();
+ method public boolean getShouldCommitChanges();
+ method public androidx.wear.watchface.style.UserStyleData getUserStyle();
+ method public androidx.wear.watchface.client.WatchFaceId getWatchFaceId();
+ property public final java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData> previewComplicationsData;
+ property public final android.graphics.Bitmap? previewImage;
+ property public final boolean shouldCommitChanges;
+ property public final androidx.wear.watchface.style.UserStyleData userStyle;
+ property public final androidx.wear.watchface.client.WatchFaceId watchFaceId;
+ }
+
+ public final class EditorStateKt {
+ }
+
+ public interface HeadlessWatchFaceClient extends java.lang.AutoCloseable {
+ method @AnyThread public void addClientDisconnectListener(androidx.wear.watchface.client.HeadlessWatchFaceClient.ClientDisconnectListener listener, java.util.concurrent.Executor executor);
+ method public default static androidx.wear.watchface.client.HeadlessWatchFaceClient createFromBundle(android.os.Bundle bundle);
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> getComplicationSlotsState();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.time.Instant getPreviewReferenceInstant();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default byte[] getUserStyleSchemaDigestHash() throws android.os.RemoteException;
+ method @AnyThread public boolean isConnectionAlive();
+ method @AnyThread public void removeClientDisconnectListener(androidx.wear.watchface.client.HeadlessWatchFaceClient.ClientDisconnectListener listener);
+ method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap? renderComplicationToBitmap(int complicationSlotId, androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.complications.data.ComplicationData complicationData, androidx.wear.watchface.style.UserStyle? userStyle) throws android.os.RemoteException;
+ method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.style.UserStyle? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData) throws android.os.RemoteException;
+ method public android.os.Bundle toBundle();
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> complicationSlotsState;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.time.Instant previewReferenceInstant;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract androidx.wear.watchface.style.UserStyleSchema userStyleSchema;
+ field public static final String BINDER_KEY = "HeadlessWatchFaceClient";
+ field public static final androidx.wear.watchface.client.HeadlessWatchFaceClient.Companion Companion;
+ }
+
+ public static interface HeadlessWatchFaceClient.ClientDisconnectListener {
+ method public void onClientDisconnected();
+ }
+
+ public static final class HeadlessWatchFaceClient.Companion {
+ method public androidx.wear.watchface.client.HeadlessWatchFaceClient createFromBundle(android.os.Bundle bundle);
+ }
+
+ public interface InteractiveWatchFaceClient extends java.lang.AutoCloseable {
+ method @AnyThread public void addClientDisconnectListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.ClientDisconnectListener listener, java.util.concurrent.Executor executor);
+ method public void addOnWatchFaceReadyListener(java.util.concurrent.Executor executor, androidx.wear.watchface.client.InteractiveWatchFaceClient.OnWatchFaceReadyListener listener);
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default Integer? getComplicationIdAt(@Px int x, @Px int y) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> getComplicationSlotsState();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.List<androidx.wear.watchface.ContentDescriptionLabel> getContentDescriptionLabels();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public String getInstanceId();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.OverlayStyle getOverlayStyle();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.time.Instant getPreviewReferenceInstant();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
+ method @AnyThread public boolean isConnectionAlive();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void performAmbientTick() throws android.os.RemoteException;
+ method @AnyThread public void removeClientDisconnectListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.ClientDisconnectListener listener);
+ method public void removeOnWatchFaceReadyListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.OnWatchFaceReadyListener listener);
+ method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.style.UserStyle? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? idAndComplicationData) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void sendTouchEvent(@Px int xPosition, @Px int yPosition, @androidx.wear.watchface.TapType int tapType) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void setWatchUiState(androidx.wear.watchface.client.WatchUiState watchUiState) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void updateComplicationData(java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData> slotIdToComplicationData) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void updateWatchFaceInstance(String newInstanceId, androidx.wear.watchface.style.UserStyle userStyle) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void updateWatchFaceInstance(String newInstanceId, androidx.wear.watchface.style.UserStyleData userStyle) throws android.os.RemoteException;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> complicationSlotsState;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.util.List<androidx.wear.watchface.ContentDescriptionLabel> contentDescriptionLabels;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract String instanceId;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.OverlayStyle overlayStyle;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.time.Instant previewReferenceInstant;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract androidx.wear.watchface.style.UserStyleSchema userStyleSchema;
+ field public static final androidx.wear.watchface.client.InteractiveWatchFaceClient.Companion Companion;
+ field public static final int TAP_TYPE_CANCEL = 1; // 0x1
+ field public static final int TAP_TYPE_DOWN = 0; // 0x0
+ field public static final int TAP_TYPE_UP = 2; // 0x2
+ }
+
+ public static interface InteractiveWatchFaceClient.ClientDisconnectListener {
+ method public void onClientDisconnected();
+ }
+
+ public static final class InteractiveWatchFaceClient.Companion {
+ field public static final int TAP_TYPE_CANCEL = 1; // 0x1
+ field public static final int TAP_TYPE_DOWN = 0; // 0x0
+ field public static final int TAP_TYPE_UP = 2; // 0x2
+ }
+
+ public static fun interface InteractiveWatchFaceClient.OnWatchFaceReadyListener {
+ method public void onWatchFaceReady();
+ }
+
+ public final class OverlayStyle {
+ ctor public OverlayStyle(android.graphics.Color? backgroundColor, android.graphics.Color? foregroundColor);
+ ctor public OverlayStyle();
+ method public android.graphics.Color? getBackgroundColor();
+ method public android.graphics.Color? getForegroundColor();
+ property public final android.graphics.Color? backgroundColor;
+ property public final android.graphics.Color? foregroundColor;
+ }
+
+ public interface WatchFaceControlClient extends java.lang.AutoCloseable {
+ method @Deprecated @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, @Px int surfaceWidth, @Px int surfaceHeight) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(String id, android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, @Px int surfaceWidth, @Px int surfaceHeight) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses={ServiceNotBoundException::class, ServiceStartFailureException::class}) public default static suspend Object? createWatchFaceControlClient(android.content.Context context, String watchFacePackageName, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.WatchFaceControlClient>) throws androidx.wear.watchface.client.WatchFaceControlClient.ServiceNotBoundException, androidx.wear.watchface.client.WatchFaceControlClient.ServiceStartFailureException;
+ method @Deprecated @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.DefaultComplicationDataSourcePolicyAndType> getDefaultComplicationDataSourcePoliciesAndType(android.content.ComponentName watchFaceName) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.EditorServiceClient getEditorServiceClient() throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.InteractiveWatchFaceClient? getInteractiveWatchFaceClientInstance(String instanceId) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public suspend Object? getOrCreateInteractiveWatchFaceClient(String id, androidx.wear.watchface.client.DeviceConfig deviceConfig, androidx.wear.watchface.client.WatchUiState watchUiState, androidx.wear.watchface.style.UserStyleData? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.InteractiveWatchFaceClient>) throws android.os.RemoteException;
+ method public default boolean hasComplicationDataCache();
+ field public static final androidx.wear.watchface.client.WatchFaceControlClient.Companion Companion;
+ }
+
+ public static final class WatchFaceControlClient.Companion {
+ method @kotlin.jvm.Throws(exceptionClasses={ServiceNotBoundException::class, ServiceStartFailureException::class}) public suspend Object? createWatchFaceControlClient(android.content.Context context, String watchFacePackageName, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.WatchFaceControlClient>) throws androidx.wear.watchface.client.WatchFaceControlClient.ServiceNotBoundException, androidx.wear.watchface.client.WatchFaceControlClient.ServiceStartFailureException;
+ }
+
+ public static final class WatchFaceControlClient.ServiceNotBoundException extends java.lang.Exception {
+ ctor public WatchFaceControlClient.ServiceNotBoundException();
+ }
+
+ public static final class WatchFaceControlClient.ServiceStartFailureException extends java.lang.Exception {
+ ctor public WatchFaceControlClient.ServiceStartFailureException(optional String message);
+ }
+
+ public final class WatchFaceExceptionKt {
+ }
+
+ public final class WatchFaceId {
+ ctor public WatchFaceId(String id);
+ method public String getId();
+ property public final String id;
+ }
+
+ public interface WatchFaceMetadataClient extends java.lang.AutoCloseable {
+ method public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotMetadata> getComplicationSlotMetadataMap();
+ method public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
+ method public boolean isUserStyleSchemaStatic();
+ property public abstract boolean isUserStyleSchemaStatic;
+ field public static final androidx.wear.watchface.client.WatchFaceMetadataClient.Companion Companion;
+ }
+
+ public static final class WatchFaceMetadataClient.Companion {
+ method @kotlin.jvm.Throws(exceptionClasses={ServiceNotBoundException::class, ServiceStartFailureException::class, PackageManager.NameNotFoundException::class}) public suspend Object? create(android.content.Context context, android.content.ComponentName watchFaceName, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.WatchFaceMetadataClient>) throws android.content.pm.PackageManager.NameNotFoundException, androidx.wear.watchface.client.WatchFaceMetadataClient.ServiceNotBoundException, androidx.wear.watchface.client.WatchFaceMetadataClient.ServiceStartFailureException;
+ }
+
+ public static final class WatchFaceMetadataClient.ServiceNotBoundException extends java.lang.Exception {
+ ctor public WatchFaceMetadataClient.ServiceNotBoundException();
+ }
+
+ public static final class WatchFaceMetadataClient.ServiceStartFailureException extends java.lang.Exception {
+ ctor public WatchFaceMetadataClient.ServiceStartFailureException(optional String message);
+ }
+
+ public final class WatchUiState {
+ ctor public WatchUiState(boolean inAmbientMode, int interruptionFilter);
+ method public boolean getInAmbientMode();
+ method public int getInterruptionFilter();
+ property public final boolean inAmbientMode;
+ property public final int interruptionFilter;
+ }
+
+}
+
diff --git a/wear/watchface/watchface-client/api/public_plus_experimental_1.1.0-beta02.txt b/wear/watchface/watchface-client/api/public_plus_experimental_1.1.0-beta02.txt
new file mode 100644
index 0000000..92202fd
--- /dev/null
+++ b/wear/watchface/watchface-client/api/public_plus_experimental_1.1.0-beta02.txt
@@ -0,0 +1,249 @@
+// Signature format: 4.0
+package androidx.wear.watchface.client {
+
+ public final class ComplicationSlotMetadata {
+ ctor public ComplicationSlotMetadata(androidx.wear.watchface.complications.ComplicationSlotBounds? bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isInitiallyEnabled, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras);
+ method public androidx.wear.watchface.complications.ComplicationSlotBounds? getBounds();
+ method public int getBoundsType();
+ method public android.os.Bundle getComplicationConfigExtras();
+ method public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getDefaultDataSourcePolicy();
+ method public boolean getFixedComplicationDataSource();
+ method public java.util.List<androidx.wear.watchface.complications.data.ComplicationType> getSupportedTypes();
+ method public boolean isInitiallyEnabled();
+ property public final androidx.wear.watchface.complications.ComplicationSlotBounds? bounds;
+ property public final int boundsType;
+ property public final android.os.Bundle complicationConfigExtras;
+ property public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy;
+ property public final boolean fixedComplicationDataSource;
+ property public final boolean isInitiallyEnabled;
+ property public final java.util.List<androidx.wear.watchface.complications.data.ComplicationType> supportedTypes;
+ }
+
+ public final class ComplicationSlotState {
+ ctor public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras, Integer? nameResourceId, Integer? screenReaderNameResourceId);
+ ctor @Deprecated public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras);
+ method public android.graphics.Rect getBounds();
+ method public int getBoundsType();
+ method public android.os.Bundle getComplicationConfigExtras();
+ method public androidx.wear.watchface.complications.data.ComplicationType getCurrentType();
+ method public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getDefaultDataSourcePolicy();
+ method @Deprecated public androidx.wear.watchface.complications.data.ComplicationType getDefaultDataSourceType();
+ method public boolean getFixedComplicationDataSource();
+ method public Integer? getNameResourceId();
+ method public Integer? getScreenReaderNameResourceId();
+ method public java.util.List<androidx.wear.watchface.complications.data.ComplicationType> getSupportedTypes();
+ method public boolean isEnabled();
+ method public boolean isInitiallyEnabled();
+ property public final android.graphics.Rect bounds;
+ property public final int boundsType;
+ property public final android.os.Bundle complicationConfigExtras;
+ property public final androidx.wear.watchface.complications.data.ComplicationType currentType;
+ property public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy;
+ property @Deprecated public final androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType;
+ property public final boolean fixedComplicationDataSource;
+ property public final boolean isEnabled;
+ property public final boolean isInitiallyEnabled;
+ property public final Integer? nameResourceId;
+ property public final Integer? screenReaderNameResourceId;
+ property public final java.util.List<androidx.wear.watchface.complications.data.ComplicationType> supportedTypes;
+ }
+
+ @Deprecated public final class DefaultComplicationDataSourcePolicyAndType {
+ ctor @Deprecated public DefaultComplicationDataSourcePolicyAndType(androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy policy, androidx.wear.watchface.complications.data.ComplicationType type);
+ method @Deprecated public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getPolicy();
+ method @Deprecated public androidx.wear.watchface.complications.data.ComplicationType getType();
+ property public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy policy;
+ property public final androidx.wear.watchface.complications.data.ComplicationType type;
+ }
+
+ public final class DeviceConfig {
+ ctor public DeviceConfig(boolean hasLowBitAmbient, boolean hasBurnInProtection, long analogPreviewReferenceTimeMillis, long digitalPreviewReferenceTimeMillis);
+ method public long getAnalogPreviewReferenceTimeMillis();
+ method public long getDigitalPreviewReferenceTimeMillis();
+ method public boolean getHasBurnInProtection();
+ method public boolean getHasLowBitAmbient();
+ property public final long analogPreviewReferenceTimeMillis;
+ property public final long digitalPreviewReferenceTimeMillis;
+ property public final boolean hasBurnInProtection;
+ property public final boolean hasLowBitAmbient;
+ }
+
+ public final class DeviceConfigKt {
+ }
+
+ public interface EditorListener {
+ method public void onEditorStateChanged(androidx.wear.watchface.client.EditorState editorState);
+ }
+
+ public interface EditorServiceClient {
+ method public void addListener(androidx.wear.watchface.client.EditorListener editorListener, java.util.concurrent.Executor listenerExecutor);
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void closeEditor() throws android.os.RemoteException;
+ method public void removeListener(androidx.wear.watchface.client.EditorListener editorListener);
+ }
+
+ public final class EditorState {
+ method public java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData> getPreviewComplicationsData();
+ method public android.graphics.Bitmap? getPreviewImage();
+ method public boolean getShouldCommitChanges();
+ method public androidx.wear.watchface.style.UserStyleData getUserStyle();
+ method public androidx.wear.watchface.client.WatchFaceId getWatchFaceId();
+ property public final java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData> previewComplicationsData;
+ property public final android.graphics.Bitmap? previewImage;
+ property public final boolean shouldCommitChanges;
+ property public final androidx.wear.watchface.style.UserStyleData userStyle;
+ property public final androidx.wear.watchface.client.WatchFaceId watchFaceId;
+ }
+
+ public final class EditorStateKt {
+ }
+
+ public interface HeadlessWatchFaceClient extends java.lang.AutoCloseable {
+ method @AnyThread public void addClientDisconnectListener(androidx.wear.watchface.client.HeadlessWatchFaceClient.ClientDisconnectListener listener, java.util.concurrent.Executor executor);
+ method public default static androidx.wear.watchface.client.HeadlessWatchFaceClient createFromBundle(android.os.Bundle bundle);
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> getComplicationSlotsState();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.time.Instant getPreviewReferenceInstant();
+ method @androidx.wear.watchface.WatchFaceFlavorsExperimental public default androidx.wear.watchface.UserStyleFlavors getUserStyleFlavors();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default byte[] getUserStyleSchemaDigestHash() throws android.os.RemoteException;
+ method @AnyThread public boolean isConnectionAlive();
+ method @AnyThread public void removeClientDisconnectListener(androidx.wear.watchface.client.HeadlessWatchFaceClient.ClientDisconnectListener listener);
+ method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap? renderComplicationToBitmap(int complicationSlotId, androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.complications.data.ComplicationData complicationData, androidx.wear.watchface.style.UserStyle? userStyle) throws android.os.RemoteException;
+ method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.style.UserStyle? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData) throws android.os.RemoteException;
+ method public android.os.Bundle toBundle();
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> complicationSlotsState;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.time.Instant previewReferenceInstant;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract androidx.wear.watchface.style.UserStyleSchema userStyleSchema;
+ field public static final String BINDER_KEY = "HeadlessWatchFaceClient";
+ field public static final androidx.wear.watchface.client.HeadlessWatchFaceClient.Companion Companion;
+ }
+
+ public static interface HeadlessWatchFaceClient.ClientDisconnectListener {
+ method public void onClientDisconnected();
+ }
+
+ public static final class HeadlessWatchFaceClient.Companion {
+ method public androidx.wear.watchface.client.HeadlessWatchFaceClient createFromBundle(android.os.Bundle bundle);
+ }
+
+ public interface InteractiveWatchFaceClient extends java.lang.AutoCloseable {
+ method @AnyThread public void addClientDisconnectListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.ClientDisconnectListener listener, java.util.concurrent.Executor executor);
+ method public void addOnWatchFaceReadyListener(java.util.concurrent.Executor executor, androidx.wear.watchface.client.InteractiveWatchFaceClient.OnWatchFaceReadyListener listener);
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default Integer? getComplicationIdAt(@Px int x, @Px int y) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> getComplicationSlotsState();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.List<androidx.wear.watchface.ContentDescriptionLabel> getContentDescriptionLabels();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public String getInstanceId();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.OverlayStyle getOverlayStyle();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.time.Instant getPreviewReferenceInstant();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
+ method @AnyThread public boolean isConnectionAlive();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void performAmbientTick() throws android.os.RemoteException;
+ method @AnyThread public void removeClientDisconnectListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.ClientDisconnectListener listener);
+ method public void removeOnWatchFaceReadyListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.OnWatchFaceReadyListener listener);
+ method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.style.UserStyle? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? idAndComplicationData) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void sendTouchEvent(@Px int xPosition, @Px int yPosition, @androidx.wear.watchface.TapType int tapType) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void setWatchUiState(androidx.wear.watchface.client.WatchUiState watchUiState) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void updateComplicationData(java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData> slotIdToComplicationData) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void updateWatchFaceInstance(String newInstanceId, androidx.wear.watchface.style.UserStyle userStyle) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void updateWatchFaceInstance(String newInstanceId, androidx.wear.watchface.style.UserStyleData userStyle) throws android.os.RemoteException;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> complicationSlotsState;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.util.List<androidx.wear.watchface.ContentDescriptionLabel> contentDescriptionLabels;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract String instanceId;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.OverlayStyle overlayStyle;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.time.Instant previewReferenceInstant;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract androidx.wear.watchface.style.UserStyleSchema userStyleSchema;
+ field public static final androidx.wear.watchface.client.InteractiveWatchFaceClient.Companion Companion;
+ field public static final int TAP_TYPE_CANCEL = 1; // 0x1
+ field public static final int TAP_TYPE_DOWN = 0; // 0x0
+ field public static final int TAP_TYPE_UP = 2; // 0x2
+ }
+
+ public static interface InteractiveWatchFaceClient.ClientDisconnectListener {
+ method public void onClientDisconnected();
+ }
+
+ public static final class InteractiveWatchFaceClient.Companion {
+ field public static final int TAP_TYPE_CANCEL = 1; // 0x1
+ field public static final int TAP_TYPE_DOWN = 0; // 0x0
+ field public static final int TAP_TYPE_UP = 2; // 0x2
+ }
+
+ public static fun interface InteractiveWatchFaceClient.OnWatchFaceReadyListener {
+ method public void onWatchFaceReady();
+ }
+
+ public final class OverlayStyle {
+ ctor public OverlayStyle(android.graphics.Color? backgroundColor, android.graphics.Color? foregroundColor);
+ ctor public OverlayStyle();
+ method public android.graphics.Color? getBackgroundColor();
+ method public android.graphics.Color? getForegroundColor();
+ property public final android.graphics.Color? backgroundColor;
+ property public final android.graphics.Color? foregroundColor;
+ }
+
+ @kotlin.RequiresOptIn(message="This is an experimental API that may change or be removed without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface WatchFaceClientExperimental {
+ }
+
+ public interface WatchFaceControlClient extends java.lang.AutoCloseable {
+ method @Deprecated @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, @Px int surfaceWidth, @Px int surfaceHeight) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(String id, android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, @Px int surfaceWidth, @Px int surfaceHeight) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses={ServiceNotBoundException::class, ServiceStartFailureException::class}) public default static suspend Object? createWatchFaceControlClient(android.content.Context context, String watchFacePackageName, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.WatchFaceControlClient>) throws androidx.wear.watchface.client.WatchFaceControlClient.ServiceNotBoundException, androidx.wear.watchface.client.WatchFaceControlClient.ServiceStartFailureException;
+ method @Deprecated @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.DefaultComplicationDataSourcePolicyAndType> getDefaultComplicationDataSourcePoliciesAndType(android.content.ComponentName watchFaceName) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.EditorServiceClient getEditorServiceClient() throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.InteractiveWatchFaceClient? getInteractiveWatchFaceClientInstance(String instanceId) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public suspend Object? getOrCreateInteractiveWatchFaceClient(String id, androidx.wear.watchface.client.DeviceConfig deviceConfig, androidx.wear.watchface.client.WatchUiState watchUiState, androidx.wear.watchface.style.UserStyleData? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.InteractiveWatchFaceClient>) throws android.os.RemoteException;
+ method public default boolean hasComplicationDataCache();
+ field public static final androidx.wear.watchface.client.WatchFaceControlClient.Companion Companion;
+ }
+
+ public static final class WatchFaceControlClient.Companion {
+ method @kotlin.jvm.Throws(exceptionClasses={ServiceNotBoundException::class, ServiceStartFailureException::class}) public suspend Object? createWatchFaceControlClient(android.content.Context context, String watchFacePackageName, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.WatchFaceControlClient>) throws androidx.wear.watchface.client.WatchFaceControlClient.ServiceNotBoundException, androidx.wear.watchface.client.WatchFaceControlClient.ServiceStartFailureException;
+ }
+
+ public static final class WatchFaceControlClient.ServiceNotBoundException extends java.lang.Exception {
+ ctor public WatchFaceControlClient.ServiceNotBoundException();
+ }
+
+ public static final class WatchFaceControlClient.ServiceStartFailureException extends java.lang.Exception {
+ ctor public WatchFaceControlClient.ServiceStartFailureException(optional String message);
+ }
+
+ public final class WatchFaceExceptionKt {
+ }
+
+ public final class WatchFaceId {
+ ctor public WatchFaceId(String id);
+ method public String getId();
+ property public final String id;
+ }
+
+ public interface WatchFaceMetadataClient extends java.lang.AutoCloseable {
+ method public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotMetadata> getComplicationSlotMetadataMap();
+ method @androidx.wear.watchface.WatchFaceFlavorsExperimental public androidx.wear.watchface.UserStyleFlavors getUserStyleFlavors();
+ method public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
+ method public boolean isUserStyleSchemaStatic();
+ property public abstract boolean isUserStyleSchemaStatic;
+ field public static final androidx.wear.watchface.client.WatchFaceMetadataClient.Companion Companion;
+ }
+
+ public static final class WatchFaceMetadataClient.Companion {
+ method @kotlin.jvm.Throws(exceptionClasses={ServiceNotBoundException::class, ServiceStartFailureException::class, PackageManager.NameNotFoundException::class}) public suspend Object? create(android.content.Context context, android.content.ComponentName watchFaceName, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.WatchFaceMetadataClient>) throws android.content.pm.PackageManager.NameNotFoundException, androidx.wear.watchface.client.WatchFaceMetadataClient.ServiceNotBoundException, androidx.wear.watchface.client.WatchFaceMetadataClient.ServiceStartFailureException;
+ }
+
+ public static final class WatchFaceMetadataClient.ServiceNotBoundException extends java.lang.Exception {
+ ctor public WatchFaceMetadataClient.ServiceNotBoundException();
+ }
+
+ public static final class WatchFaceMetadataClient.ServiceStartFailureException extends java.lang.Exception {
+ ctor public WatchFaceMetadataClient.ServiceStartFailureException(optional String message);
+ }
+
+ public final class WatchUiState {
+ ctor public WatchUiState(boolean inAmbientMode, int interruptionFilter);
+ method public boolean getInAmbientMode();
+ method public int getInterruptionFilter();
+ property public final boolean inAmbientMode;
+ property public final int interruptionFilter;
+ }
+
+}
+
diff --git a/wear/watchface/watchface-client/api/res-1.1.0-beta02.txt b/wear/watchface/watchface-client/api/res-1.1.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/watchface/watchface-client/api/res-1.1.0-beta02.txt
diff --git a/wear/watchface/watchface-client/api/restricted_1.1.0-beta02.txt b/wear/watchface/watchface-client/api/restricted_1.1.0-beta02.txt
new file mode 100644
index 0000000..6937121
--- /dev/null
+++ b/wear/watchface/watchface-client/api/restricted_1.1.0-beta02.txt
@@ -0,0 +1,244 @@
+// Signature format: 4.0
+package androidx.wear.watchface.client {
+
+ public final class ComplicationSlotMetadata {
+ ctor public ComplicationSlotMetadata(androidx.wear.watchface.complications.ComplicationSlotBounds? bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isInitiallyEnabled, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras);
+ method public androidx.wear.watchface.complications.ComplicationSlotBounds? getBounds();
+ method public int getBoundsType();
+ method public android.os.Bundle getComplicationConfigExtras();
+ method public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getDefaultDataSourcePolicy();
+ method public boolean getFixedComplicationDataSource();
+ method public java.util.List<androidx.wear.watchface.complications.data.ComplicationType> getSupportedTypes();
+ method public boolean isInitiallyEnabled();
+ property public final androidx.wear.watchface.complications.ComplicationSlotBounds? bounds;
+ property public final int boundsType;
+ property public final android.os.Bundle complicationConfigExtras;
+ property public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy;
+ property public final boolean fixedComplicationDataSource;
+ property public final boolean isInitiallyEnabled;
+ property public final java.util.List<androidx.wear.watchface.complications.data.ComplicationType> supportedTypes;
+ }
+
+ public final class ComplicationSlotState {
+ ctor public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras, Integer? nameResourceId, Integer? screenReaderNameResourceId);
+ ctor @Deprecated public ComplicationSlotState(android.graphics.Rect bounds, int boundsType, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType, boolean isEnabled, boolean isInitiallyEnabled, androidx.wear.watchface.complications.data.ComplicationType currentType, boolean fixedComplicationDataSource, android.os.Bundle complicationConfigExtras);
+ method public android.graphics.Rect getBounds();
+ method public int getBoundsType();
+ method public android.os.Bundle getComplicationConfigExtras();
+ method public androidx.wear.watchface.complications.data.ComplicationType getCurrentType();
+ method public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getDefaultDataSourcePolicy();
+ method @Deprecated public androidx.wear.watchface.complications.data.ComplicationType getDefaultDataSourceType();
+ method public boolean getFixedComplicationDataSource();
+ method public Integer? getNameResourceId();
+ method public Integer? getScreenReaderNameResourceId();
+ method public java.util.List<androidx.wear.watchface.complications.data.ComplicationType> getSupportedTypes();
+ method public boolean isEnabled();
+ method public boolean isInitiallyEnabled();
+ property public final android.graphics.Rect bounds;
+ property public final int boundsType;
+ property public final android.os.Bundle complicationConfigExtras;
+ property public final androidx.wear.watchface.complications.data.ComplicationType currentType;
+ property public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy;
+ property @Deprecated public final androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType;
+ property public final boolean fixedComplicationDataSource;
+ property public final boolean isEnabled;
+ property public final boolean isInitiallyEnabled;
+ property public final Integer? nameResourceId;
+ property public final Integer? screenReaderNameResourceId;
+ property public final java.util.List<androidx.wear.watchface.complications.data.ComplicationType> supportedTypes;
+ }
+
+ @Deprecated public final class DefaultComplicationDataSourcePolicyAndType {
+ ctor @Deprecated public DefaultComplicationDataSourcePolicyAndType(androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy policy, androidx.wear.watchface.complications.data.ComplicationType type);
+ method @Deprecated public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getPolicy();
+ method @Deprecated public androidx.wear.watchface.complications.data.ComplicationType getType();
+ property public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy policy;
+ property public final androidx.wear.watchface.complications.data.ComplicationType type;
+ }
+
+ public final class DeviceConfig {
+ ctor public DeviceConfig(boolean hasLowBitAmbient, boolean hasBurnInProtection, long analogPreviewReferenceTimeMillis, long digitalPreviewReferenceTimeMillis);
+ method public long getAnalogPreviewReferenceTimeMillis();
+ method public long getDigitalPreviewReferenceTimeMillis();
+ method public boolean getHasBurnInProtection();
+ method public boolean getHasLowBitAmbient();
+ property public final long analogPreviewReferenceTimeMillis;
+ property public final long digitalPreviewReferenceTimeMillis;
+ property public final boolean hasBurnInProtection;
+ property public final boolean hasLowBitAmbient;
+ }
+
+ public final class DeviceConfigKt {
+ }
+
+ public interface EditorListener {
+ method public void onEditorStateChanged(androidx.wear.watchface.client.EditorState editorState);
+ }
+
+ public interface EditorServiceClient {
+ method public void addListener(androidx.wear.watchface.client.EditorListener editorListener, java.util.concurrent.Executor listenerExecutor);
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void closeEditor() throws android.os.RemoteException;
+ method public void removeListener(androidx.wear.watchface.client.EditorListener editorListener);
+ }
+
+ public final class EditorState {
+ method public java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData> getPreviewComplicationsData();
+ method public android.graphics.Bitmap? getPreviewImage();
+ method public boolean getShouldCommitChanges();
+ method public androidx.wear.watchface.style.UserStyleData getUserStyle();
+ method public androidx.wear.watchface.client.WatchFaceId getWatchFaceId();
+ property public final java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData> previewComplicationsData;
+ property public final android.graphics.Bitmap? previewImage;
+ property public final boolean shouldCommitChanges;
+ property public final androidx.wear.watchface.style.UserStyleData userStyle;
+ property public final androidx.wear.watchface.client.WatchFaceId watchFaceId;
+ }
+
+ public final class EditorStateKt {
+ }
+
+ public interface HeadlessWatchFaceClient extends java.lang.AutoCloseable {
+ method @AnyThread public void addClientDisconnectListener(androidx.wear.watchface.client.HeadlessWatchFaceClient.ClientDisconnectListener listener, java.util.concurrent.Executor executor);
+ method public default static androidx.wear.watchface.client.HeadlessWatchFaceClient createFromBundle(android.os.Bundle bundle);
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> getComplicationSlotsState();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.time.Instant getPreviewReferenceInstant();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default byte[] getUserStyleSchemaDigestHash() throws android.os.RemoteException;
+ method @AnyThread public boolean isConnectionAlive();
+ method @AnyThread public void removeClientDisconnectListener(androidx.wear.watchface.client.HeadlessWatchFaceClient.ClientDisconnectListener listener);
+ method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap? renderComplicationToBitmap(int complicationSlotId, androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.complications.data.ComplicationData complicationData, androidx.wear.watchface.style.UserStyle? userStyle) throws android.os.RemoteException;
+ method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.style.UserStyle? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData) throws android.os.RemoteException;
+ method public android.os.Bundle toBundle();
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> complicationSlotsState;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.time.Instant previewReferenceInstant;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract androidx.wear.watchface.style.UserStyleSchema userStyleSchema;
+ field public static final String BINDER_KEY = "HeadlessWatchFaceClient";
+ field public static final androidx.wear.watchface.client.HeadlessWatchFaceClient.Companion Companion;
+ }
+
+ public static interface HeadlessWatchFaceClient.ClientDisconnectListener {
+ method public void onClientDisconnected();
+ }
+
+ public static final class HeadlessWatchFaceClient.Companion {
+ method public androidx.wear.watchface.client.HeadlessWatchFaceClient createFromBundle(android.os.Bundle bundle);
+ }
+
+ public interface InteractiveWatchFaceClient extends java.lang.AutoCloseable {
+ method @AnyThread public void addClientDisconnectListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.ClientDisconnectListener listener, java.util.concurrent.Executor executor);
+ method public void addOnWatchFaceReadyListener(java.util.concurrent.Executor executor, androidx.wear.watchface.client.InteractiveWatchFaceClient.OnWatchFaceReadyListener listener);
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default Integer? getComplicationIdAt(@Px int x, @Px int y) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> getComplicationSlotsState();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.List<androidx.wear.watchface.ContentDescriptionLabel> getContentDescriptionLabels();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public String getInstanceId();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.OverlayStyle getOverlayStyle();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.time.Instant getPreviewReferenceInstant();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
+ method @AnyThread public boolean isConnectionAlive();
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void performAmbientTick() throws android.os.RemoteException;
+ method @AnyThread public void removeClientDisconnectListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.ClientDisconnectListener listener);
+ method public void removeOnWatchFaceReadyListener(androidx.wear.watchface.client.InteractiveWatchFaceClient.OnWatchFaceReadyListener listener);
+ method @RequiresApi(27) @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, androidx.wear.watchface.style.UserStyle? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? idAndComplicationData) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void sendTouchEvent(@Px int xPosition, @Px int yPosition, @androidx.wear.watchface.TapType int tapType) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void setWatchUiState(androidx.wear.watchface.client.WatchUiState watchUiState) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void updateComplicationData(java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData> slotIdToComplicationData) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void updateWatchFaceInstance(String newInstanceId, androidx.wear.watchface.style.UserStyle userStyle) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void updateWatchFaceInstance(String newInstanceId, androidx.wear.watchface.style.UserStyleData userStyle) throws android.os.RemoteException;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState> complicationSlotsState;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.util.List<androidx.wear.watchface.ContentDescriptionLabel> contentDescriptionLabels;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract String instanceId;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.OverlayStyle overlayStyle;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract java.time.Instant previewReferenceInstant;
+ property @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public abstract androidx.wear.watchface.style.UserStyleSchema userStyleSchema;
+ field public static final androidx.wear.watchface.client.InteractiveWatchFaceClient.Companion Companion;
+ field public static final int TAP_TYPE_CANCEL = 1; // 0x1
+ field public static final int TAP_TYPE_DOWN = 0; // 0x0
+ field public static final int TAP_TYPE_UP = 2; // 0x2
+ }
+
+ public static interface InteractiveWatchFaceClient.ClientDisconnectListener {
+ method public void onClientDisconnected();
+ }
+
+ public static final class InteractiveWatchFaceClient.Companion {
+ field public static final int TAP_TYPE_CANCEL = 1; // 0x1
+ field public static final int TAP_TYPE_DOWN = 0; // 0x0
+ field public static final int TAP_TYPE_UP = 2; // 0x2
+ }
+
+ public static fun interface InteractiveWatchFaceClient.OnWatchFaceReadyListener {
+ method public void onWatchFaceReady();
+ }
+
+ public final class OverlayStyle {
+ ctor public OverlayStyle(android.graphics.Color? backgroundColor, android.graphics.Color? foregroundColor);
+ ctor public OverlayStyle();
+ method public android.graphics.Color? getBackgroundColor();
+ method public android.graphics.Color? getForegroundColor();
+ property public final android.graphics.Color? backgroundColor;
+ property public final android.graphics.Color? foregroundColor;
+ }
+
+ public interface WatchFaceControlClient extends java.lang.AutoCloseable {
+ method @Deprecated @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, @Px int surfaceWidth, @Px int surfaceHeight) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default androidx.wear.watchface.client.HeadlessWatchFaceClient? createHeadlessWatchFaceClient(String id, android.content.ComponentName watchFaceName, androidx.wear.watchface.client.DeviceConfig deviceConfig, @Px int surfaceWidth, @Px int surfaceHeight) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses={ServiceNotBoundException::class, ServiceStartFailureException::class}) public default static suspend Object? createWatchFaceControlClient(android.content.Context context, String watchFacePackageName, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.WatchFaceControlClient>) throws androidx.wear.watchface.client.WatchFaceControlClient.ServiceNotBoundException, androidx.wear.watchface.client.WatchFaceControlClient.ServiceStartFailureException;
+ method @Deprecated @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.DefaultComplicationDataSourcePolicyAndType> getDefaultComplicationDataSourcePoliciesAndType(android.content.ComponentName watchFaceName) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.EditorServiceClient getEditorServiceClient() throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public androidx.wear.watchface.client.InteractiveWatchFaceClient? getInteractiveWatchFaceClientInstance(String instanceId) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public suspend Object? getOrCreateInteractiveWatchFaceClient(String id, androidx.wear.watchface.client.DeviceConfig deviceConfig, androidx.wear.watchface.client.WatchUiState watchUiState, androidx.wear.watchface.style.UserStyleData? userStyle, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.InteractiveWatchFaceClient>) throws android.os.RemoteException;
+ method public default boolean hasComplicationDataCache();
+ field public static final androidx.wear.watchface.client.WatchFaceControlClient.Companion Companion;
+ }
+
+ public static final class WatchFaceControlClient.Companion {
+ method @kotlin.jvm.Throws(exceptionClasses={ServiceNotBoundException::class, ServiceStartFailureException::class}) public suspend Object? createWatchFaceControlClient(android.content.Context context, String watchFacePackageName, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.WatchFaceControlClient>) throws androidx.wear.watchface.client.WatchFaceControlClient.ServiceNotBoundException, androidx.wear.watchface.client.WatchFaceControlClient.ServiceStartFailureException;
+ }
+
+ public static final class WatchFaceControlClient.ServiceNotBoundException extends java.lang.Exception {
+ ctor public WatchFaceControlClient.ServiceNotBoundException();
+ }
+
+ public static final class WatchFaceControlClient.ServiceStartFailureException extends java.lang.Exception {
+ ctor public WatchFaceControlClient.ServiceStartFailureException(optional String message);
+ }
+
+ public final class WatchFaceExceptionKt {
+ }
+
+ public final class WatchFaceId {
+ ctor public WatchFaceId(String id);
+ method public String getId();
+ property public final String id;
+ }
+
+ public interface WatchFaceMetadataClient extends java.lang.AutoCloseable {
+ method public java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotMetadata> getComplicationSlotMetadataMap();
+ method public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
+ method public boolean isUserStyleSchemaStatic();
+ property public abstract boolean isUserStyleSchemaStatic;
+ field public static final androidx.wear.watchface.client.WatchFaceMetadataClient.Companion Companion;
+ }
+
+ public static final class WatchFaceMetadataClient.Companion {
+ method @kotlin.jvm.Throws(exceptionClasses={ServiceNotBoundException::class, ServiceStartFailureException::class, PackageManager.NameNotFoundException::class}) public suspend Object? create(android.content.Context context, android.content.ComponentName watchFaceName, kotlin.coroutines.Continuation<? super androidx.wear.watchface.client.WatchFaceMetadataClient>) throws android.content.pm.PackageManager.NameNotFoundException, androidx.wear.watchface.client.WatchFaceMetadataClient.ServiceNotBoundException, androidx.wear.watchface.client.WatchFaceMetadataClient.ServiceStartFailureException;
+ }
+
+ public static final class WatchFaceMetadataClient.ServiceNotBoundException extends java.lang.Exception {
+ ctor public WatchFaceMetadataClient.ServiceNotBoundException();
+ }
+
+ public static final class WatchFaceMetadataClient.ServiceStartFailureException extends java.lang.Exception {
+ ctor public WatchFaceMetadataClient.ServiceStartFailureException(optional String message);
+ }
+
+ public final class WatchUiState {
+ ctor public WatchUiState(boolean inAmbientMode, int interruptionFilter);
+ method public boolean getInAmbientMode();
+ method public int getInterruptionFilter();
+ property public final boolean inAmbientMode;
+ property public final int interruptionFilter;
+ }
+
+}
+
diff --git a/wear/watchface/watchface-complications-data-source-ktx/api/1.1.0-beta02.txt b/wear/watchface/watchface-complications-data-source-ktx/api/1.1.0-beta02.txt
new file mode 100644
index 0000000..55d30d5
--- /dev/null
+++ b/wear/watchface/watchface-complications-data-source-ktx/api/1.1.0-beta02.txt
@@ -0,0 +1,17 @@
+// Signature format: 4.0
+package androidx.wear.watchface.complications.datasource {
+
+ public abstract class SuspendingComplicationDataSourceService extends androidx.wear.watchface.complications.datasource.ComplicationDataSourceService {
+ ctor public SuspendingComplicationDataSourceService();
+ method public final void onComplicationRequest(androidx.wear.watchface.complications.datasource.ComplicationRequest request, androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.ComplicationRequestListener listener);
+ method @UiThread public abstract suspend Object? onComplicationRequest(androidx.wear.watchface.complications.datasource.ComplicationRequest request, kotlin.coroutines.Continuation<? super androidx.wear.watchface.complications.data.ComplicationData>);
+ }
+
+ public abstract class SuspendingTimelineComplicationDataSourceService extends androidx.wear.watchface.complications.datasource.ComplicationDataSourceService {
+ ctor public SuspendingTimelineComplicationDataSourceService();
+ method public final void onComplicationRequest(androidx.wear.watchface.complications.datasource.ComplicationRequest request, androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.ComplicationRequestListener listener);
+ method @UiThread public abstract suspend Object? onComplicationRequest(androidx.wear.watchface.complications.datasource.ComplicationRequest request, kotlin.coroutines.Continuation<? super androidx.wear.watchface.complications.datasource.ComplicationDataTimeline>);
+ }
+
+}
+
diff --git a/wear/watchface/watchface-complications-data-source-ktx/api/public_plus_experimental_1.1.0-beta02.txt b/wear/watchface/watchface-complications-data-source-ktx/api/public_plus_experimental_1.1.0-beta02.txt
new file mode 100644
index 0000000..55d30d5
--- /dev/null
+++ b/wear/watchface/watchface-complications-data-source-ktx/api/public_plus_experimental_1.1.0-beta02.txt
@@ -0,0 +1,17 @@
+// Signature format: 4.0
+package androidx.wear.watchface.complications.datasource {
+
+ public abstract class SuspendingComplicationDataSourceService extends androidx.wear.watchface.complications.datasource.ComplicationDataSourceService {
+ ctor public SuspendingComplicationDataSourceService();
+ method public final void onComplicationRequest(androidx.wear.watchface.complications.datasource.ComplicationRequest request, androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.ComplicationRequestListener listener);
+ method @UiThread public abstract suspend Object? onComplicationRequest(androidx.wear.watchface.complications.datasource.ComplicationRequest request, kotlin.coroutines.Continuation<? super androidx.wear.watchface.complications.data.ComplicationData>);
+ }
+
+ public abstract class SuspendingTimelineComplicationDataSourceService extends androidx.wear.watchface.complications.datasource.ComplicationDataSourceService {
+ ctor public SuspendingTimelineComplicationDataSourceService();
+ method public final void onComplicationRequest(androidx.wear.watchface.complications.datasource.ComplicationRequest request, androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.ComplicationRequestListener listener);
+ method @UiThread public abstract suspend Object? onComplicationRequest(androidx.wear.watchface.complications.datasource.ComplicationRequest request, kotlin.coroutines.Continuation<? super androidx.wear.watchface.complications.datasource.ComplicationDataTimeline>);
+ }
+
+}
+
diff --git a/wear/watchface/watchface-complications-data-source-ktx/api/res-1.1.0-beta02.txt b/wear/watchface/watchface-complications-data-source-ktx/api/res-1.1.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/watchface/watchface-complications-data-source-ktx/api/res-1.1.0-beta02.txt
diff --git a/wear/watchface/watchface-complications-data-source-ktx/api/restricted_1.1.0-beta02.txt b/wear/watchface/watchface-complications-data-source-ktx/api/restricted_1.1.0-beta02.txt
new file mode 100644
index 0000000..55d30d5
--- /dev/null
+++ b/wear/watchface/watchface-complications-data-source-ktx/api/restricted_1.1.0-beta02.txt
@@ -0,0 +1,17 @@
+// Signature format: 4.0
+package androidx.wear.watchface.complications.datasource {
+
+ public abstract class SuspendingComplicationDataSourceService extends androidx.wear.watchface.complications.datasource.ComplicationDataSourceService {
+ ctor public SuspendingComplicationDataSourceService();
+ method public final void onComplicationRequest(androidx.wear.watchface.complications.datasource.ComplicationRequest request, androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.ComplicationRequestListener listener);
+ method @UiThread public abstract suspend Object? onComplicationRequest(androidx.wear.watchface.complications.datasource.ComplicationRequest request, kotlin.coroutines.Continuation<? super androidx.wear.watchface.complications.data.ComplicationData>);
+ }
+
+ public abstract class SuspendingTimelineComplicationDataSourceService extends androidx.wear.watchface.complications.datasource.ComplicationDataSourceService {
+ ctor public SuspendingTimelineComplicationDataSourceService();
+ method public final void onComplicationRequest(androidx.wear.watchface.complications.datasource.ComplicationRequest request, androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.ComplicationRequestListener listener);
+ method @UiThread public abstract suspend Object? onComplicationRequest(androidx.wear.watchface.complications.datasource.ComplicationRequest request, kotlin.coroutines.Continuation<? super androidx.wear.watchface.complications.datasource.ComplicationDataTimeline>);
+ }
+
+}
+
diff --git a/wear/watchface/watchface-complications-data-source/api/1.1.0-beta02.txt b/wear/watchface/watchface-complications-data-source/api/1.1.0-beta02.txt
new file mode 100644
index 0000000..d57c497
--- /dev/null
+++ b/wear/watchface/watchface-complications-data-source/api/1.1.0-beta02.txt
@@ -0,0 +1,89 @@
+// Signature format: 4.0
+package androidx.wear.watchface.complications.datasource {
+
+ public abstract class ComplicationDataSourceService extends android.app.Service {
+ ctor public ComplicationDataSourceService();
+ method public abstract androidx.wear.watchface.complications.data.ComplicationData? getPreviewData(androidx.wear.watchface.complications.data.ComplicationType type);
+ method public final android.os.IBinder? onBind(android.content.Intent intent);
+ method @MainThread public void onComplicationActivated(int complicationInstanceId, androidx.wear.watchface.complications.data.ComplicationType type);
+ method @MainThread public void onComplicationDeactivated(int complicationInstanceId);
+ method @MainThread public abstract void onComplicationRequest(androidx.wear.watchface.complications.datasource.ComplicationRequest request, androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.ComplicationRequestListener listener);
+ method @MainThread public void onStartImmediateComplicationRequests(int complicationInstanceId);
+ method @MainThread public void onStopImmediateComplicationRequests(int complicationInstanceId);
+ field public static final String ACTION_COMPLICATION_UPDATE_REQUEST = "android.support.wearable.complications.ACTION_COMPLICATION_UPDATE_REQUEST";
+ field public static final String CATEGORY_DATA_SOURCE_CONFIG = "android.support.wearable.complications.category.PROVIDER_CONFIG";
+ field public static final androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.Companion Companion;
+ field public static final String EXTRA_CONFIG_COMPLICATION_ID = "android.support.wearable.complications.EXTRA_CONFIG_COMPLICATION_ID";
+ field public static final String EXTRA_CONFIG_COMPLICATION_TYPE = "android.support.wearable.complications.EXTRA_CONFIG_COMPLICATION_TYPE";
+ field public static final String EXTRA_CONFIG_DATA_SOURCE_COMPONENT = "android.support.wearable.complications.EXTRA_CONFIG_PROVIDER_COMPONENT";
+ field public static final String METADATA_KEY_DATA_SOURCE_CONFIG_ACTION = "android.support.wearable.complications.PROVIDER_CONFIG_ACTION";
+ field public static final String METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED = "androidx.watchface.complications.datasource.DEFAULT_CONFIG_SUPPORTED";
+ field public static final String METADATA_KEY_IMMEDIATE_UPDATE_PERIOD_MILLISECONDS = "androidx.wear.watchface.complications.data.source.IMMEDIATE_UPDATE_PERIOD_MILLISECONDS";
+ field public static final String METADATA_KEY_SAFE_WATCH_FACES = "android.support.wearable.complications.SAFE_WATCH_FACES";
+ field public static final String METADATA_KEY_SUPPORTED_TYPES = "android.support.wearable.complications.SUPPORTED_TYPES";
+ field public static final String METADATA_KEY_UPDATE_PERIOD_SECONDS = "android.support.wearable.complications.UPDATE_PERIOD_SECONDS";
+ }
+
+ public static final class ComplicationDataSourceService.Companion {
+ }
+
+ public static interface ComplicationDataSourceService.ComplicationRequestListener {
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void onComplicationData(androidx.wear.watchface.complications.data.ComplicationData? complicationData) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default void onComplicationDataTimeline(androidx.wear.watchface.complications.datasource.ComplicationDataTimeline? complicationDataTimeline) throws android.os.RemoteException;
+ }
+
+ public interface ComplicationDataSourceUpdateRequester {
+ method public default static androidx.wear.watchface.complications.datasource.ComplicationDataSourceUpdateRequester create(android.content.Context context, android.content.ComponentName complicationDataSourceComponent);
+ method public void requestUpdate(int... complicationInstanceIds);
+ method public void requestUpdateAll();
+ field public static final androidx.wear.watchface.complications.datasource.ComplicationDataSourceUpdateRequester.Companion Companion;
+ }
+
+ public static final class ComplicationDataSourceUpdateRequester.Companion {
+ method public androidx.wear.watchface.complications.datasource.ComplicationDataSourceUpdateRequester create(android.content.Context context, android.content.ComponentName complicationDataSourceComponent);
+ }
+
+ public final class ComplicationDataTimeline {
+ ctor public ComplicationDataTimeline(androidx.wear.watchface.complications.data.ComplicationData defaultComplicationData, java.util.Collection<androidx.wear.watchface.complications.datasource.TimelineEntry> timelineEntries);
+ method public androidx.wear.watchface.complications.data.ComplicationData getDefaultComplicationData();
+ method public java.util.Collection<androidx.wear.watchface.complications.datasource.TimelineEntry> getTimelineEntries();
+ property public final androidx.wear.watchface.complications.data.ComplicationData defaultComplicationData;
+ property public final java.util.Collection<androidx.wear.watchface.complications.datasource.TimelineEntry> timelineEntries;
+ }
+
+ public final class ComplicationDataTimelineKt {
+ }
+
+ public final class ComplicationRequest {
+ ctor public ComplicationRequest(int complicationInstanceId, androidx.wear.watchface.complications.data.ComplicationType complicationType, boolean immediateResponseRequired);
+ ctor @Deprecated public ComplicationRequest(int complicationInstanceId, androidx.wear.watchface.complications.data.ComplicationType complicationType);
+ method public int getComplicationInstanceId();
+ method public androidx.wear.watchface.complications.data.ComplicationType getComplicationType();
+ method public boolean isImmediateResponseRequired();
+ property public final int complicationInstanceId;
+ property public final androidx.wear.watchface.complications.data.ComplicationType complicationType;
+ property public final boolean immediateResponseRequired;
+ }
+
+ public final class TimeInterval {
+ ctor public TimeInterval(java.time.Instant start, java.time.Instant end);
+ method public java.time.Instant getEnd();
+ method public java.time.Instant getStart();
+ method public void setEnd(java.time.Instant);
+ method public void setStart(java.time.Instant);
+ property public final java.time.Instant end;
+ property public final java.time.Instant start;
+ }
+
+ public final class TimelineEntry {
+ ctor public TimelineEntry(androidx.wear.watchface.complications.datasource.TimeInterval validity, androidx.wear.watchface.complications.data.ComplicationData complicationData);
+ method public androidx.wear.watchface.complications.data.ComplicationData getComplicationData();
+ method public androidx.wear.watchface.complications.datasource.TimeInterval getValidity();
+ method public void setComplicationData(androidx.wear.watchface.complications.data.ComplicationData);
+ method public void setValidity(androidx.wear.watchface.complications.datasource.TimeInterval);
+ property public final androidx.wear.watchface.complications.data.ComplicationData complicationData;
+ property public final androidx.wear.watchface.complications.datasource.TimeInterval validity;
+ }
+
+}
+
diff --git a/wear/watchface/watchface-complications-data-source/api/public_plus_experimental_1.1.0-beta02.txt b/wear/watchface/watchface-complications-data-source/api/public_plus_experimental_1.1.0-beta02.txt
new file mode 100644
index 0000000..d57c497
--- /dev/null
+++ b/wear/watchface/watchface-complications-data-source/api/public_plus_experimental_1.1.0-beta02.txt
@@ -0,0 +1,89 @@
+// Signature format: 4.0
+package androidx.wear.watchface.complications.datasource {
+
+ public abstract class ComplicationDataSourceService extends android.app.Service {
+ ctor public ComplicationDataSourceService();
+ method public abstract androidx.wear.watchface.complications.data.ComplicationData? getPreviewData(androidx.wear.watchface.complications.data.ComplicationType type);
+ method public final android.os.IBinder? onBind(android.content.Intent intent);
+ method @MainThread public void onComplicationActivated(int complicationInstanceId, androidx.wear.watchface.complications.data.ComplicationType type);
+ method @MainThread public void onComplicationDeactivated(int complicationInstanceId);
+ method @MainThread public abstract void onComplicationRequest(androidx.wear.watchface.complications.datasource.ComplicationRequest request, androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.ComplicationRequestListener listener);
+ method @MainThread public void onStartImmediateComplicationRequests(int complicationInstanceId);
+ method @MainThread public void onStopImmediateComplicationRequests(int complicationInstanceId);
+ field public static final String ACTION_COMPLICATION_UPDATE_REQUEST = "android.support.wearable.complications.ACTION_COMPLICATION_UPDATE_REQUEST";
+ field public static final String CATEGORY_DATA_SOURCE_CONFIG = "android.support.wearable.complications.category.PROVIDER_CONFIG";
+ field public static final androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.Companion Companion;
+ field public static final String EXTRA_CONFIG_COMPLICATION_ID = "android.support.wearable.complications.EXTRA_CONFIG_COMPLICATION_ID";
+ field public static final String EXTRA_CONFIG_COMPLICATION_TYPE = "android.support.wearable.complications.EXTRA_CONFIG_COMPLICATION_TYPE";
+ field public static final String EXTRA_CONFIG_DATA_SOURCE_COMPONENT = "android.support.wearable.complications.EXTRA_CONFIG_PROVIDER_COMPONENT";
+ field public static final String METADATA_KEY_DATA_SOURCE_CONFIG_ACTION = "android.support.wearable.complications.PROVIDER_CONFIG_ACTION";
+ field public static final String METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED = "androidx.watchface.complications.datasource.DEFAULT_CONFIG_SUPPORTED";
+ field public static final String METADATA_KEY_IMMEDIATE_UPDATE_PERIOD_MILLISECONDS = "androidx.wear.watchface.complications.data.source.IMMEDIATE_UPDATE_PERIOD_MILLISECONDS";
+ field public static final String METADATA_KEY_SAFE_WATCH_FACES = "android.support.wearable.complications.SAFE_WATCH_FACES";
+ field public static final String METADATA_KEY_SUPPORTED_TYPES = "android.support.wearable.complications.SUPPORTED_TYPES";
+ field public static final String METADATA_KEY_UPDATE_PERIOD_SECONDS = "android.support.wearable.complications.UPDATE_PERIOD_SECONDS";
+ }
+
+ public static final class ComplicationDataSourceService.Companion {
+ }
+
+ public static interface ComplicationDataSourceService.ComplicationRequestListener {
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void onComplicationData(androidx.wear.watchface.complications.data.ComplicationData? complicationData) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default void onComplicationDataTimeline(androidx.wear.watchface.complications.datasource.ComplicationDataTimeline? complicationDataTimeline) throws android.os.RemoteException;
+ }
+
+ public interface ComplicationDataSourceUpdateRequester {
+ method public default static androidx.wear.watchface.complications.datasource.ComplicationDataSourceUpdateRequester create(android.content.Context context, android.content.ComponentName complicationDataSourceComponent);
+ method public void requestUpdate(int... complicationInstanceIds);
+ method public void requestUpdateAll();
+ field public static final androidx.wear.watchface.complications.datasource.ComplicationDataSourceUpdateRequester.Companion Companion;
+ }
+
+ public static final class ComplicationDataSourceUpdateRequester.Companion {
+ method public androidx.wear.watchface.complications.datasource.ComplicationDataSourceUpdateRequester create(android.content.Context context, android.content.ComponentName complicationDataSourceComponent);
+ }
+
+ public final class ComplicationDataTimeline {
+ ctor public ComplicationDataTimeline(androidx.wear.watchface.complications.data.ComplicationData defaultComplicationData, java.util.Collection<androidx.wear.watchface.complications.datasource.TimelineEntry> timelineEntries);
+ method public androidx.wear.watchface.complications.data.ComplicationData getDefaultComplicationData();
+ method public java.util.Collection<androidx.wear.watchface.complications.datasource.TimelineEntry> getTimelineEntries();
+ property public final androidx.wear.watchface.complications.data.ComplicationData defaultComplicationData;
+ property public final java.util.Collection<androidx.wear.watchface.complications.datasource.TimelineEntry> timelineEntries;
+ }
+
+ public final class ComplicationDataTimelineKt {
+ }
+
+ public final class ComplicationRequest {
+ ctor public ComplicationRequest(int complicationInstanceId, androidx.wear.watchface.complications.data.ComplicationType complicationType, boolean immediateResponseRequired);
+ ctor @Deprecated public ComplicationRequest(int complicationInstanceId, androidx.wear.watchface.complications.data.ComplicationType complicationType);
+ method public int getComplicationInstanceId();
+ method public androidx.wear.watchface.complications.data.ComplicationType getComplicationType();
+ method public boolean isImmediateResponseRequired();
+ property public final int complicationInstanceId;
+ property public final androidx.wear.watchface.complications.data.ComplicationType complicationType;
+ property public final boolean immediateResponseRequired;
+ }
+
+ public final class TimeInterval {
+ ctor public TimeInterval(java.time.Instant start, java.time.Instant end);
+ method public java.time.Instant getEnd();
+ method public java.time.Instant getStart();
+ method public void setEnd(java.time.Instant);
+ method public void setStart(java.time.Instant);
+ property public final java.time.Instant end;
+ property public final java.time.Instant start;
+ }
+
+ public final class TimelineEntry {
+ ctor public TimelineEntry(androidx.wear.watchface.complications.datasource.TimeInterval validity, androidx.wear.watchface.complications.data.ComplicationData complicationData);
+ method public androidx.wear.watchface.complications.data.ComplicationData getComplicationData();
+ method public androidx.wear.watchface.complications.datasource.TimeInterval getValidity();
+ method public void setComplicationData(androidx.wear.watchface.complications.data.ComplicationData);
+ method public void setValidity(androidx.wear.watchface.complications.datasource.TimeInterval);
+ property public final androidx.wear.watchface.complications.data.ComplicationData complicationData;
+ property public final androidx.wear.watchface.complications.datasource.TimeInterval validity;
+ }
+
+}
+
diff --git a/wear/watchface/watchface-complications-data-source/api/res-1.1.0-beta02.txt b/wear/watchface/watchface-complications-data-source/api/res-1.1.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/watchface/watchface-complications-data-source/api/res-1.1.0-beta02.txt
diff --git a/wear/watchface/watchface-complications-data-source/api/restricted_1.1.0-beta02.txt b/wear/watchface/watchface-complications-data-source/api/restricted_1.1.0-beta02.txt
new file mode 100644
index 0000000..d57c497
--- /dev/null
+++ b/wear/watchface/watchface-complications-data-source/api/restricted_1.1.0-beta02.txt
@@ -0,0 +1,89 @@
+// Signature format: 4.0
+package androidx.wear.watchface.complications.datasource {
+
+ public abstract class ComplicationDataSourceService extends android.app.Service {
+ ctor public ComplicationDataSourceService();
+ method public abstract androidx.wear.watchface.complications.data.ComplicationData? getPreviewData(androidx.wear.watchface.complications.data.ComplicationType type);
+ method public final android.os.IBinder? onBind(android.content.Intent intent);
+ method @MainThread public void onComplicationActivated(int complicationInstanceId, androidx.wear.watchface.complications.data.ComplicationType type);
+ method @MainThread public void onComplicationDeactivated(int complicationInstanceId);
+ method @MainThread public abstract void onComplicationRequest(androidx.wear.watchface.complications.datasource.ComplicationRequest request, androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.ComplicationRequestListener listener);
+ method @MainThread public void onStartImmediateComplicationRequests(int complicationInstanceId);
+ method @MainThread public void onStopImmediateComplicationRequests(int complicationInstanceId);
+ field public static final String ACTION_COMPLICATION_UPDATE_REQUEST = "android.support.wearable.complications.ACTION_COMPLICATION_UPDATE_REQUEST";
+ field public static final String CATEGORY_DATA_SOURCE_CONFIG = "android.support.wearable.complications.category.PROVIDER_CONFIG";
+ field public static final androidx.wear.watchface.complications.datasource.ComplicationDataSourceService.Companion Companion;
+ field public static final String EXTRA_CONFIG_COMPLICATION_ID = "android.support.wearable.complications.EXTRA_CONFIG_COMPLICATION_ID";
+ field public static final String EXTRA_CONFIG_COMPLICATION_TYPE = "android.support.wearable.complications.EXTRA_CONFIG_COMPLICATION_TYPE";
+ field public static final String EXTRA_CONFIG_DATA_SOURCE_COMPONENT = "android.support.wearable.complications.EXTRA_CONFIG_PROVIDER_COMPONENT";
+ field public static final String METADATA_KEY_DATA_SOURCE_CONFIG_ACTION = "android.support.wearable.complications.PROVIDER_CONFIG_ACTION";
+ field public static final String METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED = "androidx.watchface.complications.datasource.DEFAULT_CONFIG_SUPPORTED";
+ field public static final String METADATA_KEY_IMMEDIATE_UPDATE_PERIOD_MILLISECONDS = "androidx.wear.watchface.complications.data.source.IMMEDIATE_UPDATE_PERIOD_MILLISECONDS";
+ field public static final String METADATA_KEY_SAFE_WATCH_FACES = "android.support.wearable.complications.SAFE_WATCH_FACES";
+ field public static final String METADATA_KEY_SUPPORTED_TYPES = "android.support.wearable.complications.SUPPORTED_TYPES";
+ field public static final String METADATA_KEY_UPDATE_PERIOD_SECONDS = "android.support.wearable.complications.UPDATE_PERIOD_SECONDS";
+ }
+
+ public static final class ComplicationDataSourceService.Companion {
+ }
+
+ public static interface ComplicationDataSourceService.ComplicationRequestListener {
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public void onComplicationData(androidx.wear.watchface.complications.data.ComplicationData? complicationData) throws android.os.RemoteException;
+ method @kotlin.jvm.Throws(exceptionClasses=RemoteException::class) public default void onComplicationDataTimeline(androidx.wear.watchface.complications.datasource.ComplicationDataTimeline? complicationDataTimeline) throws android.os.RemoteException;
+ }
+
+ public interface ComplicationDataSourceUpdateRequester {
+ method public default static androidx.wear.watchface.complications.datasource.ComplicationDataSourceUpdateRequester create(android.content.Context context, android.content.ComponentName complicationDataSourceComponent);
+ method public void requestUpdate(int... complicationInstanceIds);
+ method public void requestUpdateAll();
+ field public static final androidx.wear.watchface.complications.datasource.ComplicationDataSourceUpdateRequester.Companion Companion;
+ }
+
+ public static final class ComplicationDataSourceUpdateRequester.Companion {
+ method public androidx.wear.watchface.complications.datasource.ComplicationDataSourceUpdateRequester create(android.content.Context context, android.content.ComponentName complicationDataSourceComponent);
+ }
+
+ public final class ComplicationDataTimeline {
+ ctor public ComplicationDataTimeline(androidx.wear.watchface.complications.data.ComplicationData defaultComplicationData, java.util.Collection<androidx.wear.watchface.complications.datasource.TimelineEntry> timelineEntries);
+ method public androidx.wear.watchface.complications.data.ComplicationData getDefaultComplicationData();
+ method public java.util.Collection<androidx.wear.watchface.complications.datasource.TimelineEntry> getTimelineEntries();
+ property public final androidx.wear.watchface.complications.data.ComplicationData defaultComplicationData;
+ property public final java.util.Collection<androidx.wear.watchface.complications.datasource.TimelineEntry> timelineEntries;
+ }
+
+ public final class ComplicationDataTimelineKt {
+ }
+
+ public final class ComplicationRequest {
+ ctor public ComplicationRequest(int complicationInstanceId, androidx.wear.watchface.complications.data.ComplicationType complicationType, boolean immediateResponseRequired);
+ ctor @Deprecated public ComplicationRequest(int complicationInstanceId, androidx.wear.watchface.complications.data.ComplicationType complicationType);
+ method public int getComplicationInstanceId();
+ method public androidx.wear.watchface.complications.data.ComplicationType getComplicationType();
+ method public boolean isImmediateResponseRequired();
+ property public final int complicationInstanceId;
+ property public final androidx.wear.watchface.complications.data.ComplicationType complicationType;
+ property public final boolean immediateResponseRequired;
+ }
+
+ public final class TimeInterval {
+ ctor public TimeInterval(java.time.Instant start, java.time.Instant end);
+ method public java.time.Instant getEnd();
+ method public java.time.Instant getStart();
+ method public void setEnd(java.time.Instant);
+ method public void setStart(java.time.Instant);
+ property public final java.time.Instant end;
+ property public final java.time.Instant start;
+ }
+
+ public final class TimelineEntry {
+ ctor public TimelineEntry(androidx.wear.watchface.complications.datasource.TimeInterval validity, androidx.wear.watchface.complications.data.ComplicationData complicationData);
+ method public androidx.wear.watchface.complications.data.ComplicationData getComplicationData();
+ method public androidx.wear.watchface.complications.datasource.TimeInterval getValidity();
+ method public void setComplicationData(androidx.wear.watchface.complications.data.ComplicationData);
+ method public void setValidity(androidx.wear.watchface.complications.datasource.TimeInterval);
+ property public final androidx.wear.watchface.complications.data.ComplicationData complicationData;
+ property public final androidx.wear.watchface.complications.datasource.TimeInterval validity;
+ }
+
+}
+
diff --git a/wear/watchface/watchface-complications-data/api/1.1.0-beta02.txt b/wear/watchface/watchface-complications-data/api/1.1.0-beta02.txt
new file mode 100644
index 0000000..cb5f04a
--- /dev/null
+++ b/wear/watchface/watchface-complications-data/api/1.1.0-beta02.txt
@@ -0,0 +1,356 @@
+// Signature format: 4.0
+package androidx.wear.watchface.complications.data {
+
+ public abstract sealed class ComplicationData {
+ method public final android.content.ComponentName? getDataSource();
+ method public java.time.Instant getNextChangeInstant(java.time.Instant afterInstant);
+ method public final android.app.PendingIntent? getTapAction();
+ method public final androidx.wear.watchface.complications.data.ComplicationType getType();
+ method public final androidx.wear.watchface.complications.data.TimeRange getValidTimeRange();
+ method public boolean hasPlaceholderFields();
+ method public final boolean isTapActionLostDueToSerialization();
+ method public final void setTapActionLostDueToSerialization(boolean);
+ property public final android.content.ComponentName? dataSource;
+ property public final android.app.PendingIntent? tapAction;
+ property public final boolean tapActionLostDueToSerialization;
+ property public final androidx.wear.watchface.complications.data.ComplicationType type;
+ property public final androidx.wear.watchface.complications.data.TimeRange validTimeRange;
+ }
+
+ public interface ComplicationText {
+ method public java.time.Instant getNextChangeTime(java.time.Instant afterInstant);
+ method public CharSequence getTextAt(android.content.res.Resources resources, java.time.Instant instant);
+ method public boolean isAlwaysEmpty();
+ method public boolean returnsSameText(java.time.Instant firstInstant, java.time.Instant secondInstant);
+ field public static final androidx.wear.watchface.complications.data.ComplicationText.Companion Companion;
+ field public static final androidx.wear.watchface.complications.data.ComplicationText EMPTY;
+ field public static final androidx.wear.watchface.complications.data.ComplicationText PLACEHOLDER;
+ }
+
+ public static final class ComplicationText.Companion {
+ }
+
+ public enum ComplicationType {
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType EMPTY;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType LONG_TEXT;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType MONOCHROMATIC_IMAGE;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType NOT_CONFIGURED;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType NO_DATA;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType NO_PERMISSION;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType PHOTO_IMAGE;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType RANGED_VALUE;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType SHORT_TEXT;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType SMALL_IMAGE;
+ }
+
+ public final class CountDownTimeReference {
+ ctor public CountDownTimeReference(java.time.Instant instant);
+ method public java.time.Instant getInstant();
+ property public final java.time.Instant instant;
+ }
+
+ public final class CountUpTimeReference {
+ ctor public CountUpTimeReference(java.time.Instant instant);
+ method public java.time.Instant getInstant();
+ property public final java.time.Instant instant;
+ }
+
+ public final class DataKt {
+ }
+
+ public final class EmptyComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ ctor public EmptyComplicationData();
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public final class ImageKt {
+ }
+
+ public final class LongTextComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public androidx.wear.watchface.complications.data.MonochromaticImage? getMonochromaticImage();
+ method public androidx.wear.watchface.complications.data.SmallImage? getSmallImage();
+ method public androidx.wear.watchface.complications.data.ComplicationText getText();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getTitle();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage;
+ property public final androidx.wear.watchface.complications.data.SmallImage? smallImage;
+ property public final androidx.wear.watchface.complications.data.ComplicationText text;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? title;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class LongTextComplicationData.Builder {
+ ctor public LongTextComplicationData.Builder(androidx.wear.watchface.complications.data.ComplicationText text, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData build();
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setMonochromaticImage(androidx.wear.watchface.complications.data.MonochromaticImage? icon);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setSmallImage(androidx.wear.watchface.complications.data.SmallImage? smallImage);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setTitle(androidx.wear.watchface.complications.data.ComplicationText? title);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public final class MonochromaticImage {
+ method public android.graphics.drawable.Icon? getAmbientImage();
+ method public android.graphics.drawable.Icon getImage();
+ property public final android.graphics.drawable.Icon? ambientImage;
+ property public final android.graphics.drawable.Icon image;
+ field public static final androidx.wear.watchface.complications.data.MonochromaticImage PLACEHOLDER;
+ }
+
+ public static final class MonochromaticImage.Builder {
+ ctor public MonochromaticImage.Builder(android.graphics.drawable.Icon image);
+ method public androidx.wear.watchface.complications.data.MonochromaticImage build();
+ method public androidx.wear.watchface.complications.data.MonochromaticImage.Builder setAmbientImage(android.graphics.drawable.Icon? ambientImage);
+ }
+
+ public final class MonochromaticImageComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public androidx.wear.watchface.complications.data.MonochromaticImage getMonochromaticImage();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final androidx.wear.watchface.complications.data.MonochromaticImage monochromaticImage;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class MonochromaticImageComplicationData.Builder {
+ ctor public MonochromaticImageComplicationData.Builder(androidx.wear.watchface.complications.data.MonochromaticImage monochromaticImage, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.MonochromaticImageComplicationData build();
+ method public androidx.wear.watchface.complications.data.MonochromaticImageComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.MonochromaticImageComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.MonochromaticImageComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public final class NoDataComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ ctor public NoDataComplicationData();
+ ctor public NoDataComplicationData(androidx.wear.watchface.complications.data.ComplicationData placeholder);
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public androidx.wear.watchface.complications.data.ComplicationData? getPlaceholder();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final androidx.wear.watchface.complications.data.ComplicationData? placeholder;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public final class NoPermissionComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.MonochromaticImage? getMonochromaticImage();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getText();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getTitle();
+ property public final androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? text;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? title;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class NoPermissionComplicationData.Builder {
+ ctor public NoPermissionComplicationData.Builder();
+ method public androidx.wear.watchface.complications.data.NoPermissionComplicationData build();
+ method public androidx.wear.watchface.complications.data.NoPermissionComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.NoPermissionComplicationData.Builder setMonochromaticImage(androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage);
+ method public androidx.wear.watchface.complications.data.NoPermissionComplicationData.Builder setText(androidx.wear.watchface.complications.data.ComplicationText? text);
+ method public androidx.wear.watchface.complications.data.NoPermissionComplicationData.Builder setTitle(androidx.wear.watchface.complications.data.ComplicationText? title);
+ }
+
+ public final class NotConfiguredComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ ctor public NotConfiguredComplicationData();
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public final class PhotoImageComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public android.graphics.drawable.Icon getPhotoImage();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final android.graphics.drawable.Icon photoImage;
+ field public static final android.graphics.drawable.Icon PLACEHOLDER;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class PhotoImageComplicationData.Builder {
+ ctor public PhotoImageComplicationData.Builder(android.graphics.drawable.Icon photoImage, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.PhotoImageComplicationData build();
+ method public androidx.wear.watchface.complications.data.PhotoImageComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.PhotoImageComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.PhotoImageComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public final class PlainComplicationText implements androidx.wear.watchface.complications.data.ComplicationText {
+ method public java.time.Instant getNextChangeTime(java.time.Instant afterInstant);
+ method public CharSequence getTextAt(android.content.res.Resources resources, java.time.Instant instant);
+ method public boolean isAlwaysEmpty();
+ method public boolean returnsSameText(java.time.Instant firstInstant, java.time.Instant secondInstant);
+ }
+
+ public static final class PlainComplicationText.Builder {
+ ctor public PlainComplicationText.Builder(CharSequence text);
+ method public androidx.wear.watchface.complications.data.PlainComplicationText build();
+ }
+
+ public final class RangedValueComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public float getMax();
+ method public float getMin();
+ method public androidx.wear.watchface.complications.data.MonochromaticImage? getMonochromaticImage();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getText();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getTitle();
+ method public float getValue();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final float max;
+ property public final float min;
+ property public final androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? text;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? title;
+ property public final float value;
+ field public static final float PLACEHOLDER;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class RangedValueComplicationData.Builder {
+ ctor public RangedValueComplicationData.Builder(float value, float min, float max, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData build();
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setMonochromaticImage(androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setText(androidx.wear.watchface.complications.data.ComplicationText? text);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setTitle(androidx.wear.watchface.complications.data.ComplicationText? title);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public final class ShortTextComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public androidx.wear.watchface.complications.data.MonochromaticImage? getMonochromaticImage();
+ method public androidx.wear.watchface.complications.data.ComplicationText getText();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getTitle();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage;
+ property public final androidx.wear.watchface.complications.data.ComplicationText text;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? title;
+ field public static final int MAX_TEXT_LENGTH;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class ShortTextComplicationData.Builder {
+ ctor public ShortTextComplicationData.Builder(androidx.wear.watchface.complications.data.ComplicationText text, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData build();
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData.Builder setMonochromaticImage(androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage);
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData.Builder setTitle(androidx.wear.watchface.complications.data.ComplicationText? title);
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public final class SmallImage {
+ method public android.graphics.drawable.Icon? getAmbientImage();
+ method public android.graphics.drawable.Icon getImage();
+ method public androidx.wear.watchface.complications.data.SmallImageType getType();
+ property public final android.graphics.drawable.Icon? ambientImage;
+ property public final android.graphics.drawable.Icon image;
+ property public final androidx.wear.watchface.complications.data.SmallImageType type;
+ field public static final androidx.wear.watchface.complications.data.SmallImage PLACEHOLDER;
+ }
+
+ public static final class SmallImage.Builder {
+ ctor public SmallImage.Builder(android.graphics.drawable.Icon image, androidx.wear.watchface.complications.data.SmallImageType type);
+ method public androidx.wear.watchface.complications.data.SmallImage build();
+ method public androidx.wear.watchface.complications.data.SmallImage.Builder setAmbientImage(android.graphics.drawable.Icon? ambientImage);
+ }
+
+ public final class SmallImageComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public androidx.wear.watchface.complications.data.SmallImage getSmallImage();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final androidx.wear.watchface.complications.data.SmallImage smallImage;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class SmallImageComplicationData.Builder {
+ ctor public SmallImageComplicationData.Builder(androidx.wear.watchface.complications.data.SmallImage smallImage, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.SmallImageComplicationData build();
+ method public androidx.wear.watchface.complications.data.SmallImageComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.SmallImageComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.SmallImageComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public enum SmallImageType {
+ enum_constant public static final androidx.wear.watchface.complications.data.SmallImageType ICON;
+ enum_constant public static final androidx.wear.watchface.complications.data.SmallImageType PHOTO;
+ }
+
+ public final class TextKt {
+ }
+
+ public final class TimeDifferenceComplicationText implements androidx.wear.watchface.complications.data.ComplicationText {
+ method public java.util.concurrent.TimeUnit? getMinimumTimeUnit();
+ method public java.time.Instant getNextChangeTime(java.time.Instant afterInstant);
+ method public CharSequence getTextAt(android.content.res.Resources resources, java.time.Instant instant);
+ method public boolean isAlwaysEmpty();
+ method public boolean returnsSameText(java.time.Instant firstInstant, java.time.Instant secondInstant);
+ }
+
+ public static final class TimeDifferenceComplicationText.Builder {
+ ctor public TimeDifferenceComplicationText.Builder(androidx.wear.watchface.complications.data.TimeDifferenceStyle style, androidx.wear.watchface.complications.data.CountUpTimeReference countUpTimeReference);
+ ctor public TimeDifferenceComplicationText.Builder(androidx.wear.watchface.complications.data.TimeDifferenceStyle style, androidx.wear.watchface.complications.data.CountDownTimeReference countDownTimeReference);
+ method public androidx.wear.watchface.complications.data.TimeDifferenceComplicationText build();
+ method public androidx.wear.watchface.complications.data.TimeDifferenceComplicationText.Builder setDisplayAsNow(boolean displayAsNow);
+ method public androidx.wear.watchface.complications.data.TimeDifferenceComplicationText.Builder setMinimumTimeUnit(java.util.concurrent.TimeUnit? minimumUnit);
+ method public androidx.wear.watchface.complications.data.TimeDifferenceComplicationText.Builder setText(CharSequence? text);
+ }
+
+ public enum TimeDifferenceStyle {
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeDifferenceStyle SHORT_DUAL_UNIT;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeDifferenceStyle SHORT_SINGLE_UNIT;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeDifferenceStyle SHORT_WORDS_SINGLE_UNIT;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeDifferenceStyle STOPWATCH;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeDifferenceStyle WORDS_SINGLE_UNIT;
+ }
+
+ public final class TimeFormatComplicationText implements androidx.wear.watchface.complications.data.ComplicationText {
+ method public java.time.Instant getNextChangeTime(java.time.Instant afterInstant);
+ method public CharSequence getTextAt(android.content.res.Resources resources, java.time.Instant instant);
+ method public boolean isAlwaysEmpty();
+ method public boolean returnsSameText(java.time.Instant firstInstant, java.time.Instant secondInstant);
+ }
+
+ public static final class TimeFormatComplicationText.Builder {
+ ctor public TimeFormatComplicationText.Builder(String format);
+ method public androidx.wear.watchface.complications.data.TimeFormatComplicationText build();
+ method public androidx.wear.watchface.complications.data.TimeFormatComplicationText.Builder setStyle(androidx.wear.watchface.complications.data.TimeFormatStyle style);
+ method public androidx.wear.watchface.complications.data.TimeFormatComplicationText.Builder setText(CharSequence text);
+ method public androidx.wear.watchface.complications.data.TimeFormatComplicationText.Builder setTimeZone(android.icu.util.TimeZone timeZone);
+ }
+
+ public enum TimeFormatStyle {
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeFormatStyle DEFAULT;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeFormatStyle LOWER_CASE;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeFormatStyle UPPER_CASE;
+ }
+
+ public final class TimeRange {
+ method public static androidx.wear.watchface.complications.data.TimeRange after(java.time.Instant startInstant);
+ method public static androidx.wear.watchface.complications.data.TimeRange before(java.time.Instant endInstant);
+ method public static androidx.wear.watchface.complications.data.TimeRange between(java.time.Instant startInstant, java.time.Instant endInstant);
+ method public operator boolean contains(java.time.Instant dateTimeMillis);
+ method public java.time.Instant getEndDateTimeMillis();
+ method public java.time.Instant getStartDateTimeMillis();
+ property public final java.time.Instant endDateTimeMillis;
+ property public final java.time.Instant startDateTimeMillis;
+ field public static final androidx.wear.watchface.complications.data.TimeRange ALWAYS;
+ field public static final androidx.wear.watchface.complications.data.TimeRange.Companion Companion;
+ }
+
+ public static final class TimeRange.Companion {
+ method public androidx.wear.watchface.complications.data.TimeRange after(java.time.Instant startInstant);
+ method public androidx.wear.watchface.complications.data.TimeRange before(java.time.Instant endInstant);
+ method public androidx.wear.watchface.complications.data.TimeRange between(java.time.Instant startInstant, java.time.Instant endInstant);
+ }
+
+ public final class TypeKt {
+ }
+
+}
+
+package androidx.wear.watchface.utility {
+
+ public final class TraceEventKt {
+ }
+
+}
+
diff --git a/wear/watchface/watchface-complications-data/api/public_plus_experimental_1.1.0-beta02.txt b/wear/watchface/watchface-complications-data/api/public_plus_experimental_1.1.0-beta02.txt
new file mode 100644
index 0000000..cb5f04a
--- /dev/null
+++ b/wear/watchface/watchface-complications-data/api/public_plus_experimental_1.1.0-beta02.txt
@@ -0,0 +1,356 @@
+// Signature format: 4.0
+package androidx.wear.watchface.complications.data {
+
+ public abstract sealed class ComplicationData {
+ method public final android.content.ComponentName? getDataSource();
+ method public java.time.Instant getNextChangeInstant(java.time.Instant afterInstant);
+ method public final android.app.PendingIntent? getTapAction();
+ method public final androidx.wear.watchface.complications.data.ComplicationType getType();
+ method public final androidx.wear.watchface.complications.data.TimeRange getValidTimeRange();
+ method public boolean hasPlaceholderFields();
+ method public final boolean isTapActionLostDueToSerialization();
+ method public final void setTapActionLostDueToSerialization(boolean);
+ property public final android.content.ComponentName? dataSource;
+ property public final android.app.PendingIntent? tapAction;
+ property public final boolean tapActionLostDueToSerialization;
+ property public final androidx.wear.watchface.complications.data.ComplicationType type;
+ property public final androidx.wear.watchface.complications.data.TimeRange validTimeRange;
+ }
+
+ public interface ComplicationText {
+ method public java.time.Instant getNextChangeTime(java.time.Instant afterInstant);
+ method public CharSequence getTextAt(android.content.res.Resources resources, java.time.Instant instant);
+ method public boolean isAlwaysEmpty();
+ method public boolean returnsSameText(java.time.Instant firstInstant, java.time.Instant secondInstant);
+ field public static final androidx.wear.watchface.complications.data.ComplicationText.Companion Companion;
+ field public static final androidx.wear.watchface.complications.data.ComplicationText EMPTY;
+ field public static final androidx.wear.watchface.complications.data.ComplicationText PLACEHOLDER;
+ }
+
+ public static final class ComplicationText.Companion {
+ }
+
+ public enum ComplicationType {
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType EMPTY;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType LONG_TEXT;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType MONOCHROMATIC_IMAGE;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType NOT_CONFIGURED;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType NO_DATA;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType NO_PERMISSION;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType PHOTO_IMAGE;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType RANGED_VALUE;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType SHORT_TEXT;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType SMALL_IMAGE;
+ }
+
+ public final class CountDownTimeReference {
+ ctor public CountDownTimeReference(java.time.Instant instant);
+ method public java.time.Instant getInstant();
+ property public final java.time.Instant instant;
+ }
+
+ public final class CountUpTimeReference {
+ ctor public CountUpTimeReference(java.time.Instant instant);
+ method public java.time.Instant getInstant();
+ property public final java.time.Instant instant;
+ }
+
+ public final class DataKt {
+ }
+
+ public final class EmptyComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ ctor public EmptyComplicationData();
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public final class ImageKt {
+ }
+
+ public final class LongTextComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public androidx.wear.watchface.complications.data.MonochromaticImage? getMonochromaticImage();
+ method public androidx.wear.watchface.complications.data.SmallImage? getSmallImage();
+ method public androidx.wear.watchface.complications.data.ComplicationText getText();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getTitle();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage;
+ property public final androidx.wear.watchface.complications.data.SmallImage? smallImage;
+ property public final androidx.wear.watchface.complications.data.ComplicationText text;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? title;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class LongTextComplicationData.Builder {
+ ctor public LongTextComplicationData.Builder(androidx.wear.watchface.complications.data.ComplicationText text, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData build();
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setMonochromaticImage(androidx.wear.watchface.complications.data.MonochromaticImage? icon);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setSmallImage(androidx.wear.watchface.complications.data.SmallImage? smallImage);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setTitle(androidx.wear.watchface.complications.data.ComplicationText? title);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public final class MonochromaticImage {
+ method public android.graphics.drawable.Icon? getAmbientImage();
+ method public android.graphics.drawable.Icon getImage();
+ property public final android.graphics.drawable.Icon? ambientImage;
+ property public final android.graphics.drawable.Icon image;
+ field public static final androidx.wear.watchface.complications.data.MonochromaticImage PLACEHOLDER;
+ }
+
+ public static final class MonochromaticImage.Builder {
+ ctor public MonochromaticImage.Builder(android.graphics.drawable.Icon image);
+ method public androidx.wear.watchface.complications.data.MonochromaticImage build();
+ method public androidx.wear.watchface.complications.data.MonochromaticImage.Builder setAmbientImage(android.graphics.drawable.Icon? ambientImage);
+ }
+
+ public final class MonochromaticImageComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public androidx.wear.watchface.complications.data.MonochromaticImage getMonochromaticImage();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final androidx.wear.watchface.complications.data.MonochromaticImage monochromaticImage;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class MonochromaticImageComplicationData.Builder {
+ ctor public MonochromaticImageComplicationData.Builder(androidx.wear.watchface.complications.data.MonochromaticImage monochromaticImage, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.MonochromaticImageComplicationData build();
+ method public androidx.wear.watchface.complications.data.MonochromaticImageComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.MonochromaticImageComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.MonochromaticImageComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public final class NoDataComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ ctor public NoDataComplicationData();
+ ctor public NoDataComplicationData(androidx.wear.watchface.complications.data.ComplicationData placeholder);
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public androidx.wear.watchface.complications.data.ComplicationData? getPlaceholder();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final androidx.wear.watchface.complications.data.ComplicationData? placeholder;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public final class NoPermissionComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.MonochromaticImage? getMonochromaticImage();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getText();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getTitle();
+ property public final androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? text;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? title;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class NoPermissionComplicationData.Builder {
+ ctor public NoPermissionComplicationData.Builder();
+ method public androidx.wear.watchface.complications.data.NoPermissionComplicationData build();
+ method public androidx.wear.watchface.complications.data.NoPermissionComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.NoPermissionComplicationData.Builder setMonochromaticImage(androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage);
+ method public androidx.wear.watchface.complications.data.NoPermissionComplicationData.Builder setText(androidx.wear.watchface.complications.data.ComplicationText? text);
+ method public androidx.wear.watchface.complications.data.NoPermissionComplicationData.Builder setTitle(androidx.wear.watchface.complications.data.ComplicationText? title);
+ }
+
+ public final class NotConfiguredComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ ctor public NotConfiguredComplicationData();
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public final class PhotoImageComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public android.graphics.drawable.Icon getPhotoImage();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final android.graphics.drawable.Icon photoImage;
+ field public static final android.graphics.drawable.Icon PLACEHOLDER;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class PhotoImageComplicationData.Builder {
+ ctor public PhotoImageComplicationData.Builder(android.graphics.drawable.Icon photoImage, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.PhotoImageComplicationData build();
+ method public androidx.wear.watchface.complications.data.PhotoImageComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.PhotoImageComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.PhotoImageComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public final class PlainComplicationText implements androidx.wear.watchface.complications.data.ComplicationText {
+ method public java.time.Instant getNextChangeTime(java.time.Instant afterInstant);
+ method public CharSequence getTextAt(android.content.res.Resources resources, java.time.Instant instant);
+ method public boolean isAlwaysEmpty();
+ method public boolean returnsSameText(java.time.Instant firstInstant, java.time.Instant secondInstant);
+ }
+
+ public static final class PlainComplicationText.Builder {
+ ctor public PlainComplicationText.Builder(CharSequence text);
+ method public androidx.wear.watchface.complications.data.PlainComplicationText build();
+ }
+
+ public final class RangedValueComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public float getMax();
+ method public float getMin();
+ method public androidx.wear.watchface.complications.data.MonochromaticImage? getMonochromaticImage();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getText();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getTitle();
+ method public float getValue();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final float max;
+ property public final float min;
+ property public final androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? text;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? title;
+ property public final float value;
+ field public static final float PLACEHOLDER;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class RangedValueComplicationData.Builder {
+ ctor public RangedValueComplicationData.Builder(float value, float min, float max, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData build();
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setMonochromaticImage(androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setText(androidx.wear.watchface.complications.data.ComplicationText? text);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setTitle(androidx.wear.watchface.complications.data.ComplicationText? title);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public final class ShortTextComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public androidx.wear.watchface.complications.data.MonochromaticImage? getMonochromaticImage();
+ method public androidx.wear.watchface.complications.data.ComplicationText getText();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getTitle();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage;
+ property public final androidx.wear.watchface.complications.data.ComplicationText text;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? title;
+ field public static final int MAX_TEXT_LENGTH;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class ShortTextComplicationData.Builder {
+ ctor public ShortTextComplicationData.Builder(androidx.wear.watchface.complications.data.ComplicationText text, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData build();
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData.Builder setMonochromaticImage(androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage);
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData.Builder setTitle(androidx.wear.watchface.complications.data.ComplicationText? title);
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public final class SmallImage {
+ method public android.graphics.drawable.Icon? getAmbientImage();
+ method public android.graphics.drawable.Icon getImage();
+ method public androidx.wear.watchface.complications.data.SmallImageType getType();
+ property public final android.graphics.drawable.Icon? ambientImage;
+ property public final android.graphics.drawable.Icon image;
+ property public final androidx.wear.watchface.complications.data.SmallImageType type;
+ field public static final androidx.wear.watchface.complications.data.SmallImage PLACEHOLDER;
+ }
+
+ public static final class SmallImage.Builder {
+ ctor public SmallImage.Builder(android.graphics.drawable.Icon image, androidx.wear.watchface.complications.data.SmallImageType type);
+ method public androidx.wear.watchface.complications.data.SmallImage build();
+ method public androidx.wear.watchface.complications.data.SmallImage.Builder setAmbientImage(android.graphics.drawable.Icon? ambientImage);
+ }
+
+ public final class SmallImageComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public androidx.wear.watchface.complications.data.SmallImage getSmallImage();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final androidx.wear.watchface.complications.data.SmallImage smallImage;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class SmallImageComplicationData.Builder {
+ ctor public SmallImageComplicationData.Builder(androidx.wear.watchface.complications.data.SmallImage smallImage, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.SmallImageComplicationData build();
+ method public androidx.wear.watchface.complications.data.SmallImageComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.SmallImageComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.SmallImageComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public enum SmallImageType {
+ enum_constant public static final androidx.wear.watchface.complications.data.SmallImageType ICON;
+ enum_constant public static final androidx.wear.watchface.complications.data.SmallImageType PHOTO;
+ }
+
+ public final class TextKt {
+ }
+
+ public final class TimeDifferenceComplicationText implements androidx.wear.watchface.complications.data.ComplicationText {
+ method public java.util.concurrent.TimeUnit? getMinimumTimeUnit();
+ method public java.time.Instant getNextChangeTime(java.time.Instant afterInstant);
+ method public CharSequence getTextAt(android.content.res.Resources resources, java.time.Instant instant);
+ method public boolean isAlwaysEmpty();
+ method public boolean returnsSameText(java.time.Instant firstInstant, java.time.Instant secondInstant);
+ }
+
+ public static final class TimeDifferenceComplicationText.Builder {
+ ctor public TimeDifferenceComplicationText.Builder(androidx.wear.watchface.complications.data.TimeDifferenceStyle style, androidx.wear.watchface.complications.data.CountUpTimeReference countUpTimeReference);
+ ctor public TimeDifferenceComplicationText.Builder(androidx.wear.watchface.complications.data.TimeDifferenceStyle style, androidx.wear.watchface.complications.data.CountDownTimeReference countDownTimeReference);
+ method public androidx.wear.watchface.complications.data.TimeDifferenceComplicationText build();
+ method public androidx.wear.watchface.complications.data.TimeDifferenceComplicationText.Builder setDisplayAsNow(boolean displayAsNow);
+ method public androidx.wear.watchface.complications.data.TimeDifferenceComplicationText.Builder setMinimumTimeUnit(java.util.concurrent.TimeUnit? minimumUnit);
+ method public androidx.wear.watchface.complications.data.TimeDifferenceComplicationText.Builder setText(CharSequence? text);
+ }
+
+ public enum TimeDifferenceStyle {
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeDifferenceStyle SHORT_DUAL_UNIT;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeDifferenceStyle SHORT_SINGLE_UNIT;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeDifferenceStyle SHORT_WORDS_SINGLE_UNIT;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeDifferenceStyle STOPWATCH;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeDifferenceStyle WORDS_SINGLE_UNIT;
+ }
+
+ public final class TimeFormatComplicationText implements androidx.wear.watchface.complications.data.ComplicationText {
+ method public java.time.Instant getNextChangeTime(java.time.Instant afterInstant);
+ method public CharSequence getTextAt(android.content.res.Resources resources, java.time.Instant instant);
+ method public boolean isAlwaysEmpty();
+ method public boolean returnsSameText(java.time.Instant firstInstant, java.time.Instant secondInstant);
+ }
+
+ public static final class TimeFormatComplicationText.Builder {
+ ctor public TimeFormatComplicationText.Builder(String format);
+ method public androidx.wear.watchface.complications.data.TimeFormatComplicationText build();
+ method public androidx.wear.watchface.complications.data.TimeFormatComplicationText.Builder setStyle(androidx.wear.watchface.complications.data.TimeFormatStyle style);
+ method public androidx.wear.watchface.complications.data.TimeFormatComplicationText.Builder setText(CharSequence text);
+ method public androidx.wear.watchface.complications.data.TimeFormatComplicationText.Builder setTimeZone(android.icu.util.TimeZone timeZone);
+ }
+
+ public enum TimeFormatStyle {
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeFormatStyle DEFAULT;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeFormatStyle LOWER_CASE;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeFormatStyle UPPER_CASE;
+ }
+
+ public final class TimeRange {
+ method public static androidx.wear.watchface.complications.data.TimeRange after(java.time.Instant startInstant);
+ method public static androidx.wear.watchface.complications.data.TimeRange before(java.time.Instant endInstant);
+ method public static androidx.wear.watchface.complications.data.TimeRange between(java.time.Instant startInstant, java.time.Instant endInstant);
+ method public operator boolean contains(java.time.Instant dateTimeMillis);
+ method public java.time.Instant getEndDateTimeMillis();
+ method public java.time.Instant getStartDateTimeMillis();
+ property public final java.time.Instant endDateTimeMillis;
+ property public final java.time.Instant startDateTimeMillis;
+ field public static final androidx.wear.watchface.complications.data.TimeRange ALWAYS;
+ field public static final androidx.wear.watchface.complications.data.TimeRange.Companion Companion;
+ }
+
+ public static final class TimeRange.Companion {
+ method public androidx.wear.watchface.complications.data.TimeRange after(java.time.Instant startInstant);
+ method public androidx.wear.watchface.complications.data.TimeRange before(java.time.Instant endInstant);
+ method public androidx.wear.watchface.complications.data.TimeRange between(java.time.Instant startInstant, java.time.Instant endInstant);
+ }
+
+ public final class TypeKt {
+ }
+
+}
+
+package androidx.wear.watchface.utility {
+
+ public final class TraceEventKt {
+ }
+
+}
+
diff --git a/wear/watchface/watchface-complications-data/api/res-1.1.0-beta02.txt b/wear/watchface/watchface-complications-data/api/res-1.1.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/watchface/watchface-complications-data/api/res-1.1.0-beta02.txt
diff --git a/wear/watchface/watchface-complications-data/api/restricted_1.1.0-beta02.txt b/wear/watchface/watchface-complications-data/api/restricted_1.1.0-beta02.txt
new file mode 100644
index 0000000..355944f
--- /dev/null
+++ b/wear/watchface/watchface-complications-data/api/restricted_1.1.0-beta02.txt
@@ -0,0 +1,371 @@
+// Signature format: 4.0
+package androidx.wear.watchface.complications.data {
+
+ public abstract sealed class ComplicationData {
+ method public final android.content.ComponentName? getDataSource();
+ method public java.time.Instant getNextChangeInstant(java.time.Instant afterInstant);
+ method public final android.app.PendingIntent? getTapAction();
+ method public final androidx.wear.watchface.complications.data.ComplicationType getType();
+ method public final androidx.wear.watchface.complications.data.TimeRange getValidTimeRange();
+ method public boolean hasPlaceholderFields();
+ method public final boolean isTapActionLostDueToSerialization();
+ method public final void setTapActionLostDueToSerialization(boolean);
+ property public final android.content.ComponentName? dataSource;
+ property public final android.app.PendingIntent? tapAction;
+ property public final boolean tapActionLostDueToSerialization;
+ property public final androidx.wear.watchface.complications.data.ComplicationType type;
+ property public final androidx.wear.watchface.complications.data.TimeRange validTimeRange;
+ }
+
+ public interface ComplicationText {
+ method public java.time.Instant getNextChangeTime(java.time.Instant afterInstant);
+ method public CharSequence getTextAt(android.content.res.Resources resources, java.time.Instant instant);
+ method public boolean isAlwaysEmpty();
+ method public boolean returnsSameText(java.time.Instant firstInstant, java.time.Instant secondInstant);
+ field public static final androidx.wear.watchface.complications.data.ComplicationText.Companion Companion;
+ field public static final androidx.wear.watchface.complications.data.ComplicationText EMPTY;
+ field public static final androidx.wear.watchface.complications.data.ComplicationText PLACEHOLDER;
+ }
+
+ public static final class ComplicationText.Companion {
+ }
+
+ public enum ComplicationType {
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType EMPTY;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType LONG_TEXT;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType MONOCHROMATIC_IMAGE;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType NOT_CONFIGURED;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType NO_DATA;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType NO_PERMISSION;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType PHOTO_IMAGE;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType RANGED_VALUE;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType SHORT_TEXT;
+ enum_constant public static final androidx.wear.watchface.complications.data.ComplicationType SMALL_IMAGE;
+ }
+
+ public final class CountDownTimeReference {
+ ctor public CountDownTimeReference(java.time.Instant instant);
+ method public java.time.Instant getInstant();
+ property public final java.time.Instant instant;
+ }
+
+ public final class CountUpTimeReference {
+ ctor public CountUpTimeReference(java.time.Instant instant);
+ method public java.time.Instant getInstant();
+ property public final java.time.Instant instant;
+ }
+
+ public final class DataKt {
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public final class DefaultComplicationDataSourcePolicyWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public DefaultComplicationDataSourcePolicyWireFormat(java.util.List<android.content.ComponentName!>, int, int, int, int);
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.complications.data.DefaultComplicationDataSourcePolicyWireFormat!>! CREATOR;
+ field @androidx.versionedparcelable.ParcelField(1) public java.util.List<android.content.ComponentName!> mDefaultDataSourcesToTry;
+ field @androidx.versionedparcelable.ParcelField(3) public int mDefaultType;
+ field @androidx.versionedparcelable.ParcelField(2) public int mFallbackSystemDataSource;
+ field @androidx.versionedparcelable.ParcelField(4) public int mPrimaryDataSourceDefaultType;
+ field @androidx.versionedparcelable.ParcelField(5) public int mSecondaryDataSourceDefaultType;
+ }
+
+ public final class EmptyComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ ctor public EmptyComplicationData();
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public final class ImageKt {
+ }
+
+ public final class LongTextComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public androidx.wear.watchface.complications.data.MonochromaticImage? getMonochromaticImage();
+ method public androidx.wear.watchface.complications.data.SmallImage? getSmallImage();
+ method public androidx.wear.watchface.complications.data.ComplicationText getText();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getTitle();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage;
+ property public final androidx.wear.watchface.complications.data.SmallImage? smallImage;
+ property public final androidx.wear.watchface.complications.data.ComplicationText text;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? title;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class LongTextComplicationData.Builder {
+ ctor public LongTextComplicationData.Builder(androidx.wear.watchface.complications.data.ComplicationText text, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData build();
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setMonochromaticImage(androidx.wear.watchface.complications.data.MonochromaticImage? icon);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setSmallImage(androidx.wear.watchface.complications.data.SmallImage? smallImage);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setTitle(androidx.wear.watchface.complications.data.ComplicationText? title);
+ method public androidx.wear.watchface.complications.data.LongTextComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public final class MonochromaticImage {
+ method public android.graphics.drawable.Icon? getAmbientImage();
+ method public android.graphics.drawable.Icon getImage();
+ property public final android.graphics.drawable.Icon? ambientImage;
+ property public final android.graphics.drawable.Icon image;
+ field public static final androidx.wear.watchface.complications.data.MonochromaticImage PLACEHOLDER;
+ }
+
+ public static final class MonochromaticImage.Builder {
+ ctor public MonochromaticImage.Builder(android.graphics.drawable.Icon image);
+ method public androidx.wear.watchface.complications.data.MonochromaticImage build();
+ method public androidx.wear.watchface.complications.data.MonochromaticImage.Builder setAmbientImage(android.graphics.drawable.Icon? ambientImage);
+ }
+
+ public final class MonochromaticImageComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public androidx.wear.watchface.complications.data.MonochromaticImage getMonochromaticImage();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final androidx.wear.watchface.complications.data.MonochromaticImage monochromaticImage;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class MonochromaticImageComplicationData.Builder {
+ ctor public MonochromaticImageComplicationData.Builder(androidx.wear.watchface.complications.data.MonochromaticImage monochromaticImage, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.MonochromaticImageComplicationData build();
+ method public androidx.wear.watchface.complications.data.MonochromaticImageComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.MonochromaticImageComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.MonochromaticImageComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public final class NoDataComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ ctor public NoDataComplicationData();
+ ctor public NoDataComplicationData(androidx.wear.watchface.complications.data.ComplicationData placeholder);
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public androidx.wear.watchface.complications.data.ComplicationData? getPlaceholder();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final androidx.wear.watchface.complications.data.ComplicationData? placeholder;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public final class NoPermissionComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.MonochromaticImage? getMonochromaticImage();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getText();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getTitle();
+ property public final androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? text;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? title;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class NoPermissionComplicationData.Builder {
+ ctor public NoPermissionComplicationData.Builder();
+ method public androidx.wear.watchface.complications.data.NoPermissionComplicationData build();
+ method public androidx.wear.watchface.complications.data.NoPermissionComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.NoPermissionComplicationData.Builder setMonochromaticImage(androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage);
+ method public androidx.wear.watchface.complications.data.NoPermissionComplicationData.Builder setText(androidx.wear.watchface.complications.data.ComplicationText? text);
+ method public androidx.wear.watchface.complications.data.NoPermissionComplicationData.Builder setTitle(androidx.wear.watchface.complications.data.ComplicationText? title);
+ }
+
+ public final class NotConfiguredComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ ctor public NotConfiguredComplicationData();
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public final class PhotoImageComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public android.graphics.drawable.Icon getPhotoImage();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final android.graphics.drawable.Icon photoImage;
+ field public static final android.graphics.drawable.Icon PLACEHOLDER;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class PhotoImageComplicationData.Builder {
+ ctor public PhotoImageComplicationData.Builder(android.graphics.drawable.Icon photoImage, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.PhotoImageComplicationData build();
+ method public androidx.wear.watchface.complications.data.PhotoImageComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.PhotoImageComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.PhotoImageComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public final class PlainComplicationText implements androidx.wear.watchface.complications.data.ComplicationText {
+ method public java.time.Instant getNextChangeTime(java.time.Instant afterInstant);
+ method public CharSequence getTextAt(android.content.res.Resources resources, java.time.Instant instant);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.SUBCLASSES) public android.support.wearable.complications.TimeDependentText getTimeDependentText();
+ method public boolean isAlwaysEmpty();
+ method public boolean returnsSameText(java.time.Instant firstInstant, java.time.Instant secondInstant);
+ }
+
+ public static final class PlainComplicationText.Builder {
+ ctor public PlainComplicationText.Builder(CharSequence text);
+ method public androidx.wear.watchface.complications.data.PlainComplicationText build();
+ }
+
+ public final class RangedValueComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public float getMax();
+ method public float getMin();
+ method public androidx.wear.watchface.complications.data.MonochromaticImage? getMonochromaticImage();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getText();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getTitle();
+ method public float getValue();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final float max;
+ property public final float min;
+ property public final androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? text;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? title;
+ property public final float value;
+ field public static final float PLACEHOLDER;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class RangedValueComplicationData.Builder {
+ ctor public RangedValueComplicationData.Builder(float value, float min, float max, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData build();
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setMonochromaticImage(androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setText(androidx.wear.watchface.complications.data.ComplicationText? text);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setTitle(androidx.wear.watchface.complications.data.ComplicationText? title);
+ method public androidx.wear.watchface.complications.data.RangedValueComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public final class ShortTextComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public androidx.wear.watchface.complications.data.MonochromaticImage? getMonochromaticImage();
+ method public androidx.wear.watchface.complications.data.ComplicationText getText();
+ method public androidx.wear.watchface.complications.data.ComplicationText? getTitle();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage;
+ property public final androidx.wear.watchface.complications.data.ComplicationText text;
+ property public final androidx.wear.watchface.complications.data.ComplicationText? title;
+ field public static final int MAX_TEXT_LENGTH;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class ShortTextComplicationData.Builder {
+ ctor public ShortTextComplicationData.Builder(androidx.wear.watchface.complications.data.ComplicationText text, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData build();
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData.Builder setMonochromaticImage(androidx.wear.watchface.complications.data.MonochromaticImage? monochromaticImage);
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData.Builder setTitle(androidx.wear.watchface.complications.data.ComplicationText? title);
+ method public androidx.wear.watchface.complications.data.ShortTextComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public final class SmallImage {
+ method public android.graphics.drawable.Icon? getAmbientImage();
+ method public android.graphics.drawable.Icon getImage();
+ method public androidx.wear.watchface.complications.data.SmallImageType getType();
+ property public final android.graphics.drawable.Icon? ambientImage;
+ property public final android.graphics.drawable.Icon image;
+ property public final androidx.wear.watchface.complications.data.SmallImageType type;
+ field public static final androidx.wear.watchface.complications.data.SmallImage PLACEHOLDER;
+ }
+
+ public static final class SmallImage.Builder {
+ ctor public SmallImage.Builder(android.graphics.drawable.Icon image, androidx.wear.watchface.complications.data.SmallImageType type);
+ method public androidx.wear.watchface.complications.data.SmallImage build();
+ method public androidx.wear.watchface.complications.data.SmallImage.Builder setAmbientImage(android.graphics.drawable.Icon? ambientImage);
+ }
+
+ public final class SmallImageComplicationData extends androidx.wear.watchface.complications.data.ComplicationData {
+ method public androidx.wear.watchface.complications.data.ComplicationText? getContentDescription();
+ method public androidx.wear.watchface.complications.data.SmallImage getSmallImage();
+ property public final androidx.wear.watchface.complications.data.ComplicationText? contentDescription;
+ property public final androidx.wear.watchface.complications.data.SmallImage smallImage;
+ field public static final androidx.wear.watchface.complications.data.ComplicationType TYPE;
+ }
+
+ public static final class SmallImageComplicationData.Builder {
+ ctor public SmallImageComplicationData.Builder(androidx.wear.watchface.complications.data.SmallImage smallImage, androidx.wear.watchface.complications.data.ComplicationText contentDescription);
+ method public androidx.wear.watchface.complications.data.SmallImageComplicationData build();
+ method public androidx.wear.watchface.complications.data.SmallImageComplicationData.Builder setDataSource(android.content.ComponentName? dataSource);
+ method public androidx.wear.watchface.complications.data.SmallImageComplicationData.Builder setTapAction(android.app.PendingIntent? tapAction);
+ method public androidx.wear.watchface.complications.data.SmallImageComplicationData.Builder setValidTimeRange(androidx.wear.watchface.complications.data.TimeRange? validTimeRange);
+ }
+
+ public enum SmallImageType {
+ enum_constant public static final androidx.wear.watchface.complications.data.SmallImageType ICON;
+ enum_constant public static final androidx.wear.watchface.complications.data.SmallImageType PHOTO;
+ }
+
+ public final class TextKt {
+ }
+
+ public final class TimeDifferenceComplicationText implements androidx.wear.watchface.complications.data.ComplicationText {
+ method public java.util.concurrent.TimeUnit? getMinimumTimeUnit();
+ method public java.time.Instant getNextChangeTime(java.time.Instant afterInstant);
+ method public CharSequence getTextAt(android.content.res.Resources resources, java.time.Instant instant);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.SUBCLASSES) public android.support.wearable.complications.TimeDependentText getTimeDependentText();
+ method public boolean isAlwaysEmpty();
+ method public boolean returnsSameText(java.time.Instant firstInstant, java.time.Instant secondInstant);
+ }
+
+ public static final class TimeDifferenceComplicationText.Builder {
+ ctor public TimeDifferenceComplicationText.Builder(androidx.wear.watchface.complications.data.TimeDifferenceStyle style, androidx.wear.watchface.complications.data.CountUpTimeReference countUpTimeReference);
+ ctor public TimeDifferenceComplicationText.Builder(androidx.wear.watchface.complications.data.TimeDifferenceStyle style, androidx.wear.watchface.complications.data.CountDownTimeReference countDownTimeReference);
+ method public androidx.wear.watchface.complications.data.TimeDifferenceComplicationText build();
+ method public androidx.wear.watchface.complications.data.TimeDifferenceComplicationText.Builder setDisplayAsNow(boolean displayAsNow);
+ method public androidx.wear.watchface.complications.data.TimeDifferenceComplicationText.Builder setMinimumTimeUnit(java.util.concurrent.TimeUnit? minimumUnit);
+ method public androidx.wear.watchface.complications.data.TimeDifferenceComplicationText.Builder setText(CharSequence? text);
+ }
+
+ public enum TimeDifferenceStyle {
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeDifferenceStyle SHORT_DUAL_UNIT;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeDifferenceStyle SHORT_SINGLE_UNIT;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeDifferenceStyle SHORT_WORDS_SINGLE_UNIT;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeDifferenceStyle STOPWATCH;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeDifferenceStyle WORDS_SINGLE_UNIT;
+ }
+
+ public final class TimeFormatComplicationText implements androidx.wear.watchface.complications.data.ComplicationText {
+ method public java.time.Instant getNextChangeTime(java.time.Instant afterInstant);
+ method public CharSequence getTextAt(android.content.res.Resources resources, java.time.Instant instant);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.SUBCLASSES) public android.support.wearable.complications.TimeDependentText getTimeDependentText();
+ method public boolean isAlwaysEmpty();
+ method public boolean returnsSameText(java.time.Instant firstInstant, java.time.Instant secondInstant);
+ }
+
+ public static final class TimeFormatComplicationText.Builder {
+ ctor public TimeFormatComplicationText.Builder(String format);
+ method public androidx.wear.watchface.complications.data.TimeFormatComplicationText build();
+ method public androidx.wear.watchface.complications.data.TimeFormatComplicationText.Builder setStyle(androidx.wear.watchface.complications.data.TimeFormatStyle style);
+ method public androidx.wear.watchface.complications.data.TimeFormatComplicationText.Builder setText(CharSequence text);
+ method public androidx.wear.watchface.complications.data.TimeFormatComplicationText.Builder setTimeZone(android.icu.util.TimeZone timeZone);
+ }
+
+ public enum TimeFormatStyle {
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeFormatStyle DEFAULT;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeFormatStyle LOWER_CASE;
+ enum_constant public static final androidx.wear.watchface.complications.data.TimeFormatStyle UPPER_CASE;
+ }
+
+ public final class TimeRange {
+ method public static androidx.wear.watchface.complications.data.TimeRange after(java.time.Instant startInstant);
+ method public static androidx.wear.watchface.complications.data.TimeRange before(java.time.Instant endInstant);
+ method public static androidx.wear.watchface.complications.data.TimeRange between(java.time.Instant startInstant, java.time.Instant endInstant);
+ method public operator boolean contains(java.time.Instant dateTimeMillis);
+ method public java.time.Instant getEndDateTimeMillis();
+ method public java.time.Instant getStartDateTimeMillis();
+ property public final java.time.Instant endDateTimeMillis;
+ property public final java.time.Instant startDateTimeMillis;
+ field public static final androidx.wear.watchface.complications.data.TimeRange ALWAYS;
+ field public static final androidx.wear.watchface.complications.data.TimeRange.Companion Companion;
+ }
+
+ public static final class TimeRange.Companion {
+ method public androidx.wear.watchface.complications.data.TimeRange after(java.time.Instant startInstant);
+ method public androidx.wear.watchface.complications.data.TimeRange before(java.time.Instant endInstant);
+ method public androidx.wear.watchface.complications.data.TimeRange between(java.time.Instant startInstant, java.time.Instant endInstant);
+ }
+
+ public final class TypeKt {
+ }
+
+}
+
+package androidx.wear.watchface.utility {
+
+ public final class TraceEventKt {
+ }
+
+}
+
diff --git a/wear/watchface/watchface-complications-rendering/api/1.1.0-beta02.txt b/wear/watchface/watchface-complications-rendering/api/1.1.0-beta02.txt
new file mode 100644
index 0000000..97f9d47
--- /dev/null
+++ b/wear/watchface/watchface-complications-rendering/api/1.1.0-beta02.txt
@@ -0,0 +1,153 @@
+// Signature format: 4.0
+package androidx.wear.watchface.complications.rendering {
+
+ public class CanvasComplicationDrawable implements androidx.wear.watchface.CanvasComplication {
+ ctor public CanvasComplicationDrawable(androidx.wear.watchface.complications.rendering.ComplicationDrawable drawable, androidx.wear.watchface.WatchState watchState, androidx.wear.watchface.CanvasComplication.InvalidateCallback invalidateCallback);
+ method public void drawHighlight(android.graphics.Canvas canvas, android.graphics.Rect bounds, int boundsType, java.time.ZonedDateTime zonedDateTime, @ColorInt int color);
+ method public androidx.wear.watchface.complications.data.ComplicationData getData();
+ method public final androidx.wear.watchface.complications.rendering.ComplicationDrawable getDrawable();
+ method @CallSuper public void loadData(androidx.wear.watchface.complications.data.ComplicationData complicationData, boolean loadDrawablesAsynchronous);
+ method public void render(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime, androidx.wear.watchface.RenderParameters renderParameters, int slotId);
+ method public final void setDrawable(androidx.wear.watchface.complications.rendering.ComplicationDrawable);
+ property public final androidx.wear.watchface.complications.rendering.ComplicationDrawable drawable;
+ }
+
+ public final class ComplicationDrawable extends android.graphics.drawable.Drawable {
+ ctor public ComplicationDrawable();
+ ctor public ComplicationDrawable(android.content.Context context);
+ ctor public ComplicationDrawable(androidx.wear.watchface.complications.rendering.ComplicationDrawable drawable);
+ method public void draw(android.graphics.Canvas canvas);
+ method public androidx.wear.watchface.complications.rendering.ComplicationStyle getActiveStyle();
+ method public androidx.wear.watchface.complications.rendering.ComplicationStyle getAmbientStyle();
+ method public androidx.wear.watchface.complications.data.ComplicationData getComplicationData();
+ method public android.content.Context? getContext();
+ method public java.time.Instant getCurrentTime();
+ method public static androidx.wear.watchface.complications.rendering.ComplicationDrawable? getDrawable(android.content.Context context, int id);
+ method public long getHighlightDuration();
+ method public CharSequence? getNoDataText();
+ method @Deprecated public int getOpacity();
+ method public boolean isBurnInProtectionOn();
+ method public boolean isHighlighted();
+ method public boolean isInAmbientMode();
+ method public boolean isLowBitAmbient();
+ method public boolean isRangedValueProgressHidden();
+ method public boolean onTap(@Px int x, @Px int y);
+ method public void setAlpha(@IntRange(from=0L, to=255L) int alpha);
+ method public void setBurnInProtectionOn(boolean);
+ method public void setColorFilter(android.graphics.ColorFilter? colorFilter);
+ method public void setComplicationData(androidx.wear.watchface.complications.data.ComplicationData complicationData, boolean loadDrawablesAsync);
+ method public void setContext(android.content.Context context);
+ method public void setCurrentTime(java.time.Instant);
+ method public void setHighlightDuration(@IntRange(from=0L) long);
+ method public void setHighlighted(boolean);
+ method public void setInAmbientMode(boolean);
+ method public void setLowBitAmbient(boolean);
+ method public void setNoDataText(CharSequence?);
+ method public void setRangedValueProgressHidden(boolean);
+ property public final androidx.wear.watchface.complications.rendering.ComplicationStyle activeStyle;
+ property public final androidx.wear.watchface.complications.rendering.ComplicationStyle ambientStyle;
+ property public final androidx.wear.watchface.complications.data.ComplicationData complicationData;
+ property public final android.content.Context? context;
+ property public final java.time.Instant currentTime;
+ property public final long highlightDuration;
+ property public final boolean isBurnInProtectionOn;
+ property public final boolean isHighlighted;
+ property public final boolean isInAmbientMode;
+ property public final boolean isLowBitAmbient;
+ property public final boolean isRangedValueProgressHidden;
+ property public final CharSequence? noDataText;
+ field public static final androidx.wear.watchface.complications.rendering.ComplicationDrawable.Companion Companion;
+ }
+
+ public static final class ComplicationDrawable.Companion {
+ method public androidx.wear.watchface.complications.rendering.ComplicationDrawable? getDrawable(android.content.Context context, int id);
+ }
+
+ public final class ComplicationHighlightRenderer {
+ ctor public ComplicationHighlightRenderer(@Px float outlineExpansion, @Px float outlineStrokeWidth);
+ method public void drawComplicationHighlight(android.graphics.Canvas canvas, android.graphics.Rect bounds, @ColorInt int color);
+ }
+
+ public final class ComplicationStyle {
+ ctor public ComplicationStyle();
+ ctor public ComplicationStyle(androidx.wear.watchface.complications.rendering.ComplicationStyle style);
+ method @ColorInt public int getBackgroundColor();
+ method public android.graphics.drawable.Drawable? getBackgroundDrawable();
+ method @ColorInt public int getBorderColor();
+ method @Px public int getBorderDashGap();
+ method @Px public int getBorderDashWidth();
+ method @Px public int getBorderRadius();
+ method public int getBorderStyle();
+ method @Px public int getBorderWidth();
+ method @ColorInt public int getHighlightColor();
+ method @ColorInt public int getIconColor();
+ method public android.graphics.ColorFilter? getImageColorFilter();
+ method @ColorInt public int getRangedValuePrimaryColor();
+ method @Px public int getRangedValueRingWidth();
+ method @ColorInt public int getRangedValueSecondaryColor();
+ method @ColorInt public int getTextColor();
+ method @Px public int getTextSize();
+ method public android.graphics.Typeface getTextTypeface();
+ method @ColorInt public int getTitleColor();
+ method @Px public int getTitleSize();
+ method public android.graphics.Typeface getTitleTypeface();
+ method public void setBackgroundColor(@ColorInt int);
+ method public void setBackgroundDrawable(android.graphics.drawable.Drawable?);
+ method public void setBorderColor(@ColorInt int);
+ method public void setBorderDashGap(@Px int);
+ method public void setBorderDashWidth(@Px int);
+ method public void setBorderRadius(@Px int);
+ method public void setBorderStyle(int);
+ method public void setBorderWidth(@Px int);
+ method public void setHighlightColor(@ColorInt int);
+ method public void setIconColor(@ColorInt int);
+ method public void setImageColorFilter(android.graphics.ColorFilter?);
+ method public void setRangedValuePrimaryColor(@ColorInt int);
+ method public void setRangedValueRingWidth(@Px int);
+ method public void setRangedValueSecondaryColor(@ColorInt int);
+ method public void setTextColor(@ColorInt int);
+ method public void setTextSize(@Px int);
+ method public void setTextTypeface(android.graphics.Typeface textTypeface);
+ method public void setTitleColor(@ColorInt int);
+ method public void setTitleSize(@Px int);
+ method public void setTitleTypeface(android.graphics.Typeface titleTypeface);
+ property @ColorInt public final int backgroundColor;
+ property public final android.graphics.drawable.Drawable? backgroundDrawable;
+ property @ColorInt public final int borderColor;
+ property @Px public final int borderDashGap;
+ property @Px public final int borderDashWidth;
+ property @Px public final int borderRadius;
+ property public final int borderStyle;
+ property @Px public final int borderWidth;
+ property @ColorInt public final int highlightColor;
+ property @ColorInt public final int iconColor;
+ property public final android.graphics.ColorFilter? imageColorFilter;
+ property @ColorInt public final int rangedValuePrimaryColor;
+ property @Px public final int rangedValueRingWidth;
+ property @ColorInt public final int rangedValueSecondaryColor;
+ property @ColorInt public final int textColor;
+ property @Px public final int textSize;
+ property public final android.graphics.Typeface textTypeface;
+ property @ColorInt public final int titleColor;
+ property @Px public final int titleSize;
+ property public final android.graphics.Typeface titleTypeface;
+ field @Px public static final int BORDER_RADIUS_DEFAULT = 2147483647; // 0x7fffffff
+ field public static final int BORDER_STYLE_DASHED = 2; // 0x2
+ field public static final int BORDER_STYLE_NONE = 0; // 0x0
+ field public static final int BORDER_STYLE_SOLID = 1; // 0x1
+ field public static final androidx.wear.watchface.complications.rendering.ComplicationStyle.Companion Companion;
+ }
+
+ public static final class ComplicationStyle.Companion {
+ }
+
+ public final class GlesTextureComplication {
+ ctor public GlesTextureComplication(androidx.wear.watchface.ComplicationSlot complicationSlot, @Px int textureWidth, @Px int textureHeight, int textureType);
+ method public void bind();
+ method public androidx.wear.watchface.ComplicationSlot getComplicationSlot();
+ method public void renderToTexture(java.time.ZonedDateTime zonedDateTime, androidx.wear.watchface.RenderParameters renderParameters);
+ property public final androidx.wear.watchface.ComplicationSlot complicationSlot;
+ }
+
+}
+
diff --git a/wear/watchface/watchface-complications-rendering/api/public_plus_experimental_1.1.0-beta02.txt b/wear/watchface/watchface-complications-rendering/api/public_plus_experimental_1.1.0-beta02.txt
new file mode 100644
index 0000000..97f9d47
--- /dev/null
+++ b/wear/watchface/watchface-complications-rendering/api/public_plus_experimental_1.1.0-beta02.txt
@@ -0,0 +1,153 @@
+// Signature format: 4.0
+package androidx.wear.watchface.complications.rendering {
+
+ public class CanvasComplicationDrawable implements androidx.wear.watchface.CanvasComplication {
+ ctor public CanvasComplicationDrawable(androidx.wear.watchface.complications.rendering.ComplicationDrawable drawable, androidx.wear.watchface.WatchState watchState, androidx.wear.watchface.CanvasComplication.InvalidateCallback invalidateCallback);
+ method public void drawHighlight(android.graphics.Canvas canvas, android.graphics.Rect bounds, int boundsType, java.time.ZonedDateTime zonedDateTime, @ColorInt int color);
+ method public androidx.wear.watchface.complications.data.ComplicationData getData();
+ method public final androidx.wear.watchface.complications.rendering.ComplicationDrawable getDrawable();
+ method @CallSuper public void loadData(androidx.wear.watchface.complications.data.ComplicationData complicationData, boolean loadDrawablesAsynchronous);
+ method public void render(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime, androidx.wear.watchface.RenderParameters renderParameters, int slotId);
+ method public final void setDrawable(androidx.wear.watchface.complications.rendering.ComplicationDrawable);
+ property public final androidx.wear.watchface.complications.rendering.ComplicationDrawable drawable;
+ }
+
+ public final class ComplicationDrawable extends android.graphics.drawable.Drawable {
+ ctor public ComplicationDrawable();
+ ctor public ComplicationDrawable(android.content.Context context);
+ ctor public ComplicationDrawable(androidx.wear.watchface.complications.rendering.ComplicationDrawable drawable);
+ method public void draw(android.graphics.Canvas canvas);
+ method public androidx.wear.watchface.complications.rendering.ComplicationStyle getActiveStyle();
+ method public androidx.wear.watchface.complications.rendering.ComplicationStyle getAmbientStyle();
+ method public androidx.wear.watchface.complications.data.ComplicationData getComplicationData();
+ method public android.content.Context? getContext();
+ method public java.time.Instant getCurrentTime();
+ method public static androidx.wear.watchface.complications.rendering.ComplicationDrawable? getDrawable(android.content.Context context, int id);
+ method public long getHighlightDuration();
+ method public CharSequence? getNoDataText();
+ method @Deprecated public int getOpacity();
+ method public boolean isBurnInProtectionOn();
+ method public boolean isHighlighted();
+ method public boolean isInAmbientMode();
+ method public boolean isLowBitAmbient();
+ method public boolean isRangedValueProgressHidden();
+ method public boolean onTap(@Px int x, @Px int y);
+ method public void setAlpha(@IntRange(from=0L, to=255L) int alpha);
+ method public void setBurnInProtectionOn(boolean);
+ method public void setColorFilter(android.graphics.ColorFilter? colorFilter);
+ method public void setComplicationData(androidx.wear.watchface.complications.data.ComplicationData complicationData, boolean loadDrawablesAsync);
+ method public void setContext(android.content.Context context);
+ method public void setCurrentTime(java.time.Instant);
+ method public void setHighlightDuration(@IntRange(from=0L) long);
+ method public void setHighlighted(boolean);
+ method public void setInAmbientMode(boolean);
+ method public void setLowBitAmbient(boolean);
+ method public void setNoDataText(CharSequence?);
+ method public void setRangedValueProgressHidden(boolean);
+ property public final androidx.wear.watchface.complications.rendering.ComplicationStyle activeStyle;
+ property public final androidx.wear.watchface.complications.rendering.ComplicationStyle ambientStyle;
+ property public final androidx.wear.watchface.complications.data.ComplicationData complicationData;
+ property public final android.content.Context? context;
+ property public final java.time.Instant currentTime;
+ property public final long highlightDuration;
+ property public final boolean isBurnInProtectionOn;
+ property public final boolean isHighlighted;
+ property public final boolean isInAmbientMode;
+ property public final boolean isLowBitAmbient;
+ property public final boolean isRangedValueProgressHidden;
+ property public final CharSequence? noDataText;
+ field public static final androidx.wear.watchface.complications.rendering.ComplicationDrawable.Companion Companion;
+ }
+
+ public static final class ComplicationDrawable.Companion {
+ method public androidx.wear.watchface.complications.rendering.ComplicationDrawable? getDrawable(android.content.Context context, int id);
+ }
+
+ public final class ComplicationHighlightRenderer {
+ ctor public ComplicationHighlightRenderer(@Px float outlineExpansion, @Px float outlineStrokeWidth);
+ method public void drawComplicationHighlight(android.graphics.Canvas canvas, android.graphics.Rect bounds, @ColorInt int color);
+ }
+
+ public final class ComplicationStyle {
+ ctor public ComplicationStyle();
+ ctor public ComplicationStyle(androidx.wear.watchface.complications.rendering.ComplicationStyle style);
+ method @ColorInt public int getBackgroundColor();
+ method public android.graphics.drawable.Drawable? getBackgroundDrawable();
+ method @ColorInt public int getBorderColor();
+ method @Px public int getBorderDashGap();
+ method @Px public int getBorderDashWidth();
+ method @Px public int getBorderRadius();
+ method public int getBorderStyle();
+ method @Px public int getBorderWidth();
+ method @ColorInt public int getHighlightColor();
+ method @ColorInt public int getIconColor();
+ method public android.graphics.ColorFilter? getImageColorFilter();
+ method @ColorInt public int getRangedValuePrimaryColor();
+ method @Px public int getRangedValueRingWidth();
+ method @ColorInt public int getRangedValueSecondaryColor();
+ method @ColorInt public int getTextColor();
+ method @Px public int getTextSize();
+ method public android.graphics.Typeface getTextTypeface();
+ method @ColorInt public int getTitleColor();
+ method @Px public int getTitleSize();
+ method public android.graphics.Typeface getTitleTypeface();
+ method public void setBackgroundColor(@ColorInt int);
+ method public void setBackgroundDrawable(android.graphics.drawable.Drawable?);
+ method public void setBorderColor(@ColorInt int);
+ method public void setBorderDashGap(@Px int);
+ method public void setBorderDashWidth(@Px int);
+ method public void setBorderRadius(@Px int);
+ method public void setBorderStyle(int);
+ method public void setBorderWidth(@Px int);
+ method public void setHighlightColor(@ColorInt int);
+ method public void setIconColor(@ColorInt int);
+ method public void setImageColorFilter(android.graphics.ColorFilter?);
+ method public void setRangedValuePrimaryColor(@ColorInt int);
+ method public void setRangedValueRingWidth(@Px int);
+ method public void setRangedValueSecondaryColor(@ColorInt int);
+ method public void setTextColor(@ColorInt int);
+ method public void setTextSize(@Px int);
+ method public void setTextTypeface(android.graphics.Typeface textTypeface);
+ method public void setTitleColor(@ColorInt int);
+ method public void setTitleSize(@Px int);
+ method public void setTitleTypeface(android.graphics.Typeface titleTypeface);
+ property @ColorInt public final int backgroundColor;
+ property public final android.graphics.drawable.Drawable? backgroundDrawable;
+ property @ColorInt public final int borderColor;
+ property @Px public final int borderDashGap;
+ property @Px public final int borderDashWidth;
+ property @Px public final int borderRadius;
+ property public final int borderStyle;
+ property @Px public final int borderWidth;
+ property @ColorInt public final int highlightColor;
+ property @ColorInt public final int iconColor;
+ property public final android.graphics.ColorFilter? imageColorFilter;
+ property @ColorInt public final int rangedValuePrimaryColor;
+ property @Px public final int rangedValueRingWidth;
+ property @ColorInt public final int rangedValueSecondaryColor;
+ property @ColorInt public final int textColor;
+ property @Px public final int textSize;
+ property public final android.graphics.Typeface textTypeface;
+ property @ColorInt public final int titleColor;
+ property @Px public final int titleSize;
+ property public final android.graphics.Typeface titleTypeface;
+ field @Px public static final int BORDER_RADIUS_DEFAULT = 2147483647; // 0x7fffffff
+ field public static final int BORDER_STYLE_DASHED = 2; // 0x2
+ field public static final int BORDER_STYLE_NONE = 0; // 0x0
+ field public static final int BORDER_STYLE_SOLID = 1; // 0x1
+ field public static final androidx.wear.watchface.complications.rendering.ComplicationStyle.Companion Companion;
+ }
+
+ public static final class ComplicationStyle.Companion {
+ }
+
+ public final class GlesTextureComplication {
+ ctor public GlesTextureComplication(androidx.wear.watchface.ComplicationSlot complicationSlot, @Px int textureWidth, @Px int textureHeight, int textureType);
+ method public void bind();
+ method public androidx.wear.watchface.ComplicationSlot getComplicationSlot();
+ method public void renderToTexture(java.time.ZonedDateTime zonedDateTime, androidx.wear.watchface.RenderParameters renderParameters);
+ property public final androidx.wear.watchface.ComplicationSlot complicationSlot;
+ }
+
+}
+
diff --git a/wear/watchface/watchface-complications-rendering/api/res-1.1.0-beta02.txt b/wear/watchface/watchface-complications-rendering/api/res-1.1.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/watchface/watchface-complications-rendering/api/res-1.1.0-beta02.txt
diff --git a/wear/watchface/watchface-complications-rendering/api/restricted_1.1.0-beta02.txt b/wear/watchface/watchface-complications-rendering/api/restricted_1.1.0-beta02.txt
new file mode 100644
index 0000000..97f9d47
--- /dev/null
+++ b/wear/watchface/watchface-complications-rendering/api/restricted_1.1.0-beta02.txt
@@ -0,0 +1,153 @@
+// Signature format: 4.0
+package androidx.wear.watchface.complications.rendering {
+
+ public class CanvasComplicationDrawable implements androidx.wear.watchface.CanvasComplication {
+ ctor public CanvasComplicationDrawable(androidx.wear.watchface.complications.rendering.ComplicationDrawable drawable, androidx.wear.watchface.WatchState watchState, androidx.wear.watchface.CanvasComplication.InvalidateCallback invalidateCallback);
+ method public void drawHighlight(android.graphics.Canvas canvas, android.graphics.Rect bounds, int boundsType, java.time.ZonedDateTime zonedDateTime, @ColorInt int color);
+ method public androidx.wear.watchface.complications.data.ComplicationData getData();
+ method public final androidx.wear.watchface.complications.rendering.ComplicationDrawable getDrawable();
+ method @CallSuper public void loadData(androidx.wear.watchface.complications.data.ComplicationData complicationData, boolean loadDrawablesAsynchronous);
+ method public void render(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime, androidx.wear.watchface.RenderParameters renderParameters, int slotId);
+ method public final void setDrawable(androidx.wear.watchface.complications.rendering.ComplicationDrawable);
+ property public final androidx.wear.watchface.complications.rendering.ComplicationDrawable drawable;
+ }
+
+ public final class ComplicationDrawable extends android.graphics.drawable.Drawable {
+ ctor public ComplicationDrawable();
+ ctor public ComplicationDrawable(android.content.Context context);
+ ctor public ComplicationDrawable(androidx.wear.watchface.complications.rendering.ComplicationDrawable drawable);
+ method public void draw(android.graphics.Canvas canvas);
+ method public androidx.wear.watchface.complications.rendering.ComplicationStyle getActiveStyle();
+ method public androidx.wear.watchface.complications.rendering.ComplicationStyle getAmbientStyle();
+ method public androidx.wear.watchface.complications.data.ComplicationData getComplicationData();
+ method public android.content.Context? getContext();
+ method public java.time.Instant getCurrentTime();
+ method public static androidx.wear.watchface.complications.rendering.ComplicationDrawable? getDrawable(android.content.Context context, int id);
+ method public long getHighlightDuration();
+ method public CharSequence? getNoDataText();
+ method @Deprecated public int getOpacity();
+ method public boolean isBurnInProtectionOn();
+ method public boolean isHighlighted();
+ method public boolean isInAmbientMode();
+ method public boolean isLowBitAmbient();
+ method public boolean isRangedValueProgressHidden();
+ method public boolean onTap(@Px int x, @Px int y);
+ method public void setAlpha(@IntRange(from=0L, to=255L) int alpha);
+ method public void setBurnInProtectionOn(boolean);
+ method public void setColorFilter(android.graphics.ColorFilter? colorFilter);
+ method public void setComplicationData(androidx.wear.watchface.complications.data.ComplicationData complicationData, boolean loadDrawablesAsync);
+ method public void setContext(android.content.Context context);
+ method public void setCurrentTime(java.time.Instant);
+ method public void setHighlightDuration(@IntRange(from=0L) long);
+ method public void setHighlighted(boolean);
+ method public void setInAmbientMode(boolean);
+ method public void setLowBitAmbient(boolean);
+ method public void setNoDataText(CharSequence?);
+ method public void setRangedValueProgressHidden(boolean);
+ property public final androidx.wear.watchface.complications.rendering.ComplicationStyle activeStyle;
+ property public final androidx.wear.watchface.complications.rendering.ComplicationStyle ambientStyle;
+ property public final androidx.wear.watchface.complications.data.ComplicationData complicationData;
+ property public final android.content.Context? context;
+ property public final java.time.Instant currentTime;
+ property public final long highlightDuration;
+ property public final boolean isBurnInProtectionOn;
+ property public final boolean isHighlighted;
+ property public final boolean isInAmbientMode;
+ property public final boolean isLowBitAmbient;
+ property public final boolean isRangedValueProgressHidden;
+ property public final CharSequence? noDataText;
+ field public static final androidx.wear.watchface.complications.rendering.ComplicationDrawable.Companion Companion;
+ }
+
+ public static final class ComplicationDrawable.Companion {
+ method public androidx.wear.watchface.complications.rendering.ComplicationDrawable? getDrawable(android.content.Context context, int id);
+ }
+
+ public final class ComplicationHighlightRenderer {
+ ctor public ComplicationHighlightRenderer(@Px float outlineExpansion, @Px float outlineStrokeWidth);
+ method public void drawComplicationHighlight(android.graphics.Canvas canvas, android.graphics.Rect bounds, @ColorInt int color);
+ }
+
+ public final class ComplicationStyle {
+ ctor public ComplicationStyle();
+ ctor public ComplicationStyle(androidx.wear.watchface.complications.rendering.ComplicationStyle style);
+ method @ColorInt public int getBackgroundColor();
+ method public android.graphics.drawable.Drawable? getBackgroundDrawable();
+ method @ColorInt public int getBorderColor();
+ method @Px public int getBorderDashGap();
+ method @Px public int getBorderDashWidth();
+ method @Px public int getBorderRadius();
+ method public int getBorderStyle();
+ method @Px public int getBorderWidth();
+ method @ColorInt public int getHighlightColor();
+ method @ColorInt public int getIconColor();
+ method public android.graphics.ColorFilter? getImageColorFilter();
+ method @ColorInt public int getRangedValuePrimaryColor();
+ method @Px public int getRangedValueRingWidth();
+ method @ColorInt public int getRangedValueSecondaryColor();
+ method @ColorInt public int getTextColor();
+ method @Px public int getTextSize();
+ method public android.graphics.Typeface getTextTypeface();
+ method @ColorInt public int getTitleColor();
+ method @Px public int getTitleSize();
+ method public android.graphics.Typeface getTitleTypeface();
+ method public void setBackgroundColor(@ColorInt int);
+ method public void setBackgroundDrawable(android.graphics.drawable.Drawable?);
+ method public void setBorderColor(@ColorInt int);
+ method public void setBorderDashGap(@Px int);
+ method public void setBorderDashWidth(@Px int);
+ method public void setBorderRadius(@Px int);
+ method public void setBorderStyle(int);
+ method public void setBorderWidth(@Px int);
+ method public void setHighlightColor(@ColorInt int);
+ method public void setIconColor(@ColorInt int);
+ method public void setImageColorFilter(android.graphics.ColorFilter?);
+ method public void setRangedValuePrimaryColor(@ColorInt int);
+ method public void setRangedValueRingWidth(@Px int);
+ method public void setRangedValueSecondaryColor(@ColorInt int);
+ method public void setTextColor(@ColorInt int);
+ method public void setTextSize(@Px int);
+ method public void setTextTypeface(android.graphics.Typeface textTypeface);
+ method public void setTitleColor(@ColorInt int);
+ method public void setTitleSize(@Px int);
+ method public void setTitleTypeface(android.graphics.Typeface titleTypeface);
+ property @ColorInt public final int backgroundColor;
+ property public final android.graphics.drawable.Drawable? backgroundDrawable;
+ property @ColorInt public final int borderColor;
+ property @Px public final int borderDashGap;
+ property @Px public final int borderDashWidth;
+ property @Px public final int borderRadius;
+ property public final int borderStyle;
+ property @Px public final int borderWidth;
+ property @ColorInt public final int highlightColor;
+ property @ColorInt public final int iconColor;
+ property public final android.graphics.ColorFilter? imageColorFilter;
+ property @ColorInt public final int rangedValuePrimaryColor;
+ property @Px public final int rangedValueRingWidth;
+ property @ColorInt public final int rangedValueSecondaryColor;
+ property @ColorInt public final int textColor;
+ property @Px public final int textSize;
+ property public final android.graphics.Typeface textTypeface;
+ property @ColorInt public final int titleColor;
+ property @Px public final int titleSize;
+ property public final android.graphics.Typeface titleTypeface;
+ field @Px public static final int BORDER_RADIUS_DEFAULT = 2147483647; // 0x7fffffff
+ field public static final int BORDER_STYLE_DASHED = 2; // 0x2
+ field public static final int BORDER_STYLE_NONE = 0; // 0x0
+ field public static final int BORDER_STYLE_SOLID = 1; // 0x1
+ field public static final androidx.wear.watchface.complications.rendering.ComplicationStyle.Companion Companion;
+ }
+
+ public static final class ComplicationStyle.Companion {
+ }
+
+ public final class GlesTextureComplication {
+ ctor public GlesTextureComplication(androidx.wear.watchface.ComplicationSlot complicationSlot, @Px int textureWidth, @Px int textureHeight, int textureType);
+ method public void bind();
+ method public androidx.wear.watchface.ComplicationSlot getComplicationSlot();
+ method public void renderToTexture(java.time.ZonedDateTime zonedDateTime, androidx.wear.watchface.RenderParameters renderParameters);
+ property public final androidx.wear.watchface.ComplicationSlot complicationSlot;
+ }
+
+}
+
diff --git a/wear/watchface/watchface-complications/api/1.1.0-beta02.txt b/wear/watchface/watchface-complications/api/1.1.0-beta02.txt
new file mode 100644
index 0000000..c7efd47
--- /dev/null
+++ b/wear/watchface/watchface-complications/api/1.1.0-beta02.txt
@@ -0,0 +1,92 @@
+// Signature format: 4.0
+package androidx.wear.watchface.complications {
+
+ public final class ComplicationDataSourceInfo {
+ ctor public ComplicationDataSourceInfo(String appName, String name, android.graphics.drawable.Icon icon, androidx.wear.watchface.complications.data.ComplicationType type, android.content.ComponentName? componentName);
+ method public String getAppName();
+ method public android.content.ComponentName? getComponentName();
+ method public androidx.wear.watchface.complications.data.ComplicationData getFallbackPreviewData();
+ method public android.graphics.drawable.Icon getIcon();
+ method public String getName();
+ method public androidx.wear.watchface.complications.data.ComplicationType getType();
+ property public final String appName;
+ property public final android.content.ComponentName? componentName;
+ property public final androidx.wear.watchface.complications.data.ComplicationData fallbackPreviewData;
+ property public final android.graphics.drawable.Icon icon;
+ property public final String name;
+ property public final androidx.wear.watchface.complications.data.ComplicationType type;
+ }
+
+ public final class ComplicationDataSourceInfoRetriever implements java.lang.AutoCloseable {
+ ctor public ComplicationDataSourceInfoRetriever(android.content.Context context);
+ method public void close();
+ method @kotlin.jvm.Throws(exceptionClasses=ServiceDisconnectedException::class) public suspend Object? retrieveComplicationDataSourceInfo(android.content.ComponentName watchFaceComponent, int[] watchFaceComplicationIds, kotlin.coroutines.Continuation<? super androidx.wear.watchface.complications.ComplicationDataSourceInfoRetriever.Result[]>) throws androidx.wear.watchface.complications.ComplicationDataSourceInfoRetriever.ServiceDisconnectedException;
+ method @RequiresApi(android.os.Build.VERSION_CODES.R) @kotlin.jvm.Throws(exceptionClasses=ServiceDisconnectedException::class) public suspend Object? retrievePreviewComplicationData(android.content.ComponentName complicationDataSourceComponent, androidx.wear.watchface.complications.data.ComplicationType complicationType, kotlin.coroutines.Continuation<? super androidx.wear.watchface.complications.data.ComplicationData>) throws androidx.wear.watchface.complications.ComplicationDataSourceInfoRetriever.ServiceDisconnectedException;
+ }
+
+ public static final class ComplicationDataSourceInfoRetriever.Result {
+ method public androidx.wear.watchface.complications.ComplicationDataSourceInfo? getInfo();
+ method public int getSlotId();
+ property public final androidx.wear.watchface.complications.ComplicationDataSourceInfo? info;
+ property public final int slotId;
+ }
+
+ public static final class ComplicationDataSourceInfoRetriever.ServiceDisconnectedException extends java.lang.Exception {
+ ctor public ComplicationDataSourceInfoRetriever.ServiceDisconnectedException();
+ }
+
+ public final class ComplicationDataSourceInfoRetrieverKt {
+ }
+
+ public final class ComplicationSlotBounds {
+ ctor public ComplicationSlotBounds(java.util.Map<androidx.wear.watchface.complications.data.ComplicationType,? extends android.graphics.RectF> perComplicationTypeBounds);
+ ctor public ComplicationSlotBounds(android.graphics.RectF bounds);
+ method public java.util.Map<androidx.wear.watchface.complications.data.ComplicationType,android.graphics.RectF> getPerComplicationTypeBounds();
+ property public final java.util.Map<androidx.wear.watchface.complications.data.ComplicationType,android.graphics.RectF> perComplicationTypeBounds;
+ }
+
+ public final class DefaultComplicationDataSourcePolicy {
+ ctor public DefaultComplicationDataSourcePolicy();
+ ctor @Deprecated public DefaultComplicationDataSourcePolicy(int systemProvider);
+ ctor public DefaultComplicationDataSourcePolicy(int systemDataSource, androidx.wear.watchface.complications.data.ComplicationType systemDataSourceDefaultType);
+ ctor @Deprecated public DefaultComplicationDataSourcePolicy(android.content.ComponentName dataSource, int systemDataSourceFallback);
+ ctor public DefaultComplicationDataSourcePolicy(android.content.ComponentName primaryDataSource, androidx.wear.watchface.complications.data.ComplicationType primaryDataSourceDefaultType, int systemDataSourceFallback, androidx.wear.watchface.complications.data.ComplicationType systemDataSourceFallbackDefaultType);
+ ctor @Deprecated public DefaultComplicationDataSourcePolicy(android.content.ComponentName primaryDataSource, android.content.ComponentName secondaryDataSource, int systemDataSourceFallback);
+ ctor public DefaultComplicationDataSourcePolicy(android.content.ComponentName primaryDataSource, androidx.wear.watchface.complications.data.ComplicationType primaryDataSourceDefaultType, android.content.ComponentName secondaryDataSource, androidx.wear.watchface.complications.data.ComplicationType secondaryDataSourceDefaultType, int systemDataSourceFallback, androidx.wear.watchface.complications.data.ComplicationType systemDataSourceFallbackDefaultType);
+ method public android.content.ComponentName? getPrimaryDataSource();
+ method public androidx.wear.watchface.complications.data.ComplicationType? getPrimaryDataSourceDefaultType();
+ method public android.content.ComponentName? getSecondaryDataSource();
+ method public androidx.wear.watchface.complications.data.ComplicationType? getSecondaryDataSourceDefaultType();
+ method public int getSystemDataSourceFallback();
+ method public androidx.wear.watchface.complications.data.ComplicationType getSystemDataSourceFallbackDefaultType();
+ method public boolean isEmpty();
+ property public final android.content.ComponentName? primaryDataSource;
+ property public final androidx.wear.watchface.complications.data.ComplicationType? primaryDataSourceDefaultType;
+ property public final android.content.ComponentName? secondaryDataSource;
+ property public final androidx.wear.watchface.complications.data.ComplicationType? secondaryDataSourceDefaultType;
+ property public final int systemDataSourceFallback;
+ property public final androidx.wear.watchface.complications.data.ComplicationType systemDataSourceFallbackDefaultType;
+ }
+
+ public final class SystemDataSources {
+ field public static final androidx.wear.watchface.complications.SystemDataSources.Companion Companion;
+ field public static final int DATA_SOURCE_APP_SHORTCUT = 6; // 0x6
+ field public static final int DATA_SOURCE_DATE = 2; // 0x2
+ field public static final int DATA_SOURCE_DAY_AND_DATE = 16; // 0x10
+ field public static final int DATA_SOURCE_DAY_OF_WEEK = 13; // 0xd
+ field public static final int DATA_SOURCE_FAVORITE_CONTACT = 14; // 0xe
+ field public static final int DATA_SOURCE_NEXT_EVENT = 9; // 0x9
+ field public static final int DATA_SOURCE_STEP_COUNT = 4; // 0x4
+ field public static final int DATA_SOURCE_SUNRISE_SUNSET = 12; // 0xc
+ field public static final int DATA_SOURCE_TIME_AND_DATE = 3; // 0x3
+ field public static final int DATA_SOURCE_UNREAD_NOTIFICATION_COUNT = 7; // 0x7
+ field public static final int DATA_SOURCE_WATCH_BATTERY = 1; // 0x1
+ field public static final int DATA_SOURCE_WORLD_CLOCK = 5; // 0x5
+ field public static final int NO_DATA_SOURCE = -1; // 0xffffffff
+ }
+
+ public static final class SystemDataSources.Companion {
+ }
+
+}
+
diff --git a/wear/watchface/watchface-complications/api/public_plus_experimental_1.1.0-beta02.txt b/wear/watchface/watchface-complications/api/public_plus_experimental_1.1.0-beta02.txt
new file mode 100644
index 0000000..c7efd47
--- /dev/null
+++ b/wear/watchface/watchface-complications/api/public_plus_experimental_1.1.0-beta02.txt
@@ -0,0 +1,92 @@
+// Signature format: 4.0
+package androidx.wear.watchface.complications {
+
+ public final class ComplicationDataSourceInfo {
+ ctor public ComplicationDataSourceInfo(String appName, String name, android.graphics.drawable.Icon icon, androidx.wear.watchface.complications.data.ComplicationType type, android.content.ComponentName? componentName);
+ method public String getAppName();
+ method public android.content.ComponentName? getComponentName();
+ method public androidx.wear.watchface.complications.data.ComplicationData getFallbackPreviewData();
+ method public android.graphics.drawable.Icon getIcon();
+ method public String getName();
+ method public androidx.wear.watchface.complications.data.ComplicationType getType();
+ property public final String appName;
+ property public final android.content.ComponentName? componentName;
+ property public final androidx.wear.watchface.complications.data.ComplicationData fallbackPreviewData;
+ property public final android.graphics.drawable.Icon icon;
+ property public final String name;
+ property public final androidx.wear.watchface.complications.data.ComplicationType type;
+ }
+
+ public final class ComplicationDataSourceInfoRetriever implements java.lang.AutoCloseable {
+ ctor public ComplicationDataSourceInfoRetriever(android.content.Context context);
+ method public void close();
+ method @kotlin.jvm.Throws(exceptionClasses=ServiceDisconnectedException::class) public suspend Object? retrieveComplicationDataSourceInfo(android.content.ComponentName watchFaceComponent, int[] watchFaceComplicationIds, kotlin.coroutines.Continuation<? super androidx.wear.watchface.complications.ComplicationDataSourceInfoRetriever.Result[]>) throws androidx.wear.watchface.complications.ComplicationDataSourceInfoRetriever.ServiceDisconnectedException;
+ method @RequiresApi(android.os.Build.VERSION_CODES.R) @kotlin.jvm.Throws(exceptionClasses=ServiceDisconnectedException::class) public suspend Object? retrievePreviewComplicationData(android.content.ComponentName complicationDataSourceComponent, androidx.wear.watchface.complications.data.ComplicationType complicationType, kotlin.coroutines.Continuation<? super androidx.wear.watchface.complications.data.ComplicationData>) throws androidx.wear.watchface.complications.ComplicationDataSourceInfoRetriever.ServiceDisconnectedException;
+ }
+
+ public static final class ComplicationDataSourceInfoRetriever.Result {
+ method public androidx.wear.watchface.complications.ComplicationDataSourceInfo? getInfo();
+ method public int getSlotId();
+ property public final androidx.wear.watchface.complications.ComplicationDataSourceInfo? info;
+ property public final int slotId;
+ }
+
+ public static final class ComplicationDataSourceInfoRetriever.ServiceDisconnectedException extends java.lang.Exception {
+ ctor public ComplicationDataSourceInfoRetriever.ServiceDisconnectedException();
+ }
+
+ public final class ComplicationDataSourceInfoRetrieverKt {
+ }
+
+ public final class ComplicationSlotBounds {
+ ctor public ComplicationSlotBounds(java.util.Map<androidx.wear.watchface.complications.data.ComplicationType,? extends android.graphics.RectF> perComplicationTypeBounds);
+ ctor public ComplicationSlotBounds(android.graphics.RectF bounds);
+ method public java.util.Map<androidx.wear.watchface.complications.data.ComplicationType,android.graphics.RectF> getPerComplicationTypeBounds();
+ property public final java.util.Map<androidx.wear.watchface.complications.data.ComplicationType,android.graphics.RectF> perComplicationTypeBounds;
+ }
+
+ public final class DefaultComplicationDataSourcePolicy {
+ ctor public DefaultComplicationDataSourcePolicy();
+ ctor @Deprecated public DefaultComplicationDataSourcePolicy(int systemProvider);
+ ctor public DefaultComplicationDataSourcePolicy(int systemDataSource, androidx.wear.watchface.complications.data.ComplicationType systemDataSourceDefaultType);
+ ctor @Deprecated public DefaultComplicationDataSourcePolicy(android.content.ComponentName dataSource, int systemDataSourceFallback);
+ ctor public DefaultComplicationDataSourcePolicy(android.content.ComponentName primaryDataSource, androidx.wear.watchface.complications.data.ComplicationType primaryDataSourceDefaultType, int systemDataSourceFallback, androidx.wear.watchface.complications.data.ComplicationType systemDataSourceFallbackDefaultType);
+ ctor @Deprecated public DefaultComplicationDataSourcePolicy(android.content.ComponentName primaryDataSource, android.content.ComponentName secondaryDataSource, int systemDataSourceFallback);
+ ctor public DefaultComplicationDataSourcePolicy(android.content.ComponentName primaryDataSource, androidx.wear.watchface.complications.data.ComplicationType primaryDataSourceDefaultType, android.content.ComponentName secondaryDataSource, androidx.wear.watchface.complications.data.ComplicationType secondaryDataSourceDefaultType, int systemDataSourceFallback, androidx.wear.watchface.complications.data.ComplicationType systemDataSourceFallbackDefaultType);
+ method public android.content.ComponentName? getPrimaryDataSource();
+ method public androidx.wear.watchface.complications.data.ComplicationType? getPrimaryDataSourceDefaultType();
+ method public android.content.ComponentName? getSecondaryDataSource();
+ method public androidx.wear.watchface.complications.data.ComplicationType? getSecondaryDataSourceDefaultType();
+ method public int getSystemDataSourceFallback();
+ method public androidx.wear.watchface.complications.data.ComplicationType getSystemDataSourceFallbackDefaultType();
+ method public boolean isEmpty();
+ property public final android.content.ComponentName? primaryDataSource;
+ property public final androidx.wear.watchface.complications.data.ComplicationType? primaryDataSourceDefaultType;
+ property public final android.content.ComponentName? secondaryDataSource;
+ property public final androidx.wear.watchface.complications.data.ComplicationType? secondaryDataSourceDefaultType;
+ property public final int systemDataSourceFallback;
+ property public final androidx.wear.watchface.complications.data.ComplicationType systemDataSourceFallbackDefaultType;
+ }
+
+ public final class SystemDataSources {
+ field public static final androidx.wear.watchface.complications.SystemDataSources.Companion Companion;
+ field public static final int DATA_SOURCE_APP_SHORTCUT = 6; // 0x6
+ field public static final int DATA_SOURCE_DATE = 2; // 0x2
+ field public static final int DATA_SOURCE_DAY_AND_DATE = 16; // 0x10
+ field public static final int DATA_SOURCE_DAY_OF_WEEK = 13; // 0xd
+ field public static final int DATA_SOURCE_FAVORITE_CONTACT = 14; // 0xe
+ field public static final int DATA_SOURCE_NEXT_EVENT = 9; // 0x9
+ field public static final int DATA_SOURCE_STEP_COUNT = 4; // 0x4
+ field public static final int DATA_SOURCE_SUNRISE_SUNSET = 12; // 0xc
+ field public static final int DATA_SOURCE_TIME_AND_DATE = 3; // 0x3
+ field public static final int DATA_SOURCE_UNREAD_NOTIFICATION_COUNT = 7; // 0x7
+ field public static final int DATA_SOURCE_WATCH_BATTERY = 1; // 0x1
+ field public static final int DATA_SOURCE_WORLD_CLOCK = 5; // 0x5
+ field public static final int NO_DATA_SOURCE = -1; // 0xffffffff
+ }
+
+ public static final class SystemDataSources.Companion {
+ }
+
+}
+
diff --git a/wear/watchface/watchface-complications/api/res-1.1.0-beta02.txt b/wear/watchface/watchface-complications/api/res-1.1.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/watchface/watchface-complications/api/res-1.1.0-beta02.txt
diff --git a/wear/watchface/watchface-complications/api/restricted_1.1.0-beta02.txt b/wear/watchface/watchface-complications/api/restricted_1.1.0-beta02.txt
new file mode 100644
index 0000000..8d0a8d7
--- /dev/null
+++ b/wear/watchface/watchface-complications/api/restricted_1.1.0-beta02.txt
@@ -0,0 +1,94 @@
+// Signature format: 4.0
+package androidx.wear.watchface.complications {
+
+ public final class ComplicationDataSourceInfo {
+ ctor public ComplicationDataSourceInfo(String appName, String name, android.graphics.drawable.Icon icon, androidx.wear.watchface.complications.data.ComplicationType type, android.content.ComponentName? componentName);
+ method public String getAppName();
+ method public android.content.ComponentName? getComponentName();
+ method public androidx.wear.watchface.complications.data.ComplicationData getFallbackPreviewData();
+ method public android.graphics.drawable.Icon getIcon();
+ method public String getName();
+ method public androidx.wear.watchface.complications.data.ComplicationType getType();
+ property public final String appName;
+ property public final android.content.ComponentName? componentName;
+ property public final androidx.wear.watchface.complications.data.ComplicationData fallbackPreviewData;
+ property public final android.graphics.drawable.Icon icon;
+ property public final String name;
+ property public final androidx.wear.watchface.complications.data.ComplicationType type;
+ }
+
+ public final class ComplicationDataSourceInfoRetriever implements java.lang.AutoCloseable {
+ ctor public ComplicationDataSourceInfoRetriever(android.content.Context context);
+ method public void close();
+ method @kotlin.jvm.Throws(exceptionClasses=ServiceDisconnectedException::class) public suspend Object? retrieveComplicationDataSourceInfo(android.content.ComponentName watchFaceComponent, int[] watchFaceComplicationIds, kotlin.coroutines.Continuation<? super androidx.wear.watchface.complications.ComplicationDataSourceInfoRetriever.Result[]>) throws androidx.wear.watchface.complications.ComplicationDataSourceInfoRetriever.ServiceDisconnectedException;
+ method @RequiresApi(android.os.Build.VERSION_CODES.R) @kotlin.jvm.Throws(exceptionClasses=ServiceDisconnectedException::class) public suspend Object? retrievePreviewComplicationData(android.content.ComponentName complicationDataSourceComponent, androidx.wear.watchface.complications.data.ComplicationType complicationType, kotlin.coroutines.Continuation<? super androidx.wear.watchface.complications.data.ComplicationData>) throws androidx.wear.watchface.complications.ComplicationDataSourceInfoRetriever.ServiceDisconnectedException;
+ }
+
+ public static final class ComplicationDataSourceInfoRetriever.Result {
+ method public androidx.wear.watchface.complications.ComplicationDataSourceInfo? getInfo();
+ method public int getSlotId();
+ property public final androidx.wear.watchface.complications.ComplicationDataSourceInfo? info;
+ property public final int slotId;
+ }
+
+ public static final class ComplicationDataSourceInfoRetriever.ServiceDisconnectedException extends java.lang.Exception {
+ ctor public ComplicationDataSourceInfoRetriever.ServiceDisconnectedException();
+ }
+
+ public final class ComplicationDataSourceInfoRetrieverKt {
+ }
+
+ public final class ComplicationSlotBounds {
+ ctor public ComplicationSlotBounds(java.util.Map<androidx.wear.watchface.complications.data.ComplicationType,? extends android.graphics.RectF> perComplicationTypeBounds);
+ ctor public ComplicationSlotBounds(android.graphics.RectF bounds);
+ method public java.util.Map<androidx.wear.watchface.complications.data.ComplicationType,android.graphics.RectF> getPerComplicationTypeBounds();
+ property public final java.util.Map<androidx.wear.watchface.complications.data.ComplicationType,android.graphics.RectF> perComplicationTypeBounds;
+ }
+
+ public final class DefaultComplicationDataSourcePolicy {
+ ctor public DefaultComplicationDataSourcePolicy();
+ ctor @Deprecated public DefaultComplicationDataSourcePolicy(int systemProvider);
+ ctor public DefaultComplicationDataSourcePolicy(int systemDataSource, androidx.wear.watchface.complications.data.ComplicationType systemDataSourceDefaultType);
+ ctor @Deprecated public DefaultComplicationDataSourcePolicy(android.content.ComponentName dataSource, int systemDataSourceFallback);
+ ctor public DefaultComplicationDataSourcePolicy(android.content.ComponentName primaryDataSource, androidx.wear.watchface.complications.data.ComplicationType primaryDataSourceDefaultType, int systemDataSourceFallback, androidx.wear.watchface.complications.data.ComplicationType systemDataSourceFallbackDefaultType);
+ ctor @Deprecated public DefaultComplicationDataSourcePolicy(android.content.ComponentName primaryDataSource, android.content.ComponentName secondaryDataSource, int systemDataSourceFallback);
+ ctor public DefaultComplicationDataSourcePolicy(android.content.ComponentName primaryDataSource, androidx.wear.watchface.complications.data.ComplicationType primaryDataSourceDefaultType, android.content.ComponentName secondaryDataSource, androidx.wear.watchface.complications.data.ComplicationType secondaryDataSourceDefaultType, int systemDataSourceFallback, androidx.wear.watchface.complications.data.ComplicationType systemDataSourceFallbackDefaultType);
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public DefaultComplicationDataSourcePolicy(androidx.wear.watchface.complications.data.DefaultComplicationDataSourcePolicyWireFormat wireFormat);
+ method public android.content.ComponentName? getPrimaryDataSource();
+ method public androidx.wear.watchface.complications.data.ComplicationType? getPrimaryDataSourceDefaultType();
+ method public android.content.ComponentName? getSecondaryDataSource();
+ method public androidx.wear.watchface.complications.data.ComplicationType? getSecondaryDataSourceDefaultType();
+ method public int getSystemDataSourceFallback();
+ method public androidx.wear.watchface.complications.data.ComplicationType getSystemDataSourceFallbackDefaultType();
+ method public boolean isEmpty();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.complications.data.DefaultComplicationDataSourcePolicyWireFormat toWireFormat();
+ property public final android.content.ComponentName? primaryDataSource;
+ property public final androidx.wear.watchface.complications.data.ComplicationType? primaryDataSourceDefaultType;
+ property public final android.content.ComponentName? secondaryDataSource;
+ property public final androidx.wear.watchface.complications.data.ComplicationType? secondaryDataSourceDefaultType;
+ property public final int systemDataSourceFallback;
+ property public final androidx.wear.watchface.complications.data.ComplicationType systemDataSourceFallbackDefaultType;
+ }
+
+ public final class SystemDataSources {
+ field public static final androidx.wear.watchface.complications.SystemDataSources.Companion Companion;
+ field public static final int DATA_SOURCE_APP_SHORTCUT = 6; // 0x6
+ field public static final int DATA_SOURCE_DATE = 2; // 0x2
+ field public static final int DATA_SOURCE_DAY_AND_DATE = 16; // 0x10
+ field public static final int DATA_SOURCE_DAY_OF_WEEK = 13; // 0xd
+ field public static final int DATA_SOURCE_FAVORITE_CONTACT = 14; // 0xe
+ field public static final int DATA_SOURCE_NEXT_EVENT = 9; // 0x9
+ field public static final int DATA_SOURCE_STEP_COUNT = 4; // 0x4
+ field public static final int DATA_SOURCE_SUNRISE_SUNSET = 12; // 0xc
+ field public static final int DATA_SOURCE_TIME_AND_DATE = 3; // 0x3
+ field public static final int DATA_SOURCE_UNREAD_NOTIFICATION_COUNT = 7; // 0x7
+ field public static final int DATA_SOURCE_WATCH_BATTERY = 1; // 0x1
+ field public static final int DATA_SOURCE_WORLD_CLOCK = 5; // 0x5
+ field public static final int NO_DATA_SOURCE = -1; // 0xffffffff
+ }
+
+ public static final class SystemDataSources.Companion {
+ }
+
+}
+
diff --git a/wear/watchface/watchface-data/api/1.1.0-beta02.txt b/wear/watchface/watchface-data/api/1.1.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/wear/watchface/watchface-data/api/1.1.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/wear/watchface/watchface-data/api/public_plus_experimental_1.1.0-beta02.txt b/wear/watchface/watchface-data/api/public_plus_experimental_1.1.0-beta02.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/wear/watchface/watchface-data/api/public_plus_experimental_1.1.0-beta02.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/wear/watchface/watchface-data/api/res-1.1.0-beta02.txt b/wear/watchface/watchface-data/api/res-1.1.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/watchface/watchface-data/api/res-1.1.0-beta02.txt
diff --git a/wear/watchface/watchface-data/api/restricted_1.1.0-beta02.txt b/wear/watchface/watchface-data/api/restricted_1.1.0-beta02.txt
new file mode 100644
index 0000000..4b060f3
--- /dev/null
+++ b/wear/watchface/watchface-data/api/restricted_1.1.0-beta02.txt
@@ -0,0 +1,396 @@
+// Signature format: 4.0
+package androidx.wear.watchface.control.data {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class ComplicationRenderParams implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public ComplicationRenderParams(int, androidx.wear.watchface.data.RenderParametersWireFormat, long, android.support.wearable.complications.ComplicationData?, androidx.wear.watchface.style.data.UserStyleWireFormat?);
+ method public int describeContents();
+ method public long getCalendarTimeMillis();
+ method public android.support.wearable.complications.ComplicationData? getComplicationData();
+ method public int getComplicationSlotId();
+ method public androidx.wear.watchface.data.RenderParametersWireFormat getRenderParametersWireFormat();
+ method public androidx.wear.watchface.style.data.UserStyleWireFormat? getUserStyle();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.control.data.ComplicationRenderParams!>! CREATOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public class CrashInfoParcel implements android.os.Parcelable {
+ ctor public CrashInfoParcel(Throwable);
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.control.data.CrashInfoParcel!>! CREATOR;
+ field public final android.app.ApplicationErrorReport.CrashInfo crashInfo;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class DefaultProviderPoliciesParams implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public DefaultProviderPoliciesParams(android.content.ComponentName);
+ method public int describeContents();
+ method public android.content.ComponentName getWatchFaceName();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.control.data.DefaultProviderPoliciesParams!>! CREATOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class GetComplicationSlotMetadataParams implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public GetComplicationSlotMetadataParams(android.content.ComponentName);
+ method public int describeContents();
+ method public android.content.ComponentName getWatchFaceName();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.control.data.GetComplicationSlotMetadataParams!>! CREATOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class GetUserStyleFlavorsParams implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public GetUserStyleFlavorsParams(android.content.ComponentName);
+ method public int describeContents();
+ method public android.content.ComponentName getWatchFaceName();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.control.data.GetUserStyleFlavorsParams!>! CREATOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class GetUserStyleSchemaParams implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public GetUserStyleSchemaParams(android.content.ComponentName);
+ method public int describeContents();
+ method public android.content.ComponentName getWatchFaceName();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.control.data.GetUserStyleSchemaParams!>! CREATOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class HeadlessWatchFaceInstanceParams implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor @Deprecated public HeadlessWatchFaceInstanceParams(android.content.ComponentName, androidx.wear.watchface.data.DeviceConfig, int, int);
+ ctor public HeadlessWatchFaceInstanceParams(android.content.ComponentName, androidx.wear.watchface.data.DeviceConfig, int, int, String?);
+ method public int describeContents();
+ method public androidx.wear.watchface.data.DeviceConfig getDeviceConfig();
+ method public int getHeight();
+ method public String? getInstanceId();
+ method public android.content.ComponentName getWatchFaceName();
+ method public int getWidth();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.control.data.HeadlessWatchFaceInstanceParams!>! CREATOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public final class IdTypeAndDefaultProviderPolicyWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public IdTypeAndDefaultProviderPolicyWireFormat(int, java.util.List<android.content.ComponentName!>?, int, int);
+ method public int describeContents();
+ method public int getDefaultProviderType();
+ method public java.util.List<android.content.ComponentName!>? getDefaultProvidersToTry();
+ method public int getFallbackSystemProvider();
+ method public int getId();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.control.data.IdTypeAndDefaultProviderPolicyWireFormat!>! CREATOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize(allowSerialization=true) public class WallpaperInteractiveWatchFaceInstanceParams implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public WallpaperInteractiveWatchFaceInstanceParams(String, androidx.wear.watchface.data.DeviceConfig, androidx.wear.watchface.data.WatchUiState, androidx.wear.watchface.style.data.UserStyleWireFormat, java.util.List<androidx.wear.watchface.data.IdAndComplicationDataWireFormat!>?);
+ method public int describeContents();
+ method public androidx.wear.watchface.data.DeviceConfig getDeviceConfig();
+ method public java.util.List<androidx.wear.watchface.data.IdAndComplicationDataWireFormat!>? getIdAndComplicationDataWireFormats();
+ method public String getInstanceId();
+ method public androidx.wear.watchface.style.data.UserStyleWireFormat getUserStyle();
+ method public androidx.wear.watchface.data.WatchUiState getWatchUiState();
+ method public void setIdAndComplicationDataWireFormats(java.util.List<androidx.wear.watchface.data.IdAndComplicationDataWireFormat!>?);
+ method public void setUserStyle(androidx.wear.watchface.style.data.UserStyleWireFormat);
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.control.data.WallpaperInteractiveWatchFaceInstanceParams!>! CREATOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class WatchFaceRenderParams implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public WatchFaceRenderParams(androidx.wear.watchface.data.RenderParametersWireFormat, long, androidx.wear.watchface.style.data.UserStyleWireFormat?, java.util.List<androidx.wear.watchface.data.IdAndComplicationDataWireFormat!>?);
+ method public int describeContents();
+ method public long getCalendarTimeMillis();
+ method public java.util.List<androidx.wear.watchface.data.IdAndComplicationDataWireFormat!>? getIdAndComplicationDatumWireFormats();
+ method public androidx.wear.watchface.data.RenderParametersWireFormat getRenderParametersWireFormat();
+ method public androidx.wear.watchface.style.data.UserStyleWireFormat? getUserStyle();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.control.data.WatchFaceRenderParams!>! CREATOR;
+ }
+
+}
+
+package androidx.wear.watchface.data {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public final class ComplicationSlotMetadataWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public ComplicationSlotMetadataWireFormat(int, int[], android.graphics.RectF![], int, int[], java.util.List<android.content.ComponentName!>?, int, int, int, int, boolean, boolean, android.os.Bundle);
+ ctor @Deprecated public ComplicationSlotMetadataWireFormat(int, int[], android.graphics.RectF![], int, int[], java.util.List<android.content.ComponentName!>?, int, int, boolean, boolean, android.os.Bundle);
+ method public int describeContents();
+ method public int getBoundsType();
+ method public android.graphics.RectF![] getComplicationBounds();
+ method public int[] getComplicationBoundsType();
+ method public android.os.Bundle getComplicationConfigExtras();
+ method public int getDefaultDataSourceType();
+ method public java.util.List<android.content.ComponentName!>? getDefaultDataSourcesToTry();
+ method public int getFallbackSystemDataSource();
+ method public int getId();
+ method public int getPrimaryDataSourceDefaultType();
+ method public int getSecondaryDataSourceDefaultType();
+ method public int[] getSupportedTypes();
+ method public boolean isFixedComplicationDataSource();
+ method public boolean isInitiallyEnabled();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.data.ComplicationSlotMetadataWireFormat!>! CREATOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public final class ComplicationStateWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public ComplicationStateWireFormat(android.graphics.Rect, int, int[], java.util.List<android.content.ComponentName!>?, int, int, int, int, boolean, boolean, int, boolean, android.os.Bundle, Integer?, Integer?);
+ ctor @Deprecated public ComplicationStateWireFormat(android.graphics.Rect, int, int[], java.util.List<android.content.ComponentName!>?, int, int, boolean, boolean, int, boolean, android.os.Bundle);
+ method public int describeContents();
+ method public android.graphics.Rect getBounds();
+ method public int getBoundsType();
+ method public android.os.Bundle getComplicationConfigExtras();
+ method public int getCurrentType();
+ method public int getDefaultDataSourceType();
+ method public java.util.List<android.content.ComponentName!>? getDefaultDataSourcesToTry();
+ method @Deprecated public int getDefaultProviderType();
+ method @Deprecated public java.util.List<android.content.ComponentName!>? getDefaultProvidersToTry();
+ method public int getFallbackSystemProvider();
+ method public Integer? getNameResourceId();
+ method public int getPrimaryDataSourceDefaultType();
+ method public Integer? getScreenReaderNameResourceId();
+ method public int getSecondaryDataSourceDefaultType();
+ method public int[] getSupportedTypes();
+ method public boolean isEnabled();
+ method public boolean isFixedComplicationProvider();
+ method public boolean isInitiallyEnabled();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.data.ComplicationStateWireFormat!>! CREATOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize(allowSerialization=true) public final class DeviceConfig implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public DeviceConfig(boolean, boolean, long, long);
+ method public int describeContents();
+ method public long getAnalogPreviewReferenceTimeMillis();
+ method public long getDigitalPreviewReferenceTimeMillis();
+ method public boolean getHasBurnInProtection();
+ method public boolean getHasLowBitAmbient();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.data.DeviceConfig!>! CREATOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public final class IdAndComplicationDataWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public IdAndComplicationDataWireFormat(int, android.support.wearable.complications.ComplicationData);
+ method public int describeContents();
+ method public android.support.wearable.complications.ComplicationData getComplicationData();
+ method public int getId();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.data.IdAndComplicationDataWireFormat!>! CREATOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public final class IdAndComplicationStateWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public IdAndComplicationStateWireFormat(int, androidx.wear.watchface.data.ComplicationStateWireFormat);
+ method public int describeContents();
+ method public androidx.wear.watchface.data.ComplicationStateWireFormat getComplicationState();
+ method public int getId();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.data.IdAndComplicationStateWireFormat!>! CREATOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize(allowSerialization=true) public final class IdAndTapEventWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public IdAndTapEventWireFormat(int, int, int, long);
+ method public int describeContents();
+ method public long getCalendarTapTimeMillis();
+ method public int getId();
+ method public int getX();
+ method public int getY();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.data.IdAndTapEventWireFormat!>! CREATOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class LayerParameterWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public LayerParameterWireFormat(int, int);
+ method public int describeContents();
+ method public int getLayer();
+ method public int getLayerMode();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.data.LayerParameterWireFormat!>! CREATOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class RenderParametersWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public RenderParametersWireFormat(int, int, int, int, String?, @ColorInt int, @ColorInt int, java.util.List<androidx.wear.watchface.data.IdAndTapEventWireFormat!>);
+ method public int describeContents();
+ method @ColorInt public int getBackgroundTint();
+ method public int getDrawMode();
+ method public int getElementComplicationSlotId();
+ method public int getElementType();
+ method public String? getElementUserStyleSettingId();
+ method @ColorInt public int getHighlightTint();
+ method public java.util.List<androidx.wear.watchface.data.IdAndTapEventWireFormat!>? getIdAndTapEventWireFormat();
+ method public int getWatchFaceLayerSetBitfield();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.data.RenderParametersWireFormat!>! CREATOR;
+ field public static int ELEMENT_TYPE_ALL_COMPLICATIONS;
+ field public static int ELEMENT_TYPE_COMPLICATION;
+ field public static int ELEMENT_TYPE_NONE;
+ field public static int ELEMENT_TYPE_USER_STYLE;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class WatchFaceOverlayStyleWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public WatchFaceOverlayStyleWireFormat(android.graphics.Color?, android.graphics.Color?);
+ method public int describeContents();
+ method public android.graphics.Color? getBackgroundColor();
+ method public android.graphics.Color? getForegroundColor();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.data.WatchFaceOverlayStyleWireFormat!>! CREATOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize(allowSerialization=true) public final class WatchUiState implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public WatchUiState(boolean, int);
+ method public int describeContents();
+ method public boolean getInAmbientMode();
+ method public int getInterruptionFilter();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.data.WatchUiState!>! CREATOR;
+ }
+
+}
+
+package androidx.wear.watchface.editor.data {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize(allowSerialization=true) public final class EditorStateWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public EditorStateWireFormat(String?, androidx.wear.watchface.style.data.UserStyleWireFormat, java.util.List<androidx.wear.watchface.data.IdAndComplicationDataWireFormat!>, boolean, android.os.Bundle?);
+ method public int describeContents();
+ method public boolean getCommitChanges();
+ method public java.util.List<androidx.wear.watchface.data.IdAndComplicationDataWireFormat!> getPreviewComplicationData();
+ method public android.os.Bundle? getPreviewImageBundle();
+ method public androidx.wear.watchface.style.data.UserStyleWireFormat getUserStyle();
+ method public String? getWatchFaceInstanceId();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.editor.data.EditorStateWireFormat!>! CREATOR;
+ }
+
+}
+
+package androidx.wear.watchface.style.data {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class BooleanOptionWireFormat extends androidx.wear.watchface.style.data.OptionWireFormat {
+ ctor public BooleanOptionWireFormat(byte[]);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class BooleanUserStyleSettingWireFormat extends androidx.wear.watchface.style.data.UserStyleSettingWireFormat {
+ ctor @Deprecated public BooleanUserStyleSettingWireFormat(String, CharSequence, CharSequence, android.graphics.drawable.Icon?, java.util.List<androidx.wear.watchface.style.data.OptionWireFormat!>, int, java.util.List<java.lang.Integer!>);
+ ctor public BooleanUserStyleSettingWireFormat(String, CharSequence, CharSequence, android.graphics.drawable.Icon?, java.util.List<androidx.wear.watchface.style.data.OptionWireFormat!>, int, java.util.List<java.lang.Integer!>, android.os.Bundle?, java.util.List<android.os.Bundle!>?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class ComplicationOverlayWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public ComplicationOverlayWireFormat(int, Boolean?, java.util.Map<java.lang.Integer!,android.graphics.RectF!>?, Integer?);
+ method public int describeContents();
+ method public Integer? getAccessibilityTraversalIndex();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.style.data.ComplicationOverlayWireFormat!>! CREATOR;
+ field public static final int ENABLED_NO = 0; // 0x0
+ field public static final int ENABLED_UNKNOWN = -1; // 0xffffffff
+ field public static final int ENABLED_YES = 1; // 0x1
+ field public static final long NULL_ACCESSIBILITY_TRAVERSAL_INDEX = 4294967296L; // 0x100000000L
+ field @androidx.versionedparcelable.ParcelField(1) public int mComplicationSlotId;
+ field @androidx.versionedparcelable.ParcelField(2) public int mEnabled;
+ field @androidx.versionedparcelable.ParcelField(3) public java.util.Map<java.lang.Integer!,android.graphics.RectF!>? mPerComplicationTypeBounds;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class ComplicationsOptionWireFormat extends androidx.wear.watchface.style.data.OptionWireFormat {
+ ctor public ComplicationsOptionWireFormat(byte[], CharSequence, android.graphics.drawable.Icon?, androidx.wear.watchface.style.data.ComplicationOverlayWireFormat![]);
+ field @androidx.versionedparcelable.ParcelField(100) public androidx.wear.watchface.style.data.ComplicationOverlayWireFormat![] mComplicationOverlays;
+ field @androidx.versionedparcelable.ParcelField(2) public CharSequence mDisplayName;
+ field @androidx.versionedparcelable.ParcelField(3) public android.graphics.drawable.Icon? mIcon;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class ComplicationsUserStyleSettingWireFormat extends androidx.wear.watchface.style.data.UserStyleSettingWireFormat {
+ ctor @Deprecated public ComplicationsUserStyleSettingWireFormat(String, CharSequence, CharSequence, android.graphics.drawable.Icon?, java.util.List<androidx.wear.watchface.style.data.OptionWireFormat!>, int, java.util.List<java.lang.Integer!>);
+ ctor public ComplicationsUserStyleSettingWireFormat(String, CharSequence, CharSequence, android.graphics.drawable.Icon?, java.util.List<androidx.wear.watchface.style.data.OptionWireFormat!>, int, java.util.List<java.lang.Integer!>, android.os.Bundle?, java.util.List<android.os.Bundle!>?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class CustomValueOptionWireFormat extends androidx.wear.watchface.style.data.OptionWireFormat {
+ ctor public CustomValueOptionWireFormat(byte[]);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class CustomValueUserStyleSettingWireFormat extends androidx.wear.watchface.style.data.UserStyleSettingWireFormat {
+ ctor @Deprecated public CustomValueUserStyleSettingWireFormat(String, CharSequence, CharSequence, android.graphics.drawable.Icon?, java.util.List<androidx.wear.watchface.style.data.OptionWireFormat!>, java.util.List<java.lang.Integer!>);
+ ctor public CustomValueUserStyleSettingWireFormat(String, CharSequence, CharSequence, android.graphics.drawable.Icon?, java.util.List<androidx.wear.watchface.style.data.OptionWireFormat!>, java.util.List<java.lang.Integer!>, android.os.Bundle?, java.util.List<android.os.Bundle!>?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class DoubleRangeOptionWireFormat extends androidx.wear.watchface.style.data.OptionWireFormat {
+ ctor public DoubleRangeOptionWireFormat(byte[]);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class DoubleRangeUserStyleSettingWireFormat extends androidx.wear.watchface.style.data.UserStyleSettingWireFormat {
+ ctor @Deprecated public DoubleRangeUserStyleSettingWireFormat(String, CharSequence, CharSequence, android.graphics.drawable.Icon?, java.util.List<androidx.wear.watchface.style.data.OptionWireFormat!>, int, java.util.List<java.lang.Integer!>);
+ ctor public DoubleRangeUserStyleSettingWireFormat(String, CharSequence, CharSequence, android.graphics.drawable.Icon?, java.util.List<androidx.wear.watchface.style.data.OptionWireFormat!>, int, java.util.List<java.lang.Integer!>, android.os.Bundle?, java.util.List<android.os.Bundle!>?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class ListOptionWireFormat extends androidx.wear.watchface.style.data.OptionWireFormat {
+ ctor public ListOptionWireFormat(byte[], CharSequence, android.graphics.drawable.Icon?);
+ field @androidx.versionedparcelable.ParcelField(2) public CharSequence mDisplayName;
+ field @androidx.versionedparcelable.ParcelField(3) public android.graphics.drawable.Icon? mIcon;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class ListUserStyleSettingWireFormat extends androidx.wear.watchface.style.data.UserStyleSettingWireFormat {
+ ctor @Deprecated public ListUserStyleSettingWireFormat(String, CharSequence, CharSequence, android.graphics.drawable.Icon?, java.util.List<androidx.wear.watchface.style.data.OptionWireFormat!>, int, java.util.List<java.lang.Integer!>);
+ ctor public ListUserStyleSettingWireFormat(String, CharSequence, CharSequence, android.graphics.drawable.Icon?, java.util.List<androidx.wear.watchface.style.data.OptionWireFormat!>, int, java.util.List<java.lang.Integer!>, android.os.Bundle?, java.util.List<android.os.Bundle!>?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class LongRangeOptionWireFormat extends androidx.wear.watchface.style.data.OptionWireFormat {
+ ctor public LongRangeOptionWireFormat(byte[]);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class LongRangeUserStyleSettingWireFormat extends androidx.wear.watchface.style.data.UserStyleSettingWireFormat {
+ ctor @Deprecated public LongRangeUserStyleSettingWireFormat(String, CharSequence, CharSequence, android.graphics.drawable.Icon?, java.util.List<androidx.wear.watchface.style.data.OptionWireFormat!>, int, java.util.List<java.lang.Integer!>);
+ ctor public LongRangeUserStyleSettingWireFormat(String, CharSequence, CharSequence, android.graphics.drawable.Icon?, java.util.List<androidx.wear.watchface.style.data.OptionWireFormat!>, int, java.util.List<java.lang.Integer!>, android.os.Bundle?, java.util.List<android.os.Bundle!>?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class OptionWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public OptionWireFormat(byte[]);
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.style.data.OptionWireFormat!>! CREATOR;
+ field @androidx.versionedparcelable.ParcelField(1) public byte[] mId;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class UserStyleFlavorWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public UserStyleFlavorWireFormat(String, androidx.wear.watchface.style.data.UserStyleWireFormat, java.util.Map<java.lang.Integer!,androidx.wear.watchface.complications.data.DefaultComplicationDataSourcePolicyWireFormat!>);
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.style.data.UserStyleFlavorWireFormat!>! CREATOR;
+ field @androidx.versionedparcelable.ParcelField(3) public java.util.Map<java.lang.Integer!,androidx.wear.watchface.complications.data.DefaultComplicationDataSourcePolicyWireFormat!> mComplications;
+ field @androidx.versionedparcelable.ParcelField(1) public String mId;
+ field @androidx.versionedparcelable.ParcelField(2) public androidx.wear.watchface.style.data.UserStyleWireFormat mStyle;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class UserStyleFlavorsWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public UserStyleFlavorsWireFormat(java.util.List<androidx.wear.watchface.style.data.UserStyleFlavorWireFormat!>);
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.style.data.UserStyleFlavorsWireFormat!>! CREATOR;
+ field @androidx.versionedparcelable.ParcelField(1) public java.util.List<androidx.wear.watchface.style.data.UserStyleFlavorWireFormat!> mFlavors;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class UserStyleSchemaWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public UserStyleSchemaWireFormat(java.util.List<androidx.wear.watchface.style.data.UserStyleSettingWireFormat!>);
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.style.data.UserStyleSchemaWireFormat!>! CREATOR;
+ field @androidx.versionedparcelable.ParcelField(1) public java.util.List<androidx.wear.watchface.style.data.UserStyleSettingWireFormat!> mSchema;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize public class UserStyleSettingWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor @Deprecated public UserStyleSettingWireFormat(String, CharSequence, CharSequence, android.graphics.drawable.Icon?, java.util.List<androidx.wear.watchface.style.data.OptionWireFormat!>, int, java.util.List<java.lang.Integer!>);
+ ctor public UserStyleSettingWireFormat(String, CharSequence, CharSequence, android.graphics.drawable.Icon?, java.util.List<androidx.wear.watchface.style.data.OptionWireFormat!>, int, java.util.List<java.lang.Integer!>, android.os.Bundle?, java.util.List<android.os.Bundle!>?);
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.style.data.UserStyleSettingWireFormat!>! CREATOR;
+ field @androidx.versionedparcelable.ParcelField(6) public java.util.List<java.lang.Integer!> mAffectsLayers;
+ field @androidx.versionedparcelable.ParcelField(5) public int mDefaultOptionIndex;
+ field @androidx.versionedparcelable.ParcelField(3) public CharSequence mDescription;
+ field @androidx.versionedparcelable.ParcelField(2) public CharSequence mDisplayName;
+ field @androidx.versionedparcelable.ParcelField(4) public android.graphics.drawable.Icon? mIcon;
+ field @androidx.versionedparcelable.ParcelField(1) public String mId;
+ field @androidx.versionedparcelable.ParcelField(102) public android.os.Bundle? mOnWatchFaceEditorBundle;
+ field @androidx.versionedparcelable.ParcelField(101) public java.util.List<java.lang.Integer!>? mOptionChildIndices;
+ field @androidx.versionedparcelable.ParcelField(100) public java.util.List<androidx.wear.watchface.style.data.OptionWireFormat!> mOptions;
+ field @androidx.versionedparcelable.ParcelField(103) public java.util.List<android.os.Bundle!>? mPerOptionOnWatchFaceEditorBundles;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.versionedparcelable.VersionedParcelize(allowSerialization=true) public class UserStyleWireFormat implements android.os.Parcelable androidx.versionedparcelable.VersionedParcelable {
+ ctor public UserStyleWireFormat(java.util.Map<java.lang.String!,byte[]!>);
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator<androidx.wear.watchface.style.data.UserStyleWireFormat!>! CREATOR;
+ field @androidx.versionedparcelable.ParcelField(1) public java.util.Map<java.lang.String!,byte[]!> mUserStyle;
+ }
+
+}
+
diff --git a/wear/watchface/watchface-editor-guava/api/1.1.0-beta02.txt b/wear/watchface/watchface-editor-guava/api/1.1.0-beta02.txt
new file mode 100644
index 0000000..1e5a0c8
--- /dev/null
+++ b/wear/watchface/watchface-editor-guava/api/1.1.0-beta02.txt
@@ -0,0 +1,43 @@
+// Signature format: 4.0
+package androidx.wear.watchface.editor {
+
+ public final class ListenableEditorSession implements androidx.wear.watchface.editor.EditorSession {
+ ctor public ListenableEditorSession(androidx.wear.watchface.editor.EditorSession wrappedEditorSession);
+ method public void close();
+ method @RequiresApi(27) @UiThread public static androidx.wear.watchface.editor.ListenableEditorSession createHeadlessEditorSession(androidx.activity.ComponentActivity activity, android.content.Intent editIntent, androidx.wear.watchface.client.HeadlessWatchFaceClient headlessWatchFaceClient);
+ method public Integer? getBackgroundComplicationSlotId();
+ method public Integer? getComplicationSlotIdAt(int x, int y);
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState>> getComplicationSlotsState();
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.ComplicationDataSourceInfo>> getComplicationsDataSourceInfo();
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData>> getComplicationsPreviewData();
+ method public java.time.Instant getPreviewReferenceInstant();
+ method public kotlinx.coroutines.flow.MutableStateFlow<androidx.wear.watchface.style.UserStyle> getUserStyle();
+ method public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
+ method public android.content.ComponentName getWatchFaceComponentName();
+ method @RequiresApi(android.os.Build.VERSION_CODES.R) public androidx.wear.watchface.client.WatchFaceId getWatchFaceId();
+ method public boolean isCommitChangesOnClose();
+ method @UiThread public static com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.editor.ListenableEditorSession> listenableCreateOnWatchEditorSession(androidx.activity.ComponentActivity activity);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.editor.ChosenComplicationDataSource> listenableOpenComplicationDataSourceChooser(int complicationSlotId);
+ method public suspend Object? openComplicationDataSourceChooser(int complicationSlotId, kotlin.coroutines.Continuation<? super androidx.wear.watchface.editor.ChosenComplicationDataSource>);
+ method public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData);
+ method public void setCommitChangesOnClose(boolean);
+ property public Integer? backgroundComplicationSlotId;
+ property public boolean commitChangesOnClose;
+ property public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState>> complicationSlotsState;
+ property public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.ComplicationDataSourceInfo>> complicationsDataSourceInfo;
+ property public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData>> complicationsPreviewData;
+ property public java.time.Instant previewReferenceInstant;
+ property public kotlinx.coroutines.flow.MutableStateFlow<androidx.wear.watchface.style.UserStyle> userStyle;
+ property public androidx.wear.watchface.style.UserStyleSchema userStyleSchema;
+ property public android.content.ComponentName watchFaceComponentName;
+ property @RequiresApi(android.os.Build.VERSION_CODES.R) public androidx.wear.watchface.client.WatchFaceId watchFaceId;
+ field public static final androidx.wear.watchface.editor.ListenableEditorSession.Companion Companion;
+ }
+
+ public static final class ListenableEditorSession.Companion {
+ method @RequiresApi(27) @UiThread public androidx.wear.watchface.editor.ListenableEditorSession createHeadlessEditorSession(androidx.activity.ComponentActivity activity, android.content.Intent editIntent, androidx.wear.watchface.client.HeadlessWatchFaceClient headlessWatchFaceClient);
+ method @UiThread public com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.editor.ListenableEditorSession> listenableCreateOnWatchEditorSession(androidx.activity.ComponentActivity activity);
+ }
+
+}
+
diff --git a/wear/watchface/watchface-editor-guava/api/public_plus_experimental_1.1.0-beta02.txt b/wear/watchface/watchface-editor-guava/api/public_plus_experimental_1.1.0-beta02.txt
new file mode 100644
index 0000000..1e5a0c8
--- /dev/null
+++ b/wear/watchface/watchface-editor-guava/api/public_plus_experimental_1.1.0-beta02.txt
@@ -0,0 +1,43 @@
+// Signature format: 4.0
+package androidx.wear.watchface.editor {
+
+ public final class ListenableEditorSession implements androidx.wear.watchface.editor.EditorSession {
+ ctor public ListenableEditorSession(androidx.wear.watchface.editor.EditorSession wrappedEditorSession);
+ method public void close();
+ method @RequiresApi(27) @UiThread public static androidx.wear.watchface.editor.ListenableEditorSession createHeadlessEditorSession(androidx.activity.ComponentActivity activity, android.content.Intent editIntent, androidx.wear.watchface.client.HeadlessWatchFaceClient headlessWatchFaceClient);
+ method public Integer? getBackgroundComplicationSlotId();
+ method public Integer? getComplicationSlotIdAt(int x, int y);
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState>> getComplicationSlotsState();
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.ComplicationDataSourceInfo>> getComplicationsDataSourceInfo();
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData>> getComplicationsPreviewData();
+ method public java.time.Instant getPreviewReferenceInstant();
+ method public kotlinx.coroutines.flow.MutableStateFlow<androidx.wear.watchface.style.UserStyle> getUserStyle();
+ method public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
+ method public android.content.ComponentName getWatchFaceComponentName();
+ method @RequiresApi(android.os.Build.VERSION_CODES.R) public androidx.wear.watchface.client.WatchFaceId getWatchFaceId();
+ method public boolean isCommitChangesOnClose();
+ method @UiThread public static com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.editor.ListenableEditorSession> listenableCreateOnWatchEditorSession(androidx.activity.ComponentActivity activity);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.editor.ChosenComplicationDataSource> listenableOpenComplicationDataSourceChooser(int complicationSlotId);
+ method public suspend Object? openComplicationDataSourceChooser(int complicationSlotId, kotlin.coroutines.Continuation<? super androidx.wear.watchface.editor.ChosenComplicationDataSource>);
+ method public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData);
+ method public void setCommitChangesOnClose(boolean);
+ property public Integer? backgroundComplicationSlotId;
+ property public boolean commitChangesOnClose;
+ property public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState>> complicationSlotsState;
+ property public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.ComplicationDataSourceInfo>> complicationsDataSourceInfo;
+ property public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData>> complicationsPreviewData;
+ property public java.time.Instant previewReferenceInstant;
+ property public kotlinx.coroutines.flow.MutableStateFlow<androidx.wear.watchface.style.UserStyle> userStyle;
+ property public androidx.wear.watchface.style.UserStyleSchema userStyleSchema;
+ property public android.content.ComponentName watchFaceComponentName;
+ property @RequiresApi(android.os.Build.VERSION_CODES.R) public androidx.wear.watchface.client.WatchFaceId watchFaceId;
+ field public static final androidx.wear.watchface.editor.ListenableEditorSession.Companion Companion;
+ }
+
+ public static final class ListenableEditorSession.Companion {
+ method @RequiresApi(27) @UiThread public androidx.wear.watchface.editor.ListenableEditorSession createHeadlessEditorSession(androidx.activity.ComponentActivity activity, android.content.Intent editIntent, androidx.wear.watchface.client.HeadlessWatchFaceClient headlessWatchFaceClient);
+ method @UiThread public com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.editor.ListenableEditorSession> listenableCreateOnWatchEditorSession(androidx.activity.ComponentActivity activity);
+ }
+
+}
+
diff --git a/wear/watchface/watchface-editor-guava/api/res-1.1.0-beta02.txt b/wear/watchface/watchface-editor-guava/api/res-1.1.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/watchface/watchface-editor-guava/api/res-1.1.0-beta02.txt
diff --git a/wear/watchface/watchface-editor-guava/api/restricted_1.1.0-beta02.txt b/wear/watchface/watchface-editor-guava/api/restricted_1.1.0-beta02.txt
new file mode 100644
index 0000000..1e5a0c8
--- /dev/null
+++ b/wear/watchface/watchface-editor-guava/api/restricted_1.1.0-beta02.txt
@@ -0,0 +1,43 @@
+// Signature format: 4.0
+package androidx.wear.watchface.editor {
+
+ public final class ListenableEditorSession implements androidx.wear.watchface.editor.EditorSession {
+ ctor public ListenableEditorSession(androidx.wear.watchface.editor.EditorSession wrappedEditorSession);
+ method public void close();
+ method @RequiresApi(27) @UiThread public static androidx.wear.watchface.editor.ListenableEditorSession createHeadlessEditorSession(androidx.activity.ComponentActivity activity, android.content.Intent editIntent, androidx.wear.watchface.client.HeadlessWatchFaceClient headlessWatchFaceClient);
+ method public Integer? getBackgroundComplicationSlotId();
+ method public Integer? getComplicationSlotIdAt(int x, int y);
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState>> getComplicationSlotsState();
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.ComplicationDataSourceInfo>> getComplicationsDataSourceInfo();
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData>> getComplicationsPreviewData();
+ method public java.time.Instant getPreviewReferenceInstant();
+ method public kotlinx.coroutines.flow.MutableStateFlow<androidx.wear.watchface.style.UserStyle> getUserStyle();
+ method public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
+ method public android.content.ComponentName getWatchFaceComponentName();
+ method @RequiresApi(android.os.Build.VERSION_CODES.R) public androidx.wear.watchface.client.WatchFaceId getWatchFaceId();
+ method public boolean isCommitChangesOnClose();
+ method @UiThread public static com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.editor.ListenableEditorSession> listenableCreateOnWatchEditorSession(androidx.activity.ComponentActivity activity);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.editor.ChosenComplicationDataSource> listenableOpenComplicationDataSourceChooser(int complicationSlotId);
+ method public suspend Object? openComplicationDataSourceChooser(int complicationSlotId, kotlin.coroutines.Continuation<? super androidx.wear.watchface.editor.ChosenComplicationDataSource>);
+ method public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData);
+ method public void setCommitChangesOnClose(boolean);
+ property public Integer? backgroundComplicationSlotId;
+ property public boolean commitChangesOnClose;
+ property public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState>> complicationSlotsState;
+ property public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.ComplicationDataSourceInfo>> complicationsDataSourceInfo;
+ property public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData>> complicationsPreviewData;
+ property public java.time.Instant previewReferenceInstant;
+ property public kotlinx.coroutines.flow.MutableStateFlow<androidx.wear.watchface.style.UserStyle> userStyle;
+ property public androidx.wear.watchface.style.UserStyleSchema userStyleSchema;
+ property public android.content.ComponentName watchFaceComponentName;
+ property @RequiresApi(android.os.Build.VERSION_CODES.R) public androidx.wear.watchface.client.WatchFaceId watchFaceId;
+ field public static final androidx.wear.watchface.editor.ListenableEditorSession.Companion Companion;
+ }
+
+ public static final class ListenableEditorSession.Companion {
+ method @RequiresApi(27) @UiThread public androidx.wear.watchface.editor.ListenableEditorSession createHeadlessEditorSession(androidx.activity.ComponentActivity activity, android.content.Intent editIntent, androidx.wear.watchface.client.HeadlessWatchFaceClient headlessWatchFaceClient);
+ method @UiThread public com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.editor.ListenableEditorSession> listenableCreateOnWatchEditorSession(androidx.activity.ComponentActivity activity);
+ }
+
+}
+
diff --git a/wear/watchface/watchface-editor/api/1.1.0-beta02.txt b/wear/watchface/watchface-editor/api/1.1.0-beta02.txt
new file mode 100644
index 0000000..817f024
--- /dev/null
+++ b/wear/watchface/watchface-editor/api/1.1.0-beta02.txt
@@ -0,0 +1,100 @@
+// Signature format: 4.0
+package androidx.wear.watchface.editor {
+
+ public final class ChosenComplicationDataSource {
+ ctor public ChosenComplicationDataSource(int complicationSlotId, androidx.wear.watchface.complications.ComplicationDataSourceInfo? complicationDataSourceInfo, android.os.Bundle extras);
+ method public androidx.wear.watchface.complications.ComplicationDataSourceInfo? getComplicationDataSourceInfo();
+ method public int getComplicationSlotId();
+ method public android.os.Bundle getExtras();
+ property public final androidx.wear.watchface.complications.ComplicationDataSourceInfo? complicationDataSourceInfo;
+ property public final int complicationSlotId;
+ property public final android.os.Bundle extras;
+ }
+
+ public final class EditorRequest {
+ ctor @RequiresApi(android.os.Build.VERSION_CODES.R) public EditorRequest(android.content.ComponentName watchFaceComponentName, String editorPackageName, androidx.wear.watchface.style.UserStyleData? initialUserStyle, @RequiresApi(android.os.Build.VERSION_CODES.R) androidx.wear.watchface.client.WatchFaceId watchFaceId, androidx.wear.watchface.client.DeviceConfig? headlessDeviceConfig, androidx.wear.watchface.editor.PreviewScreenshotParams? previewScreenshotParams);
+ ctor public EditorRequest(android.content.ComponentName watchFaceComponentName, String editorPackageName, androidx.wear.watchface.style.UserStyleData? initialUserStyle);
+ method @kotlin.jvm.Throws(exceptionClasses=TimeoutCancellationException::class) public static androidx.wear.watchface.editor.EditorRequest createFromIntent(android.content.Intent intent) throws kotlinx.coroutines.TimeoutCancellationException;
+ method public String getEditorPackageName();
+ method public androidx.wear.watchface.client.DeviceConfig? getHeadlessDeviceConfig();
+ method public androidx.wear.watchface.style.UserStyleData? getInitialUserStyle();
+ method public androidx.wear.watchface.editor.PreviewScreenshotParams? getPreviewScreenshotParams();
+ method public android.content.ComponentName getWatchFaceComponentName();
+ method @RequiresApi(android.os.Build.VERSION_CODES.R) public androidx.wear.watchface.client.WatchFaceId getWatchFaceId();
+ property public final String editorPackageName;
+ property public final androidx.wear.watchface.client.DeviceConfig? headlessDeviceConfig;
+ property public final androidx.wear.watchface.style.UserStyleData? initialUserStyle;
+ property public final androidx.wear.watchface.editor.PreviewScreenshotParams? previewScreenshotParams;
+ property public final android.content.ComponentName watchFaceComponentName;
+ property @RequiresApi(android.os.Build.VERSION_CODES.R) public final androidx.wear.watchface.client.WatchFaceId watchFaceId;
+ field public static final androidx.wear.watchface.editor.EditorRequest.Companion Companion;
+ }
+
+ public static final class EditorRequest.Companion {
+ method @kotlin.jvm.Throws(exceptionClasses=TimeoutCancellationException::class) public androidx.wear.watchface.editor.EditorRequest createFromIntent(android.content.Intent intent) throws kotlinx.coroutines.TimeoutCancellationException;
+ }
+
+ public interface EditorSession extends java.lang.AutoCloseable {
+ method @RequiresApi(27) @UiThread public default static androidx.wear.watchface.editor.EditorSession createHeadlessEditorSession(androidx.activity.ComponentActivity activity, android.content.Intent editIntent, androidx.wear.watchface.client.HeadlessWatchFaceClient headlessWatchFaceClient);
+ method @UiThread @kotlin.jvm.Throws(exceptionClasses=TimeoutCancellationException::class) public default static suspend Object? createOnWatchEditorSession(androidx.activity.ComponentActivity activity, kotlin.coroutines.Continuation<? super androidx.wear.watchface.editor.EditorSession>) throws kotlinx.coroutines.TimeoutCancellationException;
+ method public Integer? getBackgroundComplicationSlotId();
+ method @UiThread public Integer? getComplicationSlotIdAt(@Px int x, @Px int y);
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState>> getComplicationSlotsState();
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.ComplicationDataSourceInfo>> getComplicationsDataSourceInfo();
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData>> getComplicationsPreviewData();
+ method public java.time.Instant getPreviewReferenceInstant();
+ method public kotlinx.coroutines.flow.MutableStateFlow<androidx.wear.watchface.style.UserStyle> getUserStyle();
+ method public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
+ method public android.content.ComponentName getWatchFaceComponentName();
+ method public androidx.wear.watchface.client.WatchFaceId getWatchFaceId();
+ method @UiThread public boolean isCommitChangesOnClose();
+ method @UiThread public suspend Object? openComplicationDataSourceChooser(int complicationSlotId, kotlin.coroutines.Continuation<? super androidx.wear.watchface.editor.ChosenComplicationDataSource>);
+ method @UiThread public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData);
+ method @UiThread public void setCommitChangesOnClose(boolean);
+ property public abstract Integer? backgroundComplicationSlotId;
+ property @UiThread public abstract boolean commitChangesOnClose;
+ property public abstract kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState>> complicationSlotsState;
+ property public abstract kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.ComplicationDataSourceInfo>> complicationsDataSourceInfo;
+ property public abstract kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData>> complicationsPreviewData;
+ property public abstract java.time.Instant previewReferenceInstant;
+ property public abstract kotlinx.coroutines.flow.MutableStateFlow<androidx.wear.watchface.style.UserStyle> userStyle;
+ property public abstract androidx.wear.watchface.style.UserStyleSchema userStyleSchema;
+ property public abstract android.content.ComponentName watchFaceComponentName;
+ property public abstract androidx.wear.watchface.client.WatchFaceId watchFaceId;
+ field public static final androidx.wear.watchface.editor.EditorSession.Companion Companion;
+ field public static final java.time.Instant DEFAULT_PREVIEW_INSTANT;
+ field public static final java.time.Duration EDITING_SESSION_TIMEOUT;
+ }
+
+ public static final class EditorSession.Companion {
+ method @RequiresApi(27) @UiThread public androidx.wear.watchface.editor.EditorSession createHeadlessEditorSession(androidx.activity.ComponentActivity activity, android.content.Intent editIntent, androidx.wear.watchface.client.HeadlessWatchFaceClient headlessWatchFaceClient);
+ method @UiThread @kotlin.jvm.Throws(exceptionClasses=TimeoutCancellationException::class) public suspend Object? createOnWatchEditorSession(androidx.activity.ComponentActivity activity, kotlin.coroutines.Continuation<? super androidx.wear.watchface.editor.EditorSession>) throws kotlinx.coroutines.TimeoutCancellationException;
+ }
+
+ public final class EditorSessionKt {
+ }
+
+ public final class PreviewScreenshotParams {
+ ctor public PreviewScreenshotParams(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant);
+ method public java.time.Instant getInstant();
+ method public androidx.wear.watchface.RenderParameters getRenderParameters();
+ property public final java.time.Instant instant;
+ property public final androidx.wear.watchface.RenderParameters renderParameters;
+ }
+
+ public class WatchFaceEditorContract extends androidx.activity.result.contract.ActivityResultContract<androidx.wear.watchface.editor.EditorRequest,kotlin.Unit> {
+ ctor public WatchFaceEditorContract();
+ method public android.content.Intent createIntent(android.content.Context context, androidx.wear.watchface.editor.EditorRequest input);
+ method public void parseResult(int resultCode, android.content.Intent? intent);
+ field public static final String ACTION_WATCH_FACE_EDITOR = "androidx.wear.watchface.editor.action.WATCH_FACE_EDITOR";
+ field public static final androidx.wear.watchface.editor.WatchFaceEditorContract.Companion Companion;
+ }
+
+ public static final class WatchFaceEditorContract.Companion {
+ }
+
+ public final class WatchFaceEditorContractKt {
+ }
+
+}
+
diff --git a/wear/watchface/watchface-editor/api/public_plus_experimental_1.1.0-beta02.txt b/wear/watchface/watchface-editor/api/public_plus_experimental_1.1.0-beta02.txt
new file mode 100644
index 0000000..817f024
--- /dev/null
+++ b/wear/watchface/watchface-editor/api/public_plus_experimental_1.1.0-beta02.txt
@@ -0,0 +1,100 @@
+// Signature format: 4.0
+package androidx.wear.watchface.editor {
+
+ public final class ChosenComplicationDataSource {
+ ctor public ChosenComplicationDataSource(int complicationSlotId, androidx.wear.watchface.complications.ComplicationDataSourceInfo? complicationDataSourceInfo, android.os.Bundle extras);
+ method public androidx.wear.watchface.complications.ComplicationDataSourceInfo? getComplicationDataSourceInfo();
+ method public int getComplicationSlotId();
+ method public android.os.Bundle getExtras();
+ property public final androidx.wear.watchface.complications.ComplicationDataSourceInfo? complicationDataSourceInfo;
+ property public final int complicationSlotId;
+ property public final android.os.Bundle extras;
+ }
+
+ public final class EditorRequest {
+ ctor @RequiresApi(android.os.Build.VERSION_CODES.R) public EditorRequest(android.content.ComponentName watchFaceComponentName, String editorPackageName, androidx.wear.watchface.style.UserStyleData? initialUserStyle, @RequiresApi(android.os.Build.VERSION_CODES.R) androidx.wear.watchface.client.WatchFaceId watchFaceId, androidx.wear.watchface.client.DeviceConfig? headlessDeviceConfig, androidx.wear.watchface.editor.PreviewScreenshotParams? previewScreenshotParams);
+ ctor public EditorRequest(android.content.ComponentName watchFaceComponentName, String editorPackageName, androidx.wear.watchface.style.UserStyleData? initialUserStyle);
+ method @kotlin.jvm.Throws(exceptionClasses=TimeoutCancellationException::class) public static androidx.wear.watchface.editor.EditorRequest createFromIntent(android.content.Intent intent) throws kotlinx.coroutines.TimeoutCancellationException;
+ method public String getEditorPackageName();
+ method public androidx.wear.watchface.client.DeviceConfig? getHeadlessDeviceConfig();
+ method public androidx.wear.watchface.style.UserStyleData? getInitialUserStyle();
+ method public androidx.wear.watchface.editor.PreviewScreenshotParams? getPreviewScreenshotParams();
+ method public android.content.ComponentName getWatchFaceComponentName();
+ method @RequiresApi(android.os.Build.VERSION_CODES.R) public androidx.wear.watchface.client.WatchFaceId getWatchFaceId();
+ property public final String editorPackageName;
+ property public final androidx.wear.watchface.client.DeviceConfig? headlessDeviceConfig;
+ property public final androidx.wear.watchface.style.UserStyleData? initialUserStyle;
+ property public final androidx.wear.watchface.editor.PreviewScreenshotParams? previewScreenshotParams;
+ property public final android.content.ComponentName watchFaceComponentName;
+ property @RequiresApi(android.os.Build.VERSION_CODES.R) public final androidx.wear.watchface.client.WatchFaceId watchFaceId;
+ field public static final androidx.wear.watchface.editor.EditorRequest.Companion Companion;
+ }
+
+ public static final class EditorRequest.Companion {
+ method @kotlin.jvm.Throws(exceptionClasses=TimeoutCancellationException::class) public androidx.wear.watchface.editor.EditorRequest createFromIntent(android.content.Intent intent) throws kotlinx.coroutines.TimeoutCancellationException;
+ }
+
+ public interface EditorSession extends java.lang.AutoCloseable {
+ method @RequiresApi(27) @UiThread public default static androidx.wear.watchface.editor.EditorSession createHeadlessEditorSession(androidx.activity.ComponentActivity activity, android.content.Intent editIntent, androidx.wear.watchface.client.HeadlessWatchFaceClient headlessWatchFaceClient);
+ method @UiThread @kotlin.jvm.Throws(exceptionClasses=TimeoutCancellationException::class) public default static suspend Object? createOnWatchEditorSession(androidx.activity.ComponentActivity activity, kotlin.coroutines.Continuation<? super androidx.wear.watchface.editor.EditorSession>) throws kotlinx.coroutines.TimeoutCancellationException;
+ method public Integer? getBackgroundComplicationSlotId();
+ method @UiThread public Integer? getComplicationSlotIdAt(@Px int x, @Px int y);
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState>> getComplicationSlotsState();
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.ComplicationDataSourceInfo>> getComplicationsDataSourceInfo();
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData>> getComplicationsPreviewData();
+ method public java.time.Instant getPreviewReferenceInstant();
+ method public kotlinx.coroutines.flow.MutableStateFlow<androidx.wear.watchface.style.UserStyle> getUserStyle();
+ method public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
+ method public android.content.ComponentName getWatchFaceComponentName();
+ method public androidx.wear.watchface.client.WatchFaceId getWatchFaceId();
+ method @UiThread public boolean isCommitChangesOnClose();
+ method @UiThread public suspend Object? openComplicationDataSourceChooser(int complicationSlotId, kotlin.coroutines.Continuation<? super androidx.wear.watchface.editor.ChosenComplicationDataSource>);
+ method @UiThread public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData);
+ method @UiThread public void setCommitChangesOnClose(boolean);
+ property public abstract Integer? backgroundComplicationSlotId;
+ property @UiThread public abstract boolean commitChangesOnClose;
+ property public abstract kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState>> complicationSlotsState;
+ property public abstract kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.ComplicationDataSourceInfo>> complicationsDataSourceInfo;
+ property public abstract kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData>> complicationsPreviewData;
+ property public abstract java.time.Instant previewReferenceInstant;
+ property public abstract kotlinx.coroutines.flow.MutableStateFlow<androidx.wear.watchface.style.UserStyle> userStyle;
+ property public abstract androidx.wear.watchface.style.UserStyleSchema userStyleSchema;
+ property public abstract android.content.ComponentName watchFaceComponentName;
+ property public abstract androidx.wear.watchface.client.WatchFaceId watchFaceId;
+ field public static final androidx.wear.watchface.editor.EditorSession.Companion Companion;
+ field public static final java.time.Instant DEFAULT_PREVIEW_INSTANT;
+ field public static final java.time.Duration EDITING_SESSION_TIMEOUT;
+ }
+
+ public static final class EditorSession.Companion {
+ method @RequiresApi(27) @UiThread public androidx.wear.watchface.editor.EditorSession createHeadlessEditorSession(androidx.activity.ComponentActivity activity, android.content.Intent editIntent, androidx.wear.watchface.client.HeadlessWatchFaceClient headlessWatchFaceClient);
+ method @UiThread @kotlin.jvm.Throws(exceptionClasses=TimeoutCancellationException::class) public suspend Object? createOnWatchEditorSession(androidx.activity.ComponentActivity activity, kotlin.coroutines.Continuation<? super androidx.wear.watchface.editor.EditorSession>) throws kotlinx.coroutines.TimeoutCancellationException;
+ }
+
+ public final class EditorSessionKt {
+ }
+
+ public final class PreviewScreenshotParams {
+ ctor public PreviewScreenshotParams(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant);
+ method public java.time.Instant getInstant();
+ method public androidx.wear.watchface.RenderParameters getRenderParameters();
+ property public final java.time.Instant instant;
+ property public final androidx.wear.watchface.RenderParameters renderParameters;
+ }
+
+ public class WatchFaceEditorContract extends androidx.activity.result.contract.ActivityResultContract<androidx.wear.watchface.editor.EditorRequest,kotlin.Unit> {
+ ctor public WatchFaceEditorContract();
+ method public android.content.Intent createIntent(android.content.Context context, androidx.wear.watchface.editor.EditorRequest input);
+ method public void parseResult(int resultCode, android.content.Intent? intent);
+ field public static final String ACTION_WATCH_FACE_EDITOR = "androidx.wear.watchface.editor.action.WATCH_FACE_EDITOR";
+ field public static final androidx.wear.watchface.editor.WatchFaceEditorContract.Companion Companion;
+ }
+
+ public static final class WatchFaceEditorContract.Companion {
+ }
+
+ public final class WatchFaceEditorContractKt {
+ }
+
+}
+
diff --git a/wear/watchface/watchface-editor/api/res-1.1.0-beta02.txt b/wear/watchface/watchface-editor/api/res-1.1.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/watchface/watchface-editor/api/res-1.1.0-beta02.txt
diff --git a/wear/watchface/watchface-editor/api/restricted_1.1.0-beta02.txt b/wear/watchface/watchface-editor/api/restricted_1.1.0-beta02.txt
new file mode 100644
index 0000000..817f024
--- /dev/null
+++ b/wear/watchface/watchface-editor/api/restricted_1.1.0-beta02.txt
@@ -0,0 +1,100 @@
+// Signature format: 4.0
+package androidx.wear.watchface.editor {
+
+ public final class ChosenComplicationDataSource {
+ ctor public ChosenComplicationDataSource(int complicationSlotId, androidx.wear.watchface.complications.ComplicationDataSourceInfo? complicationDataSourceInfo, android.os.Bundle extras);
+ method public androidx.wear.watchface.complications.ComplicationDataSourceInfo? getComplicationDataSourceInfo();
+ method public int getComplicationSlotId();
+ method public android.os.Bundle getExtras();
+ property public final androidx.wear.watchface.complications.ComplicationDataSourceInfo? complicationDataSourceInfo;
+ property public final int complicationSlotId;
+ property public final android.os.Bundle extras;
+ }
+
+ public final class EditorRequest {
+ ctor @RequiresApi(android.os.Build.VERSION_CODES.R) public EditorRequest(android.content.ComponentName watchFaceComponentName, String editorPackageName, androidx.wear.watchface.style.UserStyleData? initialUserStyle, @RequiresApi(android.os.Build.VERSION_CODES.R) androidx.wear.watchface.client.WatchFaceId watchFaceId, androidx.wear.watchface.client.DeviceConfig? headlessDeviceConfig, androidx.wear.watchface.editor.PreviewScreenshotParams? previewScreenshotParams);
+ ctor public EditorRequest(android.content.ComponentName watchFaceComponentName, String editorPackageName, androidx.wear.watchface.style.UserStyleData? initialUserStyle);
+ method @kotlin.jvm.Throws(exceptionClasses=TimeoutCancellationException::class) public static androidx.wear.watchface.editor.EditorRequest createFromIntent(android.content.Intent intent) throws kotlinx.coroutines.TimeoutCancellationException;
+ method public String getEditorPackageName();
+ method public androidx.wear.watchface.client.DeviceConfig? getHeadlessDeviceConfig();
+ method public androidx.wear.watchface.style.UserStyleData? getInitialUserStyle();
+ method public androidx.wear.watchface.editor.PreviewScreenshotParams? getPreviewScreenshotParams();
+ method public android.content.ComponentName getWatchFaceComponentName();
+ method @RequiresApi(android.os.Build.VERSION_CODES.R) public androidx.wear.watchface.client.WatchFaceId getWatchFaceId();
+ property public final String editorPackageName;
+ property public final androidx.wear.watchface.client.DeviceConfig? headlessDeviceConfig;
+ property public final androidx.wear.watchface.style.UserStyleData? initialUserStyle;
+ property public final androidx.wear.watchface.editor.PreviewScreenshotParams? previewScreenshotParams;
+ property public final android.content.ComponentName watchFaceComponentName;
+ property @RequiresApi(android.os.Build.VERSION_CODES.R) public final androidx.wear.watchface.client.WatchFaceId watchFaceId;
+ field public static final androidx.wear.watchface.editor.EditorRequest.Companion Companion;
+ }
+
+ public static final class EditorRequest.Companion {
+ method @kotlin.jvm.Throws(exceptionClasses=TimeoutCancellationException::class) public androidx.wear.watchface.editor.EditorRequest createFromIntent(android.content.Intent intent) throws kotlinx.coroutines.TimeoutCancellationException;
+ }
+
+ public interface EditorSession extends java.lang.AutoCloseable {
+ method @RequiresApi(27) @UiThread public default static androidx.wear.watchface.editor.EditorSession createHeadlessEditorSession(androidx.activity.ComponentActivity activity, android.content.Intent editIntent, androidx.wear.watchface.client.HeadlessWatchFaceClient headlessWatchFaceClient);
+ method @UiThread @kotlin.jvm.Throws(exceptionClasses=TimeoutCancellationException::class) public default static suspend Object? createOnWatchEditorSession(androidx.activity.ComponentActivity activity, kotlin.coroutines.Continuation<? super androidx.wear.watchface.editor.EditorSession>) throws kotlinx.coroutines.TimeoutCancellationException;
+ method public Integer? getBackgroundComplicationSlotId();
+ method @UiThread public Integer? getComplicationSlotIdAt(@Px int x, @Px int y);
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState>> getComplicationSlotsState();
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.ComplicationDataSourceInfo>> getComplicationsDataSourceInfo();
+ method public kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData>> getComplicationsPreviewData();
+ method public java.time.Instant getPreviewReferenceInstant();
+ method public kotlinx.coroutines.flow.MutableStateFlow<androidx.wear.watchface.style.UserStyle> getUserStyle();
+ method public androidx.wear.watchface.style.UserStyleSchema getUserStyleSchema();
+ method public android.content.ComponentName getWatchFaceComponentName();
+ method public androidx.wear.watchface.client.WatchFaceId getWatchFaceId();
+ method @UiThread public boolean isCommitChangesOnClose();
+ method @UiThread public suspend Object? openComplicationDataSourceChooser(int complicationSlotId, kotlin.coroutines.Continuation<? super androidx.wear.watchface.editor.ChosenComplicationDataSource>);
+ method @UiThread public android.graphics.Bitmap renderWatchFaceToBitmap(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant, java.util.Map<java.lang.Integer,? extends androidx.wear.watchface.complications.data.ComplicationData>? slotIdToComplicationData);
+ method @UiThread public void setCommitChangesOnClose(boolean);
+ property public abstract Integer? backgroundComplicationSlotId;
+ property @UiThread public abstract boolean commitChangesOnClose;
+ property public abstract kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.client.ComplicationSlotState>> complicationSlotsState;
+ property public abstract kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.ComplicationDataSourceInfo>> complicationsDataSourceInfo;
+ property public abstract kotlinx.coroutines.flow.StateFlow<java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.data.ComplicationData>> complicationsPreviewData;
+ property public abstract java.time.Instant previewReferenceInstant;
+ property public abstract kotlinx.coroutines.flow.MutableStateFlow<androidx.wear.watchface.style.UserStyle> userStyle;
+ property public abstract androidx.wear.watchface.style.UserStyleSchema userStyleSchema;
+ property public abstract android.content.ComponentName watchFaceComponentName;
+ property public abstract androidx.wear.watchface.client.WatchFaceId watchFaceId;
+ field public static final androidx.wear.watchface.editor.EditorSession.Companion Companion;
+ field public static final java.time.Instant DEFAULT_PREVIEW_INSTANT;
+ field public static final java.time.Duration EDITING_SESSION_TIMEOUT;
+ }
+
+ public static final class EditorSession.Companion {
+ method @RequiresApi(27) @UiThread public androidx.wear.watchface.editor.EditorSession createHeadlessEditorSession(androidx.activity.ComponentActivity activity, android.content.Intent editIntent, androidx.wear.watchface.client.HeadlessWatchFaceClient headlessWatchFaceClient);
+ method @UiThread @kotlin.jvm.Throws(exceptionClasses=TimeoutCancellationException::class) public suspend Object? createOnWatchEditorSession(androidx.activity.ComponentActivity activity, kotlin.coroutines.Continuation<? super androidx.wear.watchface.editor.EditorSession>) throws kotlinx.coroutines.TimeoutCancellationException;
+ }
+
+ public final class EditorSessionKt {
+ }
+
+ public final class PreviewScreenshotParams {
+ ctor public PreviewScreenshotParams(androidx.wear.watchface.RenderParameters renderParameters, java.time.Instant instant);
+ method public java.time.Instant getInstant();
+ method public androidx.wear.watchface.RenderParameters getRenderParameters();
+ property public final java.time.Instant instant;
+ property public final androidx.wear.watchface.RenderParameters renderParameters;
+ }
+
+ public class WatchFaceEditorContract extends androidx.activity.result.contract.ActivityResultContract<androidx.wear.watchface.editor.EditorRequest,kotlin.Unit> {
+ ctor public WatchFaceEditorContract();
+ method public android.content.Intent createIntent(android.content.Context context, androidx.wear.watchface.editor.EditorRequest input);
+ method public void parseResult(int resultCode, android.content.Intent? intent);
+ field public static final String ACTION_WATCH_FACE_EDITOR = "androidx.wear.watchface.editor.action.WATCH_FACE_EDITOR";
+ field public static final androidx.wear.watchface.editor.WatchFaceEditorContract.Companion Companion;
+ }
+
+ public static final class WatchFaceEditorContract.Companion {
+ }
+
+ public final class WatchFaceEditorContractKt {
+ }
+
+}
+
diff --git a/wear/watchface/watchface-guava/api/1.1.0-beta02.txt b/wear/watchface/watchface-guava/api/1.1.0-beta02.txt
new file mode 100644
index 0000000..98993bd
--- /dev/null
+++ b/wear/watchface/watchface-guava/api/1.1.0-beta02.txt
@@ -0,0 +1,56 @@
+// Signature format: 4.0
+package androidx.wear.watchface {
+
+ @Deprecated public abstract class ListenableCanvasRenderer extends androidx.wear.watchface.Renderer.CanvasRenderer {
+ ctor @Deprecated public ListenableCanvasRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @androidx.wear.watchface.CanvasType int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional boolean clearWithBackgroundTintBeforeRenderingHighlightLayer);
+ ctor @Deprecated public ListenableCanvasRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @androidx.wear.watchface.CanvasType int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis);
+ method @Deprecated public suspend Object? init(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated @UiThread public com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> initFuture();
+ }
+
+ public abstract class ListenableCanvasRenderer2<SharedAssetsT extends androidx.wear.watchface.Renderer.SharedAssets> extends androidx.wear.watchface.Renderer.CanvasRenderer2<SharedAssetsT> {
+ ctor public ListenableCanvasRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @androidx.wear.watchface.CanvasType int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional boolean clearWithBackgroundTintBeforeRenderingHighlightLayer);
+ ctor public ListenableCanvasRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @androidx.wear.watchface.CanvasType int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis);
+ method protected final suspend Object? createSharedAssets(kotlin.coroutines.Continuation<? super SharedAssetsT>);
+ method @WorkerThread public abstract com.google.common.util.concurrent.ListenableFuture<SharedAssetsT> createSharedAssetsFuture();
+ method public final suspend Object? init(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @UiThread public com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> initFuture();
+ }
+
+ @Deprecated public abstract class ListenableGlesRenderer extends androidx.wear.watchface.Renderer.GlesRenderer {
+ ctor @Deprecated @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList, optional int[] eglSurfaceAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @Deprecated @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @Deprecated @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ method @Deprecated public suspend Object? onBackgroundThreadGlContextCreated(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated protected com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> onBackgroundThreadGlContextCreatedFuture();
+ method @Deprecated public suspend Object? onUiThreadGlSurfaceCreated(@Px int width, @Px int height, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated @UiThread protected com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> onUiThreadGlSurfaceCreatedFuture(@Px int width, @Px int height);
+ method @Deprecated @WorkerThread public final void runBackgroundThreadGlCommands(Runnable runnable);
+ method @Deprecated @UiThread public final void runUiThreadGlCommands(Runnable runnable);
+ }
+
+ public abstract class ListenableGlesRenderer2<SharedAssetsT extends androidx.wear.watchface.Renderer.SharedAssets> extends androidx.wear.watchface.Renderer.GlesRenderer2<SharedAssetsT> {
+ ctor @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList, optional int[] eglSurfaceAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ method protected final suspend Object? createSharedAssets(kotlin.coroutines.Continuation<? super SharedAssetsT>);
+ method @WorkerThread public abstract com.google.common.util.concurrent.ListenableFuture<SharedAssetsT> createSharedAssetsFuture();
+ method public final suspend Object? onBackgroundThreadGlContextCreated(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method protected com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> onBackgroundThreadGlContextCreatedFuture();
+ method public final suspend Object? onUiThreadGlSurfaceCreated(@Px int width, @Px int height, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @UiThread protected com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> onUiThreadGlSurfaceCreatedFuture(@Px int width, @Px int height);
+ method @WorkerThread public final void runBackgroundThreadGlCommands(Runnable runnable);
+ method @UiThread public final void runUiThreadGlCommands(Runnable runnable);
+ }
+
+ public final class ListenableGlesRendererKt {
+ }
+
+ public abstract class ListenableWatchFaceService extends androidx.wear.watchface.WatchFaceService {
+ ctor public ListenableWatchFaceService();
+ method protected suspend Object? createWatchFace(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.WatchState watchState, androidx.wear.watchface.ComplicationSlotsManager complicationSlotsManager, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, kotlin.coroutines.Continuation<? super androidx.wear.watchface.WatchFace>);
+ method protected abstract com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.WatchFace> createWatchFaceFuture(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.WatchState watchState, androidx.wear.watchface.ComplicationSlotsManager complicationSlotsManager, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository);
+ }
+
+}
+
diff --git a/wear/watchface/watchface-guava/api/public_plus_experimental_1.1.0-beta02.txt b/wear/watchface/watchface-guava/api/public_plus_experimental_1.1.0-beta02.txt
new file mode 100644
index 0000000..98993bd
--- /dev/null
+++ b/wear/watchface/watchface-guava/api/public_plus_experimental_1.1.0-beta02.txt
@@ -0,0 +1,56 @@
+// Signature format: 4.0
+package androidx.wear.watchface {
+
+ @Deprecated public abstract class ListenableCanvasRenderer extends androidx.wear.watchface.Renderer.CanvasRenderer {
+ ctor @Deprecated public ListenableCanvasRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @androidx.wear.watchface.CanvasType int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional boolean clearWithBackgroundTintBeforeRenderingHighlightLayer);
+ ctor @Deprecated public ListenableCanvasRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @androidx.wear.watchface.CanvasType int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis);
+ method @Deprecated public suspend Object? init(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated @UiThread public com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> initFuture();
+ }
+
+ public abstract class ListenableCanvasRenderer2<SharedAssetsT extends androidx.wear.watchface.Renderer.SharedAssets> extends androidx.wear.watchface.Renderer.CanvasRenderer2<SharedAssetsT> {
+ ctor public ListenableCanvasRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @androidx.wear.watchface.CanvasType int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional boolean clearWithBackgroundTintBeforeRenderingHighlightLayer);
+ ctor public ListenableCanvasRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @androidx.wear.watchface.CanvasType int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis);
+ method protected final suspend Object? createSharedAssets(kotlin.coroutines.Continuation<? super SharedAssetsT>);
+ method @WorkerThread public abstract com.google.common.util.concurrent.ListenableFuture<SharedAssetsT> createSharedAssetsFuture();
+ method public final suspend Object? init(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @UiThread public com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> initFuture();
+ }
+
+ @Deprecated public abstract class ListenableGlesRenderer extends androidx.wear.watchface.Renderer.GlesRenderer {
+ ctor @Deprecated @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList, optional int[] eglSurfaceAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @Deprecated @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @Deprecated @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ method @Deprecated public suspend Object? onBackgroundThreadGlContextCreated(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated protected com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> onBackgroundThreadGlContextCreatedFuture();
+ method @Deprecated public suspend Object? onUiThreadGlSurfaceCreated(@Px int width, @Px int height, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated @UiThread protected com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> onUiThreadGlSurfaceCreatedFuture(@Px int width, @Px int height);
+ method @Deprecated @WorkerThread public final void runBackgroundThreadGlCommands(Runnable runnable);
+ method @Deprecated @UiThread public final void runUiThreadGlCommands(Runnable runnable);
+ }
+
+ public abstract class ListenableGlesRenderer2<SharedAssetsT extends androidx.wear.watchface.Renderer.SharedAssets> extends androidx.wear.watchface.Renderer.GlesRenderer2<SharedAssetsT> {
+ ctor @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList, optional int[] eglSurfaceAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ method protected final suspend Object? createSharedAssets(kotlin.coroutines.Continuation<? super SharedAssetsT>);
+ method @WorkerThread public abstract com.google.common.util.concurrent.ListenableFuture<SharedAssetsT> createSharedAssetsFuture();
+ method public final suspend Object? onBackgroundThreadGlContextCreated(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method protected com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> onBackgroundThreadGlContextCreatedFuture();
+ method public final suspend Object? onUiThreadGlSurfaceCreated(@Px int width, @Px int height, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @UiThread protected com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> onUiThreadGlSurfaceCreatedFuture(@Px int width, @Px int height);
+ method @WorkerThread public final void runBackgroundThreadGlCommands(Runnable runnable);
+ method @UiThread public final void runUiThreadGlCommands(Runnable runnable);
+ }
+
+ public final class ListenableGlesRendererKt {
+ }
+
+ public abstract class ListenableWatchFaceService extends androidx.wear.watchface.WatchFaceService {
+ ctor public ListenableWatchFaceService();
+ method protected suspend Object? createWatchFace(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.WatchState watchState, androidx.wear.watchface.ComplicationSlotsManager complicationSlotsManager, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, kotlin.coroutines.Continuation<? super androidx.wear.watchface.WatchFace>);
+ method protected abstract com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.WatchFace> createWatchFaceFuture(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.WatchState watchState, androidx.wear.watchface.ComplicationSlotsManager complicationSlotsManager, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository);
+ }
+
+}
+
diff --git a/wear/watchface/watchface-guava/api/res-1.1.0-beta02.txt b/wear/watchface/watchface-guava/api/res-1.1.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/watchface/watchface-guava/api/res-1.1.0-beta02.txt
diff --git a/wear/watchface/watchface-guava/api/restricted_1.1.0-beta02.txt b/wear/watchface/watchface-guava/api/restricted_1.1.0-beta02.txt
new file mode 100644
index 0000000..98993bd
--- /dev/null
+++ b/wear/watchface/watchface-guava/api/restricted_1.1.0-beta02.txt
@@ -0,0 +1,56 @@
+// Signature format: 4.0
+package androidx.wear.watchface {
+
+ @Deprecated public abstract class ListenableCanvasRenderer extends androidx.wear.watchface.Renderer.CanvasRenderer {
+ ctor @Deprecated public ListenableCanvasRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @androidx.wear.watchface.CanvasType int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional boolean clearWithBackgroundTintBeforeRenderingHighlightLayer);
+ ctor @Deprecated public ListenableCanvasRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @androidx.wear.watchface.CanvasType int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis);
+ method @Deprecated public suspend Object? init(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated @UiThread public com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> initFuture();
+ }
+
+ public abstract class ListenableCanvasRenderer2<SharedAssetsT extends androidx.wear.watchface.Renderer.SharedAssets> extends androidx.wear.watchface.Renderer.CanvasRenderer2<SharedAssetsT> {
+ ctor public ListenableCanvasRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @androidx.wear.watchface.CanvasType int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional boolean clearWithBackgroundTintBeforeRenderingHighlightLayer);
+ ctor public ListenableCanvasRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @androidx.wear.watchface.CanvasType int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis);
+ method protected final suspend Object? createSharedAssets(kotlin.coroutines.Continuation<? super SharedAssetsT>);
+ method @WorkerThread public abstract com.google.common.util.concurrent.ListenableFuture<SharedAssetsT> createSharedAssetsFuture();
+ method public final suspend Object? init(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @UiThread public com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> initFuture();
+ }
+
+ @Deprecated public abstract class ListenableGlesRenderer extends androidx.wear.watchface.Renderer.GlesRenderer {
+ ctor @Deprecated @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList, optional int[] eglSurfaceAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @Deprecated @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @Deprecated @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ method @Deprecated public suspend Object? onBackgroundThreadGlContextCreated(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated protected com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> onBackgroundThreadGlContextCreatedFuture();
+ method @Deprecated public suspend Object? onUiThreadGlSurfaceCreated(@Px int width, @Px int height, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated @UiThread protected com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> onUiThreadGlSurfaceCreatedFuture(@Px int width, @Px int height);
+ method @Deprecated @WorkerThread public final void runBackgroundThreadGlCommands(Runnable runnable);
+ method @Deprecated @UiThread public final void runUiThreadGlCommands(Runnable runnable);
+ }
+
+ public abstract class ListenableGlesRenderer2<SharedAssetsT extends androidx.wear.watchface.Renderer.SharedAssets> extends androidx.wear.watchface.Renderer.GlesRenderer2<SharedAssetsT> {
+ ctor @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList, optional int[] eglSurfaceAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public ListenableGlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ method protected final suspend Object? createSharedAssets(kotlin.coroutines.Continuation<? super SharedAssetsT>);
+ method @WorkerThread public abstract com.google.common.util.concurrent.ListenableFuture<SharedAssetsT> createSharedAssetsFuture();
+ method public final suspend Object? onBackgroundThreadGlContextCreated(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method protected com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> onBackgroundThreadGlContextCreatedFuture();
+ method public final suspend Object? onUiThreadGlSurfaceCreated(@Px int width, @Px int height, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @UiThread protected com.google.common.util.concurrent.ListenableFuture<kotlin.Unit> onUiThreadGlSurfaceCreatedFuture(@Px int width, @Px int height);
+ method @WorkerThread public final void runBackgroundThreadGlCommands(Runnable runnable);
+ method @UiThread public final void runUiThreadGlCommands(Runnable runnable);
+ }
+
+ public final class ListenableGlesRendererKt {
+ }
+
+ public abstract class ListenableWatchFaceService extends androidx.wear.watchface.WatchFaceService {
+ ctor public ListenableWatchFaceService();
+ method protected suspend Object? createWatchFace(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.WatchState watchState, androidx.wear.watchface.ComplicationSlotsManager complicationSlotsManager, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, kotlin.coroutines.Continuation<? super androidx.wear.watchface.WatchFace>);
+ method protected abstract com.google.common.util.concurrent.ListenableFuture<androidx.wear.watchface.WatchFace> createWatchFaceFuture(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.WatchState watchState, androidx.wear.watchface.ComplicationSlotsManager complicationSlotsManager, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository);
+ }
+
+}
+
diff --git a/wear/watchface/watchface-style/api/1.1.0-beta02.txt b/wear/watchface/watchface-style/api/1.1.0-beta02.txt
new file mode 100644
index 0000000..a2df1b0
--- /dev/null
+++ b/wear/watchface/watchface-style/api/1.1.0-beta02.txt
@@ -0,0 +1,259 @@
+// Signature format: 4.0
+package androidx.wear.watchface.style {
+
+ public final class CurrentUserStyleRepository {
+ ctor public CurrentUserStyleRepository(androidx.wear.watchface.style.UserStyleSchema schema);
+ method public androidx.wear.watchface.style.UserStyleSchema getSchema();
+ method public kotlinx.coroutines.flow.StateFlow<androidx.wear.watchface.style.UserStyle> getUserStyle();
+ property public final androidx.wear.watchface.style.UserStyleSchema schema;
+ property public final kotlinx.coroutines.flow.StateFlow<androidx.wear.watchface.style.UserStyle> userStyle;
+ }
+
+ public final class MutableUserStyle implements java.lang.Iterable<java.util.Map.Entry<? extends androidx.wear.watchface.style.UserStyleSetting,? extends androidx.wear.watchface.style.UserStyleSetting.Option>> kotlin.jvm.internal.markers.KMappedMarker {
+ method public operator androidx.wear.watchface.style.UserStyleSetting.Option? get(androidx.wear.watchface.style.UserStyleSetting setting);
+ method public operator androidx.wear.watchface.style.UserStyleSetting.Option? get(androidx.wear.watchface.style.UserStyleSetting.Id settingId);
+ method public int getSize();
+ method public java.util.Iterator<java.util.Map.Entry<androidx.wear.watchface.style.UserStyleSetting,androidx.wear.watchface.style.UserStyleSetting.Option>> iterator();
+ method public operator void set(androidx.wear.watchface.style.UserStyleSetting setting, androidx.wear.watchface.style.UserStyleSetting.Option option);
+ method public operator void set(androidx.wear.watchface.style.UserStyleSetting.Id settingId, androidx.wear.watchface.style.UserStyleSetting.Option option);
+ method public operator void set(androidx.wear.watchface.style.UserStyleSetting setting, androidx.wear.watchface.style.UserStyleSetting.Option.Id optionId);
+ method public operator void set(androidx.wear.watchface.style.UserStyleSetting.Id settingId, androidx.wear.watchface.style.UserStyleSetting.Option.Id optionId);
+ method public androidx.wear.watchface.style.UserStyle toUserStyle();
+ property public final int size;
+ }
+
+ public final class UserStyle implements kotlin.jvm.internal.markers.KMappedMarker java.util.Map<androidx.wear.watchface.style.UserStyleSetting,androidx.wear.watchface.style.UserStyleSetting.Option> {
+ ctor public UserStyle(androidx.wear.watchface.style.UserStyle userStyle);
+ ctor public UserStyle(java.util.Map<androidx.wear.watchface.style.UserStyleSetting,? extends androidx.wear.watchface.style.UserStyleSetting.Option> selectedOptions);
+ ctor public UserStyle(androidx.wear.watchface.style.UserStyleData userStyle, androidx.wear.watchface.style.UserStyleSchema styleSchema);
+ method public boolean containsKey(androidx.wear.watchface.style.UserStyleSetting key);
+ method public boolean containsValue(androidx.wear.watchface.style.UserStyleSetting.Option value);
+ method public operator androidx.wear.watchface.style.UserStyleSetting.Option? get(androidx.wear.watchface.style.UserStyleSetting key);
+ method public operator androidx.wear.watchface.style.UserStyleSetting.Option? get(androidx.wear.watchface.style.UserStyleSetting.Id settingId);
+ method public java.util.Set<java.util.Map.Entry<androidx.wear.watchface.style.UserStyleSetting,androidx.wear.watchface.style.UserStyleSetting.Option>> getEntries();
+ method public java.util.Set<androidx.wear.watchface.style.UserStyleSetting> getKeys();
+ method public int getSize();
+ method public java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.Option> getValues();
+ method public boolean isEmpty();
+ method public androidx.wear.watchface.style.MutableUserStyle toMutableUserStyle();
+ method public androidx.wear.watchface.style.UserStyleData toUserStyleData();
+ property public java.util.Set<java.util.Map.Entry<androidx.wear.watchface.style.UserStyleSetting,androidx.wear.watchface.style.UserStyleSetting.Option>> entries;
+ property public java.util.Set<androidx.wear.watchface.style.UserStyleSetting> keys;
+ property public int size;
+ property public java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.Option> values;
+ }
+
+ public final class UserStyleData {
+ ctor public UserStyleData(java.util.Map<java.lang.String,byte[]> userStyleMap);
+ method public java.util.Map<java.lang.String,byte[]> getUserStyleMap();
+ property public final java.util.Map<java.lang.String,byte[]> userStyleMap;
+ }
+
+ public final class UserStyleSchema {
+ ctor public UserStyleSchema(java.util.List<? extends androidx.wear.watchface.style.UserStyleSetting> userStyleSettings);
+ method public operator androidx.wear.watchface.style.UserStyleSetting? get(androidx.wear.watchface.style.UserStyleSetting.Id settingId);
+ method public byte[] getDigestHash();
+ method public java.util.List<androidx.wear.watchface.style.UserStyleSetting> getUserStyleSettings();
+ property public final java.util.List<androidx.wear.watchface.style.UserStyleSetting> userStyleSettings;
+ }
+
+ public abstract sealed class UserStyleSetting {
+ method public final java.util.Collection<androidx.wear.watchface.style.WatchFaceLayer> getAffectedWatchFaceLayers();
+ method public final androidx.wear.watchface.style.UserStyleSetting.Option getDefaultOption();
+ method public final int getDefaultOptionIndex();
+ method public final CharSequence getDescription();
+ method public final CharSequence getDisplayName();
+ method public final android.graphics.drawable.Icon? getIcon();
+ method public final androidx.wear.watchface.style.UserStyleSetting.Id getId();
+ method public androidx.wear.watchface.style.UserStyleSetting.Option getOptionForId(androidx.wear.watchface.style.UserStyleSetting.Option.Id optionId);
+ method public final java.util.List<androidx.wear.watchface.style.UserStyleSetting.Option> getOptions();
+ method public final androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? getWatchFaceEditorData();
+ property public final java.util.Collection<androidx.wear.watchface.style.WatchFaceLayer> affectedWatchFaceLayers;
+ property public final androidx.wear.watchface.style.UserStyleSetting.Option defaultOption;
+ property public final int defaultOptionIndex;
+ property public final CharSequence description;
+ property public final CharSequence displayName;
+ property public final android.graphics.drawable.Icon? icon;
+ property public final androidx.wear.watchface.style.UserStyleSetting.Id id;
+ property public final java.util.List<androidx.wear.watchface.style.UserStyleSetting.Option> options;
+ property public final androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.Companion Companion;
+ }
+
+ public static final class UserStyleSetting.BooleanUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.BooleanUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, boolean defaultValue, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.BooleanUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, boolean defaultValue);
+ method public boolean getDefaultValue();
+ }
+
+ public static final class UserStyleSetting.BooleanUserStyleSetting.BooleanOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ method public static androidx.wear.watchface.style.UserStyleSetting.BooleanUserStyleSetting.BooleanOption from(boolean value);
+ method public boolean getValue();
+ property public final boolean value;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.BooleanUserStyleSetting.BooleanOption.Companion Companion;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.BooleanUserStyleSetting.BooleanOption FALSE;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.BooleanUserStyleSetting.BooleanOption TRUE;
+ }
+
+ public static final class UserStyleSetting.BooleanUserStyleSetting.BooleanOption.Companion {
+ method public androidx.wear.watchface.style.UserStyleSetting.BooleanUserStyleSetting.BooleanOption from(boolean value);
+ }
+
+ public static final class UserStyleSetting.Companion {
+ }
+
+ public static final class UserStyleSetting.ComplicationSlotsUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption> complicationConfig, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, optional androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption defaultOption, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption> complicationConfig, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, optional androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption defaultOption);
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption> complicationConfig, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers);
+ }
+
+ public static final class UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay {
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay(int complicationSlotId, optional Boolean? enabled, optional androidx.wear.watchface.complications.ComplicationSlotBounds? complicationSlotBounds, optional Integer? accessibilityTraversalIndex);
+ method public Integer? getAccessibilityTraversalIndex();
+ method public androidx.wear.watchface.complications.ComplicationSlotBounds? getComplicationSlotBounds();
+ method public int getComplicationSlotId();
+ method public Boolean? getEnabled();
+ property public final Integer? accessibilityTraversalIndex;
+ property public final androidx.wear.watchface.complications.ComplicationSlotBounds? complicationSlotBounds;
+ property public final int complicationSlotId;
+ property public final Boolean? enabled;
+ }
+
+ public static final class UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay.Builder {
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay.Builder(int complicationSlotId);
+ method public androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay build();
+ method public androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay.Builder setAccessibilityTraversalIndex(int accessibilityTraversalIndex);
+ method public androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay.Builder setComplicationSlotBounds(androidx.wear.watchface.complications.ComplicationSlotBounds complicationSlotBounds);
+ method public androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay.Builder setEnabled(boolean enabled);
+ }
+
+ public static final class UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption(androidx.wear.watchface.style.UserStyleSetting.Option.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, android.graphics.drawable.Icon? icon, java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay> complicationSlotOverlays, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption(androidx.wear.watchface.style.UserStyleSetting.Option.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, android.graphics.drawable.Icon? icon, java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay> complicationSlotOverlays);
+ method public java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay> getComplicationSlotOverlays();
+ method public CharSequence getDisplayName();
+ method public android.graphics.drawable.Icon? getIcon();
+ method public androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? getWatchFaceEditorData();
+ property public final java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay> complicationSlotOverlays;
+ property public final CharSequence displayName;
+ property public final android.graphics.drawable.Icon? icon;
+ property public final androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData;
+ }
+
+ public static final class UserStyleSetting.CustomValueUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.CustomValueUserStyleSetting(java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, byte[] defaultValue);
+ }
+
+ public static final class UserStyleSetting.CustomValueUserStyleSetting.CustomValueOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ ctor public UserStyleSetting.CustomValueUserStyleSetting.CustomValueOption(byte[] customValue);
+ method public byte[] getCustomValue();
+ property public final byte[] customValue;
+ }
+
+ public static final class UserStyleSetting.DoubleRangeUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.DoubleRangeUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, double minimumValue, double maximumValue, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, double defaultValue, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.DoubleRangeUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, double minimumValue, double maximumValue, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, double defaultValue);
+ method public double getDefaultValue();
+ method public double getMaximumValue();
+ method public double getMinimumValue();
+ property public final double defaultValue;
+ property public final double maximumValue;
+ property public final double minimumValue;
+ }
+
+ public static final class UserStyleSetting.DoubleRangeUserStyleSetting.DoubleRangeOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ ctor public UserStyleSetting.DoubleRangeUserStyleSetting.DoubleRangeOption(double value);
+ method public double getValue();
+ property public final double value;
+ }
+
+ public static final class UserStyleSetting.Id {
+ ctor public UserStyleSetting.Id(String value);
+ method public String getValue();
+ property public final String value;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.Id.Companion Companion;
+ field public static final int MAX_LENGTH = 40; // 0x28
+ }
+
+ public static final class UserStyleSetting.Id.Companion {
+ }
+
+ public static class UserStyleSetting.ListUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.ListUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ListUserStyleSetting.ListOption> options, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, optional androidx.wear.watchface.style.UserStyleSetting.ListUserStyleSetting.ListOption defaultOption, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.ListUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ListUserStyleSetting.ListOption> options, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, optional androidx.wear.watchface.style.UserStyleSetting.ListUserStyleSetting.ListOption defaultOption);
+ ctor public UserStyleSetting.ListUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ListUserStyleSetting.ListOption> options, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers);
+ }
+
+ public static final class UserStyleSetting.ListUserStyleSetting.ListOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ ctor public UserStyleSetting.ListUserStyleSetting.ListOption(androidx.wear.watchface.style.UserStyleSetting.Option.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, android.graphics.drawable.Icon? icon, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.ListUserStyleSetting.ListOption(androidx.wear.watchface.style.UserStyleSetting.Option.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, android.graphics.drawable.Icon? icon);
+ method public CharSequence getDisplayName();
+ method public android.graphics.drawable.Icon? getIcon();
+ method public androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? getWatchFaceEditorData();
+ property public final CharSequence displayName;
+ property public final android.graphics.drawable.Icon? icon;
+ property public final androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData;
+ }
+
+ public static final class UserStyleSetting.LongRangeUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.LongRangeUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, long minimumValue, long maximumValue, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, long defaultValue, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.LongRangeUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, long minimumValue, long maximumValue, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, long defaultValue);
+ method public long getDefaultValue();
+ method public long getMaximumValue();
+ method public long getMinimumValue();
+ property public final long defaultValue;
+ property public final long maximumValue;
+ property public final long minimumValue;
+ }
+
+ public static final class UserStyleSetting.LongRangeUserStyleSetting.LongRangeOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ ctor public UserStyleSetting.LongRangeUserStyleSetting.LongRangeOption(long value);
+ method public long getValue();
+ property public final long value;
+ }
+
+ public abstract static class UserStyleSetting.Option {
+ ctor public UserStyleSetting.Option(androidx.wear.watchface.style.UserStyleSetting.Option.Id id);
+ method public final androidx.wear.watchface.style.UserStyleSetting.Option.Id getId();
+ property public final androidx.wear.watchface.style.UserStyleSetting.Option.Id id;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.Option.Companion Companion;
+ }
+
+ public static final class UserStyleSetting.Option.Companion {
+ }
+
+ public static final class UserStyleSetting.Option.Id {
+ ctor public UserStyleSetting.Option.Id(byte[] value);
+ ctor public UserStyleSetting.Option.Id(String value);
+ method public byte[] getValue();
+ property public final byte[] value;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.Option.Id.Companion Companion;
+ field public static final int MAX_LENGTH = 1024; // 0x400
+ }
+
+ public static final class UserStyleSetting.Option.Id.Companion {
+ }
+
+ public static final class UserStyleSetting.WatchFaceEditorData {
+ ctor public UserStyleSetting.WatchFaceEditorData(android.graphics.drawable.Icon? icon);
+ method public android.graphics.drawable.Icon? getIcon();
+ property public final android.graphics.drawable.Icon? icon;
+ }
+
+ public final class UserStyleSettingKt {
+ }
+
+ public enum WatchFaceLayer {
+ enum_constant public static final androidx.wear.watchface.style.WatchFaceLayer BASE;
+ enum_constant public static final androidx.wear.watchface.style.WatchFaceLayer COMPLICATIONS;
+ enum_constant public static final androidx.wear.watchface.style.WatchFaceLayer COMPLICATIONS_OVERLAY;
+ field public static final java.util.Set<androidx.wear.watchface.style.WatchFaceLayer> ALL_WATCH_FACE_LAYERS;
+ field public static final androidx.wear.watchface.style.WatchFaceLayer.Companion Companion;
+ }
+
+ public static final class WatchFaceLayer.Companion {
+ }
+
+}
+
diff --git a/wear/watchface/watchface-style/api/public_plus_experimental_1.1.0-beta02.txt b/wear/watchface/watchface-style/api/public_plus_experimental_1.1.0-beta02.txt
new file mode 100644
index 0000000..8ce237a
--- /dev/null
+++ b/wear/watchface/watchface-style/api/public_plus_experimental_1.1.0-beta02.txt
@@ -0,0 +1,267 @@
+// Signature format: 4.0
+package androidx.wear.watchface.style {
+
+ public final class CurrentUserStyleRepository {
+ ctor public CurrentUserStyleRepository(androidx.wear.watchface.style.UserStyleSchema schema);
+ method public androidx.wear.watchface.style.UserStyleSchema getSchema();
+ method public kotlinx.coroutines.flow.StateFlow<androidx.wear.watchface.style.UserStyle> getUserStyle();
+ property public final androidx.wear.watchface.style.UserStyleSchema schema;
+ property public final kotlinx.coroutines.flow.StateFlow<androidx.wear.watchface.style.UserStyle> userStyle;
+ }
+
+ @kotlin.RequiresOptIn(message="This is an experimental API that may change or be removed without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalHierarchicalStyle {
+ }
+
+ public final class MutableUserStyle implements java.lang.Iterable<java.util.Map.Entry<? extends androidx.wear.watchface.style.UserStyleSetting,? extends androidx.wear.watchface.style.UserStyleSetting.Option>> kotlin.jvm.internal.markers.KMappedMarker {
+ method public operator androidx.wear.watchface.style.UserStyleSetting.Option? get(androidx.wear.watchface.style.UserStyleSetting setting);
+ method public operator androidx.wear.watchface.style.UserStyleSetting.Option? get(androidx.wear.watchface.style.UserStyleSetting.Id settingId);
+ method public int getSize();
+ method public java.util.Iterator<java.util.Map.Entry<androidx.wear.watchface.style.UserStyleSetting,androidx.wear.watchface.style.UserStyleSetting.Option>> iterator();
+ method public operator void set(androidx.wear.watchface.style.UserStyleSetting setting, androidx.wear.watchface.style.UserStyleSetting.Option option);
+ method public operator void set(androidx.wear.watchface.style.UserStyleSetting.Id settingId, androidx.wear.watchface.style.UserStyleSetting.Option option);
+ method public operator void set(androidx.wear.watchface.style.UserStyleSetting setting, androidx.wear.watchface.style.UserStyleSetting.Option.Id optionId);
+ method public operator void set(androidx.wear.watchface.style.UserStyleSetting.Id settingId, androidx.wear.watchface.style.UserStyleSetting.Option.Id optionId);
+ method public androidx.wear.watchface.style.UserStyle toUserStyle();
+ property public final int size;
+ }
+
+ public final class UserStyle implements kotlin.jvm.internal.markers.KMappedMarker java.util.Map<androidx.wear.watchface.style.UserStyleSetting,androidx.wear.watchface.style.UserStyleSetting.Option> {
+ ctor public UserStyle(androidx.wear.watchface.style.UserStyle userStyle);
+ ctor public UserStyle(java.util.Map<androidx.wear.watchface.style.UserStyleSetting,? extends androidx.wear.watchface.style.UserStyleSetting.Option> selectedOptions);
+ ctor public UserStyle(androidx.wear.watchface.style.UserStyleData userStyle, androidx.wear.watchface.style.UserStyleSchema styleSchema);
+ method public boolean containsKey(androidx.wear.watchface.style.UserStyleSetting key);
+ method public boolean containsValue(androidx.wear.watchface.style.UserStyleSetting.Option value);
+ method public operator androidx.wear.watchface.style.UserStyleSetting.Option? get(androidx.wear.watchface.style.UserStyleSetting key);
+ method public operator androidx.wear.watchface.style.UserStyleSetting.Option? get(androidx.wear.watchface.style.UserStyleSetting.Id settingId);
+ method public java.util.Set<java.util.Map.Entry<androidx.wear.watchface.style.UserStyleSetting,androidx.wear.watchface.style.UserStyleSetting.Option>> getEntries();
+ method public java.util.Set<androidx.wear.watchface.style.UserStyleSetting> getKeys();
+ method public int getSize();
+ method public java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.Option> getValues();
+ method public boolean isEmpty();
+ method public androidx.wear.watchface.style.MutableUserStyle toMutableUserStyle();
+ method public androidx.wear.watchface.style.UserStyleData toUserStyleData();
+ property public java.util.Set<java.util.Map.Entry<androidx.wear.watchface.style.UserStyleSetting,androidx.wear.watchface.style.UserStyleSetting.Option>> entries;
+ property public java.util.Set<androidx.wear.watchface.style.UserStyleSetting> keys;
+ property public int size;
+ property public java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.Option> values;
+ }
+
+ public final class UserStyleData {
+ ctor public UserStyleData(java.util.Map<java.lang.String,byte[]> userStyleMap);
+ method public java.util.Map<java.lang.String,byte[]> getUserStyleMap();
+ property public final java.util.Map<java.lang.String,byte[]> userStyleMap;
+ }
+
+ public final class UserStyleSchema {
+ ctor public UserStyleSchema(java.util.List<? extends androidx.wear.watchface.style.UserStyleSetting> userStyleSettings);
+ method public operator androidx.wear.watchface.style.UserStyleSetting? get(androidx.wear.watchface.style.UserStyleSetting.Id settingId);
+ method public byte[] getDigestHash();
+ method @androidx.wear.watchface.style.ExperimentalHierarchicalStyle public java.util.List<androidx.wear.watchface.style.UserStyleSetting> getRootUserStyleSettings();
+ method public java.util.List<androidx.wear.watchface.style.UserStyleSetting> getUserStyleSettings();
+ property @androidx.wear.watchface.style.ExperimentalHierarchicalStyle public final java.util.List<androidx.wear.watchface.style.UserStyleSetting> rootUserStyleSettings;
+ property public final java.util.List<androidx.wear.watchface.style.UserStyleSetting> userStyleSettings;
+ }
+
+ public abstract sealed class UserStyleSetting {
+ method public final java.util.Collection<androidx.wear.watchface.style.WatchFaceLayer> getAffectedWatchFaceLayers();
+ method public final androidx.wear.watchface.style.UserStyleSetting.Option getDefaultOption();
+ method public final int getDefaultOptionIndex();
+ method public final CharSequence getDescription();
+ method public final CharSequence getDisplayName();
+ method public final android.graphics.drawable.Icon? getIcon();
+ method public final androidx.wear.watchface.style.UserStyleSetting.Id getId();
+ method public androidx.wear.watchface.style.UserStyleSetting.Option getOptionForId(androidx.wear.watchface.style.UserStyleSetting.Option.Id optionId);
+ method public final java.util.List<androidx.wear.watchface.style.UserStyleSetting.Option> getOptions();
+ method public final androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? getWatchFaceEditorData();
+ property public final java.util.Collection<androidx.wear.watchface.style.WatchFaceLayer> affectedWatchFaceLayers;
+ property public final androidx.wear.watchface.style.UserStyleSetting.Option defaultOption;
+ property public final int defaultOptionIndex;
+ property public final CharSequence description;
+ property public final CharSequence displayName;
+ property public final android.graphics.drawable.Icon? icon;
+ property public final androidx.wear.watchface.style.UserStyleSetting.Id id;
+ property public final java.util.List<androidx.wear.watchface.style.UserStyleSetting.Option> options;
+ property public final androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.Companion Companion;
+ }
+
+ public static final class UserStyleSetting.BooleanUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.BooleanUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, boolean defaultValue, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.BooleanUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, boolean defaultValue);
+ method public boolean getDefaultValue();
+ }
+
+ public static final class UserStyleSetting.BooleanUserStyleSetting.BooleanOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ method public static androidx.wear.watchface.style.UserStyleSetting.BooleanUserStyleSetting.BooleanOption from(boolean value);
+ method public boolean getValue();
+ property public final boolean value;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.BooleanUserStyleSetting.BooleanOption.Companion Companion;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.BooleanUserStyleSetting.BooleanOption FALSE;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.BooleanUserStyleSetting.BooleanOption TRUE;
+ }
+
+ public static final class UserStyleSetting.BooleanUserStyleSetting.BooleanOption.Companion {
+ method public androidx.wear.watchface.style.UserStyleSetting.BooleanUserStyleSetting.BooleanOption from(boolean value);
+ }
+
+ public static final class UserStyleSetting.Companion {
+ }
+
+ public static final class UserStyleSetting.ComplicationSlotsUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption> complicationConfig, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, optional androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption defaultOption, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption> complicationConfig, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, optional androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption defaultOption);
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption> complicationConfig, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers);
+ }
+
+ public static final class UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay {
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay(int complicationSlotId, optional Boolean? enabled, optional androidx.wear.watchface.complications.ComplicationSlotBounds? complicationSlotBounds, optional Integer? accessibilityTraversalIndex);
+ method public Integer? getAccessibilityTraversalIndex();
+ method public androidx.wear.watchface.complications.ComplicationSlotBounds? getComplicationSlotBounds();
+ method public int getComplicationSlotId();
+ method public Boolean? getEnabled();
+ property public final Integer? accessibilityTraversalIndex;
+ property public final androidx.wear.watchface.complications.ComplicationSlotBounds? complicationSlotBounds;
+ property public final int complicationSlotId;
+ property public final Boolean? enabled;
+ }
+
+ public static final class UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay.Builder {
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay.Builder(int complicationSlotId);
+ method public androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay build();
+ method public androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay.Builder setAccessibilityTraversalIndex(int accessibilityTraversalIndex);
+ method public androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay.Builder setComplicationSlotBounds(androidx.wear.watchface.complications.ComplicationSlotBounds complicationSlotBounds);
+ method public androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay.Builder setEnabled(boolean enabled);
+ }
+
+ public static final class UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption(androidx.wear.watchface.style.UserStyleSetting.Option.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, android.graphics.drawable.Icon? icon, java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay> complicationSlotOverlays, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption(androidx.wear.watchface.style.UserStyleSetting.Option.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, android.graphics.drawable.Icon? icon, java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay> complicationSlotOverlays);
+ method public java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay> getComplicationSlotOverlays();
+ method public CharSequence getDisplayName();
+ method public android.graphics.drawable.Icon? getIcon();
+ method public androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? getWatchFaceEditorData();
+ property public final java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay> complicationSlotOverlays;
+ property public final CharSequence displayName;
+ property public final android.graphics.drawable.Icon? icon;
+ property public final androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData;
+ }
+
+ public static final class UserStyleSetting.CustomValueUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.CustomValueUserStyleSetting(java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, byte[] defaultValue);
+ }
+
+ public static final class UserStyleSetting.CustomValueUserStyleSetting.CustomValueOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ ctor public UserStyleSetting.CustomValueUserStyleSetting.CustomValueOption(byte[] customValue);
+ method public byte[] getCustomValue();
+ property public final byte[] customValue;
+ }
+
+ public static final class UserStyleSetting.DoubleRangeUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.DoubleRangeUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, double minimumValue, double maximumValue, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, double defaultValue, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.DoubleRangeUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, double minimumValue, double maximumValue, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, double defaultValue);
+ method public double getDefaultValue();
+ method public double getMaximumValue();
+ method public double getMinimumValue();
+ property public final double defaultValue;
+ property public final double maximumValue;
+ property public final double minimumValue;
+ }
+
+ public static final class UserStyleSetting.DoubleRangeUserStyleSetting.DoubleRangeOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ ctor public UserStyleSetting.DoubleRangeUserStyleSetting.DoubleRangeOption(double value);
+ method public double getValue();
+ property public final double value;
+ }
+
+ public static final class UserStyleSetting.Id {
+ ctor public UserStyleSetting.Id(String value);
+ method public String getValue();
+ property public final String value;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.Id.Companion Companion;
+ field public static final int MAX_LENGTH = 40; // 0x28
+ }
+
+ public static final class UserStyleSetting.Id.Companion {
+ }
+
+ public static class UserStyleSetting.ListUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.ListUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ListUserStyleSetting.ListOption> options, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, optional androidx.wear.watchface.style.UserStyleSetting.ListUserStyleSetting.ListOption defaultOption, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.ListUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ListUserStyleSetting.ListOption> options, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, optional androidx.wear.watchface.style.UserStyleSetting.ListUserStyleSetting.ListOption defaultOption);
+ ctor public UserStyleSetting.ListUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ListUserStyleSetting.ListOption> options, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers);
+ }
+
+ public static final class UserStyleSetting.ListUserStyleSetting.ListOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ ctor public UserStyleSetting.ListUserStyleSetting.ListOption(androidx.wear.watchface.style.UserStyleSetting.Option.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, android.graphics.drawable.Icon? icon, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.ListUserStyleSetting.ListOption(androidx.wear.watchface.style.UserStyleSetting.Option.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, android.graphics.drawable.Icon? icon);
+ ctor @androidx.wear.watchface.style.ExperimentalHierarchicalStyle public UserStyleSetting.ListUserStyleSetting.ListOption(androidx.wear.watchface.style.UserStyleSetting.Option.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, android.graphics.drawable.Icon? icon, optional java.util.Collection<? extends androidx.wear.watchface.style.UserStyleSetting> childSettings, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ method public CharSequence getDisplayName();
+ method public android.graphics.drawable.Icon? getIcon();
+ method public androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? getWatchFaceEditorData();
+ property public final CharSequence displayName;
+ property public final android.graphics.drawable.Icon? icon;
+ property public final androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData;
+ }
+
+ public static final class UserStyleSetting.LongRangeUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.LongRangeUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, long minimumValue, long maximumValue, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, long defaultValue, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.LongRangeUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, long minimumValue, long maximumValue, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, long defaultValue);
+ method public long getDefaultValue();
+ method public long getMaximumValue();
+ method public long getMinimumValue();
+ property public final long defaultValue;
+ property public final long maximumValue;
+ property public final long minimumValue;
+ }
+
+ public static final class UserStyleSetting.LongRangeUserStyleSetting.LongRangeOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ ctor public UserStyleSetting.LongRangeUserStyleSetting.LongRangeOption(long value);
+ method public long getValue();
+ property public final long value;
+ }
+
+ public abstract static class UserStyleSetting.Option {
+ ctor public UserStyleSetting.Option(androidx.wear.watchface.style.UserStyleSetting.Option.Id id);
+ method @androidx.wear.watchface.style.ExperimentalHierarchicalStyle public final java.util.Collection<androidx.wear.watchface.style.UserStyleSetting> getChildSettings();
+ method public final androidx.wear.watchface.style.UserStyleSetting.Option.Id getId();
+ property @androidx.wear.watchface.style.ExperimentalHierarchicalStyle public final java.util.Collection<androidx.wear.watchface.style.UserStyleSetting> childSettings;
+ property public final androidx.wear.watchface.style.UserStyleSetting.Option.Id id;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.Option.Companion Companion;
+ }
+
+ public static final class UserStyleSetting.Option.Companion {
+ }
+
+ public static final class UserStyleSetting.Option.Id {
+ ctor public UserStyleSetting.Option.Id(byte[] value);
+ ctor public UserStyleSetting.Option.Id(String value);
+ method public byte[] getValue();
+ property public final byte[] value;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.Option.Id.Companion Companion;
+ field public static final int MAX_LENGTH = 1024; // 0x400
+ }
+
+ public static final class UserStyleSetting.Option.Id.Companion {
+ }
+
+ public static final class UserStyleSetting.WatchFaceEditorData {
+ ctor public UserStyleSetting.WatchFaceEditorData(android.graphics.drawable.Icon? icon);
+ method public android.graphics.drawable.Icon? getIcon();
+ property public final android.graphics.drawable.Icon? icon;
+ }
+
+ public final class UserStyleSettingKt {
+ }
+
+ public enum WatchFaceLayer {
+ enum_constant public static final androidx.wear.watchface.style.WatchFaceLayer BASE;
+ enum_constant public static final androidx.wear.watchface.style.WatchFaceLayer COMPLICATIONS;
+ enum_constant public static final androidx.wear.watchface.style.WatchFaceLayer COMPLICATIONS_OVERLAY;
+ field public static final java.util.Set<androidx.wear.watchface.style.WatchFaceLayer> ALL_WATCH_FACE_LAYERS;
+ field public static final androidx.wear.watchface.style.WatchFaceLayer.Companion Companion;
+ }
+
+ public static final class WatchFaceLayer.Companion {
+ }
+
+}
+
diff --git a/wear/watchface/watchface-style/api/res-1.1.0-beta02.txt b/wear/watchface/watchface-style/api/res-1.1.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/watchface/watchface-style/api/res-1.1.0-beta02.txt
diff --git a/wear/watchface/watchface-style/api/restricted_1.1.0-beta02.txt b/wear/watchface/watchface-style/api/restricted_1.1.0-beta02.txt
new file mode 100644
index 0000000..2174ce1
--- /dev/null
+++ b/wear/watchface/watchface-style/api/restricted_1.1.0-beta02.txt
@@ -0,0 +1,281 @@
+// Signature format: 4.0
+package androidx.wear.watchface.style {
+
+ public final class CurrentUserStyleRepository {
+ ctor public CurrentUserStyleRepository(androidx.wear.watchface.style.UserStyleSchema schema);
+ method public androidx.wear.watchface.style.UserStyleSchema getSchema();
+ method public kotlinx.coroutines.flow.StateFlow<androidx.wear.watchface.style.UserStyle> getUserStyle();
+ property public final androidx.wear.watchface.style.UserStyleSchema schema;
+ property public final kotlinx.coroutines.flow.StateFlow<androidx.wear.watchface.style.UserStyle> userStyle;
+ }
+
+ public final class MutableUserStyle implements java.lang.Iterable<java.util.Map.Entry<? extends androidx.wear.watchface.style.UserStyleSetting,? extends androidx.wear.watchface.style.UserStyleSetting.Option>> kotlin.jvm.internal.markers.KMappedMarker {
+ method public operator androidx.wear.watchface.style.UserStyleSetting.Option? get(androidx.wear.watchface.style.UserStyleSetting setting);
+ method public operator androidx.wear.watchface.style.UserStyleSetting.Option? get(androidx.wear.watchface.style.UserStyleSetting.Id settingId);
+ method public int getSize();
+ method public java.util.Iterator<java.util.Map.Entry<androidx.wear.watchface.style.UserStyleSetting,androidx.wear.watchface.style.UserStyleSetting.Option>> iterator();
+ method public operator void set(androidx.wear.watchface.style.UserStyleSetting setting, androidx.wear.watchface.style.UserStyleSetting.Option option);
+ method public operator void set(androidx.wear.watchface.style.UserStyleSetting.Id settingId, androidx.wear.watchface.style.UserStyleSetting.Option option);
+ method public operator void set(androidx.wear.watchface.style.UserStyleSetting setting, androidx.wear.watchface.style.UserStyleSetting.Option.Id optionId);
+ method public operator void set(androidx.wear.watchface.style.UserStyleSetting.Id settingId, androidx.wear.watchface.style.UserStyleSetting.Option.Id optionId);
+ method public androidx.wear.watchface.style.UserStyle toUserStyle();
+ property public final int size;
+ }
+
+ public final class UserStyle implements kotlin.jvm.internal.markers.KMappedMarker java.util.Map<androidx.wear.watchface.style.UserStyleSetting,androidx.wear.watchface.style.UserStyleSetting.Option> {
+ ctor public UserStyle(androidx.wear.watchface.style.UserStyle userStyle);
+ ctor public UserStyle(java.util.Map<androidx.wear.watchface.style.UserStyleSetting,? extends androidx.wear.watchface.style.UserStyleSetting.Option> selectedOptions);
+ ctor public UserStyle(androidx.wear.watchface.style.UserStyleData userStyle, androidx.wear.watchface.style.UserStyleSchema styleSchema);
+ method public boolean containsKey(androidx.wear.watchface.style.UserStyleSetting key);
+ method public boolean containsValue(androidx.wear.watchface.style.UserStyleSetting.Option value);
+ method public operator androidx.wear.watchface.style.UserStyleSetting.Option? get(androidx.wear.watchface.style.UserStyleSetting key);
+ method public operator androidx.wear.watchface.style.UserStyleSetting.Option? get(androidx.wear.watchface.style.UserStyleSetting.Id settingId);
+ method public java.util.Set<java.util.Map.Entry<androidx.wear.watchface.style.UserStyleSetting,androidx.wear.watchface.style.UserStyleSetting.Option>> getEntries();
+ method public java.util.Set<androidx.wear.watchface.style.UserStyleSetting> getKeys();
+ method public int getSize();
+ method public java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.Option> getValues();
+ method public boolean isEmpty();
+ method public androidx.wear.watchface.style.MutableUserStyle toMutableUserStyle();
+ method public androidx.wear.watchface.style.UserStyleData toUserStyleData();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.data.UserStyleWireFormat toWireFormat();
+ property public java.util.Set<java.util.Map.Entry<androidx.wear.watchface.style.UserStyleSetting,androidx.wear.watchface.style.UserStyleSetting.Option>> entries;
+ property public java.util.Set<androidx.wear.watchface.style.UserStyleSetting> keys;
+ property public int size;
+ property public java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.Option> values;
+ }
+
+ public final class UserStyleData {
+ ctor public UserStyleData(java.util.Map<java.lang.String,byte[]> userStyleMap);
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public UserStyleData(androidx.wear.watchface.style.data.UserStyleWireFormat userStyle);
+ method public java.util.Map<java.lang.String,byte[]> getUserStyleMap();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.data.UserStyleWireFormat toWireFormat();
+ property public final java.util.Map<java.lang.String,byte[]> userStyleMap;
+ }
+
+ public final class UserStyleSchema {
+ ctor public UserStyleSchema(java.util.List<? extends androidx.wear.watchface.style.UserStyleSetting> userStyleSettings);
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public UserStyleSchema(androidx.wear.watchface.style.data.UserStyleSchemaWireFormat wireFormat);
+ method public operator androidx.wear.watchface.style.UserStyleSetting? get(androidx.wear.watchface.style.UserStyleSetting.Id settingId);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.UserStyle getDefaultUserStyle();
+ method public byte[] getDigestHash();
+ method public java.util.List<androidx.wear.watchface.style.UserStyleSetting> getUserStyleSettings();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.data.UserStyleSchemaWireFormat toWireFormat();
+ property public final java.util.List<androidx.wear.watchface.style.UserStyleSetting> userStyleSettings;
+ }
+
+ public abstract sealed class UserStyleSetting {
+ method public final java.util.Collection<androidx.wear.watchface.style.WatchFaceLayer> getAffectedWatchFaceLayers();
+ method public final androidx.wear.watchface.style.UserStyleSetting.Option getDefaultOption();
+ method public final int getDefaultOptionIndex();
+ method public final CharSequence getDescription();
+ method public final CharSequence getDisplayName();
+ method public final android.graphics.drawable.Icon? getIcon();
+ method public final androidx.wear.watchface.style.UserStyleSetting.Id getId();
+ method public androidx.wear.watchface.style.UserStyleSetting.Option getOptionForId(androidx.wear.watchface.style.UserStyleSetting.Option.Id optionId);
+ method public final java.util.List<androidx.wear.watchface.style.UserStyleSetting.Option> getOptions();
+ method public final androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? getWatchFaceEditorData();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public final java.util.List<androidx.wear.watchface.style.data.OptionWireFormat> getWireFormatOptionsList();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public abstract androidx.wear.watchface.style.data.UserStyleSettingWireFormat toWireFormat();
+ property public final java.util.Collection<androidx.wear.watchface.style.WatchFaceLayer> affectedWatchFaceLayers;
+ property public final androidx.wear.watchface.style.UserStyleSetting.Option defaultOption;
+ property public final int defaultOptionIndex;
+ property public final CharSequence description;
+ property public final CharSequence displayName;
+ property public final android.graphics.drawable.Icon? icon;
+ property public final androidx.wear.watchface.style.UserStyleSetting.Id id;
+ property public final java.util.List<androidx.wear.watchface.style.UserStyleSetting.Option> options;
+ property public final androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.Companion Companion;
+ }
+
+ public static final class UserStyleSetting.BooleanUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.BooleanUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, boolean defaultValue, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.BooleanUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, boolean defaultValue);
+ method public boolean getDefaultValue();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.data.BooleanUserStyleSettingWireFormat toWireFormat();
+ }
+
+ public static final class UserStyleSetting.BooleanUserStyleSetting.BooleanOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ method public static androidx.wear.watchface.style.UserStyleSetting.BooleanUserStyleSetting.BooleanOption from(boolean value);
+ method public boolean getValue();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.data.BooleanOptionWireFormat toWireFormat();
+ property public final boolean value;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.BooleanUserStyleSetting.BooleanOption.Companion Companion;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.BooleanUserStyleSetting.BooleanOption FALSE;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.BooleanUserStyleSetting.BooleanOption TRUE;
+ }
+
+ public static final class UserStyleSetting.BooleanUserStyleSetting.BooleanOption.Companion {
+ method public androidx.wear.watchface.style.UserStyleSetting.BooleanUserStyleSetting.BooleanOption from(boolean value);
+ }
+
+ public static final class UserStyleSetting.Companion {
+ }
+
+ public static final class UserStyleSetting.ComplicationSlotsUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption> complicationConfig, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, optional androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption defaultOption, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption> complicationConfig, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, optional androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption defaultOption);
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption> complicationConfig, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.data.ComplicationsUserStyleSettingWireFormat toWireFormat();
+ }
+
+ public static final class UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay {
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay(int complicationSlotId, optional Boolean? enabled, optional androidx.wear.watchface.complications.ComplicationSlotBounds? complicationSlotBounds, optional Integer? accessibilityTraversalIndex);
+ method public Integer? getAccessibilityTraversalIndex();
+ method public androidx.wear.watchface.complications.ComplicationSlotBounds? getComplicationSlotBounds();
+ method public int getComplicationSlotId();
+ method public Boolean? getEnabled();
+ property public final Integer? accessibilityTraversalIndex;
+ property public final androidx.wear.watchface.complications.ComplicationSlotBounds? complicationSlotBounds;
+ property public final int complicationSlotId;
+ property public final Boolean? enabled;
+ }
+
+ public static final class UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay.Builder {
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay.Builder(int complicationSlotId);
+ method public androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay build();
+ method public androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay.Builder setAccessibilityTraversalIndex(int accessibilityTraversalIndex);
+ method public androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay.Builder setComplicationSlotBounds(androidx.wear.watchface.complications.ComplicationSlotBounds complicationSlotBounds);
+ method public androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay.Builder setEnabled(boolean enabled);
+ }
+
+ public static final class UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption(androidx.wear.watchface.style.UserStyleSetting.Option.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, android.graphics.drawable.Icon? icon, java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay> complicationSlotOverlays, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotsOption(androidx.wear.watchface.style.UserStyleSetting.Option.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, android.graphics.drawable.Icon? icon, java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay> complicationSlotOverlays);
+ method public java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay> getComplicationSlotOverlays();
+ method public CharSequence getDisplayName();
+ method public android.graphics.drawable.Icon? getIcon();
+ method public androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? getWatchFaceEditorData();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.data.ComplicationsOptionWireFormat toWireFormat();
+ property public final java.util.Collection<androidx.wear.watchface.style.UserStyleSetting.ComplicationSlotsUserStyleSetting.ComplicationSlotOverlay> complicationSlotOverlays;
+ property public final CharSequence displayName;
+ property public final android.graphics.drawable.Icon? icon;
+ property public final androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData;
+ }
+
+ public static final class UserStyleSetting.CustomValueUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.CustomValueUserStyleSetting(java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, byte[] defaultValue);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.data.CustomValueUserStyleSettingWireFormat toWireFormat();
+ }
+
+ public static final class UserStyleSetting.CustomValueUserStyleSetting.CustomValueOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ ctor public UserStyleSetting.CustomValueUserStyleSetting.CustomValueOption(byte[] customValue);
+ method public byte[] getCustomValue();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.data.CustomValueOptionWireFormat toWireFormat();
+ property public final byte[] customValue;
+ }
+
+ public static final class UserStyleSetting.DoubleRangeUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.DoubleRangeUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, double minimumValue, double maximumValue, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, double defaultValue, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.DoubleRangeUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, double minimumValue, double maximumValue, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, double defaultValue);
+ method public double getDefaultValue();
+ method public double getMaximumValue();
+ method public double getMinimumValue();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.data.DoubleRangeUserStyleSettingWireFormat toWireFormat();
+ property public final double defaultValue;
+ property public final double maximumValue;
+ property public final double minimumValue;
+ }
+
+ public static final class UserStyleSetting.DoubleRangeUserStyleSetting.DoubleRangeOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ ctor public UserStyleSetting.DoubleRangeUserStyleSetting.DoubleRangeOption(double value);
+ method public double getValue();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.data.DoubleRangeOptionWireFormat toWireFormat();
+ property public final double value;
+ }
+
+ public static final class UserStyleSetting.Id {
+ ctor public UserStyleSetting.Id(String value);
+ method public String getValue();
+ property public final String value;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.Id.Companion Companion;
+ field public static final int MAX_LENGTH = 40; // 0x28
+ }
+
+ public static final class UserStyleSetting.Id.Companion {
+ }
+
+ public static class UserStyleSetting.ListUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.ListUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ListUserStyleSetting.ListOption> options, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, optional androidx.wear.watchface.style.UserStyleSetting.ListUserStyleSetting.ListOption defaultOption, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.ListUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ListUserStyleSetting.ListOption> options, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, optional androidx.wear.watchface.style.UserStyleSetting.ListUserStyleSetting.ListOption defaultOption);
+ ctor public UserStyleSetting.ListUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, java.util.List<androidx.wear.watchface.style.UserStyleSetting.ListUserStyleSetting.ListOption> options, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.data.ListUserStyleSettingWireFormat toWireFormat();
+ }
+
+ public static final class UserStyleSetting.ListUserStyleSetting.ListOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ ctor public UserStyleSetting.ListUserStyleSetting.ListOption(androidx.wear.watchface.style.UserStyleSetting.Option.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, android.graphics.drawable.Icon? icon, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.ListUserStyleSetting.ListOption(androidx.wear.watchface.style.UserStyleSetting.Option.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, android.graphics.drawable.Icon? icon);
+ method public CharSequence getDisplayName();
+ method public android.graphics.drawable.Icon? getIcon();
+ method public androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? getWatchFaceEditorData();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.data.ListOptionWireFormat toWireFormat();
+ property public final CharSequence displayName;
+ property public final android.graphics.drawable.Icon? icon;
+ property public final androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData;
+ }
+
+ public static final class UserStyleSetting.LongRangeUserStyleSetting extends androidx.wear.watchface.style.UserStyleSetting {
+ ctor public UserStyleSetting.LongRangeUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, long minimumValue, long maximumValue, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, long defaultValue, optional androidx.wear.watchface.style.UserStyleSetting.WatchFaceEditorData? watchFaceEditorData);
+ ctor public UserStyleSetting.LongRangeUserStyleSetting(androidx.wear.watchface.style.UserStyleSetting.Id id, android.content.res.Resources resources, @StringRes int displayNameResourceId, @StringRes int descriptionResourceId, android.graphics.drawable.Icon? icon, long minimumValue, long maximumValue, java.util.Collection<? extends androidx.wear.watchface.style.WatchFaceLayer> affectsWatchFaceLayers, long defaultValue);
+ method public long getDefaultValue();
+ method public long getMaximumValue();
+ method public long getMinimumValue();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.data.LongRangeUserStyleSettingWireFormat toWireFormat();
+ property public final long defaultValue;
+ property public final long maximumValue;
+ property public final long minimumValue;
+ }
+
+ public static final class UserStyleSetting.LongRangeUserStyleSetting.LongRangeOption extends androidx.wear.watchface.style.UserStyleSetting.Option {
+ ctor public UserStyleSetting.LongRangeUserStyleSetting.LongRangeOption(long value);
+ method public long getValue();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.data.LongRangeOptionWireFormat toWireFormat();
+ property public final long value;
+ }
+
+ public abstract static class UserStyleSetting.Option {
+ ctor public UserStyleSetting.Option(androidx.wear.watchface.style.UserStyleSetting.Option.Id id);
+ method public final androidx.wear.watchface.style.UserStyleSetting.Option.Id getId();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public abstract androidx.wear.watchface.style.data.OptionWireFormat toWireFormat();
+ property public final androidx.wear.watchface.style.UserStyleSetting.Option.Id id;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.Option.Companion Companion;
+ }
+
+ public static final class UserStyleSetting.Option.Companion {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.style.UserStyleSetting.Option createFromWireFormat(androidx.wear.watchface.style.data.OptionWireFormat wireFormat);
+ }
+
+ public static final class UserStyleSetting.Option.Id {
+ ctor public UserStyleSetting.Option.Id(byte[] value);
+ ctor public UserStyleSetting.Option.Id(String value);
+ method public byte[] getValue();
+ property public final byte[] value;
+ field public static final androidx.wear.watchface.style.UserStyleSetting.Option.Id.Companion Companion;
+ field public static final int MAX_LENGTH = 1024; // 0x400
+ }
+
+ public static final class UserStyleSetting.Option.Id.Companion {
+ }
+
+ public static final class UserStyleSetting.WatchFaceEditorData {
+ ctor public UserStyleSetting.WatchFaceEditorData(android.graphics.drawable.Icon? icon);
+ method public android.graphics.drawable.Icon? getIcon();
+ property public final android.graphics.drawable.Icon? icon;
+ }
+
+ public final class UserStyleSettingKt {
+ }
+
+ public enum WatchFaceLayer {
+ enum_constant public static final androidx.wear.watchface.style.WatchFaceLayer BASE;
+ enum_constant public static final androidx.wear.watchface.style.WatchFaceLayer COMPLICATIONS;
+ enum_constant public static final androidx.wear.watchface.style.WatchFaceLayer COMPLICATIONS_OVERLAY;
+ field public static final java.util.Set<androidx.wear.watchface.style.WatchFaceLayer> ALL_WATCH_FACE_LAYERS;
+ field public static final androidx.wear.watchface.style.WatchFaceLayer.Companion Companion;
+ }
+
+ public static final class WatchFaceLayer.Companion {
+ }
+
+}
+
diff --git a/wear/watchface/watchface/api/1.1.0-beta02.txt b/wear/watchface/watchface/api/1.1.0-beta02.txt
new file mode 100644
index 0000000..027672b
--- /dev/null
+++ b/wear/watchface/watchface/api/1.1.0-beta02.txt
@@ -0,0 +1,398 @@
+// Signature format: 4.0
+package androidx.wear.watchface {
+
+ public final class BackgroundComplicationTapFilter implements androidx.wear.watchface.ComplicationTapFilter {
+ ctor public BackgroundComplicationTapFilter();
+ method public boolean hitTest(androidx.wear.watchface.ComplicationSlot complicationSlot, android.graphics.Rect screenBounds, @Px int x, @Px int y);
+ }
+
+ public interface CanvasComplication {
+ method public void drawHighlight(android.graphics.Canvas canvas, android.graphics.Rect bounds, int boundsType, java.time.ZonedDateTime zonedDateTime, @ColorInt int color);
+ method public androidx.wear.watchface.complications.data.ComplicationData getData();
+ method public void loadData(androidx.wear.watchface.complications.data.ComplicationData complicationData, boolean loadDrawablesAsynchronous);
+ method @WorkerThread public default void onRendererCreated(androidx.wear.watchface.Renderer renderer);
+ method @UiThread public void render(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime, androidx.wear.watchface.RenderParameters renderParameters, int slotId);
+ }
+
+ public static interface CanvasComplication.InvalidateCallback {
+ method public void onInvalidate();
+ }
+
+ public interface CanvasComplicationFactory {
+ method @WorkerThread public androidx.wear.watchface.CanvasComplication create(androidx.wear.watchface.WatchState, androidx.wear.watchface.CanvasComplication.InvalidateCallback);
+ }
+
+ public final class ComplicationSlot {
+ method public android.graphics.Rect computeBounds(android.graphics.Rect screen);
+ method public static androidx.wear.watchface.ComplicationSlot.Builder createBackgroundComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy);
+ method public static androidx.wear.watchface.ComplicationSlot.Builder createEdgeComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.ComplicationSlotBounds bounds, androidx.wear.watchface.ComplicationTapFilter complicationTapFilter);
+ method public static androidx.wear.watchface.ComplicationSlot.Builder createRoundRectComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.ComplicationSlotBounds bounds);
+ method @UiThread public int getAccessibilityTraversalIndex();
+ method public int getBoundsType();
+ method public androidx.wear.watchface.CanvasComplicationFactory getCanvasComplicationFactory();
+ method public kotlinx.coroutines.flow.StateFlow<androidx.wear.watchface.complications.data.ComplicationData> getComplicationData();
+ method @UiThread public androidx.wear.watchface.complications.ComplicationSlotBounds getComplicationSlotBounds();
+ method public android.os.Bundle getConfigExtras();
+ method @UiThread public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getDefaultDataSourcePolicy();
+ method @Deprecated @UiThread public androidx.wear.watchface.complications.data.ComplicationType getDefaultDataSourceType();
+ method public boolean getFixedComplicationDataSource();
+ method public int getId();
+ method public boolean getInitiallyEnabled();
+ method public Integer? getNameResourceId();
+ method public androidx.wear.watchface.CanvasComplication getRenderer();
+ method public Integer? getScreenReaderNameResourceId();
+ method @UiThread public java.util.List<androidx.wear.watchface.complications.data.ComplicationType> getSupportedTypes();
+ method public androidx.wear.watchface.ComplicationTapFilter getTapFilter();
+ method public boolean isActiveAt(java.time.Instant instant);
+ method @UiThread public boolean isEnabled();
+ method @UiThread public void render(android.graphics.Canvas canvas, java.time.ZonedDateTime zonedDateTime, androidx.wear.watchface.RenderParameters renderParameters);
+ method @UiThread public void renderHighlightLayer(android.graphics.Canvas canvas, java.time.ZonedDateTime zonedDateTime, androidx.wear.watchface.RenderParameters renderParameters);
+ method public void setConfigExtras(android.os.Bundle);
+ property @UiThread public final int accessibilityTraversalIndex;
+ property public final int boundsType;
+ property public final androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory;
+ property public final kotlinx.coroutines.flow.StateFlow<androidx.wear.watchface.complications.data.ComplicationData> complicationData;
+ property @UiThread public final androidx.wear.watchface.complications.ComplicationSlotBounds complicationSlotBounds;
+ property public final android.os.Bundle configExtras;
+ property @UiThread public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy;
+ property @Deprecated @UiThread public final androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType;
+ property @UiThread public final boolean enabled;
+ property public final boolean fixedComplicationDataSource;
+ property public final int id;
+ property public final boolean initiallyEnabled;
+ property public final Integer? nameResourceId;
+ property public final androidx.wear.watchface.CanvasComplication renderer;
+ property public final Integer? screenReaderNameResourceId;
+ property @UiThread public final java.util.List<androidx.wear.watchface.complications.data.ComplicationType> supportedTypes;
+ property public final androidx.wear.watchface.ComplicationTapFilter tapFilter;
+ field public static final androidx.wear.watchface.ComplicationSlot.Companion Companion;
+ }
+
+ public static final class ComplicationSlot.Builder {
+ method public androidx.wear.watchface.ComplicationSlot build();
+ method public androidx.wear.watchface.ComplicationSlot.Builder setAccessibilityTraversalIndex(int accessibilityTraversalIndex);
+ method public androidx.wear.watchface.ComplicationSlot.Builder setConfigExtras(android.os.Bundle extras);
+ method @Deprecated public androidx.wear.watchface.ComplicationSlot.Builder setDefaultDataSourceType(androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType);
+ method public androidx.wear.watchface.ComplicationSlot.Builder setEnabled(boolean enabled);
+ method public androidx.wear.watchface.ComplicationSlot.Builder setFixedComplicationDataSource(boolean fixedComplicationDataSource);
+ method public androidx.wear.watchface.ComplicationSlot.Builder setNameResourceId(Integer? nameResourceId);
+ method public androidx.wear.watchface.ComplicationSlot.Builder setScreenReaderNameResourceId(Integer? screenReaderNameResourceId);
+ }
+
+ public static final class ComplicationSlot.Companion {
+ method public androidx.wear.watchface.ComplicationSlot.Builder createBackgroundComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy);
+ method public androidx.wear.watchface.ComplicationSlot.Builder createEdgeComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.ComplicationSlotBounds bounds, androidx.wear.watchface.ComplicationTapFilter complicationTapFilter);
+ method public androidx.wear.watchface.ComplicationSlot.Builder createRoundRectComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.ComplicationSlotBounds bounds);
+ }
+
+ public abstract class ComplicationSlotInflationFactory {
+ ctor public ComplicationSlotInflationFactory();
+ method public abstract androidx.wear.watchface.CanvasComplicationFactory getCanvasComplicationFactory(int slotId);
+ method public androidx.wear.watchface.ComplicationTapFilter getEdgeComplicationTapFilter(int slotId);
+ }
+
+ public final class ComplicationSlotsManager {
+ ctor public ComplicationSlotsManager(java.util.Collection<androidx.wear.watchface.ComplicationSlot> complicationSlotCollection, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository);
+ method @UiThread public void addTapListener(androidx.wear.watchface.ComplicationSlotsManager.TapCallback tapCallback);
+ method public operator androidx.wear.watchface.ComplicationSlot? get(int id);
+ method public androidx.wear.watchface.ComplicationSlot? getBackgroundComplicationSlot();
+ method public androidx.wear.watchface.ComplicationSlot? getComplicationSlotAt(@Px int x, @Px int y);
+ method public java.util.Map<java.lang.Integer,androidx.wear.watchface.ComplicationSlot> getComplicationSlots();
+ method public java.util.Map<java.lang.Integer,androidx.wear.watchface.TapEvent> getLastComplicationTapDownEvents();
+ method @UiThread public void removeTapListener(androidx.wear.watchface.ComplicationSlotsManager.TapCallback tapCallback);
+ property public final java.util.Map<java.lang.Integer,androidx.wear.watchface.ComplicationSlot> complicationSlots;
+ property public final java.util.Map<java.lang.Integer,androidx.wear.watchface.TapEvent> lastComplicationTapDownEvents;
+ }
+
+ public static interface ComplicationSlotsManager.TapCallback {
+ method public default void onComplicationSlotTapped(int complicationSlotId);
+ }
+
+ public final class ComplicationSlotsManagerKt {
+ }
+
+ public interface ComplicationTapFilter {
+ method public boolean hitTest(androidx.wear.watchface.ComplicationSlot complicationSlot, android.graphics.Rect screenBounds, @Px int x, @Px int y);
+ }
+
+ public final class ContentDescriptionLabel {
+ ctor public ContentDescriptionLabel(androidx.wear.watchface.complications.data.ComplicationText text, android.graphics.Rect bounds, android.app.PendingIntent? tapAction);
+ method public android.graphics.Rect getBounds();
+ method public android.app.PendingIntent? getTapAction();
+ method public androidx.wear.watchface.complications.data.ComplicationText getText();
+ method public CharSequence getTextAt(android.content.res.Resources resources, java.time.Instant instant);
+ property public final android.graphics.Rect bounds;
+ property public final android.app.PendingIntent? tapAction;
+ property public final androidx.wear.watchface.complications.data.ComplicationText text;
+ }
+
+ public enum DrawMode {
+ enum_constant public static final androidx.wear.watchface.DrawMode AMBIENT;
+ enum_constant public static final androidx.wear.watchface.DrawMode INTERACTIVE;
+ enum_constant public static final androidx.wear.watchface.DrawMode LOW_BATTERY_INTERACTIVE;
+ enum_constant public static final androidx.wear.watchface.DrawMode MUTE;
+ }
+
+ public final class RenderBufferTextureKt {
+ }
+
+ public final class RenderParameters {
+ ctor public RenderParameters(androidx.wear.watchface.DrawMode drawMode, java.util.Set<? extends androidx.wear.watchface.style.WatchFaceLayer> watchFaceLayers, optional androidx.wear.watchface.RenderParameters.HighlightLayer? highlightLayer, optional java.util.Map<java.lang.Integer,androidx.wear.watchface.TapEvent> lastComplicationTapDownEvents);
+ ctor public RenderParameters(androidx.wear.watchface.DrawMode drawMode, java.util.Set<? extends androidx.wear.watchface.style.WatchFaceLayer> watchFaceLayers, optional androidx.wear.watchface.RenderParameters.HighlightLayer? highlightLayer);
+ ctor public RenderParameters(androidx.wear.watchface.DrawMode drawMode, java.util.Set<? extends androidx.wear.watchface.style.WatchFaceLayer> watchFaceLayers);
+ method public androidx.wear.watchface.DrawMode getDrawMode();
+ method public androidx.wear.watchface.RenderParameters.HighlightLayer? getHighlightLayer();
+ method public java.util.Map<java.lang.Integer,androidx.wear.watchface.TapEvent> getLastComplicationTapDownEvents();
+ method public java.util.Set<androidx.wear.watchface.style.WatchFaceLayer> getWatchFaceLayers();
+ method public boolean isForScreenshot();
+ property public final androidx.wear.watchface.DrawMode drawMode;
+ property public final androidx.wear.watchface.RenderParameters.HighlightLayer? highlightLayer;
+ property public final boolean isForScreenshot;
+ property public final java.util.Map<java.lang.Integer,androidx.wear.watchface.TapEvent> lastComplicationTapDownEvents;
+ property public final java.util.Set<androidx.wear.watchface.style.WatchFaceLayer> watchFaceLayers;
+ field public static final androidx.wear.watchface.RenderParameters.Companion Companion;
+ field public static final androidx.wear.watchface.RenderParameters DEFAULT_INTERACTIVE;
+ }
+
+ public static final class RenderParameters.Companion {
+ }
+
+ public static final class RenderParameters.HighlightLayer {
+ ctor public RenderParameters.HighlightLayer(androidx.wear.watchface.RenderParameters.HighlightedElement highlightedElement, @ColorInt int highlightTint, @ColorInt int backgroundTint);
+ method @ColorInt public int getBackgroundTint();
+ method @ColorInt public int getHighlightTint();
+ method public androidx.wear.watchface.RenderParameters.HighlightedElement getHighlightedElement();
+ property @ColorInt public final int backgroundTint;
+ property @ColorInt public final int highlightTint;
+ property public final androidx.wear.watchface.RenderParameters.HighlightedElement highlightedElement;
+ }
+
+ public abstract static sealed class RenderParameters.HighlightedElement {
+ }
+
+ public static final class RenderParameters.HighlightedElement.AllComplicationSlots extends androidx.wear.watchface.RenderParameters.HighlightedElement {
+ field public static final androidx.wear.watchface.RenderParameters.HighlightedElement.AllComplicationSlots INSTANCE;
+ }
+
+ public static final class RenderParameters.HighlightedElement.ComplicationSlot extends androidx.wear.watchface.RenderParameters.HighlightedElement {
+ ctor public RenderParameters.HighlightedElement.ComplicationSlot(int id);
+ method public int getId();
+ property public final int id;
+ }
+
+ public static final class RenderParameters.HighlightedElement.UserStyle extends androidx.wear.watchface.RenderParameters.HighlightedElement {
+ ctor public RenderParameters.HighlightedElement.UserStyle(androidx.wear.watchface.style.UserStyleSetting.Id id);
+ method public androidx.wear.watchface.style.UserStyleSetting.Id getId();
+ property public final androidx.wear.watchface.style.UserStyleSetting.Id id;
+ }
+
+ public abstract sealed class Renderer {
+ method public final java.util.Collection<kotlin.Pair<java.lang.Integer,androidx.wear.watchface.ContentDescriptionLabel>> getAdditionalContentDescriptionLabels();
+ method public final float getCenterX();
+ method public final float getCenterY();
+ method public final long getInteractiveDrawModeUpdateDelayMillis();
+ method @UiThread public android.graphics.Rect getMainClockElementBounds();
+ method public final androidx.wear.watchface.RenderParameters getRenderParameters();
+ method public final android.graphics.Rect getScreenBounds();
+ method public final android.view.SurfaceHolder getSurfaceHolder();
+ method @UiThread public final void invalidate();
+ method @UiThread public void onDestroy();
+ method @UiThread public abstract void onDump(java.io.PrintWriter writer);
+ method @UiThread protected void onRenderParametersChanged(androidx.wear.watchface.RenderParameters renderParameters);
+ method public final void postInvalidate();
+ method public final void setAdditionalContentDescriptionLabels(java.util.Collection<kotlin.Pair<java.lang.Integer,androidx.wear.watchface.ContentDescriptionLabel>>);
+ method public final void setInteractiveDrawModeUpdateDelayMillis(long);
+ method @UiThread public boolean shouldAnimate();
+ property public final java.util.Collection<kotlin.Pair<java.lang.Integer,androidx.wear.watchface.ContentDescriptionLabel>> additionalContentDescriptionLabels;
+ property public final float centerX;
+ property public final float centerY;
+ property public final long interactiveDrawModeUpdateDelayMillis;
+ property public final androidx.wear.watchface.RenderParameters renderParameters;
+ property public final android.graphics.Rect screenBounds;
+ property public final android.view.SurfaceHolder surfaceHolder;
+ }
+
+ @Deprecated public abstract static class Renderer.CanvasRenderer extends androidx.wear.watchface.Renderer {
+ ctor @Deprecated @WorkerThread public Renderer.CanvasRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional boolean clearWithBackgroundTintBeforeRenderingHighlightLayer);
+ ctor @Deprecated @WorkerThread public Renderer.CanvasRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis);
+ method @Deprecated public final boolean getClearWithBackgroundTintBeforeRenderingHighlightLayer();
+ method @Deprecated @UiThread public suspend Object? init(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated public void onDump(java.io.PrintWriter writer);
+ method @Deprecated @UiThread public abstract void render(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime);
+ method @Deprecated @UiThread public abstract void renderHighlightLayer(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime);
+ property public final boolean clearWithBackgroundTintBeforeRenderingHighlightLayer;
+ }
+
+ public abstract static class Renderer.CanvasRenderer2<SharedAssetsT extends androidx.wear.watchface.Renderer.SharedAssets> extends androidx.wear.watchface.Renderer.CanvasRenderer {
+ ctor @WorkerThread public Renderer.CanvasRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, boolean clearWithBackgroundTintBeforeRenderingHighlightLayer);
+ method @WorkerThread protected abstract suspend Object? createSharedAssets(kotlin.coroutines.Continuation<? super SharedAssetsT>);
+ method @UiThread public abstract void render(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime, SharedAssetsT sharedAssets);
+ method public final void render(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime);
+ method @UiThread public abstract void renderHighlightLayer(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime, SharedAssetsT sharedAssets);
+ method public final void renderHighlightLayer(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime);
+ }
+
+ @Deprecated public abstract static class Renderer.GlesRenderer extends androidx.wear.watchface.Renderer {
+ ctor @Deprecated @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList, optional int[] eglSurfaceAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @Deprecated @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @Deprecated @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ method @Deprecated public final android.opengl.EGLContext getEglBackgroundThreadContext();
+ method @Deprecated public final android.opengl.EGLConfig getEglConfig();
+ method @Deprecated public final android.opengl.EGLDisplay getEglDisplay();
+ method @Deprecated public final android.opengl.EGLContext getEglUiThreadContext();
+ method @Deprecated @WorkerThread public suspend Object? onBackgroundThreadGlContextCreated(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated public void onDump(java.io.PrintWriter writer);
+ method @Deprecated @UiThread public suspend Object? onUiThreadGlSurfaceCreated(@Px int width, @Px int height, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated @UiThread public abstract void render(java.time.ZonedDateTime zonedDateTime);
+ method @Deprecated @UiThread public abstract void renderHighlightLayer(java.time.ZonedDateTime zonedDateTime);
+ method @Deprecated @WorkerThread public final suspend Object? runBackgroundThreadGlCommands(kotlin.jvm.functions.Function1<? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> commands, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated public final suspend Object? runUiThreadGlCommands(kotlin.jvm.functions.Function1<? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> commands, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated public final void setEglConfig(android.opengl.EGLConfig);
+ method @Deprecated public final void setEglDisplay(android.opengl.EGLDisplay);
+ property public final android.opengl.EGLContext eglBackgroundThreadContext;
+ property public final android.opengl.EGLConfig eglConfig;
+ property public final android.opengl.EGLDisplay eglDisplay;
+ property public final android.opengl.EGLContext eglUiThreadContext;
+ }
+
+ @Deprecated public static final class Renderer.GlesRenderer.GlesException extends java.lang.Exception {
+ ctor @Deprecated public Renderer.GlesRenderer.GlesException(String message);
+ }
+
+ public abstract static class Renderer.GlesRenderer2<SharedAssetsT extends androidx.wear.watchface.Renderer.SharedAssets> extends androidx.wear.watchface.Renderer.GlesRenderer {
+ ctor @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList, optional int[] eglSurfaceAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ method @WorkerThread protected abstract suspend Object? createSharedAssets(kotlin.coroutines.Continuation<? super SharedAssetsT>);
+ method @UiThread public abstract void render(java.time.ZonedDateTime zonedDateTime, SharedAssetsT sharedAssets);
+ method public final void render(java.time.ZonedDateTime zonedDateTime);
+ method @UiThread public abstract void renderHighlightLayer(java.time.ZonedDateTime zonedDateTime, SharedAssetsT sharedAssets);
+ method public final void renderHighlightLayer(java.time.ZonedDateTime zonedDateTime);
+ }
+
+ public static interface Renderer.SharedAssets {
+ method @UiThread public void onDestroy();
+ }
+
+ public final class RendererKt {
+ }
+
+ public final class RoundRectComplicationTapFilter implements androidx.wear.watchface.ComplicationTapFilter {
+ ctor public RoundRectComplicationTapFilter();
+ method public boolean hitTest(androidx.wear.watchface.ComplicationSlot complicationSlot, android.graphics.Rect screenBounds, @Px int x, @Px int y);
+ }
+
+ public final class TapEvent {
+ ctor public TapEvent(@Px int xPos, @Px int yPos, java.time.Instant tapTime);
+ method public java.time.Instant getTapTime();
+ method public int getXPos();
+ method public int getYPos();
+ property public final java.time.Instant tapTime;
+ property public final int xPos;
+ property public final int yPos;
+ }
+
+ public final class WatchFace {
+ ctor public WatchFace(int watchFaceType, androidx.wear.watchface.Renderer renderer);
+ method public androidx.wear.watchface.WatchFace.LegacyWatchFaceOverlayStyle getLegacyWatchFaceStyle();
+ method public androidx.wear.watchface.WatchFace.OverlayStyle getOverlayStyle();
+ method public java.time.Instant? getOverridePreviewReferenceInstant();
+ method public androidx.wear.watchface.Renderer getRenderer();
+ method public int getWatchFaceType();
+ method public static boolean isLegacyWatchFaceOverlayStyleSupported();
+ method public androidx.wear.watchface.WatchFace setComplicationDeniedDialogIntent(android.content.Intent? complicationDeniedDialogIntent);
+ method public androidx.wear.watchface.WatchFace setComplicationRationaleDialogIntent(android.content.Intent? complicationRationaleDialogIntent);
+ method public androidx.wear.watchface.WatchFace setLegacyWatchFaceStyle(androidx.wear.watchface.WatchFace.LegacyWatchFaceOverlayStyle legacyWatchFaceStyle);
+ method public androidx.wear.watchface.WatchFace setOverlayStyle(androidx.wear.watchface.WatchFace.OverlayStyle watchFaceOverlayStyle);
+ method public androidx.wear.watchface.WatchFace setOverridePreviewReferenceInstant(java.time.Instant previewReferenceTimeMillis);
+ method public androidx.wear.watchface.WatchFace setTapListener(androidx.wear.watchface.WatchFace.TapListener? tapListener);
+ method public void setWatchFaceType(int);
+ property public final androidx.wear.watchface.WatchFace.LegacyWatchFaceOverlayStyle legacyWatchFaceStyle;
+ property public final androidx.wear.watchface.WatchFace.OverlayStyle overlayStyle;
+ property public final java.time.Instant? overridePreviewReferenceInstant;
+ property public final androidx.wear.watchface.Renderer renderer;
+ property public final int watchFaceType;
+ field public static final androidx.wear.watchface.WatchFace.Companion Companion;
+ }
+
+ public static final class WatchFace.Companion {
+ method public boolean isLegacyWatchFaceOverlayStyleSupported();
+ }
+
+ public static final class WatchFace.LegacyWatchFaceOverlayStyle {
+ ctor public WatchFace.LegacyWatchFaceOverlayStyle(int viewProtectionMode, int statusBarGravity, boolean tapEventsAccepted, optional @ColorInt int accentColor);
+ ctor public WatchFace.LegacyWatchFaceOverlayStyle(int viewProtectionMode, int statusBarGravity, boolean tapEventsAccepted);
+ method public int getAccentColor();
+ method public int getStatusBarGravity();
+ method public boolean getTapEventsAccepted();
+ method public int getViewProtectionMode();
+ property public final int accentColor;
+ property public final int statusBarGravity;
+ property public final boolean tapEventsAccepted;
+ property public final int viewProtectionMode;
+ }
+
+ public static final class WatchFace.OverlayStyle {
+ ctor public WatchFace.OverlayStyle(android.graphics.Color? backgroundColor, android.graphics.Color? foregroundColor);
+ ctor public WatchFace.OverlayStyle();
+ method public android.graphics.Color? getBackgroundColor();
+ method public android.graphics.Color? getForegroundColor();
+ property public final android.graphics.Color? backgroundColor;
+ property public final android.graphics.Color? foregroundColor;
+ }
+
+ public static interface WatchFace.TapListener {
+ method @UiThread public void onTapEvent(int tapType, androidx.wear.watchface.TapEvent tapEvent, androidx.wear.watchface.ComplicationSlot? complicationSlot);
+ }
+
+ public final class WatchFaceKt {
+ }
+
+ public abstract class WatchFaceService extends android.service.wallpaper.WallpaperService {
+ ctor public WatchFaceService();
+ method @WorkerThread protected androidx.wear.watchface.ComplicationSlotsManager createComplicationSlotsManager(androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository);
+ method @WorkerThread protected androidx.wear.watchface.style.UserStyleSchema createUserStyleSchema();
+ method @WorkerThread protected abstract suspend Object? createWatchFace(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.WatchState watchState, androidx.wear.watchface.ComplicationSlotsManager complicationSlotsManager, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, kotlin.coroutines.Continuation<? super androidx.wear.watchface.WatchFace>);
+ method public final android.os.Handler getBackgroundThreadHandler();
+ method @WorkerThread protected androidx.wear.watchface.ComplicationSlotInflationFactory? getComplicationSlotInflationFactory();
+ method public final android.os.Handler getUiThreadHandler();
+ method public final android.service.wallpaper.WallpaperService.Engine onCreateEngine();
+ field public static final androidx.wear.watchface.WatchFaceService.Companion Companion;
+ field public static final int MAX_CREATE_WATCHFACE_TIME_MILLIS = 5000; // 0x1388
+ }
+
+ public static final class WatchFaceService.Companion {
+ }
+
+ public final class WatchFaceServiceKt {
+ }
+
+ public final class WatchState {
+ ctor public WatchState(kotlinx.coroutines.flow.StateFlow<java.lang.Integer> interruptionFilter, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isAmbient, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isBatteryLowAndNotCharging, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isVisible, boolean hasLowBitAmbient, boolean hasBurnInProtection, long analogPreviewReferenceTimeMillis, long digitalPreviewReferenceTimeMillis, @Px int chinHeight, boolean isHeadless, kotlinx.coroutines.flow.StateFlow<java.lang.String> watchFaceInstanceId);
+ ctor @Deprecated public WatchState(kotlinx.coroutines.flow.StateFlow<java.lang.Integer> interruptionFilter, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isAmbient, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isBatteryLowAndNotCharging, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isVisible, boolean hasLowBitAmbient, boolean hasBurnInProtection, long analogPreviewReferenceTimeMillis, long digitalPreviewReferenceTimeMillis, int chinHeight, boolean isHeadless);
+ method public long getAnalogPreviewReferenceTimeMillis();
+ method @Px public int getChinHeight();
+ method public long getDigitalPreviewReferenceTimeMillis();
+ method public boolean getHasBurnInProtection();
+ method public boolean getHasLowBitAmbient();
+ method public kotlinx.coroutines.flow.StateFlow<java.lang.Integer> getInterruptionFilter();
+ method public kotlinx.coroutines.flow.StateFlow<java.lang.String> getWatchFaceInstanceId();
+ method public kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isAmbient();
+ method public kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isBatteryLowAndNotCharging();
+ method public boolean isHeadless();
+ method public kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isVisible();
+ property public final long analogPreviewReferenceTimeMillis;
+ property @Px public final int chinHeight;
+ property public final long digitalPreviewReferenceTimeMillis;
+ property public final boolean hasBurnInProtection;
+ property public final boolean hasLowBitAmbient;
+ property public final kotlinx.coroutines.flow.StateFlow<java.lang.Integer> interruptionFilter;
+ property public final kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isAmbient;
+ property public final kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isBatteryLowAndNotCharging;
+ property public final boolean isHeadless;
+ property public final kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isVisible;
+ property public final kotlinx.coroutines.flow.StateFlow<java.lang.String> watchFaceInstanceId;
+ }
+
+}
+
diff --git a/wear/watchface/watchface/api/public_plus_experimental_1.1.0-beta02.txt b/wear/watchface/watchface/api/public_plus_experimental_1.1.0-beta02.txt
new file mode 100644
index 0000000..a83ca76
--- /dev/null
+++ b/wear/watchface/watchface/api/public_plus_experimental_1.1.0-beta02.txt
@@ -0,0 +1,420 @@
+// Signature format: 4.0
+package androidx.wear.watchface {
+
+ public final class BackgroundComplicationTapFilter implements androidx.wear.watchface.ComplicationTapFilter {
+ ctor public BackgroundComplicationTapFilter();
+ method public boolean hitTest(androidx.wear.watchface.ComplicationSlot complicationSlot, android.graphics.Rect screenBounds, @Px int x, @Px int y);
+ }
+
+ public interface CanvasComplication {
+ method public void drawHighlight(android.graphics.Canvas canvas, android.graphics.Rect bounds, int boundsType, java.time.ZonedDateTime zonedDateTime, @ColorInt int color);
+ method public androidx.wear.watchface.complications.data.ComplicationData getData();
+ method public void loadData(androidx.wear.watchface.complications.data.ComplicationData complicationData, boolean loadDrawablesAsynchronous);
+ method @WorkerThread public default void onRendererCreated(androidx.wear.watchface.Renderer renderer);
+ method @UiThread public void render(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime, androidx.wear.watchface.RenderParameters renderParameters, int slotId);
+ }
+
+ public static interface CanvasComplication.InvalidateCallback {
+ method public void onInvalidate();
+ }
+
+ public interface CanvasComplicationFactory {
+ method @WorkerThread public androidx.wear.watchface.CanvasComplication create(androidx.wear.watchface.WatchState, androidx.wear.watchface.CanvasComplication.InvalidateCallback);
+ }
+
+ public final class ComplicationSlot {
+ method public android.graphics.Rect computeBounds(android.graphics.Rect screen);
+ method public static androidx.wear.watchface.ComplicationSlot.Builder createBackgroundComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy);
+ method public static androidx.wear.watchface.ComplicationSlot.Builder createEdgeComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.ComplicationSlotBounds bounds, androidx.wear.watchface.ComplicationTapFilter complicationTapFilter);
+ method public static androidx.wear.watchface.ComplicationSlot.Builder createRoundRectComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.ComplicationSlotBounds bounds);
+ method @UiThread public int getAccessibilityTraversalIndex();
+ method public int getBoundsType();
+ method public androidx.wear.watchface.CanvasComplicationFactory getCanvasComplicationFactory();
+ method public kotlinx.coroutines.flow.StateFlow<androidx.wear.watchface.complications.data.ComplicationData> getComplicationData();
+ method @UiThread public androidx.wear.watchface.complications.ComplicationSlotBounds getComplicationSlotBounds();
+ method public android.os.Bundle getConfigExtras();
+ method @UiThread public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getDefaultDataSourcePolicy();
+ method @Deprecated @UiThread public androidx.wear.watchface.complications.data.ComplicationType getDefaultDataSourceType();
+ method public boolean getFixedComplicationDataSource();
+ method public int getId();
+ method public boolean getInitiallyEnabled();
+ method public Integer? getNameResourceId();
+ method public androidx.wear.watchface.CanvasComplication getRenderer();
+ method public Integer? getScreenReaderNameResourceId();
+ method @UiThread public java.util.List<androidx.wear.watchface.complications.data.ComplicationType> getSupportedTypes();
+ method public androidx.wear.watchface.ComplicationTapFilter getTapFilter();
+ method public boolean isActiveAt(java.time.Instant instant);
+ method @UiThread public boolean isEnabled();
+ method @UiThread public void render(android.graphics.Canvas canvas, java.time.ZonedDateTime zonedDateTime, androidx.wear.watchface.RenderParameters renderParameters);
+ method @UiThread public void renderHighlightLayer(android.graphics.Canvas canvas, java.time.ZonedDateTime zonedDateTime, androidx.wear.watchface.RenderParameters renderParameters);
+ method public void setConfigExtras(android.os.Bundle);
+ property @UiThread public final int accessibilityTraversalIndex;
+ property public final int boundsType;
+ property public final androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory;
+ property public final kotlinx.coroutines.flow.StateFlow<androidx.wear.watchface.complications.data.ComplicationData> complicationData;
+ property @UiThread public final androidx.wear.watchface.complications.ComplicationSlotBounds complicationSlotBounds;
+ property public final android.os.Bundle configExtras;
+ property @UiThread public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy;
+ property @Deprecated @UiThread public final androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType;
+ property @UiThread public final boolean enabled;
+ property public final boolean fixedComplicationDataSource;
+ property public final int id;
+ property public final boolean initiallyEnabled;
+ property public final Integer? nameResourceId;
+ property public final androidx.wear.watchface.CanvasComplication renderer;
+ property public final Integer? screenReaderNameResourceId;
+ property @UiThread public final java.util.List<androidx.wear.watchface.complications.data.ComplicationType> supportedTypes;
+ property public final androidx.wear.watchface.ComplicationTapFilter tapFilter;
+ field public static final androidx.wear.watchface.ComplicationSlot.Companion Companion;
+ }
+
+ public static final class ComplicationSlot.Builder {
+ method public androidx.wear.watchface.ComplicationSlot build();
+ method public androidx.wear.watchface.ComplicationSlot.Builder setAccessibilityTraversalIndex(int accessibilityTraversalIndex);
+ method public androidx.wear.watchface.ComplicationSlot.Builder setConfigExtras(android.os.Bundle extras);
+ method @Deprecated public androidx.wear.watchface.ComplicationSlot.Builder setDefaultDataSourceType(androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType);
+ method public androidx.wear.watchface.ComplicationSlot.Builder setEnabled(boolean enabled);
+ method public androidx.wear.watchface.ComplicationSlot.Builder setFixedComplicationDataSource(boolean fixedComplicationDataSource);
+ method public androidx.wear.watchface.ComplicationSlot.Builder setNameResourceId(Integer? nameResourceId);
+ method public androidx.wear.watchface.ComplicationSlot.Builder setScreenReaderNameResourceId(Integer? screenReaderNameResourceId);
+ }
+
+ public static final class ComplicationSlot.Companion {
+ method public androidx.wear.watchface.ComplicationSlot.Builder createBackgroundComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy);
+ method public androidx.wear.watchface.ComplicationSlot.Builder createEdgeComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.ComplicationSlotBounds bounds, androidx.wear.watchface.ComplicationTapFilter complicationTapFilter);
+ method public androidx.wear.watchface.ComplicationSlot.Builder createRoundRectComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.ComplicationSlotBounds bounds);
+ }
+
+ public abstract class ComplicationSlotInflationFactory {
+ ctor public ComplicationSlotInflationFactory();
+ method public abstract androidx.wear.watchface.CanvasComplicationFactory getCanvasComplicationFactory(int slotId);
+ method public androidx.wear.watchface.ComplicationTapFilter getEdgeComplicationTapFilter(int slotId);
+ }
+
+ public final class ComplicationSlotsManager {
+ ctor public ComplicationSlotsManager(java.util.Collection<androidx.wear.watchface.ComplicationSlot> complicationSlotCollection, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository);
+ method @UiThread public void addTapListener(androidx.wear.watchface.ComplicationSlotsManager.TapCallback tapCallback);
+ method public operator androidx.wear.watchface.ComplicationSlot? get(int id);
+ method public androidx.wear.watchface.ComplicationSlot? getBackgroundComplicationSlot();
+ method public androidx.wear.watchface.ComplicationSlot? getComplicationSlotAt(@Px int x, @Px int y);
+ method public java.util.Map<java.lang.Integer,androidx.wear.watchface.ComplicationSlot> getComplicationSlots();
+ method public java.util.Map<java.lang.Integer,androidx.wear.watchface.TapEvent> getLastComplicationTapDownEvents();
+ method @UiThread public void removeTapListener(androidx.wear.watchface.ComplicationSlotsManager.TapCallback tapCallback);
+ property public final java.util.Map<java.lang.Integer,androidx.wear.watchface.ComplicationSlot> complicationSlots;
+ property public final java.util.Map<java.lang.Integer,androidx.wear.watchface.TapEvent> lastComplicationTapDownEvents;
+ }
+
+ public static interface ComplicationSlotsManager.TapCallback {
+ method public default void onComplicationSlotTapped(int complicationSlotId);
+ }
+
+ public final class ComplicationSlotsManagerKt {
+ }
+
+ public interface ComplicationTapFilter {
+ method public boolean hitTest(androidx.wear.watchface.ComplicationSlot complicationSlot, android.graphics.Rect screenBounds, @Px int x, @Px int y);
+ }
+
+ public final class ContentDescriptionLabel {
+ ctor public ContentDescriptionLabel(androidx.wear.watchface.complications.data.ComplicationText text, android.graphics.Rect bounds, android.app.PendingIntent? tapAction);
+ method public android.graphics.Rect getBounds();
+ method public android.app.PendingIntent? getTapAction();
+ method public androidx.wear.watchface.complications.data.ComplicationText getText();
+ method public CharSequence getTextAt(android.content.res.Resources resources, java.time.Instant instant);
+ property public final android.graphics.Rect bounds;
+ property public final android.app.PendingIntent? tapAction;
+ property public final androidx.wear.watchface.complications.data.ComplicationText text;
+ }
+
+ public enum DrawMode {
+ enum_constant public static final androidx.wear.watchface.DrawMode AMBIENT;
+ enum_constant public static final androidx.wear.watchface.DrawMode INTERACTIVE;
+ enum_constant public static final androidx.wear.watchface.DrawMode LOW_BATTERY_INTERACTIVE;
+ enum_constant public static final androidx.wear.watchface.DrawMode MUTE;
+ }
+
+ public final class RenderBufferTextureKt {
+ }
+
+ public final class RenderParameters {
+ ctor public RenderParameters(androidx.wear.watchface.DrawMode drawMode, java.util.Set<? extends androidx.wear.watchface.style.WatchFaceLayer> watchFaceLayers, optional androidx.wear.watchface.RenderParameters.HighlightLayer? highlightLayer, optional java.util.Map<java.lang.Integer,androidx.wear.watchface.TapEvent> lastComplicationTapDownEvents);
+ ctor public RenderParameters(androidx.wear.watchface.DrawMode drawMode, java.util.Set<? extends androidx.wear.watchface.style.WatchFaceLayer> watchFaceLayers, optional androidx.wear.watchface.RenderParameters.HighlightLayer? highlightLayer);
+ ctor public RenderParameters(androidx.wear.watchface.DrawMode drawMode, java.util.Set<? extends androidx.wear.watchface.style.WatchFaceLayer> watchFaceLayers);
+ method public androidx.wear.watchface.DrawMode getDrawMode();
+ method public androidx.wear.watchface.RenderParameters.HighlightLayer? getHighlightLayer();
+ method public java.util.Map<java.lang.Integer,androidx.wear.watchface.TapEvent> getLastComplicationTapDownEvents();
+ method public java.util.Set<androidx.wear.watchface.style.WatchFaceLayer> getWatchFaceLayers();
+ method public boolean isForScreenshot();
+ property public final androidx.wear.watchface.DrawMode drawMode;
+ property public final androidx.wear.watchface.RenderParameters.HighlightLayer? highlightLayer;
+ property public final boolean isForScreenshot;
+ property public final java.util.Map<java.lang.Integer,androidx.wear.watchface.TapEvent> lastComplicationTapDownEvents;
+ property public final java.util.Set<androidx.wear.watchface.style.WatchFaceLayer> watchFaceLayers;
+ field public static final androidx.wear.watchface.RenderParameters.Companion Companion;
+ field public static final androidx.wear.watchface.RenderParameters DEFAULT_INTERACTIVE;
+ }
+
+ public static final class RenderParameters.Companion {
+ }
+
+ public static final class RenderParameters.HighlightLayer {
+ ctor public RenderParameters.HighlightLayer(androidx.wear.watchface.RenderParameters.HighlightedElement highlightedElement, @ColorInt int highlightTint, @ColorInt int backgroundTint);
+ method @ColorInt public int getBackgroundTint();
+ method @ColorInt public int getHighlightTint();
+ method public androidx.wear.watchface.RenderParameters.HighlightedElement getHighlightedElement();
+ property @ColorInt public final int backgroundTint;
+ property @ColorInt public final int highlightTint;
+ property public final androidx.wear.watchface.RenderParameters.HighlightedElement highlightedElement;
+ }
+
+ public abstract static sealed class RenderParameters.HighlightedElement {
+ }
+
+ public static final class RenderParameters.HighlightedElement.AllComplicationSlots extends androidx.wear.watchface.RenderParameters.HighlightedElement {
+ field public static final androidx.wear.watchface.RenderParameters.HighlightedElement.AllComplicationSlots INSTANCE;
+ }
+
+ public static final class RenderParameters.HighlightedElement.ComplicationSlot extends androidx.wear.watchface.RenderParameters.HighlightedElement {
+ ctor public RenderParameters.HighlightedElement.ComplicationSlot(int id);
+ method public int getId();
+ property public final int id;
+ }
+
+ public static final class RenderParameters.HighlightedElement.UserStyle extends androidx.wear.watchface.RenderParameters.HighlightedElement {
+ ctor public RenderParameters.HighlightedElement.UserStyle(androidx.wear.watchface.style.UserStyleSetting.Id id);
+ method public androidx.wear.watchface.style.UserStyleSetting.Id getId();
+ property public final androidx.wear.watchface.style.UserStyleSetting.Id id;
+ }
+
+ public abstract sealed class Renderer {
+ method public final java.util.Collection<kotlin.Pair<java.lang.Integer,androidx.wear.watchface.ContentDescriptionLabel>> getAdditionalContentDescriptionLabels();
+ method public final float getCenterX();
+ method public final float getCenterY();
+ method public final long getInteractiveDrawModeUpdateDelayMillis();
+ method @UiThread public android.graphics.Rect getMainClockElementBounds();
+ method public final androidx.wear.watchface.RenderParameters getRenderParameters();
+ method public final android.graphics.Rect getScreenBounds();
+ method public final android.view.SurfaceHolder getSurfaceHolder();
+ method @UiThread public final void invalidate();
+ method @UiThread public void onDestroy();
+ method @UiThread public abstract void onDump(java.io.PrintWriter writer);
+ method @UiThread protected void onRenderParametersChanged(androidx.wear.watchface.RenderParameters renderParameters);
+ method public final void postInvalidate();
+ method public final void setAdditionalContentDescriptionLabels(java.util.Collection<kotlin.Pair<java.lang.Integer,androidx.wear.watchface.ContentDescriptionLabel>>);
+ method public final void setInteractiveDrawModeUpdateDelayMillis(long);
+ method @UiThread public boolean shouldAnimate();
+ property public final java.util.Collection<kotlin.Pair<java.lang.Integer,androidx.wear.watchface.ContentDescriptionLabel>> additionalContentDescriptionLabels;
+ property public final float centerX;
+ property public final float centerY;
+ property public final long interactiveDrawModeUpdateDelayMillis;
+ property public final androidx.wear.watchface.RenderParameters renderParameters;
+ property public final android.graphics.Rect screenBounds;
+ property public final android.view.SurfaceHolder surfaceHolder;
+ }
+
+ @Deprecated public abstract static class Renderer.CanvasRenderer extends androidx.wear.watchface.Renderer {
+ ctor @Deprecated @WorkerThread public Renderer.CanvasRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional boolean clearWithBackgroundTintBeforeRenderingHighlightLayer);
+ ctor @Deprecated @WorkerThread public Renderer.CanvasRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis);
+ method @Deprecated public final boolean getClearWithBackgroundTintBeforeRenderingHighlightLayer();
+ method @Deprecated @UiThread public suspend Object? init(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated public void onDump(java.io.PrintWriter writer);
+ method @Deprecated @UiThread public abstract void render(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime);
+ method @Deprecated @UiThread public abstract void renderHighlightLayer(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime);
+ property public final boolean clearWithBackgroundTintBeforeRenderingHighlightLayer;
+ }
+
+ public abstract static class Renderer.CanvasRenderer2<SharedAssetsT extends androidx.wear.watchface.Renderer.SharedAssets> extends androidx.wear.watchface.Renderer.CanvasRenderer {
+ ctor @WorkerThread public Renderer.CanvasRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, boolean clearWithBackgroundTintBeforeRenderingHighlightLayer);
+ method @WorkerThread protected abstract suspend Object? createSharedAssets(kotlin.coroutines.Continuation<? super SharedAssetsT>);
+ method @UiThread public abstract void render(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime, SharedAssetsT sharedAssets);
+ method public final void render(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime);
+ method @UiThread public abstract void renderHighlightLayer(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime, SharedAssetsT sharedAssets);
+ method public final void renderHighlightLayer(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime);
+ }
+
+ @Deprecated public abstract static class Renderer.GlesRenderer extends androidx.wear.watchface.Renderer {
+ ctor @Deprecated @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList, optional int[] eglSurfaceAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @Deprecated @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @Deprecated @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ method @Deprecated public final android.opengl.EGLContext getEglBackgroundThreadContext();
+ method @Deprecated public final android.opengl.EGLConfig getEglConfig();
+ method @Deprecated public final android.opengl.EGLDisplay getEglDisplay();
+ method @Deprecated public final android.opengl.EGLContext getEglUiThreadContext();
+ method @Deprecated @WorkerThread public suspend Object? onBackgroundThreadGlContextCreated(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated public void onDump(java.io.PrintWriter writer);
+ method @Deprecated @UiThread public suspend Object? onUiThreadGlSurfaceCreated(@Px int width, @Px int height, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated @UiThread public abstract void render(java.time.ZonedDateTime zonedDateTime);
+ method @Deprecated @UiThread public abstract void renderHighlightLayer(java.time.ZonedDateTime zonedDateTime);
+ method @Deprecated @WorkerThread public final suspend Object? runBackgroundThreadGlCommands(kotlin.jvm.functions.Function1<? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> commands, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated public final suspend Object? runUiThreadGlCommands(kotlin.jvm.functions.Function1<? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> commands, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated public final void setEglConfig(android.opengl.EGLConfig);
+ method @Deprecated public final void setEglDisplay(android.opengl.EGLDisplay);
+ property public final android.opengl.EGLContext eglBackgroundThreadContext;
+ property public final android.opengl.EGLConfig eglConfig;
+ property public final android.opengl.EGLDisplay eglDisplay;
+ property public final android.opengl.EGLContext eglUiThreadContext;
+ }
+
+ @Deprecated public static final class Renderer.GlesRenderer.GlesException extends java.lang.Exception {
+ ctor @Deprecated public Renderer.GlesRenderer.GlesException(String message);
+ }
+
+ public abstract static class Renderer.GlesRenderer2<SharedAssetsT extends androidx.wear.watchface.Renderer.SharedAssets> extends androidx.wear.watchface.Renderer.GlesRenderer {
+ ctor @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList, optional int[] eglSurfaceAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ method @WorkerThread protected abstract suspend Object? createSharedAssets(kotlin.coroutines.Continuation<? super SharedAssetsT>);
+ method @UiThread public abstract void render(java.time.ZonedDateTime zonedDateTime, SharedAssetsT sharedAssets);
+ method public final void render(java.time.ZonedDateTime zonedDateTime);
+ method @UiThread public abstract void renderHighlightLayer(java.time.ZonedDateTime zonedDateTime, SharedAssetsT sharedAssets);
+ method public final void renderHighlightLayer(java.time.ZonedDateTime zonedDateTime);
+ }
+
+ public static interface Renderer.SharedAssets {
+ method @UiThread public void onDestroy();
+ }
+
+ public final class RendererKt {
+ }
+
+ public final class RoundRectComplicationTapFilter implements androidx.wear.watchface.ComplicationTapFilter {
+ ctor public RoundRectComplicationTapFilter();
+ method public boolean hitTest(androidx.wear.watchface.ComplicationSlot complicationSlot, android.graphics.Rect screenBounds, @Px int x, @Px int y);
+ }
+
+ public final class TapEvent {
+ ctor public TapEvent(@Px int xPos, @Px int yPos, java.time.Instant tapTime);
+ method public java.time.Instant getTapTime();
+ method public int getXPos();
+ method public int getYPos();
+ property public final java.time.Instant tapTime;
+ property public final int xPos;
+ property public final int yPos;
+ }
+
+ @androidx.wear.watchface.WatchFaceFlavorsExperimental public final class UserStyleFlavor {
+ ctor public UserStyleFlavor(String id, androidx.wear.watchface.style.UserStyleData style, java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy> complications);
+ ctor public UserStyleFlavor(String id, androidx.wear.watchface.style.UserStyle style, java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy> complications);
+ method public java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy> getComplications();
+ method public String getId();
+ method public androidx.wear.watchface.style.UserStyleData getStyle();
+ property public final java.util.Map<java.lang.Integer,androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy> complications;
+ property public final String id;
+ property public final androidx.wear.watchface.style.UserStyleData style;
+ }
+
+ @androidx.wear.watchface.WatchFaceFlavorsExperimental public final class UserStyleFlavors {
+ ctor public UserStyleFlavors(java.util.List<androidx.wear.watchface.UserStyleFlavor> flavors);
+ ctor public UserStyleFlavors();
+ method public java.util.List<androidx.wear.watchface.UserStyleFlavor> getFlavors();
+ property public final java.util.List<androidx.wear.watchface.UserStyleFlavor> flavors;
+ }
+
+ public final class WatchFace {
+ ctor public WatchFace(int watchFaceType, androidx.wear.watchface.Renderer renderer);
+ method public androidx.wear.watchface.WatchFace.LegacyWatchFaceOverlayStyle getLegacyWatchFaceStyle();
+ method public androidx.wear.watchface.WatchFace.OverlayStyle getOverlayStyle();
+ method public java.time.Instant? getOverridePreviewReferenceInstant();
+ method public androidx.wear.watchface.Renderer getRenderer();
+ method public int getWatchFaceType();
+ method public static boolean isLegacyWatchFaceOverlayStyleSupported();
+ method public androidx.wear.watchface.WatchFace setComplicationDeniedDialogIntent(android.content.Intent? complicationDeniedDialogIntent);
+ method public androidx.wear.watchface.WatchFace setComplicationRationaleDialogIntent(android.content.Intent? complicationRationaleDialogIntent);
+ method public androidx.wear.watchface.WatchFace setLegacyWatchFaceStyle(androidx.wear.watchface.WatchFace.LegacyWatchFaceOverlayStyle legacyWatchFaceStyle);
+ method public androidx.wear.watchface.WatchFace setOverlayStyle(androidx.wear.watchface.WatchFace.OverlayStyle watchFaceOverlayStyle);
+ method public androidx.wear.watchface.WatchFace setOverridePreviewReferenceInstant(java.time.Instant previewReferenceTimeMillis);
+ method public androidx.wear.watchface.WatchFace setTapListener(androidx.wear.watchface.WatchFace.TapListener? tapListener);
+ method public void setWatchFaceType(int);
+ property public final androidx.wear.watchface.WatchFace.LegacyWatchFaceOverlayStyle legacyWatchFaceStyle;
+ property public final androidx.wear.watchface.WatchFace.OverlayStyle overlayStyle;
+ property public final java.time.Instant? overridePreviewReferenceInstant;
+ property public final androidx.wear.watchface.Renderer renderer;
+ property public final int watchFaceType;
+ field public static final androidx.wear.watchface.WatchFace.Companion Companion;
+ }
+
+ public static final class WatchFace.Companion {
+ method public boolean isLegacyWatchFaceOverlayStyleSupported();
+ }
+
+ public static final class WatchFace.LegacyWatchFaceOverlayStyle {
+ ctor public WatchFace.LegacyWatchFaceOverlayStyle(int viewProtectionMode, int statusBarGravity, boolean tapEventsAccepted, optional @ColorInt int accentColor);
+ ctor public WatchFace.LegacyWatchFaceOverlayStyle(int viewProtectionMode, int statusBarGravity, boolean tapEventsAccepted);
+ method public int getAccentColor();
+ method public int getStatusBarGravity();
+ method public boolean getTapEventsAccepted();
+ method public int getViewProtectionMode();
+ property public final int accentColor;
+ property public final int statusBarGravity;
+ property public final boolean tapEventsAccepted;
+ property public final int viewProtectionMode;
+ }
+
+ public static final class WatchFace.OverlayStyle {
+ ctor public WatchFace.OverlayStyle(android.graphics.Color? backgroundColor, android.graphics.Color? foregroundColor);
+ ctor public WatchFace.OverlayStyle();
+ method public android.graphics.Color? getBackgroundColor();
+ method public android.graphics.Color? getForegroundColor();
+ property public final android.graphics.Color? backgroundColor;
+ property public final android.graphics.Color? foregroundColor;
+ }
+
+ public static interface WatchFace.TapListener {
+ method @UiThread public void onTapEvent(int tapType, androidx.wear.watchface.TapEvent tapEvent, androidx.wear.watchface.ComplicationSlot? complicationSlot);
+ }
+
+ @kotlin.RequiresOptIn(message="This is an experimental API that may change or be removed without warning.") @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface WatchFaceFlavorsExperimental {
+ }
+
+ public final class WatchFaceKt {
+ }
+
+ public abstract class WatchFaceService extends android.service.wallpaper.WallpaperService {
+ ctor public WatchFaceService();
+ method @WorkerThread protected androidx.wear.watchface.ComplicationSlotsManager createComplicationSlotsManager(androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository);
+ method @WorkerThread @androidx.wear.watchface.WatchFaceFlavorsExperimental protected androidx.wear.watchface.UserStyleFlavors createUserStyleFlavors(androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.ComplicationSlotsManager complicationSlotsManager);
+ method @WorkerThread protected androidx.wear.watchface.style.UserStyleSchema createUserStyleSchema();
+ method @WorkerThread protected abstract suspend Object? createWatchFace(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.WatchState watchState, androidx.wear.watchface.ComplicationSlotsManager complicationSlotsManager, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, kotlin.coroutines.Continuation<? super androidx.wear.watchface.WatchFace>);
+ method public final android.os.Handler getBackgroundThreadHandler();
+ method @WorkerThread protected androidx.wear.watchface.ComplicationSlotInflationFactory? getComplicationSlotInflationFactory();
+ method public final android.os.Handler getUiThreadHandler();
+ method public final android.service.wallpaper.WallpaperService.Engine onCreateEngine();
+ field public static final androidx.wear.watchface.WatchFaceService.Companion Companion;
+ field public static final int MAX_CREATE_WATCHFACE_TIME_MILLIS = 5000; // 0x1388
+ }
+
+ public static final class WatchFaceService.Companion {
+ }
+
+ public final class WatchFaceServiceKt {
+ }
+
+ public final class WatchState {
+ ctor public WatchState(kotlinx.coroutines.flow.StateFlow<java.lang.Integer> interruptionFilter, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isAmbient, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isBatteryLowAndNotCharging, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isVisible, boolean hasLowBitAmbient, boolean hasBurnInProtection, long analogPreviewReferenceTimeMillis, long digitalPreviewReferenceTimeMillis, @Px int chinHeight, boolean isHeadless, kotlinx.coroutines.flow.StateFlow<java.lang.String> watchFaceInstanceId);
+ ctor @Deprecated public WatchState(kotlinx.coroutines.flow.StateFlow<java.lang.Integer> interruptionFilter, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isAmbient, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isBatteryLowAndNotCharging, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isVisible, boolean hasLowBitAmbient, boolean hasBurnInProtection, long analogPreviewReferenceTimeMillis, long digitalPreviewReferenceTimeMillis, int chinHeight, boolean isHeadless);
+ method public long getAnalogPreviewReferenceTimeMillis();
+ method @Px public int getChinHeight();
+ method public long getDigitalPreviewReferenceTimeMillis();
+ method public boolean getHasBurnInProtection();
+ method public boolean getHasLowBitAmbient();
+ method public kotlinx.coroutines.flow.StateFlow<java.lang.Integer> getInterruptionFilter();
+ method public kotlinx.coroutines.flow.StateFlow<java.lang.String> getWatchFaceInstanceId();
+ method public kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isAmbient();
+ method public kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isBatteryLowAndNotCharging();
+ method public boolean isHeadless();
+ method public kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isVisible();
+ property public final long analogPreviewReferenceTimeMillis;
+ property @Px public final int chinHeight;
+ property public final long digitalPreviewReferenceTimeMillis;
+ property public final boolean hasBurnInProtection;
+ property public final boolean hasLowBitAmbient;
+ property public final kotlinx.coroutines.flow.StateFlow<java.lang.Integer> interruptionFilter;
+ property public final kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isAmbient;
+ property public final kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isBatteryLowAndNotCharging;
+ property public final boolean isHeadless;
+ property public final kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isVisible;
+ property public final kotlinx.coroutines.flow.StateFlow<java.lang.String> watchFaceInstanceId;
+ }
+
+}
+
diff --git a/wear/watchface/watchface/api/res-1.1.0-beta02.txt b/wear/watchface/watchface/api/res-1.1.0-beta02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/wear/watchface/watchface/api/res-1.1.0-beta02.txt
diff --git a/wear/watchface/watchface/api/restricted_1.1.0-beta02.txt b/wear/watchface/watchface/api/restricted_1.1.0-beta02.txt
new file mode 100644
index 0000000..be6af4f
--- /dev/null
+++ b/wear/watchface/watchface/api/restricted_1.1.0-beta02.txt
@@ -0,0 +1,400 @@
+// Signature format: 4.0
+package androidx.wear.watchface {
+
+ public final class BackgroundComplicationTapFilter implements androidx.wear.watchface.ComplicationTapFilter {
+ ctor public BackgroundComplicationTapFilter();
+ method public boolean hitTest(androidx.wear.watchface.ComplicationSlot complicationSlot, android.graphics.Rect screenBounds, @Px int x, @Px int y);
+ }
+
+ public interface CanvasComplication {
+ method public void drawHighlight(android.graphics.Canvas canvas, android.graphics.Rect bounds, int boundsType, java.time.ZonedDateTime zonedDateTime, @ColorInt int color);
+ method public androidx.wear.watchface.complications.data.ComplicationData getData();
+ method public void loadData(androidx.wear.watchface.complications.data.ComplicationData complicationData, boolean loadDrawablesAsynchronous);
+ method @WorkerThread public default void onRendererCreated(androidx.wear.watchface.Renderer renderer);
+ method @UiThread public void render(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime, androidx.wear.watchface.RenderParameters renderParameters, int slotId);
+ }
+
+ public static interface CanvasComplication.InvalidateCallback {
+ method public void onInvalidate();
+ }
+
+ public interface CanvasComplicationFactory {
+ method @WorkerThread public androidx.wear.watchface.CanvasComplication create(androidx.wear.watchface.WatchState, androidx.wear.watchface.CanvasComplication.InvalidateCallback);
+ }
+
+ public final class ComplicationSlot {
+ method public android.graphics.Rect computeBounds(android.graphics.Rect screen);
+ method public static androidx.wear.watchface.ComplicationSlot.Builder createBackgroundComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy);
+ method public static androidx.wear.watchface.ComplicationSlot.Builder createEdgeComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.ComplicationSlotBounds bounds, androidx.wear.watchface.ComplicationTapFilter complicationTapFilter);
+ method public static androidx.wear.watchface.ComplicationSlot.Builder createRoundRectComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.ComplicationSlotBounds bounds);
+ method @UiThread public int getAccessibilityTraversalIndex();
+ method public int getBoundsType();
+ method public androidx.wear.watchface.CanvasComplicationFactory getCanvasComplicationFactory();
+ method public kotlinx.coroutines.flow.StateFlow<androidx.wear.watchface.complications.data.ComplicationData> getComplicationData();
+ method @UiThread public androidx.wear.watchface.complications.ComplicationSlotBounds getComplicationSlotBounds();
+ method public android.os.Bundle getConfigExtras();
+ method @UiThread public androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy getDefaultDataSourcePolicy();
+ method @Deprecated @UiThread public androidx.wear.watchface.complications.data.ComplicationType getDefaultDataSourceType();
+ method public boolean getFixedComplicationDataSource();
+ method public int getId();
+ method public boolean getInitiallyEnabled();
+ method public Integer? getNameResourceId();
+ method public androidx.wear.watchface.CanvasComplication getRenderer();
+ method public Integer? getScreenReaderNameResourceId();
+ method @UiThread public java.util.List<androidx.wear.watchface.complications.data.ComplicationType> getSupportedTypes();
+ method public androidx.wear.watchface.ComplicationTapFilter getTapFilter();
+ method public boolean isActiveAt(java.time.Instant instant);
+ method @UiThread public boolean isEnabled();
+ method @UiThread public void render(android.graphics.Canvas canvas, java.time.ZonedDateTime zonedDateTime, androidx.wear.watchface.RenderParameters renderParameters);
+ method @UiThread public void renderHighlightLayer(android.graphics.Canvas canvas, java.time.ZonedDateTime zonedDateTime, androidx.wear.watchface.RenderParameters renderParameters);
+ method public void setConfigExtras(android.os.Bundle);
+ property @UiThread public final int accessibilityTraversalIndex;
+ property public final int boundsType;
+ property public final androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory;
+ property public final kotlinx.coroutines.flow.StateFlow<androidx.wear.watchface.complications.data.ComplicationData> complicationData;
+ property @UiThread public final androidx.wear.watchface.complications.ComplicationSlotBounds complicationSlotBounds;
+ property public final android.os.Bundle configExtras;
+ property @UiThread public final androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy;
+ property @Deprecated @UiThread public final androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType;
+ property @UiThread public final boolean enabled;
+ property public final boolean fixedComplicationDataSource;
+ property public final int id;
+ property public final boolean initiallyEnabled;
+ property public final Integer? nameResourceId;
+ property public final androidx.wear.watchface.CanvasComplication renderer;
+ property public final Integer? screenReaderNameResourceId;
+ property @UiThread public final java.util.List<androidx.wear.watchface.complications.data.ComplicationType> supportedTypes;
+ property public final androidx.wear.watchface.ComplicationTapFilter tapFilter;
+ field public static final androidx.wear.watchface.ComplicationSlot.Companion Companion;
+ }
+
+ public static final class ComplicationSlot.Builder {
+ method public androidx.wear.watchface.ComplicationSlot build();
+ method public androidx.wear.watchface.ComplicationSlot.Builder setAccessibilityTraversalIndex(int accessibilityTraversalIndex);
+ method public androidx.wear.watchface.ComplicationSlot.Builder setConfigExtras(android.os.Bundle extras);
+ method @Deprecated public androidx.wear.watchface.ComplicationSlot.Builder setDefaultDataSourceType(androidx.wear.watchface.complications.data.ComplicationType defaultDataSourceType);
+ method public androidx.wear.watchface.ComplicationSlot.Builder setEnabled(boolean enabled);
+ method public androidx.wear.watchface.ComplicationSlot.Builder setFixedComplicationDataSource(boolean fixedComplicationDataSource);
+ method public androidx.wear.watchface.ComplicationSlot.Builder setNameResourceId(Integer? nameResourceId);
+ method public androidx.wear.watchface.ComplicationSlot.Builder setScreenReaderNameResourceId(Integer? screenReaderNameResourceId);
+ }
+
+ public static final class ComplicationSlot.Companion {
+ method public androidx.wear.watchface.ComplicationSlot.Builder createBackgroundComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy);
+ method public androidx.wear.watchface.ComplicationSlot.Builder createEdgeComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.ComplicationSlotBounds bounds, androidx.wear.watchface.ComplicationTapFilter complicationTapFilter);
+ method public androidx.wear.watchface.ComplicationSlot.Builder createRoundRectComplicationSlotBuilder(int id, androidx.wear.watchface.CanvasComplicationFactory canvasComplicationFactory, java.util.List<? extends androidx.wear.watchface.complications.data.ComplicationType> supportedTypes, androidx.wear.watchface.complications.DefaultComplicationDataSourcePolicy defaultDataSourcePolicy, androidx.wear.watchface.complications.ComplicationSlotBounds bounds);
+ }
+
+ public abstract class ComplicationSlotInflationFactory {
+ ctor public ComplicationSlotInflationFactory();
+ method public abstract androidx.wear.watchface.CanvasComplicationFactory getCanvasComplicationFactory(int slotId);
+ method public androidx.wear.watchface.ComplicationTapFilter getEdgeComplicationTapFilter(int slotId);
+ }
+
+ public final class ComplicationSlotsManager {
+ ctor public ComplicationSlotsManager(java.util.Collection<androidx.wear.watchface.ComplicationSlot> complicationSlotCollection, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository);
+ method @UiThread public void addTapListener(androidx.wear.watchface.ComplicationSlotsManager.TapCallback tapCallback);
+ method public operator androidx.wear.watchface.ComplicationSlot? get(int id);
+ method public androidx.wear.watchface.ComplicationSlot? getBackgroundComplicationSlot();
+ method public androidx.wear.watchface.ComplicationSlot? getComplicationSlotAt(@Px int x, @Px int y);
+ method public java.util.Map<java.lang.Integer,androidx.wear.watchface.ComplicationSlot> getComplicationSlots();
+ method public java.util.Map<java.lang.Integer,androidx.wear.watchface.TapEvent> getLastComplicationTapDownEvents();
+ method @UiThread public void removeTapListener(androidx.wear.watchface.ComplicationSlotsManager.TapCallback tapCallback);
+ property public final java.util.Map<java.lang.Integer,androidx.wear.watchface.ComplicationSlot> complicationSlots;
+ property public final java.util.Map<java.lang.Integer,androidx.wear.watchface.TapEvent> lastComplicationTapDownEvents;
+ }
+
+ public static interface ComplicationSlotsManager.TapCallback {
+ method public default void onComplicationSlotTapped(int complicationSlotId);
+ }
+
+ public final class ComplicationSlotsManagerKt {
+ }
+
+ public interface ComplicationTapFilter {
+ method public boolean hitTest(androidx.wear.watchface.ComplicationSlot complicationSlot, android.graphics.Rect screenBounds, @Px int x, @Px int y);
+ }
+
+ public final class ContentDescriptionLabel {
+ ctor public ContentDescriptionLabel(androidx.wear.watchface.complications.data.ComplicationText text, android.graphics.Rect bounds, android.app.PendingIntent? tapAction);
+ method public android.graphics.Rect getBounds();
+ method public android.app.PendingIntent? getTapAction();
+ method public androidx.wear.watchface.complications.data.ComplicationText getText();
+ method public CharSequence getTextAt(android.content.res.Resources resources, java.time.Instant instant);
+ property public final android.graphics.Rect bounds;
+ property public final android.app.PendingIntent? tapAction;
+ property public final androidx.wear.watchface.complications.data.ComplicationText text;
+ }
+
+ public enum DrawMode {
+ enum_constant public static final androidx.wear.watchface.DrawMode AMBIENT;
+ enum_constant public static final androidx.wear.watchface.DrawMode INTERACTIVE;
+ enum_constant public static final androidx.wear.watchface.DrawMode LOW_BATTERY_INTERACTIVE;
+ enum_constant public static final androidx.wear.watchface.DrawMode MUTE;
+ }
+
+ public final class RenderBufferTextureKt {
+ }
+
+ public final class RenderParameters {
+ ctor public RenderParameters(androidx.wear.watchface.DrawMode drawMode, java.util.Set<? extends androidx.wear.watchface.style.WatchFaceLayer> watchFaceLayers, optional androidx.wear.watchface.RenderParameters.HighlightLayer? highlightLayer, optional java.util.Map<java.lang.Integer,androidx.wear.watchface.TapEvent> lastComplicationTapDownEvents);
+ ctor public RenderParameters(androidx.wear.watchface.DrawMode drawMode, java.util.Set<? extends androidx.wear.watchface.style.WatchFaceLayer> watchFaceLayers, optional androidx.wear.watchface.RenderParameters.HighlightLayer? highlightLayer);
+ ctor public RenderParameters(androidx.wear.watchface.DrawMode drawMode, java.util.Set<? extends androidx.wear.watchface.style.WatchFaceLayer> watchFaceLayers);
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public RenderParameters(androidx.wear.watchface.data.RenderParametersWireFormat wireFormat);
+ method public androidx.wear.watchface.DrawMode getDrawMode();
+ method public androidx.wear.watchface.RenderParameters.HighlightLayer? getHighlightLayer();
+ method public java.util.Map<java.lang.Integer,androidx.wear.watchface.TapEvent> getLastComplicationTapDownEvents();
+ method public java.util.Set<androidx.wear.watchface.style.WatchFaceLayer> getWatchFaceLayers();
+ method public boolean isForScreenshot();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.wear.watchface.data.RenderParametersWireFormat toWireFormat();
+ property public final androidx.wear.watchface.DrawMode drawMode;
+ property public final androidx.wear.watchface.RenderParameters.HighlightLayer? highlightLayer;
+ property public final boolean isForScreenshot;
+ property public final java.util.Map<java.lang.Integer,androidx.wear.watchface.TapEvent> lastComplicationTapDownEvents;
+ property public final java.util.Set<androidx.wear.watchface.style.WatchFaceLayer> watchFaceLayers;
+ field public static final androidx.wear.watchface.RenderParameters.Companion Companion;
+ field public static final androidx.wear.watchface.RenderParameters DEFAULT_INTERACTIVE;
+ }
+
+ public static final class RenderParameters.Companion {
+ }
+
+ public static final class RenderParameters.HighlightLayer {
+ ctor public RenderParameters.HighlightLayer(androidx.wear.watchface.RenderParameters.HighlightedElement highlightedElement, @ColorInt int highlightTint, @ColorInt int backgroundTint);
+ method @ColorInt public int getBackgroundTint();
+ method @ColorInt public int getHighlightTint();
+ method public androidx.wear.watchface.RenderParameters.HighlightedElement getHighlightedElement();
+ property @ColorInt public final int backgroundTint;
+ property @ColorInt public final int highlightTint;
+ property public final androidx.wear.watchface.RenderParameters.HighlightedElement highlightedElement;
+ }
+
+ public abstract static sealed class RenderParameters.HighlightedElement {
+ }
+
+ public static final class RenderParameters.HighlightedElement.AllComplicationSlots extends androidx.wear.watchface.RenderParameters.HighlightedElement {
+ field public static final androidx.wear.watchface.RenderParameters.HighlightedElement.AllComplicationSlots INSTANCE;
+ }
+
+ public static final class RenderParameters.HighlightedElement.ComplicationSlot extends androidx.wear.watchface.RenderParameters.HighlightedElement {
+ ctor public RenderParameters.HighlightedElement.ComplicationSlot(int id);
+ method public int getId();
+ property public final int id;
+ }
+
+ public static final class RenderParameters.HighlightedElement.UserStyle extends androidx.wear.watchface.RenderParameters.HighlightedElement {
+ ctor public RenderParameters.HighlightedElement.UserStyle(androidx.wear.watchface.style.UserStyleSetting.Id id);
+ method public androidx.wear.watchface.style.UserStyleSetting.Id getId();
+ property public final androidx.wear.watchface.style.UserStyleSetting.Id id;
+ }
+
+ public abstract sealed class Renderer {
+ method public final java.util.Collection<kotlin.Pair<java.lang.Integer,androidx.wear.watchface.ContentDescriptionLabel>> getAdditionalContentDescriptionLabels();
+ method public final float getCenterX();
+ method public final float getCenterY();
+ method public final long getInteractiveDrawModeUpdateDelayMillis();
+ method @UiThread public android.graphics.Rect getMainClockElementBounds();
+ method public final androidx.wear.watchface.RenderParameters getRenderParameters();
+ method public final android.graphics.Rect getScreenBounds();
+ method public final android.view.SurfaceHolder getSurfaceHolder();
+ method @UiThread public final void invalidate();
+ method @UiThread public void onDestroy();
+ method @UiThread public abstract void onDump(java.io.PrintWriter writer);
+ method @UiThread protected void onRenderParametersChanged(androidx.wear.watchface.RenderParameters renderParameters);
+ method public final void postInvalidate();
+ method public final void setAdditionalContentDescriptionLabels(java.util.Collection<kotlin.Pair<java.lang.Integer,androidx.wear.watchface.ContentDescriptionLabel>>);
+ method public final void setInteractiveDrawModeUpdateDelayMillis(long);
+ method @UiThread public boolean shouldAnimate();
+ property public final java.util.Collection<kotlin.Pair<java.lang.Integer,androidx.wear.watchface.ContentDescriptionLabel>> additionalContentDescriptionLabels;
+ property public final float centerX;
+ property public final float centerY;
+ property public final long interactiveDrawModeUpdateDelayMillis;
+ property public final androidx.wear.watchface.RenderParameters renderParameters;
+ property public final android.graphics.Rect screenBounds;
+ property public final android.view.SurfaceHolder surfaceHolder;
+ }
+
+ @Deprecated public abstract static class Renderer.CanvasRenderer extends androidx.wear.watchface.Renderer {
+ ctor @Deprecated @WorkerThread public Renderer.CanvasRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional boolean clearWithBackgroundTintBeforeRenderingHighlightLayer);
+ ctor @Deprecated @WorkerThread public Renderer.CanvasRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis);
+ method @Deprecated public final boolean getClearWithBackgroundTintBeforeRenderingHighlightLayer();
+ method @Deprecated @UiThread public suspend Object? init(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated public void onDump(java.io.PrintWriter writer);
+ method @Deprecated @UiThread public abstract void render(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime);
+ method @Deprecated @UiThread public abstract void renderHighlightLayer(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime);
+ property public final boolean clearWithBackgroundTintBeforeRenderingHighlightLayer;
+ }
+
+ public abstract static class Renderer.CanvasRenderer2<SharedAssetsT extends androidx.wear.watchface.Renderer.SharedAssets> extends androidx.wear.watchface.Renderer.CanvasRenderer {
+ ctor @WorkerThread public Renderer.CanvasRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, int canvasType, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, boolean clearWithBackgroundTintBeforeRenderingHighlightLayer);
+ method @WorkerThread protected abstract suspend Object? createSharedAssets(kotlin.coroutines.Continuation<? super SharedAssetsT>);
+ method @UiThread public abstract void render(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime, SharedAssetsT sharedAssets);
+ method public final void render(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime);
+ method @UiThread public abstract void renderHighlightLayer(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime, SharedAssetsT sharedAssets);
+ method public final void renderHighlightLayer(android.graphics.Canvas canvas, android.graphics.Rect bounds, java.time.ZonedDateTime zonedDateTime);
+ }
+
+ @Deprecated public abstract static class Renderer.GlesRenderer extends androidx.wear.watchface.Renderer {
+ ctor @Deprecated @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList, optional int[] eglSurfaceAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @Deprecated @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @Deprecated @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ method @Deprecated public final android.opengl.EGLContext getEglBackgroundThreadContext();
+ method @Deprecated public final android.opengl.EGLConfig getEglConfig();
+ method @Deprecated public final android.opengl.EGLDisplay getEglDisplay();
+ method @Deprecated public final android.opengl.EGLContext getEglUiThreadContext();
+ method @Deprecated @WorkerThread public suspend Object? onBackgroundThreadGlContextCreated(kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated public void onDump(java.io.PrintWriter writer);
+ method @Deprecated @UiThread public suspend Object? onUiThreadGlSurfaceCreated(@Px int width, @Px int height, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated @UiThread public abstract void render(java.time.ZonedDateTime zonedDateTime);
+ method @Deprecated @UiThread public abstract void renderHighlightLayer(java.time.ZonedDateTime zonedDateTime);
+ method @Deprecated @WorkerThread public final suspend Object? runBackgroundThreadGlCommands(kotlin.jvm.functions.Function1<? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> commands, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated public final suspend Object? runUiThreadGlCommands(kotlin.jvm.functions.Function1<? super kotlin.coroutines.Continuation<? super kotlin.Unit>,?> commands, kotlin.coroutines.Continuation<? super kotlin.Unit>);
+ method @Deprecated public final void setEglConfig(android.opengl.EGLConfig);
+ method @Deprecated public final void setEglDisplay(android.opengl.EGLDisplay);
+ property public final android.opengl.EGLContext eglBackgroundThreadContext;
+ property public final android.opengl.EGLConfig eglConfig;
+ property public final android.opengl.EGLDisplay eglDisplay;
+ property public final android.opengl.EGLContext eglUiThreadContext;
+ }
+
+ @Deprecated public static final class Renderer.GlesRenderer.GlesException extends java.lang.Exception {
+ ctor @Deprecated public Renderer.GlesRenderer.GlesException(String message);
+ }
+
+ public abstract static class Renderer.GlesRenderer2<SharedAssetsT extends androidx.wear.watchface.Renderer.SharedAssets> extends androidx.wear.watchface.Renderer.GlesRenderer {
+ ctor @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList, optional int[] eglSurfaceAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis, optional int[] eglConfigAttribList) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ ctor @WorkerThread @kotlin.jvm.Throws(exceptionClasses=GlesException::class) public Renderer.GlesRenderer2(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, androidx.wear.watchface.WatchState watchState, @IntRange(from=0L, to=60000L) long interactiveDrawModeUpdateDelayMillis) throws androidx.wear.watchface.Renderer.GlesRenderer.GlesException;
+ method @WorkerThread protected abstract suspend Object? createSharedAssets(kotlin.coroutines.Continuation<? super SharedAssetsT>);
+ method @UiThread public abstract void render(java.time.ZonedDateTime zonedDateTime, SharedAssetsT sharedAssets);
+ method public final void render(java.time.ZonedDateTime zonedDateTime);
+ method @UiThread public abstract void renderHighlightLayer(java.time.ZonedDateTime zonedDateTime, SharedAssetsT sharedAssets);
+ method public final void renderHighlightLayer(java.time.ZonedDateTime zonedDateTime);
+ }
+
+ public static interface Renderer.SharedAssets {
+ method @UiThread public void onDestroy();
+ }
+
+ public final class RendererKt {
+ }
+
+ public final class RoundRectComplicationTapFilter implements androidx.wear.watchface.ComplicationTapFilter {
+ ctor public RoundRectComplicationTapFilter();
+ method public boolean hitTest(androidx.wear.watchface.ComplicationSlot complicationSlot, android.graphics.Rect screenBounds, @Px int x, @Px int y);
+ }
+
+ public final class TapEvent {
+ ctor public TapEvent(@Px int xPos, @Px int yPos, java.time.Instant tapTime);
+ method public java.time.Instant getTapTime();
+ method public int getXPos();
+ method public int getYPos();
+ property public final java.time.Instant tapTime;
+ property public final int xPos;
+ property public final int yPos;
+ }
+
+ public final class WatchFace {
+ ctor public WatchFace(int watchFaceType, androidx.wear.watchface.Renderer renderer);
+ method public androidx.wear.watchface.WatchFace.LegacyWatchFaceOverlayStyle getLegacyWatchFaceStyle();
+ method public androidx.wear.watchface.WatchFace.OverlayStyle getOverlayStyle();
+ method public java.time.Instant? getOverridePreviewReferenceInstant();
+ method public androidx.wear.watchface.Renderer getRenderer();
+ method public int getWatchFaceType();
+ method public static boolean isLegacyWatchFaceOverlayStyleSupported();
+ method public androidx.wear.watchface.WatchFace setComplicationDeniedDialogIntent(android.content.Intent? complicationDeniedDialogIntent);
+ method public androidx.wear.watchface.WatchFace setComplicationRationaleDialogIntent(android.content.Intent? complicationRationaleDialogIntent);
+ method public androidx.wear.watchface.WatchFace setLegacyWatchFaceStyle(androidx.wear.watchface.WatchFace.LegacyWatchFaceOverlayStyle legacyWatchFaceStyle);
+ method public androidx.wear.watchface.WatchFace setOverlayStyle(androidx.wear.watchface.WatchFace.OverlayStyle watchFaceOverlayStyle);
+ method public androidx.wear.watchface.WatchFace setOverridePreviewReferenceInstant(java.time.Instant previewReferenceTimeMillis);
+ method public androidx.wear.watchface.WatchFace setTapListener(androidx.wear.watchface.WatchFace.TapListener? tapListener);
+ method public void setWatchFaceType(int);
+ property public final androidx.wear.watchface.WatchFace.LegacyWatchFaceOverlayStyle legacyWatchFaceStyle;
+ property public final androidx.wear.watchface.WatchFace.OverlayStyle overlayStyle;
+ property public final java.time.Instant? overridePreviewReferenceInstant;
+ property public final androidx.wear.watchface.Renderer renderer;
+ property public final int watchFaceType;
+ field public static final androidx.wear.watchface.WatchFace.Companion Companion;
+ }
+
+ public static final class WatchFace.Companion {
+ method public boolean isLegacyWatchFaceOverlayStyleSupported();
+ }
+
+ public static final class WatchFace.LegacyWatchFaceOverlayStyle {
+ ctor public WatchFace.LegacyWatchFaceOverlayStyle(int viewProtectionMode, int statusBarGravity, boolean tapEventsAccepted, optional @ColorInt int accentColor);
+ ctor public WatchFace.LegacyWatchFaceOverlayStyle(int viewProtectionMode, int statusBarGravity, boolean tapEventsAccepted);
+ method public int getAccentColor();
+ method public int getStatusBarGravity();
+ method public boolean getTapEventsAccepted();
+ method public int getViewProtectionMode();
+ property public final int accentColor;
+ property public final int statusBarGravity;
+ property public final boolean tapEventsAccepted;
+ property public final int viewProtectionMode;
+ }
+
+ public static final class WatchFace.OverlayStyle {
+ ctor public WatchFace.OverlayStyle(android.graphics.Color? backgroundColor, android.graphics.Color? foregroundColor);
+ ctor public WatchFace.OverlayStyle();
+ method public android.graphics.Color? getBackgroundColor();
+ method public android.graphics.Color? getForegroundColor();
+ property public final android.graphics.Color? backgroundColor;
+ property public final android.graphics.Color? foregroundColor;
+ }
+
+ public static interface WatchFace.TapListener {
+ method @UiThread public void onTapEvent(int tapType, androidx.wear.watchface.TapEvent tapEvent, androidx.wear.watchface.ComplicationSlot? complicationSlot);
+ }
+
+ public final class WatchFaceKt {
+ }
+
+ public abstract class WatchFaceService extends android.service.wallpaper.WallpaperService {
+ ctor public WatchFaceService();
+ method @WorkerThread protected androidx.wear.watchface.ComplicationSlotsManager createComplicationSlotsManager(androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository);
+ method @WorkerThread protected androidx.wear.watchface.style.UserStyleSchema createUserStyleSchema();
+ method @WorkerThread protected abstract suspend Object? createWatchFace(android.view.SurfaceHolder surfaceHolder, androidx.wear.watchface.WatchState watchState, androidx.wear.watchface.ComplicationSlotsManager complicationSlotsManager, androidx.wear.watchface.style.CurrentUserStyleRepository currentUserStyleRepository, kotlin.coroutines.Continuation<? super androidx.wear.watchface.WatchFace>);
+ method public final android.os.Handler getBackgroundThreadHandler();
+ method @WorkerThread protected androidx.wear.watchface.ComplicationSlotInflationFactory? getComplicationSlotInflationFactory();
+ method public final android.os.Handler getUiThreadHandler();
+ method public final android.service.wallpaper.WallpaperService.Engine onCreateEngine();
+ field public static final androidx.wear.watchface.WatchFaceService.Companion Companion;
+ field public static final int MAX_CREATE_WATCHFACE_TIME_MILLIS = 5000; // 0x1388
+ }
+
+ public static final class WatchFaceService.Companion {
+ }
+
+ public final class WatchFaceServiceKt {
+ }
+
+ public final class WatchState {
+ ctor public WatchState(kotlinx.coroutines.flow.StateFlow<java.lang.Integer> interruptionFilter, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isAmbient, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isBatteryLowAndNotCharging, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isVisible, boolean hasLowBitAmbient, boolean hasBurnInProtection, long analogPreviewReferenceTimeMillis, long digitalPreviewReferenceTimeMillis, @Px int chinHeight, boolean isHeadless, kotlinx.coroutines.flow.StateFlow<java.lang.String> watchFaceInstanceId);
+ ctor @Deprecated public WatchState(kotlinx.coroutines.flow.StateFlow<java.lang.Integer> interruptionFilter, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isAmbient, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isBatteryLowAndNotCharging, kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isVisible, boolean hasLowBitAmbient, boolean hasBurnInProtection, long analogPreviewReferenceTimeMillis, long digitalPreviewReferenceTimeMillis, int chinHeight, boolean isHeadless);
+ method public long getAnalogPreviewReferenceTimeMillis();
+ method @Px public int getChinHeight();
+ method public long getDigitalPreviewReferenceTimeMillis();
+ method public boolean getHasBurnInProtection();
+ method public boolean getHasLowBitAmbient();
+ method public kotlinx.coroutines.flow.StateFlow<java.lang.Integer> getInterruptionFilter();
+ method public kotlinx.coroutines.flow.StateFlow<java.lang.String> getWatchFaceInstanceId();
+ method public kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isAmbient();
+ method public kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isBatteryLowAndNotCharging();
+ method public boolean isHeadless();
+ method public kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isVisible();
+ property public final long analogPreviewReferenceTimeMillis;
+ property @Px public final int chinHeight;
+ property public final long digitalPreviewReferenceTimeMillis;
+ property public final boolean hasBurnInProtection;
+ property public final boolean hasLowBitAmbient;
+ property public final kotlinx.coroutines.flow.StateFlow<java.lang.Integer> interruptionFilter;
+ property public final kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isAmbient;
+ property public final kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isBatteryLowAndNotCharging;
+ property public final boolean isHeadless;
+ property public final kotlinx.coroutines.flow.StateFlow<java.lang.Boolean> isVisible;
+ property public final kotlinx.coroutines.flow.StateFlow<java.lang.String> watchFaceInstanceId;
+ }
+
+}
+
diff --git a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/DocumentStartJavaScriptActivity.java b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/DocumentStartJavaScriptActivity.java
index 37fe4c6..dc199bd 100644
--- a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/DocumentStartJavaScriptActivity.java
+++ b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/DocumentStartJavaScriptActivity.java
@@ -44,6 +44,8 @@
* An {@link Activity} to exercise {@link WebViewCompat#addDocumentStartJavaScript(WebView, String,
* Set)} related functionality.
*/
+// TODO(swestphal): Remove the @SuppressLint after addDocumentStartJavaScript is unhidden.
+@SuppressLint("RestrictedApi")
public class DocumentStartJavaScriptActivity extends AppCompatActivity {
private final Uri mExampleUri = new Uri.Builder()
.scheme("https")
diff --git a/webkit/webkit/api/current.txt b/webkit/webkit/api/current.txt
index fa38e7f..c0537d9 100644
--- a/webkit/webkit/api/current.txt
+++ b/webkit/webkit/api/current.txt
@@ -45,10 +45,6 @@
method @RequiresFeature(name=androidx.webkit.WebViewFeature.SAFE_BROWSING_RESPONSE_SHOW_INTERSTITIAL, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void showInterstitial(boolean);
}
- public abstract class ScriptHandler {
- method @RequiresFeature(name=androidx.webkit.WebViewFeature.DOCUMENT_START_SCRIPT, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void remove();
- }
-
public abstract class ServiceWorkerClientCompat {
ctor public ServiceWorkerClientCompat();
method @WorkerThread public abstract android.webkit.WebResourceResponse? shouldInterceptRequest(android.webkit.WebResourceRequest);
@@ -193,7 +189,6 @@
}
public class WebViewCompat {
- method @RequiresFeature(name=androidx.webkit.WebViewFeature.DOCUMENT_START_SCRIPT, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static androidx.webkit.ScriptHandler addDocumentStartJavaScript(android.webkit.WebView, String, java.util.Set<java.lang.String!>);
method @RequiresFeature(name=androidx.webkit.WebViewFeature.WEB_MESSAGE_LISTENER, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static void addWebMessageListener(android.webkit.WebView, String, java.util.Set<java.lang.String!>, androidx.webkit.WebViewCompat.WebMessageListener);
method @RequiresFeature(name=androidx.webkit.WebViewFeature.CREATE_WEB_MESSAGE_CHANNEL, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static androidx.webkit.WebMessagePortCompat![] createWebMessageChannel(android.webkit.WebView);
method public static android.content.pm.PackageInfo? getCurrentWebViewPackage(android.content.Context);
@@ -227,7 +222,6 @@
field public static final String ALGORITHMIC_DARKENING = "ALGORITHMIC_DARKENING";
field public static final String CREATE_WEB_MESSAGE_CHANNEL = "CREATE_WEB_MESSAGE_CHANNEL";
field public static final String DISABLED_ACTION_MODE_MENU_ITEMS = "DISABLED_ACTION_MODE_MENU_ITEMS";
- field public static final String DOCUMENT_START_SCRIPT = "DOCUMENT_START_SCRIPT";
field public static final String FORCE_DARK = "FORCE_DARK";
field public static final String FORCE_DARK_STRATEGY = "FORCE_DARK_STRATEGY";
field public static final String GET_VARIATIONS_HEADER = "GET_VARIATIONS_HEADER";
diff --git a/webkit/webkit/api/public_plus_experimental_current.txt b/webkit/webkit/api/public_plus_experimental_current.txt
index fa38e7f..c0537d9 100644
--- a/webkit/webkit/api/public_plus_experimental_current.txt
+++ b/webkit/webkit/api/public_plus_experimental_current.txt
@@ -45,10 +45,6 @@
method @RequiresFeature(name=androidx.webkit.WebViewFeature.SAFE_BROWSING_RESPONSE_SHOW_INTERSTITIAL, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void showInterstitial(boolean);
}
- public abstract class ScriptHandler {
- method @RequiresFeature(name=androidx.webkit.WebViewFeature.DOCUMENT_START_SCRIPT, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void remove();
- }
-
public abstract class ServiceWorkerClientCompat {
ctor public ServiceWorkerClientCompat();
method @WorkerThread public abstract android.webkit.WebResourceResponse? shouldInterceptRequest(android.webkit.WebResourceRequest);
@@ -193,7 +189,6 @@
}
public class WebViewCompat {
- method @RequiresFeature(name=androidx.webkit.WebViewFeature.DOCUMENT_START_SCRIPT, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static androidx.webkit.ScriptHandler addDocumentStartJavaScript(android.webkit.WebView, String, java.util.Set<java.lang.String!>);
method @RequiresFeature(name=androidx.webkit.WebViewFeature.WEB_MESSAGE_LISTENER, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static void addWebMessageListener(android.webkit.WebView, String, java.util.Set<java.lang.String!>, androidx.webkit.WebViewCompat.WebMessageListener);
method @RequiresFeature(name=androidx.webkit.WebViewFeature.CREATE_WEB_MESSAGE_CHANNEL, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static androidx.webkit.WebMessagePortCompat![] createWebMessageChannel(android.webkit.WebView);
method public static android.content.pm.PackageInfo? getCurrentWebViewPackage(android.content.Context);
@@ -227,7 +222,6 @@
field public static final String ALGORITHMIC_DARKENING = "ALGORITHMIC_DARKENING";
field public static final String CREATE_WEB_MESSAGE_CHANNEL = "CREATE_WEB_MESSAGE_CHANNEL";
field public static final String DISABLED_ACTION_MODE_MENU_ITEMS = "DISABLED_ACTION_MODE_MENU_ITEMS";
- field public static final String DOCUMENT_START_SCRIPT = "DOCUMENT_START_SCRIPT";
field public static final String FORCE_DARK = "FORCE_DARK";
field public static final String FORCE_DARK_STRATEGY = "FORCE_DARK_STRATEGY";
field public static final String GET_VARIATIONS_HEADER = "GET_VARIATIONS_HEADER";
diff --git a/webkit/webkit/api/restricted_current.txt b/webkit/webkit/api/restricted_current.txt
index fa38e7f..c0537d9 100644
--- a/webkit/webkit/api/restricted_current.txt
+++ b/webkit/webkit/api/restricted_current.txt
@@ -45,10 +45,6 @@
method @RequiresFeature(name=androidx.webkit.WebViewFeature.SAFE_BROWSING_RESPONSE_SHOW_INTERSTITIAL, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void showInterstitial(boolean);
}
- public abstract class ScriptHandler {
- method @RequiresFeature(name=androidx.webkit.WebViewFeature.DOCUMENT_START_SCRIPT, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public abstract void remove();
- }
-
public abstract class ServiceWorkerClientCompat {
ctor public ServiceWorkerClientCompat();
method @WorkerThread public abstract android.webkit.WebResourceResponse? shouldInterceptRequest(android.webkit.WebResourceRequest);
@@ -193,7 +189,6 @@
}
public class WebViewCompat {
- method @RequiresFeature(name=androidx.webkit.WebViewFeature.DOCUMENT_START_SCRIPT, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static androidx.webkit.ScriptHandler addDocumentStartJavaScript(android.webkit.WebView, String, java.util.Set<java.lang.String!>);
method @RequiresFeature(name=androidx.webkit.WebViewFeature.WEB_MESSAGE_LISTENER, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static void addWebMessageListener(android.webkit.WebView, String, java.util.Set<java.lang.String!>, androidx.webkit.WebViewCompat.WebMessageListener);
method @RequiresFeature(name=androidx.webkit.WebViewFeature.CREATE_WEB_MESSAGE_CHANNEL, enforcement="androidx.webkit.WebViewFeature#isFeatureSupported") public static androidx.webkit.WebMessagePortCompat![] createWebMessageChannel(android.webkit.WebView);
method public static android.content.pm.PackageInfo? getCurrentWebViewPackage(android.content.Context);
@@ -227,7 +222,6 @@
field public static final String ALGORITHMIC_DARKENING = "ALGORITHMIC_DARKENING";
field public static final String CREATE_WEB_MESSAGE_CHANNEL = "CREATE_WEB_MESSAGE_CHANNEL";
field public static final String DISABLED_ACTION_MODE_MENU_ITEMS = "DISABLED_ACTION_MODE_MENU_ITEMS";
- field public static final String DOCUMENT_START_SCRIPT = "DOCUMENT_START_SCRIPT";
field public static final String FORCE_DARK = "FORCE_DARK";
field public static final String FORCE_DARK_STRATEGY = "FORCE_DARK_STRATEGY";
field public static final String GET_VARIATIONS_HEADER = "GET_VARIATIONS_HEADER";
diff --git a/webkit/webkit/src/main/java/androidx/webkit/ScriptHandler.java b/webkit/webkit/src/main/java/androidx/webkit/ScriptHandler.java
index db7447e..2aac172 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/ScriptHandler.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/ScriptHandler.java
@@ -25,7 +25,11 @@
* corresponding JavaScript script should be removed.
*
* @see WebViewCompat#addDocumentStartJavaScript(android.webkit.WebView, String, Set)
+ *
+ * TODO(swestphal): unhide when ready.
+ * @hide
*/
+@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
public abstract class ScriptHandler {
/**
* Removes the corresponding script, it will take effect from next page load.
diff --git a/webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java b/webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java
index 814b9d7..8073dfa 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java
@@ -31,6 +31,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresFeature;
+import androidx.annotation.RestrictTo;
import androidx.annotation.UiThread;
import androidx.webkit.internal.WebMessagePortImpl;
import androidx.webkit.internal.WebViewFeatureInternal;
@@ -724,7 +725,11 @@
* @throws IllegalArgumentException If one of the {@code allowedOriginRules} is invalid.
* @see #addWebMessageListener(WebView, String, Set, WebMessageListener)
* @see ScriptHandler
+ *
+ * TODO(swestphal): unhide when ready.
+ * @hide
*/
+ @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
@RequiresFeature(
name = WebViewFeature.DOCUMENT_START_SCRIPT,
enforcement = "androidx.webkit.WebViewFeature#isFeatureSupported")
diff --git a/webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java b/webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
index 1eef16b..5de5148 100644
--- a/webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
+++ b/webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
@@ -460,7 +460,11 @@
* Feature for {@link #isFeatureSupported(String)}.
* This feature covers {@link WebViewCompat#addDocumentStartJavaScript(android.webkit.WebView,
* String, Set)}.
+ *
+ * TODO(swestphal): unhide when ready.
+ * @hide
*/
+ @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
public static final String DOCUMENT_START_SCRIPT = "DOCUMENT_START_SCRIPT";
/**