Merge "Ensure test assertions are run before test completes." into androidx-master-dev
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeCustomConfigurationContextTestCase.kt b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeCustomConfigurationContextTestCase.kt
index df6d2bc..9c05ff0 100644
--- a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeCustomConfigurationContextTestCase.kt
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeCustomConfigurationContextTestCase.kt
@@ -16,19 +16,15 @@
package androidx.appcompat.app
-import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_NO
import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES
import androidx.appcompat.app.NightModeCustomConfigurationActivity.CUSTOM_FONT_SCALE
import androidx.appcompat.app.NightModeCustomConfigurationActivity.CUSTOM_LOCALE
+import androidx.appcompat.testutils.NightModeActivityTestRule
import androidx.appcompat.testutils.NightModeUtils.NightSetMode
-import androidx.appcompat.testutils.NightModeUtils.setNightModeAndWait
import androidx.appcompat.testutils.NightModeUtils.setNightModeAndWaitForRecreate
import androidx.test.filters.LargeTest
import androidx.test.filters.SdkSuppress
-import androidx.test.rule.ActivityTestRule
-import org.junit.After
import org.junit.Assert.assertEquals
-import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@@ -40,23 +36,7 @@
class NightModeCustomConfigurationContextTestCase(private val setMode: NightSetMode) {
@get:Rule
- val activityRule = ActivityTestRule(
- NightModeCustomConfigurationActivity::class.java,
- false,
- false
- )
-
- @Before
- fun setup() {
- // By default we'll set the night mode to NO, which allows us to make better
- // assumptions in the test below.
- activityRule.runOnUiThread {
- AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_NO)
- }
-
- // Launch the test activity
- activityRule.launchActivity(null)
- }
+ val activityRule = NightModeActivityTestRule(NightModeCustomConfigurationActivity::class.java)
@Test
@Suppress("DEPRECATION")
@@ -94,18 +74,6 @@
assertEquals(CUSTOM_FONT_SCALE, config.fontScale)
}
- @After
- fun cleanup() {
- activityRule.finishActivity()
-
- // Reset the default night mode
- setNightModeAndWait(
- activityRule,
- MODE_NIGHT_NO,
- NightSetMode.DEFAULT
- )
- }
-
companion object {
@JvmStatic
@Parameterized.Parameters
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeLateOnCreateTestCase.kt b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeLateOnCreateTestCase.kt
index b974a82..736520b 100644
--- a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeLateOnCreateTestCase.kt
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeLateOnCreateTestCase.kt
@@ -17,15 +17,14 @@
package androidx.appcompat.app
import android.content.res.Configuration
+import androidx.appcompat.testutils.NightModeActivityTestRule
import androidx.appcompat.testutils.NightModeUtils
import androidx.appcompat.testutils.NightModeUtils.assertConfigurationNightModeEquals
import androidx.appcompat.testutils.NightModeUtils.setNightModeAndWaitForRecreate
import androidx.lifecycle.Lifecycle
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.LargeTest
-import androidx.test.rule.ActivityTestRule
-import androidx.testutils.LifecycleOwnerUtils
-import org.junit.Before
+import androidx.testutils.LifecycleOwnerUtils.waitUntilState
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@@ -33,26 +32,13 @@
@LargeTest
@RunWith(AndroidJUnit4::class)
class NightModeLateOnCreateTestCase {
-
@get:Rule
- val activityRule = ActivityTestRule(NightModeLateOnCreateActivity::class.java, false, false)
-
- @Before
- @Throws(Throwable::class)
- fun setup() {
- // By default we'll set the night mode to NO, which allows us to make better
- // assumptions in the test below.
- activityRule.runOnUiThread {
- AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
- }
- }
+ val activityRule = NightModeActivityTestRule(NightModeLateOnCreateActivity::class.java)
@Test
fun testActivityRecreateLoop() {
- activityRule.launchActivity(null)
-
// Activity should be able to reach fully resumed state in default NIGHT_NO.
- LifecycleOwnerUtils.waitUntilState(activityRule, Lifecycle.State.RESUMED)
+ waitUntilState(activityRule.activity, Lifecycle.State.RESUMED)
assertConfigurationNightModeEquals(
Configuration.UI_MODE_NIGHT_NO,
activityRule.activity.resources.configuration
@@ -66,7 +52,7 @@
)
// Activity should be able to reach fully resumed state again.
- LifecycleOwnerUtils.waitUntilState(activityRule, Lifecycle.State.RESUMED)
+ waitUntilState(activityRule.activity, Lifecycle.State.RESUMED)
// The request night mode value should have been set during attachBaseContext().
assertConfigurationNightModeEquals(
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeLocalOnlyTestCase.kt b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeLocalOnlyTestCase.kt
new file mode 100644
index 0000000..d5b3dc4
--- /dev/null
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeLocalOnlyTestCase.kt
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2019 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.appcompat.app
+
+import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES
+import androidx.appcompat.test.R
+import androidx.appcompat.testutils.NightModeActivityTestRule
+import androidx.appcompat.testutils.NightModeUtils.NightSetMode
+import androidx.appcompat.testutils.NightModeUtils.setNightModeAndWaitForRecreate
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.assertion.ViewAssertions.matches
+import androidx.test.espresso.matcher.ViewMatchers.withId
+import androidx.test.espresso.matcher.ViewMatchers.withText
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import androidx.test.filters.LargeTest
+import org.junit.Assert.assertEquals
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@LargeTest
+@RunWith(AndroidJUnit4::class)
+class NightModeLocalOnlyTestCase {
+ @get:Rule
+ val rule = NightModeActivityTestRule(NightModeActivity::class.java)
+
+ @Test
+ fun testLocalDayNightModeRecreatesActivity() {
+ // Verify first that we're in day mode
+ onView(withId(R.id.text_night_mode)).check(matches(withText(STRING_DAY)))
+
+ // Now force the local night mode to be yes (aka night mode)
+ setNightModeAndWaitForRecreate(rule, MODE_NIGHT_YES, NightSetMode.LOCAL)
+
+ // Assert that the new local night mode is returned
+ assertEquals(MODE_NIGHT_YES, rule.activity.delegate.localNightMode)
+
+ // Now check the text has changed, signifying that night resources are being used
+ onView(withId(R.id.text_night_mode)).check(matches(withText(STRING_NIGHT)))
+ }
+
+ companion object {
+ private const val STRING_DAY = "DAY"
+ private const val STRING_NIGHT = "NIGHT"
+ }
+}
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModePreventOverrideConfigTestCase.kt b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModePreventOverrideConfigTestCase.kt
index 5a7e146..075ff08 100644
--- a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModePreventOverrideConfigTestCase.kt
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModePreventOverrideConfigTestCase.kt
@@ -16,22 +16,15 @@
package androidx.appcompat.app
+import android.content.res.Configuration
import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES
+import androidx.appcompat.testutils.NightModeActivityTestRule
+import androidx.appcompat.testutils.NightModeUtils.NightSetMode
import androidx.appcompat.testutils.NightModeUtils.assertConfigurationNightModeEquals
import androidx.appcompat.testutils.NightModeUtils.setNightModeAndWaitForRecreate
-
-import android.content.res.Configuration
-import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_NO
-
-import androidx.appcompat.testutils.NightModeUtils.NightSetMode
-import androidx.appcompat.testutils.NightModeUtils.setNightModeAndWait
import androidx.lifecycle.Lifecycle
import androidx.test.filters.LargeTest
-import androidx.test.rule.ActivityTestRule
-import androidx.testutils.LifecycleOwnerUtils
-import org.junit.After
-
-import org.junit.Before
+import androidx.testutils.LifecycleOwnerUtils.waitUntilState
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@@ -40,30 +33,13 @@
@LargeTest
@RunWith(Parameterized::class)
class NightModePreventOverrideConfigTestCase(private val setMode: NightSetMode) {
-
@get:Rule
- val activityRule = ActivityTestRule(
- NightModePreventOverrideConfigActivity::class.java,
- false,
- false
- )
-
- @Before
- fun setup() {
- // By default we'll set the night mode to NO, which allows us to make better
- // assumptions in the test below.
- activityRule.runOnUiThread {
- AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_NO)
- }
-
- // Launch the test activity
- activityRule.launchActivity(null)
- }
+ val activityRule = NightModeActivityTestRule(NightModePreventOverrideConfigActivity::class.java)
@Test
fun testActivityRecreate() {
// Activity should be able to reach fully resumed state in default NIGHT_NO.
- LifecycleOwnerUtils.waitUntilState(activityRule, Lifecycle.State.RESUMED)
+ waitUntilState(activityRule.activity, Lifecycle.State.RESUMED)
assertConfigurationNightModeEquals(
Configuration.UI_MODE_NIGHT_NO,
activityRule.activity.resources.configuration
@@ -77,7 +53,7 @@
)
// Activity should be able to reach fully resumed state again.
- LifecycleOwnerUtils.waitUntilState(activityRule, Lifecycle.State.RESUMED)
+ waitUntilState(activityRule.activity, Lifecycle.State.RESUMED)
// The requested night mode value should have been set by
// updateResourcesConfigurationForNightMode().
@@ -87,19 +63,6 @@
)
}
- @After
- @Throws(Throwable::class)
- fun cleanup() {
- activityRule.finishActivity()
-
- // Reset the default night mode
- setNightModeAndWait(
- activityRule,
- MODE_NIGHT_NO,
- NightSetMode.DEFAULT
- )
- }
-
companion object {
@JvmStatic
@Parameterized.Parameters
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeRotateDoesNotRecreateActivityTestCase.kt b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeRotateDoesNotRecreateActivityTestCase.kt
index bd54923..39eb12e 100644
--- a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeRotateDoesNotRecreateActivityTestCase.kt
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeRotateDoesNotRecreateActivityTestCase.kt
@@ -17,28 +17,20 @@
package androidx.appcompat.app
import android.content.pm.ActivityInfo
-import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_NO
-import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES
-import androidx.appcompat.testutils.NightModeUtils.assertConfigurationNightModeEquals
-import androidx.appcompat.testutils.NightModeUtils.setNightModeAndWait
-import androidx.appcompat.testutils.NightModeUtils.setNightModeAndWaitForRecreate
-import androidx.appcompat.testutils.TestUtilsActions.rotateScreenOrientation
-import androidx.test.espresso.Espresso.onView
-import androidx.test.espresso.matcher.ViewMatchers.isRoot
-
-import org.junit.Assert.assertNotSame
-import org.junit.Assert.assertSame
-
import android.content.res.Configuration
import android.os.Build
-
+import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES
+import androidx.appcompat.testutils.NightModeActivityTestRule
import androidx.appcompat.testutils.NightModeUtils.NightSetMode
+import androidx.appcompat.testutils.NightModeUtils.assertConfigurationNightModeEquals
+import androidx.appcompat.testutils.NightModeUtils.setNightModeAndWaitForRecreate
+import androidx.appcompat.testutils.TestUtilsActions.rotateScreenOrientation
import androidx.appcompat.testutils.TestUtilsActions.setScreenOrientation
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.matcher.ViewMatchers.isRoot
import androidx.test.filters.LargeTest
-import androidx.test.rule.ActivityTestRule
-
-import org.junit.After
-import org.junit.Before
+import org.junit.Assert.assertNotSame
+import org.junit.Assert.assertSame
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@@ -47,25 +39,8 @@
@LargeTest
@RunWith(Parameterized::class)
class NightModeRotateDoesNotRecreateActivityTestCase(private val setMode: NightSetMode) {
-
@get:Rule
- val activityRule = ActivityTestRule(
- NightModeRotateDoesNotRecreateActivity::class.java,
- false,
- false
- )
-
- @Before
- fun setup() {
- // By default we'll set the night mode to NO, which allows us to make better
- // assumptions in the test below.
- activityRule.runOnUiThread {
- AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_NO)
- }
-
- // Launch the test activity
- activityRule.launchActivity(null)
- }
+ val activityRule = NightModeActivityTestRule(NightModeRotateDoesNotRecreateActivity::class.java)
@Test
fun testRotateDoesNotRecreateActivity() {
@@ -112,18 +87,6 @@
activity.expectOnConfigurationChange(5000)
}
- @After
- fun cleanup() {
- activityRule.finishActivity()
-
- // Reset the default night mode
- setNightModeAndWait(
- activityRule,
- MODE_NIGHT_NO,
- NightSetMode.DEFAULT
- )
- }
-
companion object {
@JvmStatic
@Parameterized.Parameters
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeRotateRecreatesActivityWithConfigTestCase.kt b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeRotateRecreatesActivityWithConfigTestCase.kt
index 29ce98f..584ca00 100644
--- a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeRotateRecreatesActivityWithConfigTestCase.kt
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeRotateRecreatesActivityWithConfigTestCase.kt
@@ -16,24 +16,17 @@
package androidx.appcompat.app
-import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_NO
-import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES
-import androidx.appcompat.testutils.NightModeUtils.assertConfigurationNightModeEquals
-import androidx.appcompat.testutils.NightModeUtils.setNightModeAndWait
-import androidx.appcompat.testutils.NightModeUtils.setNightModeAndWaitForRecreate
-
-import org.junit.Assert.assertNotSame
-
import android.content.res.Configuration
import android.os.Build
-
-import androidx.appcompat.testutils.NightModeUtils
+import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES
+import androidx.appcompat.testutils.NightModeActivityTestRule
import androidx.appcompat.testutils.NightModeUtils.NightSetMode
+import androidx.appcompat.testutils.NightModeUtils.assertConfigurationNightModeEquals
+import androidx.appcompat.testutils.NightModeUtils.resetRotateAndWaitForRecreate
+import androidx.appcompat.testutils.NightModeUtils.rotateAndWaitForRecreate
+import androidx.appcompat.testutils.NightModeUtils.setNightModeAndWaitForRecreate
import androidx.test.filters.LargeTest
-import androidx.test.rule.ActivityTestRule
-
-import org.junit.After
-import org.junit.Before
+import org.junit.Assert.assertNotSame
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
@@ -42,26 +35,8 @@
@LargeTest
@RunWith(Parameterized::class)
class NightModeRotateRecreatesActivityWithConfigTestCase(private val setMode: NightSetMode) {
-
@get:Rule
- val activityRule = ActivityTestRule(
- // Use the basic DayNight-themed activity.
- NightModeActivity::class.java,
- false,
- false
- )
-
- @Before
- fun setup() {
- // By default we'll set the night mode to NO, which allows us to make better
- // assumptions in the test below.
- activityRule.runOnUiThread {
- AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_NO)
- }
-
- // Launch the test activity
- activityRule.launchActivity(null)
- }
+ val activityRule = NightModeActivityTestRule(NightModeActivity::class.java)
@Test
fun testRotateRecreatesActivityWithConfig() {
@@ -83,7 +58,7 @@
// Assert that the current Activity is 'dark'
assertConfigurationNightModeEquals(Configuration.UI_MODE_NIGHT_YES, config)
- NightModeUtils.rotateAndWaitForRecreate(activityRule)
+ rotateAndWaitForRecreate(activityRule.activity)
// Assert that we got a new activity.
val activity2 = activityRule.activity
@@ -95,19 +70,7 @@
assertConfigurationNightModeEquals(Configuration.UI_MODE_NIGHT_YES, config2)
// Reset the requested orientation and wait for it to apply.
- NightModeUtils.resetRotateAndWaitForRecreate(activityRule)
- }
-
- @After
- fun cleanup() {
- activityRule.finishActivity()
-
- // Reset the default night mode
- setNightModeAndWait(
- activityRule,
- MODE_NIGHT_NO,
- NightSetMode.DEFAULT
- )
+ resetRotateAndWaitForRecreate(activityRule.activity)
}
companion object {
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeTestCase.kt b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeTestCase.kt
index 72c81da..bb958fb 100644
--- a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeTestCase.kt
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/app/NightModeTestCase.kt
@@ -17,42 +17,36 @@
package androidx.appcompat.app
import android.content.Context
+import android.content.res.Configuration
+import android.location.LocationManager
+import android.webkit.WebView
import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM
import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_NO
import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES
+import androidx.appcompat.test.R
+import androidx.appcompat.testutils.NightModeActivityTestRule
+import androidx.appcompat.testutils.NightModeUtils.NightSetMode
import androidx.appcompat.testutils.NightModeUtils.assertConfigurationNightModeEquals
import androidx.appcompat.testutils.NightModeUtils.isSystemNightThemeEnabled
import androidx.appcompat.testutils.NightModeUtils.setNightModeAndWait
import androidx.appcompat.testutils.NightModeUtils.setNightModeAndWaitForRecreate
import androidx.appcompat.testutils.TestUtilsMatchers.isBackground
+import androidx.core.content.ContextCompat
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.espresso.matcher.ViewMatchers.withText
+import androidx.test.filters.LargeTest
+import androidx.test.platform.app.InstrumentationRegistry
import androidx.testutils.LifecycleOwnerUtils.waitForRecreation
-
+import androidx.testutils.waitForExecution
import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertNull
-
-import android.content.res.Configuration
-import android.location.LocationManager
-import android.webkit.WebView
-
-import androidx.appcompat.test.R
-import androidx.appcompat.testutils.NightModeUtils.NightSetMode
-import androidx.core.content.ContextCompat
-import androidx.test.filters.LargeTest
-import androidx.test.platform.app.InstrumentationRegistry
-import androidx.test.rule.ActivityTestRule
-
-import org.junit.After
-import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.junit.runners.Parameterized
-
import java.util.concurrent.CountDownLatch
@Suppress("DEPRECATION")
@@ -60,36 +54,7 @@
@RunWith(Parameterized::class)
class NightModeTestCase(private val setMode: NightSetMode) {
@get:Rule
- val rule = ActivityTestRule(NightModeActivity::class.java, false, false)
-
- @Before
- fun setup() {
- // By default we'll set the night mode to NO, which allows us to make better
- // assumptions in the test below
- AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_NO)
- // Now launch the test activity
- rule.launchActivity(null)
- }
-
- @Test
- fun testLocalDayNightModeRecreatesActivity() {
- if (setMode != NightSetMode.LOCAL) {
- // This test is only applicable when using setLocalNightMode
- return
- }
-
- // Verify first that we're in day mode
- onView(withId(R.id.text_night_mode)).check(matches(withText(STRING_DAY)))
-
- // Now force the local night mode to be yes (aka night mode)
- setNightModeAndWaitForRecreate(rule, MODE_NIGHT_YES, setMode)
-
- // Assert that the new local night mode is returned
- assertEquals(MODE_NIGHT_YES, rule.activity.delegate.localNightMode)
-
- // Now check the text has changed, signifying that night resources are being used
- onView(withId(R.id.text_night_mode)).check(matches(withText(STRING_NIGHT)))
- }
+ val rule = NightModeActivityTestRule(NightModeActivity::class.java)
@Test
fun testSwitchingYesDoesNotAffectApplication() {
@@ -234,9 +199,14 @@
assertConfigurationNightModeEquals(Configuration.UI_MODE_NIGHT_YES, rule.activity)
// Now show a AppCompatDialog
+ lateinit var dialog: AppCompatDialog
rule.runOnUiThread {
- AppCompatDialog(rule.activity).show()
+ dialog = AppCompatDialog(rule.activity)
+ dialog.show()
}
+ rule.waitForExecution()
+ // Now dismiss the dialog
+ rule.runOnUiThread { dialog.dismiss() }
// Assert that the uiMode is unchanged
assertConfigurationNightModeEquals(Configuration.UI_MODE_NIGHT_YES, rule.activity)
@@ -244,9 +214,11 @@
@Test
fun testLoadingWebViewMaintainsConfiguration() {
+ // Assert that the context has a non-night themed configuration
+ assertConfigurationNightModeEquals(Configuration.UI_MODE_NIGHT_NO, rule.activity)
+
// Set night mode and wait for the new Activity
setNightModeAndWaitForRecreate(rule, MODE_NIGHT_YES, setMode)
-
// Assert that the context still has a night themed configuration
assertConfigurationNightModeEquals(Configuration.UI_MODE_NIGHT_YES, rule.activity)
@@ -258,21 +230,19 @@
}
@Test
- fun testDialogCleansUpAutoMode() {
- rule.runOnUiThread {
- val dialog = AppCompatDialog(rule.activity)
- val delegate = dialog.delegate as AppCompatDelegateImpl
+ fun testDialogCleansUpAutoMode() = rule.runOnUiThread {
+ val dialog = AppCompatDialog(rule.activity)
+ val delegate = dialog.delegate as AppCompatDelegateImpl
- // Set the local night mode of the Dialog to be an AUTO mode
- delegate.localNightMode = AppCompatDelegate.MODE_NIGHT_AUTO_TIME
+ // Set the local night mode of the Dialog to be an AUTO mode
+ delegate.localNightMode = AppCompatDelegate.MODE_NIGHT_AUTO_TIME
- // Now show and dismiss the dialog
- dialog.show()
- dialog.dismiss()
+ // Now show and dismiss the dialog
+ dialog.show()
+ dialog.dismiss()
- // Assert that the auto manager is destroyed (not listening)
- assertFalse(delegate.autoTimeNightModeManager.isListening)
- }
+ // Assert that the auto manager is destroyed (not listening)
+ assertFalse(delegate.autoTimeNightModeManager.isListening)
}
@Test
@@ -290,13 +260,6 @@
assertNull(activity.lastConfigurationChangeAndClear)
}
- @After
- fun cleanup() {
- rule.finishActivity()
- // Reset the default night mode
- setNightModeAndWait(rule, MODE_NIGHT_NO, NightSetMode.DEFAULT)
- }
-
private class FakeTwilightManager(context: Context) : TwilightManager(
context,
ContextCompat.getSystemService(context, LocationManager::class.java)!!
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/testutils/NightModeActivityTestRule.kt b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/testutils/NightModeActivityTestRule.kt
new file mode 100644
index 0000000..4b97605
--- /dev/null
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/testutils/NightModeActivityTestRule.kt
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2019 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.appcompat.testutils
+
+import androidx.appcompat.app.AppCompatActivity
+import androidx.appcompat.app.AppCompatDelegate
+import androidx.test.rule.ActivityTestRule
+
+class NightModeActivityTestRule<T : AppCompatActivity>(
+ activityClazz: Class<T>,
+ initialTouchMode: Boolean = false,
+ launchActivity: Boolean = true
+) : ActivityTestRule<T>(activityClazz, initialTouchMode, launchActivity) {
+ override fun beforeActivityLaunched() {
+ // By default we'll set the night mode to NO, which allows us to make better
+ // assumptions in the test below
+ runOnUiThread {
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
+ }
+ }
+
+ override fun afterActivityFinished() {
+ // Reset the default night mode
+ runOnUiThread {
+ AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
+ }
+ }
+}
\ No newline at end of file
diff --git a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/testutils/NightModeUtils.kt b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/testutils/NightModeUtils.kt
index c3f7a31..c24369a 100644
--- a/appcompat/appcompat/src/androidTest/java/androidx/appcompat/testutils/NightModeUtils.kt
+++ b/appcompat/appcompat/src/androidTest/java/androidx/appcompat/testutils/NightModeUtils.kt
@@ -16,8 +16,6 @@
package androidx.appcompat.testutils
-import org.junit.Assert.assertEquals
-
import android.app.UiModeManager
import android.content.Context
import android.content.pm.ActivityInfo
@@ -30,6 +28,7 @@
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.rule.ActivityTestRule
import androidx.testutils.LifecycleOwnerUtils
+import org.junit.Assert.assertEquals
object NightModeUtils {
private const val LOG_TAG = "NightModeUtils"
@@ -95,9 +94,13 @@
activityRule: ActivityTestRule<T>,
@NightMode nightMode: Int,
setMode: NightSetMode
- ) {
- val activity = activityRule.activity
+ ): T = setNightModeAndWaitForRecreate(activityRule.activity, nightMode, setMode)
+ fun <T : AppCompatActivity> setNightModeAndWaitForRecreate(
+ activity: T,
+ @NightMode nightMode: Int,
+ setMode: NightSetMode
+ ): T {
Log.d(
LOG_TAG, "setNightModeAndWaitForRecreate on Activity: " + activity +
" to mode: " + nightMode +
@@ -105,23 +108,20 @@
)
// Wait for the Activity to be resumed and visible
- LifecycleOwnerUtils.waitUntilState(activity, activityRule, Lifecycle.State.RESUMED)
+ LifecycleOwnerUtils.waitUntilState(activity, Lifecycle.State.RESUMED)
// Now perform night mode change wait for the Activity to be recreated
- LifecycleOwnerUtils.waitForRecreation(activity, activityRule) {
+ return LifecycleOwnerUtils.waitForRecreation(activity) {
setNightMode(nightMode, activity, setMode)
}
}
- fun <T : AppCompatActivity> rotateAndWaitForRecreate(
- activityRule: ActivityTestRule<T>
- ) {
+ fun <T : AppCompatActivity> rotateAndWaitForRecreate(activity: T): T {
Log.e(LOG_TAG, "request rotate")
- val activity = activityRule.activity
- LifecycleOwnerUtils.waitUntilState(activity, activityRule, Lifecycle.State.RESUMED)
+ LifecycleOwnerUtils.waitUntilState(activity, Lifecycle.State.RESUMED)
// Now perform rotation and wait for the Activity to be recreated
- LifecycleOwnerUtils.waitForRecreation(activity, activityRule) {
+ return LifecycleOwnerUtils.waitForRecreation(activity) {
Log.e(LOG_TAG, "request rotate on ui thread")
if (activity.resources.configuration.orientation ==
Configuration.ORIENTATION_LANDSCAPE) {
@@ -133,13 +133,10 @@
}
}
- fun <T : AppCompatActivity> resetRotateAndWaitForRecreate(
- activityRule: ActivityTestRule<T>
- ) {
- val activity = activityRule.activity
- LifecycleOwnerUtils.waitUntilState(activity, activityRule, Lifecycle.State.RESUMED)
+ fun <T : AppCompatActivity> resetRotateAndWaitForRecreate(activity: T) {
+ LifecycleOwnerUtils.waitUntilState(activity, Lifecycle.State.RESUMED)
- LifecycleOwnerUtils.waitForRecreation(activity, activityRule) {
+ LifecycleOwnerUtils.waitForRecreation(activity) {
activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
}
}
@@ -153,11 +150,8 @@
@NightMode nightMode: Int,
activity: AppCompatActivity?,
setMode: NightSetMode
- ) {
- if (setMode == NightSetMode.DEFAULT) {
- AppCompatDelegate.setDefaultNightMode(nightMode)
- } else {
- activity!!.delegate.localNightMode = nightMode
- }
+ ) = when (setMode) {
+ NightSetMode.DEFAULT -> AppCompatDelegate.setDefaultNightMode(nightMode)
+ NightSetMode.LOCAL -> activity!!.delegate.localNightMode = nightMode
}
}
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java b/appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java
index 6d462f1..c869e11 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDelegateImpl.java
@@ -129,8 +129,7 @@
class AppCompatDelegateImpl extends AppCompatDelegate
implements MenuBuilder.Callback, LayoutInflater.Factory2 {
- private static final SimpleArrayMap<Class<?>, Integer> sLocalNightModes =
- new SimpleArrayMap<>();
+ private static final SimpleArrayMap<String, Integer> sLocalNightModes = new SimpleArrayMap<>();
private static final boolean DEBUG = false;
private static final boolean IS_PRE_LOLLIPOP = Build.VERSION.SDK_INT < 21;
@@ -139,13 +138,12 @@
/**
* AppCompat selectively uses an override configuration for DayNight functionality.
- * Unfortunately the framework has a few issues around Resources instances on SDKs 21-25,
+ * Unfortunately the framework has a few issues around Resources instances,
* resulting in the root Resources instance (i.e. Application) being modified when it
* shouldn't be. We can work around it by always calling using an override configuration
* where available, to force a local resources instance being used.
*/
- private static final boolean sAlwaysOverrideConfiguration = Build.VERSION.SDK_INT >= 21
- && Build.VERSION.SDK_INT <= 25;
+ private static final boolean sAlwaysOverrideConfiguration = true;
private static boolean sInstalledExceptionHandler;
@@ -312,11 +310,11 @@
}
if (mLocalNightMode == MODE_NIGHT_UNSPECIFIED) {
// Try and read the current night mode from our static store
- final Integer value = sLocalNightModes.get(mHost.getClass());
+ final Integer value = sLocalNightModes.get(mHost.getClass().getName());
if (value != null) {
mLocalNightMode = value;
// Finally remove the value
- sLocalNightModes.remove(mHost.getClass());
+ sLocalNightModes.remove(mHost.getClass().getName());
}
}
@@ -366,6 +364,10 @@
final int newNightMode = config.uiMode & Configuration.UI_MODE_NIGHT_MASK;
if (sAlwaysOverrideConfiguration || currentNightMode != newNightMode) {
+ if (DEBUG) {
+ Log.d(TAG, String.format("Applying night mode using "
+ + "createConfigurationContext(). Config: %s", config.toString()));
+ }
// If the target night mode is different to the new night mode, return a
// configuration context with the new config.
return super.attachBaseContext2(baseContext.createConfigurationContext(config));
@@ -563,12 +565,6 @@
if (ab != null) {
ab.setShowHideAnimationEnabled(false);
}
-
- if (mHost instanceof Dialog) {
- // If the host is a Dialog, we should clean up the Auto managers now. This is
- // because Dialogs do not have an onDestroy()
- cleanupAutoManagers();
- }
}
@Override
@@ -616,10 +612,6 @@
@Override
public void onSaveInstanceState(Bundle outState) {
- if (mLocalNightMode != MODE_NIGHT_UNSPECIFIED) {
- // If we have a local night mode set, save it
- sLocalNightModes.put(mHost.getClass(), mLocalNightMode);
- }
}
@Override
@@ -634,6 +626,15 @@
mStarted = false;
mIsDestroyed = true;
+ if (mLocalNightMode != MODE_NIGHT_UNSPECIFIED
+ && mHost instanceof Activity
+ && ((Activity) mHost).isChangingConfigurations()) {
+ // If we have a local night mode set, save it
+ sLocalNightModes.put(mHost.getClass().getName(), mLocalNightMode);
+ } else {
+ sLocalNightModes.remove(mHost.getClass().getName());
+ }
+
if (mActionBar != null) {
mActionBar.onDestroy();
}
diff --git a/appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDialog.java b/appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDialog.java
index 865d6f5..d40a697 100644
--- a/appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDialog.java
+++ b/appcompat/appcompat/src/main/java/androidx/appcompat/app/AppCompatDialog.java
@@ -135,6 +135,13 @@
getDelegate().onStop();
}
+ @Override
+ public void dismiss() {
+ super.dismiss();
+ // There is no onDestroy in Dialog, so we simulate it from dismiss()
+ getDelegate().onDestroy();
+ }
+
/**
* Enable extended support library window features.
* <p>
diff --git a/biometric/build.gradle b/biometric/build.gradle
index ff616ea..381bc39 100644
--- a/biometric/build.gradle
+++ b/biometric/build.gradle
@@ -32,10 +32,6 @@
}
android {
- sourceSets {
- main.res.srcDirs 'res'
- }
-
aaptOptions {
noCompress 'ttf'
}
diff --git a/biometric/res/color-v26/biometric_error_color.xml b/biometric/src/main/res/color-v26/biometric_error_color.xml
similarity index 100%
rename from biometric/res/color-v26/biometric_error_color.xml
rename to biometric/src/main/res/color-v26/biometric_error_color.xml
diff --git a/biometric/res/drawable-v23/fingerprint_dialog_error_to_fp.xml b/biometric/src/main/res/drawable-v23/fingerprint_dialog_error_to_fp.xml
similarity index 100%
rename from biometric/res/drawable-v23/fingerprint_dialog_error_to_fp.xml
rename to biometric/src/main/res/drawable-v23/fingerprint_dialog_error_to_fp.xml
diff --git a/biometric/res/drawable-v23/fingerprint_dialog_fp_to_error.xml b/biometric/src/main/res/drawable-v23/fingerprint_dialog_fp_to_error.xml
similarity index 100%
rename from biometric/res/drawable-v23/fingerprint_dialog_fp_to_error.xml
rename to biometric/src/main/res/drawable-v23/fingerprint_dialog_fp_to_error.xml
diff --git a/biometric/res/layout/device_credential_handler_activity.xml b/biometric/src/main/res/layout/device_credential_handler_activity.xml
similarity index 100%
rename from biometric/res/layout/device_credential_handler_activity.xml
rename to biometric/src/main/res/layout/device_credential_handler_activity.xml
diff --git a/biometric/res/layout/fingerprint_dialog_layout.xml b/biometric/src/main/res/layout/fingerprint_dialog_layout.xml
similarity index 100%
rename from biometric/res/layout/fingerprint_dialog_layout.xml
rename to biometric/src/main/res/layout/fingerprint_dialog_layout.xml
diff --git a/biometric/res/values-af/strings.xml b/biometric/src/main/res/values-af/strings.xml
similarity index 100%
rename from biometric/res/values-af/strings.xml
rename to biometric/src/main/res/values-af/strings.xml
diff --git a/biometric/res/values-am/strings.xml b/biometric/src/main/res/values-am/strings.xml
similarity index 100%
rename from biometric/res/values-am/strings.xml
rename to biometric/src/main/res/values-am/strings.xml
diff --git a/biometric/res/values-ar/strings.xml b/biometric/src/main/res/values-ar/strings.xml
similarity index 100%
rename from biometric/res/values-ar/strings.xml
rename to biometric/src/main/res/values-ar/strings.xml
diff --git a/biometric/res/values-as/strings.xml b/biometric/src/main/res/values-as/strings.xml
similarity index 100%
rename from biometric/res/values-as/strings.xml
rename to biometric/src/main/res/values-as/strings.xml
diff --git a/biometric/res/values-az/strings.xml b/biometric/src/main/res/values-az/strings.xml
similarity index 100%
rename from biometric/res/values-az/strings.xml
rename to biometric/src/main/res/values-az/strings.xml
diff --git a/biometric/res/values-b+sr+Latn/strings.xml b/biometric/src/main/res/values-b+sr+Latn/strings.xml
similarity index 100%
rename from biometric/res/values-b+sr+Latn/strings.xml
rename to biometric/src/main/res/values-b+sr+Latn/strings.xml
diff --git a/biometric/res/values-be/strings.xml b/biometric/src/main/res/values-be/strings.xml
similarity index 100%
rename from biometric/res/values-be/strings.xml
rename to biometric/src/main/res/values-be/strings.xml
diff --git a/biometric/res/values-bg/strings.xml b/biometric/src/main/res/values-bg/strings.xml
similarity index 100%
rename from biometric/res/values-bg/strings.xml
rename to biometric/src/main/res/values-bg/strings.xml
diff --git a/biometric/res/values-bn/strings.xml b/biometric/src/main/res/values-bn/strings.xml
similarity index 100%
rename from biometric/res/values-bn/strings.xml
rename to biometric/src/main/res/values-bn/strings.xml
diff --git a/biometric/res/values-bs/strings.xml b/biometric/src/main/res/values-bs/strings.xml
similarity index 100%
rename from biometric/res/values-bs/strings.xml
rename to biometric/src/main/res/values-bs/strings.xml
diff --git a/biometric/res/values-ca/strings.xml b/biometric/src/main/res/values-ca/strings.xml
similarity index 100%
rename from biometric/res/values-ca/strings.xml
rename to biometric/src/main/res/values-ca/strings.xml
diff --git a/biometric/res/values-cs/strings.xml b/biometric/src/main/res/values-cs/strings.xml
similarity index 100%
rename from biometric/res/values-cs/strings.xml
rename to biometric/src/main/res/values-cs/strings.xml
diff --git a/biometric/res/values-da/strings.xml b/biometric/src/main/res/values-da/strings.xml
similarity index 100%
rename from biometric/res/values-da/strings.xml
rename to biometric/src/main/res/values-da/strings.xml
diff --git a/biometric/res/values-de/strings.xml b/biometric/src/main/res/values-de/strings.xml
similarity index 100%
rename from biometric/res/values-de/strings.xml
rename to biometric/src/main/res/values-de/strings.xml
diff --git a/biometric/res/values-el/strings.xml b/biometric/src/main/res/values-el/strings.xml
similarity index 100%
rename from biometric/res/values-el/strings.xml
rename to biometric/src/main/res/values-el/strings.xml
diff --git a/biometric/res/values-en-rAU/strings.xml b/biometric/src/main/res/values-en-rAU/strings.xml
similarity index 100%
rename from biometric/res/values-en-rAU/strings.xml
rename to biometric/src/main/res/values-en-rAU/strings.xml
diff --git a/biometric/res/values-en-rCA/strings.xml b/biometric/src/main/res/values-en-rCA/strings.xml
similarity index 100%
rename from biometric/res/values-en-rCA/strings.xml
rename to biometric/src/main/res/values-en-rCA/strings.xml
diff --git a/biometric/res/values-en-rGB/strings.xml b/biometric/src/main/res/values-en-rGB/strings.xml
similarity index 100%
rename from biometric/res/values-en-rGB/strings.xml
rename to biometric/src/main/res/values-en-rGB/strings.xml
diff --git a/biometric/res/values-en-rIN/strings.xml b/biometric/src/main/res/values-en-rIN/strings.xml
similarity index 100%
rename from biometric/res/values-en-rIN/strings.xml
rename to biometric/src/main/res/values-en-rIN/strings.xml
diff --git a/biometric/res/values-en-rXC/strings.xml b/biometric/src/main/res/values-en-rXC/strings.xml
similarity index 100%
rename from biometric/res/values-en-rXC/strings.xml
rename to biometric/src/main/res/values-en-rXC/strings.xml
diff --git a/biometric/res/values-es-rUS/strings.xml b/biometric/src/main/res/values-es-rUS/strings.xml
similarity index 100%
rename from biometric/res/values-es-rUS/strings.xml
rename to biometric/src/main/res/values-es-rUS/strings.xml
diff --git a/biometric/res/values-es/strings.xml b/biometric/src/main/res/values-es/strings.xml
similarity index 100%
rename from biometric/res/values-es/strings.xml
rename to biometric/src/main/res/values-es/strings.xml
diff --git a/biometric/res/values-et/strings.xml b/biometric/src/main/res/values-et/strings.xml
similarity index 100%
rename from biometric/res/values-et/strings.xml
rename to biometric/src/main/res/values-et/strings.xml
diff --git a/biometric/res/values-eu/strings.xml b/biometric/src/main/res/values-eu/strings.xml
similarity index 100%
rename from biometric/res/values-eu/strings.xml
rename to biometric/src/main/res/values-eu/strings.xml
diff --git a/biometric/res/values-fa/strings.xml b/biometric/src/main/res/values-fa/strings.xml
similarity index 100%
rename from biometric/res/values-fa/strings.xml
rename to biometric/src/main/res/values-fa/strings.xml
diff --git a/biometric/res/values-fi/strings.xml b/biometric/src/main/res/values-fi/strings.xml
similarity index 100%
rename from biometric/res/values-fi/strings.xml
rename to biometric/src/main/res/values-fi/strings.xml
diff --git a/biometric/res/values-fr-rCA/strings.xml b/biometric/src/main/res/values-fr-rCA/strings.xml
similarity index 100%
rename from biometric/res/values-fr-rCA/strings.xml
rename to biometric/src/main/res/values-fr-rCA/strings.xml
diff --git a/biometric/res/values-fr/strings.xml b/biometric/src/main/res/values-fr/strings.xml
similarity index 100%
rename from biometric/res/values-fr/strings.xml
rename to biometric/src/main/res/values-fr/strings.xml
diff --git a/biometric/res/values-gl/strings.xml b/biometric/src/main/res/values-gl/strings.xml
similarity index 100%
rename from biometric/res/values-gl/strings.xml
rename to biometric/src/main/res/values-gl/strings.xml
diff --git a/biometric/res/values-gu/strings.xml b/biometric/src/main/res/values-gu/strings.xml
similarity index 100%
rename from biometric/res/values-gu/strings.xml
rename to biometric/src/main/res/values-gu/strings.xml
diff --git a/biometric/res/values-hi/strings.xml b/biometric/src/main/res/values-hi/strings.xml
similarity index 100%
rename from biometric/res/values-hi/strings.xml
rename to biometric/src/main/res/values-hi/strings.xml
diff --git a/biometric/res/values-hr/strings.xml b/biometric/src/main/res/values-hr/strings.xml
similarity index 100%
rename from biometric/res/values-hr/strings.xml
rename to biometric/src/main/res/values-hr/strings.xml
diff --git a/biometric/res/values-hu/strings.xml b/biometric/src/main/res/values-hu/strings.xml
similarity index 100%
rename from biometric/res/values-hu/strings.xml
rename to biometric/src/main/res/values-hu/strings.xml
diff --git a/biometric/res/values-hy/strings.xml b/biometric/src/main/res/values-hy/strings.xml
similarity index 100%
rename from biometric/res/values-hy/strings.xml
rename to biometric/src/main/res/values-hy/strings.xml
diff --git a/biometric/res/values-in/strings.xml b/biometric/src/main/res/values-in/strings.xml
similarity index 100%
rename from biometric/res/values-in/strings.xml
rename to biometric/src/main/res/values-in/strings.xml
diff --git a/biometric/res/values-is/strings.xml b/biometric/src/main/res/values-is/strings.xml
similarity index 100%
rename from biometric/res/values-is/strings.xml
rename to biometric/src/main/res/values-is/strings.xml
diff --git a/biometric/res/values-it/strings.xml b/biometric/src/main/res/values-it/strings.xml
similarity index 100%
rename from biometric/res/values-it/strings.xml
rename to biometric/src/main/res/values-it/strings.xml
diff --git a/biometric/res/values-iw/strings.xml b/biometric/src/main/res/values-iw/strings.xml
similarity index 100%
rename from biometric/res/values-iw/strings.xml
rename to biometric/src/main/res/values-iw/strings.xml
diff --git a/biometric/res/values-ja/strings.xml b/biometric/src/main/res/values-ja/strings.xml
similarity index 100%
rename from biometric/res/values-ja/strings.xml
rename to biometric/src/main/res/values-ja/strings.xml
diff --git a/biometric/res/values-ka/strings.xml b/biometric/src/main/res/values-ka/strings.xml
similarity index 100%
rename from biometric/res/values-ka/strings.xml
rename to biometric/src/main/res/values-ka/strings.xml
diff --git a/biometric/res/values-kk/strings.xml b/biometric/src/main/res/values-kk/strings.xml
similarity index 100%
rename from biometric/res/values-kk/strings.xml
rename to biometric/src/main/res/values-kk/strings.xml
diff --git a/biometric/res/values-km/strings.xml b/biometric/src/main/res/values-km/strings.xml
similarity index 100%
rename from biometric/res/values-km/strings.xml
rename to biometric/src/main/res/values-km/strings.xml
diff --git a/biometric/res/values-kn/strings.xml b/biometric/src/main/res/values-kn/strings.xml
similarity index 100%
rename from biometric/res/values-kn/strings.xml
rename to biometric/src/main/res/values-kn/strings.xml
diff --git a/biometric/res/values-ko/strings.xml b/biometric/src/main/res/values-ko/strings.xml
similarity index 100%
rename from biometric/res/values-ko/strings.xml
rename to biometric/src/main/res/values-ko/strings.xml
diff --git a/biometric/res/values-ky/strings.xml b/biometric/src/main/res/values-ky/strings.xml
similarity index 100%
rename from biometric/res/values-ky/strings.xml
rename to biometric/src/main/res/values-ky/strings.xml
diff --git a/biometric/res/values-lo/strings.xml b/biometric/src/main/res/values-lo/strings.xml
similarity index 100%
rename from biometric/res/values-lo/strings.xml
rename to biometric/src/main/res/values-lo/strings.xml
diff --git a/biometric/res/values-lt/strings.xml b/biometric/src/main/res/values-lt/strings.xml
similarity index 100%
rename from biometric/res/values-lt/strings.xml
rename to biometric/src/main/res/values-lt/strings.xml
diff --git a/biometric/res/values-lv/strings.xml b/biometric/src/main/res/values-lv/strings.xml
similarity index 100%
rename from biometric/res/values-lv/strings.xml
rename to biometric/src/main/res/values-lv/strings.xml
diff --git a/biometric/res/values-mk/strings.xml b/biometric/src/main/res/values-mk/strings.xml
similarity index 100%
rename from biometric/res/values-mk/strings.xml
rename to biometric/src/main/res/values-mk/strings.xml
diff --git a/biometric/res/values-ml/strings.xml b/biometric/src/main/res/values-ml/strings.xml
similarity index 100%
rename from biometric/res/values-ml/strings.xml
rename to biometric/src/main/res/values-ml/strings.xml
diff --git a/biometric/res/values-mn/strings.xml b/biometric/src/main/res/values-mn/strings.xml
similarity index 100%
rename from biometric/res/values-mn/strings.xml
rename to biometric/src/main/res/values-mn/strings.xml
diff --git a/biometric/res/values-mr/strings.xml b/biometric/src/main/res/values-mr/strings.xml
similarity index 100%
rename from biometric/res/values-mr/strings.xml
rename to biometric/src/main/res/values-mr/strings.xml
diff --git a/biometric/res/values-ms/strings.xml b/biometric/src/main/res/values-ms/strings.xml
similarity index 100%
rename from biometric/res/values-ms/strings.xml
rename to biometric/src/main/res/values-ms/strings.xml
diff --git a/biometric/res/values-my/strings.xml b/biometric/src/main/res/values-my/strings.xml
similarity index 100%
rename from biometric/res/values-my/strings.xml
rename to biometric/src/main/res/values-my/strings.xml
diff --git a/biometric/res/values-nb/strings.xml b/biometric/src/main/res/values-nb/strings.xml
similarity index 100%
rename from biometric/res/values-nb/strings.xml
rename to biometric/src/main/res/values-nb/strings.xml
diff --git a/biometric/res/values-ne/strings.xml b/biometric/src/main/res/values-ne/strings.xml
similarity index 100%
rename from biometric/res/values-ne/strings.xml
rename to biometric/src/main/res/values-ne/strings.xml
diff --git a/biometric/res/values-nl/strings.xml b/biometric/src/main/res/values-nl/strings.xml
similarity index 100%
rename from biometric/res/values-nl/strings.xml
rename to biometric/src/main/res/values-nl/strings.xml
diff --git a/biometric/res/values-or/strings.xml b/biometric/src/main/res/values-or/strings.xml
similarity index 100%
rename from biometric/res/values-or/strings.xml
rename to biometric/src/main/res/values-or/strings.xml
diff --git a/biometric/res/values-pa/strings.xml b/biometric/src/main/res/values-pa/strings.xml
similarity index 100%
rename from biometric/res/values-pa/strings.xml
rename to biometric/src/main/res/values-pa/strings.xml
diff --git a/biometric/res/values-pl/strings.xml b/biometric/src/main/res/values-pl/strings.xml
similarity index 100%
rename from biometric/res/values-pl/strings.xml
rename to biometric/src/main/res/values-pl/strings.xml
diff --git a/biometric/res/values-pt-rBR/strings.xml b/biometric/src/main/res/values-pt-rBR/strings.xml
similarity index 100%
rename from biometric/res/values-pt-rBR/strings.xml
rename to biometric/src/main/res/values-pt-rBR/strings.xml
diff --git a/biometric/res/values-pt-rPT/strings.xml b/biometric/src/main/res/values-pt-rPT/strings.xml
similarity index 100%
rename from biometric/res/values-pt-rPT/strings.xml
rename to biometric/src/main/res/values-pt-rPT/strings.xml
diff --git a/biometric/res/values-pt/strings.xml b/biometric/src/main/res/values-pt/strings.xml
similarity index 100%
rename from biometric/res/values-pt/strings.xml
rename to biometric/src/main/res/values-pt/strings.xml
diff --git a/biometric/res/values-ro/strings.xml b/biometric/src/main/res/values-ro/strings.xml
similarity index 100%
rename from biometric/res/values-ro/strings.xml
rename to biometric/src/main/res/values-ro/strings.xml
diff --git a/biometric/res/values-ru/strings.xml b/biometric/src/main/res/values-ru/strings.xml
similarity index 100%
rename from biometric/res/values-ru/strings.xml
rename to biometric/src/main/res/values-ru/strings.xml
diff --git a/biometric/res/values-si/strings.xml b/biometric/src/main/res/values-si/strings.xml
similarity index 100%
rename from biometric/res/values-si/strings.xml
rename to biometric/src/main/res/values-si/strings.xml
diff --git a/biometric/res/values-sk/strings.xml b/biometric/src/main/res/values-sk/strings.xml
similarity index 100%
rename from biometric/res/values-sk/strings.xml
rename to biometric/src/main/res/values-sk/strings.xml
diff --git a/biometric/res/values-sl/strings.xml b/biometric/src/main/res/values-sl/strings.xml
similarity index 100%
rename from biometric/res/values-sl/strings.xml
rename to biometric/src/main/res/values-sl/strings.xml
diff --git a/biometric/res/values-sq/strings.xml b/biometric/src/main/res/values-sq/strings.xml
similarity index 100%
rename from biometric/res/values-sq/strings.xml
rename to biometric/src/main/res/values-sq/strings.xml
diff --git a/biometric/res/values-sr/strings.xml b/biometric/src/main/res/values-sr/strings.xml
similarity index 100%
rename from biometric/res/values-sr/strings.xml
rename to biometric/src/main/res/values-sr/strings.xml
diff --git a/biometric/res/values-sv/strings.xml b/biometric/src/main/res/values-sv/strings.xml
similarity index 100%
rename from biometric/res/values-sv/strings.xml
rename to biometric/src/main/res/values-sv/strings.xml
diff --git a/biometric/res/values-sw/strings.xml b/biometric/src/main/res/values-sw/strings.xml
similarity index 100%
rename from biometric/res/values-sw/strings.xml
rename to biometric/src/main/res/values-sw/strings.xml
diff --git a/biometric/res/values-ta/strings.xml b/biometric/src/main/res/values-ta/strings.xml
similarity index 100%
rename from biometric/res/values-ta/strings.xml
rename to biometric/src/main/res/values-ta/strings.xml
diff --git a/biometric/res/values-te/strings.xml b/biometric/src/main/res/values-te/strings.xml
similarity index 100%
rename from biometric/res/values-te/strings.xml
rename to biometric/src/main/res/values-te/strings.xml
diff --git a/biometric/res/values-th/strings.xml b/biometric/src/main/res/values-th/strings.xml
similarity index 100%
rename from biometric/res/values-th/strings.xml
rename to biometric/src/main/res/values-th/strings.xml
diff --git a/biometric/res/values-tl/strings.xml b/biometric/src/main/res/values-tl/strings.xml
similarity index 100%
rename from biometric/res/values-tl/strings.xml
rename to biometric/src/main/res/values-tl/strings.xml
diff --git a/biometric/res/values-tr/strings.xml b/biometric/src/main/res/values-tr/strings.xml
similarity index 100%
rename from biometric/res/values-tr/strings.xml
rename to biometric/src/main/res/values-tr/strings.xml
diff --git a/biometric/res/values-uk/strings.xml b/biometric/src/main/res/values-uk/strings.xml
similarity index 100%
rename from biometric/res/values-uk/strings.xml
rename to biometric/src/main/res/values-uk/strings.xml
diff --git a/biometric/res/values-ur/strings.xml b/biometric/src/main/res/values-ur/strings.xml
similarity index 100%
rename from biometric/res/values-ur/strings.xml
rename to biometric/src/main/res/values-ur/strings.xml
diff --git a/biometric/res/values-uz/strings.xml b/biometric/src/main/res/values-uz/strings.xml
similarity index 100%
rename from biometric/res/values-uz/strings.xml
rename to biometric/src/main/res/values-uz/strings.xml
diff --git a/biometric/res/values-vi/strings.xml b/biometric/src/main/res/values-vi/strings.xml
similarity index 100%
rename from biometric/res/values-vi/strings.xml
rename to biometric/src/main/res/values-vi/strings.xml
diff --git a/biometric/res/values-zh-rCN/strings.xml b/biometric/src/main/res/values-zh-rCN/strings.xml
similarity index 100%
rename from biometric/res/values-zh-rCN/strings.xml
rename to biometric/src/main/res/values-zh-rCN/strings.xml
diff --git a/biometric/res/values-zh-rHK/strings.xml b/biometric/src/main/res/values-zh-rHK/strings.xml
similarity index 100%
rename from biometric/res/values-zh-rHK/strings.xml
rename to biometric/src/main/res/values-zh-rHK/strings.xml
diff --git a/biometric/res/values-zh-rTW/strings.xml b/biometric/src/main/res/values-zh-rTW/strings.xml
similarity index 100%
rename from biometric/res/values-zh-rTW/strings.xml
rename to biometric/src/main/res/values-zh-rTW/strings.xml
diff --git a/biometric/res/values-zu/strings.xml b/biometric/src/main/res/values-zu/strings.xml
similarity index 100%
rename from biometric/res/values-zu/strings.xml
rename to biometric/src/main/res/values-zu/strings.xml
diff --git a/biometric/res/values/colors.xml b/biometric/src/main/res/values/colors.xml
similarity index 100%
rename from biometric/res/values/colors.xml
rename to biometric/src/main/res/values/colors.xml
diff --git a/biometric/res/values/devices.xml b/biometric/src/main/res/values/devices.xml
similarity index 100%
rename from biometric/res/values/devices.xml
rename to biometric/src/main/res/values/devices.xml
diff --git a/biometric/res/values/dimens.xml b/biometric/src/main/res/values/dimens.xml
similarity index 100%
rename from biometric/res/values/dimens.xml
rename to biometric/src/main/res/values/dimens.xml
diff --git a/biometric/res/values/strings.xml b/biometric/src/main/res/values/strings.xml
similarity index 100%
rename from biometric/res/values/strings.xml
rename to biometric/src/main/res/values/strings.xml
diff --git a/biometric/res/values/styles.xml b/biometric/src/main/res/values/styles.xml
similarity index 100%
rename from biometric/res/values/styles.xml
rename to biometric/src/main/res/values/styles.xml
diff --git a/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaRunner.kt b/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaRunner.kt
index ea3728d..0d377c0 100644
--- a/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaRunner.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/metalava/MetalavaRunner.kt
@@ -113,7 +113,6 @@
"BuilderSetStyle",
"ExecutorRegistration",
"NotCloseable",
- "UserHandleName",
"UseIcu",
"NoByteOrShort",
"CommonArgsFirst",
@@ -122,7 +121,8 @@
// We should only treat these as warnings
"IntentBuilderName",
- "OnNameExpected"
+ "OnNameExpected",
+ "UserHandleName"
).joinToString(),
"--error",
listOf(
diff --git a/camera/camera-camera2/api/1.0.0-alpha08.txt b/camera/camera-camera2/api/1.0.0-alpha08.txt
new file mode 100644
index 0000000..e869ab7
--- /dev/null
+++ b/camera/camera-camera2/api/1.0.0-alpha08.txt
@@ -0,0 +1,9 @@
+// Signature format: 3.0
+package androidx.camera.camera2 {
+
+ public final class Camera2Config {
+ method public static androidx.camera.core.CameraXConfig defaultConfig(android.content.Context);
+ }
+
+}
+
diff --git a/camera/camera-camera2/api/current.txt b/camera/camera-camera2/api/current.txt
new file mode 100644
index 0000000..e869ab7
--- /dev/null
+++ b/camera/camera-camera2/api/current.txt
@@ -0,0 +1,9 @@
+// Signature format: 3.0
+package androidx.camera.camera2 {
+
+ public final class Camera2Config {
+ method public static androidx.camera.core.CameraXConfig defaultConfig(android.content.Context);
+ }
+
+}
+
diff --git a/camera/camera-camera2/api/public_plus_experimental_1.0.0-alpha08.txt b/camera/camera-camera2/api/public_plus_experimental_1.0.0-alpha08.txt
new file mode 100644
index 0000000..1ab5e18
--- /dev/null
+++ b/camera/camera-camera2/api/public_plus_experimental_1.0.0-alpha08.txt
@@ -0,0 +1,31 @@
+// Signature format: 3.0
+package androidx.camera.camera2 {
+
+ public final class Camera2Config {
+ method public static androidx.camera.core.CameraXConfig defaultConfig(android.content.Context);
+ }
+
+}
+
+package androidx.camera.camera2.interop {
+
+ @androidx.camera.camera2.interop.ExperimentalCamera2Interop public final class Camera2CameraInfo {
+ method public static String extractCameraId(androidx.camera.core.CameraInfo);
+ }
+
+ @androidx.camera.camera2.interop.ExperimentalCamera2Interop public final class Camera2Interop {
+ }
+
+ public static final class Camera2Interop.Extender<T> {
+ ctor public Camera2Interop.Extender(androidx.camera.core.ExtendableBuilder<T!>);
+ method public <ValueT> androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT!>, ValueT);
+ method public androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setDeviceStateCallback(android.hardware.camera2.CameraDevice.StateCallback);
+ method public androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setSessionCaptureCallback(android.hardware.camera2.CameraCaptureSession.CaptureCallback);
+ method public androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setSessionStateCallback(android.hardware.camera2.CameraCaptureSession.StateCallback);
+ }
+
+ @experimental.Experimental @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalCamera2Interop {
+ }
+
+}
+
diff --git a/camera/camera-camera2/api/public_plus_experimental_current.txt b/camera/camera-camera2/api/public_plus_experimental_current.txt
new file mode 100644
index 0000000..1ab5e18
--- /dev/null
+++ b/camera/camera-camera2/api/public_plus_experimental_current.txt
@@ -0,0 +1,31 @@
+// Signature format: 3.0
+package androidx.camera.camera2 {
+
+ public final class Camera2Config {
+ method public static androidx.camera.core.CameraXConfig defaultConfig(android.content.Context);
+ }
+
+}
+
+package androidx.camera.camera2.interop {
+
+ @androidx.camera.camera2.interop.ExperimentalCamera2Interop public final class Camera2CameraInfo {
+ method public static String extractCameraId(androidx.camera.core.CameraInfo);
+ }
+
+ @androidx.camera.camera2.interop.ExperimentalCamera2Interop public final class Camera2Interop {
+ }
+
+ public static final class Camera2Interop.Extender<T> {
+ ctor public Camera2Interop.Extender(androidx.camera.core.ExtendableBuilder<T!>);
+ method public <ValueT> androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT!>, ValueT);
+ method public androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setDeviceStateCallback(android.hardware.camera2.CameraDevice.StateCallback);
+ method public androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setSessionCaptureCallback(android.hardware.camera2.CameraCaptureSession.CaptureCallback);
+ method public androidx.camera.camera2.interop.Camera2Interop.Extender<T!> setSessionStateCallback(android.hardware.camera2.CameraCaptureSession.StateCallback);
+ }
+
+ @experimental.Experimental @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalCamera2Interop {
+ }
+
+}
+
diff --git a/camera/camera-camera2/api/res-1.0.0-alpha08.txt b/camera/camera-camera2/api/res-1.0.0-alpha08.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/camera/camera-camera2/api/res-1.0.0-alpha08.txt
diff --git a/camera/camera-camera2/api/restricted_1.0.0-alpha08.txt b/camera/camera-camera2/api/restricted_1.0.0-alpha08.txt
new file mode 100644
index 0000000..5cec162
--- /dev/null
+++ b/camera/camera-camera2/api/restricted_1.0.0-alpha08.txt
@@ -0,0 +1,94 @@
+// Signature format: 3.0
+package androidx.camera.camera2 {
+
+ public final class Camera2Config {
+ method public static androidx.camera.core.CameraXConfig defaultConfig(android.content.Context);
+ }
+
+}
+
+package @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY) androidx.camera.camera2.impl {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CamcorderProfileHelper {
+ method public boolean hasProfile(int, int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class Camera2CameraCaptureResultConverter {
+ method public static android.hardware.camera2.CaptureResult! getCaptureResult(androidx.camera.core.CameraCaptureResult!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class Camera2CameraControl implements androidx.camera.core.CameraControlInternal {
+ ctor public Camera2CameraControl(android.hardware.camera2.CameraCharacteristics, java.util.concurrent.ScheduledExecutorService, java.util.concurrent.Executor, androidx.camera.core.CameraControlInternal.ControlUpdateCallback);
+ method public void cancelAfAeTrigger(boolean, boolean);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> cancelFocusAndMetering();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> enableTorch(boolean);
+ method public int getFlashMode();
+ method public androidx.camera.camera2.impl.TorchControl getTorchControl();
+ method public androidx.camera.camera2.impl.ZoomControl getZoomControl();
+ method public void setCropRegion(android.graphics.Rect?);
+ method public void setFlashMode(int);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setLinearZoom(float);
+ method @WorkerThread public void setPreviewAspectRatio(android.util.Rational?);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setZoomRatio(float);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.FocusMeteringResult!> startFocusAndMetering(androidx.camera.core.FocusMeteringAction);
+ method public void submitCaptureRequests(java.util.List<androidx.camera.core.CaptureConfig!>);
+ method public void triggerAePrecapture();
+ method public void triggerAf();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class Camera2CaptureCallbacks {
+ method public static android.hardware.camera2.CameraCaptureSession.CaptureCallback createComboCallback(android.hardware.camera2.CameraCaptureSession.CaptureCallback!...);
+ method public static android.hardware.camera2.CameraCaptureSession.CaptureCallback createNoOpCallback();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class Camera2ImplConfig implements androidx.camera.core.Config {
+ ctor public Camera2ImplConfig(androidx.camera.core.Config);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean containsOption(androidx.camera.core.Config.Option<?>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void findOptions(String, androidx.camera.core.Config.OptionMatcher);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.camera2.impl.CameraEventCallbacks? getCameraEventCallback(androidx.camera.camera2.impl.CameraEventCallbacks?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? getCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT!>, ValueT?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getCaptureRequestTemplate(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.hardware.camera2.CameraDevice.StateCallback? getDeviceStateCallback(android.hardware.camera2.CameraDevice.StateCallback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.hardware.camera2.CameraCaptureSession.CaptureCallback? getSessionCaptureCallback(android.hardware.camera2.CameraCaptureSession.CaptureCallback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.hardware.camera2.CameraCaptureSession.StateCallback? getSessionStateCallback(android.hardware.camera2.CameraCaptureSession.StateCallback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Set<androidx.camera.core.Config.Option<?>!> listOptions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>, ValueT?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class Camera2ImplConfig.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.camera2.impl.Camera2ImplConfig> {
+ ctor public Camera2ImplConfig.Builder();
+ method public androidx.camera.camera2.impl.Camera2ImplConfig build();
+ method public androidx.camera.core.MutableConfig getMutableConfig();
+ method public androidx.camera.camera2.impl.Camera2ImplConfig.Builder insertAllOptions(androidx.camera.core.Config);
+ method public <ValueT> androidx.camera.camera2.impl.Camera2ImplConfig.Builder setCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT!>, ValueT);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class Camera2ImplConfig.Extender<T> {
+ ctor public Camera2ImplConfig.Extender(androidx.camera.core.ExtendableBuilder<T!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.camera2.impl.Camera2ImplConfig.Extender<T!> setCameraEventCallback(androidx.camera.camera2.impl.CameraEventCallbacks);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class Camera2LensFacingCameraIdFilter extends androidx.camera.core.LensFacingCameraIdFilter {
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class CameraBurstCaptureCallback extends android.hardware.camera2.CameraCaptureSession.CaptureCallback {
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class CameraEventCallback {
+ ctor public CameraEventCallback();
+ method public androidx.camera.core.CaptureConfig! onDisableSession();
+ method public androidx.camera.core.CaptureConfig! onEnableSession();
+ method public androidx.camera.core.CaptureConfig! onPresetSession();
+ method public androidx.camera.core.CaptureConfig! onRepeating();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraEventCallbacks extends androidx.camera.core.MultiValueSet<androidx.camera.camera2.impl.CameraEventCallback> {
+ ctor public CameraEventCallbacks(androidx.camera.camera2.impl.CameraEventCallback!...);
+ method public androidx.camera.core.MultiValueSet<androidx.camera.camera2.impl.CameraEventCallback!> clone();
+ method public androidx.camera.camera2.impl.CameraEventCallbacks.ComboCameraEventCallback createComboCallback();
+ method public static androidx.camera.camera2.impl.CameraEventCallbacks createEmptyCallback();
+ }
+
+}
+
diff --git a/camera/camera-camera2/api/restricted_current.txt b/camera/camera-camera2/api/restricted_current.txt
new file mode 100644
index 0000000..5cec162
--- /dev/null
+++ b/camera/camera-camera2/api/restricted_current.txt
@@ -0,0 +1,94 @@
+// Signature format: 3.0
+package androidx.camera.camera2 {
+
+ public final class Camera2Config {
+ method public static androidx.camera.core.CameraXConfig defaultConfig(android.content.Context);
+ }
+
+}
+
+package @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY) androidx.camera.camera2.impl {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CamcorderProfileHelper {
+ method public boolean hasProfile(int, int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class Camera2CameraCaptureResultConverter {
+ method public static android.hardware.camera2.CaptureResult! getCaptureResult(androidx.camera.core.CameraCaptureResult!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class Camera2CameraControl implements androidx.camera.core.CameraControlInternal {
+ ctor public Camera2CameraControl(android.hardware.camera2.CameraCharacteristics, java.util.concurrent.ScheduledExecutorService, java.util.concurrent.Executor, androidx.camera.core.CameraControlInternal.ControlUpdateCallback);
+ method public void cancelAfAeTrigger(boolean, boolean);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> cancelFocusAndMetering();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> enableTorch(boolean);
+ method public int getFlashMode();
+ method public androidx.camera.camera2.impl.TorchControl getTorchControl();
+ method public androidx.camera.camera2.impl.ZoomControl getZoomControl();
+ method public void setCropRegion(android.graphics.Rect?);
+ method public void setFlashMode(int);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setLinearZoom(float);
+ method @WorkerThread public void setPreviewAspectRatio(android.util.Rational?);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setZoomRatio(float);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.FocusMeteringResult!> startFocusAndMetering(androidx.camera.core.FocusMeteringAction);
+ method public void submitCaptureRequests(java.util.List<androidx.camera.core.CaptureConfig!>);
+ method public void triggerAePrecapture();
+ method public void triggerAf();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class Camera2CaptureCallbacks {
+ method public static android.hardware.camera2.CameraCaptureSession.CaptureCallback createComboCallback(android.hardware.camera2.CameraCaptureSession.CaptureCallback!...);
+ method public static android.hardware.camera2.CameraCaptureSession.CaptureCallback createNoOpCallback();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class Camera2ImplConfig implements androidx.camera.core.Config {
+ ctor public Camera2ImplConfig(androidx.camera.core.Config);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean containsOption(androidx.camera.core.Config.Option<?>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void findOptions(String, androidx.camera.core.Config.OptionMatcher);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.camera2.impl.CameraEventCallbacks? getCameraEventCallback(androidx.camera.camera2.impl.CameraEventCallbacks?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? getCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT!>, ValueT?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getCaptureRequestTemplate(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.hardware.camera2.CameraDevice.StateCallback? getDeviceStateCallback(android.hardware.camera2.CameraDevice.StateCallback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.hardware.camera2.CameraCaptureSession.CaptureCallback? getSessionCaptureCallback(android.hardware.camera2.CameraCaptureSession.CaptureCallback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.hardware.camera2.CameraCaptureSession.StateCallback? getSessionStateCallback(android.hardware.camera2.CameraCaptureSession.StateCallback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Set<androidx.camera.core.Config.Option<?>!> listOptions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>, ValueT?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class Camera2ImplConfig.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.camera2.impl.Camera2ImplConfig> {
+ ctor public Camera2ImplConfig.Builder();
+ method public androidx.camera.camera2.impl.Camera2ImplConfig build();
+ method public androidx.camera.core.MutableConfig getMutableConfig();
+ method public androidx.camera.camera2.impl.Camera2ImplConfig.Builder insertAllOptions(androidx.camera.core.Config);
+ method public <ValueT> androidx.camera.camera2.impl.Camera2ImplConfig.Builder setCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key<ValueT!>, ValueT);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class Camera2ImplConfig.Extender<T> {
+ ctor public Camera2ImplConfig.Extender(androidx.camera.core.ExtendableBuilder<T!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.camera2.impl.Camera2ImplConfig.Extender<T!> setCameraEventCallback(androidx.camera.camera2.impl.CameraEventCallbacks);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class Camera2LensFacingCameraIdFilter extends androidx.camera.core.LensFacingCameraIdFilter {
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class CameraBurstCaptureCallback extends android.hardware.camera2.CameraCaptureSession.CaptureCallback {
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class CameraEventCallback {
+ ctor public CameraEventCallback();
+ method public androidx.camera.core.CaptureConfig! onDisableSession();
+ method public androidx.camera.core.CaptureConfig! onEnableSession();
+ method public androidx.camera.core.CaptureConfig! onPresetSession();
+ method public androidx.camera.core.CaptureConfig! onRepeating();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraEventCallbacks extends androidx.camera.core.MultiValueSet<androidx.camera.camera2.impl.CameraEventCallback> {
+ ctor public CameraEventCallbacks(androidx.camera.camera2.impl.CameraEventCallback!...);
+ method public androidx.camera.core.MultiValueSet<androidx.camera.camera2.impl.CameraEventCallback!> clone();
+ method public androidx.camera.camera2.impl.CameraEventCallbacks.ComboCameraEventCallback createComboCallback();
+ method public static androidx.camera.camera2.impl.CameraEventCallbacks createEmptyCallback();
+ }
+
+}
+
diff --git a/camera/camera-core/api/1.0.0-alpha08.txt b/camera/camera-core/api/1.0.0-alpha08.txt
new file mode 100644
index 0000000..72a74c6
--- /dev/null
+++ b/camera/camera-core/api/1.0.0-alpha08.txt
@@ -0,0 +1,242 @@
+// Signature format: 3.0
+package androidx.camera.core {
+
+ public class AspectRatio {
+ field public static final int RATIO_16_9 = 1; // 0x1
+ field public static final int RATIO_4_3 = 0; // 0x0
+ }
+
+ public interface Camera {
+ method public androidx.camera.core.CameraControl getCameraControl();
+ method public androidx.camera.core.CameraInfo getCameraInfo();
+ }
+
+ public interface CameraControl {
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> cancelFocusAndMetering();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> enableTorch(boolean);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setLinearZoom(@FloatRange(from=0.0f, to=1.0f) float);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setZoomRatio(float);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.FocusMeteringResult!> startFocusAndMetering(androidx.camera.core.FocusMeteringAction);
+ }
+
+ public static final class CameraControl.OperationCanceledException extends java.lang.Exception {
+ }
+
+ public interface CameraInfo {
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getLinearZoom();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getMaxZoomRatio();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getMinZoomRatio();
+ method public int getSensorRotationDegrees();
+ method public int getSensorRotationDegrees(int);
+ method public androidx.lifecycle.LiveData<java.lang.Integer!> getTorchState();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getZoomRatio();
+ method public boolean hasFlashUnit();
+ }
+
+ public final class CameraInfoUnavailableException extends java.lang.Exception {
+ }
+
+ public final class CameraSelector {
+ field public static final androidx.camera.core.CameraSelector DEFAULT_BACK_CAMERA;
+ field public static final androidx.camera.core.CameraSelector DEFAULT_FRONT_CAMERA;
+ field public static final int LENS_FACING_BACK = 1; // 0x1
+ field public static final int LENS_FACING_FRONT = 0; // 0x0
+ }
+
+ public static final class CameraSelector.Builder {
+ ctor public CameraSelector.Builder();
+ method public androidx.camera.core.CameraSelector build();
+ method public androidx.camera.core.CameraSelector.Builder requireLensFacing(int);
+ }
+
+ public final class CameraXConfig {
+ }
+
+ public static final class CameraXConfig.Builder {
+ ctor public CameraXConfig.Builder();
+ method public androidx.camera.core.CameraXConfig build();
+ method public static androidx.camera.core.CameraXConfig.Builder fromConfig(androidx.camera.core.CameraXConfig);
+ method public androidx.camera.core.CameraXConfig.Builder setCameraExecutor(java.util.concurrent.Executor);
+ }
+
+ public static interface CameraXConfig.Provider {
+ method public androidx.camera.core.CameraXConfig getCameraXConfig();
+ }
+
+ public final class DisplayOrientedMeteringPointFactory extends androidx.camera.core.MeteringPointFactory {
+ ctor public DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float);
+ ctor public DisplayOrientedMeteringPointFactory(android.view.Display, androidx.camera.core.CameraSelector, float, float);
+ }
+
+ public interface ExtendableBuilder<T> {
+ method public T build();
+ }
+
+ public final class FocusMeteringAction {
+ method public long getAutoCancelDurationInMillis();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAe();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAf();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAwb();
+ method public boolean isAutoCancelEnabled();
+ field public static final int FLAG_AE = 2; // 0x2
+ field public static final int FLAG_AF = 1; // 0x1
+ field public static final int FLAG_AWB = 4; // 0x4
+ }
+
+ public static class FocusMeteringAction.Builder {
+ method public androidx.camera.core.FocusMeteringAction.Builder addPoint(androidx.camera.core.MeteringPoint);
+ method public androidx.camera.core.FocusMeteringAction.Builder addPoint(androidx.camera.core.MeteringPoint, int);
+ method public androidx.camera.core.FocusMeteringAction build();
+ method public androidx.camera.core.FocusMeteringAction.Builder disableAutoCancel();
+ method public static androidx.camera.core.FocusMeteringAction.Builder from(androidx.camera.core.MeteringPoint);
+ method public static androidx.camera.core.FocusMeteringAction.Builder from(androidx.camera.core.MeteringPoint, int);
+ method public androidx.camera.core.FocusMeteringAction.Builder setAutoCancelDuration(@IntRange(from=1) long, java.util.concurrent.TimeUnit);
+ }
+
+ public final class FocusMeteringResult {
+ method public boolean isFocusSuccessful();
+ }
+
+ public final class ImageAnalysis extends androidx.camera.core.UseCase {
+ method public void clearAnalyzer();
+ method public void setAnalyzer(java.util.concurrent.Executor, androidx.camera.core.ImageAnalysis.Analyzer);
+ method public void setTargetRotation(int);
+ field public static final int STRATEGY_BLOCK_PRODUCER = 1; // 0x1
+ field public static final int STRATEGY_KEEP_ONLY_LATEST = 0; // 0x0
+ }
+
+ public static interface ImageAnalysis.Analyzer {
+ method public void analyze(androidx.camera.core.ImageProxy);
+ }
+
+ public static final class ImageAnalysis.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.ImageAnalysis> {
+ ctor public ImageAnalysis.Builder();
+ method public androidx.camera.core.ImageAnalysis build();
+ method public androidx.camera.core.ImageAnalysis.Builder setBackgroundExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.ImageAnalysis.Builder setBackpressureStrategy(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setImageQueueDepth(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetName(String);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetRotation(int);
+ }
+
+ public class ImageCapture extends androidx.camera.core.UseCase {
+ method public int getFlashMode();
+ method public void setFlashMode(int);
+ method public void setTargetAspectRatioCustom(android.util.Rational);
+ method public void setTargetRotation(int);
+ method public void takePicture(java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageCapturedCallback);
+ method public void takePicture(java.io.File, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
+ method public void takePicture(java.io.File, androidx.camera.core.ImageCapture.Metadata, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
+ field public static final int CAPTURE_MODE_MAXIMIZE_QUALITY = 0; // 0x0
+ field public static final int CAPTURE_MODE_MINIMIZE_LATENCY = 1; // 0x1
+ field public static final int ERROR_CAMERA_CLOSED = 3; // 0x3
+ field public static final int ERROR_CAPTURE_FAILED = 2; // 0x2
+ field public static final int ERROR_FILE_IO = 1; // 0x1
+ field public static final int ERROR_INVALID_CAMERA = 4; // 0x4
+ field public static final int ERROR_UNKNOWN = 0; // 0x0
+ field public static final int FLASH_MODE_AUTO = 0; // 0x0
+ field public static final int FLASH_MODE_OFF = 2; // 0x2
+ field public static final int FLASH_MODE_ON = 1; // 0x1
+ }
+
+ public static final class ImageCapture.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.ImageCapture> {
+ ctor public ImageCapture.Builder();
+ method public androidx.camera.core.ImageCapture build();
+ method public androidx.camera.core.ImageCapture.Builder setCaptureMode(int);
+ method public androidx.camera.core.ImageCapture.Builder setFlashMode(int);
+ method public androidx.camera.core.ImageCapture.Builder setIoExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.ImageCapture.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.ImageCapture.Builder setTargetName(String);
+ method public androidx.camera.core.ImageCapture.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.ImageCapture.Builder setTargetRotation(int);
+ }
+
+ public static final class ImageCapture.Metadata {
+ ctor public ImageCapture.Metadata();
+ method public android.location.Location? getLocation();
+ method public boolean isReversedHorizontal();
+ method public boolean isReversedVertical();
+ method public void setLocation(android.location.Location?);
+ method public void setReversedHorizontal(boolean);
+ method public void setReversedVertical(boolean);
+ }
+
+ public abstract static class ImageCapture.OnImageCapturedCallback {
+ ctor public ImageCapture.OnImageCapturedCallback();
+ method public void onCaptureSuccess(androidx.camera.core.ImageProxy);
+ method public void onError(int, String, Throwable?);
+ }
+
+ public static interface ImageCapture.OnImageSavedCallback {
+ method public void onError(int, String, Throwable?);
+ method public void onImageSaved(java.io.File);
+ }
+
+ public interface ImageInfo {
+ method public int getRotationDegrees();
+ method public long getTimestamp();
+ }
+
+ public interface ImageProxy extends java.lang.AutoCloseable {
+ method public void close();
+ method public android.graphics.Rect getCropRect();
+ method public int getFormat();
+ method public int getHeight();
+ method public androidx.camera.core.ImageInfo getImageInfo();
+ method public androidx.camera.core.ImageProxy.PlaneProxy![] getPlanes();
+ method public int getWidth();
+ method public void setCropRect(android.graphics.Rect?);
+ }
+
+ public static interface ImageProxy.PlaneProxy {
+ method public java.nio.ByteBuffer getBuffer();
+ method public int getPixelStride();
+ method public int getRowStride();
+ }
+
+ public class MeteringPoint {
+ method public float getSize();
+ }
+
+ public abstract class MeteringPointFactory {
+ method public final androidx.camera.core.MeteringPoint createPoint(float, float);
+ method public final androidx.camera.core.MeteringPoint createPoint(float, float, float);
+ method public static float getDefaultPointSize();
+ }
+
+ public class Preview extends androidx.camera.core.UseCase {
+ method @UiThread public androidx.camera.core.Preview.PreviewSurfaceProvider? getPreviewSurfaceProvider();
+ method @UiThread public void setPreviewSurfaceProvider(java.util.concurrent.Executor, androidx.camera.core.Preview.PreviewSurfaceProvider?);
+ method @UiThread public void setPreviewSurfaceProvider(androidx.camera.core.Preview.PreviewSurfaceProvider?);
+ }
+
+ public static final class Preview.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.Preview> {
+ ctor public Preview.Builder();
+ method public androidx.camera.core.Preview build();
+ method public androidx.camera.core.Preview.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.Preview.Builder setTargetName(String);
+ method public androidx.camera.core.Preview.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.Preview.Builder setTargetRotation(int);
+ }
+
+ public static interface Preview.PreviewSurfaceProvider {
+ method public com.google.common.util.concurrent.ListenableFuture<android.view.Surface!> provideSurface(android.util.Size, com.google.common.util.concurrent.ListenableFuture<java.lang.Void!>);
+ }
+
+ public class SurfaceOrientedMeteringPointFactory extends androidx.camera.core.MeteringPointFactory {
+ ctor public SurfaceOrientedMeteringPointFactory(float, float);
+ ctor public SurfaceOrientedMeteringPointFactory(float, float, androidx.camera.core.UseCase);
+ }
+
+ public class TorchState {
+ field public static final int OFF = 0; // 0x0
+ field public static final int ON = 1; // 0x1
+ }
+
+ public abstract class UseCase {
+ }
+
+}
+
diff --git a/camera/camera-core/api/current.txt b/camera/camera-core/api/current.txt
new file mode 100644
index 0000000..72a74c6
--- /dev/null
+++ b/camera/camera-core/api/current.txt
@@ -0,0 +1,242 @@
+// Signature format: 3.0
+package androidx.camera.core {
+
+ public class AspectRatio {
+ field public static final int RATIO_16_9 = 1; // 0x1
+ field public static final int RATIO_4_3 = 0; // 0x0
+ }
+
+ public interface Camera {
+ method public androidx.camera.core.CameraControl getCameraControl();
+ method public androidx.camera.core.CameraInfo getCameraInfo();
+ }
+
+ public interface CameraControl {
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> cancelFocusAndMetering();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> enableTorch(boolean);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setLinearZoom(@FloatRange(from=0.0f, to=1.0f) float);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setZoomRatio(float);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.FocusMeteringResult!> startFocusAndMetering(androidx.camera.core.FocusMeteringAction);
+ }
+
+ public static final class CameraControl.OperationCanceledException extends java.lang.Exception {
+ }
+
+ public interface CameraInfo {
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getLinearZoom();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getMaxZoomRatio();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getMinZoomRatio();
+ method public int getSensorRotationDegrees();
+ method public int getSensorRotationDegrees(int);
+ method public androidx.lifecycle.LiveData<java.lang.Integer!> getTorchState();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getZoomRatio();
+ method public boolean hasFlashUnit();
+ }
+
+ public final class CameraInfoUnavailableException extends java.lang.Exception {
+ }
+
+ public final class CameraSelector {
+ field public static final androidx.camera.core.CameraSelector DEFAULT_BACK_CAMERA;
+ field public static final androidx.camera.core.CameraSelector DEFAULT_FRONT_CAMERA;
+ field public static final int LENS_FACING_BACK = 1; // 0x1
+ field public static final int LENS_FACING_FRONT = 0; // 0x0
+ }
+
+ public static final class CameraSelector.Builder {
+ ctor public CameraSelector.Builder();
+ method public androidx.camera.core.CameraSelector build();
+ method public androidx.camera.core.CameraSelector.Builder requireLensFacing(int);
+ }
+
+ public final class CameraXConfig {
+ }
+
+ public static final class CameraXConfig.Builder {
+ ctor public CameraXConfig.Builder();
+ method public androidx.camera.core.CameraXConfig build();
+ method public static androidx.camera.core.CameraXConfig.Builder fromConfig(androidx.camera.core.CameraXConfig);
+ method public androidx.camera.core.CameraXConfig.Builder setCameraExecutor(java.util.concurrent.Executor);
+ }
+
+ public static interface CameraXConfig.Provider {
+ method public androidx.camera.core.CameraXConfig getCameraXConfig();
+ }
+
+ public final class DisplayOrientedMeteringPointFactory extends androidx.camera.core.MeteringPointFactory {
+ ctor public DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float);
+ ctor public DisplayOrientedMeteringPointFactory(android.view.Display, androidx.camera.core.CameraSelector, float, float);
+ }
+
+ public interface ExtendableBuilder<T> {
+ method public T build();
+ }
+
+ public final class FocusMeteringAction {
+ method public long getAutoCancelDurationInMillis();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAe();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAf();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAwb();
+ method public boolean isAutoCancelEnabled();
+ field public static final int FLAG_AE = 2; // 0x2
+ field public static final int FLAG_AF = 1; // 0x1
+ field public static final int FLAG_AWB = 4; // 0x4
+ }
+
+ public static class FocusMeteringAction.Builder {
+ method public androidx.camera.core.FocusMeteringAction.Builder addPoint(androidx.camera.core.MeteringPoint);
+ method public androidx.camera.core.FocusMeteringAction.Builder addPoint(androidx.camera.core.MeteringPoint, int);
+ method public androidx.camera.core.FocusMeteringAction build();
+ method public androidx.camera.core.FocusMeteringAction.Builder disableAutoCancel();
+ method public static androidx.camera.core.FocusMeteringAction.Builder from(androidx.camera.core.MeteringPoint);
+ method public static androidx.camera.core.FocusMeteringAction.Builder from(androidx.camera.core.MeteringPoint, int);
+ method public androidx.camera.core.FocusMeteringAction.Builder setAutoCancelDuration(@IntRange(from=1) long, java.util.concurrent.TimeUnit);
+ }
+
+ public final class FocusMeteringResult {
+ method public boolean isFocusSuccessful();
+ }
+
+ public final class ImageAnalysis extends androidx.camera.core.UseCase {
+ method public void clearAnalyzer();
+ method public void setAnalyzer(java.util.concurrent.Executor, androidx.camera.core.ImageAnalysis.Analyzer);
+ method public void setTargetRotation(int);
+ field public static final int STRATEGY_BLOCK_PRODUCER = 1; // 0x1
+ field public static final int STRATEGY_KEEP_ONLY_LATEST = 0; // 0x0
+ }
+
+ public static interface ImageAnalysis.Analyzer {
+ method public void analyze(androidx.camera.core.ImageProxy);
+ }
+
+ public static final class ImageAnalysis.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.ImageAnalysis> {
+ ctor public ImageAnalysis.Builder();
+ method public androidx.camera.core.ImageAnalysis build();
+ method public androidx.camera.core.ImageAnalysis.Builder setBackgroundExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.ImageAnalysis.Builder setBackpressureStrategy(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setImageQueueDepth(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetName(String);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetRotation(int);
+ }
+
+ public class ImageCapture extends androidx.camera.core.UseCase {
+ method public int getFlashMode();
+ method public void setFlashMode(int);
+ method public void setTargetAspectRatioCustom(android.util.Rational);
+ method public void setTargetRotation(int);
+ method public void takePicture(java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageCapturedCallback);
+ method public void takePicture(java.io.File, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
+ method public void takePicture(java.io.File, androidx.camera.core.ImageCapture.Metadata, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
+ field public static final int CAPTURE_MODE_MAXIMIZE_QUALITY = 0; // 0x0
+ field public static final int CAPTURE_MODE_MINIMIZE_LATENCY = 1; // 0x1
+ field public static final int ERROR_CAMERA_CLOSED = 3; // 0x3
+ field public static final int ERROR_CAPTURE_FAILED = 2; // 0x2
+ field public static final int ERROR_FILE_IO = 1; // 0x1
+ field public static final int ERROR_INVALID_CAMERA = 4; // 0x4
+ field public static final int ERROR_UNKNOWN = 0; // 0x0
+ field public static final int FLASH_MODE_AUTO = 0; // 0x0
+ field public static final int FLASH_MODE_OFF = 2; // 0x2
+ field public static final int FLASH_MODE_ON = 1; // 0x1
+ }
+
+ public static final class ImageCapture.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.ImageCapture> {
+ ctor public ImageCapture.Builder();
+ method public androidx.camera.core.ImageCapture build();
+ method public androidx.camera.core.ImageCapture.Builder setCaptureMode(int);
+ method public androidx.camera.core.ImageCapture.Builder setFlashMode(int);
+ method public androidx.camera.core.ImageCapture.Builder setIoExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.ImageCapture.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.ImageCapture.Builder setTargetName(String);
+ method public androidx.camera.core.ImageCapture.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.ImageCapture.Builder setTargetRotation(int);
+ }
+
+ public static final class ImageCapture.Metadata {
+ ctor public ImageCapture.Metadata();
+ method public android.location.Location? getLocation();
+ method public boolean isReversedHorizontal();
+ method public boolean isReversedVertical();
+ method public void setLocation(android.location.Location?);
+ method public void setReversedHorizontal(boolean);
+ method public void setReversedVertical(boolean);
+ }
+
+ public abstract static class ImageCapture.OnImageCapturedCallback {
+ ctor public ImageCapture.OnImageCapturedCallback();
+ method public void onCaptureSuccess(androidx.camera.core.ImageProxy);
+ method public void onError(int, String, Throwable?);
+ }
+
+ public static interface ImageCapture.OnImageSavedCallback {
+ method public void onError(int, String, Throwable?);
+ method public void onImageSaved(java.io.File);
+ }
+
+ public interface ImageInfo {
+ method public int getRotationDegrees();
+ method public long getTimestamp();
+ }
+
+ public interface ImageProxy extends java.lang.AutoCloseable {
+ method public void close();
+ method public android.graphics.Rect getCropRect();
+ method public int getFormat();
+ method public int getHeight();
+ method public androidx.camera.core.ImageInfo getImageInfo();
+ method public androidx.camera.core.ImageProxy.PlaneProxy![] getPlanes();
+ method public int getWidth();
+ method public void setCropRect(android.graphics.Rect?);
+ }
+
+ public static interface ImageProxy.PlaneProxy {
+ method public java.nio.ByteBuffer getBuffer();
+ method public int getPixelStride();
+ method public int getRowStride();
+ }
+
+ public class MeteringPoint {
+ method public float getSize();
+ }
+
+ public abstract class MeteringPointFactory {
+ method public final androidx.camera.core.MeteringPoint createPoint(float, float);
+ method public final androidx.camera.core.MeteringPoint createPoint(float, float, float);
+ method public static float getDefaultPointSize();
+ }
+
+ public class Preview extends androidx.camera.core.UseCase {
+ method @UiThread public androidx.camera.core.Preview.PreviewSurfaceProvider? getPreviewSurfaceProvider();
+ method @UiThread public void setPreviewSurfaceProvider(java.util.concurrent.Executor, androidx.camera.core.Preview.PreviewSurfaceProvider?);
+ method @UiThread public void setPreviewSurfaceProvider(androidx.camera.core.Preview.PreviewSurfaceProvider?);
+ }
+
+ public static final class Preview.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.Preview> {
+ ctor public Preview.Builder();
+ method public androidx.camera.core.Preview build();
+ method public androidx.camera.core.Preview.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.Preview.Builder setTargetName(String);
+ method public androidx.camera.core.Preview.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.Preview.Builder setTargetRotation(int);
+ }
+
+ public static interface Preview.PreviewSurfaceProvider {
+ method public com.google.common.util.concurrent.ListenableFuture<android.view.Surface!> provideSurface(android.util.Size, com.google.common.util.concurrent.ListenableFuture<java.lang.Void!>);
+ }
+
+ public class SurfaceOrientedMeteringPointFactory extends androidx.camera.core.MeteringPointFactory {
+ ctor public SurfaceOrientedMeteringPointFactory(float, float);
+ ctor public SurfaceOrientedMeteringPointFactory(float, float, androidx.camera.core.UseCase);
+ }
+
+ public class TorchState {
+ field public static final int OFF = 0; // 0x0
+ field public static final int ON = 1; // 0x1
+ }
+
+ public abstract class UseCase {
+ }
+
+}
+
diff --git a/camera/camera-core/api/public_plus_experimental_1.0.0-alpha08.txt b/camera/camera-core/api/public_plus_experimental_1.0.0-alpha08.txt
new file mode 100644
index 0000000..01f5953
--- /dev/null
+++ b/camera/camera-core/api/public_plus_experimental_1.0.0-alpha08.txt
@@ -0,0 +1,246 @@
+// Signature format: 3.0
+package androidx.camera.core {
+
+ public class AspectRatio {
+ field public static final int RATIO_16_9 = 1; // 0x1
+ field public static final int RATIO_4_3 = 0; // 0x0
+ }
+
+ public interface Camera {
+ method public androidx.camera.core.CameraControl getCameraControl();
+ method public androidx.camera.core.CameraInfo getCameraInfo();
+ }
+
+ public interface CameraControl {
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> cancelFocusAndMetering();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> enableTorch(boolean);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setLinearZoom(@FloatRange(from=0.0f, to=1.0f) float);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setZoomRatio(float);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.FocusMeteringResult!> startFocusAndMetering(androidx.camera.core.FocusMeteringAction);
+ }
+
+ public static final class CameraControl.OperationCanceledException extends java.lang.Exception {
+ }
+
+ public interface CameraInfo {
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getLinearZoom();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getMaxZoomRatio();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getMinZoomRatio();
+ method public int getSensorRotationDegrees();
+ method public int getSensorRotationDegrees(int);
+ method public androidx.lifecycle.LiveData<java.lang.Integer!> getTorchState();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getZoomRatio();
+ method public boolean hasFlashUnit();
+ }
+
+ public final class CameraInfoUnavailableException extends java.lang.Exception {
+ }
+
+ public final class CameraSelector {
+ field public static final androidx.camera.core.CameraSelector DEFAULT_BACK_CAMERA;
+ field public static final androidx.camera.core.CameraSelector DEFAULT_FRONT_CAMERA;
+ field public static final int LENS_FACING_BACK = 1; // 0x1
+ field public static final int LENS_FACING_FRONT = 0; // 0x0
+ }
+
+ public static final class CameraSelector.Builder {
+ ctor public CameraSelector.Builder();
+ method public androidx.camera.core.CameraSelector build();
+ method public androidx.camera.core.CameraSelector.Builder requireLensFacing(int);
+ }
+
+ public final class CameraXConfig {
+ }
+
+ public static final class CameraXConfig.Builder {
+ ctor public CameraXConfig.Builder();
+ method public androidx.camera.core.CameraXConfig build();
+ method public static androidx.camera.core.CameraXConfig.Builder fromConfig(androidx.camera.core.CameraXConfig);
+ method public androidx.camera.core.CameraXConfig.Builder setCameraExecutor(java.util.concurrent.Executor);
+ }
+
+ public static interface CameraXConfig.Provider {
+ method public androidx.camera.core.CameraXConfig getCameraXConfig();
+ }
+
+ public final class DisplayOrientedMeteringPointFactory extends androidx.camera.core.MeteringPointFactory {
+ ctor public DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float);
+ ctor public DisplayOrientedMeteringPointFactory(android.view.Display, androidx.camera.core.CameraSelector, float, float);
+ }
+
+ @experimental.Experimental @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalGetImage {
+ }
+
+ public interface ExtendableBuilder<T> {
+ method public T build();
+ }
+
+ public final class FocusMeteringAction {
+ method public long getAutoCancelDurationInMillis();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAe();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAf();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAwb();
+ method public boolean isAutoCancelEnabled();
+ field public static final int FLAG_AE = 2; // 0x2
+ field public static final int FLAG_AF = 1; // 0x1
+ field public static final int FLAG_AWB = 4; // 0x4
+ }
+
+ public static class FocusMeteringAction.Builder {
+ method public androidx.camera.core.FocusMeteringAction.Builder addPoint(androidx.camera.core.MeteringPoint);
+ method public androidx.camera.core.FocusMeteringAction.Builder addPoint(androidx.camera.core.MeteringPoint, int);
+ method public androidx.camera.core.FocusMeteringAction build();
+ method public androidx.camera.core.FocusMeteringAction.Builder disableAutoCancel();
+ method public static androidx.camera.core.FocusMeteringAction.Builder from(androidx.camera.core.MeteringPoint);
+ method public static androidx.camera.core.FocusMeteringAction.Builder from(androidx.camera.core.MeteringPoint, int);
+ method public androidx.camera.core.FocusMeteringAction.Builder setAutoCancelDuration(@IntRange(from=1) long, java.util.concurrent.TimeUnit);
+ }
+
+ public final class FocusMeteringResult {
+ method public boolean isFocusSuccessful();
+ }
+
+ public final class ImageAnalysis extends androidx.camera.core.UseCase {
+ method public void clearAnalyzer();
+ method public void setAnalyzer(java.util.concurrent.Executor, androidx.camera.core.ImageAnalysis.Analyzer);
+ method public void setTargetRotation(int);
+ field public static final int STRATEGY_BLOCK_PRODUCER = 1; // 0x1
+ field public static final int STRATEGY_KEEP_ONLY_LATEST = 0; // 0x0
+ }
+
+ public static interface ImageAnalysis.Analyzer {
+ method public void analyze(androidx.camera.core.ImageProxy);
+ }
+
+ public static final class ImageAnalysis.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.ImageAnalysis> {
+ ctor public ImageAnalysis.Builder();
+ method public androidx.camera.core.ImageAnalysis build();
+ method public androidx.camera.core.ImageAnalysis.Builder setBackgroundExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.ImageAnalysis.Builder setBackpressureStrategy(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setImageQueueDepth(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetName(String);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetRotation(int);
+ }
+
+ public class ImageCapture extends androidx.camera.core.UseCase {
+ method public int getFlashMode();
+ method public void setFlashMode(int);
+ method public void setTargetAspectRatioCustom(android.util.Rational);
+ method public void setTargetRotation(int);
+ method public void takePicture(java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageCapturedCallback);
+ method public void takePicture(java.io.File, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
+ method public void takePicture(java.io.File, androidx.camera.core.ImageCapture.Metadata, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
+ field public static final int CAPTURE_MODE_MAXIMIZE_QUALITY = 0; // 0x0
+ field public static final int CAPTURE_MODE_MINIMIZE_LATENCY = 1; // 0x1
+ field public static final int ERROR_CAMERA_CLOSED = 3; // 0x3
+ field public static final int ERROR_CAPTURE_FAILED = 2; // 0x2
+ field public static final int ERROR_FILE_IO = 1; // 0x1
+ field public static final int ERROR_INVALID_CAMERA = 4; // 0x4
+ field public static final int ERROR_UNKNOWN = 0; // 0x0
+ field public static final int FLASH_MODE_AUTO = 0; // 0x0
+ field public static final int FLASH_MODE_OFF = 2; // 0x2
+ field public static final int FLASH_MODE_ON = 1; // 0x1
+ }
+
+ public static final class ImageCapture.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.ImageCapture> {
+ ctor public ImageCapture.Builder();
+ method public androidx.camera.core.ImageCapture build();
+ method public androidx.camera.core.ImageCapture.Builder setCaptureMode(int);
+ method public androidx.camera.core.ImageCapture.Builder setFlashMode(int);
+ method public androidx.camera.core.ImageCapture.Builder setIoExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.ImageCapture.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.ImageCapture.Builder setTargetName(String);
+ method public androidx.camera.core.ImageCapture.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.ImageCapture.Builder setTargetRotation(int);
+ }
+
+ public static final class ImageCapture.Metadata {
+ ctor public ImageCapture.Metadata();
+ method public android.location.Location? getLocation();
+ method public boolean isReversedHorizontal();
+ method public boolean isReversedVertical();
+ method public void setLocation(android.location.Location?);
+ method public void setReversedHorizontal(boolean);
+ method public void setReversedVertical(boolean);
+ }
+
+ public abstract static class ImageCapture.OnImageCapturedCallback {
+ ctor public ImageCapture.OnImageCapturedCallback();
+ method public void onCaptureSuccess(androidx.camera.core.ImageProxy);
+ method public void onError(int, String, Throwable?);
+ }
+
+ public static interface ImageCapture.OnImageSavedCallback {
+ method public void onError(int, String, Throwable?);
+ method public void onImageSaved(java.io.File);
+ }
+
+ public interface ImageInfo {
+ method public int getRotationDegrees();
+ method public long getTimestamp();
+ }
+
+ public interface ImageProxy extends java.lang.AutoCloseable {
+ method public void close();
+ method public android.graphics.Rect getCropRect();
+ method public int getFormat();
+ method public int getHeight();
+ method @androidx.camera.core.ExperimentalGetImage public android.media.Image? getImage();
+ method public androidx.camera.core.ImageInfo getImageInfo();
+ method public androidx.camera.core.ImageProxy.PlaneProxy![] getPlanes();
+ method public int getWidth();
+ method public void setCropRect(android.graphics.Rect?);
+ }
+
+ public static interface ImageProxy.PlaneProxy {
+ method public java.nio.ByteBuffer getBuffer();
+ method public int getPixelStride();
+ method public int getRowStride();
+ }
+
+ public class MeteringPoint {
+ method public float getSize();
+ }
+
+ public abstract class MeteringPointFactory {
+ method public final androidx.camera.core.MeteringPoint createPoint(float, float);
+ method public final androidx.camera.core.MeteringPoint createPoint(float, float, float);
+ method public static float getDefaultPointSize();
+ }
+
+ public class Preview extends androidx.camera.core.UseCase {
+ method @UiThread public androidx.camera.core.Preview.PreviewSurfaceProvider? getPreviewSurfaceProvider();
+ method @UiThread public void setPreviewSurfaceProvider(java.util.concurrent.Executor, androidx.camera.core.Preview.PreviewSurfaceProvider?);
+ method @UiThread public void setPreviewSurfaceProvider(androidx.camera.core.Preview.PreviewSurfaceProvider?);
+ }
+
+ public static final class Preview.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.Preview> {
+ ctor public Preview.Builder();
+ method public androidx.camera.core.Preview build();
+ method public androidx.camera.core.Preview.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.Preview.Builder setTargetName(String);
+ method public androidx.camera.core.Preview.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.Preview.Builder setTargetRotation(int);
+ }
+
+ public static interface Preview.PreviewSurfaceProvider {
+ method public com.google.common.util.concurrent.ListenableFuture<android.view.Surface!> provideSurface(android.util.Size, com.google.common.util.concurrent.ListenableFuture<java.lang.Void!>);
+ }
+
+ public class SurfaceOrientedMeteringPointFactory extends androidx.camera.core.MeteringPointFactory {
+ ctor public SurfaceOrientedMeteringPointFactory(float, float);
+ ctor public SurfaceOrientedMeteringPointFactory(float, float, androidx.camera.core.UseCase);
+ }
+
+ public class TorchState {
+ field public static final int OFF = 0; // 0x0
+ field public static final int ON = 1; // 0x1
+ }
+
+ public abstract class UseCase {
+ }
+
+}
+
diff --git a/camera/camera-core/api/public_plus_experimental_current.txt b/camera/camera-core/api/public_plus_experimental_current.txt
new file mode 100644
index 0000000..01f5953
--- /dev/null
+++ b/camera/camera-core/api/public_plus_experimental_current.txt
@@ -0,0 +1,246 @@
+// Signature format: 3.0
+package androidx.camera.core {
+
+ public class AspectRatio {
+ field public static final int RATIO_16_9 = 1; // 0x1
+ field public static final int RATIO_4_3 = 0; // 0x0
+ }
+
+ public interface Camera {
+ method public androidx.camera.core.CameraControl getCameraControl();
+ method public androidx.camera.core.CameraInfo getCameraInfo();
+ }
+
+ public interface CameraControl {
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> cancelFocusAndMetering();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> enableTorch(boolean);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setLinearZoom(@FloatRange(from=0.0f, to=1.0f) float);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setZoomRatio(float);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.FocusMeteringResult!> startFocusAndMetering(androidx.camera.core.FocusMeteringAction);
+ }
+
+ public static final class CameraControl.OperationCanceledException extends java.lang.Exception {
+ }
+
+ public interface CameraInfo {
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getLinearZoom();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getMaxZoomRatio();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getMinZoomRatio();
+ method public int getSensorRotationDegrees();
+ method public int getSensorRotationDegrees(int);
+ method public androidx.lifecycle.LiveData<java.lang.Integer!> getTorchState();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getZoomRatio();
+ method public boolean hasFlashUnit();
+ }
+
+ public final class CameraInfoUnavailableException extends java.lang.Exception {
+ }
+
+ public final class CameraSelector {
+ field public static final androidx.camera.core.CameraSelector DEFAULT_BACK_CAMERA;
+ field public static final androidx.camera.core.CameraSelector DEFAULT_FRONT_CAMERA;
+ field public static final int LENS_FACING_BACK = 1; // 0x1
+ field public static final int LENS_FACING_FRONT = 0; // 0x0
+ }
+
+ public static final class CameraSelector.Builder {
+ ctor public CameraSelector.Builder();
+ method public androidx.camera.core.CameraSelector build();
+ method public androidx.camera.core.CameraSelector.Builder requireLensFacing(int);
+ }
+
+ public final class CameraXConfig {
+ }
+
+ public static final class CameraXConfig.Builder {
+ ctor public CameraXConfig.Builder();
+ method public androidx.camera.core.CameraXConfig build();
+ method public static androidx.camera.core.CameraXConfig.Builder fromConfig(androidx.camera.core.CameraXConfig);
+ method public androidx.camera.core.CameraXConfig.Builder setCameraExecutor(java.util.concurrent.Executor);
+ }
+
+ public static interface CameraXConfig.Provider {
+ method public androidx.camera.core.CameraXConfig getCameraXConfig();
+ }
+
+ public final class DisplayOrientedMeteringPointFactory extends androidx.camera.core.MeteringPointFactory {
+ ctor public DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float);
+ ctor public DisplayOrientedMeteringPointFactory(android.view.Display, androidx.camera.core.CameraSelector, float, float);
+ }
+
+ @experimental.Experimental @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalGetImage {
+ }
+
+ public interface ExtendableBuilder<T> {
+ method public T build();
+ }
+
+ public final class FocusMeteringAction {
+ method public long getAutoCancelDurationInMillis();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAe();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAf();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAwb();
+ method public boolean isAutoCancelEnabled();
+ field public static final int FLAG_AE = 2; // 0x2
+ field public static final int FLAG_AF = 1; // 0x1
+ field public static final int FLAG_AWB = 4; // 0x4
+ }
+
+ public static class FocusMeteringAction.Builder {
+ method public androidx.camera.core.FocusMeteringAction.Builder addPoint(androidx.camera.core.MeteringPoint);
+ method public androidx.camera.core.FocusMeteringAction.Builder addPoint(androidx.camera.core.MeteringPoint, int);
+ method public androidx.camera.core.FocusMeteringAction build();
+ method public androidx.camera.core.FocusMeteringAction.Builder disableAutoCancel();
+ method public static androidx.camera.core.FocusMeteringAction.Builder from(androidx.camera.core.MeteringPoint);
+ method public static androidx.camera.core.FocusMeteringAction.Builder from(androidx.camera.core.MeteringPoint, int);
+ method public androidx.camera.core.FocusMeteringAction.Builder setAutoCancelDuration(@IntRange(from=1) long, java.util.concurrent.TimeUnit);
+ }
+
+ public final class FocusMeteringResult {
+ method public boolean isFocusSuccessful();
+ }
+
+ public final class ImageAnalysis extends androidx.camera.core.UseCase {
+ method public void clearAnalyzer();
+ method public void setAnalyzer(java.util.concurrent.Executor, androidx.camera.core.ImageAnalysis.Analyzer);
+ method public void setTargetRotation(int);
+ field public static final int STRATEGY_BLOCK_PRODUCER = 1; // 0x1
+ field public static final int STRATEGY_KEEP_ONLY_LATEST = 0; // 0x0
+ }
+
+ public static interface ImageAnalysis.Analyzer {
+ method public void analyze(androidx.camera.core.ImageProxy);
+ }
+
+ public static final class ImageAnalysis.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.ImageAnalysis> {
+ ctor public ImageAnalysis.Builder();
+ method public androidx.camera.core.ImageAnalysis build();
+ method public androidx.camera.core.ImageAnalysis.Builder setBackgroundExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.ImageAnalysis.Builder setBackpressureStrategy(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setImageQueueDepth(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetName(String);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetRotation(int);
+ }
+
+ public class ImageCapture extends androidx.camera.core.UseCase {
+ method public int getFlashMode();
+ method public void setFlashMode(int);
+ method public void setTargetAspectRatioCustom(android.util.Rational);
+ method public void setTargetRotation(int);
+ method public void takePicture(java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageCapturedCallback);
+ method public void takePicture(java.io.File, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
+ method public void takePicture(java.io.File, androidx.camera.core.ImageCapture.Metadata, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
+ field public static final int CAPTURE_MODE_MAXIMIZE_QUALITY = 0; // 0x0
+ field public static final int CAPTURE_MODE_MINIMIZE_LATENCY = 1; // 0x1
+ field public static final int ERROR_CAMERA_CLOSED = 3; // 0x3
+ field public static final int ERROR_CAPTURE_FAILED = 2; // 0x2
+ field public static final int ERROR_FILE_IO = 1; // 0x1
+ field public static final int ERROR_INVALID_CAMERA = 4; // 0x4
+ field public static final int ERROR_UNKNOWN = 0; // 0x0
+ field public static final int FLASH_MODE_AUTO = 0; // 0x0
+ field public static final int FLASH_MODE_OFF = 2; // 0x2
+ field public static final int FLASH_MODE_ON = 1; // 0x1
+ }
+
+ public static final class ImageCapture.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.ImageCapture> {
+ ctor public ImageCapture.Builder();
+ method public androidx.camera.core.ImageCapture build();
+ method public androidx.camera.core.ImageCapture.Builder setCaptureMode(int);
+ method public androidx.camera.core.ImageCapture.Builder setFlashMode(int);
+ method public androidx.camera.core.ImageCapture.Builder setIoExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.ImageCapture.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.ImageCapture.Builder setTargetName(String);
+ method public androidx.camera.core.ImageCapture.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.ImageCapture.Builder setTargetRotation(int);
+ }
+
+ public static final class ImageCapture.Metadata {
+ ctor public ImageCapture.Metadata();
+ method public android.location.Location? getLocation();
+ method public boolean isReversedHorizontal();
+ method public boolean isReversedVertical();
+ method public void setLocation(android.location.Location?);
+ method public void setReversedHorizontal(boolean);
+ method public void setReversedVertical(boolean);
+ }
+
+ public abstract static class ImageCapture.OnImageCapturedCallback {
+ ctor public ImageCapture.OnImageCapturedCallback();
+ method public void onCaptureSuccess(androidx.camera.core.ImageProxy);
+ method public void onError(int, String, Throwable?);
+ }
+
+ public static interface ImageCapture.OnImageSavedCallback {
+ method public void onError(int, String, Throwable?);
+ method public void onImageSaved(java.io.File);
+ }
+
+ public interface ImageInfo {
+ method public int getRotationDegrees();
+ method public long getTimestamp();
+ }
+
+ public interface ImageProxy extends java.lang.AutoCloseable {
+ method public void close();
+ method public android.graphics.Rect getCropRect();
+ method public int getFormat();
+ method public int getHeight();
+ method @androidx.camera.core.ExperimentalGetImage public android.media.Image? getImage();
+ method public androidx.camera.core.ImageInfo getImageInfo();
+ method public androidx.camera.core.ImageProxy.PlaneProxy![] getPlanes();
+ method public int getWidth();
+ method public void setCropRect(android.graphics.Rect?);
+ }
+
+ public static interface ImageProxy.PlaneProxy {
+ method public java.nio.ByteBuffer getBuffer();
+ method public int getPixelStride();
+ method public int getRowStride();
+ }
+
+ public class MeteringPoint {
+ method public float getSize();
+ }
+
+ public abstract class MeteringPointFactory {
+ method public final androidx.camera.core.MeteringPoint createPoint(float, float);
+ method public final androidx.camera.core.MeteringPoint createPoint(float, float, float);
+ method public static float getDefaultPointSize();
+ }
+
+ public class Preview extends androidx.camera.core.UseCase {
+ method @UiThread public androidx.camera.core.Preview.PreviewSurfaceProvider? getPreviewSurfaceProvider();
+ method @UiThread public void setPreviewSurfaceProvider(java.util.concurrent.Executor, androidx.camera.core.Preview.PreviewSurfaceProvider?);
+ method @UiThread public void setPreviewSurfaceProvider(androidx.camera.core.Preview.PreviewSurfaceProvider?);
+ }
+
+ public static final class Preview.Builder implements androidx.camera.core.ExtendableBuilder<androidx.camera.core.Preview> {
+ ctor public Preview.Builder();
+ method public androidx.camera.core.Preview build();
+ method public androidx.camera.core.Preview.Builder setTargetAspectRatio(int);
+ method public androidx.camera.core.Preview.Builder setTargetName(String);
+ method public androidx.camera.core.Preview.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.Preview.Builder setTargetRotation(int);
+ }
+
+ public static interface Preview.PreviewSurfaceProvider {
+ method public com.google.common.util.concurrent.ListenableFuture<android.view.Surface!> provideSurface(android.util.Size, com.google.common.util.concurrent.ListenableFuture<java.lang.Void!>);
+ }
+
+ public class SurfaceOrientedMeteringPointFactory extends androidx.camera.core.MeteringPointFactory {
+ ctor public SurfaceOrientedMeteringPointFactory(float, float);
+ ctor public SurfaceOrientedMeteringPointFactory(float, float, androidx.camera.core.UseCase);
+ }
+
+ public class TorchState {
+ field public static final int OFF = 0; // 0x0
+ field public static final int ON = 1; // 0x1
+ }
+
+ public abstract class UseCase {
+ }
+
+}
+
diff --git a/camera/camera-core/api/res-1.0.0-alpha08.txt b/camera/camera-core/api/res-1.0.0-alpha08.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/camera/camera-core/api/res-1.0.0-alpha08.txt
diff --git a/camera/camera-core/api/restricted_1.0.0-alpha08.txt b/camera/camera-core/api/restricted_1.0.0-alpha08.txt
new file mode 100644
index 0000000..5c7ebeb
--- /dev/null
+++ b/camera/camera-core/api/restricted_1.0.0-alpha08.txt
@@ -0,0 +1,1460 @@
+// Signature format: 3.0
+package androidx.camera.core {
+
+ public class AspectRatio {
+ field public static final int RATIO_16_9 = 1; // 0x1
+ field public static final int RATIO_4_3 = 0; // 0x0
+ }
+
+ @IntDef({androidx.camera.core.AspectRatio.RATIO_4_3, androidx.camera.core.AspectRatio.RATIO_16_9}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface AspectRatio.Ratio {
+ }
+
+ public interface Camera {
+ method public androidx.camera.core.CameraControl getCameraControl();
+ method public androidx.camera.core.CameraInfo getCameraInfo();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class CameraCaptureCallback {
+ ctor public CameraCaptureCallback();
+ method public void onCaptureCancelled();
+ method public void onCaptureCompleted(androidx.camera.core.CameraCaptureResult);
+ method public void onCaptureFailed(androidx.camera.core.CameraCaptureFailure);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraCaptureCallbacks {
+ method public static androidx.camera.core.CameraCaptureCallback! createComboCallback(androidx.camera.core.CameraCaptureCallback!...);
+ method public static androidx.camera.core.CameraCaptureCallback! createNoOpCallback();
+ }
+
+ public static final class CameraCaptureCallbacks.ComboCameraCaptureCallback extends androidx.camera.core.CameraCaptureCallback {
+ method public java.util.List<androidx.camera.core.CameraCaptureCallback!> getCallbacks();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraCaptureFailure {
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public CameraCaptureFailure(androidx.camera.core.CameraCaptureFailure.Reason!);
+ method public androidx.camera.core.CameraCaptureFailure.Reason! getReason();
+ }
+
+ public enum CameraCaptureFailure.Reason {
+ enum_constant public static final androidx.camera.core.CameraCaptureFailure.Reason ERROR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraCaptureMetaData {
+ }
+
+ public enum CameraCaptureMetaData.AeState {
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AeState CONVERGED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AeState FLASH_REQUIRED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AeState INACTIVE;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AeState LOCKED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AeState SEARCHING;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AeState UNKNOWN;
+ }
+
+ public enum CameraCaptureMetaData.AfMode {
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfMode OFF;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfMode ON_CONTINUOUS_AUTO;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfMode ON_MANUAL_AUTO;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfMode UNKNOWN;
+ }
+
+ public enum CameraCaptureMetaData.AfState {
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfState FOCUSED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfState INACTIVE;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfState LOCKED_FOCUSED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfState LOCKED_NOT_FOCUSED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfState SCANNING;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfState UNKNOWN;
+ }
+
+ public enum CameraCaptureMetaData.AwbState {
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AwbState CONVERGED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AwbState INACTIVE;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AwbState LOCKED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AwbState METERING;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AwbState UNKNOWN;
+ }
+
+ public enum CameraCaptureMetaData.FlashState {
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.FlashState FIRED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.FlashState NONE;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.FlashState READY;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.FlashState UNKNOWN;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CameraCaptureResult {
+ method public androidx.camera.core.CameraCaptureMetaData.AeState getAeState();
+ method public androidx.camera.core.CameraCaptureMetaData.AfMode getAfMode();
+ method public androidx.camera.core.CameraCaptureMetaData.AfState getAfState();
+ method public androidx.camera.core.CameraCaptureMetaData.AwbState getAwbState();
+ method public androidx.camera.core.CameraCaptureMetaData.FlashState getFlashState();
+ method public Object! getTag();
+ method public long getTimestamp();
+ }
+
+ public static final class CameraCaptureResult.EmptyCameraCaptureResult implements androidx.camera.core.CameraCaptureResult {
+ ctor public CameraCaptureResult.EmptyCameraCaptureResult();
+ method public static androidx.camera.core.CameraCaptureResult! create();
+ method public androidx.camera.core.CameraCaptureMetaData.AeState getAeState();
+ method public androidx.camera.core.CameraCaptureMetaData.AfMode getAfMode();
+ method public androidx.camera.core.CameraCaptureMetaData.AfState getAfState();
+ method public androidx.camera.core.CameraCaptureMetaData.AwbState getAwbState();
+ method public androidx.camera.core.CameraCaptureMetaData.FlashState getFlashState();
+ method public Object! getTag();
+ method public long getTimestamp();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraCaptureResults {
+ method public static androidx.camera.core.CameraCaptureResult! retrieveCameraCaptureResult(androidx.camera.core.ImageInfo!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraCaptureSessionStateCallbacks {
+ method public static android.hardware.camera2.CameraCaptureSession.StateCallback! createComboCallback(java.util.List<android.hardware.camera2.CameraCaptureSession.StateCallback!>!);
+ method public static android.hardware.camera2.CameraCaptureSession.StateCallback! createComboCallback(android.hardware.camera2.CameraCaptureSession.StateCallback!...);
+ method public static android.hardware.camera2.CameraCaptureSession.StateCallback! createNoOpCallback();
+ }
+
+ public interface CameraControl {
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> cancelFocusAndMetering();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> enableTorch(boolean);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setLinearZoom(@FloatRange(from=0.0f, to=1.0f) float);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setZoomRatio(float);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.FocusMeteringResult!> startFocusAndMetering(androidx.camera.core.FocusMeteringAction);
+ }
+
+ public static final class CameraControl.OperationCanceledException extends java.lang.Exception {
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public CameraControl.OperationCanceledException(String);
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public CameraControl.OperationCanceledException(String, Throwable);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CameraControlInternal extends androidx.camera.core.CameraControl {
+ method public void cancelAfAeTrigger(boolean, boolean);
+ method @androidx.camera.core.ImageCapture.FlashMode public int getFlashMode();
+ method public void setCropRegion(android.graphics.Rect?);
+ method public void setFlashMode(@androidx.camera.core.ImageCapture.FlashMode int);
+ method public void submitCaptureRequests(java.util.List<androidx.camera.core.CaptureConfig!>);
+ method public void triggerAePrecapture();
+ method public void triggerAf();
+ field public static final androidx.camera.core.CameraControlInternal! DEFAULT_EMPTY_INSTANCE;
+ }
+
+ public static interface CameraControlInternal.ControlUpdateCallback {
+ method public void onCameraControlCaptureRequests(java.util.List<androidx.camera.core.CaptureConfig!>);
+ method public void onCameraControlUpdateSessionConfig(androidx.camera.core.SessionConfig);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CameraDeviceConfig {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter? getCameraIdFilter(androidx.camera.core.CameraIdFilter?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter getCameraIdFilter();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Integer? getLensFacing(Integer?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.camera.core.CameraSelector.LensFacing public int getLensFacing();
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<androidx.camera.core.CameraIdFilter!>! OPTION_CAMERA_ID_FILTER;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.lang.Integer!>! OPTION_LENS_FACING;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface CameraDeviceConfig.Builder<B> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setCameraIdFilter(androidx.camera.core.CameraIdFilter);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setLensFacing(@androidx.camera.core.CameraSelector.LensFacing int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraDeviceStateCallbacks {
+ method public static android.hardware.camera2.CameraDevice.StateCallback! createComboCallback(java.util.List<android.hardware.camera2.CameraDevice.StateCallback!>!);
+ method public static android.hardware.camera2.CameraDevice.StateCallback! createComboCallback(android.hardware.camera2.CameraDevice.StateCallback!...);
+ method public static android.hardware.camera2.CameraDevice.StateCallback! createNoOpCallback();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CameraDeviceSurfaceManager {
+ method public boolean checkSupported(String!, java.util.List<androidx.camera.core.SurfaceConfig!>!);
+ method public android.util.Rational? getCorrectedAspectRatio(String, @androidx.camera.core.ImageOutputConfig.RotationValue int);
+ method public android.util.Size? getMaxOutputSize(String!, int);
+ method public android.util.Size! getPreviewSize();
+ method public java.util.Map<androidx.camera.core.UseCase!,android.util.Size!>! getSuggestedResolutions(String!, java.util.List<androidx.camera.core.UseCase!>!, java.util.List<androidx.camera.core.UseCase!>!);
+ method public void init();
+ method public boolean isInitialized();
+ method public boolean requiresCorrectedAspectRatio(String);
+ method public androidx.camera.core.SurfaceConfig! transformSurfaceConfig(String!, int, android.util.Size!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CameraFactory {
+ method public String? cameraIdForLensFacing(@androidx.camera.core.CameraSelector.LensFacing int) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public java.util.Set<java.lang.String!> getAvailableCameraIds() throws androidx.camera.core.CameraInfoUnavailableException;
+ method public androidx.camera.core.CameraInternal getCamera(String) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public androidx.camera.core.LensFacingCameraIdFilter getLensFacingCameraIdFilter(@androidx.camera.core.CameraSelector.LensFacing int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CameraIdFilter {
+ method public java.util.Set<java.lang.String!> filter(java.util.Set<java.lang.String!>);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraIdFilterSet implements androidx.camera.core.CameraIdFilter {
+ ctor public CameraIdFilterSet();
+ method public void addCameraIdFilter(androidx.camera.core.CameraIdFilter);
+ method public java.util.Set<java.lang.String!> filter(java.util.Set<java.lang.String!>);
+ method public java.util.Set<androidx.camera.core.CameraIdFilter!> getCameraIdFilters();
+ }
+
+ public interface CameraInfo {
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getLinearZoom();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getMaxZoomRatio();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getMinZoomRatio();
+ method public int getSensorRotationDegrees();
+ method public int getSensorRotationDegrees(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ method public androidx.lifecycle.LiveData<java.lang.Integer!> getTorchState();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getZoomRatio();
+ method public boolean hasFlashUnit();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CameraInfoInternal extends androidx.camera.core.CameraInfo {
+ method public String getCameraId();
+ method public Integer? getLensFacing();
+ }
+
+ public final class CameraInfoUnavailableException extends java.lang.Exception {
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public CameraInfoUnavailableException(String!, Throwable!);
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public CameraInfoUnavailableException(String!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CameraInternal extends androidx.camera.core.Camera androidx.camera.core.UseCase.StateChangeCallback {
+ method public void addOnlineUseCase(java.util.Collection<androidx.camera.core.UseCase!>);
+ method public void close();
+ method public androidx.camera.core.CameraControlInternal getCameraControlInternal();
+ method public androidx.camera.core.CameraInfoInternal getCameraInfoInternal();
+ method public androidx.camera.core.Observable<androidx.camera.core.CameraInternal.State!> getCameraState();
+ method public void open();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> release();
+ method public void removeOnlineUseCase(java.util.Collection<androidx.camera.core.UseCase!>);
+ }
+
+ public enum CameraInternal.State {
+ enum_constant public static final androidx.camera.core.CameraInternal.State CLOSED;
+ enum_constant public static final androidx.camera.core.CameraInternal.State CLOSING;
+ enum_constant public static final androidx.camera.core.CameraInternal.State OPEN;
+ enum_constant public static final androidx.camera.core.CameraInternal.State OPENING;
+ enum_constant public static final androidx.camera.core.CameraInternal.State PENDING_OPEN;
+ enum_constant public static final androidx.camera.core.CameraInternal.State RELEASED;
+ enum_constant public static final androidx.camera.core.CameraInternal.State RELEASING;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraOrientationUtil {
+ method public static int getRelativeImageRotation(int, int, boolean);
+ method public static int surfaceRotationToDegrees(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraRepository {
+ ctor public CameraRepository();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> deinit();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraInternal! getCamera(String!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void init(androidx.camera.core.CameraFactory!);
+ method public void onGroupActive(androidx.camera.core.UseCaseGroup!);
+ method public void onGroupInactive(androidx.camera.core.UseCaseGroup!);
+ }
+
+ public final class CameraSelector {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.LinkedHashSet<androidx.camera.core.CameraIdFilter!> getCameraFilterSet();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Integer? getLensFacing();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public String select(java.util.Set<java.lang.String!>);
+ field public static final androidx.camera.core.CameraSelector DEFAULT_BACK_CAMERA;
+ field public static final androidx.camera.core.CameraSelector DEFAULT_FRONT_CAMERA;
+ field public static final int LENS_FACING_BACK = 1; // 0x1
+ field public static final int LENS_FACING_FRONT = 0; // 0x0
+ }
+
+ public static final class CameraSelector.Builder {
+ ctor public CameraSelector.Builder();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraSelector.Builder appendFilter(androidx.camera.core.CameraIdFilter);
+ method public androidx.camera.core.CameraSelector build();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.CameraSelector.Builder fromSelector(androidx.camera.core.CameraSelector);
+ method public androidx.camera.core.CameraSelector.Builder requireLensFacing(@androidx.camera.core.CameraSelector.LensFacing int);
+ }
+
+ @IntDef({androidx.camera.core.CameraSelector.LENS_FACING_FRONT, androidx.camera.core.CameraSelector.LENS_FACING_BACK}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface CameraSelector.LensFacing {
+ }
+
+ @MainThread @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraX {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.Camera bindToLifecycle(androidx.lifecycle.LifecycleOwner, androidx.camera.core.CameraSelector, androidx.camera.core.UseCase!...);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static java.util.Collection<androidx.camera.core.UseCase!>? getActiveUseCases();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.CameraFactory getCameraFactory();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.CameraInfoInternal getCameraInfo(String!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static String? getCameraWithCameraSelector(androidx.camera.core.CameraSelector);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static String? getCameraWithLensFacing(@androidx.camera.core.CameraSelector.LensFacing int) throws androidx.camera.core.CameraInfoUnavailableException;
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static android.content.Context getContext();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.camera.core.CameraSelector.LensFacing public static int getDefaultLensFacing() throws androidx.camera.core.CameraInfoUnavailableException;
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static <C extends androidx.camera.core.UseCaseConfig<?>> C? getDefaultUseCaseConfig(Class<C!>!, Integer?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.CameraX!> getOrCreateInstance(android.content.Context);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.CameraDeviceSurfaceManager getSurfaceManager();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public static com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> initialize(android.content.Context, androidx.camera.core.CameraXConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static boolean isBound(androidx.camera.core.UseCase);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static boolean isInitialized();
+ method public static com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> shutdown();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static void unbind(androidx.camera.core.UseCase!...);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static void unbindAll();
+ }
+
+ public final class CameraXConfig implements androidx.camera.core.Config androidx.camera.core.TargetConfig<androidx.camera.core.CameraX> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean containsOption(androidx.camera.core.Config.Option<?>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void findOptions(String, androidx.camera.core.Config.OptionMatcher);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.concurrent.Executor? getCameraExecutor(java.util.concurrent.Executor?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraFactory? getCameraFactory(androidx.camera.core.CameraFactory?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraDeviceSurfaceManager? getDeviceSurfaceManager(androidx.camera.core.CameraDeviceSurfaceManager?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.CameraX!>? getTargetClass(Class<androidx.camera.core.CameraX!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.CameraX!> getTargetClass();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public String? getTargetName(String?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public String getTargetName();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCaseConfigFactory? getUseCaseConfigRepository(androidx.camera.core.UseCaseConfigFactory?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Set<androidx.camera.core.Config.Option<?>!> listOptions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>, ValueT?);
+ }
+
+ public static final class CameraXConfig.Builder implements androidx.camera.core.TargetConfig.Builder<androidx.camera.core.CameraX,androidx.camera.core.CameraXConfig.Builder> {
+ ctor public CameraXConfig.Builder();
+ method public androidx.camera.core.CameraXConfig build();
+ method public static androidx.camera.core.CameraXConfig.Builder fromConfig(androidx.camera.core.CameraXConfig);
+ method public androidx.camera.core.CameraXConfig.Builder setCameraExecutor(java.util.concurrent.Executor);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraXConfig.Builder setCameraFactory(androidx.camera.core.CameraFactory);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraXConfig.Builder setDeviceSurfaceManager(androidx.camera.core.CameraDeviceSurfaceManager);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraXConfig.Builder setTargetClass(Class<androidx.camera.core.CameraX!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraXConfig.Builder setTargetName(String);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraXConfig.Builder setUseCaseConfigFactory(androidx.camera.core.UseCaseConfigFactory);
+ }
+
+ public static interface CameraXConfig.Provider {
+ method public androidx.camera.core.CameraXConfig getCameraXConfig();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraXThreads {
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final String TAG = "CameraX-";
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CaptureBundle {
+ method public java.util.List<androidx.camera.core.CaptureStage!>! getCaptureStages();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CaptureConfig {
+ method public static androidx.camera.core.CaptureConfig! defaultEmptyCaptureConfig();
+ method public java.util.List<androidx.camera.core.CameraCaptureCallback!>! getCameraCaptureCallbacks();
+ method public androidx.camera.core.Config! getImplementationOptions();
+ method public java.util.List<androidx.camera.core.DeferrableSurface!>! getSurfaces();
+ method public Object! getTag();
+ method public int getTemplateType();
+ method public boolean isUseRepeatingSurface();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class CaptureConfig.Builder {
+ ctor public CaptureConfig.Builder();
+ method public void addAllCameraCaptureCallbacks(java.util.Collection<androidx.camera.core.CameraCaptureCallback!>!);
+ method public void addCameraCaptureCallback(androidx.camera.core.CameraCaptureCallback!);
+ method public void addImplementationOptions(androidx.camera.core.Config!);
+ method public void addSurface(androidx.camera.core.DeferrableSurface!);
+ method public androidx.camera.core.CaptureConfig! build();
+ method public void clearSurfaces();
+ method public static androidx.camera.core.CaptureConfig.Builder! createFrom(androidx.camera.core.UseCaseConfig<?>!);
+ method public static androidx.camera.core.CaptureConfig.Builder! from(androidx.camera.core.CaptureConfig!);
+ method public androidx.camera.core.Config! getImplementationOptions();
+ method public java.util.Set<androidx.camera.core.DeferrableSurface!> getSurfaces();
+ method public void removeSurface(androidx.camera.core.DeferrableSurface!);
+ method public void setImplementationOptions(androidx.camera.core.Config!);
+ method public void setTag(Object!);
+ method public void setTemplateType(int);
+ method public void setUseRepeatingSurface(boolean);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface CaptureConfig.OptionUnpacker {
+ method public void unpack(androidx.camera.core.UseCaseConfig<?>!, androidx.camera.core.CaptureConfig.Builder!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CaptureProcessor {
+ method public void onOutputSurface(android.view.Surface!, int);
+ method public void onResolutionUpdate(android.util.Size!);
+ method public void process(androidx.camera.core.ImageProxyBundle!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CaptureStage {
+ method public androidx.camera.core.CaptureConfig! getCaptureConfig();
+ method public int getId();
+ }
+
+ public static final class CaptureStage.DefaultCaptureStage implements androidx.camera.core.CaptureStage {
+ method public androidx.camera.core.CaptureConfig! getCaptureConfig();
+ method public int getId();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface Config {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean containsOption(androidx.camera.core.Config.Option<?>!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void findOptions(String!, androidx.camera.core.Config.OptionMatcher!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Set<androidx.camera.core.Config.Option<?>!>! listOptions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT! retrieveOption(androidx.camera.core.Config.Option<ValueT!>!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>!, ValueT?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract static class Config.Option<T> {
+ method public static <T> androidx.camera.core.Config.Option<T!>! create(String!, Class<?>!);
+ method public static <T> androidx.camera.core.Config.Option<T!>! create(String!, Class<?>!, Object?);
+ method public abstract String! getId();
+ method public abstract Object? getToken();
+ method public abstract Class<T!>! getValueClass();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface Config.OptionMatcher {
+ method public boolean onOptionMatched(androidx.camera.core.Config.Option<?>!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface ConfigProvider<C extends androidx.camera.core.Config> {
+ method public C! getConfig(Integer?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class DeferrableSurface {
+ ctor public DeferrableSurface();
+ method public final void close();
+ method public final com.google.common.util.concurrent.ListenableFuture<android.view.Surface!> getSurface();
+ method public void notifySurfaceAttached();
+ method public void notifySurfaceDetached();
+ method public void setOnSurfaceDetachedListener(java.util.concurrent.Executor, androidx.camera.core.DeferrableSurface.OnSurfaceDetachedListener);
+ field protected static final String TAG = "DeferrableSurface";
+ }
+
+ public static interface DeferrableSurface.OnSurfaceDetachedListener {
+ method public void onSurfaceDetached();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class DeferrableSurface.SurfaceClosedException extends java.lang.Exception {
+ ctor public DeferrableSurface.SurfaceClosedException(String, Throwable, androidx.camera.core.DeferrableSurface);
+ ctor public DeferrableSurface.SurfaceClosedException(String, androidx.camera.core.DeferrableSurface);
+ method public androidx.camera.core.DeferrableSurface getDeferrableSurface();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class DeferrableSurfaces {
+ method public static com.google.common.util.concurrent.ListenableFuture<java.util.List<android.view.Surface!>!> surfaceListWithTimeout(java.util.Collection<androidx.camera.core.DeferrableSurface!>, boolean, long, java.util.concurrent.Executor, java.util.concurrent.ScheduledExecutorService);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class DeviceProperties {
+ ctor public DeviceProperties();
+ method public static androidx.camera.core.DeviceProperties! create();
+ method public static androidx.camera.core.DeviceProperties! create(String!, String!, int);
+ method public abstract String! manufacturer();
+ method public abstract String! model();
+ method public abstract int sdkVersion();
+ }
+
+ public final class DisplayOrientedMeteringPointFactory extends androidx.camera.core.MeteringPointFactory {
+ ctor public DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float);
+ ctor public DisplayOrientedMeteringPointFactory(android.view.Display, androidx.camera.core.CameraSelector, float, float);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected android.graphics.PointF convertPoint(float, float);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class Exif {
+ method public void attachLocation(android.location.Location!);
+ method public void attachTimestamp();
+ method public static androidx.camera.core.Exif! createFromFile(java.io.File!) throws java.io.IOException;
+ method public static androidx.camera.core.Exif! createFromFileString(String!) throws java.io.IOException;
+ method public static androidx.camera.core.Exif! createFromInputStream(java.io.InputStream!) throws java.io.IOException;
+ method public void flipHorizontally();
+ method public void flipVertically();
+ method public String? getDescription();
+ method public int getHeight();
+ method public long getLastModifiedTimestamp();
+ method public android.location.Location? getLocation();
+ method public int getRotation();
+ method public long getTimestamp();
+ method public int getWidth();
+ method public boolean isFlippedHorizontally();
+ method public boolean isFlippedVertically();
+ method public void removeLocation();
+ method public void removeTimestamp();
+ method public void rotate(int);
+ method public void save() throws java.io.IOException;
+ method public void setDescription(String?);
+ field public static final long INVALID_TIMESTAMP = -1L; // 0xffffffffffffffffL
+ }
+
+ public interface ExtendableBuilder<T> {
+ method public T build();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.MutableConfig getMutableConfig();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class ExtendableUseCaseConfigFactory implements androidx.camera.core.UseCaseConfigFactory {
+ ctor public ExtendableUseCaseConfigFactory();
+ method public <C extends androidx.camera.core.UseCaseConfig<?>> C? getConfig(Class<C!>!, Integer?);
+ method public <C extends androidx.camera.core.Config> void installDefaultProvider(Class<C!>!, androidx.camera.core.ConfigProvider<C!>!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class FlashModeHelper {
+ method public static String nameOf(@androidx.camera.core.ImageCapture.FlashMode int);
+ method @androidx.camera.core.ImageCapture.FlashMode public static int valueOf(String?);
+ }
+
+ public final class FocusMeteringAction {
+ method public long getAutoCancelDurationInMillis();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAe();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAf();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAwb();
+ method public boolean isAutoCancelEnabled();
+ field public static final int FLAG_AE = 2; // 0x2
+ field public static final int FLAG_AF = 1; // 0x1
+ field public static final int FLAG_AWB = 4; // 0x4
+ }
+
+ public static class FocusMeteringAction.Builder {
+ method public androidx.camera.core.FocusMeteringAction.Builder addPoint(androidx.camera.core.MeteringPoint);
+ method public androidx.camera.core.FocusMeteringAction.Builder addPoint(androidx.camera.core.MeteringPoint, @androidx.camera.core.FocusMeteringAction.MeteringMode int);
+ method public androidx.camera.core.FocusMeteringAction build();
+ method public androidx.camera.core.FocusMeteringAction.Builder disableAutoCancel();
+ method public static androidx.camera.core.FocusMeteringAction.Builder from(androidx.camera.core.MeteringPoint);
+ method public static androidx.camera.core.FocusMeteringAction.Builder from(androidx.camera.core.MeteringPoint, @androidx.camera.core.FocusMeteringAction.MeteringMode int);
+ method public androidx.camera.core.FocusMeteringAction.Builder setAutoCancelDuration(@IntRange(from=1) long, java.util.concurrent.TimeUnit);
+ }
+
+ @IntDef(flag=true, value={androidx.camera.core.FocusMeteringAction.FLAG_AF, androidx.camera.core.FocusMeteringAction.FLAG_AE, androidx.camera.core.FocusMeteringAction.FLAG_AWB}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface FocusMeteringAction.MeteringMode {
+ }
+
+ public final class FocusMeteringResult {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.FocusMeteringResult create(boolean);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.FocusMeteringResult emptyInstance();
+ method public boolean isFocusSuccessful();
+ }
+
+ public final class ImageAnalysis extends androidx.camera.core.UseCase {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void clear();
+ method public void clearAnalyzer();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected java.util.Map<java.lang.String!,android.util.Size!> onSuggestedResolutionUpdated(java.util.Map<java.lang.String!,android.util.Size!>);
+ method public void setAnalyzer(java.util.concurrent.Executor, androidx.camera.core.ImageAnalysis.Analyzer);
+ method public void setTargetRotation(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.ImageAnalysis.Defaults! DEFAULT_CONFIG;
+ field public static final int STRATEGY_BLOCK_PRODUCER = 1; // 0x1
+ field public static final int STRATEGY_KEEP_ONLY_LATEST = 0; // 0x0
+ }
+
+ public static interface ImageAnalysis.Analyzer {
+ method public void analyze(androidx.camera.core.ImageProxy);
+ }
+
+ @IntDef({androidx.camera.core.ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST, androidx.camera.core.ImageAnalysis.STRATEGY_BLOCK_PRODUCER}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ImageAnalysis.BackpressureStrategy {
+ }
+
+ public static final class ImageAnalysis.Builder implements androidx.camera.core.CameraDeviceConfig.Builder<androidx.camera.core.ImageAnalysis.Builder> androidx.camera.core.ImageOutputConfig.Builder<androidx.camera.core.ImageAnalysis.Builder> androidx.camera.core.UseCaseConfig.Builder<androidx.camera.core.ImageAnalysis,androidx.camera.core.ImageAnalysisConfig,androidx.camera.core.ImageAnalysis.Builder> {
+ ctor public ImageAnalysis.Builder();
+ method public androidx.camera.core.ImageAnalysis build();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.ImageAnalysis.Builder fromConfig(androidx.camera.core.ImageAnalysisConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.MutableConfig getMutableConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysisConfig getUseCaseConfig();
+ method public androidx.camera.core.ImageAnalysis.Builder setBackgroundExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.ImageAnalysis.Builder setBackpressureStrategy(@androidx.camera.core.ImageAnalysis.BackpressureStrategy int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setCameraIdFilter(androidx.camera.core.CameraIdFilter);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setDefaultCaptureConfig(androidx.camera.core.CaptureConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setDefaultResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setDefaultSessionConfig(androidx.camera.core.SessionConfig);
+ method public androidx.camera.core.ImageAnalysis.Builder setImageQueueDepth(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setLensFacing(@androidx.camera.core.CameraSelector.LensFacing int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setMaxResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setSurfaceOccupancyPriority(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetAspectRatio(@androidx.camera.core.AspectRatio.Ratio int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setTargetAspectRatioCustom(android.util.Rational);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setTargetClass(Class<androidx.camera.core.ImageAnalysis!>);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetName(String);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetRotation(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class ImageAnalysis.Defaults implements androidx.camera.core.ConfigProvider<androidx.camera.core.ImageAnalysisConfig> {
+ ctor public ImageAnalysis.Defaults();
+ method public androidx.camera.core.ImageAnalysisConfig getConfig(Integer?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class ImageAnalysisConfig implements androidx.camera.core.CameraDeviceConfig androidx.camera.core.ImageOutputConfig androidx.camera.core.UseCaseConfig<androidx.camera.core.ImageAnalysis> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean containsOption(androidx.camera.core.Config.Option<?>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void findOptions(String, androidx.camera.core.Config.OptionMatcher);
+ method public java.util.concurrent.Executor? getBackgroundExecutor(java.util.concurrent.Executor?);
+ method public java.util.concurrent.Executor getBackgroundExecutor();
+ method @androidx.camera.core.ImageAnalysis.BackpressureStrategy public int getBackpressureStrategy(@androidx.camera.core.ImageAnalysis.BackpressureStrategy int);
+ method @androidx.camera.core.ImageAnalysis.BackpressureStrategy public int getBackpressureStrategy();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter? getCameraIdFilter(androidx.camera.core.CameraIdFilter?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter getCameraIdFilter();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker? getCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker getCaptureOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig? getDefaultCaptureConfig(androidx.camera.core.CaptureConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig getDefaultCaptureConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getDefaultResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getDefaultResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig? getDefaultSessionConfig(androidx.camera.core.SessionConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig getDefaultSessionConfig();
+ method public int getImageQueueDepth(int);
+ method public int getImageQueueDepth();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Integer? getLensFacing(Integer?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.camera.core.CameraSelector.LensFacing public int getLensFacing();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getMaxResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getMaxResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker? getSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker getSessionOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>? getSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!> getSupportedResolutions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority();
+ method @androidx.camera.core.AspectRatio.Ratio public int getTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational? getTargetAspectRatioCustom(android.util.Rational?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational getTargetAspectRatioCustom();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.ImageAnalysis!>? getTargetClass(Class<androidx.camera.core.ImageAnalysis!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.ImageAnalysis!> getTargetClass();
+ method public String? getTargetName(String?);
+ method public String getTargetName();
+ method public android.util.Size? getTargetResolution(android.util.Size?);
+ method public android.util.Size getTargetResolution();
+ method @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation(int);
+ method @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback? getUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback getUseCaseEventCallback();
+ method public boolean hasTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Set<androidx.camera.core.Config.Option<?>!> listOptions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>, ValueT?);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.util.concurrent.Executor!>! OPTION_BACKGROUND_EXECUTOR;
+ }
+
+ public class ImageCapture extends androidx.camera.core.UseCase {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void clear();
+ method @androidx.camera.core.ImageCapture.FlashMode public int getFlashMode();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected java.util.Map<java.lang.String!,android.util.Size!> onSuggestedResolutionUpdated(java.util.Map<java.lang.String!,android.util.Size!>);
+ method public void setFlashMode(@androidx.camera.core.ImageCapture.FlashMode int);
+ method public void setTargetAspectRatioCustom(android.util.Rational);
+ method public void setTargetRotation(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ method public void takePicture(java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageCapturedCallback);
+ method public void takePicture(java.io.File, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
+ method public void takePicture(java.io.File, androidx.camera.core.ImageCapture.Metadata, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
+ field public static final int CAPTURE_MODE_MAXIMIZE_QUALITY = 0; // 0x0
+ field public static final int CAPTURE_MODE_MINIMIZE_LATENCY = 1; // 0x1
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.ImageCapture.Defaults! DEFAULT_CONFIG;
+ field public static final int ERROR_CAMERA_CLOSED = 3; // 0x3
+ field public static final int ERROR_CAPTURE_FAILED = 2; // 0x2
+ field public static final int ERROR_FILE_IO = 1; // 0x1
+ field public static final int ERROR_INVALID_CAMERA = 4; // 0x4
+ field public static final int ERROR_UNKNOWN = 0; // 0x0
+ field public static final int FLASH_MODE_AUTO = 0; // 0x0
+ field public static final int FLASH_MODE_OFF = 2; // 0x2
+ field public static final int FLASH_MODE_ON = 1; // 0x1
+ }
+
+ public static final class ImageCapture.Builder implements androidx.camera.core.CameraDeviceConfig.Builder<androidx.camera.core.ImageCapture.Builder> androidx.camera.core.ImageOutputConfig.Builder<androidx.camera.core.ImageCapture.Builder> androidx.camera.core.UseCaseConfig.Builder<androidx.camera.core.ImageCapture,androidx.camera.core.ImageCaptureConfig,androidx.camera.core.ImageCapture.Builder> {
+ ctor public ImageCapture.Builder();
+ method public androidx.camera.core.ImageCapture build();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.ImageCapture.Builder fromConfig(androidx.camera.core.ImageCaptureConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.MutableConfig getMutableConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCaptureConfig getUseCaseConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setBufferFormat(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setCameraIdFilter(androidx.camera.core.CameraIdFilter);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setCaptureBundle(androidx.camera.core.CaptureBundle);
+ method public androidx.camera.core.ImageCapture.Builder setCaptureMode(@androidx.camera.core.ImageCapture.CaptureMode int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setCaptureProcessor(androidx.camera.core.CaptureProcessor);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setDefaultCaptureConfig(androidx.camera.core.CaptureConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setDefaultResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setDefaultSessionConfig(androidx.camera.core.SessionConfig);
+ method public androidx.camera.core.ImageCapture.Builder setFlashMode(@androidx.camera.core.ImageCapture.FlashMode int);
+ method public androidx.camera.core.ImageCapture.Builder setIoExecutor(java.util.concurrent.Executor);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setLensFacing(@androidx.camera.core.CameraSelector.LensFacing int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setMaxCaptureStages(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setMaxResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setSurfaceOccupancyPriority(int);
+ method public androidx.camera.core.ImageCapture.Builder setTargetAspectRatio(@androidx.camera.core.AspectRatio.Ratio int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setTargetAspectRatioCustom(android.util.Rational);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setTargetClass(Class<androidx.camera.core.ImageCapture!>);
+ method public androidx.camera.core.ImageCapture.Builder setTargetName(String);
+ method public androidx.camera.core.ImageCapture.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.ImageCapture.Builder setTargetRotation(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback);
+ }
+
+ @IntDef({androidx.camera.core.ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY, androidx.camera.core.ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ImageCapture.CaptureMode {
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class ImageCapture.Defaults implements androidx.camera.core.ConfigProvider<androidx.camera.core.ImageCaptureConfig> {
+ ctor public ImageCapture.Defaults();
+ method public androidx.camera.core.ImageCaptureConfig! getConfig(Integer?);
+ }
+
+ @IntDef({androidx.camera.core.ImageCapture.FLASH_MODE_AUTO, androidx.camera.core.ImageCapture.FLASH_MODE_ON, androidx.camera.core.ImageCapture.FLASH_MODE_OFF}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ImageCapture.FlashMode {
+ }
+
+ @IntDef({androidx.camera.core.ImageCapture.ERROR_UNKNOWN, androidx.camera.core.ImageCapture.ERROR_FILE_IO, androidx.camera.core.ImageCapture.ERROR_CAPTURE_FAILED, androidx.camera.core.ImageCapture.ERROR_CAMERA_CLOSED, androidx.camera.core.ImageCapture.ERROR_INVALID_CAMERA}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ImageCapture.ImageCaptureError {
+ }
+
+ public static final class ImageCapture.Metadata {
+ ctor public ImageCapture.Metadata();
+ method public android.location.Location? getLocation();
+ method public boolean isReversedHorizontal();
+ method public boolean isReversedVertical();
+ method public void setLocation(android.location.Location?);
+ method public void setReversedHorizontal(boolean);
+ method public void setReversedVertical(boolean);
+ }
+
+ public abstract static class ImageCapture.OnImageCapturedCallback {
+ ctor public ImageCapture.OnImageCapturedCallback();
+ method public void onCaptureSuccess(androidx.camera.core.ImageProxy);
+ method public void onError(@androidx.camera.core.ImageCapture.ImageCaptureError int, String, Throwable?);
+ }
+
+ public static interface ImageCapture.OnImageSavedCallback {
+ method public void onError(@androidx.camera.core.ImageCapture.ImageCaptureError int, String, Throwable?);
+ method public void onImageSaved(java.io.File);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class ImageCaptureConfig implements androidx.camera.core.CameraDeviceConfig androidx.camera.core.ImageOutputConfig androidx.camera.core.UseCaseConfig<androidx.camera.core.ImageCapture> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean containsOption(androidx.camera.core.Config.Option<?>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void findOptions(String, androidx.camera.core.Config.OptionMatcher);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Integer? getBufferFormat(Integer?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Integer getBufferFormat();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter? getCameraIdFilter(androidx.camera.core.CameraIdFilter?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter getCameraIdFilter();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureBundle? getCaptureBundle(androidx.camera.core.CaptureBundle?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureBundle getCaptureBundle();
+ method @androidx.camera.core.ImageCapture.CaptureMode public int getCaptureMode();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker? getCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker getCaptureOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureProcessor? getCaptureProcessor(androidx.camera.core.CaptureProcessor?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureProcessor getCaptureProcessor();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig? getDefaultCaptureConfig(androidx.camera.core.CaptureConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig getDefaultCaptureConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getDefaultResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getDefaultResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig? getDefaultSessionConfig(androidx.camera.core.SessionConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig getDefaultSessionConfig();
+ method @androidx.camera.core.ImageCapture.FlashMode public int getFlashMode();
+ method public java.util.concurrent.Executor? getIoExecutor(java.util.concurrent.Executor?);
+ method public java.util.concurrent.Executor getIoExecutor();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Integer? getLensFacing(Integer?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.camera.core.CameraSelector.LensFacing public int getLensFacing();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getMaxCaptureStages(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getMaxCaptureStages();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getMaxResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getMaxResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker? getSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker getSessionOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>? getSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!> getSupportedResolutions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority();
+ method @androidx.camera.core.AspectRatio.Ratio public int getTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational? getTargetAspectRatioCustom(android.util.Rational?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational getTargetAspectRatioCustom();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.ImageCapture!>? getTargetClass(Class<androidx.camera.core.ImageCapture!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.ImageCapture!> getTargetClass();
+ method public String? getTargetName(String?);
+ method public String getTargetName();
+ method public android.util.Size? getTargetResolution(android.util.Size?);
+ method public android.util.Size getTargetResolution();
+ method @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation(int);
+ method @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback? getUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback getUseCaseEventCallback();
+ method public boolean hasCaptureMode();
+ method public boolean hasTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Set<androidx.camera.core.Config.Option<?>!> listOptions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>, ValueT?);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.util.concurrent.Executor!>! OPTION_IO_EXECUTOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class ImageFormatConstants {
+ field public static final int INTERNAL_DEFINED_IMAGE_FORMAT_JPEG = 33; // 0x21
+ field public static final int INTERNAL_DEFINED_IMAGE_FORMAT_PRIVATE = 34; // 0x22
+ }
+
+ public interface ImageInfo {
+ method public int getRotationDegrees();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Object? getTag();
+ method public long getTimestamp();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface ImageInfoProcessor {
+ method public androidx.camera.core.CaptureStage! getCaptureStage();
+ method public boolean process(androidx.camera.core.ImageInfo!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface ImageOutputConfig {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getDefaultResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getDefaultResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getMaxResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getMaxResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>? getSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!> getSupportedResolutions();
+ method @androidx.camera.core.AspectRatio.Ratio public int getTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational? getTargetAspectRatioCustom(android.util.Rational?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational getTargetAspectRatioCustom();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getTargetResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getTargetResolution();
+ method @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation(int);
+ method @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation();
+ method public boolean hasTargetAspectRatio();
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final int INVALID_ROTATION = -1; // 0xffffffff
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<android.util.Size!>! OPTION_DEFAULT_RESOLUTION;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<android.util.Size!>! OPTION_MAX_RESOLUTION;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>!>! OPTION_SUPPORTED_RESOLUTIONS;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.lang.Integer!>! OPTION_TARGET_ASPECT_RATIO;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<android.util.Rational!>! OPTION_TARGET_ASPECT_RATIO_CUSTOM;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<android.util.Size!>! OPTION_TARGET_RESOLUTION;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.lang.Integer!>! OPTION_TARGET_ROTATION;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface ImageOutputConfig.Builder<B> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setDefaultResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setMaxResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>);
+ method public B setTargetAspectRatio(@androidx.camera.core.AspectRatio.Ratio int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setTargetAspectRatioCustom(android.util.Rational);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setTargetResolution(android.util.Size);
+ method public B setTargetRotation(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ }
+
+ @IntDef({android.view.Surface.ROTATION_0, android.view.Surface.ROTATION_90, android.view.Surface.ROTATION_180, android.view.Surface.ROTATION_270}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ImageOutputConfig.RotationValue {
+ }
+
+ public interface ImageProxy extends java.lang.AutoCloseable {
+ method public void close();
+ method public android.graphics.Rect getCropRect();
+ method public int getFormat();
+ method public int getHeight();
+ method public androidx.camera.core.ImageInfo getImageInfo();
+ method public androidx.camera.core.ImageProxy.PlaneProxy![] getPlanes();
+ method public int getWidth();
+ method public void setCropRect(android.graphics.Rect?);
+ }
+
+ public static interface ImageProxy.PlaneProxy {
+ method public java.nio.ByteBuffer getBuffer();
+ method public int getPixelStride();
+ method public int getRowStride();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface ImageProxyBundle {
+ method public java.util.List<java.lang.Integer!> getCaptureIds();
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.ImageProxy!> getImageProxy(int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface ImageReaderProxy {
+ method public androidx.camera.core.ImageProxy? acquireLatestImage();
+ method public androidx.camera.core.ImageProxy? acquireNextImage();
+ method public void close();
+ method public int getHeight();
+ method public int getImageFormat();
+ method public int getMaxImages();
+ method public android.view.Surface! getSurface();
+ method public int getWidth();
+ method public void setOnImageAvailableListener(androidx.camera.core.ImageReaderProxy.OnImageAvailableListener, android.os.Handler?);
+ method public void setOnImageAvailableListener(androidx.camera.core.ImageReaderProxy.OnImageAvailableListener, java.util.concurrent.Executor);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface ImageReaderProxy.OnImageAvailableListener {
+ method public void onImageAvailable(androidx.camera.core.ImageReaderProxy!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class ImageReaderProxys {
+ method public static androidx.camera.core.ImageReaderProxy createIsolatedReader(int, int, int, int);
+ method public static androidx.camera.core.ImageReaderProxy createSharedReader(androidx.camera.core.CameraDeviceSurfaceManager, String, int, int, int, int, java.util.concurrent.Executor);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class ImmediateSurface extends androidx.camera.core.DeferrableSurface {
+ ctor public ImmediateSurface(android.view.Surface);
+ method public com.google.common.util.concurrent.ListenableFuture<android.view.Surface!> provideSurface();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class LensFacingCameraIdFilter implements androidx.camera.core.CameraIdFilter {
+ ctor public LensFacingCameraIdFilter(@androidx.camera.core.CameraSelector.LensFacing int);
+ method public java.util.Set<java.lang.String!> filter(java.util.Set<java.lang.String!>);
+ method @androidx.camera.core.CameraSelector.LensFacing public int getLensFacing();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class LensFacingConverter {
+ method public static String nameOf(@androidx.camera.core.CameraSelector.LensFacing int);
+ method @androidx.camera.core.CameraSelector.LensFacing public static int valueOf(String?);
+ method public static Integer![] values();
+ }
+
+ public class MeteringPoint {
+ method public float getSize();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational? getSurfaceAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public float getX();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public float getY();
+ }
+
+ public abstract class MeteringPointFactory {
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public MeteringPointFactory();
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public MeteringPointFactory(android.util.Rational?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected abstract android.graphics.PointF convertPoint(float, float);
+ method public final androidx.camera.core.MeteringPoint createPoint(float, float);
+ method public final androidx.camera.core.MeteringPoint createPoint(float, float, float);
+ method public static float getDefaultPointSize();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class MultiValueSet<C> {
+ ctor public MultiValueSet();
+ method public void addAll(java.util.List<C!>!);
+ method public abstract androidx.camera.core.MultiValueSet<C!>! clone();
+ method public java.util.List<C!> getAllItems();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface MutableConfig extends androidx.camera.core.Config {
+ method public <ValueT> void insertOption(androidx.camera.core.Config.Option<ValueT!>!, ValueT!);
+ method public <ValueT> ValueT? removeOption(androidx.camera.core.Config.Option<ValueT!>!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class MutableOptionsBundle extends androidx.camera.core.OptionsBundle implements androidx.camera.core.MutableConfig {
+ method public static androidx.camera.core.MutableOptionsBundle! create();
+ method public static androidx.camera.core.MutableOptionsBundle! from(androidx.camera.core.Config!);
+ method public <ValueT> void insertOption(androidx.camera.core.Config.Option<ValueT!>!, ValueT!);
+ method public <ValueT> ValueT? removeOption(androidx.camera.core.Config.Option<ValueT!>!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface Observable<T> {
+ method public void addObserver(java.util.concurrent.Executor, androidx.camera.core.Observable.Observer<T!>);
+ method public com.google.common.util.concurrent.ListenableFuture<T!> fetchData();
+ method public void removeObserver(androidx.camera.core.Observable.Observer<T!>);
+ }
+
+ public static interface Observable.Observer<T> {
+ method public void onError(Throwable);
+ method public void onNewData(T?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class OptionsBundle implements androidx.camera.core.Config {
+ method public boolean containsOption(androidx.camera.core.Config.Option<?>);
+ method public static androidx.camera.core.OptionsBundle emptyBundle();
+ method public void findOptions(String, androidx.camera.core.Config.OptionMatcher);
+ method public static androidx.camera.core.OptionsBundle from(androidx.camera.core.Config);
+ method public java.util.Set<androidx.camera.core.Config.Option<?>!> listOptions();
+ method public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>);
+ method public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>, ValueT?);
+ field protected final java.util.TreeMap<androidx.camera.core.Config.Option<?>!,java.lang.Object!>! mOptions;
+ }
+
+ public class Preview extends androidx.camera.core.UseCase {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void clear();
+ method @UiThread public androidx.camera.core.Preview.PreviewSurfaceProvider? getPreviewSurfaceProvider();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected java.util.Map<java.lang.String!,android.util.Size!> onSuggestedResolutionUpdated(java.util.Map<java.lang.String!,android.util.Size!>);
+ method @UiThread public void setPreviewSurfaceProvider(java.util.concurrent.Executor, androidx.camera.core.Preview.PreviewSurfaceProvider?);
+ method @UiThread public void setPreviewSurfaceProvider(androidx.camera.core.Preview.PreviewSurfaceProvider?);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Preview.Defaults! DEFAULT_CONFIG;
+ }
+
+ public static final class Preview.Builder implements androidx.camera.core.CameraDeviceConfig.Builder<androidx.camera.core.Preview.Builder> androidx.camera.core.ImageOutputConfig.Builder<androidx.camera.core.Preview.Builder> androidx.camera.core.UseCaseConfig.Builder<androidx.camera.core.Preview,androidx.camera.core.PreviewConfig,androidx.camera.core.Preview.Builder> {
+ ctor public Preview.Builder();
+ method public androidx.camera.core.Preview build();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.Preview.Builder fromConfig(androidx.camera.core.PreviewConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.MutableConfig getMutableConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.PreviewConfig getUseCaseConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setBackgroundExecutor(java.util.concurrent.Executor);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setCameraIdFilter(androidx.camera.core.CameraIdFilter);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setCaptureProcessor(androidx.camera.core.CaptureProcessor);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setDefaultCaptureConfig(androidx.camera.core.CaptureConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setDefaultResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setDefaultSessionConfig(androidx.camera.core.SessionConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setImageInfoProcessor(androidx.camera.core.ImageInfoProcessor);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setLensFacing(@androidx.camera.core.CameraSelector.LensFacing int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setMaxResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setSurfaceOccupancyPriority(int);
+ method public androidx.camera.core.Preview.Builder setTargetAspectRatio(@androidx.camera.core.AspectRatio.Ratio int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setTargetAspectRatioCustom(android.util.Rational);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setTargetClass(Class<androidx.camera.core.Preview!>);
+ method public androidx.camera.core.Preview.Builder setTargetName(String);
+ method public androidx.camera.core.Preview.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.Preview.Builder setTargetRotation(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class Preview.Defaults implements androidx.camera.core.ConfigProvider<androidx.camera.core.PreviewConfig> {
+ ctor public Preview.Defaults();
+ method public androidx.camera.core.PreviewConfig! getConfig(Integer?);
+ }
+
+ public static interface Preview.PreviewSurfaceProvider {
+ method public com.google.common.util.concurrent.ListenableFuture<android.view.Surface!> provideSurface(android.util.Size, com.google.common.util.concurrent.ListenableFuture<java.lang.Void!>);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class PreviewConfig implements androidx.camera.core.CameraDeviceConfig androidx.camera.core.ImageOutputConfig androidx.camera.core.UseCaseConfig<androidx.camera.core.Preview> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean containsOption(androidx.camera.core.Config.Option<?>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void findOptions(String, androidx.camera.core.Config.OptionMatcher);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.concurrent.Executor? getBackgroundExecutor(java.util.concurrent.Executor?);
+ method public java.util.concurrent.Executor getBackgroundExecutor();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter? getCameraIdFilter(androidx.camera.core.CameraIdFilter?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter getCameraIdFilter();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker? getCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker getCaptureOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureProcessor? getCaptureProcessor(androidx.camera.core.CaptureProcessor?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureProcessor getCaptureProcessor();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig? getDefaultCaptureConfig(androidx.camera.core.CaptureConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig getDefaultCaptureConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getDefaultResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getDefaultResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig? getDefaultSessionConfig(androidx.camera.core.SessionConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig getDefaultSessionConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Integer? getLensFacing(Integer?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.camera.core.CameraSelector.LensFacing public int getLensFacing();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getMaxResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getMaxResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker? getSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker getSessionOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>? getSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!> getSupportedResolutions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority();
+ method @androidx.camera.core.AspectRatio.Ratio public int getTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational? getTargetAspectRatioCustom(android.util.Rational?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational getTargetAspectRatioCustom();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.Preview!>? getTargetClass(Class<androidx.camera.core.Preview!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.Preview!> getTargetClass();
+ method public String? getTargetName(String?);
+ method public String getTargetName();
+ method public android.util.Size? getTargetResolution(android.util.Size?);
+ method public android.util.Size getTargetResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback? getUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback getUseCaseEventCallback();
+ method public boolean hasTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Set<androidx.camera.core.Config.Option<?>!> listOptions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>, ValueT?);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.util.concurrent.Executor!>! OPTION_BACKGROUND_EXECUTOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class SessionConfig {
+ method public static androidx.camera.core.SessionConfig defaultEmptySessionConfig();
+ method public java.util.List<android.hardware.camera2.CameraDevice.StateCallback!> getDeviceStateCallbacks();
+ method public java.util.List<androidx.camera.core.SessionConfig.ErrorListener!> getErrorListeners();
+ method public androidx.camera.core.Config getImplementationOptions();
+ method public java.util.List<androidx.camera.core.CameraCaptureCallback!> getRepeatingCameraCaptureCallbacks();
+ method public androidx.camera.core.CaptureConfig getRepeatingCaptureConfig();
+ method public java.util.List<android.hardware.camera2.CameraCaptureSession.StateCallback!> getSessionStateCallbacks();
+ method public java.util.List<androidx.camera.core.CameraCaptureCallback!> getSingleCameraCaptureCallbacks();
+ method public java.util.List<androidx.camera.core.DeferrableSurface!> getSurfaces();
+ method public int getTemplateType();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static class SessionConfig.Builder {
+ ctor public SessionConfig.Builder();
+ method public void addAllCameraCaptureCallbacks(java.util.Collection<androidx.camera.core.CameraCaptureCallback!>);
+ method public void addAllDeviceStateCallbacks(java.util.Collection<android.hardware.camera2.CameraDevice.StateCallback!>);
+ method public void addAllRepeatingCameraCaptureCallbacks(java.util.Collection<androidx.camera.core.CameraCaptureCallback!>);
+ method public void addAllSessionStateCallbacks(java.util.List<android.hardware.camera2.CameraCaptureSession.StateCallback!>);
+ method public void addCameraCaptureCallback(androidx.camera.core.CameraCaptureCallback);
+ method public void addDeviceStateCallback(android.hardware.camera2.CameraDevice.StateCallback);
+ method public void addErrorListener(androidx.camera.core.SessionConfig.ErrorListener);
+ method public void addImplementationOptions(androidx.camera.core.Config);
+ method public void addNonRepeatingSurface(androidx.camera.core.DeferrableSurface);
+ method public void addRepeatingCameraCaptureCallback(androidx.camera.core.CameraCaptureCallback);
+ method public void addSessionStateCallback(android.hardware.camera2.CameraCaptureSession.StateCallback);
+ method public void addSurface(androidx.camera.core.DeferrableSurface);
+ method public androidx.camera.core.SessionConfig build();
+ method public void clearSurfaces();
+ method public static androidx.camera.core.SessionConfig.Builder createFrom(androidx.camera.core.UseCaseConfig<?>);
+ method public java.util.List<androidx.camera.core.CameraCaptureCallback!> getSingleCameraCaptureCallbacks();
+ method public void removeSurface(androidx.camera.core.DeferrableSurface);
+ method public void setImplementationOptions(androidx.camera.core.Config!);
+ method public void setTag(Object!);
+ method public void setTemplateType(int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface SessionConfig.ErrorListener {
+ method public void onError(androidx.camera.core.SessionConfig, androidx.camera.core.SessionConfig.SessionError);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface SessionConfig.OptionUnpacker {
+ method public void unpack(androidx.camera.core.UseCaseConfig<?>, androidx.camera.core.SessionConfig.Builder);
+ }
+
+ public enum SessionConfig.SessionError {
+ enum_constant public static final androidx.camera.core.SessionConfig.SessionError SESSION_ERROR_SURFACE_NEEDS_RESET;
+ enum_constant public static final androidx.camera.core.SessionConfig.SessionError SESSION_ERROR_UNKNOWN;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class SessionConfig.ValidatingBuilder {
+ ctor public SessionConfig.ValidatingBuilder();
+ method public void add(androidx.camera.core.SessionConfig);
+ method public androidx.camera.core.SessionConfig build();
+ method public boolean isValid();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class SingleImageProxyBundle implements androidx.camera.core.ImageProxyBundle {
+ ctor public SingleImageProxyBundle(androidx.camera.core.ImageProxy);
+ method public java.util.List<java.lang.Integer!> getCaptureIds();
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.ImageProxy!> getImageProxy(int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class SurfaceCombination {
+ ctor public SurfaceCombination();
+ method public boolean addSurfaceConfig(androidx.camera.core.SurfaceConfig!);
+ method public java.util.List<androidx.camera.core.SurfaceConfig!>! getSurfaceConfigList();
+ method public boolean isSupported(java.util.List<androidx.camera.core.SurfaceConfig!>!);
+ method public boolean removeSurfaceConfig(androidx.camera.core.SurfaceConfig!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class SurfaceConfig {
+ method public static androidx.camera.core.SurfaceConfig! create(androidx.camera.core.SurfaceConfig.ConfigType!, androidx.camera.core.SurfaceConfig.ConfigSize!);
+ method public abstract androidx.camera.core.SurfaceConfig.ConfigSize! getConfigSize();
+ method public abstract androidx.camera.core.SurfaceConfig.ConfigType! getConfigType();
+ method public final boolean isSupported(androidx.camera.core.SurfaceConfig!);
+ }
+
+ public enum SurfaceConfig.ConfigSize {
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigSize ANALYSIS;
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigSize MAXIMUM;
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigSize NOT_SUPPORT;
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigSize PREVIEW;
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigSize RECORD;
+ }
+
+ public enum SurfaceConfig.ConfigType {
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigType JPEG;
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigType PRIV;
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigType RAW;
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigType YUV;
+ }
+
+ public class SurfaceOrientedMeteringPointFactory extends androidx.camera.core.MeteringPointFactory {
+ ctor public SurfaceOrientedMeteringPointFactory(float, float);
+ ctor public SurfaceOrientedMeteringPointFactory(float, float, androidx.camera.core.UseCase);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected android.graphics.PointF convertPoint(float, float);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class SurfaceSizeDefinition {
+ method public static androidx.camera.core.SurfaceSizeDefinition! create(android.util.Size!, android.util.Size!, android.util.Size!);
+ method public abstract android.util.Size! getAnalysisSize();
+ method public abstract android.util.Size! getPreviewSize();
+ method public abstract android.util.Size! getRecordSize();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface TargetConfig<T> {
+ method public Class<T!>? getTargetClass(Class<T!>?);
+ method public Class<T!> getTargetClass();
+ method public String? getTargetName(String?);
+ method public String getTargetName();
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.lang.Class<?>!>! OPTION_TARGET_CLASS;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.lang.String!>! OPTION_TARGET_NAME;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface TargetConfig.Builder<T, B> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setTargetClass(Class<T!>);
+ method public B setTargetName(String);
+ }
+
+ public class TorchState {
+ field public static final int OFF = 0; // 0x0
+ field public static final int ON = 1; // 0x1
+ }
+
+ @IntDef({androidx.camera.core.TorchState.OFF, androidx.camera.core.TorchState.ON}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface TorchState.State {
+ }
+
+ public abstract class UseCase {
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected UseCase(androidx.camera.core.UseCaseConfig<?>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void addStateChangeCallback(androidx.camera.core.UseCase.StateChangeCallback);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected androidx.camera.core.UseCaseConfig<?> applyDefaults(androidx.camera.core.UseCaseConfig<?>, androidx.camera.core.UseCaseConfig.Builder<?,?,?>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final void attachCameraControl(String!, androidx.camera.core.CameraControlInternal!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected void attachToCamera(String!, androidx.camera.core.SessionConfig!);
+ method @CallSuper @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected void clear();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Set<java.lang.String!>! getAttachedCameraIds();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size! getAttachedSurfaceResolution(String!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraInternal? getBoundCamera();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected String getBoundCameraId();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected androidx.camera.core.CameraControlInternal! getCameraControl(String!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected androidx.camera.core.UseCaseConfig.Builder<?,?,?>? getDefaultBuilder(Integer?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getImageFormat();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public String getName();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig! getSessionConfig(String!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCaseConfig<?>! getUseCaseConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected boolean isCurrentlyBoundCamera(String);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected final void notifyActive();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected final void notifyInactive();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected final void notifyReset();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected final void notifyState();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected final void notifyUpdated();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected void onBind(androidx.camera.core.CameraInternal);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected void onCameraControlReady(String!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void onStateOffline(String);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void onStateOnline(String);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected abstract java.util.Map<java.lang.String!,android.util.Size!> onSuggestedResolutionUpdated(java.util.Map<java.lang.String!,android.util.Size!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void removeStateChangeCallback(androidx.camera.core.UseCase.StateChangeCallback);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected void setImageFormat(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void updateSuggestedResolution(java.util.Map<java.lang.String!,android.util.Size!>!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected final void updateUseCaseConfig(androidx.camera.core.UseCaseConfig<?>);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface UseCase.EventCallback {
+ method public void onBind(String);
+ method public void onUnbind();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface UseCase.StateChangeCallback {
+ method public void onUseCaseActive(androidx.camera.core.UseCase);
+ method public void onUseCaseInactive(androidx.camera.core.UseCase);
+ method public void onUseCaseReset(androidx.camera.core.UseCase);
+ method public void onUseCaseUpdated(androidx.camera.core.UseCase);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class UseCaseAttachState {
+ ctor public UseCaseAttachState(String!);
+ method public androidx.camera.core.SessionConfig.ValidatingBuilder! getActiveAndOnlineBuilder();
+ method public java.util.Collection<androidx.camera.core.UseCase!>! getActiveAndOnlineUseCases();
+ method public androidx.camera.core.SessionConfig.ValidatingBuilder! getOnlineBuilder();
+ method public java.util.Collection<androidx.camera.core.UseCase!>! getOnlineUseCases();
+ method public androidx.camera.core.SessionConfig! getUseCaseSessionConfig(androidx.camera.core.UseCase!);
+ method public boolean isUseCaseOnline(androidx.camera.core.UseCase!);
+ method public void setUseCaseActive(androidx.camera.core.UseCase!);
+ method public void setUseCaseInactive(androidx.camera.core.UseCase!);
+ method public void setUseCaseOffline(androidx.camera.core.UseCase!);
+ method public void setUseCaseOnline(androidx.camera.core.UseCase!);
+ method public void updateUseCase(androidx.camera.core.UseCase!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface UseCaseConfig<T extends androidx.camera.core.UseCase> extends androidx.camera.core.TargetConfig<T> androidx.camera.core.Config androidx.camera.core.UseCaseEventConfig {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker? getCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker getCaptureOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig? getDefaultCaptureConfig(androidx.camera.core.CaptureConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig getDefaultCaptureConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig? getDefaultSessionConfig(androidx.camera.core.SessionConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig getDefaultSessionConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker? getSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker getSessionOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority();
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<androidx.camera.core.CaptureConfig.OptionUnpacker!>! OPTION_CAPTURE_CONFIG_UNPACKER;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<androidx.camera.core.CaptureConfig!>! OPTION_DEFAULT_CAPTURE_CONFIG;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<androidx.camera.core.SessionConfig!>! OPTION_DEFAULT_SESSION_CONFIG;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<androidx.camera.core.SessionConfig.OptionUnpacker!>! OPTION_SESSION_CONFIG_UNPACKER;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.lang.Integer!>! OPTION_SURFACE_OCCUPANCY_PRIORITY;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface UseCaseConfig.Builder<T extends androidx.camera.core.UseCase, C extends androidx.camera.core.UseCaseConfig<T>, B> extends androidx.camera.core.TargetConfig.Builder<T,B> androidx.camera.core.ExtendableBuilder<T> androidx.camera.core.UseCaseEventConfig.Builder<B> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public C getUseCaseConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setDefaultCaptureConfig(androidx.camera.core.CaptureConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setDefaultSessionConfig(androidx.camera.core.SessionConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setSurfaceOccupancyPriority(int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface UseCaseConfigFactory {
+ method public <C extends androidx.camera.core.UseCaseConfig<?>> C? getConfig(Class<C!>!, Integer?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface UseCaseEventConfig {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback? getUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback getUseCaseEventCallback();
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<androidx.camera.core.UseCase.EventCallback!>! OPTION_USE_CASE_EVENT_CALLBACK;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface UseCaseEventConfig.Builder<B> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class UseCaseGroup {
+ ctor public UseCaseGroup();
+ method public boolean addUseCase(androidx.camera.core.UseCase!);
+ method public void clear();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class VideoCapture extends androidx.camera.core.UseCase {
+ ctor public VideoCapture(androidx.camera.core.VideoCaptureConfig!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void clear();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected java.util.Map<java.lang.String!,android.util.Size!> onSuggestedResolutionUpdated(java.util.Map<java.lang.String!,android.util.Size!>);
+ method public void setTargetRotation(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ method public void startRecording(java.io.File, java.util.concurrent.Executor, androidx.camera.core.VideoCapture.OnVideoSavedCallback);
+ method public void startRecording(java.io.File, androidx.camera.core.VideoCapture.Metadata, java.util.concurrent.Executor, androidx.camera.core.VideoCapture.OnVideoSavedCallback);
+ method public void stopRecording();
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.VideoCapture.Defaults! DEFAULT_CONFIG;
+ field public static final int ERROR_ENCODER = 1; // 0x1
+ field public static final int ERROR_MUXER = 2; // 0x2
+ field public static final int ERROR_RECORDING_IN_PROGRESS = 3; // 0x3
+ field public static final int ERROR_UNKNOWN = 0; // 0x0
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class VideoCapture.Defaults implements androidx.camera.core.ConfigProvider<androidx.camera.core.VideoCaptureConfig> {
+ ctor public VideoCapture.Defaults();
+ method public androidx.camera.core.VideoCaptureConfig! getConfig(Integer?);
+ }
+
+ public static final class VideoCapture.Metadata {
+ ctor public VideoCapture.Metadata();
+ field public android.location.Location? location;
+ }
+
+ public static interface VideoCapture.OnVideoSavedCallback {
+ method public void onError(@androidx.camera.core.VideoCapture.VideoCaptureError int, String, Throwable?);
+ method public void onVideoSaved(java.io.File);
+ }
+
+ @IntDef({androidx.camera.core.VideoCapture.ERROR_UNKNOWN, androidx.camera.core.VideoCapture.ERROR_ENCODER, androidx.camera.core.VideoCapture.ERROR_MUXER, androidx.camera.core.VideoCapture.ERROR_RECORDING_IN_PROGRESS}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface VideoCapture.VideoCaptureError {
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class VideoCaptureConfig implements androidx.camera.core.CameraDeviceConfig androidx.camera.core.ImageOutputConfig androidx.camera.core.UseCaseConfig<androidx.camera.core.VideoCapture> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean containsOption(androidx.camera.core.Config.Option<?>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void findOptions(String, androidx.camera.core.Config.OptionMatcher);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioBitRate(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioBitRate();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioChannelCount(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioChannelCount();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioMinBufferSize(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioMinBufferSize();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioRecordSource(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioRecordSource();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioSampleRate(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioSampleRate();
+ method public java.util.concurrent.Executor? getBackgroundExecutor(java.util.concurrent.Executor?);
+ method public java.util.concurrent.Executor getBackgroundExecutor();
+ method public int getBitRate(int);
+ method public int getBitRate();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter? getCameraIdFilter(androidx.camera.core.CameraIdFilter?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter getCameraIdFilter();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker? getCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker getCaptureOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig? getDefaultCaptureConfig(androidx.camera.core.CaptureConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig getDefaultCaptureConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getDefaultResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getDefaultResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig? getDefaultSessionConfig(androidx.camera.core.SessionConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig getDefaultSessionConfig();
+ method public int getIFrameInterval(int);
+ method public int getIFrameInterval();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Integer? getLensFacing(Integer?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.camera.core.CameraSelector.LensFacing public int getLensFacing();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getMaxResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getMaxResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker? getSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker getSessionOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>? getSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!> getSupportedResolutions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority();
+ method @androidx.camera.core.AspectRatio.Ratio public int getTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational? getTargetAspectRatioCustom(android.util.Rational?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational getTargetAspectRatioCustom();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.VideoCapture!>? getTargetClass(Class<androidx.camera.core.VideoCapture!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.VideoCapture!> getTargetClass();
+ method public String? getTargetName(String?);
+ method public String getTargetName();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getTargetResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getTargetResolution();
+ method @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation(int);
+ method @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback? getUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback getUseCaseEventCallback();
+ method public int getVideoFrameRate(int);
+ method public int getVideoFrameRate();
+ method public boolean hasTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Set<androidx.camera.core.Config.Option<?>!> listOptions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>, ValueT?);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.util.concurrent.Executor!>! OPTION_BACKGROUND_EXECUTOR;
+ }
+
+ public static final class VideoCaptureConfig.Builder implements androidx.camera.core.CameraDeviceConfig.Builder<androidx.camera.core.VideoCaptureConfig.Builder> androidx.camera.core.ImageOutputConfig.Builder<androidx.camera.core.VideoCaptureConfig.Builder> androidx.camera.core.UseCaseConfig.Builder<androidx.camera.core.VideoCapture,androidx.camera.core.VideoCaptureConfig,androidx.camera.core.VideoCaptureConfig.Builder> {
+ ctor public VideoCaptureConfig.Builder();
+ method public androidx.camera.core.VideoCapture build();
+ method public static androidx.camera.core.VideoCaptureConfig.Builder fromConfig(androidx.camera.core.VideoCaptureConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.MutableConfig getMutableConfig();
+ method public androidx.camera.core.VideoCaptureConfig getUseCaseConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setAudioBitRate(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setAudioChannelCount(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setAudioMinBufferSize(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setAudioRecordSource(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setAudioSampleRate(int);
+ method public androidx.camera.core.VideoCaptureConfig.Builder setBackgroundExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.VideoCaptureConfig.Builder setBitRate(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setCameraIdFilter(androidx.camera.core.CameraIdFilter);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setDefaultCaptureConfig(androidx.camera.core.CaptureConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setDefaultResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setDefaultSessionConfig(androidx.camera.core.SessionConfig);
+ method public androidx.camera.core.VideoCaptureConfig.Builder setIFrameInterval(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setLensFacing(@androidx.camera.core.CameraSelector.LensFacing int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setMaxResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setSurfaceOccupancyPriority(int);
+ method public androidx.camera.core.VideoCaptureConfig.Builder setTargetAspectRatio(@androidx.camera.core.AspectRatio.Ratio int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setTargetAspectRatioCustom(android.util.Rational);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setTargetClass(Class<androidx.camera.core.VideoCapture!>);
+ method public androidx.camera.core.VideoCaptureConfig.Builder setTargetName(String);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.VideoCaptureConfig.Builder setTargetRotation(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback);
+ method public androidx.camera.core.VideoCaptureConfig.Builder setVideoFrameRate(int);
+ }
+
+}
+
+package @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) androidx.camera.core.impl {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class LiveDataObservable<T> implements androidx.camera.core.Observable<T> {
+ ctor public LiveDataObservable();
+ method public void addObserver(java.util.concurrent.Executor, androidx.camera.core.Observable.Observer<T!>);
+ method public com.google.common.util.concurrent.ListenableFuture<T!> fetchData();
+ method public androidx.lifecycle.LiveData<androidx.camera.core.impl.LiveDataObservable.Result<T!>!> getLiveData();
+ method public void postError(Throwable);
+ method public void postValue(T?);
+ method public void removeObserver(androidx.camera.core.Observable.Observer<T!>);
+ }
+
+}
+
+package @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) androidx.camera.core.impl.annotation {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) public @interface ExecutedBy {
+ method public abstract String value();
+ }
+
+}
+
+package @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) androidx.camera.core.impl.utils {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraSelectorUtil {
+ method public static androidx.camera.core.CameraDeviceConfig toCameraDeviceConfig(androidx.camera.core.CameraSelector);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class MainThreadAsyncHandler {
+ method public static android.os.Handler! getInstance();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class Threads {
+ method public static void checkBackgroundThread();
+ method public static void checkMainThread();
+ method public static boolean isBackgroundThread();
+ method public static boolean isMainThread();
+ }
+
+}
+
+package @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) androidx.camera.core.impl.utils.futures {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.FunctionalInterface public interface AsyncFunction<I, O> {
+ method public com.google.common.util.concurrent.ListenableFuture<O!>! apply(I?) throws java.lang.Exception;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface FutureCallback<V> {
+ method public void onFailure(Throwable!);
+ method public void onSuccess(V?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class FutureChain<V> implements com.google.common.util.concurrent.ListenableFuture<V> {
+ method public final void addCallback(androidx.camera.core.impl.utils.futures.FutureCallback<? super V>, java.util.concurrent.Executor);
+ method public void addListener(Runnable, java.util.concurrent.Executor);
+ method public boolean cancel(boolean);
+ method public static <V> androidx.camera.core.impl.utils.futures.FutureChain<V!> from(com.google.common.util.concurrent.ListenableFuture<V!>);
+ method public V? get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException;
+ method public V? get(long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException;
+ method public boolean isCancelled();
+ method public boolean isDone();
+ method public final <T> androidx.camera.core.impl.utils.futures.FutureChain<T!> transform(androidx.arch.core.util.Function<? super V,T!>, java.util.concurrent.Executor);
+ method public final <T> androidx.camera.core.impl.utils.futures.FutureChain<T!> transformAsync(androidx.camera.core.impl.utils.futures.AsyncFunction<? super V,T!>, java.util.concurrent.Executor);
+ }
+
+}
+
diff --git a/camera/camera-core/api/restricted_current.txt b/camera/camera-core/api/restricted_current.txt
new file mode 100644
index 0000000..5c7ebeb
--- /dev/null
+++ b/camera/camera-core/api/restricted_current.txt
@@ -0,0 +1,1460 @@
+// Signature format: 3.0
+package androidx.camera.core {
+
+ public class AspectRatio {
+ field public static final int RATIO_16_9 = 1; // 0x1
+ field public static final int RATIO_4_3 = 0; // 0x0
+ }
+
+ @IntDef({androidx.camera.core.AspectRatio.RATIO_4_3, androidx.camera.core.AspectRatio.RATIO_16_9}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface AspectRatio.Ratio {
+ }
+
+ public interface Camera {
+ method public androidx.camera.core.CameraControl getCameraControl();
+ method public androidx.camera.core.CameraInfo getCameraInfo();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class CameraCaptureCallback {
+ ctor public CameraCaptureCallback();
+ method public void onCaptureCancelled();
+ method public void onCaptureCompleted(androidx.camera.core.CameraCaptureResult);
+ method public void onCaptureFailed(androidx.camera.core.CameraCaptureFailure);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraCaptureCallbacks {
+ method public static androidx.camera.core.CameraCaptureCallback! createComboCallback(androidx.camera.core.CameraCaptureCallback!...);
+ method public static androidx.camera.core.CameraCaptureCallback! createNoOpCallback();
+ }
+
+ public static final class CameraCaptureCallbacks.ComboCameraCaptureCallback extends androidx.camera.core.CameraCaptureCallback {
+ method public java.util.List<androidx.camera.core.CameraCaptureCallback!> getCallbacks();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraCaptureFailure {
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public CameraCaptureFailure(androidx.camera.core.CameraCaptureFailure.Reason!);
+ method public androidx.camera.core.CameraCaptureFailure.Reason! getReason();
+ }
+
+ public enum CameraCaptureFailure.Reason {
+ enum_constant public static final androidx.camera.core.CameraCaptureFailure.Reason ERROR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraCaptureMetaData {
+ }
+
+ public enum CameraCaptureMetaData.AeState {
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AeState CONVERGED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AeState FLASH_REQUIRED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AeState INACTIVE;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AeState LOCKED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AeState SEARCHING;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AeState UNKNOWN;
+ }
+
+ public enum CameraCaptureMetaData.AfMode {
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfMode OFF;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfMode ON_CONTINUOUS_AUTO;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfMode ON_MANUAL_AUTO;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfMode UNKNOWN;
+ }
+
+ public enum CameraCaptureMetaData.AfState {
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfState FOCUSED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfState INACTIVE;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfState LOCKED_FOCUSED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfState LOCKED_NOT_FOCUSED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfState SCANNING;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AfState UNKNOWN;
+ }
+
+ public enum CameraCaptureMetaData.AwbState {
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AwbState CONVERGED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AwbState INACTIVE;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AwbState LOCKED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AwbState METERING;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.AwbState UNKNOWN;
+ }
+
+ public enum CameraCaptureMetaData.FlashState {
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.FlashState FIRED;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.FlashState NONE;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.FlashState READY;
+ enum_constant public static final androidx.camera.core.CameraCaptureMetaData.FlashState UNKNOWN;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CameraCaptureResult {
+ method public androidx.camera.core.CameraCaptureMetaData.AeState getAeState();
+ method public androidx.camera.core.CameraCaptureMetaData.AfMode getAfMode();
+ method public androidx.camera.core.CameraCaptureMetaData.AfState getAfState();
+ method public androidx.camera.core.CameraCaptureMetaData.AwbState getAwbState();
+ method public androidx.camera.core.CameraCaptureMetaData.FlashState getFlashState();
+ method public Object! getTag();
+ method public long getTimestamp();
+ }
+
+ public static final class CameraCaptureResult.EmptyCameraCaptureResult implements androidx.camera.core.CameraCaptureResult {
+ ctor public CameraCaptureResult.EmptyCameraCaptureResult();
+ method public static androidx.camera.core.CameraCaptureResult! create();
+ method public androidx.camera.core.CameraCaptureMetaData.AeState getAeState();
+ method public androidx.camera.core.CameraCaptureMetaData.AfMode getAfMode();
+ method public androidx.camera.core.CameraCaptureMetaData.AfState getAfState();
+ method public androidx.camera.core.CameraCaptureMetaData.AwbState getAwbState();
+ method public androidx.camera.core.CameraCaptureMetaData.FlashState getFlashState();
+ method public Object! getTag();
+ method public long getTimestamp();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraCaptureResults {
+ method public static androidx.camera.core.CameraCaptureResult! retrieveCameraCaptureResult(androidx.camera.core.ImageInfo!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraCaptureSessionStateCallbacks {
+ method public static android.hardware.camera2.CameraCaptureSession.StateCallback! createComboCallback(java.util.List<android.hardware.camera2.CameraCaptureSession.StateCallback!>!);
+ method public static android.hardware.camera2.CameraCaptureSession.StateCallback! createComboCallback(android.hardware.camera2.CameraCaptureSession.StateCallback!...);
+ method public static android.hardware.camera2.CameraCaptureSession.StateCallback! createNoOpCallback();
+ }
+
+ public interface CameraControl {
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> cancelFocusAndMetering();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> enableTorch(boolean);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setLinearZoom(@FloatRange(from=0.0f, to=1.0f) float);
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> setZoomRatio(float);
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.FocusMeteringResult!> startFocusAndMetering(androidx.camera.core.FocusMeteringAction);
+ }
+
+ public static final class CameraControl.OperationCanceledException extends java.lang.Exception {
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public CameraControl.OperationCanceledException(String);
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public CameraControl.OperationCanceledException(String, Throwable);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CameraControlInternal extends androidx.camera.core.CameraControl {
+ method public void cancelAfAeTrigger(boolean, boolean);
+ method @androidx.camera.core.ImageCapture.FlashMode public int getFlashMode();
+ method public void setCropRegion(android.graphics.Rect?);
+ method public void setFlashMode(@androidx.camera.core.ImageCapture.FlashMode int);
+ method public void submitCaptureRequests(java.util.List<androidx.camera.core.CaptureConfig!>);
+ method public void triggerAePrecapture();
+ method public void triggerAf();
+ field public static final androidx.camera.core.CameraControlInternal! DEFAULT_EMPTY_INSTANCE;
+ }
+
+ public static interface CameraControlInternal.ControlUpdateCallback {
+ method public void onCameraControlCaptureRequests(java.util.List<androidx.camera.core.CaptureConfig!>);
+ method public void onCameraControlUpdateSessionConfig(androidx.camera.core.SessionConfig);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CameraDeviceConfig {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter? getCameraIdFilter(androidx.camera.core.CameraIdFilter?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter getCameraIdFilter();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Integer? getLensFacing(Integer?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.camera.core.CameraSelector.LensFacing public int getLensFacing();
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<androidx.camera.core.CameraIdFilter!>! OPTION_CAMERA_ID_FILTER;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.lang.Integer!>! OPTION_LENS_FACING;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface CameraDeviceConfig.Builder<B> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setCameraIdFilter(androidx.camera.core.CameraIdFilter);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setLensFacing(@androidx.camera.core.CameraSelector.LensFacing int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraDeviceStateCallbacks {
+ method public static android.hardware.camera2.CameraDevice.StateCallback! createComboCallback(java.util.List<android.hardware.camera2.CameraDevice.StateCallback!>!);
+ method public static android.hardware.camera2.CameraDevice.StateCallback! createComboCallback(android.hardware.camera2.CameraDevice.StateCallback!...);
+ method public static android.hardware.camera2.CameraDevice.StateCallback! createNoOpCallback();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CameraDeviceSurfaceManager {
+ method public boolean checkSupported(String!, java.util.List<androidx.camera.core.SurfaceConfig!>!);
+ method public android.util.Rational? getCorrectedAspectRatio(String, @androidx.camera.core.ImageOutputConfig.RotationValue int);
+ method public android.util.Size? getMaxOutputSize(String!, int);
+ method public android.util.Size! getPreviewSize();
+ method public java.util.Map<androidx.camera.core.UseCase!,android.util.Size!>! getSuggestedResolutions(String!, java.util.List<androidx.camera.core.UseCase!>!, java.util.List<androidx.camera.core.UseCase!>!);
+ method public void init();
+ method public boolean isInitialized();
+ method public boolean requiresCorrectedAspectRatio(String);
+ method public androidx.camera.core.SurfaceConfig! transformSurfaceConfig(String!, int, android.util.Size!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CameraFactory {
+ method public String? cameraIdForLensFacing(@androidx.camera.core.CameraSelector.LensFacing int) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public java.util.Set<java.lang.String!> getAvailableCameraIds() throws androidx.camera.core.CameraInfoUnavailableException;
+ method public androidx.camera.core.CameraInternal getCamera(String) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public androidx.camera.core.LensFacingCameraIdFilter getLensFacingCameraIdFilter(@androidx.camera.core.CameraSelector.LensFacing int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CameraIdFilter {
+ method public java.util.Set<java.lang.String!> filter(java.util.Set<java.lang.String!>);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraIdFilterSet implements androidx.camera.core.CameraIdFilter {
+ ctor public CameraIdFilterSet();
+ method public void addCameraIdFilter(androidx.camera.core.CameraIdFilter);
+ method public java.util.Set<java.lang.String!> filter(java.util.Set<java.lang.String!>);
+ method public java.util.Set<androidx.camera.core.CameraIdFilter!> getCameraIdFilters();
+ }
+
+ public interface CameraInfo {
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getLinearZoom();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getMaxZoomRatio();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getMinZoomRatio();
+ method public int getSensorRotationDegrees();
+ method public int getSensorRotationDegrees(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ method public androidx.lifecycle.LiveData<java.lang.Integer!> getTorchState();
+ method public androidx.lifecycle.LiveData<java.lang.Float!> getZoomRatio();
+ method public boolean hasFlashUnit();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CameraInfoInternal extends androidx.camera.core.CameraInfo {
+ method public String getCameraId();
+ method public Integer? getLensFacing();
+ }
+
+ public final class CameraInfoUnavailableException extends java.lang.Exception {
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public CameraInfoUnavailableException(String!, Throwable!);
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public CameraInfoUnavailableException(String!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CameraInternal extends androidx.camera.core.Camera androidx.camera.core.UseCase.StateChangeCallback {
+ method public void addOnlineUseCase(java.util.Collection<androidx.camera.core.UseCase!>);
+ method public void close();
+ method public androidx.camera.core.CameraControlInternal getCameraControlInternal();
+ method public androidx.camera.core.CameraInfoInternal getCameraInfoInternal();
+ method public androidx.camera.core.Observable<androidx.camera.core.CameraInternal.State!> getCameraState();
+ method public void open();
+ method public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> release();
+ method public void removeOnlineUseCase(java.util.Collection<androidx.camera.core.UseCase!>);
+ }
+
+ public enum CameraInternal.State {
+ enum_constant public static final androidx.camera.core.CameraInternal.State CLOSED;
+ enum_constant public static final androidx.camera.core.CameraInternal.State CLOSING;
+ enum_constant public static final androidx.camera.core.CameraInternal.State OPEN;
+ enum_constant public static final androidx.camera.core.CameraInternal.State OPENING;
+ enum_constant public static final androidx.camera.core.CameraInternal.State PENDING_OPEN;
+ enum_constant public static final androidx.camera.core.CameraInternal.State RELEASED;
+ enum_constant public static final androidx.camera.core.CameraInternal.State RELEASING;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraOrientationUtil {
+ method public static int getRelativeImageRotation(int, int, boolean);
+ method public static int surfaceRotationToDegrees(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraRepository {
+ ctor public CameraRepository();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> deinit();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraInternal! getCamera(String!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void init(androidx.camera.core.CameraFactory!);
+ method public void onGroupActive(androidx.camera.core.UseCaseGroup!);
+ method public void onGroupInactive(androidx.camera.core.UseCaseGroup!);
+ }
+
+ public final class CameraSelector {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.LinkedHashSet<androidx.camera.core.CameraIdFilter!> getCameraFilterSet();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Integer? getLensFacing();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public String select(java.util.Set<java.lang.String!>);
+ field public static final androidx.camera.core.CameraSelector DEFAULT_BACK_CAMERA;
+ field public static final androidx.camera.core.CameraSelector DEFAULT_FRONT_CAMERA;
+ field public static final int LENS_FACING_BACK = 1; // 0x1
+ field public static final int LENS_FACING_FRONT = 0; // 0x0
+ }
+
+ public static final class CameraSelector.Builder {
+ ctor public CameraSelector.Builder();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraSelector.Builder appendFilter(androidx.camera.core.CameraIdFilter);
+ method public androidx.camera.core.CameraSelector build();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.CameraSelector.Builder fromSelector(androidx.camera.core.CameraSelector);
+ method public androidx.camera.core.CameraSelector.Builder requireLensFacing(@androidx.camera.core.CameraSelector.LensFacing int);
+ }
+
+ @IntDef({androidx.camera.core.CameraSelector.LENS_FACING_FRONT, androidx.camera.core.CameraSelector.LENS_FACING_BACK}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface CameraSelector.LensFacing {
+ }
+
+ @MainThread @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraX {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.Camera bindToLifecycle(androidx.lifecycle.LifecycleOwner, androidx.camera.core.CameraSelector, androidx.camera.core.UseCase!...);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static java.util.Collection<androidx.camera.core.UseCase!>? getActiveUseCases();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.CameraFactory getCameraFactory();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.CameraInfoInternal getCameraInfo(String!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static String? getCameraWithCameraSelector(androidx.camera.core.CameraSelector);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static String? getCameraWithLensFacing(@androidx.camera.core.CameraSelector.LensFacing int) throws androidx.camera.core.CameraInfoUnavailableException;
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static android.content.Context getContext();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.camera.core.CameraSelector.LensFacing public static int getDefaultLensFacing() throws androidx.camera.core.CameraInfoUnavailableException;
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static <C extends androidx.camera.core.UseCaseConfig<?>> C? getDefaultUseCaseConfig(Class<C!>!, Integer?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.CameraX!> getOrCreateInstance(android.content.Context);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.CameraDeviceSurfaceManager getSurfaceManager();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public static com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> initialize(android.content.Context, androidx.camera.core.CameraXConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static boolean isBound(androidx.camera.core.UseCase);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static boolean isInitialized();
+ method public static com.google.common.util.concurrent.ListenableFuture<java.lang.Void!> shutdown();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static void unbind(androidx.camera.core.UseCase!...);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static void unbindAll();
+ }
+
+ public final class CameraXConfig implements androidx.camera.core.Config androidx.camera.core.TargetConfig<androidx.camera.core.CameraX> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean containsOption(androidx.camera.core.Config.Option<?>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void findOptions(String, androidx.camera.core.Config.OptionMatcher);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.concurrent.Executor? getCameraExecutor(java.util.concurrent.Executor?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraFactory? getCameraFactory(androidx.camera.core.CameraFactory?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraDeviceSurfaceManager? getDeviceSurfaceManager(androidx.camera.core.CameraDeviceSurfaceManager?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.CameraX!>? getTargetClass(Class<androidx.camera.core.CameraX!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.CameraX!> getTargetClass();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public String? getTargetName(String?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public String getTargetName();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCaseConfigFactory? getUseCaseConfigRepository(androidx.camera.core.UseCaseConfigFactory?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Set<androidx.camera.core.Config.Option<?>!> listOptions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>, ValueT?);
+ }
+
+ public static final class CameraXConfig.Builder implements androidx.camera.core.TargetConfig.Builder<androidx.camera.core.CameraX,androidx.camera.core.CameraXConfig.Builder> {
+ ctor public CameraXConfig.Builder();
+ method public androidx.camera.core.CameraXConfig build();
+ method public static androidx.camera.core.CameraXConfig.Builder fromConfig(androidx.camera.core.CameraXConfig);
+ method public androidx.camera.core.CameraXConfig.Builder setCameraExecutor(java.util.concurrent.Executor);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraXConfig.Builder setCameraFactory(androidx.camera.core.CameraFactory);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraXConfig.Builder setDeviceSurfaceManager(androidx.camera.core.CameraDeviceSurfaceManager);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraXConfig.Builder setTargetClass(Class<androidx.camera.core.CameraX!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraXConfig.Builder setTargetName(String);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraXConfig.Builder setUseCaseConfigFactory(androidx.camera.core.UseCaseConfigFactory);
+ }
+
+ public static interface CameraXConfig.Provider {
+ method public androidx.camera.core.CameraXConfig getCameraXConfig();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraXThreads {
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final String TAG = "CameraX-";
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CaptureBundle {
+ method public java.util.List<androidx.camera.core.CaptureStage!>! getCaptureStages();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CaptureConfig {
+ method public static androidx.camera.core.CaptureConfig! defaultEmptyCaptureConfig();
+ method public java.util.List<androidx.camera.core.CameraCaptureCallback!>! getCameraCaptureCallbacks();
+ method public androidx.camera.core.Config! getImplementationOptions();
+ method public java.util.List<androidx.camera.core.DeferrableSurface!>! getSurfaces();
+ method public Object! getTag();
+ method public int getTemplateType();
+ method public boolean isUseRepeatingSurface();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class CaptureConfig.Builder {
+ ctor public CaptureConfig.Builder();
+ method public void addAllCameraCaptureCallbacks(java.util.Collection<androidx.camera.core.CameraCaptureCallback!>!);
+ method public void addCameraCaptureCallback(androidx.camera.core.CameraCaptureCallback!);
+ method public void addImplementationOptions(androidx.camera.core.Config!);
+ method public void addSurface(androidx.camera.core.DeferrableSurface!);
+ method public androidx.camera.core.CaptureConfig! build();
+ method public void clearSurfaces();
+ method public static androidx.camera.core.CaptureConfig.Builder! createFrom(androidx.camera.core.UseCaseConfig<?>!);
+ method public static androidx.camera.core.CaptureConfig.Builder! from(androidx.camera.core.CaptureConfig!);
+ method public androidx.camera.core.Config! getImplementationOptions();
+ method public java.util.Set<androidx.camera.core.DeferrableSurface!> getSurfaces();
+ method public void removeSurface(androidx.camera.core.DeferrableSurface!);
+ method public void setImplementationOptions(androidx.camera.core.Config!);
+ method public void setTag(Object!);
+ method public void setTemplateType(int);
+ method public void setUseRepeatingSurface(boolean);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface CaptureConfig.OptionUnpacker {
+ method public void unpack(androidx.camera.core.UseCaseConfig<?>!, androidx.camera.core.CaptureConfig.Builder!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CaptureProcessor {
+ method public void onOutputSurface(android.view.Surface!, int);
+ method public void onResolutionUpdate(android.util.Size!);
+ method public void process(androidx.camera.core.ImageProxyBundle!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface CaptureStage {
+ method public androidx.camera.core.CaptureConfig! getCaptureConfig();
+ method public int getId();
+ }
+
+ public static final class CaptureStage.DefaultCaptureStage implements androidx.camera.core.CaptureStage {
+ method public androidx.camera.core.CaptureConfig! getCaptureConfig();
+ method public int getId();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface Config {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean containsOption(androidx.camera.core.Config.Option<?>!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void findOptions(String!, androidx.camera.core.Config.OptionMatcher!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Set<androidx.camera.core.Config.Option<?>!>! listOptions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT! retrieveOption(androidx.camera.core.Config.Option<ValueT!>!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>!, ValueT?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract static class Config.Option<T> {
+ method public static <T> androidx.camera.core.Config.Option<T!>! create(String!, Class<?>!);
+ method public static <T> androidx.camera.core.Config.Option<T!>! create(String!, Class<?>!, Object?);
+ method public abstract String! getId();
+ method public abstract Object? getToken();
+ method public abstract Class<T!>! getValueClass();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface Config.OptionMatcher {
+ method public boolean onOptionMatched(androidx.camera.core.Config.Option<?>!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface ConfigProvider<C extends androidx.camera.core.Config> {
+ method public C! getConfig(Integer?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class DeferrableSurface {
+ ctor public DeferrableSurface();
+ method public final void close();
+ method public final com.google.common.util.concurrent.ListenableFuture<android.view.Surface!> getSurface();
+ method public void notifySurfaceAttached();
+ method public void notifySurfaceDetached();
+ method public void setOnSurfaceDetachedListener(java.util.concurrent.Executor, androidx.camera.core.DeferrableSurface.OnSurfaceDetachedListener);
+ field protected static final String TAG = "DeferrableSurface";
+ }
+
+ public static interface DeferrableSurface.OnSurfaceDetachedListener {
+ method public void onSurfaceDetached();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class DeferrableSurface.SurfaceClosedException extends java.lang.Exception {
+ ctor public DeferrableSurface.SurfaceClosedException(String, Throwable, androidx.camera.core.DeferrableSurface);
+ ctor public DeferrableSurface.SurfaceClosedException(String, androidx.camera.core.DeferrableSurface);
+ method public androidx.camera.core.DeferrableSurface getDeferrableSurface();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class DeferrableSurfaces {
+ method public static com.google.common.util.concurrent.ListenableFuture<java.util.List<android.view.Surface!>!> surfaceListWithTimeout(java.util.Collection<androidx.camera.core.DeferrableSurface!>, boolean, long, java.util.concurrent.Executor, java.util.concurrent.ScheduledExecutorService);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class DeviceProperties {
+ ctor public DeviceProperties();
+ method public static androidx.camera.core.DeviceProperties! create();
+ method public static androidx.camera.core.DeviceProperties! create(String!, String!, int);
+ method public abstract String! manufacturer();
+ method public abstract String! model();
+ method public abstract int sdkVersion();
+ }
+
+ public final class DisplayOrientedMeteringPointFactory extends androidx.camera.core.MeteringPointFactory {
+ ctor public DisplayOrientedMeteringPointFactory(android.content.Context, androidx.camera.core.CameraSelector, float, float);
+ ctor public DisplayOrientedMeteringPointFactory(android.view.Display, androidx.camera.core.CameraSelector, float, float);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected android.graphics.PointF convertPoint(float, float);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class Exif {
+ method public void attachLocation(android.location.Location!);
+ method public void attachTimestamp();
+ method public static androidx.camera.core.Exif! createFromFile(java.io.File!) throws java.io.IOException;
+ method public static androidx.camera.core.Exif! createFromFileString(String!) throws java.io.IOException;
+ method public static androidx.camera.core.Exif! createFromInputStream(java.io.InputStream!) throws java.io.IOException;
+ method public void flipHorizontally();
+ method public void flipVertically();
+ method public String? getDescription();
+ method public int getHeight();
+ method public long getLastModifiedTimestamp();
+ method public android.location.Location? getLocation();
+ method public int getRotation();
+ method public long getTimestamp();
+ method public int getWidth();
+ method public boolean isFlippedHorizontally();
+ method public boolean isFlippedVertically();
+ method public void removeLocation();
+ method public void removeTimestamp();
+ method public void rotate(int);
+ method public void save() throws java.io.IOException;
+ method public void setDescription(String?);
+ field public static final long INVALID_TIMESTAMP = -1L; // 0xffffffffffffffffL
+ }
+
+ public interface ExtendableBuilder<T> {
+ method public T build();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.MutableConfig getMutableConfig();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class ExtendableUseCaseConfigFactory implements androidx.camera.core.UseCaseConfigFactory {
+ ctor public ExtendableUseCaseConfigFactory();
+ method public <C extends androidx.camera.core.UseCaseConfig<?>> C? getConfig(Class<C!>!, Integer?);
+ method public <C extends androidx.camera.core.Config> void installDefaultProvider(Class<C!>!, androidx.camera.core.ConfigProvider<C!>!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class FlashModeHelper {
+ method public static String nameOf(@androidx.camera.core.ImageCapture.FlashMode int);
+ method @androidx.camera.core.ImageCapture.FlashMode public static int valueOf(String?);
+ }
+
+ public final class FocusMeteringAction {
+ method public long getAutoCancelDurationInMillis();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAe();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAf();
+ method public java.util.List<androidx.camera.core.MeteringPoint!> getMeteringPointsAwb();
+ method public boolean isAutoCancelEnabled();
+ field public static final int FLAG_AE = 2; // 0x2
+ field public static final int FLAG_AF = 1; // 0x1
+ field public static final int FLAG_AWB = 4; // 0x4
+ }
+
+ public static class FocusMeteringAction.Builder {
+ method public androidx.camera.core.FocusMeteringAction.Builder addPoint(androidx.camera.core.MeteringPoint);
+ method public androidx.camera.core.FocusMeteringAction.Builder addPoint(androidx.camera.core.MeteringPoint, @androidx.camera.core.FocusMeteringAction.MeteringMode int);
+ method public androidx.camera.core.FocusMeteringAction build();
+ method public androidx.camera.core.FocusMeteringAction.Builder disableAutoCancel();
+ method public static androidx.camera.core.FocusMeteringAction.Builder from(androidx.camera.core.MeteringPoint);
+ method public static androidx.camera.core.FocusMeteringAction.Builder from(androidx.camera.core.MeteringPoint, @androidx.camera.core.FocusMeteringAction.MeteringMode int);
+ method public androidx.camera.core.FocusMeteringAction.Builder setAutoCancelDuration(@IntRange(from=1) long, java.util.concurrent.TimeUnit);
+ }
+
+ @IntDef(flag=true, value={androidx.camera.core.FocusMeteringAction.FLAG_AF, androidx.camera.core.FocusMeteringAction.FLAG_AE, androidx.camera.core.FocusMeteringAction.FLAG_AWB}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface FocusMeteringAction.MeteringMode {
+ }
+
+ public final class FocusMeteringResult {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.FocusMeteringResult create(boolean);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.FocusMeteringResult emptyInstance();
+ method public boolean isFocusSuccessful();
+ }
+
+ public final class ImageAnalysis extends androidx.camera.core.UseCase {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void clear();
+ method public void clearAnalyzer();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected java.util.Map<java.lang.String!,android.util.Size!> onSuggestedResolutionUpdated(java.util.Map<java.lang.String!,android.util.Size!>);
+ method public void setAnalyzer(java.util.concurrent.Executor, androidx.camera.core.ImageAnalysis.Analyzer);
+ method public void setTargetRotation(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.ImageAnalysis.Defaults! DEFAULT_CONFIG;
+ field public static final int STRATEGY_BLOCK_PRODUCER = 1; // 0x1
+ field public static final int STRATEGY_KEEP_ONLY_LATEST = 0; // 0x0
+ }
+
+ public static interface ImageAnalysis.Analyzer {
+ method public void analyze(androidx.camera.core.ImageProxy);
+ }
+
+ @IntDef({androidx.camera.core.ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST, androidx.camera.core.ImageAnalysis.STRATEGY_BLOCK_PRODUCER}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ImageAnalysis.BackpressureStrategy {
+ }
+
+ public static final class ImageAnalysis.Builder implements androidx.camera.core.CameraDeviceConfig.Builder<androidx.camera.core.ImageAnalysis.Builder> androidx.camera.core.ImageOutputConfig.Builder<androidx.camera.core.ImageAnalysis.Builder> androidx.camera.core.UseCaseConfig.Builder<androidx.camera.core.ImageAnalysis,androidx.camera.core.ImageAnalysisConfig,androidx.camera.core.ImageAnalysis.Builder> {
+ ctor public ImageAnalysis.Builder();
+ method public androidx.camera.core.ImageAnalysis build();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.ImageAnalysis.Builder fromConfig(androidx.camera.core.ImageAnalysisConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.MutableConfig getMutableConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysisConfig getUseCaseConfig();
+ method public androidx.camera.core.ImageAnalysis.Builder setBackgroundExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.ImageAnalysis.Builder setBackpressureStrategy(@androidx.camera.core.ImageAnalysis.BackpressureStrategy int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setCameraIdFilter(androidx.camera.core.CameraIdFilter);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setDefaultCaptureConfig(androidx.camera.core.CaptureConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setDefaultResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setDefaultSessionConfig(androidx.camera.core.SessionConfig);
+ method public androidx.camera.core.ImageAnalysis.Builder setImageQueueDepth(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setLensFacing(@androidx.camera.core.CameraSelector.LensFacing int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setMaxResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setSurfaceOccupancyPriority(int);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetAspectRatio(@androidx.camera.core.AspectRatio.Ratio int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setTargetAspectRatioCustom(android.util.Rational);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setTargetClass(Class<androidx.camera.core.ImageAnalysis!>);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetName(String);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.ImageAnalysis.Builder setTargetRotation(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageAnalysis.Builder setUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class ImageAnalysis.Defaults implements androidx.camera.core.ConfigProvider<androidx.camera.core.ImageAnalysisConfig> {
+ ctor public ImageAnalysis.Defaults();
+ method public androidx.camera.core.ImageAnalysisConfig getConfig(Integer?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class ImageAnalysisConfig implements androidx.camera.core.CameraDeviceConfig androidx.camera.core.ImageOutputConfig androidx.camera.core.UseCaseConfig<androidx.camera.core.ImageAnalysis> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean containsOption(androidx.camera.core.Config.Option<?>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void findOptions(String, androidx.camera.core.Config.OptionMatcher);
+ method public java.util.concurrent.Executor? getBackgroundExecutor(java.util.concurrent.Executor?);
+ method public java.util.concurrent.Executor getBackgroundExecutor();
+ method @androidx.camera.core.ImageAnalysis.BackpressureStrategy public int getBackpressureStrategy(@androidx.camera.core.ImageAnalysis.BackpressureStrategy int);
+ method @androidx.camera.core.ImageAnalysis.BackpressureStrategy public int getBackpressureStrategy();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter? getCameraIdFilter(androidx.camera.core.CameraIdFilter?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter getCameraIdFilter();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker? getCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker getCaptureOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig? getDefaultCaptureConfig(androidx.camera.core.CaptureConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig getDefaultCaptureConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getDefaultResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getDefaultResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig? getDefaultSessionConfig(androidx.camera.core.SessionConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig getDefaultSessionConfig();
+ method public int getImageQueueDepth(int);
+ method public int getImageQueueDepth();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Integer? getLensFacing(Integer?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.camera.core.CameraSelector.LensFacing public int getLensFacing();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getMaxResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getMaxResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker? getSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker getSessionOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>? getSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!> getSupportedResolutions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority();
+ method @androidx.camera.core.AspectRatio.Ratio public int getTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational? getTargetAspectRatioCustom(android.util.Rational?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational getTargetAspectRatioCustom();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.ImageAnalysis!>? getTargetClass(Class<androidx.camera.core.ImageAnalysis!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.ImageAnalysis!> getTargetClass();
+ method public String? getTargetName(String?);
+ method public String getTargetName();
+ method public android.util.Size? getTargetResolution(android.util.Size?);
+ method public android.util.Size getTargetResolution();
+ method @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation(int);
+ method @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback? getUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback getUseCaseEventCallback();
+ method public boolean hasTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Set<androidx.camera.core.Config.Option<?>!> listOptions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>, ValueT?);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.util.concurrent.Executor!>! OPTION_BACKGROUND_EXECUTOR;
+ }
+
+ public class ImageCapture extends androidx.camera.core.UseCase {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void clear();
+ method @androidx.camera.core.ImageCapture.FlashMode public int getFlashMode();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected java.util.Map<java.lang.String!,android.util.Size!> onSuggestedResolutionUpdated(java.util.Map<java.lang.String!,android.util.Size!>);
+ method public void setFlashMode(@androidx.camera.core.ImageCapture.FlashMode int);
+ method public void setTargetAspectRatioCustom(android.util.Rational);
+ method public void setTargetRotation(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ method public void takePicture(java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageCapturedCallback);
+ method public void takePicture(java.io.File, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
+ method public void takePicture(java.io.File, androidx.camera.core.ImageCapture.Metadata, java.util.concurrent.Executor, androidx.camera.core.ImageCapture.OnImageSavedCallback);
+ field public static final int CAPTURE_MODE_MAXIMIZE_QUALITY = 0; // 0x0
+ field public static final int CAPTURE_MODE_MINIMIZE_LATENCY = 1; // 0x1
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.ImageCapture.Defaults! DEFAULT_CONFIG;
+ field public static final int ERROR_CAMERA_CLOSED = 3; // 0x3
+ field public static final int ERROR_CAPTURE_FAILED = 2; // 0x2
+ field public static final int ERROR_FILE_IO = 1; // 0x1
+ field public static final int ERROR_INVALID_CAMERA = 4; // 0x4
+ field public static final int ERROR_UNKNOWN = 0; // 0x0
+ field public static final int FLASH_MODE_AUTO = 0; // 0x0
+ field public static final int FLASH_MODE_OFF = 2; // 0x2
+ field public static final int FLASH_MODE_ON = 1; // 0x1
+ }
+
+ public static final class ImageCapture.Builder implements androidx.camera.core.CameraDeviceConfig.Builder<androidx.camera.core.ImageCapture.Builder> androidx.camera.core.ImageOutputConfig.Builder<androidx.camera.core.ImageCapture.Builder> androidx.camera.core.UseCaseConfig.Builder<androidx.camera.core.ImageCapture,androidx.camera.core.ImageCaptureConfig,androidx.camera.core.ImageCapture.Builder> {
+ ctor public ImageCapture.Builder();
+ method public androidx.camera.core.ImageCapture build();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.ImageCapture.Builder fromConfig(androidx.camera.core.ImageCaptureConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.MutableConfig getMutableConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCaptureConfig getUseCaseConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setBufferFormat(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setCameraIdFilter(androidx.camera.core.CameraIdFilter);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setCaptureBundle(androidx.camera.core.CaptureBundle);
+ method public androidx.camera.core.ImageCapture.Builder setCaptureMode(@androidx.camera.core.ImageCapture.CaptureMode int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setCaptureProcessor(androidx.camera.core.CaptureProcessor);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setDefaultCaptureConfig(androidx.camera.core.CaptureConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setDefaultResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setDefaultSessionConfig(androidx.camera.core.SessionConfig);
+ method public androidx.camera.core.ImageCapture.Builder setFlashMode(@androidx.camera.core.ImageCapture.FlashMode int);
+ method public androidx.camera.core.ImageCapture.Builder setIoExecutor(java.util.concurrent.Executor);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setLensFacing(@androidx.camera.core.CameraSelector.LensFacing int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setMaxCaptureStages(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setMaxResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setSurfaceOccupancyPriority(int);
+ method public androidx.camera.core.ImageCapture.Builder setTargetAspectRatio(@androidx.camera.core.AspectRatio.Ratio int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setTargetAspectRatioCustom(android.util.Rational);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setTargetClass(Class<androidx.camera.core.ImageCapture!>);
+ method public androidx.camera.core.ImageCapture.Builder setTargetName(String);
+ method public androidx.camera.core.ImageCapture.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.ImageCapture.Builder setTargetRotation(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.ImageCapture.Builder setUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback);
+ }
+
+ @IntDef({androidx.camera.core.ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY, androidx.camera.core.ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ImageCapture.CaptureMode {
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class ImageCapture.Defaults implements androidx.camera.core.ConfigProvider<androidx.camera.core.ImageCaptureConfig> {
+ ctor public ImageCapture.Defaults();
+ method public androidx.camera.core.ImageCaptureConfig! getConfig(Integer?);
+ }
+
+ @IntDef({androidx.camera.core.ImageCapture.FLASH_MODE_AUTO, androidx.camera.core.ImageCapture.FLASH_MODE_ON, androidx.camera.core.ImageCapture.FLASH_MODE_OFF}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ImageCapture.FlashMode {
+ }
+
+ @IntDef({androidx.camera.core.ImageCapture.ERROR_UNKNOWN, androidx.camera.core.ImageCapture.ERROR_FILE_IO, androidx.camera.core.ImageCapture.ERROR_CAPTURE_FAILED, androidx.camera.core.ImageCapture.ERROR_CAMERA_CLOSED, androidx.camera.core.ImageCapture.ERROR_INVALID_CAMERA}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ImageCapture.ImageCaptureError {
+ }
+
+ public static final class ImageCapture.Metadata {
+ ctor public ImageCapture.Metadata();
+ method public android.location.Location? getLocation();
+ method public boolean isReversedHorizontal();
+ method public boolean isReversedVertical();
+ method public void setLocation(android.location.Location?);
+ method public void setReversedHorizontal(boolean);
+ method public void setReversedVertical(boolean);
+ }
+
+ public abstract static class ImageCapture.OnImageCapturedCallback {
+ ctor public ImageCapture.OnImageCapturedCallback();
+ method public void onCaptureSuccess(androidx.camera.core.ImageProxy);
+ method public void onError(@androidx.camera.core.ImageCapture.ImageCaptureError int, String, Throwable?);
+ }
+
+ public static interface ImageCapture.OnImageSavedCallback {
+ method public void onError(@androidx.camera.core.ImageCapture.ImageCaptureError int, String, Throwable?);
+ method public void onImageSaved(java.io.File);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class ImageCaptureConfig implements androidx.camera.core.CameraDeviceConfig androidx.camera.core.ImageOutputConfig androidx.camera.core.UseCaseConfig<androidx.camera.core.ImageCapture> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean containsOption(androidx.camera.core.Config.Option<?>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void findOptions(String, androidx.camera.core.Config.OptionMatcher);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Integer? getBufferFormat(Integer?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Integer getBufferFormat();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter? getCameraIdFilter(androidx.camera.core.CameraIdFilter?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter getCameraIdFilter();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureBundle? getCaptureBundle(androidx.camera.core.CaptureBundle?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureBundle getCaptureBundle();
+ method @androidx.camera.core.ImageCapture.CaptureMode public int getCaptureMode();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker? getCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker getCaptureOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureProcessor? getCaptureProcessor(androidx.camera.core.CaptureProcessor?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureProcessor getCaptureProcessor();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig? getDefaultCaptureConfig(androidx.camera.core.CaptureConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig getDefaultCaptureConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getDefaultResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getDefaultResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig? getDefaultSessionConfig(androidx.camera.core.SessionConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig getDefaultSessionConfig();
+ method @androidx.camera.core.ImageCapture.FlashMode public int getFlashMode();
+ method public java.util.concurrent.Executor? getIoExecutor(java.util.concurrent.Executor?);
+ method public java.util.concurrent.Executor getIoExecutor();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Integer? getLensFacing(Integer?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.camera.core.CameraSelector.LensFacing public int getLensFacing();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getMaxCaptureStages(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getMaxCaptureStages();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getMaxResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getMaxResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker? getSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker getSessionOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>? getSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!> getSupportedResolutions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority();
+ method @androidx.camera.core.AspectRatio.Ratio public int getTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational? getTargetAspectRatioCustom(android.util.Rational?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational getTargetAspectRatioCustom();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.ImageCapture!>? getTargetClass(Class<androidx.camera.core.ImageCapture!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.ImageCapture!> getTargetClass();
+ method public String? getTargetName(String?);
+ method public String getTargetName();
+ method public android.util.Size? getTargetResolution(android.util.Size?);
+ method public android.util.Size getTargetResolution();
+ method @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation(int);
+ method @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback? getUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback getUseCaseEventCallback();
+ method public boolean hasCaptureMode();
+ method public boolean hasTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Set<androidx.camera.core.Config.Option<?>!> listOptions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>, ValueT?);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.util.concurrent.Executor!>! OPTION_IO_EXECUTOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class ImageFormatConstants {
+ field public static final int INTERNAL_DEFINED_IMAGE_FORMAT_JPEG = 33; // 0x21
+ field public static final int INTERNAL_DEFINED_IMAGE_FORMAT_PRIVATE = 34; // 0x22
+ }
+
+ public interface ImageInfo {
+ method public int getRotationDegrees();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Object? getTag();
+ method public long getTimestamp();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface ImageInfoProcessor {
+ method public androidx.camera.core.CaptureStage! getCaptureStage();
+ method public boolean process(androidx.camera.core.ImageInfo!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface ImageOutputConfig {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getDefaultResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getDefaultResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getMaxResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getMaxResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>? getSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!> getSupportedResolutions();
+ method @androidx.camera.core.AspectRatio.Ratio public int getTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational? getTargetAspectRatioCustom(android.util.Rational?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational getTargetAspectRatioCustom();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getTargetResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getTargetResolution();
+ method @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation(int);
+ method @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation();
+ method public boolean hasTargetAspectRatio();
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final int INVALID_ROTATION = -1; // 0xffffffff
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<android.util.Size!>! OPTION_DEFAULT_RESOLUTION;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<android.util.Size!>! OPTION_MAX_RESOLUTION;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>!>! OPTION_SUPPORTED_RESOLUTIONS;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.lang.Integer!>! OPTION_TARGET_ASPECT_RATIO;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<android.util.Rational!>! OPTION_TARGET_ASPECT_RATIO_CUSTOM;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<android.util.Size!>! OPTION_TARGET_RESOLUTION;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.lang.Integer!>! OPTION_TARGET_ROTATION;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface ImageOutputConfig.Builder<B> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setDefaultResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setMaxResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>);
+ method public B setTargetAspectRatio(@androidx.camera.core.AspectRatio.Ratio int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setTargetAspectRatioCustom(android.util.Rational);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setTargetResolution(android.util.Size);
+ method public B setTargetRotation(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ }
+
+ @IntDef({android.view.Surface.ROTATION_0, android.view.Surface.ROTATION_90, android.view.Surface.ROTATION_180, android.view.Surface.ROTATION_270}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface ImageOutputConfig.RotationValue {
+ }
+
+ public interface ImageProxy extends java.lang.AutoCloseable {
+ method public void close();
+ method public android.graphics.Rect getCropRect();
+ method public int getFormat();
+ method public int getHeight();
+ method public androidx.camera.core.ImageInfo getImageInfo();
+ method public androidx.camera.core.ImageProxy.PlaneProxy![] getPlanes();
+ method public int getWidth();
+ method public void setCropRect(android.graphics.Rect?);
+ }
+
+ public static interface ImageProxy.PlaneProxy {
+ method public java.nio.ByteBuffer getBuffer();
+ method public int getPixelStride();
+ method public int getRowStride();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface ImageProxyBundle {
+ method public java.util.List<java.lang.Integer!> getCaptureIds();
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.ImageProxy!> getImageProxy(int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface ImageReaderProxy {
+ method public androidx.camera.core.ImageProxy? acquireLatestImage();
+ method public androidx.camera.core.ImageProxy? acquireNextImage();
+ method public void close();
+ method public int getHeight();
+ method public int getImageFormat();
+ method public int getMaxImages();
+ method public android.view.Surface! getSurface();
+ method public int getWidth();
+ method public void setOnImageAvailableListener(androidx.camera.core.ImageReaderProxy.OnImageAvailableListener, android.os.Handler?);
+ method public void setOnImageAvailableListener(androidx.camera.core.ImageReaderProxy.OnImageAvailableListener, java.util.concurrent.Executor);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface ImageReaderProxy.OnImageAvailableListener {
+ method public void onImageAvailable(androidx.camera.core.ImageReaderProxy!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class ImageReaderProxys {
+ method public static androidx.camera.core.ImageReaderProxy createIsolatedReader(int, int, int, int);
+ method public static androidx.camera.core.ImageReaderProxy createSharedReader(androidx.camera.core.CameraDeviceSurfaceManager, String, int, int, int, int, java.util.concurrent.Executor);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class ImmediateSurface extends androidx.camera.core.DeferrableSurface {
+ ctor public ImmediateSurface(android.view.Surface);
+ method public com.google.common.util.concurrent.ListenableFuture<android.view.Surface!> provideSurface();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class LensFacingCameraIdFilter implements androidx.camera.core.CameraIdFilter {
+ ctor public LensFacingCameraIdFilter(@androidx.camera.core.CameraSelector.LensFacing int);
+ method public java.util.Set<java.lang.String!> filter(java.util.Set<java.lang.String!>);
+ method @androidx.camera.core.CameraSelector.LensFacing public int getLensFacing();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class LensFacingConverter {
+ method public static String nameOf(@androidx.camera.core.CameraSelector.LensFacing int);
+ method @androidx.camera.core.CameraSelector.LensFacing public static int valueOf(String?);
+ method public static Integer![] values();
+ }
+
+ public class MeteringPoint {
+ method public float getSize();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational? getSurfaceAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public float getX();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public float getY();
+ }
+
+ public abstract class MeteringPointFactory {
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public MeteringPointFactory();
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public MeteringPointFactory(android.util.Rational?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected abstract android.graphics.PointF convertPoint(float, float);
+ method public final androidx.camera.core.MeteringPoint createPoint(float, float);
+ method public final androidx.camera.core.MeteringPoint createPoint(float, float, float);
+ method public static float getDefaultPointSize();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class MultiValueSet<C> {
+ ctor public MultiValueSet();
+ method public void addAll(java.util.List<C!>!);
+ method public abstract androidx.camera.core.MultiValueSet<C!>! clone();
+ method public java.util.List<C!> getAllItems();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface MutableConfig extends androidx.camera.core.Config {
+ method public <ValueT> void insertOption(androidx.camera.core.Config.Option<ValueT!>!, ValueT!);
+ method public <ValueT> ValueT? removeOption(androidx.camera.core.Config.Option<ValueT!>!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class MutableOptionsBundle extends androidx.camera.core.OptionsBundle implements androidx.camera.core.MutableConfig {
+ method public static androidx.camera.core.MutableOptionsBundle! create();
+ method public static androidx.camera.core.MutableOptionsBundle! from(androidx.camera.core.Config!);
+ method public <ValueT> void insertOption(androidx.camera.core.Config.Option<ValueT!>!, ValueT!);
+ method public <ValueT> ValueT? removeOption(androidx.camera.core.Config.Option<ValueT!>!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface Observable<T> {
+ method public void addObserver(java.util.concurrent.Executor, androidx.camera.core.Observable.Observer<T!>);
+ method public com.google.common.util.concurrent.ListenableFuture<T!> fetchData();
+ method public void removeObserver(androidx.camera.core.Observable.Observer<T!>);
+ }
+
+ public static interface Observable.Observer<T> {
+ method public void onError(Throwable);
+ method public void onNewData(T?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class OptionsBundle implements androidx.camera.core.Config {
+ method public boolean containsOption(androidx.camera.core.Config.Option<?>);
+ method public static androidx.camera.core.OptionsBundle emptyBundle();
+ method public void findOptions(String, androidx.camera.core.Config.OptionMatcher);
+ method public static androidx.camera.core.OptionsBundle from(androidx.camera.core.Config);
+ method public java.util.Set<androidx.camera.core.Config.Option<?>!> listOptions();
+ method public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>);
+ method public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>, ValueT?);
+ field protected final java.util.TreeMap<androidx.camera.core.Config.Option<?>!,java.lang.Object!>! mOptions;
+ }
+
+ public class Preview extends androidx.camera.core.UseCase {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void clear();
+ method @UiThread public androidx.camera.core.Preview.PreviewSurfaceProvider? getPreviewSurfaceProvider();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected java.util.Map<java.lang.String!,android.util.Size!> onSuggestedResolutionUpdated(java.util.Map<java.lang.String!,android.util.Size!>);
+ method @UiThread public void setPreviewSurfaceProvider(java.util.concurrent.Executor, androidx.camera.core.Preview.PreviewSurfaceProvider?);
+ method @UiThread public void setPreviewSurfaceProvider(androidx.camera.core.Preview.PreviewSurfaceProvider?);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Preview.Defaults! DEFAULT_CONFIG;
+ }
+
+ public static final class Preview.Builder implements androidx.camera.core.CameraDeviceConfig.Builder<androidx.camera.core.Preview.Builder> androidx.camera.core.ImageOutputConfig.Builder<androidx.camera.core.Preview.Builder> androidx.camera.core.UseCaseConfig.Builder<androidx.camera.core.Preview,androidx.camera.core.PreviewConfig,androidx.camera.core.Preview.Builder> {
+ ctor public Preview.Builder();
+ method public androidx.camera.core.Preview build();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static androidx.camera.core.Preview.Builder fromConfig(androidx.camera.core.PreviewConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.MutableConfig getMutableConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.PreviewConfig getUseCaseConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setBackgroundExecutor(java.util.concurrent.Executor);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setCameraIdFilter(androidx.camera.core.CameraIdFilter);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setCaptureProcessor(androidx.camera.core.CaptureProcessor);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setDefaultCaptureConfig(androidx.camera.core.CaptureConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setDefaultResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setDefaultSessionConfig(androidx.camera.core.SessionConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setImageInfoProcessor(androidx.camera.core.ImageInfoProcessor);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setLensFacing(@androidx.camera.core.CameraSelector.LensFacing int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setMaxResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setSurfaceOccupancyPriority(int);
+ method public androidx.camera.core.Preview.Builder setTargetAspectRatio(@androidx.camera.core.AspectRatio.Ratio int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setTargetAspectRatioCustom(android.util.Rational);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setTargetClass(Class<androidx.camera.core.Preview!>);
+ method public androidx.camera.core.Preview.Builder setTargetName(String);
+ method public androidx.camera.core.Preview.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.Preview.Builder setTargetRotation(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.Preview.Builder setUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class Preview.Defaults implements androidx.camera.core.ConfigProvider<androidx.camera.core.PreviewConfig> {
+ ctor public Preview.Defaults();
+ method public androidx.camera.core.PreviewConfig! getConfig(Integer?);
+ }
+
+ public static interface Preview.PreviewSurfaceProvider {
+ method public com.google.common.util.concurrent.ListenableFuture<android.view.Surface!> provideSurface(android.util.Size, com.google.common.util.concurrent.ListenableFuture<java.lang.Void!>);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class PreviewConfig implements androidx.camera.core.CameraDeviceConfig androidx.camera.core.ImageOutputConfig androidx.camera.core.UseCaseConfig<androidx.camera.core.Preview> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean containsOption(androidx.camera.core.Config.Option<?>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void findOptions(String, androidx.camera.core.Config.OptionMatcher);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.concurrent.Executor? getBackgroundExecutor(java.util.concurrent.Executor?);
+ method public java.util.concurrent.Executor getBackgroundExecutor();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter? getCameraIdFilter(androidx.camera.core.CameraIdFilter?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter getCameraIdFilter();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker? getCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker getCaptureOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureProcessor? getCaptureProcessor(androidx.camera.core.CaptureProcessor?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureProcessor getCaptureProcessor();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig? getDefaultCaptureConfig(androidx.camera.core.CaptureConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig getDefaultCaptureConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getDefaultResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getDefaultResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig? getDefaultSessionConfig(androidx.camera.core.SessionConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig getDefaultSessionConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Integer? getLensFacing(Integer?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.camera.core.CameraSelector.LensFacing public int getLensFacing();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getMaxResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getMaxResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker? getSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker getSessionOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>? getSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!> getSupportedResolutions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority();
+ method @androidx.camera.core.AspectRatio.Ratio public int getTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational? getTargetAspectRatioCustom(android.util.Rational?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational getTargetAspectRatioCustom();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.Preview!>? getTargetClass(Class<androidx.camera.core.Preview!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.Preview!> getTargetClass();
+ method public String? getTargetName(String?);
+ method public String getTargetName();
+ method public android.util.Size? getTargetResolution(android.util.Size?);
+ method public android.util.Size getTargetResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback? getUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback getUseCaseEventCallback();
+ method public boolean hasTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Set<androidx.camera.core.Config.Option<?>!> listOptions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>, ValueT?);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.util.concurrent.Executor!>! OPTION_BACKGROUND_EXECUTOR;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class SessionConfig {
+ method public static androidx.camera.core.SessionConfig defaultEmptySessionConfig();
+ method public java.util.List<android.hardware.camera2.CameraDevice.StateCallback!> getDeviceStateCallbacks();
+ method public java.util.List<androidx.camera.core.SessionConfig.ErrorListener!> getErrorListeners();
+ method public androidx.camera.core.Config getImplementationOptions();
+ method public java.util.List<androidx.camera.core.CameraCaptureCallback!> getRepeatingCameraCaptureCallbacks();
+ method public androidx.camera.core.CaptureConfig getRepeatingCaptureConfig();
+ method public java.util.List<android.hardware.camera2.CameraCaptureSession.StateCallback!> getSessionStateCallbacks();
+ method public java.util.List<androidx.camera.core.CameraCaptureCallback!> getSingleCameraCaptureCallbacks();
+ method public java.util.List<androidx.camera.core.DeferrableSurface!> getSurfaces();
+ method public int getTemplateType();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static class SessionConfig.Builder {
+ ctor public SessionConfig.Builder();
+ method public void addAllCameraCaptureCallbacks(java.util.Collection<androidx.camera.core.CameraCaptureCallback!>);
+ method public void addAllDeviceStateCallbacks(java.util.Collection<android.hardware.camera2.CameraDevice.StateCallback!>);
+ method public void addAllRepeatingCameraCaptureCallbacks(java.util.Collection<androidx.camera.core.CameraCaptureCallback!>);
+ method public void addAllSessionStateCallbacks(java.util.List<android.hardware.camera2.CameraCaptureSession.StateCallback!>);
+ method public void addCameraCaptureCallback(androidx.camera.core.CameraCaptureCallback);
+ method public void addDeviceStateCallback(android.hardware.camera2.CameraDevice.StateCallback);
+ method public void addErrorListener(androidx.camera.core.SessionConfig.ErrorListener);
+ method public void addImplementationOptions(androidx.camera.core.Config);
+ method public void addNonRepeatingSurface(androidx.camera.core.DeferrableSurface);
+ method public void addRepeatingCameraCaptureCallback(androidx.camera.core.CameraCaptureCallback);
+ method public void addSessionStateCallback(android.hardware.camera2.CameraCaptureSession.StateCallback);
+ method public void addSurface(androidx.camera.core.DeferrableSurface);
+ method public androidx.camera.core.SessionConfig build();
+ method public void clearSurfaces();
+ method public static androidx.camera.core.SessionConfig.Builder createFrom(androidx.camera.core.UseCaseConfig<?>);
+ method public java.util.List<androidx.camera.core.CameraCaptureCallback!> getSingleCameraCaptureCallbacks();
+ method public void removeSurface(androidx.camera.core.DeferrableSurface);
+ method public void setImplementationOptions(androidx.camera.core.Config!);
+ method public void setTag(Object!);
+ method public void setTemplateType(int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface SessionConfig.ErrorListener {
+ method public void onError(androidx.camera.core.SessionConfig, androidx.camera.core.SessionConfig.SessionError);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface SessionConfig.OptionUnpacker {
+ method public void unpack(androidx.camera.core.UseCaseConfig<?>, androidx.camera.core.SessionConfig.Builder);
+ }
+
+ public enum SessionConfig.SessionError {
+ enum_constant public static final androidx.camera.core.SessionConfig.SessionError SESSION_ERROR_SURFACE_NEEDS_RESET;
+ enum_constant public static final androidx.camera.core.SessionConfig.SessionError SESSION_ERROR_UNKNOWN;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class SessionConfig.ValidatingBuilder {
+ ctor public SessionConfig.ValidatingBuilder();
+ method public void add(androidx.camera.core.SessionConfig);
+ method public androidx.camera.core.SessionConfig build();
+ method public boolean isValid();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class SingleImageProxyBundle implements androidx.camera.core.ImageProxyBundle {
+ ctor public SingleImageProxyBundle(androidx.camera.core.ImageProxy);
+ method public java.util.List<java.lang.Integer!> getCaptureIds();
+ method public com.google.common.util.concurrent.ListenableFuture<androidx.camera.core.ImageProxy!> getImageProxy(int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class SurfaceCombination {
+ ctor public SurfaceCombination();
+ method public boolean addSurfaceConfig(androidx.camera.core.SurfaceConfig!);
+ method public java.util.List<androidx.camera.core.SurfaceConfig!>! getSurfaceConfigList();
+ method public boolean isSupported(java.util.List<androidx.camera.core.SurfaceConfig!>!);
+ method public boolean removeSurfaceConfig(androidx.camera.core.SurfaceConfig!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class SurfaceConfig {
+ method public static androidx.camera.core.SurfaceConfig! create(androidx.camera.core.SurfaceConfig.ConfigType!, androidx.camera.core.SurfaceConfig.ConfigSize!);
+ method public abstract androidx.camera.core.SurfaceConfig.ConfigSize! getConfigSize();
+ method public abstract androidx.camera.core.SurfaceConfig.ConfigType! getConfigType();
+ method public final boolean isSupported(androidx.camera.core.SurfaceConfig!);
+ }
+
+ public enum SurfaceConfig.ConfigSize {
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigSize ANALYSIS;
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigSize MAXIMUM;
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigSize NOT_SUPPORT;
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigSize PREVIEW;
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigSize RECORD;
+ }
+
+ public enum SurfaceConfig.ConfigType {
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigType JPEG;
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigType PRIV;
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigType RAW;
+ enum_constant public static final androidx.camera.core.SurfaceConfig.ConfigType YUV;
+ }
+
+ public class SurfaceOrientedMeteringPointFactory extends androidx.camera.core.MeteringPointFactory {
+ ctor public SurfaceOrientedMeteringPointFactory(float, float);
+ ctor public SurfaceOrientedMeteringPointFactory(float, float, androidx.camera.core.UseCase);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected android.graphics.PointF convertPoint(float, float);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public abstract class SurfaceSizeDefinition {
+ method public static androidx.camera.core.SurfaceSizeDefinition! create(android.util.Size!, android.util.Size!, android.util.Size!);
+ method public abstract android.util.Size! getAnalysisSize();
+ method public abstract android.util.Size! getPreviewSize();
+ method public abstract android.util.Size! getRecordSize();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface TargetConfig<T> {
+ method public Class<T!>? getTargetClass(Class<T!>?);
+ method public Class<T!> getTargetClass();
+ method public String? getTargetName(String?);
+ method public String getTargetName();
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.lang.Class<?>!>! OPTION_TARGET_CLASS;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.lang.String!>! OPTION_TARGET_NAME;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface TargetConfig.Builder<T, B> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setTargetClass(Class<T!>);
+ method public B setTargetName(String);
+ }
+
+ public class TorchState {
+ field public static final int OFF = 0; // 0x0
+ field public static final int ON = 1; // 0x1
+ }
+
+ @IntDef({androidx.camera.core.TorchState.OFF, androidx.camera.core.TorchState.ON}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface TorchState.State {
+ }
+
+ public abstract class UseCase {
+ ctor @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected UseCase(androidx.camera.core.UseCaseConfig<?>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void addStateChangeCallback(androidx.camera.core.UseCase.StateChangeCallback);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected androidx.camera.core.UseCaseConfig<?> applyDefaults(androidx.camera.core.UseCaseConfig<?>, androidx.camera.core.UseCaseConfig.Builder<?,?,?>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final void attachCameraControl(String!, androidx.camera.core.CameraControlInternal!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected void attachToCamera(String!, androidx.camera.core.SessionConfig!);
+ method @CallSuper @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected void clear();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Set<java.lang.String!>! getAttachedCameraIds();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size! getAttachedSurfaceResolution(String!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraInternal? getBoundCamera();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected String getBoundCameraId();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected androidx.camera.core.CameraControlInternal! getCameraControl(String!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected androidx.camera.core.UseCaseConfig.Builder<?,?,?>? getDefaultBuilder(Integer?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getImageFormat();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public String getName();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig! getSessionConfig(String!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCaseConfig<?>! getUseCaseConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected boolean isCurrentlyBoundCamera(String);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected final void notifyActive();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected final void notifyInactive();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected final void notifyReset();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected final void notifyState();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected final void notifyUpdated();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected void onBind(androidx.camera.core.CameraInternal);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected void onCameraControlReady(String!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void onStateOffline(String);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void onStateOnline(String);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected abstract java.util.Map<java.lang.String!,android.util.Size!> onSuggestedResolutionUpdated(java.util.Map<java.lang.String!,android.util.Size!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void removeStateChangeCallback(androidx.camera.core.UseCase.StateChangeCallback);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected void setImageFormat(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void updateSuggestedResolution(java.util.Map<java.lang.String!,android.util.Size!>!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected final void updateUseCaseConfig(androidx.camera.core.UseCaseConfig<?>);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface UseCase.EventCallback {
+ method public void onBind(String);
+ method public void onUnbind();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface UseCase.StateChangeCallback {
+ method public void onUseCaseActive(androidx.camera.core.UseCase);
+ method public void onUseCaseInactive(androidx.camera.core.UseCase);
+ method public void onUseCaseReset(androidx.camera.core.UseCase);
+ method public void onUseCaseUpdated(androidx.camera.core.UseCase);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class UseCaseAttachState {
+ ctor public UseCaseAttachState(String!);
+ method public androidx.camera.core.SessionConfig.ValidatingBuilder! getActiveAndOnlineBuilder();
+ method public java.util.Collection<androidx.camera.core.UseCase!>! getActiveAndOnlineUseCases();
+ method public androidx.camera.core.SessionConfig.ValidatingBuilder! getOnlineBuilder();
+ method public java.util.Collection<androidx.camera.core.UseCase!>! getOnlineUseCases();
+ method public androidx.camera.core.SessionConfig! getUseCaseSessionConfig(androidx.camera.core.UseCase!);
+ method public boolean isUseCaseOnline(androidx.camera.core.UseCase!);
+ method public void setUseCaseActive(androidx.camera.core.UseCase!);
+ method public void setUseCaseInactive(androidx.camera.core.UseCase!);
+ method public void setUseCaseOffline(androidx.camera.core.UseCase!);
+ method public void setUseCaseOnline(androidx.camera.core.UseCase!);
+ method public void updateUseCase(androidx.camera.core.UseCase!);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface UseCaseConfig<T extends androidx.camera.core.UseCase> extends androidx.camera.core.TargetConfig<T> androidx.camera.core.Config androidx.camera.core.UseCaseEventConfig {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker? getCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker getCaptureOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig? getDefaultCaptureConfig(androidx.camera.core.CaptureConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig getDefaultCaptureConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig? getDefaultSessionConfig(androidx.camera.core.SessionConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig getDefaultSessionConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker? getSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker getSessionOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority();
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<androidx.camera.core.CaptureConfig.OptionUnpacker!>! OPTION_CAPTURE_CONFIG_UNPACKER;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<androidx.camera.core.CaptureConfig!>! OPTION_DEFAULT_CAPTURE_CONFIG;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<androidx.camera.core.SessionConfig!>! OPTION_DEFAULT_SESSION_CONFIG;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<androidx.camera.core.SessionConfig.OptionUnpacker!>! OPTION_SESSION_CONFIG_UNPACKER;
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.lang.Integer!>! OPTION_SURFACE_OCCUPANCY_PRIORITY;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface UseCaseConfig.Builder<T extends androidx.camera.core.UseCase, C extends androidx.camera.core.UseCaseConfig<T>, B> extends androidx.camera.core.TargetConfig.Builder<T,B> androidx.camera.core.ExtendableBuilder<T> androidx.camera.core.UseCaseEventConfig.Builder<B> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public C getUseCaseConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setDefaultCaptureConfig(androidx.camera.core.CaptureConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setDefaultSessionConfig(androidx.camera.core.SessionConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setSurfaceOccupancyPriority(int);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface UseCaseConfigFactory {
+ method public <C extends androidx.camera.core.UseCaseConfig<?>> C? getConfig(Class<C!>!, Integer?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface UseCaseEventConfig {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback? getUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback getUseCaseEventCallback();
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<androidx.camera.core.UseCase.EventCallback!>! OPTION_USE_CASE_EVENT_CALLBACK;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static interface UseCaseEventConfig.Builder<B> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public B setUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class UseCaseGroup {
+ ctor public UseCaseGroup();
+ method public boolean addUseCase(androidx.camera.core.UseCase!);
+ method public void clear();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class VideoCapture extends androidx.camera.core.UseCase {
+ ctor public VideoCapture(androidx.camera.core.VideoCaptureConfig!);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void clear();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) protected java.util.Map<java.lang.String!,android.util.Size!> onSuggestedResolutionUpdated(java.util.Map<java.lang.String!,android.util.Size!>);
+ method public void setTargetRotation(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ method public void startRecording(java.io.File, java.util.concurrent.Executor, androidx.camera.core.VideoCapture.OnVideoSavedCallback);
+ method public void startRecording(java.io.File, androidx.camera.core.VideoCapture.Metadata, java.util.concurrent.Executor, androidx.camera.core.VideoCapture.OnVideoSavedCallback);
+ method public void stopRecording();
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.VideoCapture.Defaults! DEFAULT_CONFIG;
+ field public static final int ERROR_ENCODER = 1; // 0x1
+ field public static final int ERROR_MUXER = 2; // 0x2
+ field public static final int ERROR_RECORDING_IN_PROGRESS = 3; // 0x3
+ field public static final int ERROR_UNKNOWN = 0; // 0x0
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final class VideoCapture.Defaults implements androidx.camera.core.ConfigProvider<androidx.camera.core.VideoCaptureConfig> {
+ ctor public VideoCapture.Defaults();
+ method public androidx.camera.core.VideoCaptureConfig! getConfig(Integer?);
+ }
+
+ public static final class VideoCapture.Metadata {
+ ctor public VideoCapture.Metadata();
+ field public android.location.Location? location;
+ }
+
+ public static interface VideoCapture.OnVideoSavedCallback {
+ method public void onError(@androidx.camera.core.VideoCapture.VideoCaptureError int, String, Throwable?);
+ method public void onVideoSaved(java.io.File);
+ }
+
+ @IntDef({androidx.camera.core.VideoCapture.ERROR_UNKNOWN, androidx.camera.core.VideoCapture.ERROR_ENCODER, androidx.camera.core.VideoCapture.ERROR_MUXER, androidx.camera.core.VideoCapture.ERROR_RECORDING_IN_PROGRESS}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface VideoCapture.VideoCaptureError {
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class VideoCaptureConfig implements androidx.camera.core.CameraDeviceConfig androidx.camera.core.ImageOutputConfig androidx.camera.core.UseCaseConfig<androidx.camera.core.VideoCapture> {
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public boolean containsOption(androidx.camera.core.Config.Option<?>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public void findOptions(String, androidx.camera.core.Config.OptionMatcher);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioBitRate(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioBitRate();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioChannelCount(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioChannelCount();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioMinBufferSize(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioMinBufferSize();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioRecordSource(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioRecordSource();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioSampleRate(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getAudioSampleRate();
+ method public java.util.concurrent.Executor? getBackgroundExecutor(java.util.concurrent.Executor?);
+ method public java.util.concurrent.Executor getBackgroundExecutor();
+ method public int getBitRate(int);
+ method public int getBitRate();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter? getCameraIdFilter(androidx.camera.core.CameraIdFilter?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CameraIdFilter getCameraIdFilter();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker? getCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig.OptionUnpacker getCaptureOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig? getDefaultCaptureConfig(androidx.camera.core.CaptureConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.CaptureConfig getDefaultCaptureConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getDefaultResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getDefaultResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig? getDefaultSessionConfig(androidx.camera.core.SessionConfig?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig getDefaultSessionConfig();
+ method public int getIFrameInterval(int);
+ method public int getIFrameInterval();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Integer? getLensFacing(Integer?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @androidx.camera.core.CameraSelector.LensFacing public int getLensFacing();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getMaxResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getMaxResolution();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker? getSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.SessionConfig.OptionUnpacker getSessionOptionUnpacker();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>? getSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!> getSupportedResolutions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public int getSurfaceOccupancyPriority();
+ method @androidx.camera.core.AspectRatio.Ratio public int getTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational? getTargetAspectRatioCustom(android.util.Rational?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Rational getTargetAspectRatioCustom();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.VideoCapture!>? getTargetClass(Class<androidx.camera.core.VideoCapture!>?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public Class<androidx.camera.core.VideoCapture!> getTargetClass();
+ method public String? getTargetName(String?);
+ method public String getTargetName();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size? getTargetResolution(android.util.Size?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public android.util.Size getTargetResolution();
+ method @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation(int);
+ method @androidx.camera.core.ImageOutputConfig.RotationValue public int getTargetRotation();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback? getUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback?);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.UseCase.EventCallback getUseCaseEventCallback();
+ method public int getVideoFrameRate(int);
+ method public int getVideoFrameRate();
+ method public boolean hasTargetAspectRatio();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public java.util.Set<androidx.camera.core.Config.Option<?>!> listOptions();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public <ValueT> ValueT? retrieveOption(androidx.camera.core.Config.Option<ValueT!>, ValueT?);
+ field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public static final androidx.camera.core.Config.Option<java.util.concurrent.Executor!>! OPTION_BACKGROUND_EXECUTOR;
+ }
+
+ public static final class VideoCaptureConfig.Builder implements androidx.camera.core.CameraDeviceConfig.Builder<androidx.camera.core.VideoCaptureConfig.Builder> androidx.camera.core.ImageOutputConfig.Builder<androidx.camera.core.VideoCaptureConfig.Builder> androidx.camera.core.UseCaseConfig.Builder<androidx.camera.core.VideoCapture,androidx.camera.core.VideoCaptureConfig,androidx.camera.core.VideoCaptureConfig.Builder> {
+ ctor public VideoCaptureConfig.Builder();
+ method public androidx.camera.core.VideoCapture build();
+ method public static androidx.camera.core.VideoCaptureConfig.Builder fromConfig(androidx.camera.core.VideoCaptureConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.MutableConfig getMutableConfig();
+ method public androidx.camera.core.VideoCaptureConfig getUseCaseConfig();
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setAudioBitRate(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setAudioChannelCount(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setAudioMinBufferSize(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setAudioRecordSource(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setAudioSampleRate(int);
+ method public androidx.camera.core.VideoCaptureConfig.Builder setBackgroundExecutor(java.util.concurrent.Executor);
+ method public androidx.camera.core.VideoCaptureConfig.Builder setBitRate(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setCameraIdFilter(androidx.camera.core.CameraIdFilter);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setCaptureOptionUnpacker(androidx.camera.core.CaptureConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setDefaultCaptureConfig(androidx.camera.core.CaptureConfig);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setDefaultResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setDefaultSessionConfig(androidx.camera.core.SessionConfig);
+ method public androidx.camera.core.VideoCaptureConfig.Builder setIFrameInterval(int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setLensFacing(@androidx.camera.core.CameraSelector.LensFacing int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setMaxResolution(android.util.Size);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setSessionOptionUnpacker(androidx.camera.core.SessionConfig.OptionUnpacker);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setSupportedResolutions(java.util.List<android.util.Pair<java.lang.Integer!,android.util.Size![]!>!>);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setSurfaceOccupancyPriority(int);
+ method public androidx.camera.core.VideoCaptureConfig.Builder setTargetAspectRatio(@androidx.camera.core.AspectRatio.Ratio int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setTargetAspectRatioCustom(android.util.Rational);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setTargetClass(Class<androidx.camera.core.VideoCapture!>);
+ method public androidx.camera.core.VideoCaptureConfig.Builder setTargetName(String);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setTargetResolution(android.util.Size);
+ method public androidx.camera.core.VideoCaptureConfig.Builder setTargetRotation(@androidx.camera.core.ImageOutputConfig.RotationValue int);
+ method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public androidx.camera.core.VideoCaptureConfig.Builder setUseCaseEventCallback(androidx.camera.core.UseCase.EventCallback);
+ method public androidx.camera.core.VideoCaptureConfig.Builder setVideoFrameRate(int);
+ }
+
+}
+
+package @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) androidx.camera.core.impl {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class LiveDataObservable<T> implements androidx.camera.core.Observable<T> {
+ ctor public LiveDataObservable();
+ method public void addObserver(java.util.concurrent.Executor, androidx.camera.core.Observable.Observer<T!>);
+ method public com.google.common.util.concurrent.ListenableFuture<T!> fetchData();
+ method public androidx.lifecycle.LiveData<androidx.camera.core.impl.LiveDataObservable.Result<T!>!> getLiveData();
+ method public void postError(Throwable);
+ method public void postValue(T?);
+ method public void removeObserver(androidx.camera.core.Observable.Observer<T!>);
+ }
+
+}
+
+package @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) androidx.camera.core.impl.annotation {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target(java.lang.annotation.ElementType.METHOD) public @interface ExecutedBy {
+ method public abstract String value();
+ }
+
+}
+
+package @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) androidx.camera.core.impl.utils {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class CameraSelectorUtil {
+ method public static androidx.camera.core.CameraDeviceConfig toCameraDeviceConfig(androidx.camera.core.CameraSelector);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class MainThreadAsyncHandler {
+ method public static android.os.Handler! getInstance();
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class Threads {
+ method public static void checkBackgroundThread();
+ method public static void checkMainThread();
+ method public static boolean isBackgroundThread();
+ method public static boolean isMainThread();
+ }
+
+}
+
+package @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) androidx.camera.core.impl.utils.futures {
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) @java.lang.FunctionalInterface public interface AsyncFunction<I, O> {
+ method public com.google.common.util.concurrent.ListenableFuture<O!>! apply(I?) throws java.lang.Exception;
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public interface FutureCallback<V> {
+ method public void onFailure(Throwable!);
+ method public void onSuccess(V?);
+ }
+
+ @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public class FutureChain<V> implements com.google.common.util.concurrent.ListenableFuture<V> {
+ method public final void addCallback(androidx.camera.core.impl.utils.futures.FutureCallback<? super V>, java.util.concurrent.Executor);
+ method public void addListener(Runnable, java.util.concurrent.Executor);
+ method public boolean cancel(boolean);
+ method public static <V> androidx.camera.core.impl.utils.futures.FutureChain<V!> from(com.google.common.util.concurrent.ListenableFuture<V!>);
+ method public V? get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException;
+ method public V? get(long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException;
+ method public boolean isCancelled();
+ method public boolean isDone();
+ method public final <T> androidx.camera.core.impl.utils.futures.FutureChain<T!> transform(androidx.arch.core.util.Function<? super V,T!>, java.util.concurrent.Executor);
+ method public final <T> androidx.camera.core.impl.utils.futures.FutureChain<T!> transformAsync(androidx.camera.core.impl.utils.futures.AsyncFunction<? super V,T!>, java.util.concurrent.Executor);
+ }
+
+}
+
diff --git a/camera/camera-core/src/androidTest/java/androidx/camera/core/DeferrableSurfacesTest.java b/camera/camera-core/src/androidTest/java/androidx/camera/core/DeferrableSurfacesTest.java
index e115ec2..b29231c 100644
--- a/camera/camera-core/src/androidTest/java/androidx/camera/core/DeferrableSurfacesTest.java
+++ b/camera/camera-core/src/androidTest/java/androidx/camera/core/DeferrableSurfacesTest.java
@@ -30,6 +30,7 @@
import androidx.camera.core.impl.utils.futures.Futures;
import androidx.concurrent.futures.CallbackToFutureAdapter;
import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.filters.MediumTest;
import androidx.test.filters.SmallTest;
import com.google.common.util.concurrent.ListenableFuture;
@@ -63,6 +64,7 @@
}
@Test
+ @MediumTest
public void getSurfaceTimeoutTest() {
DeferrableSurface fakeDeferrableSurface = new DeferrableSurface() {
@Override
diff --git a/camera/camera-lifecycle/api/1.0.0-alpha02.txt b/camera/camera-lifecycle/api/1.0.0-alpha02.txt
new file mode 100644
index 0000000..a6aba27
--- /dev/null
+++ b/camera/camera-lifecycle/api/1.0.0-alpha02.txt
@@ -0,0 +1,21 @@
+// Signature format: 3.0
+package androidx.camera.lifecycle {
+
+ public interface LifecycleCameraProvider {
+ method public boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public boolean isBound(androidx.camera.core.UseCase);
+ method public void unbind(androidx.camera.core.UseCase!...);
+ method public void unbindAll();
+ }
+
+ public final class ProcessCameraProvider implements androidx.camera.lifecycle.LifecycleCameraProvider {
+ method public androidx.camera.core.Camera bindToLifecycle(androidx.lifecycle.LifecycleOwner, androidx.camera.core.CameraSelector, androidx.camera.core.UseCase!...);
+ method public static com.google.common.util.concurrent.ListenableFuture<androidx.camera.lifecycle.ProcessCameraProvider!> getInstance(android.content.Context);
+ method public boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public boolean isBound(androidx.camera.core.UseCase);
+ method public void unbind(androidx.camera.core.UseCase!...);
+ method public void unbindAll();
+ }
+
+}
+
diff --git a/camera/camera-lifecycle/api/current.txt b/camera/camera-lifecycle/api/current.txt
new file mode 100644
index 0000000..a6aba27
--- /dev/null
+++ b/camera/camera-lifecycle/api/current.txt
@@ -0,0 +1,21 @@
+// Signature format: 3.0
+package androidx.camera.lifecycle {
+
+ public interface LifecycleCameraProvider {
+ method public boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public boolean isBound(androidx.camera.core.UseCase);
+ method public void unbind(androidx.camera.core.UseCase!...);
+ method public void unbindAll();
+ }
+
+ public final class ProcessCameraProvider implements androidx.camera.lifecycle.LifecycleCameraProvider {
+ method public androidx.camera.core.Camera bindToLifecycle(androidx.lifecycle.LifecycleOwner, androidx.camera.core.CameraSelector, androidx.camera.core.UseCase!...);
+ method public static com.google.common.util.concurrent.ListenableFuture<androidx.camera.lifecycle.ProcessCameraProvider!> getInstance(android.content.Context);
+ method public boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public boolean isBound(androidx.camera.core.UseCase);
+ method public void unbind(androidx.camera.core.UseCase!...);
+ method public void unbindAll();
+ }
+
+}
+
diff --git a/camera/camera-lifecycle/api/public_plus_experimental_1.0.0-alpha02.txt b/camera/camera-lifecycle/api/public_plus_experimental_1.0.0-alpha02.txt
new file mode 100644
index 0000000..a6aba27
--- /dev/null
+++ b/camera/camera-lifecycle/api/public_plus_experimental_1.0.0-alpha02.txt
@@ -0,0 +1,21 @@
+// Signature format: 3.0
+package androidx.camera.lifecycle {
+
+ public interface LifecycleCameraProvider {
+ method public boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public boolean isBound(androidx.camera.core.UseCase);
+ method public void unbind(androidx.camera.core.UseCase!...);
+ method public void unbindAll();
+ }
+
+ public final class ProcessCameraProvider implements androidx.camera.lifecycle.LifecycleCameraProvider {
+ method public androidx.camera.core.Camera bindToLifecycle(androidx.lifecycle.LifecycleOwner, androidx.camera.core.CameraSelector, androidx.camera.core.UseCase!...);
+ method public static com.google.common.util.concurrent.ListenableFuture<androidx.camera.lifecycle.ProcessCameraProvider!> getInstance(android.content.Context);
+ method public boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public boolean isBound(androidx.camera.core.UseCase);
+ method public void unbind(androidx.camera.core.UseCase!...);
+ method public void unbindAll();
+ }
+
+}
+
diff --git a/camera/camera-lifecycle/api/public_plus_experimental_current.txt b/camera/camera-lifecycle/api/public_plus_experimental_current.txt
new file mode 100644
index 0000000..a6aba27
--- /dev/null
+++ b/camera/camera-lifecycle/api/public_plus_experimental_current.txt
@@ -0,0 +1,21 @@
+// Signature format: 3.0
+package androidx.camera.lifecycle {
+
+ public interface LifecycleCameraProvider {
+ method public boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public boolean isBound(androidx.camera.core.UseCase);
+ method public void unbind(androidx.camera.core.UseCase!...);
+ method public void unbindAll();
+ }
+
+ public final class ProcessCameraProvider implements androidx.camera.lifecycle.LifecycleCameraProvider {
+ method public androidx.camera.core.Camera bindToLifecycle(androidx.lifecycle.LifecycleOwner, androidx.camera.core.CameraSelector, androidx.camera.core.UseCase!...);
+ method public static com.google.common.util.concurrent.ListenableFuture<androidx.camera.lifecycle.ProcessCameraProvider!> getInstance(android.content.Context);
+ method public boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public boolean isBound(androidx.camera.core.UseCase);
+ method public void unbind(androidx.camera.core.UseCase!...);
+ method public void unbindAll();
+ }
+
+}
+
diff --git a/camera/camera-lifecycle/api/res-1.0.0-alpha02.txt b/camera/camera-lifecycle/api/res-1.0.0-alpha02.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/camera/camera-lifecycle/api/res-1.0.0-alpha02.txt
diff --git a/camera/camera-lifecycle/api/restricted_1.0.0-alpha02.txt b/camera/camera-lifecycle/api/restricted_1.0.0-alpha02.txt
new file mode 100644
index 0000000..a6aba27
--- /dev/null
+++ b/camera/camera-lifecycle/api/restricted_1.0.0-alpha02.txt
@@ -0,0 +1,21 @@
+// Signature format: 3.0
+package androidx.camera.lifecycle {
+
+ public interface LifecycleCameraProvider {
+ method public boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public boolean isBound(androidx.camera.core.UseCase);
+ method public void unbind(androidx.camera.core.UseCase!...);
+ method public void unbindAll();
+ }
+
+ public final class ProcessCameraProvider implements androidx.camera.lifecycle.LifecycleCameraProvider {
+ method public androidx.camera.core.Camera bindToLifecycle(androidx.lifecycle.LifecycleOwner, androidx.camera.core.CameraSelector, androidx.camera.core.UseCase!...);
+ method public static com.google.common.util.concurrent.ListenableFuture<androidx.camera.lifecycle.ProcessCameraProvider!> getInstance(android.content.Context);
+ method public boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public boolean isBound(androidx.camera.core.UseCase);
+ method public void unbind(androidx.camera.core.UseCase!...);
+ method public void unbindAll();
+ }
+
+}
+
diff --git a/camera/camera-lifecycle/api/restricted_current.txt b/camera/camera-lifecycle/api/restricted_current.txt
new file mode 100644
index 0000000..a6aba27
--- /dev/null
+++ b/camera/camera-lifecycle/api/restricted_current.txt
@@ -0,0 +1,21 @@
+// Signature format: 3.0
+package androidx.camera.lifecycle {
+
+ public interface LifecycleCameraProvider {
+ method public boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public boolean isBound(androidx.camera.core.UseCase);
+ method public void unbind(androidx.camera.core.UseCase!...);
+ method public void unbindAll();
+ }
+
+ public final class ProcessCameraProvider implements androidx.camera.lifecycle.LifecycleCameraProvider {
+ method public androidx.camera.core.Camera bindToLifecycle(androidx.lifecycle.LifecycleOwner, androidx.camera.core.CameraSelector, androidx.camera.core.UseCase!...);
+ method public static com.google.common.util.concurrent.ListenableFuture<androidx.camera.lifecycle.ProcessCameraProvider!> getInstance(android.content.Context);
+ method public boolean hasCamera(androidx.camera.core.CameraSelector) throws androidx.camera.core.CameraInfoUnavailableException;
+ method public boolean isBound(androidx.camera.core.UseCase);
+ method public void unbind(androidx.camera.core.UseCase!...);
+ method public void unbindAll();
+ }
+
+}
+
diff --git a/compose/compose-runtime/api/0.1.0-dev04.txt b/compose/compose-runtime/api/0.1.0-dev04.txt
new file mode 100644
index 0000000..786046d
--- /dev/null
+++ b/compose/compose-runtime/api/0.1.0-dev04.txt
@@ -0,0 +1,703 @@
+// Signature format: 3.0
+package androidx.compose {
+
+ public final class ActualAndroidKt {
+ ctor public ActualAndroidKt();
+ method public static android.content.Context getContext(android.view.View);
+ method public static android.view.ViewParent getParent(android.view.View);
+ method public static boolean isMainThread();
+ }
+
+ public final class ActualJvmKt {
+ ctor public ActualJvmKt();
+ method public static int identityHashCode(Object? instance);
+ method public static inline <R> R! synchronized(Object lock, kotlin.jvm.functions.Function0<? extends R> block);
+ }
+
+ public final class Ambient<T> {
+ method @androidx.compose.Composable public void Provider(T? value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ field public static final androidx.compose.Ambient.Companion! Companion;
+ }
+
+ public static final class Ambient.Companion {
+ method public <T> androidx.compose.Ambient<T> of(kotlin.jvm.functions.Function0<? extends T>? defaultFactory = null);
+ }
+
+ public final class Anchor {
+ ctor public Anchor(internal int loc);
+ method public boolean getValid();
+ method public int location(androidx.compose.SlotTable slots);
+ property public final boolean valid;
+ }
+
+ public final class Applier<N> {
+ ctor public Applier(N! root, androidx.compose.ApplyAdapter<N> adapter);
+ method public void down(N? node);
+ method public N! getCurrent();
+ method public void insert(int index, N? instance);
+ method public void move(int from, int to, int count);
+ method public void remove(int index, int count);
+ method public void reset();
+ method public void up();
+ property public final N! current;
+ }
+
+ public interface ApplyAdapter<N> {
+ method public void end(N?, N? instance, N? parent);
+ method public void insertAt(N?, int index, N? instance);
+ method public void move(N?, int from, int to, int count);
+ method public void removeAt(N?, int index, int count);
+ method public void start(N?, N? instance);
+ }
+
+ public final class Choreographer {
+ method public void postFrameCallback(android.view.Choreographer.FrameCallback callback);
+ method public void postFrameCallbackDelayed(long delayMillis, android.view.Choreographer.FrameCallback callback);
+ method public void removeFrameCallback(android.view.Choreographer.FrameCallback callback);
+ field public static final androidx.compose.Choreographer! INSTANCE;
+ }
+
+ @androidx.compose.EffectsDsl public interface CommitScope {
+ method public void onDispose(kotlin.jvm.functions.Function0<kotlin.Unit> callback);
+ }
+
+ public abstract class Component {
+ ctor public Component();
+ method @androidx.compose.Composable public abstract void compose();
+ method protected final void recompose();
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.PROPERTY}) public @interface Composable {
+ }
+
+ public final class Compose {
+ method @MainThread public androidx.compose.CompositionContext? composeInto(android.view.ViewGroup container, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ method @MainThread public androidx.compose.CompositionContext composeInto(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ method @MainThread public void disposeComposition(android.view.ViewGroup container, androidx.compose.CompositionReference? parent = null);
+ method @MainThread public void disposeComposition(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null);
+ method public androidx.compose.Component? findRoot(android.view.View view);
+ method @MainThread public androidx.compose.CompositionContext subcomposeInto(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ field public static final androidx.compose.Compose! INSTANCE;
+ }
+
+ public final class ComposeAndroidKt {
+ ctor public ComposeAndroidKt();
+ method public static void disposeComposition(android.app.Activity);
+ method public static androidx.compose.CompositionContext? setViewContent(android.app.Activity, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ }
+
+ public final class ComposeKt {
+ ctor public ComposeKt();
+ method public static void disposeComposition(android.view.ViewGroup);
+ method public static androidx.compose.CompositionContext? setViewContent(android.view.ViewGroup, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ }
+
+ public class Composer<N> {
+ ctor public Composer(androidx.compose.SlotTable slotTable, androidx.compose.Applier<N> applier, androidx.compose.Recomposer recomposer);
+ method public final <V, T> void apply(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ method public final void applyChanges();
+ method public final androidx.compose.CompositionReference buildReference();
+ method public final <T> boolean changed(T? value);
+ method public final void collectKeySourceInformation();
+ method protected final void composeRoot(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public final <T extends N> void createNode(kotlin.jvm.functions.Function0<? extends T> factory);
+ method public final void doneJoin(boolean valid);
+ method public final <T extends N> void emitNode(kotlin.jvm.functions.Function0<? extends T> factory);
+ method public final void emitNode(N? node);
+ method public final void endGroup();
+ method public final void endNode();
+ method public final androidx.compose.ScopeUpdateScope? endRestartGroup();
+ method public final void endRoot();
+ method public final int getChangeCount();
+ method public final boolean getInserting();
+ method public final androidx.compose.SlotTable getSlotTable();
+ method public final Object joinKey(Object? left, Object? right);
+ method public final Object? nextSlot();
+ method public final boolean recompose();
+ method public final void skipCurrentGroup();
+ method public final void skipValue();
+ method public final void startGroup(Object key);
+ method public final kotlin.jvm.functions.Function1<java.lang.Boolean,kotlin.Unit> startJoin(Object key, boolean valid, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>,kotlin.Unit> compose);
+ method public final void startNode(Object key);
+ method public final void startRestartGroup(Object key);
+ method public final void startRoot();
+ method public final void updateValue(Object? value);
+ method public final N! useNode();
+ property public final int changeCount;
+ property public final boolean inserting;
+ }
+
+ public final class ComposerKt {
+ ctor public ComposerKt();
+ method public static inline <N, T> T! cache(androidx.compose.Composer<N>, boolean valid = true, kotlin.jvm.functions.Function0<? extends T> block);
+ method public static inline <T> T! escapeCompose(kotlin.jvm.functions.Function1<? super androidx.compose.NullCompilationScope,? extends T> block);
+ method public static <N> Object? nextValue(androidx.compose.Composer<N>);
+ method public static <N, V> V! remember(androidx.compose.Composer<N>, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1> V! remember(androidx.compose.Composer<N>, P1? p1, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2, P3> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, P3? p3, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2, P3, P4> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, P3? p3, P4? p4, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V> V! remember(androidx.compose.Composer<N>, Object![]? args, kotlin.jvm.functions.Function0<? extends V> block);
+ field public static final int DEFAULT_SLOT_ACTIONS_SIZE = 16; // 0x10
+ field public static final int DEFAULT_SLOT_KEYS_SIZE = 8; // 0x8
+ }
+
+ public final class ComposerUpdater<N, T extends N> {
+ ctor public ComposerUpdater(androidx.compose.Composer<N> composer, T! node);
+ method public androidx.compose.Composer<N> getComposer();
+ method public T! getNode();
+ method public inline void set(int value, kotlin.jvm.functions.Function2<? super T,? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified V> void set(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ method public inline void update(int value, kotlin.jvm.functions.Function2<? super T,? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified V> void update(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ }
+
+ public final class CompositionContext {
+ method public void compose();
+ method public androidx.compose.Component getComponent();
+ method public androidx.compose.Composer<?> getComposer();
+ method public boolean recomposeSync();
+ field public static final androidx.compose.CompositionContext.Companion! Companion;
+ }
+
+ public static final class CompositionContext.Companion {
+ method public androidx.compose.CompositionContext prepare(android.content.Context context, Object root, androidx.compose.Component component, androidx.compose.CompositionReference? compositionReference);
+ method public androidx.compose.CompositionContext prepare(androidx.compose.Component component, androidx.compose.CompositionReference? ambientReference, kotlin.jvm.functions.Function1<? super androidx.compose.Recomposer,? extends androidx.compose.Composer<?>> makeComposer);
+ }
+
+ public interface CompositionLifecycleObserver {
+ method public void onEnter();
+ method public void onLeave();
+ }
+
+ public interface CompositionReference {
+ method public <T> T! getAmbient(androidx.compose.Ambient<T> key);
+ method public void invalidate(boolean sync);
+ method public <T> void invalidateConsumers(androidx.compose.Ambient<T> key);
+ method public <N> void registerComposer(androidx.compose.Composer<N> composer);
+ }
+
+ @androidx.compose.EffectsDsl public final class Effect<T> {
+ method @androidx.compose.annotations.Hide public Object constructKey(int key);
+ method public androidx.compose.Composer<?> getContext();
+ method @androidx.compose.annotations.Hide public T! resolve(androidx.compose.Composer<?> composerContext, int key = sourceLocation());
+ method public void setContext(androidx.compose.Composer<?> p);
+ method public operator <V> V! unaryPlus(androidx.compose.Effect<V>);
+ property public final androidx.compose.Composer<?> context;
+ field @androidx.compose.annotations.Hide public androidx.compose.Composer<?> context;
+ }
+
+ @kotlin.DslMarker public @interface EffectsDsl {
+ }
+
+ public final class EffectsKt {
+ ctor public EffectsKt();
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> ambient(androidx.compose.Ambient<T> key);
+ method public static androidx.compose.Effect<androidx.compose.CompositionReference> compositionReference();
+ method public static <T> androidx.compose.Effect<T> effectOf(kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method public static androidx.compose.Effect<kotlin.jvm.functions.Function0<kotlin.Unit>> getInvalidate();
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> key(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> key(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> key(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> memo(kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> memo(V1? v1, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> memo(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> memo(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> model(kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> modelFor(V1? v1, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> modelFor(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> modelFor(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onActive(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onCommit(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1> androidx.compose.Effect<kotlin.Unit> onCommit(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1, V2> androidx.compose.Effect<kotlin.Unit> onCommit(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onCommit(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onDispose(kotlin.jvm.functions.Function0<kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onPreCommit(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1> androidx.compose.Effect<kotlin.Unit> onPreCommit(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1, V2> androidx.compose.Effect<kotlin.Unit> onPreCommit(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onPreCommit(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<androidx.compose.State<T>> state(kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<androidx.compose.State<T>> stateFor(V1? v1, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<androidx.compose.State<T>> stateFor(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<androidx.compose.State<T>> stateFor(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> init);
+ method public static operator <T> T! unaryPlus(androidx.compose.Effect<T>);
+ }
+
+ public interface Emittable {
+ method public void emitInsertAt(int index, androidx.compose.Emittable instance);
+ method public void emitMove(int from, int to, int count);
+ method public void emitRemoveAt(int index, int count);
+ }
+
+ public final class ExpectKt {
+ ctor public ExpectKt();
+ method public static <T> androidx.compose.ThreadLocal<T> ThreadLocal();
+ }
+
+ public final class FrameManager {
+ method public void ensureStarted();
+ method public <T> T! framed(kotlin.jvm.functions.Function0<? extends T> block);
+ method public <T> T! isolated(kotlin.jvm.functions.Function0<? extends T> block);
+ method public void nextFrame();
+ method public <T> T! unframed(kotlin.jvm.functions.Function0<? extends T> block);
+ field public static final androidx.compose.FrameManager! INSTANCE;
+ }
+
+ public final class Handler {
+ ctor public Handler(android.os.Looper looper);
+ method public android.os.Handler getHandler();
+ method public boolean postAtFrontOfQueue(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ property public final android.os.Handler handler;
+ }
+
+ @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface HiddenAttribute {
+ }
+
+ @androidx.compose.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=AnnotationTarget.CLASS) public @interface Immutable {
+ }
+
+ public final class JoinedKeyKt {
+ ctor public JoinedKeyKt();
+ method public static boolean isJoinedKey(Object? key);
+ method public static Object? joinedKeyLeft(Object? key);
+ method public static Object? joinedKeyRight(Object? key);
+ }
+
+ public final class KeyInfo {
+ ctor public KeyInfo(Object key, int location, int nodes, int index);
+ method public int getIndex();
+ method public Object getKey();
+ method public int getLocation();
+ method public int getNodes();
+ }
+
+ public final class KeyKt {
+ ctor public KeyKt();
+ method @androidx.compose.Composable public static void Key(@androidx.compose.Pivotal Object? key, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ }
+
+ public final class KeySourceInfoKt {
+ ctor public KeySourceInfoKt();
+ method public static String? keySourceInfoOf(Object key);
+ }
+
+ public final class LooperWrapper {
+ method public android.os.Looper getMainLooper();
+ field public static final androidx.compose.LooperWrapper! INSTANCE;
+ }
+
+ @androidx.compose.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=AnnotationTarget.CLASS) public @interface Model {
+ }
+
+ public final class NullCompilationScope {
+ method public kotlin.Unit getComposer();
+ property public final kotlin.Unit composer;
+ field public static final androidx.compose.NullCompilationScope! INSTANCE;
+ }
+
+ public final class ObserveKt {
+ ctor public ObserveKt();
+ method @androidx.compose.Composable public static void Observe(kotlin.jvm.functions.Function0<kotlin.Unit> body);
+ }
+
+ public final class ObserverMap<K, V> {
+ ctor public ObserverMap();
+ method public void add(K key, V value);
+ method public void clear();
+ method public void clearValues(kotlin.jvm.functions.Function1<? super V,java.lang.Boolean> predicate);
+ method public boolean contains(K key, V value);
+ method public operator java.util.List<V> get(Iterable<? extends K> keys);
+ method public java.util.List<V> remove(K key);
+ method public void remove(K key, V value);
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Target(allowedTargets={AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION}) public @interface Pivotal {
+ }
+
+ public final class RecomposeKt {
+ ctor public RecomposeKt();
+ method @androidx.compose.Composable public static void Recompose(kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> body);
+ }
+
+ public abstract class Recomposer {
+ ctor public Recomposer();
+ method protected final void dispatchRecomposes();
+ method public abstract void recomposeSync();
+ method protected abstract void scheduleChangesDispatch();
+ field public static final androidx.compose.Recomposer.Companion! Companion;
+ }
+
+ public static final class Recomposer.Companion {
+ method public androidx.compose.Recomposer current();
+ method public boolean hasPendingChanges();
+ }
+
+ public final class RecomposerKt {
+ ctor public RecomposerKt();
+ }
+
+ public interface ScopeUpdateScope {
+ method public void updateScope(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ }
+
+ public class SlotEditor {
+ method public final Object? get(androidx.compose.Anchor anchor);
+ method public final Object? get(int index);
+ method public final int getCurrent();
+ method public final int getGroupSize();
+ method public final int getNodeIndex();
+ method public final int getParentIndex();
+ method public final int getParentNodes();
+ method public final androidx.compose.SlotTable getTable();
+ method public final int groupSize(int index);
+ method public final boolean isGroup();
+ method public final boolean isGroup(int index);
+ method public final boolean isNode();
+ method public final void setCurrent(int p);
+ property public final int current;
+ property public final int groupSize;
+ property public final boolean isGroup;
+ property public final boolean isNode;
+ property public final int nodeIndex;
+ property public final int parentIndex;
+ property public final int parentNodes;
+ }
+
+ public final class SlotReader extends androidx.compose.SlotEditor {
+ method public void beginEmpty();
+ method public void close();
+ method public void endEmpty();
+ method public int endGroup();
+ method public int endNode();
+ method public java.util.List<androidx.compose.KeyInfo> extractKeys();
+ method public Object? get();
+ method public Object! getGroupKey();
+ method public boolean getInEmpty();
+ method public Object groupKey(int index);
+ method public boolean isGroupEnd();
+ method public Object? next();
+ method public void previous();
+ method public void reportUncertainNodeCount();
+ method public int skipEnclosingGroup();
+ method public int skipGroup();
+ method public int skipNode();
+ method public void startGroup(Object key);
+ method public void startNode(Object key);
+ property public final Object! groupKey;
+ property public final boolean inEmpty;
+ property public final boolean isGroupEnd;
+ }
+
+ public final class SlotTable {
+ ctor public SlotTable(internal Object![] slots);
+ ctor public SlotTable();
+ method public int getSize();
+ method public androidx.compose.SlotReader openReader();
+ method public androidx.compose.SlotWriter openWriter();
+ method public <T> T! read(kotlin.jvm.functions.Function1<? super androidx.compose.SlotReader,? extends T> block);
+ method public <T> T! write(kotlin.jvm.functions.Function1<? super androidx.compose.SlotWriter,? extends T> block);
+ property public final int size;
+ field public static final androidx.compose.SlotTable.Companion! Companion;
+ }
+
+ public static final class SlotTable.Companion {
+ method public Object getEMPTY();
+ property public final Object EMPTY;
+ }
+
+ public final class SlotTableKt {
+ ctor public SlotTableKt();
+ }
+
+ public final class SlotWriter extends androidx.compose.SlotEditor {
+ method public androidx.compose.Anchor anchor(int index = current);
+ method public void beginInsert();
+ method public void close();
+ method public int endGroup();
+ method public void endInsert();
+ method public int endNode();
+ method public java.util.Iterator<java.lang.Object> groupSlots();
+ method public void moveGroup(int offset);
+ method public void previous();
+ method public boolean removeGroup();
+ method public void set(Object? value);
+ method public Object? skip();
+ method public int skipGroup();
+ method public int skipNode();
+ method public void startGroup(Object key);
+ method public void startNode(Object key);
+ method public Object? update(Object? value);
+ }
+
+ public final class SourceLocationKt {
+ ctor public SourceLocationKt();
+ method public static inline int sourceLocation();
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CLASS}) public @interface StableMarker {
+ }
+
+ @androidx.compose.Model public final class State<T> implements androidx.compose.frames.Framed {
+ method public operator T! component1();
+ method public operator kotlin.jvm.functions.Function1<T,kotlin.Unit> component2();
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public T! getValue();
+ method public operator T! getValue(Object? thisObj, kotlin.reflect.KProperty<?> property);
+ method @androidx.compose.annotations.Hide public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public void setValue(T? value);
+ method public operator void setValue(Object? thisObj, kotlin.reflect.KProperty<?> property, T? next);
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public final T! value;
+ }
+
+ public class ThreadLocal<T> extends java.lang.ThreadLocal<T> {
+ ctor public ThreadLocal(kotlin.jvm.functions.Function0<? extends T> initialValue);
+ }
+
+ public final class Trace {
+ method public void beginSection(String name);
+ method public void endSection();
+ field public static final androidx.compose.Trace! INSTANCE;
+ }
+
+ public final class TraceKt {
+ ctor public TraceKt();
+ method public static inline <T> T! trace(String sectionName, kotlin.jvm.functions.Function0<? extends T> block);
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER}) public @interface UnionType {
+ method public abstract Class<?>[] types();
+ }
+
+ public final class ViewAdapters {
+ ctor public ViewAdapters();
+ method public Object? adapt(Object parent, Object child);
+ method public boolean register(kotlin.jvm.functions.Function2<java.lang.Object,java.lang.Object,?> adapter);
+ }
+
+ public final class ViewComposer extends androidx.compose.Composer<java.lang.Object> {
+ ctor public ViewComposer(Object root, android.content.Context context, androidx.compose.Recomposer recomposer, androidx.compose.ViewAdapters? adapters);
+ method public androidx.compose.ViewAdapters? getAdapters();
+ method public android.content.Context getContext();
+ method public Object getRoot();
+ }
+
+ public final class ViewComposerCommonKt {
+ ctor public ViewComposerCommonKt();
+ }
+
+ public final class ViewComposerKt {
+ ctor public ViewComposerKt();
+ method public static androidx.compose.ViewComposition! getComposer();
+ method public static Boolean? registerAdapter(androidx.compose.ViewComposition, kotlin.jvm.functions.Function2<java.lang.Object,java.lang.Object,?> adapter);
+ method public static <T> T! runWithCurrent(androidx.compose.Composer<?>, kotlin.jvm.functions.Function0<? extends T> block);
+ }
+
+ @androidx.compose.EffectsDsl public final class ViewComposition {
+ ctor public ViewComposition(androidx.compose.ViewComposer composer);
+ method public inline void call(Object key, kotlin.jvm.functions.Function1<? super androidx.compose.ViewValidator,java.lang.Boolean> invalid, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public inline <T> void call(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function2<? super androidx.compose.ViewValidator,? super T,java.lang.Boolean> invalid, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T extends android.view.View> void emit(Object key, kotlin.jvm.functions.Function1<? super android.content.Context,? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update);
+ method public inline <T extends android.view.ViewGroup> void emit(Object key, kotlin.jvm.functions.Function1<? super android.content.Context,? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public inline <T extends androidx.compose.Emittable> void emit(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update);
+ method public inline <T extends androidx.compose.Emittable> void emit(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public androidx.compose.ScopeUpdateScope? endRestartGroup();
+ method public inline <T> T! expr(Object key, kotlin.jvm.functions.Function0<? extends T> block);
+ method public androidx.compose.ViewComposer getComposer();
+ method public inline Object joinKey(Object left, Object? right);
+ method public void observe(Object key, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>,kotlin.Unit> block);
+ method public void startRestartGroup(Object key);
+ method public inline operator <V> V! unaryPlus(androidx.compose.Effect<V>);
+ }
+
+ public final class ViewValidator {
+ ctor public ViewValidator(androidx.compose.Composer<?> composer);
+ method public boolean changed(int value);
+ method public <T> boolean changed(T? value);
+ method public <T> boolean changedUnchecked(T? value);
+ method public androidx.compose.Composer<?> getComposer();
+ method public operator boolean plus(boolean, boolean other);
+ method public inline boolean set(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified T> boolean set(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T> boolean setUnchecked(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline boolean update(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified T> boolean update(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T> boolean updateUnchecked(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public boolean updated(int value);
+ method public <T> boolean updated(T? value);
+ }
+
+}
+
+package androidx.compose.adapters {
+
+ public final class ComposeViewAdapter implements androidx.compose.adapters.ViewAdapter {
+ ctor public ComposeViewAdapter();
+ method public void didInsert(android.view.View view, android.view.ViewGroup parent);
+ method public void didUpdate(android.view.View view, android.view.ViewGroup parent);
+ method public inline <T extends androidx.compose.adapters.ViewAdapter> T get(int id, kotlin.jvm.functions.Function0<? extends T> factory);
+ method public java.util.List<androidx.compose.adapters.ViewAdapter> getAdapters();
+ method public int getId();
+ method public void willInsert(android.view.View view, android.view.ViewGroup parent);
+ property public final java.util.List<androidx.compose.adapters.ViewAdapter> adapters;
+ property public int id;
+ }
+
+ public interface ViewAdapter {
+ method public void didInsert(android.view.View view, android.view.ViewGroup parent);
+ method public void didUpdate(android.view.View view, android.view.ViewGroup parent);
+ method public int getId();
+ method public void willInsert(android.view.View view, android.view.ViewGroup parent);
+ property public abstract int id;
+ }
+
+ public final class ViewAdapterKt {
+ ctor public ViewAdapterKt();
+ method public static inline <T extends androidx.compose.adapters.ViewAdapter> T getOrAddAdapter(android.view.View, int id, kotlin.jvm.functions.Function0<? extends T> factory);
+ method public static androidx.compose.adapters.ComposeViewAdapter getViewAdapter(android.view.View);
+ }
+
+}
+
+package androidx.compose.annotations {
+
+ @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface Hide {
+ }
+
+}
+
+package androidx.compose.frames {
+
+ public abstract class AbstractRecord implements androidx.compose.frames.Record {
+ ctor public AbstractRecord();
+ method public int getFrameId();
+ method public androidx.compose.frames.Record? getNext();
+ method public void setFrameId(int p);
+ method public void setNext(androidx.compose.frames.Record? p);
+ property public int frameId;
+ property public androidx.compose.frames.Record? next;
+ }
+
+ public final class Frame {
+ method public int getId();
+ method public boolean getReadonly();
+ method public boolean hasPendingChanges();
+ property public final boolean readonly;
+ }
+
+ public final class FrameAborted extends java.lang.RuntimeException {
+ ctor public FrameAborted(androidx.compose.frames.Frame frame);
+ method public androidx.compose.frames.Frame getFrame();
+ }
+
+ public final class FrameContainersKt {
+ ctor public FrameContainersKt();
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf();
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf(T? element);
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf(T?... elements);
+ method public static <K, V> androidx.compose.frames.ModelMap<K,V> modelMapOf();
+ method public static <K, V> androidx.compose.frames.ModelMap<K,V> modelMapOf(kotlin.Pair<? extends K,? extends V>... pairs);
+ }
+
+ public final class FrameIdSetKt {
+ ctor public FrameIdSetKt();
+ }
+
+ public interface Framed {
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ property public abstract androidx.compose.frames.Record firstFrameRecord;
+ }
+
+ public final class FramesKt {
+ ctor public FramesKt();
+ method public static kotlin.Unit? _created(androidx.compose.frames.Framed framed);
+ method public static androidx.compose.frames.Record _readable(androidx.compose.frames.Record r, androidx.compose.frames.Framed framed);
+ method public static androidx.compose.frames.Record _writable(androidx.compose.frames.Record r, androidx.compose.frames.Framed framed);
+ method public static void abort();
+ method public static void abort(androidx.compose.frames.Frame frame);
+ method public static void abortHandler();
+ method public static void abortHandler(androidx.compose.frames.Frame frame);
+ method public static void commit();
+ method public static void commit(androidx.compose.frames.Frame frame);
+ method public static kotlin.Unit? commitHandler();
+ method public static androidx.compose.frames.Frame currentFrame();
+ method public static boolean getInFrame();
+ method public static void observeAllReads(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit> readObserver, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public static androidx.compose.frames.Frame open(boolean readOnly = false);
+ method public static androidx.compose.frames.Frame open(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver = null, kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver = null);
+ method public static <T extends androidx.compose.frames.Record> T readable(T, androidx.compose.frames.Framed framed);
+ method public static kotlin.jvm.functions.Function0<kotlin.Unit> registerCommitObserver(kotlin.jvm.functions.Function1<? super java.util.Set<?>,kotlin.Unit> observer);
+ method public static void restore(androidx.compose.frames.Frame frame);
+ method public static androidx.compose.frames.Frame suspend();
+ method public static boolean wasModified(Object value);
+ method public static <T extends androidx.compose.frames.Record> T writable(T, androidx.compose.frames.Framed framed);
+ method public static <T extends androidx.compose.frames.Record> T writable(T, androidx.compose.frames.Framed framed, androidx.compose.frames.Frame frame);
+ }
+
+ public final class ModelList<T> implements androidx.compose.frames.Framed kotlin.jvm.internal.markers.KMutableList java.util.List<T> {
+ ctor public ModelList();
+ method public boolean add(T? element);
+ method public void add(int index, T? element);
+ method public boolean addAll(int index, java.util.Collection<? extends T> elements);
+ method public boolean addAll(java.util.Collection<? extends T> elements);
+ method public void clear();
+ method public boolean contains(Object? element);
+ method public boolean containsAll(java.util.Collection<?> elements);
+ method public T! get(int index);
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public int getSize();
+ method public int indexOf(Object? element);
+ method public boolean isEmpty();
+ method public java.util.Iterator<T> iterator();
+ method public int lastIndexOf(Object? element);
+ method public java.util.ListIterator<T> listIterator();
+ method public java.util.ListIterator<T> listIterator(int index);
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public boolean remove(Object? element);
+ method public boolean removeAll(java.util.Collection<?> elements);
+ method public T! removeAt(int index);
+ method public boolean retainAll(java.util.Collection<?> elements);
+ method public T! set(int index, T? element);
+ method public java.util.List<T> subList(int fromIndex, int toIndex);
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public int size;
+ }
+
+ public final class ModelMap<K, V> implements androidx.compose.frames.Framed kotlin.jvm.internal.markers.KMutableMap java.util.Map<K,V> {
+ ctor public ModelMap();
+ method public void clear();
+ method public boolean containsKey(Object? key);
+ method public boolean containsValue(Object? value);
+ method public V? get(Object? key);
+ method public java.util.Set<java.util.Map.Entry<K,V>> getEntries();
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public java.util.Set<K> getKeys();
+ method public int getSize();
+ method public java.util.Collection<V> getValues();
+ method public boolean isEmpty();
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public V? put(K? key, V? value);
+ method public void putAll(java.util.Map<? extends K,? extends V> from);
+ method public V? remove(Object? key);
+ property public java.util.Set<java.util.Map.Entry<K,V>> entries;
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public java.util.Set<K> keys;
+ property public int size;
+ property public java.util.Collection<V> values;
+ }
+
+ public interface Record {
+ method public void assign(androidx.compose.frames.Record value);
+ method public androidx.compose.frames.Record create();
+ method public int getFrameId();
+ method public androidx.compose.frames.Record? getNext();
+ method public void setFrameId(int p);
+ method public void setNext(androidx.compose.frames.Record? p);
+ property public abstract int frameId;
+ property public abstract androidx.compose.frames.Record? next;
+ }
+
+}
+
diff --git a/compose/compose-runtime/api/api_lint.ignore b/compose/compose-runtime/api/api_lint.ignore
new file mode 100644
index 0000000..10909e8
--- /dev/null
+++ b/compose/compose-runtime/api/api_lint.ignore
@@ -0,0 +1,83 @@
+// Baseline format: 1.0
+AcronymName: androidx.compose.SlotTable.Companion#getEMPTY():
+ Acronyms should not be capitalized in method names: was `getEMPTY`, should this be `getEmpty`?
+
+
+ArrayReturn: androidx.compose.ComposerKt#remember(androidx.compose.Composer<N>, Object[], kotlin.jvm.functions.Function0<? extends V>) parameter #1:
+ Method parameter should be Collection<Object> (or subclass) instead of raw array; was `java.lang.Object[]`
+ArrayReturn: androidx.compose.EffectsKt#key(Object[], kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T>) parameter #0:
+ Method parameter should be Collection<Object> (or subclass) instead of raw array; was `java.lang.Object[]`
+ArrayReturn: androidx.compose.EffectsKt#memo(Object[], kotlin.jvm.functions.Function0<? extends T>) parameter #0:
+ Method parameter should be Collection<Object> (or subclass) instead of raw array; was `java.lang.Object[]`
+ArrayReturn: androidx.compose.EffectsKt#modelFor(Object[], kotlin.jvm.functions.Function0<? extends T>) parameter #0:
+ Method parameter should be Collection<Object> (or subclass) instead of raw array; was `java.lang.Object[]`
+ArrayReturn: androidx.compose.EffectsKt#onCommit(Object[], kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit>) parameter #0:
+ Method parameter should be Collection<Object> (or subclass) instead of raw array; was `java.lang.Object[]`
+ArrayReturn: androidx.compose.EffectsKt#onPreCommit(Object[], kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit>) parameter #0:
+ Method parameter should be Collection<Object> (or subclass) instead of raw array; was `java.lang.Object[]`
+ArrayReturn: androidx.compose.EffectsKt#stateFor(Object[], kotlin.jvm.functions.Function0<? extends T>) parameter #0:
+ Method parameter should be Collection<Object> (or subclass) instead of raw array; was `java.lang.Object[]`
+ArrayReturn: androidx.compose.SlotTable#SlotTable(Object[]) parameter #0:
+ Method parameter should be Collection<Object> (or subclass) instead of raw array; was `java.lang.Object[]`
+ArrayReturn: androidx.compose.UnionType#types():
+ Method should return Collection<Class> (or subclass) instead of raw array; was `java.lang.Class<?>[]`
+
+
+CallbackName: androidx.compose.CompositionLifecycleObserver:
+ Class should be named CompositionLifecycleCallback
+
+
+ContextFirst: androidx.compose.Compose#composeInto(androidx.compose.Emittable, android.content.Context, androidx.compose.CompositionReference, kotlin.jvm.functions.Function0<kotlin.Unit>) parameter #1:
+ Context is distinct, so it must be the first argument (method `composeInto`)
+ContextFirst: androidx.compose.Compose#disposeComposition(androidx.compose.Emittable, android.content.Context, androidx.compose.CompositionReference) parameter #1:
+ Context is distinct, so it must be the first argument (method `disposeComposition`)
+ContextFirst: androidx.compose.Compose#subcomposeInto(androidx.compose.Emittable, android.content.Context, androidx.compose.CompositionReference, kotlin.jvm.functions.Function0<kotlin.Unit>) parameter #1:
+ Context is distinct, so it must be the first argument (method `subcomposeInto`)
+ContextFirst: androidx.compose.ViewComposer#ViewComposer(Object, android.content.Context, androidx.compose.Recomposer, androidx.compose.ViewAdapters) parameter #1:
+ Context is distinct, so it must be the first argument (method `ViewComposer`)
+
+
+DocumentExceptions: androidx.compose.frames.FramesKt#commit(androidx.compose.frames.Frame):
+ Method FramesKt.commit appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.compose.frames.FramesKt#currentFrame():
+ Method FramesKt.currentFrame appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+DocumentExceptions: androidx.compose.frames.FramesKt#writable(T, androidx.compose.frames.Framed, androidx.compose.frames.Frame):
+ Method FramesKt.writable appears to be throwing java.lang.IllegalStateException; this should be listed in the documentation; see https://android.github.io/kotlin-guides/interop.html#document-exceptions
+
+
+EqualsAndHashCode: androidx.compose.Ambient#equals(Object):
+ Must override both equals and hashCode; missing one in androidx.compose.Ambient
+
+
+ExceptionName: androidx.compose.frames.FrameAborted:
+ Exceptions must be named `FooException`, was `FrameAborted`
+
+
+KotlinOperator: androidx.compose.ComposerUpdater#set(V, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit>):
+ Note that adding the `operator` keyword would allow calling this method using operator syntax
+KotlinOperator: androidx.compose.ComposerUpdater#set(int, kotlin.jvm.functions.Function2<? super T,? super java.lang.Integer,kotlin.Unit>):
+ Note that adding the `operator` keyword would allow calling this method using operator syntax
+KotlinOperator: androidx.compose.SlotEditor#get(androidx.compose.Anchor):
+ Note that adding the `operator` keyword would allow calling this method using operator syntax
+KotlinOperator: androidx.compose.SlotEditor#get(int):
+ Note that adding the `operator` keyword would allow calling this method using operator syntax
+KotlinOperator: androidx.compose.ViewValidator#set(T, kotlin.jvm.functions.Function1<? super T,kotlin.Unit>):
+ Note that adding the `operator` keyword would allow calling this method using operator syntax
+KotlinOperator: androidx.compose.ViewValidator#set(int, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit>):
+ Note that adding the `operator` keyword would allow calling this method using operator syntax
+KotlinOperator: androidx.compose.adapters.ComposeViewAdapter#get(int, kotlin.jvm.functions.Function0<? extends T>):
+ Note that adding the `operator` keyword would allow calling this method using operator syntax
+
+
+MissingNullability: androidx.compose.SlotReader#getGroupKey():
+ Missing nullability on method `getGroupKey` return
+MissingNullability: androidx.compose.ViewComposerKt#getComposer():
+ Missing nullability on method `getComposer` return
+
+
+MutableBareField: androidx.compose.Effect#context:
+ Bare field context must be marked final, or moved behind accessors if mutable
+
+
+RegistrationName: androidx.compose.Choreographer#removeFrameCallback(android.view.Choreographer.FrameCallback):
+ Callback methods should be named register/unregister; was removeFrameCallback
diff --git a/compose/compose-runtime/api/current.txt b/compose/compose-runtime/api/current.txt
new file mode 100644
index 0000000..786046d
--- /dev/null
+++ b/compose/compose-runtime/api/current.txt
@@ -0,0 +1,703 @@
+// Signature format: 3.0
+package androidx.compose {
+
+ public final class ActualAndroidKt {
+ ctor public ActualAndroidKt();
+ method public static android.content.Context getContext(android.view.View);
+ method public static android.view.ViewParent getParent(android.view.View);
+ method public static boolean isMainThread();
+ }
+
+ public final class ActualJvmKt {
+ ctor public ActualJvmKt();
+ method public static int identityHashCode(Object? instance);
+ method public static inline <R> R! synchronized(Object lock, kotlin.jvm.functions.Function0<? extends R> block);
+ }
+
+ public final class Ambient<T> {
+ method @androidx.compose.Composable public void Provider(T? value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ field public static final androidx.compose.Ambient.Companion! Companion;
+ }
+
+ public static final class Ambient.Companion {
+ method public <T> androidx.compose.Ambient<T> of(kotlin.jvm.functions.Function0<? extends T>? defaultFactory = null);
+ }
+
+ public final class Anchor {
+ ctor public Anchor(internal int loc);
+ method public boolean getValid();
+ method public int location(androidx.compose.SlotTable slots);
+ property public final boolean valid;
+ }
+
+ public final class Applier<N> {
+ ctor public Applier(N! root, androidx.compose.ApplyAdapter<N> adapter);
+ method public void down(N? node);
+ method public N! getCurrent();
+ method public void insert(int index, N? instance);
+ method public void move(int from, int to, int count);
+ method public void remove(int index, int count);
+ method public void reset();
+ method public void up();
+ property public final N! current;
+ }
+
+ public interface ApplyAdapter<N> {
+ method public void end(N?, N? instance, N? parent);
+ method public void insertAt(N?, int index, N? instance);
+ method public void move(N?, int from, int to, int count);
+ method public void removeAt(N?, int index, int count);
+ method public void start(N?, N? instance);
+ }
+
+ public final class Choreographer {
+ method public void postFrameCallback(android.view.Choreographer.FrameCallback callback);
+ method public void postFrameCallbackDelayed(long delayMillis, android.view.Choreographer.FrameCallback callback);
+ method public void removeFrameCallback(android.view.Choreographer.FrameCallback callback);
+ field public static final androidx.compose.Choreographer! INSTANCE;
+ }
+
+ @androidx.compose.EffectsDsl public interface CommitScope {
+ method public void onDispose(kotlin.jvm.functions.Function0<kotlin.Unit> callback);
+ }
+
+ public abstract class Component {
+ ctor public Component();
+ method @androidx.compose.Composable public abstract void compose();
+ method protected final void recompose();
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.PROPERTY}) public @interface Composable {
+ }
+
+ public final class Compose {
+ method @MainThread public androidx.compose.CompositionContext? composeInto(android.view.ViewGroup container, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ method @MainThread public androidx.compose.CompositionContext composeInto(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ method @MainThread public void disposeComposition(android.view.ViewGroup container, androidx.compose.CompositionReference? parent = null);
+ method @MainThread public void disposeComposition(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null);
+ method public androidx.compose.Component? findRoot(android.view.View view);
+ method @MainThread public androidx.compose.CompositionContext subcomposeInto(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ field public static final androidx.compose.Compose! INSTANCE;
+ }
+
+ public final class ComposeAndroidKt {
+ ctor public ComposeAndroidKt();
+ method public static void disposeComposition(android.app.Activity);
+ method public static androidx.compose.CompositionContext? setViewContent(android.app.Activity, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ }
+
+ public final class ComposeKt {
+ ctor public ComposeKt();
+ method public static void disposeComposition(android.view.ViewGroup);
+ method public static androidx.compose.CompositionContext? setViewContent(android.view.ViewGroup, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ }
+
+ public class Composer<N> {
+ ctor public Composer(androidx.compose.SlotTable slotTable, androidx.compose.Applier<N> applier, androidx.compose.Recomposer recomposer);
+ method public final <V, T> void apply(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ method public final void applyChanges();
+ method public final androidx.compose.CompositionReference buildReference();
+ method public final <T> boolean changed(T? value);
+ method public final void collectKeySourceInformation();
+ method protected final void composeRoot(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public final <T extends N> void createNode(kotlin.jvm.functions.Function0<? extends T> factory);
+ method public final void doneJoin(boolean valid);
+ method public final <T extends N> void emitNode(kotlin.jvm.functions.Function0<? extends T> factory);
+ method public final void emitNode(N? node);
+ method public final void endGroup();
+ method public final void endNode();
+ method public final androidx.compose.ScopeUpdateScope? endRestartGroup();
+ method public final void endRoot();
+ method public final int getChangeCount();
+ method public final boolean getInserting();
+ method public final androidx.compose.SlotTable getSlotTable();
+ method public final Object joinKey(Object? left, Object? right);
+ method public final Object? nextSlot();
+ method public final boolean recompose();
+ method public final void skipCurrentGroup();
+ method public final void skipValue();
+ method public final void startGroup(Object key);
+ method public final kotlin.jvm.functions.Function1<java.lang.Boolean,kotlin.Unit> startJoin(Object key, boolean valid, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>,kotlin.Unit> compose);
+ method public final void startNode(Object key);
+ method public final void startRestartGroup(Object key);
+ method public final void startRoot();
+ method public final void updateValue(Object? value);
+ method public final N! useNode();
+ property public final int changeCount;
+ property public final boolean inserting;
+ }
+
+ public final class ComposerKt {
+ ctor public ComposerKt();
+ method public static inline <N, T> T! cache(androidx.compose.Composer<N>, boolean valid = true, kotlin.jvm.functions.Function0<? extends T> block);
+ method public static inline <T> T! escapeCompose(kotlin.jvm.functions.Function1<? super androidx.compose.NullCompilationScope,? extends T> block);
+ method public static <N> Object? nextValue(androidx.compose.Composer<N>);
+ method public static <N, V> V! remember(androidx.compose.Composer<N>, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1> V! remember(androidx.compose.Composer<N>, P1? p1, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2, P3> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, P3? p3, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2, P3, P4> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, P3? p3, P4? p4, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V> V! remember(androidx.compose.Composer<N>, Object![]? args, kotlin.jvm.functions.Function0<? extends V> block);
+ field public static final int DEFAULT_SLOT_ACTIONS_SIZE = 16; // 0x10
+ field public static final int DEFAULT_SLOT_KEYS_SIZE = 8; // 0x8
+ }
+
+ public final class ComposerUpdater<N, T extends N> {
+ ctor public ComposerUpdater(androidx.compose.Composer<N> composer, T! node);
+ method public androidx.compose.Composer<N> getComposer();
+ method public T! getNode();
+ method public inline void set(int value, kotlin.jvm.functions.Function2<? super T,? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified V> void set(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ method public inline void update(int value, kotlin.jvm.functions.Function2<? super T,? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified V> void update(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ }
+
+ public final class CompositionContext {
+ method public void compose();
+ method public androidx.compose.Component getComponent();
+ method public androidx.compose.Composer<?> getComposer();
+ method public boolean recomposeSync();
+ field public static final androidx.compose.CompositionContext.Companion! Companion;
+ }
+
+ public static final class CompositionContext.Companion {
+ method public androidx.compose.CompositionContext prepare(android.content.Context context, Object root, androidx.compose.Component component, androidx.compose.CompositionReference? compositionReference);
+ method public androidx.compose.CompositionContext prepare(androidx.compose.Component component, androidx.compose.CompositionReference? ambientReference, kotlin.jvm.functions.Function1<? super androidx.compose.Recomposer,? extends androidx.compose.Composer<?>> makeComposer);
+ }
+
+ public interface CompositionLifecycleObserver {
+ method public void onEnter();
+ method public void onLeave();
+ }
+
+ public interface CompositionReference {
+ method public <T> T! getAmbient(androidx.compose.Ambient<T> key);
+ method public void invalidate(boolean sync);
+ method public <T> void invalidateConsumers(androidx.compose.Ambient<T> key);
+ method public <N> void registerComposer(androidx.compose.Composer<N> composer);
+ }
+
+ @androidx.compose.EffectsDsl public final class Effect<T> {
+ method @androidx.compose.annotations.Hide public Object constructKey(int key);
+ method public androidx.compose.Composer<?> getContext();
+ method @androidx.compose.annotations.Hide public T! resolve(androidx.compose.Composer<?> composerContext, int key = sourceLocation());
+ method public void setContext(androidx.compose.Composer<?> p);
+ method public operator <V> V! unaryPlus(androidx.compose.Effect<V>);
+ property public final androidx.compose.Composer<?> context;
+ field @androidx.compose.annotations.Hide public androidx.compose.Composer<?> context;
+ }
+
+ @kotlin.DslMarker public @interface EffectsDsl {
+ }
+
+ public final class EffectsKt {
+ ctor public EffectsKt();
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> ambient(androidx.compose.Ambient<T> key);
+ method public static androidx.compose.Effect<androidx.compose.CompositionReference> compositionReference();
+ method public static <T> androidx.compose.Effect<T> effectOf(kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method public static androidx.compose.Effect<kotlin.jvm.functions.Function0<kotlin.Unit>> getInvalidate();
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> key(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> key(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> key(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> memo(kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> memo(V1? v1, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> memo(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> memo(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> model(kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> modelFor(V1? v1, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> modelFor(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> modelFor(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onActive(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onCommit(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1> androidx.compose.Effect<kotlin.Unit> onCommit(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1, V2> androidx.compose.Effect<kotlin.Unit> onCommit(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onCommit(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onDispose(kotlin.jvm.functions.Function0<kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onPreCommit(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1> androidx.compose.Effect<kotlin.Unit> onPreCommit(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1, V2> androidx.compose.Effect<kotlin.Unit> onPreCommit(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onPreCommit(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<androidx.compose.State<T>> state(kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<androidx.compose.State<T>> stateFor(V1? v1, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<androidx.compose.State<T>> stateFor(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<androidx.compose.State<T>> stateFor(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> init);
+ method public static operator <T> T! unaryPlus(androidx.compose.Effect<T>);
+ }
+
+ public interface Emittable {
+ method public void emitInsertAt(int index, androidx.compose.Emittable instance);
+ method public void emitMove(int from, int to, int count);
+ method public void emitRemoveAt(int index, int count);
+ }
+
+ public final class ExpectKt {
+ ctor public ExpectKt();
+ method public static <T> androidx.compose.ThreadLocal<T> ThreadLocal();
+ }
+
+ public final class FrameManager {
+ method public void ensureStarted();
+ method public <T> T! framed(kotlin.jvm.functions.Function0<? extends T> block);
+ method public <T> T! isolated(kotlin.jvm.functions.Function0<? extends T> block);
+ method public void nextFrame();
+ method public <T> T! unframed(kotlin.jvm.functions.Function0<? extends T> block);
+ field public static final androidx.compose.FrameManager! INSTANCE;
+ }
+
+ public final class Handler {
+ ctor public Handler(android.os.Looper looper);
+ method public android.os.Handler getHandler();
+ method public boolean postAtFrontOfQueue(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ property public final android.os.Handler handler;
+ }
+
+ @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface HiddenAttribute {
+ }
+
+ @androidx.compose.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=AnnotationTarget.CLASS) public @interface Immutable {
+ }
+
+ public final class JoinedKeyKt {
+ ctor public JoinedKeyKt();
+ method public static boolean isJoinedKey(Object? key);
+ method public static Object? joinedKeyLeft(Object? key);
+ method public static Object? joinedKeyRight(Object? key);
+ }
+
+ public final class KeyInfo {
+ ctor public KeyInfo(Object key, int location, int nodes, int index);
+ method public int getIndex();
+ method public Object getKey();
+ method public int getLocation();
+ method public int getNodes();
+ }
+
+ public final class KeyKt {
+ ctor public KeyKt();
+ method @androidx.compose.Composable public static void Key(@androidx.compose.Pivotal Object? key, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ }
+
+ public final class KeySourceInfoKt {
+ ctor public KeySourceInfoKt();
+ method public static String? keySourceInfoOf(Object key);
+ }
+
+ public final class LooperWrapper {
+ method public android.os.Looper getMainLooper();
+ field public static final androidx.compose.LooperWrapper! INSTANCE;
+ }
+
+ @androidx.compose.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=AnnotationTarget.CLASS) public @interface Model {
+ }
+
+ public final class NullCompilationScope {
+ method public kotlin.Unit getComposer();
+ property public final kotlin.Unit composer;
+ field public static final androidx.compose.NullCompilationScope! INSTANCE;
+ }
+
+ public final class ObserveKt {
+ ctor public ObserveKt();
+ method @androidx.compose.Composable public static void Observe(kotlin.jvm.functions.Function0<kotlin.Unit> body);
+ }
+
+ public final class ObserverMap<K, V> {
+ ctor public ObserverMap();
+ method public void add(K key, V value);
+ method public void clear();
+ method public void clearValues(kotlin.jvm.functions.Function1<? super V,java.lang.Boolean> predicate);
+ method public boolean contains(K key, V value);
+ method public operator java.util.List<V> get(Iterable<? extends K> keys);
+ method public java.util.List<V> remove(K key);
+ method public void remove(K key, V value);
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Target(allowedTargets={AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION}) public @interface Pivotal {
+ }
+
+ public final class RecomposeKt {
+ ctor public RecomposeKt();
+ method @androidx.compose.Composable public static void Recompose(kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> body);
+ }
+
+ public abstract class Recomposer {
+ ctor public Recomposer();
+ method protected final void dispatchRecomposes();
+ method public abstract void recomposeSync();
+ method protected abstract void scheduleChangesDispatch();
+ field public static final androidx.compose.Recomposer.Companion! Companion;
+ }
+
+ public static final class Recomposer.Companion {
+ method public androidx.compose.Recomposer current();
+ method public boolean hasPendingChanges();
+ }
+
+ public final class RecomposerKt {
+ ctor public RecomposerKt();
+ }
+
+ public interface ScopeUpdateScope {
+ method public void updateScope(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ }
+
+ public class SlotEditor {
+ method public final Object? get(androidx.compose.Anchor anchor);
+ method public final Object? get(int index);
+ method public final int getCurrent();
+ method public final int getGroupSize();
+ method public final int getNodeIndex();
+ method public final int getParentIndex();
+ method public final int getParentNodes();
+ method public final androidx.compose.SlotTable getTable();
+ method public final int groupSize(int index);
+ method public final boolean isGroup();
+ method public final boolean isGroup(int index);
+ method public final boolean isNode();
+ method public final void setCurrent(int p);
+ property public final int current;
+ property public final int groupSize;
+ property public final boolean isGroup;
+ property public final boolean isNode;
+ property public final int nodeIndex;
+ property public final int parentIndex;
+ property public final int parentNodes;
+ }
+
+ public final class SlotReader extends androidx.compose.SlotEditor {
+ method public void beginEmpty();
+ method public void close();
+ method public void endEmpty();
+ method public int endGroup();
+ method public int endNode();
+ method public java.util.List<androidx.compose.KeyInfo> extractKeys();
+ method public Object? get();
+ method public Object! getGroupKey();
+ method public boolean getInEmpty();
+ method public Object groupKey(int index);
+ method public boolean isGroupEnd();
+ method public Object? next();
+ method public void previous();
+ method public void reportUncertainNodeCount();
+ method public int skipEnclosingGroup();
+ method public int skipGroup();
+ method public int skipNode();
+ method public void startGroup(Object key);
+ method public void startNode(Object key);
+ property public final Object! groupKey;
+ property public final boolean inEmpty;
+ property public final boolean isGroupEnd;
+ }
+
+ public final class SlotTable {
+ ctor public SlotTable(internal Object![] slots);
+ ctor public SlotTable();
+ method public int getSize();
+ method public androidx.compose.SlotReader openReader();
+ method public androidx.compose.SlotWriter openWriter();
+ method public <T> T! read(kotlin.jvm.functions.Function1<? super androidx.compose.SlotReader,? extends T> block);
+ method public <T> T! write(kotlin.jvm.functions.Function1<? super androidx.compose.SlotWriter,? extends T> block);
+ property public final int size;
+ field public static final androidx.compose.SlotTable.Companion! Companion;
+ }
+
+ public static final class SlotTable.Companion {
+ method public Object getEMPTY();
+ property public final Object EMPTY;
+ }
+
+ public final class SlotTableKt {
+ ctor public SlotTableKt();
+ }
+
+ public final class SlotWriter extends androidx.compose.SlotEditor {
+ method public androidx.compose.Anchor anchor(int index = current);
+ method public void beginInsert();
+ method public void close();
+ method public int endGroup();
+ method public void endInsert();
+ method public int endNode();
+ method public java.util.Iterator<java.lang.Object> groupSlots();
+ method public void moveGroup(int offset);
+ method public void previous();
+ method public boolean removeGroup();
+ method public void set(Object? value);
+ method public Object? skip();
+ method public int skipGroup();
+ method public int skipNode();
+ method public void startGroup(Object key);
+ method public void startNode(Object key);
+ method public Object? update(Object? value);
+ }
+
+ public final class SourceLocationKt {
+ ctor public SourceLocationKt();
+ method public static inline int sourceLocation();
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CLASS}) public @interface StableMarker {
+ }
+
+ @androidx.compose.Model public final class State<T> implements androidx.compose.frames.Framed {
+ method public operator T! component1();
+ method public operator kotlin.jvm.functions.Function1<T,kotlin.Unit> component2();
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public T! getValue();
+ method public operator T! getValue(Object? thisObj, kotlin.reflect.KProperty<?> property);
+ method @androidx.compose.annotations.Hide public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public void setValue(T? value);
+ method public operator void setValue(Object? thisObj, kotlin.reflect.KProperty<?> property, T? next);
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public final T! value;
+ }
+
+ public class ThreadLocal<T> extends java.lang.ThreadLocal<T> {
+ ctor public ThreadLocal(kotlin.jvm.functions.Function0<? extends T> initialValue);
+ }
+
+ public final class Trace {
+ method public void beginSection(String name);
+ method public void endSection();
+ field public static final androidx.compose.Trace! INSTANCE;
+ }
+
+ public final class TraceKt {
+ ctor public TraceKt();
+ method public static inline <T> T! trace(String sectionName, kotlin.jvm.functions.Function0<? extends T> block);
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER}) public @interface UnionType {
+ method public abstract Class<?>[] types();
+ }
+
+ public final class ViewAdapters {
+ ctor public ViewAdapters();
+ method public Object? adapt(Object parent, Object child);
+ method public boolean register(kotlin.jvm.functions.Function2<java.lang.Object,java.lang.Object,?> adapter);
+ }
+
+ public final class ViewComposer extends androidx.compose.Composer<java.lang.Object> {
+ ctor public ViewComposer(Object root, android.content.Context context, androidx.compose.Recomposer recomposer, androidx.compose.ViewAdapters? adapters);
+ method public androidx.compose.ViewAdapters? getAdapters();
+ method public android.content.Context getContext();
+ method public Object getRoot();
+ }
+
+ public final class ViewComposerCommonKt {
+ ctor public ViewComposerCommonKt();
+ }
+
+ public final class ViewComposerKt {
+ ctor public ViewComposerKt();
+ method public static androidx.compose.ViewComposition! getComposer();
+ method public static Boolean? registerAdapter(androidx.compose.ViewComposition, kotlin.jvm.functions.Function2<java.lang.Object,java.lang.Object,?> adapter);
+ method public static <T> T! runWithCurrent(androidx.compose.Composer<?>, kotlin.jvm.functions.Function0<? extends T> block);
+ }
+
+ @androidx.compose.EffectsDsl public final class ViewComposition {
+ ctor public ViewComposition(androidx.compose.ViewComposer composer);
+ method public inline void call(Object key, kotlin.jvm.functions.Function1<? super androidx.compose.ViewValidator,java.lang.Boolean> invalid, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public inline <T> void call(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function2<? super androidx.compose.ViewValidator,? super T,java.lang.Boolean> invalid, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T extends android.view.View> void emit(Object key, kotlin.jvm.functions.Function1<? super android.content.Context,? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update);
+ method public inline <T extends android.view.ViewGroup> void emit(Object key, kotlin.jvm.functions.Function1<? super android.content.Context,? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public inline <T extends androidx.compose.Emittable> void emit(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update);
+ method public inline <T extends androidx.compose.Emittable> void emit(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public androidx.compose.ScopeUpdateScope? endRestartGroup();
+ method public inline <T> T! expr(Object key, kotlin.jvm.functions.Function0<? extends T> block);
+ method public androidx.compose.ViewComposer getComposer();
+ method public inline Object joinKey(Object left, Object? right);
+ method public void observe(Object key, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>,kotlin.Unit> block);
+ method public void startRestartGroup(Object key);
+ method public inline operator <V> V! unaryPlus(androidx.compose.Effect<V>);
+ }
+
+ public final class ViewValidator {
+ ctor public ViewValidator(androidx.compose.Composer<?> composer);
+ method public boolean changed(int value);
+ method public <T> boolean changed(T? value);
+ method public <T> boolean changedUnchecked(T? value);
+ method public androidx.compose.Composer<?> getComposer();
+ method public operator boolean plus(boolean, boolean other);
+ method public inline boolean set(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified T> boolean set(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T> boolean setUnchecked(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline boolean update(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified T> boolean update(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T> boolean updateUnchecked(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public boolean updated(int value);
+ method public <T> boolean updated(T? value);
+ }
+
+}
+
+package androidx.compose.adapters {
+
+ public final class ComposeViewAdapter implements androidx.compose.adapters.ViewAdapter {
+ ctor public ComposeViewAdapter();
+ method public void didInsert(android.view.View view, android.view.ViewGroup parent);
+ method public void didUpdate(android.view.View view, android.view.ViewGroup parent);
+ method public inline <T extends androidx.compose.adapters.ViewAdapter> T get(int id, kotlin.jvm.functions.Function0<? extends T> factory);
+ method public java.util.List<androidx.compose.adapters.ViewAdapter> getAdapters();
+ method public int getId();
+ method public void willInsert(android.view.View view, android.view.ViewGroup parent);
+ property public final java.util.List<androidx.compose.adapters.ViewAdapter> adapters;
+ property public int id;
+ }
+
+ public interface ViewAdapter {
+ method public void didInsert(android.view.View view, android.view.ViewGroup parent);
+ method public void didUpdate(android.view.View view, android.view.ViewGroup parent);
+ method public int getId();
+ method public void willInsert(android.view.View view, android.view.ViewGroup parent);
+ property public abstract int id;
+ }
+
+ public final class ViewAdapterKt {
+ ctor public ViewAdapterKt();
+ method public static inline <T extends androidx.compose.adapters.ViewAdapter> T getOrAddAdapter(android.view.View, int id, kotlin.jvm.functions.Function0<? extends T> factory);
+ method public static androidx.compose.adapters.ComposeViewAdapter getViewAdapter(android.view.View);
+ }
+
+}
+
+package androidx.compose.annotations {
+
+ @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface Hide {
+ }
+
+}
+
+package androidx.compose.frames {
+
+ public abstract class AbstractRecord implements androidx.compose.frames.Record {
+ ctor public AbstractRecord();
+ method public int getFrameId();
+ method public androidx.compose.frames.Record? getNext();
+ method public void setFrameId(int p);
+ method public void setNext(androidx.compose.frames.Record? p);
+ property public int frameId;
+ property public androidx.compose.frames.Record? next;
+ }
+
+ public final class Frame {
+ method public int getId();
+ method public boolean getReadonly();
+ method public boolean hasPendingChanges();
+ property public final boolean readonly;
+ }
+
+ public final class FrameAborted extends java.lang.RuntimeException {
+ ctor public FrameAborted(androidx.compose.frames.Frame frame);
+ method public androidx.compose.frames.Frame getFrame();
+ }
+
+ public final class FrameContainersKt {
+ ctor public FrameContainersKt();
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf();
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf(T? element);
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf(T?... elements);
+ method public static <K, V> androidx.compose.frames.ModelMap<K,V> modelMapOf();
+ method public static <K, V> androidx.compose.frames.ModelMap<K,V> modelMapOf(kotlin.Pair<? extends K,? extends V>... pairs);
+ }
+
+ public final class FrameIdSetKt {
+ ctor public FrameIdSetKt();
+ }
+
+ public interface Framed {
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ property public abstract androidx.compose.frames.Record firstFrameRecord;
+ }
+
+ public final class FramesKt {
+ ctor public FramesKt();
+ method public static kotlin.Unit? _created(androidx.compose.frames.Framed framed);
+ method public static androidx.compose.frames.Record _readable(androidx.compose.frames.Record r, androidx.compose.frames.Framed framed);
+ method public static androidx.compose.frames.Record _writable(androidx.compose.frames.Record r, androidx.compose.frames.Framed framed);
+ method public static void abort();
+ method public static void abort(androidx.compose.frames.Frame frame);
+ method public static void abortHandler();
+ method public static void abortHandler(androidx.compose.frames.Frame frame);
+ method public static void commit();
+ method public static void commit(androidx.compose.frames.Frame frame);
+ method public static kotlin.Unit? commitHandler();
+ method public static androidx.compose.frames.Frame currentFrame();
+ method public static boolean getInFrame();
+ method public static void observeAllReads(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit> readObserver, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public static androidx.compose.frames.Frame open(boolean readOnly = false);
+ method public static androidx.compose.frames.Frame open(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver = null, kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver = null);
+ method public static <T extends androidx.compose.frames.Record> T readable(T, androidx.compose.frames.Framed framed);
+ method public static kotlin.jvm.functions.Function0<kotlin.Unit> registerCommitObserver(kotlin.jvm.functions.Function1<? super java.util.Set<?>,kotlin.Unit> observer);
+ method public static void restore(androidx.compose.frames.Frame frame);
+ method public static androidx.compose.frames.Frame suspend();
+ method public static boolean wasModified(Object value);
+ method public static <T extends androidx.compose.frames.Record> T writable(T, androidx.compose.frames.Framed framed);
+ method public static <T extends androidx.compose.frames.Record> T writable(T, androidx.compose.frames.Framed framed, androidx.compose.frames.Frame frame);
+ }
+
+ public final class ModelList<T> implements androidx.compose.frames.Framed kotlin.jvm.internal.markers.KMutableList java.util.List<T> {
+ ctor public ModelList();
+ method public boolean add(T? element);
+ method public void add(int index, T? element);
+ method public boolean addAll(int index, java.util.Collection<? extends T> elements);
+ method public boolean addAll(java.util.Collection<? extends T> elements);
+ method public void clear();
+ method public boolean contains(Object? element);
+ method public boolean containsAll(java.util.Collection<?> elements);
+ method public T! get(int index);
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public int getSize();
+ method public int indexOf(Object? element);
+ method public boolean isEmpty();
+ method public java.util.Iterator<T> iterator();
+ method public int lastIndexOf(Object? element);
+ method public java.util.ListIterator<T> listIterator();
+ method public java.util.ListIterator<T> listIterator(int index);
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public boolean remove(Object? element);
+ method public boolean removeAll(java.util.Collection<?> elements);
+ method public T! removeAt(int index);
+ method public boolean retainAll(java.util.Collection<?> elements);
+ method public T! set(int index, T? element);
+ method public java.util.List<T> subList(int fromIndex, int toIndex);
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public int size;
+ }
+
+ public final class ModelMap<K, V> implements androidx.compose.frames.Framed kotlin.jvm.internal.markers.KMutableMap java.util.Map<K,V> {
+ ctor public ModelMap();
+ method public void clear();
+ method public boolean containsKey(Object? key);
+ method public boolean containsValue(Object? value);
+ method public V? get(Object? key);
+ method public java.util.Set<java.util.Map.Entry<K,V>> getEntries();
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public java.util.Set<K> getKeys();
+ method public int getSize();
+ method public java.util.Collection<V> getValues();
+ method public boolean isEmpty();
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public V? put(K? key, V? value);
+ method public void putAll(java.util.Map<? extends K,? extends V> from);
+ method public V? remove(Object? key);
+ property public java.util.Set<java.util.Map.Entry<K,V>> entries;
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public java.util.Set<K> keys;
+ property public int size;
+ property public java.util.Collection<V> values;
+ }
+
+ public interface Record {
+ method public void assign(androidx.compose.frames.Record value);
+ method public androidx.compose.frames.Record create();
+ method public int getFrameId();
+ method public androidx.compose.frames.Record? getNext();
+ method public void setFrameId(int p);
+ method public void setNext(androidx.compose.frames.Record? p);
+ property public abstract int frameId;
+ property public abstract androidx.compose.frames.Record? next;
+ }
+
+}
+
diff --git a/compose/compose-runtime/api/public_plus_experimental_0.1.0-dev04.txt b/compose/compose-runtime/api/public_plus_experimental_0.1.0-dev04.txt
new file mode 100644
index 0000000..786046d
--- /dev/null
+++ b/compose/compose-runtime/api/public_plus_experimental_0.1.0-dev04.txt
@@ -0,0 +1,703 @@
+// Signature format: 3.0
+package androidx.compose {
+
+ public final class ActualAndroidKt {
+ ctor public ActualAndroidKt();
+ method public static android.content.Context getContext(android.view.View);
+ method public static android.view.ViewParent getParent(android.view.View);
+ method public static boolean isMainThread();
+ }
+
+ public final class ActualJvmKt {
+ ctor public ActualJvmKt();
+ method public static int identityHashCode(Object? instance);
+ method public static inline <R> R! synchronized(Object lock, kotlin.jvm.functions.Function0<? extends R> block);
+ }
+
+ public final class Ambient<T> {
+ method @androidx.compose.Composable public void Provider(T? value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ field public static final androidx.compose.Ambient.Companion! Companion;
+ }
+
+ public static final class Ambient.Companion {
+ method public <T> androidx.compose.Ambient<T> of(kotlin.jvm.functions.Function0<? extends T>? defaultFactory = null);
+ }
+
+ public final class Anchor {
+ ctor public Anchor(internal int loc);
+ method public boolean getValid();
+ method public int location(androidx.compose.SlotTable slots);
+ property public final boolean valid;
+ }
+
+ public final class Applier<N> {
+ ctor public Applier(N! root, androidx.compose.ApplyAdapter<N> adapter);
+ method public void down(N? node);
+ method public N! getCurrent();
+ method public void insert(int index, N? instance);
+ method public void move(int from, int to, int count);
+ method public void remove(int index, int count);
+ method public void reset();
+ method public void up();
+ property public final N! current;
+ }
+
+ public interface ApplyAdapter<N> {
+ method public void end(N?, N? instance, N? parent);
+ method public void insertAt(N?, int index, N? instance);
+ method public void move(N?, int from, int to, int count);
+ method public void removeAt(N?, int index, int count);
+ method public void start(N?, N? instance);
+ }
+
+ public final class Choreographer {
+ method public void postFrameCallback(android.view.Choreographer.FrameCallback callback);
+ method public void postFrameCallbackDelayed(long delayMillis, android.view.Choreographer.FrameCallback callback);
+ method public void removeFrameCallback(android.view.Choreographer.FrameCallback callback);
+ field public static final androidx.compose.Choreographer! INSTANCE;
+ }
+
+ @androidx.compose.EffectsDsl public interface CommitScope {
+ method public void onDispose(kotlin.jvm.functions.Function0<kotlin.Unit> callback);
+ }
+
+ public abstract class Component {
+ ctor public Component();
+ method @androidx.compose.Composable public abstract void compose();
+ method protected final void recompose();
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.PROPERTY}) public @interface Composable {
+ }
+
+ public final class Compose {
+ method @MainThread public androidx.compose.CompositionContext? composeInto(android.view.ViewGroup container, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ method @MainThread public androidx.compose.CompositionContext composeInto(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ method @MainThread public void disposeComposition(android.view.ViewGroup container, androidx.compose.CompositionReference? parent = null);
+ method @MainThread public void disposeComposition(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null);
+ method public androidx.compose.Component? findRoot(android.view.View view);
+ method @MainThread public androidx.compose.CompositionContext subcomposeInto(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ field public static final androidx.compose.Compose! INSTANCE;
+ }
+
+ public final class ComposeAndroidKt {
+ ctor public ComposeAndroidKt();
+ method public static void disposeComposition(android.app.Activity);
+ method public static androidx.compose.CompositionContext? setViewContent(android.app.Activity, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ }
+
+ public final class ComposeKt {
+ ctor public ComposeKt();
+ method public static void disposeComposition(android.view.ViewGroup);
+ method public static androidx.compose.CompositionContext? setViewContent(android.view.ViewGroup, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ }
+
+ public class Composer<N> {
+ ctor public Composer(androidx.compose.SlotTable slotTable, androidx.compose.Applier<N> applier, androidx.compose.Recomposer recomposer);
+ method public final <V, T> void apply(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ method public final void applyChanges();
+ method public final androidx.compose.CompositionReference buildReference();
+ method public final <T> boolean changed(T? value);
+ method public final void collectKeySourceInformation();
+ method protected final void composeRoot(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public final <T extends N> void createNode(kotlin.jvm.functions.Function0<? extends T> factory);
+ method public final void doneJoin(boolean valid);
+ method public final <T extends N> void emitNode(kotlin.jvm.functions.Function0<? extends T> factory);
+ method public final void emitNode(N? node);
+ method public final void endGroup();
+ method public final void endNode();
+ method public final androidx.compose.ScopeUpdateScope? endRestartGroup();
+ method public final void endRoot();
+ method public final int getChangeCount();
+ method public final boolean getInserting();
+ method public final androidx.compose.SlotTable getSlotTable();
+ method public final Object joinKey(Object? left, Object? right);
+ method public final Object? nextSlot();
+ method public final boolean recompose();
+ method public final void skipCurrentGroup();
+ method public final void skipValue();
+ method public final void startGroup(Object key);
+ method public final kotlin.jvm.functions.Function1<java.lang.Boolean,kotlin.Unit> startJoin(Object key, boolean valid, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>,kotlin.Unit> compose);
+ method public final void startNode(Object key);
+ method public final void startRestartGroup(Object key);
+ method public final void startRoot();
+ method public final void updateValue(Object? value);
+ method public final N! useNode();
+ property public final int changeCount;
+ property public final boolean inserting;
+ }
+
+ public final class ComposerKt {
+ ctor public ComposerKt();
+ method public static inline <N, T> T! cache(androidx.compose.Composer<N>, boolean valid = true, kotlin.jvm.functions.Function0<? extends T> block);
+ method public static inline <T> T! escapeCompose(kotlin.jvm.functions.Function1<? super androidx.compose.NullCompilationScope,? extends T> block);
+ method public static <N> Object? nextValue(androidx.compose.Composer<N>);
+ method public static <N, V> V! remember(androidx.compose.Composer<N>, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1> V! remember(androidx.compose.Composer<N>, P1? p1, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2, P3> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, P3? p3, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2, P3, P4> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, P3? p3, P4? p4, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V> V! remember(androidx.compose.Composer<N>, Object![]? args, kotlin.jvm.functions.Function0<? extends V> block);
+ field public static final int DEFAULT_SLOT_ACTIONS_SIZE = 16; // 0x10
+ field public static final int DEFAULT_SLOT_KEYS_SIZE = 8; // 0x8
+ }
+
+ public final class ComposerUpdater<N, T extends N> {
+ ctor public ComposerUpdater(androidx.compose.Composer<N> composer, T! node);
+ method public androidx.compose.Composer<N> getComposer();
+ method public T! getNode();
+ method public inline void set(int value, kotlin.jvm.functions.Function2<? super T,? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified V> void set(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ method public inline void update(int value, kotlin.jvm.functions.Function2<? super T,? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified V> void update(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ }
+
+ public final class CompositionContext {
+ method public void compose();
+ method public androidx.compose.Component getComponent();
+ method public androidx.compose.Composer<?> getComposer();
+ method public boolean recomposeSync();
+ field public static final androidx.compose.CompositionContext.Companion! Companion;
+ }
+
+ public static final class CompositionContext.Companion {
+ method public androidx.compose.CompositionContext prepare(android.content.Context context, Object root, androidx.compose.Component component, androidx.compose.CompositionReference? compositionReference);
+ method public androidx.compose.CompositionContext prepare(androidx.compose.Component component, androidx.compose.CompositionReference? ambientReference, kotlin.jvm.functions.Function1<? super androidx.compose.Recomposer,? extends androidx.compose.Composer<?>> makeComposer);
+ }
+
+ public interface CompositionLifecycleObserver {
+ method public void onEnter();
+ method public void onLeave();
+ }
+
+ public interface CompositionReference {
+ method public <T> T! getAmbient(androidx.compose.Ambient<T> key);
+ method public void invalidate(boolean sync);
+ method public <T> void invalidateConsumers(androidx.compose.Ambient<T> key);
+ method public <N> void registerComposer(androidx.compose.Composer<N> composer);
+ }
+
+ @androidx.compose.EffectsDsl public final class Effect<T> {
+ method @androidx.compose.annotations.Hide public Object constructKey(int key);
+ method public androidx.compose.Composer<?> getContext();
+ method @androidx.compose.annotations.Hide public T! resolve(androidx.compose.Composer<?> composerContext, int key = sourceLocation());
+ method public void setContext(androidx.compose.Composer<?> p);
+ method public operator <V> V! unaryPlus(androidx.compose.Effect<V>);
+ property public final androidx.compose.Composer<?> context;
+ field @androidx.compose.annotations.Hide public androidx.compose.Composer<?> context;
+ }
+
+ @kotlin.DslMarker public @interface EffectsDsl {
+ }
+
+ public final class EffectsKt {
+ ctor public EffectsKt();
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> ambient(androidx.compose.Ambient<T> key);
+ method public static androidx.compose.Effect<androidx.compose.CompositionReference> compositionReference();
+ method public static <T> androidx.compose.Effect<T> effectOf(kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method public static androidx.compose.Effect<kotlin.jvm.functions.Function0<kotlin.Unit>> getInvalidate();
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> key(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> key(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> key(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> memo(kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> memo(V1? v1, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> memo(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> memo(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> model(kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> modelFor(V1? v1, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> modelFor(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> modelFor(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onActive(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onCommit(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1> androidx.compose.Effect<kotlin.Unit> onCommit(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1, V2> androidx.compose.Effect<kotlin.Unit> onCommit(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onCommit(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onDispose(kotlin.jvm.functions.Function0<kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onPreCommit(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1> androidx.compose.Effect<kotlin.Unit> onPreCommit(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1, V2> androidx.compose.Effect<kotlin.Unit> onPreCommit(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onPreCommit(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<androidx.compose.State<T>> state(kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<androidx.compose.State<T>> stateFor(V1? v1, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<androidx.compose.State<T>> stateFor(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<androidx.compose.State<T>> stateFor(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> init);
+ method public static operator <T> T! unaryPlus(androidx.compose.Effect<T>);
+ }
+
+ public interface Emittable {
+ method public void emitInsertAt(int index, androidx.compose.Emittable instance);
+ method public void emitMove(int from, int to, int count);
+ method public void emitRemoveAt(int index, int count);
+ }
+
+ public final class ExpectKt {
+ ctor public ExpectKt();
+ method public static <T> androidx.compose.ThreadLocal<T> ThreadLocal();
+ }
+
+ public final class FrameManager {
+ method public void ensureStarted();
+ method public <T> T! framed(kotlin.jvm.functions.Function0<? extends T> block);
+ method public <T> T! isolated(kotlin.jvm.functions.Function0<? extends T> block);
+ method public void nextFrame();
+ method public <T> T! unframed(kotlin.jvm.functions.Function0<? extends T> block);
+ field public static final androidx.compose.FrameManager! INSTANCE;
+ }
+
+ public final class Handler {
+ ctor public Handler(android.os.Looper looper);
+ method public android.os.Handler getHandler();
+ method public boolean postAtFrontOfQueue(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ property public final android.os.Handler handler;
+ }
+
+ @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface HiddenAttribute {
+ }
+
+ @androidx.compose.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=AnnotationTarget.CLASS) public @interface Immutable {
+ }
+
+ public final class JoinedKeyKt {
+ ctor public JoinedKeyKt();
+ method public static boolean isJoinedKey(Object? key);
+ method public static Object? joinedKeyLeft(Object? key);
+ method public static Object? joinedKeyRight(Object? key);
+ }
+
+ public final class KeyInfo {
+ ctor public KeyInfo(Object key, int location, int nodes, int index);
+ method public int getIndex();
+ method public Object getKey();
+ method public int getLocation();
+ method public int getNodes();
+ }
+
+ public final class KeyKt {
+ ctor public KeyKt();
+ method @androidx.compose.Composable public static void Key(@androidx.compose.Pivotal Object? key, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ }
+
+ public final class KeySourceInfoKt {
+ ctor public KeySourceInfoKt();
+ method public static String? keySourceInfoOf(Object key);
+ }
+
+ public final class LooperWrapper {
+ method public android.os.Looper getMainLooper();
+ field public static final androidx.compose.LooperWrapper! INSTANCE;
+ }
+
+ @androidx.compose.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=AnnotationTarget.CLASS) public @interface Model {
+ }
+
+ public final class NullCompilationScope {
+ method public kotlin.Unit getComposer();
+ property public final kotlin.Unit composer;
+ field public static final androidx.compose.NullCompilationScope! INSTANCE;
+ }
+
+ public final class ObserveKt {
+ ctor public ObserveKt();
+ method @androidx.compose.Composable public static void Observe(kotlin.jvm.functions.Function0<kotlin.Unit> body);
+ }
+
+ public final class ObserverMap<K, V> {
+ ctor public ObserverMap();
+ method public void add(K key, V value);
+ method public void clear();
+ method public void clearValues(kotlin.jvm.functions.Function1<? super V,java.lang.Boolean> predicate);
+ method public boolean contains(K key, V value);
+ method public operator java.util.List<V> get(Iterable<? extends K> keys);
+ method public java.util.List<V> remove(K key);
+ method public void remove(K key, V value);
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Target(allowedTargets={AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION}) public @interface Pivotal {
+ }
+
+ public final class RecomposeKt {
+ ctor public RecomposeKt();
+ method @androidx.compose.Composable public static void Recompose(kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> body);
+ }
+
+ public abstract class Recomposer {
+ ctor public Recomposer();
+ method protected final void dispatchRecomposes();
+ method public abstract void recomposeSync();
+ method protected abstract void scheduleChangesDispatch();
+ field public static final androidx.compose.Recomposer.Companion! Companion;
+ }
+
+ public static final class Recomposer.Companion {
+ method public androidx.compose.Recomposer current();
+ method public boolean hasPendingChanges();
+ }
+
+ public final class RecomposerKt {
+ ctor public RecomposerKt();
+ }
+
+ public interface ScopeUpdateScope {
+ method public void updateScope(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ }
+
+ public class SlotEditor {
+ method public final Object? get(androidx.compose.Anchor anchor);
+ method public final Object? get(int index);
+ method public final int getCurrent();
+ method public final int getGroupSize();
+ method public final int getNodeIndex();
+ method public final int getParentIndex();
+ method public final int getParentNodes();
+ method public final androidx.compose.SlotTable getTable();
+ method public final int groupSize(int index);
+ method public final boolean isGroup();
+ method public final boolean isGroup(int index);
+ method public final boolean isNode();
+ method public final void setCurrent(int p);
+ property public final int current;
+ property public final int groupSize;
+ property public final boolean isGroup;
+ property public final boolean isNode;
+ property public final int nodeIndex;
+ property public final int parentIndex;
+ property public final int parentNodes;
+ }
+
+ public final class SlotReader extends androidx.compose.SlotEditor {
+ method public void beginEmpty();
+ method public void close();
+ method public void endEmpty();
+ method public int endGroup();
+ method public int endNode();
+ method public java.util.List<androidx.compose.KeyInfo> extractKeys();
+ method public Object? get();
+ method public Object! getGroupKey();
+ method public boolean getInEmpty();
+ method public Object groupKey(int index);
+ method public boolean isGroupEnd();
+ method public Object? next();
+ method public void previous();
+ method public void reportUncertainNodeCount();
+ method public int skipEnclosingGroup();
+ method public int skipGroup();
+ method public int skipNode();
+ method public void startGroup(Object key);
+ method public void startNode(Object key);
+ property public final Object! groupKey;
+ property public final boolean inEmpty;
+ property public final boolean isGroupEnd;
+ }
+
+ public final class SlotTable {
+ ctor public SlotTable(internal Object![] slots);
+ ctor public SlotTable();
+ method public int getSize();
+ method public androidx.compose.SlotReader openReader();
+ method public androidx.compose.SlotWriter openWriter();
+ method public <T> T! read(kotlin.jvm.functions.Function1<? super androidx.compose.SlotReader,? extends T> block);
+ method public <T> T! write(kotlin.jvm.functions.Function1<? super androidx.compose.SlotWriter,? extends T> block);
+ property public final int size;
+ field public static final androidx.compose.SlotTable.Companion! Companion;
+ }
+
+ public static final class SlotTable.Companion {
+ method public Object getEMPTY();
+ property public final Object EMPTY;
+ }
+
+ public final class SlotTableKt {
+ ctor public SlotTableKt();
+ }
+
+ public final class SlotWriter extends androidx.compose.SlotEditor {
+ method public androidx.compose.Anchor anchor(int index = current);
+ method public void beginInsert();
+ method public void close();
+ method public int endGroup();
+ method public void endInsert();
+ method public int endNode();
+ method public java.util.Iterator<java.lang.Object> groupSlots();
+ method public void moveGroup(int offset);
+ method public void previous();
+ method public boolean removeGroup();
+ method public void set(Object? value);
+ method public Object? skip();
+ method public int skipGroup();
+ method public int skipNode();
+ method public void startGroup(Object key);
+ method public void startNode(Object key);
+ method public Object? update(Object? value);
+ }
+
+ public final class SourceLocationKt {
+ ctor public SourceLocationKt();
+ method public static inline int sourceLocation();
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CLASS}) public @interface StableMarker {
+ }
+
+ @androidx.compose.Model public final class State<T> implements androidx.compose.frames.Framed {
+ method public operator T! component1();
+ method public operator kotlin.jvm.functions.Function1<T,kotlin.Unit> component2();
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public T! getValue();
+ method public operator T! getValue(Object? thisObj, kotlin.reflect.KProperty<?> property);
+ method @androidx.compose.annotations.Hide public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public void setValue(T? value);
+ method public operator void setValue(Object? thisObj, kotlin.reflect.KProperty<?> property, T? next);
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public final T! value;
+ }
+
+ public class ThreadLocal<T> extends java.lang.ThreadLocal<T> {
+ ctor public ThreadLocal(kotlin.jvm.functions.Function0<? extends T> initialValue);
+ }
+
+ public final class Trace {
+ method public void beginSection(String name);
+ method public void endSection();
+ field public static final androidx.compose.Trace! INSTANCE;
+ }
+
+ public final class TraceKt {
+ ctor public TraceKt();
+ method public static inline <T> T! trace(String sectionName, kotlin.jvm.functions.Function0<? extends T> block);
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER}) public @interface UnionType {
+ method public abstract Class<?>[] types();
+ }
+
+ public final class ViewAdapters {
+ ctor public ViewAdapters();
+ method public Object? adapt(Object parent, Object child);
+ method public boolean register(kotlin.jvm.functions.Function2<java.lang.Object,java.lang.Object,?> adapter);
+ }
+
+ public final class ViewComposer extends androidx.compose.Composer<java.lang.Object> {
+ ctor public ViewComposer(Object root, android.content.Context context, androidx.compose.Recomposer recomposer, androidx.compose.ViewAdapters? adapters);
+ method public androidx.compose.ViewAdapters? getAdapters();
+ method public android.content.Context getContext();
+ method public Object getRoot();
+ }
+
+ public final class ViewComposerCommonKt {
+ ctor public ViewComposerCommonKt();
+ }
+
+ public final class ViewComposerKt {
+ ctor public ViewComposerKt();
+ method public static androidx.compose.ViewComposition! getComposer();
+ method public static Boolean? registerAdapter(androidx.compose.ViewComposition, kotlin.jvm.functions.Function2<java.lang.Object,java.lang.Object,?> adapter);
+ method public static <T> T! runWithCurrent(androidx.compose.Composer<?>, kotlin.jvm.functions.Function0<? extends T> block);
+ }
+
+ @androidx.compose.EffectsDsl public final class ViewComposition {
+ ctor public ViewComposition(androidx.compose.ViewComposer composer);
+ method public inline void call(Object key, kotlin.jvm.functions.Function1<? super androidx.compose.ViewValidator,java.lang.Boolean> invalid, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public inline <T> void call(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function2<? super androidx.compose.ViewValidator,? super T,java.lang.Boolean> invalid, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T extends android.view.View> void emit(Object key, kotlin.jvm.functions.Function1<? super android.content.Context,? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update);
+ method public inline <T extends android.view.ViewGroup> void emit(Object key, kotlin.jvm.functions.Function1<? super android.content.Context,? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public inline <T extends androidx.compose.Emittable> void emit(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update);
+ method public inline <T extends androidx.compose.Emittable> void emit(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public androidx.compose.ScopeUpdateScope? endRestartGroup();
+ method public inline <T> T! expr(Object key, kotlin.jvm.functions.Function0<? extends T> block);
+ method public androidx.compose.ViewComposer getComposer();
+ method public inline Object joinKey(Object left, Object? right);
+ method public void observe(Object key, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>,kotlin.Unit> block);
+ method public void startRestartGroup(Object key);
+ method public inline operator <V> V! unaryPlus(androidx.compose.Effect<V>);
+ }
+
+ public final class ViewValidator {
+ ctor public ViewValidator(androidx.compose.Composer<?> composer);
+ method public boolean changed(int value);
+ method public <T> boolean changed(T? value);
+ method public <T> boolean changedUnchecked(T? value);
+ method public androidx.compose.Composer<?> getComposer();
+ method public operator boolean plus(boolean, boolean other);
+ method public inline boolean set(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified T> boolean set(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T> boolean setUnchecked(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline boolean update(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified T> boolean update(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T> boolean updateUnchecked(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public boolean updated(int value);
+ method public <T> boolean updated(T? value);
+ }
+
+}
+
+package androidx.compose.adapters {
+
+ public final class ComposeViewAdapter implements androidx.compose.adapters.ViewAdapter {
+ ctor public ComposeViewAdapter();
+ method public void didInsert(android.view.View view, android.view.ViewGroup parent);
+ method public void didUpdate(android.view.View view, android.view.ViewGroup parent);
+ method public inline <T extends androidx.compose.adapters.ViewAdapter> T get(int id, kotlin.jvm.functions.Function0<? extends T> factory);
+ method public java.util.List<androidx.compose.adapters.ViewAdapter> getAdapters();
+ method public int getId();
+ method public void willInsert(android.view.View view, android.view.ViewGroup parent);
+ property public final java.util.List<androidx.compose.adapters.ViewAdapter> adapters;
+ property public int id;
+ }
+
+ public interface ViewAdapter {
+ method public void didInsert(android.view.View view, android.view.ViewGroup parent);
+ method public void didUpdate(android.view.View view, android.view.ViewGroup parent);
+ method public int getId();
+ method public void willInsert(android.view.View view, android.view.ViewGroup parent);
+ property public abstract int id;
+ }
+
+ public final class ViewAdapterKt {
+ ctor public ViewAdapterKt();
+ method public static inline <T extends androidx.compose.adapters.ViewAdapter> T getOrAddAdapter(android.view.View, int id, kotlin.jvm.functions.Function0<? extends T> factory);
+ method public static androidx.compose.adapters.ComposeViewAdapter getViewAdapter(android.view.View);
+ }
+
+}
+
+package androidx.compose.annotations {
+
+ @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface Hide {
+ }
+
+}
+
+package androidx.compose.frames {
+
+ public abstract class AbstractRecord implements androidx.compose.frames.Record {
+ ctor public AbstractRecord();
+ method public int getFrameId();
+ method public androidx.compose.frames.Record? getNext();
+ method public void setFrameId(int p);
+ method public void setNext(androidx.compose.frames.Record? p);
+ property public int frameId;
+ property public androidx.compose.frames.Record? next;
+ }
+
+ public final class Frame {
+ method public int getId();
+ method public boolean getReadonly();
+ method public boolean hasPendingChanges();
+ property public final boolean readonly;
+ }
+
+ public final class FrameAborted extends java.lang.RuntimeException {
+ ctor public FrameAborted(androidx.compose.frames.Frame frame);
+ method public androidx.compose.frames.Frame getFrame();
+ }
+
+ public final class FrameContainersKt {
+ ctor public FrameContainersKt();
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf();
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf(T? element);
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf(T?... elements);
+ method public static <K, V> androidx.compose.frames.ModelMap<K,V> modelMapOf();
+ method public static <K, V> androidx.compose.frames.ModelMap<K,V> modelMapOf(kotlin.Pair<? extends K,? extends V>... pairs);
+ }
+
+ public final class FrameIdSetKt {
+ ctor public FrameIdSetKt();
+ }
+
+ public interface Framed {
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ property public abstract androidx.compose.frames.Record firstFrameRecord;
+ }
+
+ public final class FramesKt {
+ ctor public FramesKt();
+ method public static kotlin.Unit? _created(androidx.compose.frames.Framed framed);
+ method public static androidx.compose.frames.Record _readable(androidx.compose.frames.Record r, androidx.compose.frames.Framed framed);
+ method public static androidx.compose.frames.Record _writable(androidx.compose.frames.Record r, androidx.compose.frames.Framed framed);
+ method public static void abort();
+ method public static void abort(androidx.compose.frames.Frame frame);
+ method public static void abortHandler();
+ method public static void abortHandler(androidx.compose.frames.Frame frame);
+ method public static void commit();
+ method public static void commit(androidx.compose.frames.Frame frame);
+ method public static kotlin.Unit? commitHandler();
+ method public static androidx.compose.frames.Frame currentFrame();
+ method public static boolean getInFrame();
+ method public static void observeAllReads(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit> readObserver, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public static androidx.compose.frames.Frame open(boolean readOnly = false);
+ method public static androidx.compose.frames.Frame open(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver = null, kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver = null);
+ method public static <T extends androidx.compose.frames.Record> T readable(T, androidx.compose.frames.Framed framed);
+ method public static kotlin.jvm.functions.Function0<kotlin.Unit> registerCommitObserver(kotlin.jvm.functions.Function1<? super java.util.Set<?>,kotlin.Unit> observer);
+ method public static void restore(androidx.compose.frames.Frame frame);
+ method public static androidx.compose.frames.Frame suspend();
+ method public static boolean wasModified(Object value);
+ method public static <T extends androidx.compose.frames.Record> T writable(T, androidx.compose.frames.Framed framed);
+ method public static <T extends androidx.compose.frames.Record> T writable(T, androidx.compose.frames.Framed framed, androidx.compose.frames.Frame frame);
+ }
+
+ public final class ModelList<T> implements androidx.compose.frames.Framed kotlin.jvm.internal.markers.KMutableList java.util.List<T> {
+ ctor public ModelList();
+ method public boolean add(T? element);
+ method public void add(int index, T? element);
+ method public boolean addAll(int index, java.util.Collection<? extends T> elements);
+ method public boolean addAll(java.util.Collection<? extends T> elements);
+ method public void clear();
+ method public boolean contains(Object? element);
+ method public boolean containsAll(java.util.Collection<?> elements);
+ method public T! get(int index);
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public int getSize();
+ method public int indexOf(Object? element);
+ method public boolean isEmpty();
+ method public java.util.Iterator<T> iterator();
+ method public int lastIndexOf(Object? element);
+ method public java.util.ListIterator<T> listIterator();
+ method public java.util.ListIterator<T> listIterator(int index);
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public boolean remove(Object? element);
+ method public boolean removeAll(java.util.Collection<?> elements);
+ method public T! removeAt(int index);
+ method public boolean retainAll(java.util.Collection<?> elements);
+ method public T! set(int index, T? element);
+ method public java.util.List<T> subList(int fromIndex, int toIndex);
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public int size;
+ }
+
+ public final class ModelMap<K, V> implements androidx.compose.frames.Framed kotlin.jvm.internal.markers.KMutableMap java.util.Map<K,V> {
+ ctor public ModelMap();
+ method public void clear();
+ method public boolean containsKey(Object? key);
+ method public boolean containsValue(Object? value);
+ method public V? get(Object? key);
+ method public java.util.Set<java.util.Map.Entry<K,V>> getEntries();
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public java.util.Set<K> getKeys();
+ method public int getSize();
+ method public java.util.Collection<V> getValues();
+ method public boolean isEmpty();
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public V? put(K? key, V? value);
+ method public void putAll(java.util.Map<? extends K,? extends V> from);
+ method public V? remove(Object? key);
+ property public java.util.Set<java.util.Map.Entry<K,V>> entries;
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public java.util.Set<K> keys;
+ property public int size;
+ property public java.util.Collection<V> values;
+ }
+
+ public interface Record {
+ method public void assign(androidx.compose.frames.Record value);
+ method public androidx.compose.frames.Record create();
+ method public int getFrameId();
+ method public androidx.compose.frames.Record? getNext();
+ method public void setFrameId(int p);
+ method public void setNext(androidx.compose.frames.Record? p);
+ property public abstract int frameId;
+ property public abstract androidx.compose.frames.Record? next;
+ }
+
+}
+
diff --git a/compose/compose-runtime/api/public_plus_experimental_current.txt b/compose/compose-runtime/api/public_plus_experimental_current.txt
new file mode 100644
index 0000000..786046d
--- /dev/null
+++ b/compose/compose-runtime/api/public_plus_experimental_current.txt
@@ -0,0 +1,703 @@
+// Signature format: 3.0
+package androidx.compose {
+
+ public final class ActualAndroidKt {
+ ctor public ActualAndroidKt();
+ method public static android.content.Context getContext(android.view.View);
+ method public static android.view.ViewParent getParent(android.view.View);
+ method public static boolean isMainThread();
+ }
+
+ public final class ActualJvmKt {
+ ctor public ActualJvmKt();
+ method public static int identityHashCode(Object? instance);
+ method public static inline <R> R! synchronized(Object lock, kotlin.jvm.functions.Function0<? extends R> block);
+ }
+
+ public final class Ambient<T> {
+ method @androidx.compose.Composable public void Provider(T? value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ field public static final androidx.compose.Ambient.Companion! Companion;
+ }
+
+ public static final class Ambient.Companion {
+ method public <T> androidx.compose.Ambient<T> of(kotlin.jvm.functions.Function0<? extends T>? defaultFactory = null);
+ }
+
+ public final class Anchor {
+ ctor public Anchor(internal int loc);
+ method public boolean getValid();
+ method public int location(androidx.compose.SlotTable slots);
+ property public final boolean valid;
+ }
+
+ public final class Applier<N> {
+ ctor public Applier(N! root, androidx.compose.ApplyAdapter<N> adapter);
+ method public void down(N? node);
+ method public N! getCurrent();
+ method public void insert(int index, N? instance);
+ method public void move(int from, int to, int count);
+ method public void remove(int index, int count);
+ method public void reset();
+ method public void up();
+ property public final N! current;
+ }
+
+ public interface ApplyAdapter<N> {
+ method public void end(N?, N? instance, N? parent);
+ method public void insertAt(N?, int index, N? instance);
+ method public void move(N?, int from, int to, int count);
+ method public void removeAt(N?, int index, int count);
+ method public void start(N?, N? instance);
+ }
+
+ public final class Choreographer {
+ method public void postFrameCallback(android.view.Choreographer.FrameCallback callback);
+ method public void postFrameCallbackDelayed(long delayMillis, android.view.Choreographer.FrameCallback callback);
+ method public void removeFrameCallback(android.view.Choreographer.FrameCallback callback);
+ field public static final androidx.compose.Choreographer! INSTANCE;
+ }
+
+ @androidx.compose.EffectsDsl public interface CommitScope {
+ method public void onDispose(kotlin.jvm.functions.Function0<kotlin.Unit> callback);
+ }
+
+ public abstract class Component {
+ ctor public Component();
+ method @androidx.compose.Composable public abstract void compose();
+ method protected final void recompose();
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.PROPERTY}) public @interface Composable {
+ }
+
+ public final class Compose {
+ method @MainThread public androidx.compose.CompositionContext? composeInto(android.view.ViewGroup container, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ method @MainThread public androidx.compose.CompositionContext composeInto(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ method @MainThread public void disposeComposition(android.view.ViewGroup container, androidx.compose.CompositionReference? parent = null);
+ method @MainThread public void disposeComposition(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null);
+ method public androidx.compose.Component? findRoot(android.view.View view);
+ method @MainThread public androidx.compose.CompositionContext subcomposeInto(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ field public static final androidx.compose.Compose! INSTANCE;
+ }
+
+ public final class ComposeAndroidKt {
+ ctor public ComposeAndroidKt();
+ method public static void disposeComposition(android.app.Activity);
+ method public static androidx.compose.CompositionContext? setViewContent(android.app.Activity, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ }
+
+ public final class ComposeKt {
+ ctor public ComposeKt();
+ method public static void disposeComposition(android.view.ViewGroup);
+ method public static androidx.compose.CompositionContext? setViewContent(android.view.ViewGroup, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ }
+
+ public class Composer<N> {
+ ctor public Composer(androidx.compose.SlotTable slotTable, androidx.compose.Applier<N> applier, androidx.compose.Recomposer recomposer);
+ method public final <V, T> void apply(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ method public final void applyChanges();
+ method public final androidx.compose.CompositionReference buildReference();
+ method public final <T> boolean changed(T? value);
+ method public final void collectKeySourceInformation();
+ method protected final void composeRoot(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public final <T extends N> void createNode(kotlin.jvm.functions.Function0<? extends T> factory);
+ method public final void doneJoin(boolean valid);
+ method public final <T extends N> void emitNode(kotlin.jvm.functions.Function0<? extends T> factory);
+ method public final void emitNode(N? node);
+ method public final void endGroup();
+ method public final void endNode();
+ method public final androidx.compose.ScopeUpdateScope? endRestartGroup();
+ method public final void endRoot();
+ method public final int getChangeCount();
+ method public final boolean getInserting();
+ method public final androidx.compose.SlotTable getSlotTable();
+ method public final Object joinKey(Object? left, Object? right);
+ method public final Object? nextSlot();
+ method public final boolean recompose();
+ method public final void skipCurrentGroup();
+ method public final void skipValue();
+ method public final void startGroup(Object key);
+ method public final kotlin.jvm.functions.Function1<java.lang.Boolean,kotlin.Unit> startJoin(Object key, boolean valid, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>,kotlin.Unit> compose);
+ method public final void startNode(Object key);
+ method public final void startRestartGroup(Object key);
+ method public final void startRoot();
+ method public final void updateValue(Object? value);
+ method public final N! useNode();
+ property public final int changeCount;
+ property public final boolean inserting;
+ }
+
+ public final class ComposerKt {
+ ctor public ComposerKt();
+ method public static inline <N, T> T! cache(androidx.compose.Composer<N>, boolean valid = true, kotlin.jvm.functions.Function0<? extends T> block);
+ method public static inline <T> T! escapeCompose(kotlin.jvm.functions.Function1<? super androidx.compose.NullCompilationScope,? extends T> block);
+ method public static <N> Object? nextValue(androidx.compose.Composer<N>);
+ method public static <N, V> V! remember(androidx.compose.Composer<N>, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1> V! remember(androidx.compose.Composer<N>, P1? p1, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2, P3> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, P3? p3, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2, P3, P4> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, P3? p3, P4? p4, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V> V! remember(androidx.compose.Composer<N>, Object![]? args, kotlin.jvm.functions.Function0<? extends V> block);
+ field public static final int DEFAULT_SLOT_ACTIONS_SIZE = 16; // 0x10
+ field public static final int DEFAULT_SLOT_KEYS_SIZE = 8; // 0x8
+ }
+
+ public final class ComposerUpdater<N, T extends N> {
+ ctor public ComposerUpdater(androidx.compose.Composer<N> composer, T! node);
+ method public androidx.compose.Composer<N> getComposer();
+ method public T! getNode();
+ method public inline void set(int value, kotlin.jvm.functions.Function2<? super T,? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified V> void set(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ method public inline void update(int value, kotlin.jvm.functions.Function2<? super T,? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified V> void update(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ }
+
+ public final class CompositionContext {
+ method public void compose();
+ method public androidx.compose.Component getComponent();
+ method public androidx.compose.Composer<?> getComposer();
+ method public boolean recomposeSync();
+ field public static final androidx.compose.CompositionContext.Companion! Companion;
+ }
+
+ public static final class CompositionContext.Companion {
+ method public androidx.compose.CompositionContext prepare(android.content.Context context, Object root, androidx.compose.Component component, androidx.compose.CompositionReference? compositionReference);
+ method public androidx.compose.CompositionContext prepare(androidx.compose.Component component, androidx.compose.CompositionReference? ambientReference, kotlin.jvm.functions.Function1<? super androidx.compose.Recomposer,? extends androidx.compose.Composer<?>> makeComposer);
+ }
+
+ public interface CompositionLifecycleObserver {
+ method public void onEnter();
+ method public void onLeave();
+ }
+
+ public interface CompositionReference {
+ method public <T> T! getAmbient(androidx.compose.Ambient<T> key);
+ method public void invalidate(boolean sync);
+ method public <T> void invalidateConsumers(androidx.compose.Ambient<T> key);
+ method public <N> void registerComposer(androidx.compose.Composer<N> composer);
+ }
+
+ @androidx.compose.EffectsDsl public final class Effect<T> {
+ method @androidx.compose.annotations.Hide public Object constructKey(int key);
+ method public androidx.compose.Composer<?> getContext();
+ method @androidx.compose.annotations.Hide public T! resolve(androidx.compose.Composer<?> composerContext, int key = sourceLocation());
+ method public void setContext(androidx.compose.Composer<?> p);
+ method public operator <V> V! unaryPlus(androidx.compose.Effect<V>);
+ property public final androidx.compose.Composer<?> context;
+ field @androidx.compose.annotations.Hide public androidx.compose.Composer<?> context;
+ }
+
+ @kotlin.DslMarker public @interface EffectsDsl {
+ }
+
+ public final class EffectsKt {
+ ctor public EffectsKt();
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> ambient(androidx.compose.Ambient<T> key);
+ method public static androidx.compose.Effect<androidx.compose.CompositionReference> compositionReference();
+ method public static <T> androidx.compose.Effect<T> effectOf(kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method public static androidx.compose.Effect<kotlin.jvm.functions.Function0<kotlin.Unit>> getInvalidate();
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> key(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> key(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> key(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> memo(kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> memo(V1? v1, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> memo(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> memo(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> model(kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> modelFor(V1? v1, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> modelFor(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> modelFor(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onActive(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onCommit(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1> androidx.compose.Effect<kotlin.Unit> onCommit(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1, V2> androidx.compose.Effect<kotlin.Unit> onCommit(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onCommit(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onDispose(kotlin.jvm.functions.Function0<kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onPreCommit(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1> androidx.compose.Effect<kotlin.Unit> onPreCommit(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1, V2> androidx.compose.Effect<kotlin.Unit> onPreCommit(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onPreCommit(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<androidx.compose.State<T>> state(kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<androidx.compose.State<T>> stateFor(V1? v1, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<androidx.compose.State<T>> stateFor(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<androidx.compose.State<T>> stateFor(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> init);
+ method public static operator <T> T! unaryPlus(androidx.compose.Effect<T>);
+ }
+
+ public interface Emittable {
+ method public void emitInsertAt(int index, androidx.compose.Emittable instance);
+ method public void emitMove(int from, int to, int count);
+ method public void emitRemoveAt(int index, int count);
+ }
+
+ public final class ExpectKt {
+ ctor public ExpectKt();
+ method public static <T> androidx.compose.ThreadLocal<T> ThreadLocal();
+ }
+
+ public final class FrameManager {
+ method public void ensureStarted();
+ method public <T> T! framed(kotlin.jvm.functions.Function0<? extends T> block);
+ method public <T> T! isolated(kotlin.jvm.functions.Function0<? extends T> block);
+ method public void nextFrame();
+ method public <T> T! unframed(kotlin.jvm.functions.Function0<? extends T> block);
+ field public static final androidx.compose.FrameManager! INSTANCE;
+ }
+
+ public final class Handler {
+ ctor public Handler(android.os.Looper looper);
+ method public android.os.Handler getHandler();
+ method public boolean postAtFrontOfQueue(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ property public final android.os.Handler handler;
+ }
+
+ @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface HiddenAttribute {
+ }
+
+ @androidx.compose.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=AnnotationTarget.CLASS) public @interface Immutable {
+ }
+
+ public final class JoinedKeyKt {
+ ctor public JoinedKeyKt();
+ method public static boolean isJoinedKey(Object? key);
+ method public static Object? joinedKeyLeft(Object? key);
+ method public static Object? joinedKeyRight(Object? key);
+ }
+
+ public final class KeyInfo {
+ ctor public KeyInfo(Object key, int location, int nodes, int index);
+ method public int getIndex();
+ method public Object getKey();
+ method public int getLocation();
+ method public int getNodes();
+ }
+
+ public final class KeyKt {
+ ctor public KeyKt();
+ method @androidx.compose.Composable public static void Key(@androidx.compose.Pivotal Object? key, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ }
+
+ public final class KeySourceInfoKt {
+ ctor public KeySourceInfoKt();
+ method public static String? keySourceInfoOf(Object key);
+ }
+
+ public final class LooperWrapper {
+ method public android.os.Looper getMainLooper();
+ field public static final androidx.compose.LooperWrapper! INSTANCE;
+ }
+
+ @androidx.compose.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=AnnotationTarget.CLASS) public @interface Model {
+ }
+
+ public final class NullCompilationScope {
+ method public kotlin.Unit getComposer();
+ property public final kotlin.Unit composer;
+ field public static final androidx.compose.NullCompilationScope! INSTANCE;
+ }
+
+ public final class ObserveKt {
+ ctor public ObserveKt();
+ method @androidx.compose.Composable public static void Observe(kotlin.jvm.functions.Function0<kotlin.Unit> body);
+ }
+
+ public final class ObserverMap<K, V> {
+ ctor public ObserverMap();
+ method public void add(K key, V value);
+ method public void clear();
+ method public void clearValues(kotlin.jvm.functions.Function1<? super V,java.lang.Boolean> predicate);
+ method public boolean contains(K key, V value);
+ method public operator java.util.List<V> get(Iterable<? extends K> keys);
+ method public java.util.List<V> remove(K key);
+ method public void remove(K key, V value);
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Target(allowedTargets={AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION}) public @interface Pivotal {
+ }
+
+ public final class RecomposeKt {
+ ctor public RecomposeKt();
+ method @androidx.compose.Composable public static void Recompose(kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> body);
+ }
+
+ public abstract class Recomposer {
+ ctor public Recomposer();
+ method protected final void dispatchRecomposes();
+ method public abstract void recomposeSync();
+ method protected abstract void scheduleChangesDispatch();
+ field public static final androidx.compose.Recomposer.Companion! Companion;
+ }
+
+ public static final class Recomposer.Companion {
+ method public androidx.compose.Recomposer current();
+ method public boolean hasPendingChanges();
+ }
+
+ public final class RecomposerKt {
+ ctor public RecomposerKt();
+ }
+
+ public interface ScopeUpdateScope {
+ method public void updateScope(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ }
+
+ public class SlotEditor {
+ method public final Object? get(androidx.compose.Anchor anchor);
+ method public final Object? get(int index);
+ method public final int getCurrent();
+ method public final int getGroupSize();
+ method public final int getNodeIndex();
+ method public final int getParentIndex();
+ method public final int getParentNodes();
+ method public final androidx.compose.SlotTable getTable();
+ method public final int groupSize(int index);
+ method public final boolean isGroup();
+ method public final boolean isGroup(int index);
+ method public final boolean isNode();
+ method public final void setCurrent(int p);
+ property public final int current;
+ property public final int groupSize;
+ property public final boolean isGroup;
+ property public final boolean isNode;
+ property public final int nodeIndex;
+ property public final int parentIndex;
+ property public final int parentNodes;
+ }
+
+ public final class SlotReader extends androidx.compose.SlotEditor {
+ method public void beginEmpty();
+ method public void close();
+ method public void endEmpty();
+ method public int endGroup();
+ method public int endNode();
+ method public java.util.List<androidx.compose.KeyInfo> extractKeys();
+ method public Object? get();
+ method public Object! getGroupKey();
+ method public boolean getInEmpty();
+ method public Object groupKey(int index);
+ method public boolean isGroupEnd();
+ method public Object? next();
+ method public void previous();
+ method public void reportUncertainNodeCount();
+ method public int skipEnclosingGroup();
+ method public int skipGroup();
+ method public int skipNode();
+ method public void startGroup(Object key);
+ method public void startNode(Object key);
+ property public final Object! groupKey;
+ property public final boolean inEmpty;
+ property public final boolean isGroupEnd;
+ }
+
+ public final class SlotTable {
+ ctor public SlotTable(internal Object![] slots);
+ ctor public SlotTable();
+ method public int getSize();
+ method public androidx.compose.SlotReader openReader();
+ method public androidx.compose.SlotWriter openWriter();
+ method public <T> T! read(kotlin.jvm.functions.Function1<? super androidx.compose.SlotReader,? extends T> block);
+ method public <T> T! write(kotlin.jvm.functions.Function1<? super androidx.compose.SlotWriter,? extends T> block);
+ property public final int size;
+ field public static final androidx.compose.SlotTable.Companion! Companion;
+ }
+
+ public static final class SlotTable.Companion {
+ method public Object getEMPTY();
+ property public final Object EMPTY;
+ }
+
+ public final class SlotTableKt {
+ ctor public SlotTableKt();
+ }
+
+ public final class SlotWriter extends androidx.compose.SlotEditor {
+ method public androidx.compose.Anchor anchor(int index = current);
+ method public void beginInsert();
+ method public void close();
+ method public int endGroup();
+ method public void endInsert();
+ method public int endNode();
+ method public java.util.Iterator<java.lang.Object> groupSlots();
+ method public void moveGroup(int offset);
+ method public void previous();
+ method public boolean removeGroup();
+ method public void set(Object? value);
+ method public Object? skip();
+ method public int skipGroup();
+ method public int skipNode();
+ method public void startGroup(Object key);
+ method public void startNode(Object key);
+ method public Object? update(Object? value);
+ }
+
+ public final class SourceLocationKt {
+ ctor public SourceLocationKt();
+ method public static inline int sourceLocation();
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CLASS}) public @interface StableMarker {
+ }
+
+ @androidx.compose.Model public final class State<T> implements androidx.compose.frames.Framed {
+ method public operator T! component1();
+ method public operator kotlin.jvm.functions.Function1<T,kotlin.Unit> component2();
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public T! getValue();
+ method public operator T! getValue(Object? thisObj, kotlin.reflect.KProperty<?> property);
+ method @androidx.compose.annotations.Hide public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public void setValue(T? value);
+ method public operator void setValue(Object? thisObj, kotlin.reflect.KProperty<?> property, T? next);
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public final T! value;
+ }
+
+ public class ThreadLocal<T> extends java.lang.ThreadLocal<T> {
+ ctor public ThreadLocal(kotlin.jvm.functions.Function0<? extends T> initialValue);
+ }
+
+ public final class Trace {
+ method public void beginSection(String name);
+ method public void endSection();
+ field public static final androidx.compose.Trace! INSTANCE;
+ }
+
+ public final class TraceKt {
+ ctor public TraceKt();
+ method public static inline <T> T! trace(String sectionName, kotlin.jvm.functions.Function0<? extends T> block);
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER}) public @interface UnionType {
+ method public abstract Class<?>[] types();
+ }
+
+ public final class ViewAdapters {
+ ctor public ViewAdapters();
+ method public Object? adapt(Object parent, Object child);
+ method public boolean register(kotlin.jvm.functions.Function2<java.lang.Object,java.lang.Object,?> adapter);
+ }
+
+ public final class ViewComposer extends androidx.compose.Composer<java.lang.Object> {
+ ctor public ViewComposer(Object root, android.content.Context context, androidx.compose.Recomposer recomposer, androidx.compose.ViewAdapters? adapters);
+ method public androidx.compose.ViewAdapters? getAdapters();
+ method public android.content.Context getContext();
+ method public Object getRoot();
+ }
+
+ public final class ViewComposerCommonKt {
+ ctor public ViewComposerCommonKt();
+ }
+
+ public final class ViewComposerKt {
+ ctor public ViewComposerKt();
+ method public static androidx.compose.ViewComposition! getComposer();
+ method public static Boolean? registerAdapter(androidx.compose.ViewComposition, kotlin.jvm.functions.Function2<java.lang.Object,java.lang.Object,?> adapter);
+ method public static <T> T! runWithCurrent(androidx.compose.Composer<?>, kotlin.jvm.functions.Function0<? extends T> block);
+ }
+
+ @androidx.compose.EffectsDsl public final class ViewComposition {
+ ctor public ViewComposition(androidx.compose.ViewComposer composer);
+ method public inline void call(Object key, kotlin.jvm.functions.Function1<? super androidx.compose.ViewValidator,java.lang.Boolean> invalid, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public inline <T> void call(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function2<? super androidx.compose.ViewValidator,? super T,java.lang.Boolean> invalid, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T extends android.view.View> void emit(Object key, kotlin.jvm.functions.Function1<? super android.content.Context,? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update);
+ method public inline <T extends android.view.ViewGroup> void emit(Object key, kotlin.jvm.functions.Function1<? super android.content.Context,? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public inline <T extends androidx.compose.Emittable> void emit(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update);
+ method public inline <T extends androidx.compose.Emittable> void emit(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public androidx.compose.ScopeUpdateScope? endRestartGroup();
+ method public inline <T> T! expr(Object key, kotlin.jvm.functions.Function0<? extends T> block);
+ method public androidx.compose.ViewComposer getComposer();
+ method public inline Object joinKey(Object left, Object? right);
+ method public void observe(Object key, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>,kotlin.Unit> block);
+ method public void startRestartGroup(Object key);
+ method public inline operator <V> V! unaryPlus(androidx.compose.Effect<V>);
+ }
+
+ public final class ViewValidator {
+ ctor public ViewValidator(androidx.compose.Composer<?> composer);
+ method public boolean changed(int value);
+ method public <T> boolean changed(T? value);
+ method public <T> boolean changedUnchecked(T? value);
+ method public androidx.compose.Composer<?> getComposer();
+ method public operator boolean plus(boolean, boolean other);
+ method public inline boolean set(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified T> boolean set(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T> boolean setUnchecked(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline boolean update(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified T> boolean update(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T> boolean updateUnchecked(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public boolean updated(int value);
+ method public <T> boolean updated(T? value);
+ }
+
+}
+
+package androidx.compose.adapters {
+
+ public final class ComposeViewAdapter implements androidx.compose.adapters.ViewAdapter {
+ ctor public ComposeViewAdapter();
+ method public void didInsert(android.view.View view, android.view.ViewGroup parent);
+ method public void didUpdate(android.view.View view, android.view.ViewGroup parent);
+ method public inline <T extends androidx.compose.adapters.ViewAdapter> T get(int id, kotlin.jvm.functions.Function0<? extends T> factory);
+ method public java.util.List<androidx.compose.adapters.ViewAdapter> getAdapters();
+ method public int getId();
+ method public void willInsert(android.view.View view, android.view.ViewGroup parent);
+ property public final java.util.List<androidx.compose.adapters.ViewAdapter> adapters;
+ property public int id;
+ }
+
+ public interface ViewAdapter {
+ method public void didInsert(android.view.View view, android.view.ViewGroup parent);
+ method public void didUpdate(android.view.View view, android.view.ViewGroup parent);
+ method public int getId();
+ method public void willInsert(android.view.View view, android.view.ViewGroup parent);
+ property public abstract int id;
+ }
+
+ public final class ViewAdapterKt {
+ ctor public ViewAdapterKt();
+ method public static inline <T extends androidx.compose.adapters.ViewAdapter> T getOrAddAdapter(android.view.View, int id, kotlin.jvm.functions.Function0<? extends T> factory);
+ method public static androidx.compose.adapters.ComposeViewAdapter getViewAdapter(android.view.View);
+ }
+
+}
+
+package androidx.compose.annotations {
+
+ @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface Hide {
+ }
+
+}
+
+package androidx.compose.frames {
+
+ public abstract class AbstractRecord implements androidx.compose.frames.Record {
+ ctor public AbstractRecord();
+ method public int getFrameId();
+ method public androidx.compose.frames.Record? getNext();
+ method public void setFrameId(int p);
+ method public void setNext(androidx.compose.frames.Record? p);
+ property public int frameId;
+ property public androidx.compose.frames.Record? next;
+ }
+
+ public final class Frame {
+ method public int getId();
+ method public boolean getReadonly();
+ method public boolean hasPendingChanges();
+ property public final boolean readonly;
+ }
+
+ public final class FrameAborted extends java.lang.RuntimeException {
+ ctor public FrameAborted(androidx.compose.frames.Frame frame);
+ method public androidx.compose.frames.Frame getFrame();
+ }
+
+ public final class FrameContainersKt {
+ ctor public FrameContainersKt();
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf();
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf(T? element);
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf(T?... elements);
+ method public static <K, V> androidx.compose.frames.ModelMap<K,V> modelMapOf();
+ method public static <K, V> androidx.compose.frames.ModelMap<K,V> modelMapOf(kotlin.Pair<? extends K,? extends V>... pairs);
+ }
+
+ public final class FrameIdSetKt {
+ ctor public FrameIdSetKt();
+ }
+
+ public interface Framed {
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ property public abstract androidx.compose.frames.Record firstFrameRecord;
+ }
+
+ public final class FramesKt {
+ ctor public FramesKt();
+ method public static kotlin.Unit? _created(androidx.compose.frames.Framed framed);
+ method public static androidx.compose.frames.Record _readable(androidx.compose.frames.Record r, androidx.compose.frames.Framed framed);
+ method public static androidx.compose.frames.Record _writable(androidx.compose.frames.Record r, androidx.compose.frames.Framed framed);
+ method public static void abort();
+ method public static void abort(androidx.compose.frames.Frame frame);
+ method public static void abortHandler();
+ method public static void abortHandler(androidx.compose.frames.Frame frame);
+ method public static void commit();
+ method public static void commit(androidx.compose.frames.Frame frame);
+ method public static kotlin.Unit? commitHandler();
+ method public static androidx.compose.frames.Frame currentFrame();
+ method public static boolean getInFrame();
+ method public static void observeAllReads(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit> readObserver, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public static androidx.compose.frames.Frame open(boolean readOnly = false);
+ method public static androidx.compose.frames.Frame open(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver = null, kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver = null);
+ method public static <T extends androidx.compose.frames.Record> T readable(T, androidx.compose.frames.Framed framed);
+ method public static kotlin.jvm.functions.Function0<kotlin.Unit> registerCommitObserver(kotlin.jvm.functions.Function1<? super java.util.Set<?>,kotlin.Unit> observer);
+ method public static void restore(androidx.compose.frames.Frame frame);
+ method public static androidx.compose.frames.Frame suspend();
+ method public static boolean wasModified(Object value);
+ method public static <T extends androidx.compose.frames.Record> T writable(T, androidx.compose.frames.Framed framed);
+ method public static <T extends androidx.compose.frames.Record> T writable(T, androidx.compose.frames.Framed framed, androidx.compose.frames.Frame frame);
+ }
+
+ public final class ModelList<T> implements androidx.compose.frames.Framed kotlin.jvm.internal.markers.KMutableList java.util.List<T> {
+ ctor public ModelList();
+ method public boolean add(T? element);
+ method public void add(int index, T? element);
+ method public boolean addAll(int index, java.util.Collection<? extends T> elements);
+ method public boolean addAll(java.util.Collection<? extends T> elements);
+ method public void clear();
+ method public boolean contains(Object? element);
+ method public boolean containsAll(java.util.Collection<?> elements);
+ method public T! get(int index);
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public int getSize();
+ method public int indexOf(Object? element);
+ method public boolean isEmpty();
+ method public java.util.Iterator<T> iterator();
+ method public int lastIndexOf(Object? element);
+ method public java.util.ListIterator<T> listIterator();
+ method public java.util.ListIterator<T> listIterator(int index);
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public boolean remove(Object? element);
+ method public boolean removeAll(java.util.Collection<?> elements);
+ method public T! removeAt(int index);
+ method public boolean retainAll(java.util.Collection<?> elements);
+ method public T! set(int index, T? element);
+ method public java.util.List<T> subList(int fromIndex, int toIndex);
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public int size;
+ }
+
+ public final class ModelMap<K, V> implements androidx.compose.frames.Framed kotlin.jvm.internal.markers.KMutableMap java.util.Map<K,V> {
+ ctor public ModelMap();
+ method public void clear();
+ method public boolean containsKey(Object? key);
+ method public boolean containsValue(Object? value);
+ method public V? get(Object? key);
+ method public java.util.Set<java.util.Map.Entry<K,V>> getEntries();
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public java.util.Set<K> getKeys();
+ method public int getSize();
+ method public java.util.Collection<V> getValues();
+ method public boolean isEmpty();
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public V? put(K? key, V? value);
+ method public void putAll(java.util.Map<? extends K,? extends V> from);
+ method public V? remove(Object? key);
+ property public java.util.Set<java.util.Map.Entry<K,V>> entries;
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public java.util.Set<K> keys;
+ property public int size;
+ property public java.util.Collection<V> values;
+ }
+
+ public interface Record {
+ method public void assign(androidx.compose.frames.Record value);
+ method public androidx.compose.frames.Record create();
+ method public int getFrameId();
+ method public androidx.compose.frames.Record? getNext();
+ method public void setFrameId(int p);
+ method public void setNext(androidx.compose.frames.Record? p);
+ property public abstract int frameId;
+ property public abstract androidx.compose.frames.Record? next;
+ }
+
+}
+
diff --git a/compose/compose-runtime/api/res-0.1.0-dev04.txt b/compose/compose-runtime/api/res-0.1.0-dev04.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/compose/compose-runtime/api/res-0.1.0-dev04.txt
diff --git a/compose/compose-runtime/api/restricted_0.1.0-dev04.txt b/compose/compose-runtime/api/restricted_0.1.0-dev04.txt
new file mode 100644
index 0000000..786046d
--- /dev/null
+++ b/compose/compose-runtime/api/restricted_0.1.0-dev04.txt
@@ -0,0 +1,703 @@
+// Signature format: 3.0
+package androidx.compose {
+
+ public final class ActualAndroidKt {
+ ctor public ActualAndroidKt();
+ method public static android.content.Context getContext(android.view.View);
+ method public static android.view.ViewParent getParent(android.view.View);
+ method public static boolean isMainThread();
+ }
+
+ public final class ActualJvmKt {
+ ctor public ActualJvmKt();
+ method public static int identityHashCode(Object? instance);
+ method public static inline <R> R! synchronized(Object lock, kotlin.jvm.functions.Function0<? extends R> block);
+ }
+
+ public final class Ambient<T> {
+ method @androidx.compose.Composable public void Provider(T? value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ field public static final androidx.compose.Ambient.Companion! Companion;
+ }
+
+ public static final class Ambient.Companion {
+ method public <T> androidx.compose.Ambient<T> of(kotlin.jvm.functions.Function0<? extends T>? defaultFactory = null);
+ }
+
+ public final class Anchor {
+ ctor public Anchor(internal int loc);
+ method public boolean getValid();
+ method public int location(androidx.compose.SlotTable slots);
+ property public final boolean valid;
+ }
+
+ public final class Applier<N> {
+ ctor public Applier(N! root, androidx.compose.ApplyAdapter<N> adapter);
+ method public void down(N? node);
+ method public N! getCurrent();
+ method public void insert(int index, N? instance);
+ method public void move(int from, int to, int count);
+ method public void remove(int index, int count);
+ method public void reset();
+ method public void up();
+ property public final N! current;
+ }
+
+ public interface ApplyAdapter<N> {
+ method public void end(N?, N? instance, N? parent);
+ method public void insertAt(N?, int index, N? instance);
+ method public void move(N?, int from, int to, int count);
+ method public void removeAt(N?, int index, int count);
+ method public void start(N?, N? instance);
+ }
+
+ public final class Choreographer {
+ method public void postFrameCallback(android.view.Choreographer.FrameCallback callback);
+ method public void postFrameCallbackDelayed(long delayMillis, android.view.Choreographer.FrameCallback callback);
+ method public void removeFrameCallback(android.view.Choreographer.FrameCallback callback);
+ field public static final androidx.compose.Choreographer! INSTANCE;
+ }
+
+ @androidx.compose.EffectsDsl public interface CommitScope {
+ method public void onDispose(kotlin.jvm.functions.Function0<kotlin.Unit> callback);
+ }
+
+ public abstract class Component {
+ ctor public Component();
+ method @androidx.compose.Composable public abstract void compose();
+ method protected final void recompose();
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.PROPERTY}) public @interface Composable {
+ }
+
+ public final class Compose {
+ method @MainThread public androidx.compose.CompositionContext? composeInto(android.view.ViewGroup container, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ method @MainThread public androidx.compose.CompositionContext composeInto(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ method @MainThread public void disposeComposition(android.view.ViewGroup container, androidx.compose.CompositionReference? parent = null);
+ method @MainThread public void disposeComposition(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null);
+ method public androidx.compose.Component? findRoot(android.view.View view);
+ method @MainThread public androidx.compose.CompositionContext subcomposeInto(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ field public static final androidx.compose.Compose! INSTANCE;
+ }
+
+ public final class ComposeAndroidKt {
+ ctor public ComposeAndroidKt();
+ method public static void disposeComposition(android.app.Activity);
+ method public static androidx.compose.CompositionContext? setViewContent(android.app.Activity, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ }
+
+ public final class ComposeKt {
+ ctor public ComposeKt();
+ method public static void disposeComposition(android.view.ViewGroup);
+ method public static androidx.compose.CompositionContext? setViewContent(android.view.ViewGroup, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ }
+
+ public class Composer<N> {
+ ctor public Composer(androidx.compose.SlotTable slotTable, androidx.compose.Applier<N> applier, androidx.compose.Recomposer recomposer);
+ method public final <V, T> void apply(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ method public final void applyChanges();
+ method public final androidx.compose.CompositionReference buildReference();
+ method public final <T> boolean changed(T? value);
+ method public final void collectKeySourceInformation();
+ method protected final void composeRoot(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public final <T extends N> void createNode(kotlin.jvm.functions.Function0<? extends T> factory);
+ method public final void doneJoin(boolean valid);
+ method public final <T extends N> void emitNode(kotlin.jvm.functions.Function0<? extends T> factory);
+ method public final void emitNode(N? node);
+ method public final void endGroup();
+ method public final void endNode();
+ method public final androidx.compose.ScopeUpdateScope? endRestartGroup();
+ method public final void endRoot();
+ method public final int getChangeCount();
+ method public final boolean getInserting();
+ method public final androidx.compose.SlotTable getSlotTable();
+ method public final Object joinKey(Object? left, Object? right);
+ method public final Object? nextSlot();
+ method public final boolean recompose();
+ method public final void skipCurrentGroup();
+ method public final void skipValue();
+ method public final void startGroup(Object key);
+ method public final kotlin.jvm.functions.Function1<java.lang.Boolean,kotlin.Unit> startJoin(Object key, boolean valid, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>,kotlin.Unit> compose);
+ method public final void startNode(Object key);
+ method public final void startRestartGroup(Object key);
+ method public final void startRoot();
+ method public final void updateValue(Object? value);
+ method public final N! useNode();
+ property public final int changeCount;
+ property public final boolean inserting;
+ }
+
+ public final class ComposerKt {
+ ctor public ComposerKt();
+ method public static inline <N, T> T! cache(androidx.compose.Composer<N>, boolean valid = true, kotlin.jvm.functions.Function0<? extends T> block);
+ method public static inline <T> T! escapeCompose(kotlin.jvm.functions.Function1<? super androidx.compose.NullCompilationScope,? extends T> block);
+ method public static <N> Object? nextValue(androidx.compose.Composer<N>);
+ method public static <N, V> V! remember(androidx.compose.Composer<N>, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1> V! remember(androidx.compose.Composer<N>, P1? p1, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2, P3> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, P3? p3, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2, P3, P4> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, P3? p3, P4? p4, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V> V! remember(androidx.compose.Composer<N>, Object![]? args, kotlin.jvm.functions.Function0<? extends V> block);
+ field public static final int DEFAULT_SLOT_ACTIONS_SIZE = 16; // 0x10
+ field public static final int DEFAULT_SLOT_KEYS_SIZE = 8; // 0x8
+ }
+
+ public final class ComposerUpdater<N, T extends N> {
+ ctor public ComposerUpdater(androidx.compose.Composer<N> composer, T! node);
+ method public androidx.compose.Composer<N> getComposer();
+ method public T! getNode();
+ method public inline void set(int value, kotlin.jvm.functions.Function2<? super T,? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified V> void set(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ method public inline void update(int value, kotlin.jvm.functions.Function2<? super T,? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified V> void update(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ }
+
+ public final class CompositionContext {
+ method public void compose();
+ method public androidx.compose.Component getComponent();
+ method public androidx.compose.Composer<?> getComposer();
+ method public boolean recomposeSync();
+ field public static final androidx.compose.CompositionContext.Companion! Companion;
+ }
+
+ public static final class CompositionContext.Companion {
+ method public androidx.compose.CompositionContext prepare(android.content.Context context, Object root, androidx.compose.Component component, androidx.compose.CompositionReference? compositionReference);
+ method public androidx.compose.CompositionContext prepare(androidx.compose.Component component, androidx.compose.CompositionReference? ambientReference, kotlin.jvm.functions.Function1<? super androidx.compose.Recomposer,? extends androidx.compose.Composer<?>> makeComposer);
+ }
+
+ public interface CompositionLifecycleObserver {
+ method public void onEnter();
+ method public void onLeave();
+ }
+
+ public interface CompositionReference {
+ method public <T> T! getAmbient(androidx.compose.Ambient<T> key);
+ method public void invalidate(boolean sync);
+ method public <T> void invalidateConsumers(androidx.compose.Ambient<T> key);
+ method public <N> void registerComposer(androidx.compose.Composer<N> composer);
+ }
+
+ @androidx.compose.EffectsDsl public final class Effect<T> {
+ method @androidx.compose.annotations.Hide public Object constructKey(int key);
+ method public androidx.compose.Composer<?> getContext();
+ method @androidx.compose.annotations.Hide public T! resolve(androidx.compose.Composer<?> composerContext, int key = sourceLocation());
+ method public void setContext(androidx.compose.Composer<?> p);
+ method public operator <V> V! unaryPlus(androidx.compose.Effect<V>);
+ property public final androidx.compose.Composer<?> context;
+ field @androidx.compose.annotations.Hide public androidx.compose.Composer<?> context;
+ }
+
+ @kotlin.DslMarker public @interface EffectsDsl {
+ }
+
+ public final class EffectsKt {
+ ctor public EffectsKt();
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> ambient(androidx.compose.Ambient<T> key);
+ method public static androidx.compose.Effect<androidx.compose.CompositionReference> compositionReference();
+ method public static <T> androidx.compose.Effect<T> effectOf(kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method public static androidx.compose.Effect<kotlin.jvm.functions.Function0<kotlin.Unit>> getInvalidate();
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> key(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> key(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> key(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> memo(kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> memo(V1? v1, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> memo(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> memo(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> model(kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> modelFor(V1? v1, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> modelFor(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> modelFor(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onActive(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onCommit(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1> androidx.compose.Effect<kotlin.Unit> onCommit(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1, V2> androidx.compose.Effect<kotlin.Unit> onCommit(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onCommit(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onDispose(kotlin.jvm.functions.Function0<kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onPreCommit(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1> androidx.compose.Effect<kotlin.Unit> onPreCommit(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1, V2> androidx.compose.Effect<kotlin.Unit> onPreCommit(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onPreCommit(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<androidx.compose.State<T>> state(kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<androidx.compose.State<T>> stateFor(V1? v1, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<androidx.compose.State<T>> stateFor(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<androidx.compose.State<T>> stateFor(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> init);
+ method public static operator <T> T! unaryPlus(androidx.compose.Effect<T>);
+ }
+
+ public interface Emittable {
+ method public void emitInsertAt(int index, androidx.compose.Emittable instance);
+ method public void emitMove(int from, int to, int count);
+ method public void emitRemoveAt(int index, int count);
+ }
+
+ public final class ExpectKt {
+ ctor public ExpectKt();
+ method public static <T> androidx.compose.ThreadLocal<T> ThreadLocal();
+ }
+
+ public final class FrameManager {
+ method public void ensureStarted();
+ method public <T> T! framed(kotlin.jvm.functions.Function0<? extends T> block);
+ method public <T> T! isolated(kotlin.jvm.functions.Function0<? extends T> block);
+ method public void nextFrame();
+ method public <T> T! unframed(kotlin.jvm.functions.Function0<? extends T> block);
+ field public static final androidx.compose.FrameManager! INSTANCE;
+ }
+
+ public final class Handler {
+ ctor public Handler(android.os.Looper looper);
+ method public android.os.Handler getHandler();
+ method public boolean postAtFrontOfQueue(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ property public final android.os.Handler handler;
+ }
+
+ @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface HiddenAttribute {
+ }
+
+ @androidx.compose.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=AnnotationTarget.CLASS) public @interface Immutable {
+ }
+
+ public final class JoinedKeyKt {
+ ctor public JoinedKeyKt();
+ method public static boolean isJoinedKey(Object? key);
+ method public static Object? joinedKeyLeft(Object? key);
+ method public static Object? joinedKeyRight(Object? key);
+ }
+
+ public final class KeyInfo {
+ ctor public KeyInfo(Object key, int location, int nodes, int index);
+ method public int getIndex();
+ method public Object getKey();
+ method public int getLocation();
+ method public int getNodes();
+ }
+
+ public final class KeyKt {
+ ctor public KeyKt();
+ method @androidx.compose.Composable public static void Key(@androidx.compose.Pivotal Object? key, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ }
+
+ public final class KeySourceInfoKt {
+ ctor public KeySourceInfoKt();
+ method public static String? keySourceInfoOf(Object key);
+ }
+
+ public final class LooperWrapper {
+ method public android.os.Looper getMainLooper();
+ field public static final androidx.compose.LooperWrapper! INSTANCE;
+ }
+
+ @androidx.compose.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=AnnotationTarget.CLASS) public @interface Model {
+ }
+
+ public final class NullCompilationScope {
+ method public kotlin.Unit getComposer();
+ property public final kotlin.Unit composer;
+ field public static final androidx.compose.NullCompilationScope! INSTANCE;
+ }
+
+ public final class ObserveKt {
+ ctor public ObserveKt();
+ method @androidx.compose.Composable public static void Observe(kotlin.jvm.functions.Function0<kotlin.Unit> body);
+ }
+
+ public final class ObserverMap<K, V> {
+ ctor public ObserverMap();
+ method public void add(K key, V value);
+ method public void clear();
+ method public void clearValues(kotlin.jvm.functions.Function1<? super V,java.lang.Boolean> predicate);
+ method public boolean contains(K key, V value);
+ method public operator java.util.List<V> get(Iterable<? extends K> keys);
+ method public java.util.List<V> remove(K key);
+ method public void remove(K key, V value);
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Target(allowedTargets={AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION}) public @interface Pivotal {
+ }
+
+ public final class RecomposeKt {
+ ctor public RecomposeKt();
+ method @androidx.compose.Composable public static void Recompose(kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> body);
+ }
+
+ public abstract class Recomposer {
+ ctor public Recomposer();
+ method protected final void dispatchRecomposes();
+ method public abstract void recomposeSync();
+ method protected abstract void scheduleChangesDispatch();
+ field public static final androidx.compose.Recomposer.Companion! Companion;
+ }
+
+ public static final class Recomposer.Companion {
+ method public androidx.compose.Recomposer current();
+ method public boolean hasPendingChanges();
+ }
+
+ public final class RecomposerKt {
+ ctor public RecomposerKt();
+ }
+
+ public interface ScopeUpdateScope {
+ method public void updateScope(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ }
+
+ public class SlotEditor {
+ method public final Object? get(androidx.compose.Anchor anchor);
+ method public final Object? get(int index);
+ method public final int getCurrent();
+ method public final int getGroupSize();
+ method public final int getNodeIndex();
+ method public final int getParentIndex();
+ method public final int getParentNodes();
+ method public final androidx.compose.SlotTable getTable();
+ method public final int groupSize(int index);
+ method public final boolean isGroup();
+ method public final boolean isGroup(int index);
+ method public final boolean isNode();
+ method public final void setCurrent(int p);
+ property public final int current;
+ property public final int groupSize;
+ property public final boolean isGroup;
+ property public final boolean isNode;
+ property public final int nodeIndex;
+ property public final int parentIndex;
+ property public final int parentNodes;
+ }
+
+ public final class SlotReader extends androidx.compose.SlotEditor {
+ method public void beginEmpty();
+ method public void close();
+ method public void endEmpty();
+ method public int endGroup();
+ method public int endNode();
+ method public java.util.List<androidx.compose.KeyInfo> extractKeys();
+ method public Object? get();
+ method public Object! getGroupKey();
+ method public boolean getInEmpty();
+ method public Object groupKey(int index);
+ method public boolean isGroupEnd();
+ method public Object? next();
+ method public void previous();
+ method public void reportUncertainNodeCount();
+ method public int skipEnclosingGroup();
+ method public int skipGroup();
+ method public int skipNode();
+ method public void startGroup(Object key);
+ method public void startNode(Object key);
+ property public final Object! groupKey;
+ property public final boolean inEmpty;
+ property public final boolean isGroupEnd;
+ }
+
+ public final class SlotTable {
+ ctor public SlotTable(internal Object![] slots);
+ ctor public SlotTable();
+ method public int getSize();
+ method public androidx.compose.SlotReader openReader();
+ method public androidx.compose.SlotWriter openWriter();
+ method public <T> T! read(kotlin.jvm.functions.Function1<? super androidx.compose.SlotReader,? extends T> block);
+ method public <T> T! write(kotlin.jvm.functions.Function1<? super androidx.compose.SlotWriter,? extends T> block);
+ property public final int size;
+ field public static final androidx.compose.SlotTable.Companion! Companion;
+ }
+
+ public static final class SlotTable.Companion {
+ method public Object getEMPTY();
+ property public final Object EMPTY;
+ }
+
+ public final class SlotTableKt {
+ ctor public SlotTableKt();
+ }
+
+ public final class SlotWriter extends androidx.compose.SlotEditor {
+ method public androidx.compose.Anchor anchor(int index = current);
+ method public void beginInsert();
+ method public void close();
+ method public int endGroup();
+ method public void endInsert();
+ method public int endNode();
+ method public java.util.Iterator<java.lang.Object> groupSlots();
+ method public void moveGroup(int offset);
+ method public void previous();
+ method public boolean removeGroup();
+ method public void set(Object? value);
+ method public Object? skip();
+ method public int skipGroup();
+ method public int skipNode();
+ method public void startGroup(Object key);
+ method public void startNode(Object key);
+ method public Object? update(Object? value);
+ }
+
+ public final class SourceLocationKt {
+ ctor public SourceLocationKt();
+ method public static inline int sourceLocation();
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CLASS}) public @interface StableMarker {
+ }
+
+ @androidx.compose.Model public final class State<T> implements androidx.compose.frames.Framed {
+ method public operator T! component1();
+ method public operator kotlin.jvm.functions.Function1<T,kotlin.Unit> component2();
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public T! getValue();
+ method public operator T! getValue(Object? thisObj, kotlin.reflect.KProperty<?> property);
+ method @androidx.compose.annotations.Hide public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public void setValue(T? value);
+ method public operator void setValue(Object? thisObj, kotlin.reflect.KProperty<?> property, T? next);
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public final T! value;
+ }
+
+ public class ThreadLocal<T> extends java.lang.ThreadLocal<T> {
+ ctor public ThreadLocal(kotlin.jvm.functions.Function0<? extends T> initialValue);
+ }
+
+ public final class Trace {
+ method public void beginSection(String name);
+ method public void endSection();
+ field public static final androidx.compose.Trace! INSTANCE;
+ }
+
+ public final class TraceKt {
+ ctor public TraceKt();
+ method public static inline <T> T! trace(String sectionName, kotlin.jvm.functions.Function0<? extends T> block);
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER}) public @interface UnionType {
+ method public abstract Class<?>[] types();
+ }
+
+ public final class ViewAdapters {
+ ctor public ViewAdapters();
+ method public Object? adapt(Object parent, Object child);
+ method public boolean register(kotlin.jvm.functions.Function2<java.lang.Object,java.lang.Object,?> adapter);
+ }
+
+ public final class ViewComposer extends androidx.compose.Composer<java.lang.Object> {
+ ctor public ViewComposer(Object root, android.content.Context context, androidx.compose.Recomposer recomposer, androidx.compose.ViewAdapters? adapters);
+ method public androidx.compose.ViewAdapters? getAdapters();
+ method public android.content.Context getContext();
+ method public Object getRoot();
+ }
+
+ public final class ViewComposerCommonKt {
+ ctor public ViewComposerCommonKt();
+ }
+
+ public final class ViewComposerKt {
+ ctor public ViewComposerKt();
+ method public static androidx.compose.ViewComposition! getComposer();
+ method public static Boolean? registerAdapter(androidx.compose.ViewComposition, kotlin.jvm.functions.Function2<java.lang.Object,java.lang.Object,?> adapter);
+ method public static <T> T! runWithCurrent(androidx.compose.Composer<?>, kotlin.jvm.functions.Function0<? extends T> block);
+ }
+
+ @androidx.compose.EffectsDsl public final class ViewComposition {
+ ctor public ViewComposition(androidx.compose.ViewComposer composer);
+ method public inline void call(Object key, kotlin.jvm.functions.Function1<? super androidx.compose.ViewValidator,java.lang.Boolean> invalid, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public inline <T> void call(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function2<? super androidx.compose.ViewValidator,? super T,java.lang.Boolean> invalid, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T extends android.view.View> void emit(Object key, kotlin.jvm.functions.Function1<? super android.content.Context,? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update);
+ method public inline <T extends android.view.ViewGroup> void emit(Object key, kotlin.jvm.functions.Function1<? super android.content.Context,? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public inline <T extends androidx.compose.Emittable> void emit(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update);
+ method public inline <T extends androidx.compose.Emittable> void emit(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public androidx.compose.ScopeUpdateScope? endRestartGroup();
+ method public inline <T> T! expr(Object key, kotlin.jvm.functions.Function0<? extends T> block);
+ method public androidx.compose.ViewComposer getComposer();
+ method public inline Object joinKey(Object left, Object? right);
+ method public void observe(Object key, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>,kotlin.Unit> block);
+ method public void startRestartGroup(Object key);
+ method public inline operator <V> V! unaryPlus(androidx.compose.Effect<V>);
+ }
+
+ public final class ViewValidator {
+ ctor public ViewValidator(androidx.compose.Composer<?> composer);
+ method public boolean changed(int value);
+ method public <T> boolean changed(T? value);
+ method public <T> boolean changedUnchecked(T? value);
+ method public androidx.compose.Composer<?> getComposer();
+ method public operator boolean plus(boolean, boolean other);
+ method public inline boolean set(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified T> boolean set(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T> boolean setUnchecked(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline boolean update(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified T> boolean update(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T> boolean updateUnchecked(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public boolean updated(int value);
+ method public <T> boolean updated(T? value);
+ }
+
+}
+
+package androidx.compose.adapters {
+
+ public final class ComposeViewAdapter implements androidx.compose.adapters.ViewAdapter {
+ ctor public ComposeViewAdapter();
+ method public void didInsert(android.view.View view, android.view.ViewGroup parent);
+ method public void didUpdate(android.view.View view, android.view.ViewGroup parent);
+ method public inline <T extends androidx.compose.adapters.ViewAdapter> T get(int id, kotlin.jvm.functions.Function0<? extends T> factory);
+ method public java.util.List<androidx.compose.adapters.ViewAdapter> getAdapters();
+ method public int getId();
+ method public void willInsert(android.view.View view, android.view.ViewGroup parent);
+ property public final java.util.List<androidx.compose.adapters.ViewAdapter> adapters;
+ property public int id;
+ }
+
+ public interface ViewAdapter {
+ method public void didInsert(android.view.View view, android.view.ViewGroup parent);
+ method public void didUpdate(android.view.View view, android.view.ViewGroup parent);
+ method public int getId();
+ method public void willInsert(android.view.View view, android.view.ViewGroup parent);
+ property public abstract int id;
+ }
+
+ public final class ViewAdapterKt {
+ ctor public ViewAdapterKt();
+ method public static inline <T extends androidx.compose.adapters.ViewAdapter> T getOrAddAdapter(android.view.View, int id, kotlin.jvm.functions.Function0<? extends T> factory);
+ method public static androidx.compose.adapters.ComposeViewAdapter getViewAdapter(android.view.View);
+ }
+
+}
+
+package androidx.compose.annotations {
+
+ @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface Hide {
+ }
+
+}
+
+package androidx.compose.frames {
+
+ public abstract class AbstractRecord implements androidx.compose.frames.Record {
+ ctor public AbstractRecord();
+ method public int getFrameId();
+ method public androidx.compose.frames.Record? getNext();
+ method public void setFrameId(int p);
+ method public void setNext(androidx.compose.frames.Record? p);
+ property public int frameId;
+ property public androidx.compose.frames.Record? next;
+ }
+
+ public final class Frame {
+ method public int getId();
+ method public boolean getReadonly();
+ method public boolean hasPendingChanges();
+ property public final boolean readonly;
+ }
+
+ public final class FrameAborted extends java.lang.RuntimeException {
+ ctor public FrameAborted(androidx.compose.frames.Frame frame);
+ method public androidx.compose.frames.Frame getFrame();
+ }
+
+ public final class FrameContainersKt {
+ ctor public FrameContainersKt();
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf();
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf(T? element);
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf(T?... elements);
+ method public static <K, V> androidx.compose.frames.ModelMap<K,V> modelMapOf();
+ method public static <K, V> androidx.compose.frames.ModelMap<K,V> modelMapOf(kotlin.Pair<? extends K,? extends V>... pairs);
+ }
+
+ public final class FrameIdSetKt {
+ ctor public FrameIdSetKt();
+ }
+
+ public interface Framed {
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ property public abstract androidx.compose.frames.Record firstFrameRecord;
+ }
+
+ public final class FramesKt {
+ ctor public FramesKt();
+ method public static kotlin.Unit? _created(androidx.compose.frames.Framed framed);
+ method public static androidx.compose.frames.Record _readable(androidx.compose.frames.Record r, androidx.compose.frames.Framed framed);
+ method public static androidx.compose.frames.Record _writable(androidx.compose.frames.Record r, androidx.compose.frames.Framed framed);
+ method public static void abort();
+ method public static void abort(androidx.compose.frames.Frame frame);
+ method public static void abortHandler();
+ method public static void abortHandler(androidx.compose.frames.Frame frame);
+ method public static void commit();
+ method public static void commit(androidx.compose.frames.Frame frame);
+ method public static kotlin.Unit? commitHandler();
+ method public static androidx.compose.frames.Frame currentFrame();
+ method public static boolean getInFrame();
+ method public static void observeAllReads(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit> readObserver, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public static androidx.compose.frames.Frame open(boolean readOnly = false);
+ method public static androidx.compose.frames.Frame open(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver = null, kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver = null);
+ method public static <T extends androidx.compose.frames.Record> T readable(T, androidx.compose.frames.Framed framed);
+ method public static kotlin.jvm.functions.Function0<kotlin.Unit> registerCommitObserver(kotlin.jvm.functions.Function1<? super java.util.Set<?>,kotlin.Unit> observer);
+ method public static void restore(androidx.compose.frames.Frame frame);
+ method public static androidx.compose.frames.Frame suspend();
+ method public static boolean wasModified(Object value);
+ method public static <T extends androidx.compose.frames.Record> T writable(T, androidx.compose.frames.Framed framed);
+ method public static <T extends androidx.compose.frames.Record> T writable(T, androidx.compose.frames.Framed framed, androidx.compose.frames.Frame frame);
+ }
+
+ public final class ModelList<T> implements androidx.compose.frames.Framed kotlin.jvm.internal.markers.KMutableList java.util.List<T> {
+ ctor public ModelList();
+ method public boolean add(T? element);
+ method public void add(int index, T? element);
+ method public boolean addAll(int index, java.util.Collection<? extends T> elements);
+ method public boolean addAll(java.util.Collection<? extends T> elements);
+ method public void clear();
+ method public boolean contains(Object? element);
+ method public boolean containsAll(java.util.Collection<?> elements);
+ method public T! get(int index);
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public int getSize();
+ method public int indexOf(Object? element);
+ method public boolean isEmpty();
+ method public java.util.Iterator<T> iterator();
+ method public int lastIndexOf(Object? element);
+ method public java.util.ListIterator<T> listIterator();
+ method public java.util.ListIterator<T> listIterator(int index);
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public boolean remove(Object? element);
+ method public boolean removeAll(java.util.Collection<?> elements);
+ method public T! removeAt(int index);
+ method public boolean retainAll(java.util.Collection<?> elements);
+ method public T! set(int index, T? element);
+ method public java.util.List<T> subList(int fromIndex, int toIndex);
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public int size;
+ }
+
+ public final class ModelMap<K, V> implements androidx.compose.frames.Framed kotlin.jvm.internal.markers.KMutableMap java.util.Map<K,V> {
+ ctor public ModelMap();
+ method public void clear();
+ method public boolean containsKey(Object? key);
+ method public boolean containsValue(Object? value);
+ method public V? get(Object? key);
+ method public java.util.Set<java.util.Map.Entry<K,V>> getEntries();
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public java.util.Set<K> getKeys();
+ method public int getSize();
+ method public java.util.Collection<V> getValues();
+ method public boolean isEmpty();
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public V? put(K? key, V? value);
+ method public void putAll(java.util.Map<? extends K,? extends V> from);
+ method public V? remove(Object? key);
+ property public java.util.Set<java.util.Map.Entry<K,V>> entries;
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public java.util.Set<K> keys;
+ property public int size;
+ property public java.util.Collection<V> values;
+ }
+
+ public interface Record {
+ method public void assign(androidx.compose.frames.Record value);
+ method public androidx.compose.frames.Record create();
+ method public int getFrameId();
+ method public androidx.compose.frames.Record? getNext();
+ method public void setFrameId(int p);
+ method public void setNext(androidx.compose.frames.Record? p);
+ property public abstract int frameId;
+ property public abstract androidx.compose.frames.Record? next;
+ }
+
+}
+
diff --git a/compose/compose-runtime/api/restricted_current.txt b/compose/compose-runtime/api/restricted_current.txt
new file mode 100644
index 0000000..786046d
--- /dev/null
+++ b/compose/compose-runtime/api/restricted_current.txt
@@ -0,0 +1,703 @@
+// Signature format: 3.0
+package androidx.compose {
+
+ public final class ActualAndroidKt {
+ ctor public ActualAndroidKt();
+ method public static android.content.Context getContext(android.view.View);
+ method public static android.view.ViewParent getParent(android.view.View);
+ method public static boolean isMainThread();
+ }
+
+ public final class ActualJvmKt {
+ ctor public ActualJvmKt();
+ method public static int identityHashCode(Object? instance);
+ method public static inline <R> R! synchronized(Object lock, kotlin.jvm.functions.Function0<? extends R> block);
+ }
+
+ public final class Ambient<T> {
+ method @androidx.compose.Composable public void Provider(T? value, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ field public static final androidx.compose.Ambient.Companion! Companion;
+ }
+
+ public static final class Ambient.Companion {
+ method public <T> androidx.compose.Ambient<T> of(kotlin.jvm.functions.Function0<? extends T>? defaultFactory = null);
+ }
+
+ public final class Anchor {
+ ctor public Anchor(internal int loc);
+ method public boolean getValid();
+ method public int location(androidx.compose.SlotTable slots);
+ property public final boolean valid;
+ }
+
+ public final class Applier<N> {
+ ctor public Applier(N! root, androidx.compose.ApplyAdapter<N> adapter);
+ method public void down(N? node);
+ method public N! getCurrent();
+ method public void insert(int index, N? instance);
+ method public void move(int from, int to, int count);
+ method public void remove(int index, int count);
+ method public void reset();
+ method public void up();
+ property public final N! current;
+ }
+
+ public interface ApplyAdapter<N> {
+ method public void end(N?, N? instance, N? parent);
+ method public void insertAt(N?, int index, N? instance);
+ method public void move(N?, int from, int to, int count);
+ method public void removeAt(N?, int index, int count);
+ method public void start(N?, N? instance);
+ }
+
+ public final class Choreographer {
+ method public void postFrameCallback(android.view.Choreographer.FrameCallback callback);
+ method public void postFrameCallbackDelayed(long delayMillis, android.view.Choreographer.FrameCallback callback);
+ method public void removeFrameCallback(android.view.Choreographer.FrameCallback callback);
+ field public static final androidx.compose.Choreographer! INSTANCE;
+ }
+
+ @androidx.compose.EffectsDsl public interface CommitScope {
+ method public void onDispose(kotlin.jvm.functions.Function0<kotlin.Unit> callback);
+ }
+
+ public abstract class Component {
+ ctor public Component();
+ method @androidx.compose.Composable public abstract void compose();
+ method protected final void recompose();
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.PROPERTY}) public @interface Composable {
+ }
+
+ public final class Compose {
+ method @MainThread public androidx.compose.CompositionContext? composeInto(android.view.ViewGroup container, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ method @MainThread public androidx.compose.CompositionContext composeInto(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ method @MainThread public void disposeComposition(android.view.ViewGroup container, androidx.compose.CompositionReference? parent = null);
+ method @MainThread public void disposeComposition(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null);
+ method public androidx.compose.Component? findRoot(android.view.View view);
+ method @MainThread public androidx.compose.CompositionContext subcomposeInto(androidx.compose.Emittable container, android.content.Context context, androidx.compose.CompositionReference? parent = null, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ field public static final androidx.compose.Compose! INSTANCE;
+ }
+
+ public final class ComposeAndroidKt {
+ ctor public ComposeAndroidKt();
+ method public static void disposeComposition(android.app.Activity);
+ method public static androidx.compose.CompositionContext? setViewContent(android.app.Activity, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ }
+
+ public final class ComposeKt {
+ ctor public ComposeKt();
+ method public static void disposeComposition(android.view.ViewGroup);
+ method public static androidx.compose.CompositionContext? setViewContent(android.view.ViewGroup, kotlin.jvm.functions.Function0<kotlin.Unit> composable);
+ }
+
+ public class Composer<N> {
+ ctor public Composer(androidx.compose.SlotTable slotTable, androidx.compose.Applier<N> applier, androidx.compose.Recomposer recomposer);
+ method public final <V, T> void apply(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ method public final void applyChanges();
+ method public final androidx.compose.CompositionReference buildReference();
+ method public final <T> boolean changed(T? value);
+ method public final void collectKeySourceInformation();
+ method protected final void composeRoot(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public final <T extends N> void createNode(kotlin.jvm.functions.Function0<? extends T> factory);
+ method public final void doneJoin(boolean valid);
+ method public final <T extends N> void emitNode(kotlin.jvm.functions.Function0<? extends T> factory);
+ method public final void emitNode(N? node);
+ method public final void endGroup();
+ method public final void endNode();
+ method public final androidx.compose.ScopeUpdateScope? endRestartGroup();
+ method public final void endRoot();
+ method public final int getChangeCount();
+ method public final boolean getInserting();
+ method public final androidx.compose.SlotTable getSlotTable();
+ method public final Object joinKey(Object? left, Object? right);
+ method public final Object? nextSlot();
+ method public final boolean recompose();
+ method public final void skipCurrentGroup();
+ method public final void skipValue();
+ method public final void startGroup(Object key);
+ method public final kotlin.jvm.functions.Function1<java.lang.Boolean,kotlin.Unit> startJoin(Object key, boolean valid, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>,kotlin.Unit> compose);
+ method public final void startNode(Object key);
+ method public final void startRestartGroup(Object key);
+ method public final void startRoot();
+ method public final void updateValue(Object? value);
+ method public final N! useNode();
+ property public final int changeCount;
+ property public final boolean inserting;
+ }
+
+ public final class ComposerKt {
+ ctor public ComposerKt();
+ method public static inline <N, T> T! cache(androidx.compose.Composer<N>, boolean valid = true, kotlin.jvm.functions.Function0<? extends T> block);
+ method public static inline <T> T! escapeCompose(kotlin.jvm.functions.Function1<? super androidx.compose.NullCompilationScope,? extends T> block);
+ method public static <N> Object? nextValue(androidx.compose.Composer<N>);
+ method public static <N, V> V! remember(androidx.compose.Composer<N>, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1> V! remember(androidx.compose.Composer<N>, P1? p1, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2, P3> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, P3? p3, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V, P1, P2, P3, P4> V! remember(androidx.compose.Composer<N>, P1? p1, P2? p2, P3? p3, P4? p4, kotlin.jvm.functions.Function0<? extends V> block);
+ method public static <N, V> V! remember(androidx.compose.Composer<N>, Object![]? args, kotlin.jvm.functions.Function0<? extends V> block);
+ field public static final int DEFAULT_SLOT_ACTIONS_SIZE = 16; // 0x10
+ field public static final int DEFAULT_SLOT_KEYS_SIZE = 8; // 0x8
+ }
+
+ public final class ComposerUpdater<N, T extends N> {
+ ctor public ComposerUpdater(androidx.compose.Composer<N> composer, T! node);
+ method public androidx.compose.Composer<N> getComposer();
+ method public T! getNode();
+ method public inline void set(int value, kotlin.jvm.functions.Function2<? super T,? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified V> void set(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ method public inline void update(int value, kotlin.jvm.functions.Function2<? super T,? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified V> void update(V? value, kotlin.jvm.functions.Function2<? super T,? super V,kotlin.Unit> block);
+ }
+
+ public final class CompositionContext {
+ method public void compose();
+ method public androidx.compose.Component getComponent();
+ method public androidx.compose.Composer<?> getComposer();
+ method public boolean recomposeSync();
+ field public static final androidx.compose.CompositionContext.Companion! Companion;
+ }
+
+ public static final class CompositionContext.Companion {
+ method public androidx.compose.CompositionContext prepare(android.content.Context context, Object root, androidx.compose.Component component, androidx.compose.CompositionReference? compositionReference);
+ method public androidx.compose.CompositionContext prepare(androidx.compose.Component component, androidx.compose.CompositionReference? ambientReference, kotlin.jvm.functions.Function1<? super androidx.compose.Recomposer,? extends androidx.compose.Composer<?>> makeComposer);
+ }
+
+ public interface CompositionLifecycleObserver {
+ method public void onEnter();
+ method public void onLeave();
+ }
+
+ public interface CompositionReference {
+ method public <T> T! getAmbient(androidx.compose.Ambient<T> key);
+ method public void invalidate(boolean sync);
+ method public <T> void invalidateConsumers(androidx.compose.Ambient<T> key);
+ method public <N> void registerComposer(androidx.compose.Composer<N> composer);
+ }
+
+ @androidx.compose.EffectsDsl public final class Effect<T> {
+ method @androidx.compose.annotations.Hide public Object constructKey(int key);
+ method public androidx.compose.Composer<?> getContext();
+ method @androidx.compose.annotations.Hide public T! resolve(androidx.compose.Composer<?> composerContext, int key = sourceLocation());
+ method public void setContext(androidx.compose.Composer<?> p);
+ method public operator <V> V! unaryPlus(androidx.compose.Effect<V>);
+ property public final androidx.compose.Composer<?> context;
+ field @androidx.compose.annotations.Hide public androidx.compose.Composer<?> context;
+ }
+
+ @kotlin.DslMarker public @interface EffectsDsl {
+ }
+
+ public final class EffectsKt {
+ ctor public EffectsKt();
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> ambient(androidx.compose.Ambient<T> key);
+ method public static androidx.compose.Effect<androidx.compose.CompositionReference> compositionReference();
+ method public static <T> androidx.compose.Effect<T> effectOf(kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method public static androidx.compose.Effect<kotlin.jvm.functions.Function0<kotlin.Unit>> getInvalidate();
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> key(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> key(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> key(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.Effect<T>,? extends T> block);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> memo(kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> memo(V1? v1, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> memo(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> memo(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> calculation);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> model(kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<T> modelFor(V1? v1, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<T> modelFor(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<T> modelFor(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onActive(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onCommit(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1> androidx.compose.Effect<kotlin.Unit> onCommit(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1, V2> androidx.compose.Effect<kotlin.Unit> onCommit(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onCommit(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onDispose(kotlin.jvm.functions.Function0<kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onPreCommit(kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1> androidx.compose.Effect<kotlin.Unit> onPreCommit(V1? v1, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <V1, V2> androidx.compose.Effect<kotlin.Unit> onPreCommit(V1? v1, V2? v2, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static androidx.compose.Effect<kotlin.Unit> onPreCommit(Object![]? inputs, kotlin.jvm.functions.Function1<? super androidx.compose.CommitScope,kotlin.Unit> callback);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<androidx.compose.State<T>> state(kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1> androidx.compose.Effect<androidx.compose.State<T>> stateFor(V1? v1, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T, V1, V2> androidx.compose.Effect<androidx.compose.State<T>> stateFor(V1? v1, V2? v2, kotlin.jvm.functions.Function0<? extends T> init);
+ method @CheckResult(suggest="+") public static <T> androidx.compose.Effect<androidx.compose.State<T>> stateFor(Object![]? inputs, kotlin.jvm.functions.Function0<? extends T> init);
+ method public static operator <T> T! unaryPlus(androidx.compose.Effect<T>);
+ }
+
+ public interface Emittable {
+ method public void emitInsertAt(int index, androidx.compose.Emittable instance);
+ method public void emitMove(int from, int to, int count);
+ method public void emitRemoveAt(int index, int count);
+ }
+
+ public final class ExpectKt {
+ ctor public ExpectKt();
+ method public static <T> androidx.compose.ThreadLocal<T> ThreadLocal();
+ }
+
+ public final class FrameManager {
+ method public void ensureStarted();
+ method public <T> T! framed(kotlin.jvm.functions.Function0<? extends T> block);
+ method public <T> T! isolated(kotlin.jvm.functions.Function0<? extends T> block);
+ method public void nextFrame();
+ method public <T> T! unframed(kotlin.jvm.functions.Function0<? extends T> block);
+ field public static final androidx.compose.FrameManager! INSTANCE;
+ }
+
+ public final class Handler {
+ ctor public Handler(android.os.Looper looper);
+ method public android.os.Handler getHandler();
+ method public boolean postAtFrontOfQueue(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ property public final android.os.Handler handler;
+ }
+
+ @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface HiddenAttribute {
+ }
+
+ @androidx.compose.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=AnnotationTarget.CLASS) public @interface Immutable {
+ }
+
+ public final class JoinedKeyKt {
+ ctor public JoinedKeyKt();
+ method public static boolean isJoinedKey(Object? key);
+ method public static Object? joinedKeyLeft(Object? key);
+ method public static Object? joinedKeyRight(Object? key);
+ }
+
+ public final class KeyInfo {
+ ctor public KeyInfo(Object key, int location, int nodes, int index);
+ method public int getIndex();
+ method public Object getKey();
+ method public int getLocation();
+ method public int getNodes();
+ }
+
+ public final class KeyKt {
+ ctor public KeyKt();
+ method @androidx.compose.Composable public static void Key(@androidx.compose.Pivotal Object? key, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ }
+
+ public final class KeySourceInfoKt {
+ ctor public KeySourceInfoKt();
+ method public static String? keySourceInfoOf(Object key);
+ }
+
+ public final class LooperWrapper {
+ method public android.os.Looper getMainLooper();
+ field public static final androidx.compose.LooperWrapper! INSTANCE;
+ }
+
+ @androidx.compose.StableMarker @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets=AnnotationTarget.CLASS) public @interface Model {
+ }
+
+ public final class NullCompilationScope {
+ method public kotlin.Unit getComposer();
+ property public final kotlin.Unit composer;
+ field public static final androidx.compose.NullCompilationScope! INSTANCE;
+ }
+
+ public final class ObserveKt {
+ ctor public ObserveKt();
+ method @androidx.compose.Composable public static void Observe(kotlin.jvm.functions.Function0<kotlin.Unit> body);
+ }
+
+ public final class ObserverMap<K, V> {
+ ctor public ObserverMap();
+ method public void add(K key, V value);
+ method public void clear();
+ method public void clearValues(kotlin.jvm.functions.Function1<? super V,java.lang.Boolean> predicate);
+ method public boolean contains(K key, V value);
+ method public operator java.util.List<V> get(Iterable<? extends K> keys);
+ method public java.util.List<V> remove(K key);
+ method public void remove(K key, V value);
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Target(allowedTargets={AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION}) public @interface Pivotal {
+ }
+
+ public final class RecomposeKt {
+ ctor public RecomposeKt();
+ method @androidx.compose.Composable public static void Recompose(kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function0<kotlin.Unit>,kotlin.Unit> body);
+ }
+
+ public abstract class Recomposer {
+ ctor public Recomposer();
+ method protected final void dispatchRecomposes();
+ method public abstract void recomposeSync();
+ method protected abstract void scheduleChangesDispatch();
+ field public static final androidx.compose.Recomposer.Companion! Companion;
+ }
+
+ public static final class Recomposer.Companion {
+ method public androidx.compose.Recomposer current();
+ method public boolean hasPendingChanges();
+ }
+
+ public final class RecomposerKt {
+ ctor public RecomposerKt();
+ }
+
+ public interface ScopeUpdateScope {
+ method public void updateScope(kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ }
+
+ public class SlotEditor {
+ method public final Object? get(androidx.compose.Anchor anchor);
+ method public final Object? get(int index);
+ method public final int getCurrent();
+ method public final int getGroupSize();
+ method public final int getNodeIndex();
+ method public final int getParentIndex();
+ method public final int getParentNodes();
+ method public final androidx.compose.SlotTable getTable();
+ method public final int groupSize(int index);
+ method public final boolean isGroup();
+ method public final boolean isGroup(int index);
+ method public final boolean isNode();
+ method public final void setCurrent(int p);
+ property public final int current;
+ property public final int groupSize;
+ property public final boolean isGroup;
+ property public final boolean isNode;
+ property public final int nodeIndex;
+ property public final int parentIndex;
+ property public final int parentNodes;
+ }
+
+ public final class SlotReader extends androidx.compose.SlotEditor {
+ method public void beginEmpty();
+ method public void close();
+ method public void endEmpty();
+ method public int endGroup();
+ method public int endNode();
+ method public java.util.List<androidx.compose.KeyInfo> extractKeys();
+ method public Object? get();
+ method public Object! getGroupKey();
+ method public boolean getInEmpty();
+ method public Object groupKey(int index);
+ method public boolean isGroupEnd();
+ method public Object? next();
+ method public void previous();
+ method public void reportUncertainNodeCount();
+ method public int skipEnclosingGroup();
+ method public int skipGroup();
+ method public int skipNode();
+ method public void startGroup(Object key);
+ method public void startNode(Object key);
+ property public final Object! groupKey;
+ property public final boolean inEmpty;
+ property public final boolean isGroupEnd;
+ }
+
+ public final class SlotTable {
+ ctor public SlotTable(internal Object![] slots);
+ ctor public SlotTable();
+ method public int getSize();
+ method public androidx.compose.SlotReader openReader();
+ method public androidx.compose.SlotWriter openWriter();
+ method public <T> T! read(kotlin.jvm.functions.Function1<? super androidx.compose.SlotReader,? extends T> block);
+ method public <T> T! write(kotlin.jvm.functions.Function1<? super androidx.compose.SlotWriter,? extends T> block);
+ property public final int size;
+ field public static final androidx.compose.SlotTable.Companion! Companion;
+ }
+
+ public static final class SlotTable.Companion {
+ method public Object getEMPTY();
+ property public final Object EMPTY;
+ }
+
+ public final class SlotTableKt {
+ ctor public SlotTableKt();
+ }
+
+ public final class SlotWriter extends androidx.compose.SlotEditor {
+ method public androidx.compose.Anchor anchor(int index = current);
+ method public void beginInsert();
+ method public void close();
+ method public int endGroup();
+ method public void endInsert();
+ method public int endNode();
+ method public java.util.Iterator<java.lang.Object> groupSlots();
+ method public void moveGroup(int offset);
+ method public void previous();
+ method public boolean removeGroup();
+ method public void set(Object? value);
+ method public Object? skip();
+ method public int skipGroup();
+ method public int skipNode();
+ method public void startGroup(Object key);
+ method public void startNode(Object key);
+ method public Object? update(Object? value);
+ }
+
+ public final class SourceLocationKt {
+ ctor public SourceLocationKt();
+ method public static inline int sourceLocation();
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CLASS}) public @interface StableMarker {
+ }
+
+ @androidx.compose.Model public final class State<T> implements androidx.compose.frames.Framed {
+ method public operator T! component1();
+ method public operator kotlin.jvm.functions.Function1<T,kotlin.Unit> component2();
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public T! getValue();
+ method public operator T! getValue(Object? thisObj, kotlin.reflect.KProperty<?> property);
+ method @androidx.compose.annotations.Hide public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public void setValue(T? value);
+ method public operator void setValue(Object? thisObj, kotlin.reflect.KProperty<?> property, T? next);
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public final T! value;
+ }
+
+ public class ThreadLocal<T> extends java.lang.ThreadLocal<T> {
+ ctor public ThreadLocal(kotlin.jvm.functions.Function0<? extends T> initialValue);
+ }
+
+ public final class Trace {
+ method public void beginSection(String name);
+ method public void endSection();
+ field public static final androidx.compose.Trace! INSTANCE;
+ }
+
+ public final class TraceKt {
+ ctor public TraceKt();
+ method public static inline <T> T! trace(String sectionName, kotlin.jvm.functions.Function0<? extends T> block);
+ }
+
+ @kotlin.annotation.MustBeDocumented @kotlin.annotation.Retention(AnnotationRetention.BINARY) @kotlin.annotation.Target(allowedTargets={AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER}) public @interface UnionType {
+ method public abstract Class<?>[] types();
+ }
+
+ public final class ViewAdapters {
+ ctor public ViewAdapters();
+ method public Object? adapt(Object parent, Object child);
+ method public boolean register(kotlin.jvm.functions.Function2<java.lang.Object,java.lang.Object,?> adapter);
+ }
+
+ public final class ViewComposer extends androidx.compose.Composer<java.lang.Object> {
+ ctor public ViewComposer(Object root, android.content.Context context, androidx.compose.Recomposer recomposer, androidx.compose.ViewAdapters? adapters);
+ method public androidx.compose.ViewAdapters? getAdapters();
+ method public android.content.Context getContext();
+ method public Object getRoot();
+ }
+
+ public final class ViewComposerCommonKt {
+ ctor public ViewComposerCommonKt();
+ }
+
+ public final class ViewComposerKt {
+ ctor public ViewComposerKt();
+ method public static androidx.compose.ViewComposition! getComposer();
+ method public static Boolean? registerAdapter(androidx.compose.ViewComposition, kotlin.jvm.functions.Function2<java.lang.Object,java.lang.Object,?> adapter);
+ method public static <T> T! runWithCurrent(androidx.compose.Composer<?>, kotlin.jvm.functions.Function0<? extends T> block);
+ }
+
+ @androidx.compose.EffectsDsl public final class ViewComposition {
+ ctor public ViewComposition(androidx.compose.ViewComposer composer);
+ method public inline void call(Object key, kotlin.jvm.functions.Function1<? super androidx.compose.ViewValidator,java.lang.Boolean> invalid, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public inline <T> void call(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function2<? super androidx.compose.ViewValidator,? super T,java.lang.Boolean> invalid, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T extends android.view.View> void emit(Object key, kotlin.jvm.functions.Function1<? super android.content.Context,? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update);
+ method public inline <T extends android.view.ViewGroup> void emit(Object key, kotlin.jvm.functions.Function1<? super android.content.Context,? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public inline <T extends androidx.compose.Emittable> void emit(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update);
+ method public inline <T extends androidx.compose.Emittable> void emit(Object key, kotlin.jvm.functions.Function0<? extends T> ctor, kotlin.jvm.functions.Function1<? super androidx.compose.ComposerUpdater<java.lang.Object,T>,kotlin.Unit> update, kotlin.jvm.functions.Function0<kotlin.Unit> children);
+ method public androidx.compose.ScopeUpdateScope? endRestartGroup();
+ method public inline <T> T! expr(Object key, kotlin.jvm.functions.Function0<? extends T> block);
+ method public androidx.compose.ViewComposer getComposer();
+ method public inline Object joinKey(Object left, Object? right);
+ method public void observe(Object key, kotlin.jvm.functions.Function1<? super kotlin.jvm.functions.Function1<? super java.lang.Boolean,kotlin.Unit>,kotlin.Unit> block);
+ method public void startRestartGroup(Object key);
+ method public inline operator <V> V! unaryPlus(androidx.compose.Effect<V>);
+ }
+
+ public final class ViewValidator {
+ ctor public ViewValidator(androidx.compose.Composer<?> composer);
+ method public boolean changed(int value);
+ method public <T> boolean changed(T? value);
+ method public <T> boolean changedUnchecked(T? value);
+ method public androidx.compose.Composer<?> getComposer();
+ method public operator boolean plus(boolean, boolean other);
+ method public inline boolean set(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified T> boolean set(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T> boolean setUnchecked(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline boolean update(int value, kotlin.jvm.functions.Function1<? super java.lang.Integer,kotlin.Unit> block);
+ method public inline <reified T> boolean update(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public inline <T> boolean updateUnchecked(T? value, kotlin.jvm.functions.Function1<? super T,kotlin.Unit> block);
+ method public boolean updated(int value);
+ method public <T> boolean updated(T? value);
+ }
+
+}
+
+package androidx.compose.adapters {
+
+ public final class ComposeViewAdapter implements androidx.compose.adapters.ViewAdapter {
+ ctor public ComposeViewAdapter();
+ method public void didInsert(android.view.View view, android.view.ViewGroup parent);
+ method public void didUpdate(android.view.View view, android.view.ViewGroup parent);
+ method public inline <T extends androidx.compose.adapters.ViewAdapter> T get(int id, kotlin.jvm.functions.Function0<? extends T> factory);
+ method public java.util.List<androidx.compose.adapters.ViewAdapter> getAdapters();
+ method public int getId();
+ method public void willInsert(android.view.View view, android.view.ViewGroup parent);
+ property public final java.util.List<androidx.compose.adapters.ViewAdapter> adapters;
+ property public int id;
+ }
+
+ public interface ViewAdapter {
+ method public void didInsert(android.view.View view, android.view.ViewGroup parent);
+ method public void didUpdate(android.view.View view, android.view.ViewGroup parent);
+ method public int getId();
+ method public void willInsert(android.view.View view, android.view.ViewGroup parent);
+ property public abstract int id;
+ }
+
+ public final class ViewAdapterKt {
+ ctor public ViewAdapterKt();
+ method public static inline <T extends androidx.compose.adapters.ViewAdapter> T getOrAddAdapter(android.view.View, int id, kotlin.jvm.functions.Function0<? extends T> factory);
+ method public static androidx.compose.adapters.ComposeViewAdapter getViewAdapter(android.view.View);
+ }
+
+}
+
+package androidx.compose.annotations {
+
+ @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.RUNTIME) public @interface Hide {
+ }
+
+}
+
+package androidx.compose.frames {
+
+ public abstract class AbstractRecord implements androidx.compose.frames.Record {
+ ctor public AbstractRecord();
+ method public int getFrameId();
+ method public androidx.compose.frames.Record? getNext();
+ method public void setFrameId(int p);
+ method public void setNext(androidx.compose.frames.Record? p);
+ property public int frameId;
+ property public androidx.compose.frames.Record? next;
+ }
+
+ public final class Frame {
+ method public int getId();
+ method public boolean getReadonly();
+ method public boolean hasPendingChanges();
+ property public final boolean readonly;
+ }
+
+ public final class FrameAborted extends java.lang.RuntimeException {
+ ctor public FrameAborted(androidx.compose.frames.Frame frame);
+ method public androidx.compose.frames.Frame getFrame();
+ }
+
+ public final class FrameContainersKt {
+ ctor public FrameContainersKt();
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf();
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf(T? element);
+ method public static <T> androidx.compose.frames.ModelList<T> modelListOf(T?... elements);
+ method public static <K, V> androidx.compose.frames.ModelMap<K,V> modelMapOf();
+ method public static <K, V> androidx.compose.frames.ModelMap<K,V> modelMapOf(kotlin.Pair<? extends K,? extends V>... pairs);
+ }
+
+ public final class FrameIdSetKt {
+ ctor public FrameIdSetKt();
+ }
+
+ public interface Framed {
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ property public abstract androidx.compose.frames.Record firstFrameRecord;
+ }
+
+ public final class FramesKt {
+ ctor public FramesKt();
+ method public static kotlin.Unit? _created(androidx.compose.frames.Framed framed);
+ method public static androidx.compose.frames.Record _readable(androidx.compose.frames.Record r, androidx.compose.frames.Framed framed);
+ method public static androidx.compose.frames.Record _writable(androidx.compose.frames.Record r, androidx.compose.frames.Framed framed);
+ method public static void abort();
+ method public static void abort(androidx.compose.frames.Frame frame);
+ method public static void abortHandler();
+ method public static void abortHandler(androidx.compose.frames.Frame frame);
+ method public static void commit();
+ method public static void commit(androidx.compose.frames.Frame frame);
+ method public static kotlin.Unit? commitHandler();
+ method public static androidx.compose.frames.Frame currentFrame();
+ method public static boolean getInFrame();
+ method public static void observeAllReads(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit> readObserver, kotlin.jvm.functions.Function0<kotlin.Unit> block);
+ method public static androidx.compose.frames.Frame open(boolean readOnly = false);
+ method public static androidx.compose.frames.Frame open(kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? readObserver = null, kotlin.jvm.functions.Function1<java.lang.Object,kotlin.Unit>? writeObserver = null);
+ method public static <T extends androidx.compose.frames.Record> T readable(T, androidx.compose.frames.Framed framed);
+ method public static kotlin.jvm.functions.Function0<kotlin.Unit> registerCommitObserver(kotlin.jvm.functions.Function1<? super java.util.Set<?>,kotlin.Unit> observer);
+ method public static void restore(androidx.compose.frames.Frame frame);
+ method public static androidx.compose.frames.Frame suspend();
+ method public static boolean wasModified(Object value);
+ method public static <T extends androidx.compose.frames.Record> T writable(T, androidx.compose.frames.Framed framed);
+ method public static <T extends androidx.compose.frames.Record> T writable(T, androidx.compose.frames.Framed framed, androidx.compose.frames.Frame frame);
+ }
+
+ public final class ModelList<T> implements androidx.compose.frames.Framed kotlin.jvm.internal.markers.KMutableList java.util.List<T> {
+ ctor public ModelList();
+ method public boolean add(T? element);
+ method public void add(int index, T? element);
+ method public boolean addAll(int index, java.util.Collection<? extends T> elements);
+ method public boolean addAll(java.util.Collection<? extends T> elements);
+ method public void clear();
+ method public boolean contains(Object? element);
+ method public boolean containsAll(java.util.Collection<?> elements);
+ method public T! get(int index);
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public int getSize();
+ method public int indexOf(Object? element);
+ method public boolean isEmpty();
+ method public java.util.Iterator<T> iterator();
+ method public int lastIndexOf(Object? element);
+ method public java.util.ListIterator<T> listIterator();
+ method public java.util.ListIterator<T> listIterator(int index);
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public boolean remove(Object? element);
+ method public boolean removeAll(java.util.Collection<?> elements);
+ method public T! removeAt(int index);
+ method public boolean retainAll(java.util.Collection<?> elements);
+ method public T! set(int index, T? element);
+ method public java.util.List<T> subList(int fromIndex, int toIndex);
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public int size;
+ }
+
+ public final class ModelMap<K, V> implements androidx.compose.frames.Framed kotlin.jvm.internal.markers.KMutableMap java.util.Map<K,V> {
+ ctor public ModelMap();
+ method public void clear();
+ method public boolean containsKey(Object? key);
+ method public boolean containsValue(Object? value);
+ method public V? get(Object? key);
+ method public java.util.Set<java.util.Map.Entry<K,V>> getEntries();
+ method public androidx.compose.frames.Record getFirstFrameRecord();
+ method public java.util.Set<K> getKeys();
+ method public int getSize();
+ method public java.util.Collection<V> getValues();
+ method public boolean isEmpty();
+ method public void prependFrameRecord(androidx.compose.frames.Record value);
+ method public V? put(K? key, V? value);
+ method public void putAll(java.util.Map<? extends K,? extends V> from);
+ method public V? remove(Object? key);
+ property public java.util.Set<java.util.Map.Entry<K,V>> entries;
+ property public androidx.compose.frames.Record firstFrameRecord;
+ property public java.util.Set<K> keys;
+ property public int size;
+ property public java.util.Collection<V> values;
+ }
+
+ public interface Record {
+ method public void assign(androidx.compose.frames.Record value);
+ method public androidx.compose.frames.Record create();
+ method public int getFrameId();
+ method public androidx.compose.frames.Record? getNext();
+ method public void setFrameId(int p);
+ method public void setNext(androidx.compose.frames.Record? p);
+ property public abstract int frameId;
+ property public abstract androidx.compose.frames.Record? next;
+ }
+
+}
+
diff --git a/core/core/src/androidTest/java/androidx/core/app/ActivityCompatRecreateTestCase.java b/core/core/src/androidTest/java/androidx/core/app/ActivityCompatRecreateTestCase.java
index d803f53..eefd127 100644
--- a/core/core/src/androidTest/java/androidx/core/app/ActivityCompatRecreateTestCase.java
+++ b/core/core/src/androidTest/java/androidx/core/app/ActivityCompatRecreateTestCase.java
@@ -49,7 +49,7 @@
final TestActivityWithLifecycle firstActivity = mActivityTestRule.getActivity();
// Wait and assert that the Activity is resumed
- waitUntilState(firstActivity, mActivityTestRule, Lifecycle.State.RESUMED);
+ waitUntilState(firstActivity, Lifecycle.State.RESUMED);
// Now recreate() the activity
mActivityTestRule.runOnUiThread(new Runnable() {
@@ -59,7 +59,7 @@
}
});
// Wait until the original activity is destroyed
- waitUntilState(firstActivity, mActivityTestRule, Lifecycle.State.DESTROYED);
+ waitUntilState(firstActivity, Lifecycle.State.DESTROYED);
// Assert that the recreated Activity is resumed
final TestActivityWithLifecycle newActivity = mActivityTestRule.getActivity();
@@ -73,7 +73,7 @@
final Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
// Assert that the activity is resumed currently
- waitUntilState(firstActivity, mActivityTestRule, Lifecycle.State.RESUMED);
+ waitUntilState(firstActivity, Lifecycle.State.RESUMED);
// Start a new Activity, so that the first Activity goes into the background
final Intent intent = new Intent(firstActivity, TestActivityWithLifecycle.class);
@@ -82,8 +82,8 @@
(TestActivityWithLifecycle) instrumentation.startActivitySync(intent);
// Now wait until the new activity is resumed, and the original activity is stopped
- waitUntilState(fgActivity, mActivityTestRule, Lifecycle.State.RESUMED);
- waitUntilState(firstActivity, mActivityTestRule, Lifecycle.State.CREATED);
+ waitUntilState(fgActivity, Lifecycle.State.RESUMED);
+ waitUntilState(firstActivity, Lifecycle.State.CREATED);
// Now recreate() the stopped activity
mActivityTestRule.runOnUiThread(new Runnable() {
@@ -95,17 +95,17 @@
// Wait and assert that the original activity in the background is destroyed
// (since it is being recreated)
- waitUntilState(firstActivity, mActivityTestRule, Lifecycle.State.DESTROYED);
+ waitUntilState(firstActivity, Lifecycle.State.DESTROYED);
// Now finish the foreground activity and wait until it is destroyed,
// allowing the recreated activity to come to the foreground
fgActivity.finish();
- waitUntilState(fgActivity, mActivityTestRule, Lifecycle.State.DESTROYED);
+ waitUntilState(fgActivity, Lifecycle.State.DESTROYED);
// Assert that the activity was recreated and is resumed
final TestActivityWithLifecycle recreatedActivity = mActivityTestRule.getActivity();
assertNotSame(firstActivity, recreatedActivity);
// Assert that the recreated Activity is resumed
- waitUntilState(recreatedActivity, mActivityTestRule, Lifecycle.State.RESUMED);
+ waitUntilState(recreatedActivity, Lifecycle.State.RESUMED);
}
}
diff --git a/fragment/fragment/src/main/java/androidx/fragment/app/FragmentLayoutInflaterFactory.java b/fragment/fragment/src/main/java/androidx/fragment/app/FragmentLayoutInflaterFactory.java
index a6428fb..89852add 100644
--- a/fragment/fragment/src/main/java/androidx/fragment/app/FragmentLayoutInflaterFactory.java
+++ b/fragment/fragment/src/main/java/androidx/fragment/app/FragmentLayoutInflaterFactory.java
@@ -93,6 +93,7 @@
+ Integer.toHexString(id) + " fname=" + fname
+ " existing=" + fragment);
}
+ FragmentStateManager fragmentStateManager;
if (fragment == null) {
fragment = mFragmentManager.getFragmentFactory().instantiate(
context.getClassLoader(), fname);
@@ -105,8 +106,8 @@
fragment.mHost = mFragmentManager.getHost();
fragment.onInflate(mFragmentManager.getHost().getContext(), attrs,
fragment.mSavedFragmentState);
+ fragmentStateManager = mFragmentManager.createOrGetFragmentStateManager(fragment);
mFragmentManager.addFragment(fragment);
- mFragmentManager.moveToState(fragment);
} else if (fragment.mInLayout) {
// A fragment already exists and it is not one we restored from
@@ -124,17 +125,14 @@
// Give the Fragment the attributes to initialize itself.
fragment.onInflate(mFragmentManager.getHost().getContext(), attrs,
fragment.mSavedFragmentState);
+ fragmentStateManager = mFragmentManager.createOrGetFragmentStateManager(fragment);
}
- // If we haven't finished entering the CREATED state ourselves yet,
- // push the inflated child fragment along. This will ensureInflatedFragmentView
- // at the right phase of the lifecycle so that we will have mView populated
- // for compliant fragments below.
- if (mFragmentManager.mCurState < Fragment.CREATED && fragment.mFromLayout) {
- mFragmentManager.moveToState(fragment, Fragment.CREATED);
- } else {
- mFragmentManager.moveToState(fragment);
- }
+ // The <fragment> tag is the one case where we:
+ // 1) Move the Fragment to CREATED even if the FragmentManager isn't yet CREATED
+ fragmentStateManager.moveToExpectedState();
+ // 2) Create the Fragment's view despite not always moving to ACTIVITY_CREATED
+ fragmentStateManager.ensureInflatedView();
if (fragment.mView == null) {
throw new IllegalStateException("Fragment " + fname
diff --git a/fragment/fragment/src/main/java/androidx/fragment/app/FragmentStateManager.java b/fragment/fragment/src/main/java/androidx/fragment/app/FragmentStateManager.java
index 50528b3..00189f5 100644
--- a/fragment/fragment/src/main/java/androidx/fragment/app/FragmentStateManager.java
+++ b/fragment/fragment/src/main/java/androidx/fragment/app/FragmentStateManager.java
@@ -218,7 +218,6 @@
void moveToExpectedState() {
int newState;
while ((newState = computeExpectedState()) != mFragment.mState) {
- // TODO call ensureInflatedView()
if (newState > mFragment.mState) {
// Moving upward
int nextStep = mFragment.mState + 1;
@@ -231,6 +230,7 @@
create();
break;
case Fragment.ACTIVITY_CREATED:
+ ensureInflatedView();
createView();
activityCreated();
restoreViewState();
diff --git a/gradlew b/gradlew
index 395fc82..6233fe3 100755
--- a/gradlew
+++ b/gradlew
@@ -12,6 +12,7 @@
mkdir -p "$OUT_DIR"
OUT_DIR="$(cd $OUT_DIR && pwd)"
export GRADLE_USER_HOME="$OUT_DIR/.gradle"
+ export TMPDIR=$OUT_DIR
else
SCRIPT_PATH="$(cd $(dirname $0) && pwd)"
CHECKOUT_ROOT="$(cd $SCRIPT_PATH/../.. && pwd)"
@@ -205,8 +206,11 @@
if [ "$GRADLE_USER_HOME" != "" ]; then
HOME_SYSTEM_PROPERTY_ARGUMENT="-Duser.home=$GRADLE_USER_HOME"
fi
+if [ "$TMPDIR" != "" ]; then
+ TMPDIR_ARG="-Djava.io.tmpdir=$TMPDIR"
+fi
-if "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain $HOME_SYSTEM_PROPERTY_ARGUMENT "$@"; then
+if "$JAVACMD" "${JVM_OPTS[@]}" $TMPDIR_ARG -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain $HOME_SYSTEM_PROPERTY_ARGUMENT $TMPDIR_ARG "$@"; then
exit 0
else
# Print AndroidX-specific help message if build fails
diff --git a/testutils/testutils-runtime/src/main/java/androidx/testutils/LifecycleOwnerUtils.java b/testutils/testutils-runtime/src/main/java/androidx/testutils/LifecycleOwnerUtils.java
index 4acd19e..2653e7d 100644
--- a/testutils/testutils-runtime/src/main/java/androidx/testutils/LifecycleOwnerUtils.java
+++ b/testutils/testutils-runtime/src/main/java/androidx/testutils/LifecycleOwnerUtils.java
@@ -46,26 +46,19 @@
};
/**
- * Waits until the the Activity current held the ActivityTestRule has the specified
- * {@link androidx.lifecycle.Lifecycle.State}. If the owner has not hit that state within a
- * suitable time period, it asserts that the current state equals the given state.
- */
- public static <T extends Activity & LifecycleOwner> void waitUntilState(
- final @NonNull ActivityTestRule<T> activityRule,
- final @NonNull Lifecycle.State state) throws Throwable {
- waitUntilState(activityRule.getActivity(), activityRule, state);
- }
-
- /**
* Waits until the given {@link LifecycleOwner} has the specified
* {@link androidx.lifecycle.Lifecycle.State}. If the owner has not hit that state within a
* suitable time period, it asserts that the current state equals the given state.
*/
public static void waitUntilState(final @NonNull LifecycleOwner owner,
- final @NonNull ActivityTestRule<?> activityRule,
final @NonNull Lifecycle.State state) throws Throwable {
+ final Lifecycle.State currentState = owner.getLifecycle().getCurrentState();
+ if (currentState == state) {
+ return;
+ }
+
final CountDownLatch latch = new CountDownLatch(1);
- activityRule.runOnUiThread(new Runnable() {
+ InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable() {
@Override
public void run() {
final Lifecycle.State currentState = owner.getLifecycle().getCurrentState();
@@ -78,14 +71,14 @@
public void onStateChanged(@NonNull LifecycleOwner provider,
@NonNull Lifecycle.Event event) {
if (provider.getLifecycle().getCurrentState() == state) {
- latch.countDown();
provider.getLifecycle().removeObserver(this);
+ latch.countDown();
}
}
});
}
});
- final boolean latchResult = latch.await(30, TimeUnit.SECONDS);
+ final boolean latchResult = latch.await(15, TimeUnit.SECONDS);
assertThat("Expected " + state + " never happened to " + owner
+ ". Current state:" + owner.getLifecycle().getCurrentState(),
@@ -93,19 +86,29 @@
is(true));
// wait for another loop to ensure all observers are called
- activityRule.runOnUiThread(DO_NOTHING);
+ InstrumentationRegistry.getInstrumentation().runOnMainSync(DO_NOTHING);
}
/**
* Waits until the given the current {@link Activity} has been recreated, and
* the new instance is resumed.
*/
- @SuppressWarnings("unchecked")
@NonNull
public static <T extends Activity & LifecycleOwner> T waitForRecreation(
@NonNull final ActivityTestRule<T> activityRule
) throws Throwable {
- return waitForRecreation(activityRule.getActivity(), activityRule, null);
+ return waitForRecreation(activityRule.getActivity());
+ }
+
+ /**
+ * Waits until the given the given {@link Activity} has been recreated, and
+ * the new instance is resumed.
+ */
+ @NonNull
+ public static <T extends Activity & LifecycleOwner> T waitForRecreation(
+ @NonNull final T activity
+ ) throws Throwable {
+ return waitForRecreation(activity, null);
}
/**
@@ -116,39 +119,42 @@
@NonNull
public static <T extends Activity & LifecycleOwner> T waitForRecreation(
@NonNull final T activity,
- @NonNull final ActivityTestRule<?> activityRule,
@Nullable final Runnable actionOnUiThread
) throws Throwable {
- Instrumentation.ActivityMonitor monitor = new Instrumentation.ActivityMonitor(
- activity.getClass().getCanonicalName(), null, false);
+ final Instrumentation.ActivityMonitor monitor = new Instrumentation.ActivityMonitor(
+ activity.getClass().getName(), null, false);
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
instrumentation.addMonitor(monitor);
if (actionOnUiThread != null) {
- activityRule.runOnUiThread(actionOnUiThread);
+ instrumentation.runOnMainSync(actionOnUiThread);
}
T result;
// this guarantee that we will reinstall monitor between notifications about onDestroy
// and onCreate
- //noinspection SynchronizationOnLocalVariableOrMethodParameter
- synchronized (monitor) {
- do {
- // The documentation says "Block until an Activity is created
- // that matches this monitor." This statement is true, but there are some other
- // true statements like: "Block until an Activity is destroyed" or
- // "Block until an Activity is resumed"...
- // this call will release synchronization monitor's monitor
- result = (T) monitor.waitForActivityWithTimeout(TIMEOUT_MS);
- if (result == null) {
- throw new RuntimeException("Timeout. Activity was not recreated.");
- }
- } while (result == activity);
+ // noinspection SynchronizationOnLocalVariableOrMethodParameter
+ try {
+ synchronized (monitor) {
+ do {
+ // The documentation says "Block until an Activity is created
+ // that matches this monitor." This statement is true, but there are some other
+ // true statements like: "Block until an Activity is destroyed" or
+ // "Block until an Activity is resumed"...
+ // this call will release synchronization monitor's monitor
+ result = (T) monitor.waitForActivityWithTimeout(TIMEOUT_MS);
+ if (result == null) {
+ throw new RuntimeException("Timeout. Activity was not recreated.");
+ }
+ } while (result == activity);
+ }
+ } finally {
+ instrumentation.removeMonitor(monitor);
}
// Finally wait for the recreated Activity to be resumed
- waitUntilState(result, activityRule, Lifecycle.State.RESUMED);
+ waitUntilState(result, Lifecycle.State.RESUMED);
return result;
}
diff --git a/ui/ui-core/api/0.1.0-dev04.txt b/ui/ui-core/api/0.1.0-dev04.txt
index b39c0a1..6825a5a 100644
--- a/ui/ui-core/api/0.1.0-dev04.txt
+++ b/ui/ui-core/api/0.1.0-dev04.txt
@@ -1515,12 +1515,6 @@
property public abstract int width;
}
- public enum ImageByteFormat {
- enum_constant public static final androidx.ui.graphics.ImageByteFormat png;
- enum_constant public static final androidx.ui.graphics.ImageByteFormat rawRgba;
- enum_constant public static final androidx.ui.graphics.ImageByteFormat rawUnmodified;
- }
-
public enum ImageConfig {
enum_constant public static final androidx.ui.graphics.ImageConfig Alpha8;
enum_constant public static final androidx.ui.graphics.ImageConfig Argb8888;
@@ -1533,13 +1527,6 @@
ctor public ImageKt();
}
- public enum ImageRepeat {
- enum_constant public static final androidx.ui.graphics.ImageRepeat noRepeat;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeat;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeatX;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeatY;
- }
-
public final class LinearGradient extends androidx.ui.graphics.ShaderBrush {
method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode);
}
@@ -2161,43 +2148,6 @@
package androidx.ui.vectormath64 {
- public final class Matrix2 {
- ctor public Matrix2(androidx.ui.vectormath64.Vector2 x, androidx.ui.vectormath64.Vector2 y);
- ctor public Matrix2();
- ctor public Matrix2(androidx.ui.vectormath64.Matrix2 m);
- method public androidx.ui.vectormath64.Vector2 component1();
- method public androidx.ui.vectormath64.Vector2 component2();
- method public androidx.ui.vectormath64.Matrix2 copy(androidx.ui.vectormath64.Vector2 x, androidx.ui.vectormath64.Vector2 y);
- method public operator androidx.ui.vectormath64.Matrix2 dec();
- method public operator androidx.ui.vectormath64.Matrix2 div(float v);
- method public operator androidx.ui.vectormath64.Vector2 get(int column);
- method public operator float get(int column, int row);
- method public operator androidx.ui.vectormath64.Vector2 get(androidx.ui.vectormath64.MatrixColumn column);
- method public operator float get(androidx.ui.vectormath64.MatrixColumn column, int row);
- method public inline java.util.List<java.lang.Float> getM2storage();
- method public androidx.ui.vectormath64.Vector2 getX();
- method public androidx.ui.vectormath64.Vector2 getY();
- method public operator androidx.ui.vectormath64.Matrix2 inc();
- method public operator androidx.ui.vectormath64.Matrix2 minus(float v);
- method public operator androidx.ui.vectormath64.Matrix2 plus(float v);
- method public operator void set(int column, androidx.ui.vectormath64.Vector2 v);
- method public operator void set(int column, int row, float v);
- method public void setX(androidx.ui.vectormath64.Vector2 p);
- method public void setY(androidx.ui.vectormath64.Vector2 p);
- method public operator androidx.ui.vectormath64.Matrix2 times(float v);
- method public operator androidx.ui.vectormath64.Matrix2 times(androidx.ui.vectormath64.Matrix2 m);
- method public operator androidx.ui.vectormath64.Vector2 times(androidx.ui.vectormath64.Vector2 v);
- method public float[] toFloatArray();
- method public operator androidx.ui.vectormath64.Matrix2 unaryMinus();
- property public final inline java.util.List<java.lang.Float> m2storage;
- field public static final androidx.ui.vectormath64.Matrix2.Companion! Companion;
- }
-
- public static final class Matrix2.Companion {
- method public androidx.ui.vectormath64.Matrix2 identity();
- method public androidx.ui.vectormath64.Matrix2 of(float... a);
- }
-
public final class Matrix3 {
ctor public Matrix3(androidx.ui.vectormath64.Vector3 x, androidx.ui.vectormath64.Vector3 y, androidx.ui.vectormath64.Vector3 z);
ctor public Matrix3();
@@ -2360,7 +2310,6 @@
method public static androidx.ui.vectormath64.Matrix4 scale(androidx.ui.vectormath64.Matrix4 m);
method public static androidx.ui.vectormath64.Matrix4 translation(androidx.ui.vectormath64.Vector3 t);
method public static androidx.ui.vectormath64.Matrix4 translation(androidx.ui.vectormath64.Matrix4 m);
- method public static androidx.ui.vectormath64.Matrix2 transpose(androidx.ui.vectormath64.Matrix2 m);
method public static androidx.ui.vectormath64.Matrix3 transpose(androidx.ui.vectormath64.Matrix3 m);
method public static androidx.ui.vectormath64.Matrix4 transpose(androidx.ui.vectormath64.Matrix4 m);
}
@@ -2368,10 +2317,7 @@
public final class ScalarKt {
ctor public ScalarKt();
method public static inline float degrees(float v);
- method public static inline float fract(float v);
- method public static inline float mix(float a, float b, float x);
method public static inline float radians(float v);
- method public static inline float sqr(float v);
field public static final float FOUR_PI = 12.566371f;
field public static final float HALF_PI = 1.5707964f;
field public static final float INV_FOUR_PI = 0.07957747f;
@@ -2688,12 +2634,6 @@
method public static inline operator androidx.ui.vectormath64.Vector2 minus(float, androidx.ui.vectormath64.Vector2 v);
method public static inline operator androidx.ui.vectormath64.Vector3 minus(float, androidx.ui.vectormath64.Vector3 v);
method public static inline operator androidx.ui.vectormath64.Vector4 minus(float, androidx.ui.vectormath64.Vector4 v);
- method public static inline androidx.ui.vectormath64.Vector2 mix(androidx.ui.vectormath64.Vector2 a, androidx.ui.vectormath64.Vector2 b, float x);
- method public static inline androidx.ui.vectormath64.Vector2 mix(androidx.ui.vectormath64.Vector2 a, androidx.ui.vectormath64.Vector2 b, androidx.ui.vectormath64.Vector2 x);
- method public static inline androidx.ui.vectormath64.Vector3 mix(androidx.ui.vectormath64.Vector3 a, androidx.ui.vectormath64.Vector3 b, float x);
- method public static inline androidx.ui.vectormath64.Vector3 mix(androidx.ui.vectormath64.Vector3 a, androidx.ui.vectormath64.Vector3 b, androidx.ui.vectormath64.Vector3 x);
- method public static inline androidx.ui.vectormath64.Vector4 mix(androidx.ui.vectormath64.Vector4 a, androidx.ui.vectormath64.Vector4 b, float x);
- method public static inline androidx.ui.vectormath64.Vector4 mix(androidx.ui.vectormath64.Vector4 a, androidx.ui.vectormath64.Vector4 b, androidx.ui.vectormath64.Vector4 x);
method public static androidx.ui.vectormath64.Vector2 normalize(androidx.ui.vectormath64.Vector2 v);
method public static androidx.ui.vectormath64.Vector3 normalize(androidx.ui.vectormath64.Vector3 v);
method public static androidx.ui.vectormath64.Vector4 normalize(androidx.ui.vectormath64.Vector4 v);
diff --git a/ui/ui-core/api/current.txt b/ui/ui-core/api/current.txt
index b39c0a1..6825a5a 100644
--- a/ui/ui-core/api/current.txt
+++ b/ui/ui-core/api/current.txt
@@ -1515,12 +1515,6 @@
property public abstract int width;
}
- public enum ImageByteFormat {
- enum_constant public static final androidx.ui.graphics.ImageByteFormat png;
- enum_constant public static final androidx.ui.graphics.ImageByteFormat rawRgba;
- enum_constant public static final androidx.ui.graphics.ImageByteFormat rawUnmodified;
- }
-
public enum ImageConfig {
enum_constant public static final androidx.ui.graphics.ImageConfig Alpha8;
enum_constant public static final androidx.ui.graphics.ImageConfig Argb8888;
@@ -1533,13 +1527,6 @@
ctor public ImageKt();
}
- public enum ImageRepeat {
- enum_constant public static final androidx.ui.graphics.ImageRepeat noRepeat;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeat;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeatX;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeatY;
- }
-
public final class LinearGradient extends androidx.ui.graphics.ShaderBrush {
method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode);
}
@@ -2161,43 +2148,6 @@
package androidx.ui.vectormath64 {
- public final class Matrix2 {
- ctor public Matrix2(androidx.ui.vectormath64.Vector2 x, androidx.ui.vectormath64.Vector2 y);
- ctor public Matrix2();
- ctor public Matrix2(androidx.ui.vectormath64.Matrix2 m);
- method public androidx.ui.vectormath64.Vector2 component1();
- method public androidx.ui.vectormath64.Vector2 component2();
- method public androidx.ui.vectormath64.Matrix2 copy(androidx.ui.vectormath64.Vector2 x, androidx.ui.vectormath64.Vector2 y);
- method public operator androidx.ui.vectormath64.Matrix2 dec();
- method public operator androidx.ui.vectormath64.Matrix2 div(float v);
- method public operator androidx.ui.vectormath64.Vector2 get(int column);
- method public operator float get(int column, int row);
- method public operator androidx.ui.vectormath64.Vector2 get(androidx.ui.vectormath64.MatrixColumn column);
- method public operator float get(androidx.ui.vectormath64.MatrixColumn column, int row);
- method public inline java.util.List<java.lang.Float> getM2storage();
- method public androidx.ui.vectormath64.Vector2 getX();
- method public androidx.ui.vectormath64.Vector2 getY();
- method public operator androidx.ui.vectormath64.Matrix2 inc();
- method public operator androidx.ui.vectormath64.Matrix2 minus(float v);
- method public operator androidx.ui.vectormath64.Matrix2 plus(float v);
- method public operator void set(int column, androidx.ui.vectormath64.Vector2 v);
- method public operator void set(int column, int row, float v);
- method public void setX(androidx.ui.vectormath64.Vector2 p);
- method public void setY(androidx.ui.vectormath64.Vector2 p);
- method public operator androidx.ui.vectormath64.Matrix2 times(float v);
- method public operator androidx.ui.vectormath64.Matrix2 times(androidx.ui.vectormath64.Matrix2 m);
- method public operator androidx.ui.vectormath64.Vector2 times(androidx.ui.vectormath64.Vector2 v);
- method public float[] toFloatArray();
- method public operator androidx.ui.vectormath64.Matrix2 unaryMinus();
- property public final inline java.util.List<java.lang.Float> m2storage;
- field public static final androidx.ui.vectormath64.Matrix2.Companion! Companion;
- }
-
- public static final class Matrix2.Companion {
- method public androidx.ui.vectormath64.Matrix2 identity();
- method public androidx.ui.vectormath64.Matrix2 of(float... a);
- }
-
public final class Matrix3 {
ctor public Matrix3(androidx.ui.vectormath64.Vector3 x, androidx.ui.vectormath64.Vector3 y, androidx.ui.vectormath64.Vector3 z);
ctor public Matrix3();
@@ -2360,7 +2310,6 @@
method public static androidx.ui.vectormath64.Matrix4 scale(androidx.ui.vectormath64.Matrix4 m);
method public static androidx.ui.vectormath64.Matrix4 translation(androidx.ui.vectormath64.Vector3 t);
method public static androidx.ui.vectormath64.Matrix4 translation(androidx.ui.vectormath64.Matrix4 m);
- method public static androidx.ui.vectormath64.Matrix2 transpose(androidx.ui.vectormath64.Matrix2 m);
method public static androidx.ui.vectormath64.Matrix3 transpose(androidx.ui.vectormath64.Matrix3 m);
method public static androidx.ui.vectormath64.Matrix4 transpose(androidx.ui.vectormath64.Matrix4 m);
}
@@ -2368,10 +2317,7 @@
public final class ScalarKt {
ctor public ScalarKt();
method public static inline float degrees(float v);
- method public static inline float fract(float v);
- method public static inline float mix(float a, float b, float x);
method public static inline float radians(float v);
- method public static inline float sqr(float v);
field public static final float FOUR_PI = 12.566371f;
field public static final float HALF_PI = 1.5707964f;
field public static final float INV_FOUR_PI = 0.07957747f;
@@ -2688,12 +2634,6 @@
method public static inline operator androidx.ui.vectormath64.Vector2 minus(float, androidx.ui.vectormath64.Vector2 v);
method public static inline operator androidx.ui.vectormath64.Vector3 minus(float, androidx.ui.vectormath64.Vector3 v);
method public static inline operator androidx.ui.vectormath64.Vector4 minus(float, androidx.ui.vectormath64.Vector4 v);
- method public static inline androidx.ui.vectormath64.Vector2 mix(androidx.ui.vectormath64.Vector2 a, androidx.ui.vectormath64.Vector2 b, float x);
- method public static inline androidx.ui.vectormath64.Vector2 mix(androidx.ui.vectormath64.Vector2 a, androidx.ui.vectormath64.Vector2 b, androidx.ui.vectormath64.Vector2 x);
- method public static inline androidx.ui.vectormath64.Vector3 mix(androidx.ui.vectormath64.Vector3 a, androidx.ui.vectormath64.Vector3 b, float x);
- method public static inline androidx.ui.vectormath64.Vector3 mix(androidx.ui.vectormath64.Vector3 a, androidx.ui.vectormath64.Vector3 b, androidx.ui.vectormath64.Vector3 x);
- method public static inline androidx.ui.vectormath64.Vector4 mix(androidx.ui.vectormath64.Vector4 a, androidx.ui.vectormath64.Vector4 b, float x);
- method public static inline androidx.ui.vectormath64.Vector4 mix(androidx.ui.vectormath64.Vector4 a, androidx.ui.vectormath64.Vector4 b, androidx.ui.vectormath64.Vector4 x);
method public static androidx.ui.vectormath64.Vector2 normalize(androidx.ui.vectormath64.Vector2 v);
method public static androidx.ui.vectormath64.Vector3 normalize(androidx.ui.vectormath64.Vector3 v);
method public static androidx.ui.vectormath64.Vector4 normalize(androidx.ui.vectormath64.Vector4 v);
diff --git a/ui/ui-core/api/public_plus_experimental_0.1.0-dev04.txt b/ui/ui-core/api/public_plus_experimental_0.1.0-dev04.txt
index b39c0a1..6825a5a 100644
--- a/ui/ui-core/api/public_plus_experimental_0.1.0-dev04.txt
+++ b/ui/ui-core/api/public_plus_experimental_0.1.0-dev04.txt
@@ -1515,12 +1515,6 @@
property public abstract int width;
}
- public enum ImageByteFormat {
- enum_constant public static final androidx.ui.graphics.ImageByteFormat png;
- enum_constant public static final androidx.ui.graphics.ImageByteFormat rawRgba;
- enum_constant public static final androidx.ui.graphics.ImageByteFormat rawUnmodified;
- }
-
public enum ImageConfig {
enum_constant public static final androidx.ui.graphics.ImageConfig Alpha8;
enum_constant public static final androidx.ui.graphics.ImageConfig Argb8888;
@@ -1533,13 +1527,6 @@
ctor public ImageKt();
}
- public enum ImageRepeat {
- enum_constant public static final androidx.ui.graphics.ImageRepeat noRepeat;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeat;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeatX;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeatY;
- }
-
public final class LinearGradient extends androidx.ui.graphics.ShaderBrush {
method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode);
}
@@ -2161,43 +2148,6 @@
package androidx.ui.vectormath64 {
- public final class Matrix2 {
- ctor public Matrix2(androidx.ui.vectormath64.Vector2 x, androidx.ui.vectormath64.Vector2 y);
- ctor public Matrix2();
- ctor public Matrix2(androidx.ui.vectormath64.Matrix2 m);
- method public androidx.ui.vectormath64.Vector2 component1();
- method public androidx.ui.vectormath64.Vector2 component2();
- method public androidx.ui.vectormath64.Matrix2 copy(androidx.ui.vectormath64.Vector2 x, androidx.ui.vectormath64.Vector2 y);
- method public operator androidx.ui.vectormath64.Matrix2 dec();
- method public operator androidx.ui.vectormath64.Matrix2 div(float v);
- method public operator androidx.ui.vectormath64.Vector2 get(int column);
- method public operator float get(int column, int row);
- method public operator androidx.ui.vectormath64.Vector2 get(androidx.ui.vectormath64.MatrixColumn column);
- method public operator float get(androidx.ui.vectormath64.MatrixColumn column, int row);
- method public inline java.util.List<java.lang.Float> getM2storage();
- method public androidx.ui.vectormath64.Vector2 getX();
- method public androidx.ui.vectormath64.Vector2 getY();
- method public operator androidx.ui.vectormath64.Matrix2 inc();
- method public operator androidx.ui.vectormath64.Matrix2 minus(float v);
- method public operator androidx.ui.vectormath64.Matrix2 plus(float v);
- method public operator void set(int column, androidx.ui.vectormath64.Vector2 v);
- method public operator void set(int column, int row, float v);
- method public void setX(androidx.ui.vectormath64.Vector2 p);
- method public void setY(androidx.ui.vectormath64.Vector2 p);
- method public operator androidx.ui.vectormath64.Matrix2 times(float v);
- method public operator androidx.ui.vectormath64.Matrix2 times(androidx.ui.vectormath64.Matrix2 m);
- method public operator androidx.ui.vectormath64.Vector2 times(androidx.ui.vectormath64.Vector2 v);
- method public float[] toFloatArray();
- method public operator androidx.ui.vectormath64.Matrix2 unaryMinus();
- property public final inline java.util.List<java.lang.Float> m2storage;
- field public static final androidx.ui.vectormath64.Matrix2.Companion! Companion;
- }
-
- public static final class Matrix2.Companion {
- method public androidx.ui.vectormath64.Matrix2 identity();
- method public androidx.ui.vectormath64.Matrix2 of(float... a);
- }
-
public final class Matrix3 {
ctor public Matrix3(androidx.ui.vectormath64.Vector3 x, androidx.ui.vectormath64.Vector3 y, androidx.ui.vectormath64.Vector3 z);
ctor public Matrix3();
@@ -2360,7 +2310,6 @@
method public static androidx.ui.vectormath64.Matrix4 scale(androidx.ui.vectormath64.Matrix4 m);
method public static androidx.ui.vectormath64.Matrix4 translation(androidx.ui.vectormath64.Vector3 t);
method public static androidx.ui.vectormath64.Matrix4 translation(androidx.ui.vectormath64.Matrix4 m);
- method public static androidx.ui.vectormath64.Matrix2 transpose(androidx.ui.vectormath64.Matrix2 m);
method public static androidx.ui.vectormath64.Matrix3 transpose(androidx.ui.vectormath64.Matrix3 m);
method public static androidx.ui.vectormath64.Matrix4 transpose(androidx.ui.vectormath64.Matrix4 m);
}
@@ -2368,10 +2317,7 @@
public final class ScalarKt {
ctor public ScalarKt();
method public static inline float degrees(float v);
- method public static inline float fract(float v);
- method public static inline float mix(float a, float b, float x);
method public static inline float radians(float v);
- method public static inline float sqr(float v);
field public static final float FOUR_PI = 12.566371f;
field public static final float HALF_PI = 1.5707964f;
field public static final float INV_FOUR_PI = 0.07957747f;
@@ -2688,12 +2634,6 @@
method public static inline operator androidx.ui.vectormath64.Vector2 minus(float, androidx.ui.vectormath64.Vector2 v);
method public static inline operator androidx.ui.vectormath64.Vector3 minus(float, androidx.ui.vectormath64.Vector3 v);
method public static inline operator androidx.ui.vectormath64.Vector4 minus(float, androidx.ui.vectormath64.Vector4 v);
- method public static inline androidx.ui.vectormath64.Vector2 mix(androidx.ui.vectormath64.Vector2 a, androidx.ui.vectormath64.Vector2 b, float x);
- method public static inline androidx.ui.vectormath64.Vector2 mix(androidx.ui.vectormath64.Vector2 a, androidx.ui.vectormath64.Vector2 b, androidx.ui.vectormath64.Vector2 x);
- method public static inline androidx.ui.vectormath64.Vector3 mix(androidx.ui.vectormath64.Vector3 a, androidx.ui.vectormath64.Vector3 b, float x);
- method public static inline androidx.ui.vectormath64.Vector3 mix(androidx.ui.vectormath64.Vector3 a, androidx.ui.vectormath64.Vector3 b, androidx.ui.vectormath64.Vector3 x);
- method public static inline androidx.ui.vectormath64.Vector4 mix(androidx.ui.vectormath64.Vector4 a, androidx.ui.vectormath64.Vector4 b, float x);
- method public static inline androidx.ui.vectormath64.Vector4 mix(androidx.ui.vectormath64.Vector4 a, androidx.ui.vectormath64.Vector4 b, androidx.ui.vectormath64.Vector4 x);
method public static androidx.ui.vectormath64.Vector2 normalize(androidx.ui.vectormath64.Vector2 v);
method public static androidx.ui.vectormath64.Vector3 normalize(androidx.ui.vectormath64.Vector3 v);
method public static androidx.ui.vectormath64.Vector4 normalize(androidx.ui.vectormath64.Vector4 v);
diff --git a/ui/ui-core/api/public_plus_experimental_current.txt b/ui/ui-core/api/public_plus_experimental_current.txt
index b39c0a1..6825a5a 100644
--- a/ui/ui-core/api/public_plus_experimental_current.txt
+++ b/ui/ui-core/api/public_plus_experimental_current.txt
@@ -1515,12 +1515,6 @@
property public abstract int width;
}
- public enum ImageByteFormat {
- enum_constant public static final androidx.ui.graphics.ImageByteFormat png;
- enum_constant public static final androidx.ui.graphics.ImageByteFormat rawRgba;
- enum_constant public static final androidx.ui.graphics.ImageByteFormat rawUnmodified;
- }
-
public enum ImageConfig {
enum_constant public static final androidx.ui.graphics.ImageConfig Alpha8;
enum_constant public static final androidx.ui.graphics.ImageConfig Argb8888;
@@ -1533,13 +1527,6 @@
ctor public ImageKt();
}
- public enum ImageRepeat {
- enum_constant public static final androidx.ui.graphics.ImageRepeat noRepeat;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeat;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeatX;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeatY;
- }
-
public final class LinearGradient extends androidx.ui.graphics.ShaderBrush {
method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode);
}
@@ -2161,43 +2148,6 @@
package androidx.ui.vectormath64 {
- public final class Matrix2 {
- ctor public Matrix2(androidx.ui.vectormath64.Vector2 x, androidx.ui.vectormath64.Vector2 y);
- ctor public Matrix2();
- ctor public Matrix2(androidx.ui.vectormath64.Matrix2 m);
- method public androidx.ui.vectormath64.Vector2 component1();
- method public androidx.ui.vectormath64.Vector2 component2();
- method public androidx.ui.vectormath64.Matrix2 copy(androidx.ui.vectormath64.Vector2 x, androidx.ui.vectormath64.Vector2 y);
- method public operator androidx.ui.vectormath64.Matrix2 dec();
- method public operator androidx.ui.vectormath64.Matrix2 div(float v);
- method public operator androidx.ui.vectormath64.Vector2 get(int column);
- method public operator float get(int column, int row);
- method public operator androidx.ui.vectormath64.Vector2 get(androidx.ui.vectormath64.MatrixColumn column);
- method public operator float get(androidx.ui.vectormath64.MatrixColumn column, int row);
- method public inline java.util.List<java.lang.Float> getM2storage();
- method public androidx.ui.vectormath64.Vector2 getX();
- method public androidx.ui.vectormath64.Vector2 getY();
- method public operator androidx.ui.vectormath64.Matrix2 inc();
- method public operator androidx.ui.vectormath64.Matrix2 minus(float v);
- method public operator androidx.ui.vectormath64.Matrix2 plus(float v);
- method public operator void set(int column, androidx.ui.vectormath64.Vector2 v);
- method public operator void set(int column, int row, float v);
- method public void setX(androidx.ui.vectormath64.Vector2 p);
- method public void setY(androidx.ui.vectormath64.Vector2 p);
- method public operator androidx.ui.vectormath64.Matrix2 times(float v);
- method public operator androidx.ui.vectormath64.Matrix2 times(androidx.ui.vectormath64.Matrix2 m);
- method public operator androidx.ui.vectormath64.Vector2 times(androidx.ui.vectormath64.Vector2 v);
- method public float[] toFloatArray();
- method public operator androidx.ui.vectormath64.Matrix2 unaryMinus();
- property public final inline java.util.List<java.lang.Float> m2storage;
- field public static final androidx.ui.vectormath64.Matrix2.Companion! Companion;
- }
-
- public static final class Matrix2.Companion {
- method public androidx.ui.vectormath64.Matrix2 identity();
- method public androidx.ui.vectormath64.Matrix2 of(float... a);
- }
-
public final class Matrix3 {
ctor public Matrix3(androidx.ui.vectormath64.Vector3 x, androidx.ui.vectormath64.Vector3 y, androidx.ui.vectormath64.Vector3 z);
ctor public Matrix3();
@@ -2360,7 +2310,6 @@
method public static androidx.ui.vectormath64.Matrix4 scale(androidx.ui.vectormath64.Matrix4 m);
method public static androidx.ui.vectormath64.Matrix4 translation(androidx.ui.vectormath64.Vector3 t);
method public static androidx.ui.vectormath64.Matrix4 translation(androidx.ui.vectormath64.Matrix4 m);
- method public static androidx.ui.vectormath64.Matrix2 transpose(androidx.ui.vectormath64.Matrix2 m);
method public static androidx.ui.vectormath64.Matrix3 transpose(androidx.ui.vectormath64.Matrix3 m);
method public static androidx.ui.vectormath64.Matrix4 transpose(androidx.ui.vectormath64.Matrix4 m);
}
@@ -2368,10 +2317,7 @@
public final class ScalarKt {
ctor public ScalarKt();
method public static inline float degrees(float v);
- method public static inline float fract(float v);
- method public static inline float mix(float a, float b, float x);
method public static inline float radians(float v);
- method public static inline float sqr(float v);
field public static final float FOUR_PI = 12.566371f;
field public static final float HALF_PI = 1.5707964f;
field public static final float INV_FOUR_PI = 0.07957747f;
@@ -2688,12 +2634,6 @@
method public static inline operator androidx.ui.vectormath64.Vector2 minus(float, androidx.ui.vectormath64.Vector2 v);
method public static inline operator androidx.ui.vectormath64.Vector3 minus(float, androidx.ui.vectormath64.Vector3 v);
method public static inline operator androidx.ui.vectormath64.Vector4 minus(float, androidx.ui.vectormath64.Vector4 v);
- method public static inline androidx.ui.vectormath64.Vector2 mix(androidx.ui.vectormath64.Vector2 a, androidx.ui.vectormath64.Vector2 b, float x);
- method public static inline androidx.ui.vectormath64.Vector2 mix(androidx.ui.vectormath64.Vector2 a, androidx.ui.vectormath64.Vector2 b, androidx.ui.vectormath64.Vector2 x);
- method public static inline androidx.ui.vectormath64.Vector3 mix(androidx.ui.vectormath64.Vector3 a, androidx.ui.vectormath64.Vector3 b, float x);
- method public static inline androidx.ui.vectormath64.Vector3 mix(androidx.ui.vectormath64.Vector3 a, androidx.ui.vectormath64.Vector3 b, androidx.ui.vectormath64.Vector3 x);
- method public static inline androidx.ui.vectormath64.Vector4 mix(androidx.ui.vectormath64.Vector4 a, androidx.ui.vectormath64.Vector4 b, float x);
- method public static inline androidx.ui.vectormath64.Vector4 mix(androidx.ui.vectormath64.Vector4 a, androidx.ui.vectormath64.Vector4 b, androidx.ui.vectormath64.Vector4 x);
method public static androidx.ui.vectormath64.Vector2 normalize(androidx.ui.vectormath64.Vector2 v);
method public static androidx.ui.vectormath64.Vector3 normalize(androidx.ui.vectormath64.Vector3 v);
method public static androidx.ui.vectormath64.Vector4 normalize(androidx.ui.vectormath64.Vector4 v);
diff --git a/ui/ui-core/api/restricted_0.1.0-dev04.txt b/ui/ui-core/api/restricted_0.1.0-dev04.txt
index b39c0a1..6825a5a 100644
--- a/ui/ui-core/api/restricted_0.1.0-dev04.txt
+++ b/ui/ui-core/api/restricted_0.1.0-dev04.txt
@@ -1515,12 +1515,6 @@
property public abstract int width;
}
- public enum ImageByteFormat {
- enum_constant public static final androidx.ui.graphics.ImageByteFormat png;
- enum_constant public static final androidx.ui.graphics.ImageByteFormat rawRgba;
- enum_constant public static final androidx.ui.graphics.ImageByteFormat rawUnmodified;
- }
-
public enum ImageConfig {
enum_constant public static final androidx.ui.graphics.ImageConfig Alpha8;
enum_constant public static final androidx.ui.graphics.ImageConfig Argb8888;
@@ -1533,13 +1527,6 @@
ctor public ImageKt();
}
- public enum ImageRepeat {
- enum_constant public static final androidx.ui.graphics.ImageRepeat noRepeat;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeat;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeatX;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeatY;
- }
-
public final class LinearGradient extends androidx.ui.graphics.ShaderBrush {
method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode);
}
@@ -2161,43 +2148,6 @@
package androidx.ui.vectormath64 {
- public final class Matrix2 {
- ctor public Matrix2(androidx.ui.vectormath64.Vector2 x, androidx.ui.vectormath64.Vector2 y);
- ctor public Matrix2();
- ctor public Matrix2(androidx.ui.vectormath64.Matrix2 m);
- method public androidx.ui.vectormath64.Vector2 component1();
- method public androidx.ui.vectormath64.Vector2 component2();
- method public androidx.ui.vectormath64.Matrix2 copy(androidx.ui.vectormath64.Vector2 x, androidx.ui.vectormath64.Vector2 y);
- method public operator androidx.ui.vectormath64.Matrix2 dec();
- method public operator androidx.ui.vectormath64.Matrix2 div(float v);
- method public operator androidx.ui.vectormath64.Vector2 get(int column);
- method public operator float get(int column, int row);
- method public operator androidx.ui.vectormath64.Vector2 get(androidx.ui.vectormath64.MatrixColumn column);
- method public operator float get(androidx.ui.vectormath64.MatrixColumn column, int row);
- method public inline java.util.List<java.lang.Float> getM2storage();
- method public androidx.ui.vectormath64.Vector2 getX();
- method public androidx.ui.vectormath64.Vector2 getY();
- method public operator androidx.ui.vectormath64.Matrix2 inc();
- method public operator androidx.ui.vectormath64.Matrix2 minus(float v);
- method public operator androidx.ui.vectormath64.Matrix2 plus(float v);
- method public operator void set(int column, androidx.ui.vectormath64.Vector2 v);
- method public operator void set(int column, int row, float v);
- method public void setX(androidx.ui.vectormath64.Vector2 p);
- method public void setY(androidx.ui.vectormath64.Vector2 p);
- method public operator androidx.ui.vectormath64.Matrix2 times(float v);
- method public operator androidx.ui.vectormath64.Matrix2 times(androidx.ui.vectormath64.Matrix2 m);
- method public operator androidx.ui.vectormath64.Vector2 times(androidx.ui.vectormath64.Vector2 v);
- method public float[] toFloatArray();
- method public operator androidx.ui.vectormath64.Matrix2 unaryMinus();
- property public final inline java.util.List<java.lang.Float> m2storage;
- field public static final androidx.ui.vectormath64.Matrix2.Companion! Companion;
- }
-
- public static final class Matrix2.Companion {
- method public androidx.ui.vectormath64.Matrix2 identity();
- method public androidx.ui.vectormath64.Matrix2 of(float... a);
- }
-
public final class Matrix3 {
ctor public Matrix3(androidx.ui.vectormath64.Vector3 x, androidx.ui.vectormath64.Vector3 y, androidx.ui.vectormath64.Vector3 z);
ctor public Matrix3();
@@ -2360,7 +2310,6 @@
method public static androidx.ui.vectormath64.Matrix4 scale(androidx.ui.vectormath64.Matrix4 m);
method public static androidx.ui.vectormath64.Matrix4 translation(androidx.ui.vectormath64.Vector3 t);
method public static androidx.ui.vectormath64.Matrix4 translation(androidx.ui.vectormath64.Matrix4 m);
- method public static androidx.ui.vectormath64.Matrix2 transpose(androidx.ui.vectormath64.Matrix2 m);
method public static androidx.ui.vectormath64.Matrix3 transpose(androidx.ui.vectormath64.Matrix3 m);
method public static androidx.ui.vectormath64.Matrix4 transpose(androidx.ui.vectormath64.Matrix4 m);
}
@@ -2368,10 +2317,7 @@
public final class ScalarKt {
ctor public ScalarKt();
method public static inline float degrees(float v);
- method public static inline float fract(float v);
- method public static inline float mix(float a, float b, float x);
method public static inline float radians(float v);
- method public static inline float sqr(float v);
field public static final float FOUR_PI = 12.566371f;
field public static final float HALF_PI = 1.5707964f;
field public static final float INV_FOUR_PI = 0.07957747f;
@@ -2688,12 +2634,6 @@
method public static inline operator androidx.ui.vectormath64.Vector2 minus(float, androidx.ui.vectormath64.Vector2 v);
method public static inline operator androidx.ui.vectormath64.Vector3 minus(float, androidx.ui.vectormath64.Vector3 v);
method public static inline operator androidx.ui.vectormath64.Vector4 minus(float, androidx.ui.vectormath64.Vector4 v);
- method public static inline androidx.ui.vectormath64.Vector2 mix(androidx.ui.vectormath64.Vector2 a, androidx.ui.vectormath64.Vector2 b, float x);
- method public static inline androidx.ui.vectormath64.Vector2 mix(androidx.ui.vectormath64.Vector2 a, androidx.ui.vectormath64.Vector2 b, androidx.ui.vectormath64.Vector2 x);
- method public static inline androidx.ui.vectormath64.Vector3 mix(androidx.ui.vectormath64.Vector3 a, androidx.ui.vectormath64.Vector3 b, float x);
- method public static inline androidx.ui.vectormath64.Vector3 mix(androidx.ui.vectormath64.Vector3 a, androidx.ui.vectormath64.Vector3 b, androidx.ui.vectormath64.Vector3 x);
- method public static inline androidx.ui.vectormath64.Vector4 mix(androidx.ui.vectormath64.Vector4 a, androidx.ui.vectormath64.Vector4 b, float x);
- method public static inline androidx.ui.vectormath64.Vector4 mix(androidx.ui.vectormath64.Vector4 a, androidx.ui.vectormath64.Vector4 b, androidx.ui.vectormath64.Vector4 x);
method public static androidx.ui.vectormath64.Vector2 normalize(androidx.ui.vectormath64.Vector2 v);
method public static androidx.ui.vectormath64.Vector3 normalize(androidx.ui.vectormath64.Vector3 v);
method public static androidx.ui.vectormath64.Vector4 normalize(androidx.ui.vectormath64.Vector4 v);
diff --git a/ui/ui-core/api/restricted_current.txt b/ui/ui-core/api/restricted_current.txt
index b39c0a1..6825a5a 100644
--- a/ui/ui-core/api/restricted_current.txt
+++ b/ui/ui-core/api/restricted_current.txt
@@ -1515,12 +1515,6 @@
property public abstract int width;
}
- public enum ImageByteFormat {
- enum_constant public static final androidx.ui.graphics.ImageByteFormat png;
- enum_constant public static final androidx.ui.graphics.ImageByteFormat rawRgba;
- enum_constant public static final androidx.ui.graphics.ImageByteFormat rawUnmodified;
- }
-
public enum ImageConfig {
enum_constant public static final androidx.ui.graphics.ImageConfig Alpha8;
enum_constant public static final androidx.ui.graphics.ImageConfig Argb8888;
@@ -1533,13 +1527,6 @@
ctor public ImageKt();
}
- public enum ImageRepeat {
- enum_constant public static final androidx.ui.graphics.ImageRepeat noRepeat;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeat;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeatX;
- enum_constant public static final androidx.ui.graphics.ImageRepeat repeatY;
- }
-
public final class LinearGradient extends androidx.ui.graphics.ShaderBrush {
method public androidx.ui.graphics.LinearGradient copy(java.util.List<androidx.ui.graphics.Color> colors, java.util.List<java.lang.Float>? stops, androidx.ui.core.Px startX, androidx.ui.core.Px startY, androidx.ui.core.Px endX, androidx.ui.core.Px endY, androidx.ui.graphics.TileMode tileMode);
}
@@ -2161,43 +2148,6 @@
package androidx.ui.vectormath64 {
- public final class Matrix2 {
- ctor public Matrix2(androidx.ui.vectormath64.Vector2 x, androidx.ui.vectormath64.Vector2 y);
- ctor public Matrix2();
- ctor public Matrix2(androidx.ui.vectormath64.Matrix2 m);
- method public androidx.ui.vectormath64.Vector2 component1();
- method public androidx.ui.vectormath64.Vector2 component2();
- method public androidx.ui.vectormath64.Matrix2 copy(androidx.ui.vectormath64.Vector2 x, androidx.ui.vectormath64.Vector2 y);
- method public operator androidx.ui.vectormath64.Matrix2 dec();
- method public operator androidx.ui.vectormath64.Matrix2 div(float v);
- method public operator androidx.ui.vectormath64.Vector2 get(int column);
- method public operator float get(int column, int row);
- method public operator androidx.ui.vectormath64.Vector2 get(androidx.ui.vectormath64.MatrixColumn column);
- method public operator float get(androidx.ui.vectormath64.MatrixColumn column, int row);
- method public inline java.util.List<java.lang.Float> getM2storage();
- method public androidx.ui.vectormath64.Vector2 getX();
- method public androidx.ui.vectormath64.Vector2 getY();
- method public operator androidx.ui.vectormath64.Matrix2 inc();
- method public operator androidx.ui.vectormath64.Matrix2 minus(float v);
- method public operator androidx.ui.vectormath64.Matrix2 plus(float v);
- method public operator void set(int column, androidx.ui.vectormath64.Vector2 v);
- method public operator void set(int column, int row, float v);
- method public void setX(androidx.ui.vectormath64.Vector2 p);
- method public void setY(androidx.ui.vectormath64.Vector2 p);
- method public operator androidx.ui.vectormath64.Matrix2 times(float v);
- method public operator androidx.ui.vectormath64.Matrix2 times(androidx.ui.vectormath64.Matrix2 m);
- method public operator androidx.ui.vectormath64.Vector2 times(androidx.ui.vectormath64.Vector2 v);
- method public float[] toFloatArray();
- method public operator androidx.ui.vectormath64.Matrix2 unaryMinus();
- property public final inline java.util.List<java.lang.Float> m2storage;
- field public static final androidx.ui.vectormath64.Matrix2.Companion! Companion;
- }
-
- public static final class Matrix2.Companion {
- method public androidx.ui.vectormath64.Matrix2 identity();
- method public androidx.ui.vectormath64.Matrix2 of(float... a);
- }
-
public final class Matrix3 {
ctor public Matrix3(androidx.ui.vectormath64.Vector3 x, androidx.ui.vectormath64.Vector3 y, androidx.ui.vectormath64.Vector3 z);
ctor public Matrix3();
@@ -2360,7 +2310,6 @@
method public static androidx.ui.vectormath64.Matrix4 scale(androidx.ui.vectormath64.Matrix4 m);
method public static androidx.ui.vectormath64.Matrix4 translation(androidx.ui.vectormath64.Vector3 t);
method public static androidx.ui.vectormath64.Matrix4 translation(androidx.ui.vectormath64.Matrix4 m);
- method public static androidx.ui.vectormath64.Matrix2 transpose(androidx.ui.vectormath64.Matrix2 m);
method public static androidx.ui.vectormath64.Matrix3 transpose(androidx.ui.vectormath64.Matrix3 m);
method public static androidx.ui.vectormath64.Matrix4 transpose(androidx.ui.vectormath64.Matrix4 m);
}
@@ -2368,10 +2317,7 @@
public final class ScalarKt {
ctor public ScalarKt();
method public static inline float degrees(float v);
- method public static inline float fract(float v);
- method public static inline float mix(float a, float b, float x);
method public static inline float radians(float v);
- method public static inline float sqr(float v);
field public static final float FOUR_PI = 12.566371f;
field public static final float HALF_PI = 1.5707964f;
field public static final float INV_FOUR_PI = 0.07957747f;
@@ -2688,12 +2634,6 @@
method public static inline operator androidx.ui.vectormath64.Vector2 minus(float, androidx.ui.vectormath64.Vector2 v);
method public static inline operator androidx.ui.vectormath64.Vector3 minus(float, androidx.ui.vectormath64.Vector3 v);
method public static inline operator androidx.ui.vectormath64.Vector4 minus(float, androidx.ui.vectormath64.Vector4 v);
- method public static inline androidx.ui.vectormath64.Vector2 mix(androidx.ui.vectormath64.Vector2 a, androidx.ui.vectormath64.Vector2 b, float x);
- method public static inline androidx.ui.vectormath64.Vector2 mix(androidx.ui.vectormath64.Vector2 a, androidx.ui.vectormath64.Vector2 b, androidx.ui.vectormath64.Vector2 x);
- method public static inline androidx.ui.vectormath64.Vector3 mix(androidx.ui.vectormath64.Vector3 a, androidx.ui.vectormath64.Vector3 b, float x);
- method public static inline androidx.ui.vectormath64.Vector3 mix(androidx.ui.vectormath64.Vector3 a, androidx.ui.vectormath64.Vector3 b, androidx.ui.vectormath64.Vector3 x);
- method public static inline androidx.ui.vectormath64.Vector4 mix(androidx.ui.vectormath64.Vector4 a, androidx.ui.vectormath64.Vector4 b, float x);
- method public static inline androidx.ui.vectormath64.Vector4 mix(androidx.ui.vectormath64.Vector4 a, androidx.ui.vectormath64.Vector4 b, androidx.ui.vectormath64.Vector4 x);
method public static androidx.ui.vectormath64.Vector2 normalize(androidx.ui.vectormath64.Vector2 v);
method public static androidx.ui.vectormath64.Vector3 normalize(androidx.ui.vectormath64.Vector3 v);
method public static androidx.ui.vectormath64.Vector4 normalize(androidx.ui.vectormath64.Vector4 v);
diff --git a/ui/ui-core/src/main/java/androidx/ui/graphics/ImageByteFormat.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/ImageByteFormat.kt
deleted file mode 100644
index 47551be..0000000
--- a/ui/ui-core/src/main/java/androidx/ui/graphics/ImageByteFormat.kt
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2018 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.ui.graphics
-
-/**
- * The format in which image bytes should be returned when using
- * [Image.toByteData].
- */
-enum class ImageByteFormat {
- /**
- * Raw RGBA format.
- *
- * Unencoded bytes, in RGBA row-primary form, 8 bits per channel.
- */
- rawRgba,
-
- /**
- * Raw unmodified format.
- *
- * Unencoded bytes, in the image's existing format. For example, a grayscale
- * image may use a single 8-bit channel for each pixel.
- */
- rawUnmodified,
-
- /**
- * PNG format.
- *
- * A loss-less compression format for images. This format is well suited for
- * images with hard edges, such as screenshots or sprites, and images with
- * text. Transparency is supported. The PNG format supports images up to
- * 2,147,483,647 pixels in either dimension, though in practice available
- * memory provides a more immediate limitation on maximum image size.
- *
- * PNG images normally use the `.png` file extension and the `image/png` MIME
- * type.
- *
- * See also:
- *
- * * <https://en.wikipedia.org/wiki/Portable_Network_Graphics>, the Wikipedia page on PNG.
- * * <https://tools.ietf.org/rfc/rfc2083.txt>, the PNG standard.
- */
- png
-}
\ No newline at end of file
diff --git a/ui/ui-core/src/main/java/androidx/ui/graphics/ImageRepeat.kt b/ui/ui-core/src/main/java/androidx/ui/graphics/ImageRepeat.kt
deleted file mode 100644
index 31f1f01..0000000
--- a/ui/ui-core/src/main/java/androidx/ui/graphics/ImageRepeat.kt
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright 2018 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.ui.graphics
-
-/** How to paint any portions of a box not covered by an image. */
-enum class ImageRepeat {
- /** Repeat the image in both the x and y directions until the box is filled. */
- repeat,
-
- /** Repeat the image in the x direction until the box is filled horizontally. */
- repeatX,
-
- /** Repeat the image in the y direction until the box is filled vertically. */
- repeatY,
-
- /** Leave uncovered portions of the box transparent. */
- noRepeat
-}
\ No newline at end of file
diff --git a/ui/ui-core/src/main/java/androidx/ui/vectormath64/Matrix2.kt b/ui/ui-core/src/main/java/androidx/ui/vectormath64/Matrix2.kt
deleted file mode 100644
index e94f66e..0000000
--- a/ui/ui-core/src/main/java/androidx/ui/vectormath64/Matrix2.kt
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright 2018 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.ui.vectormath64
-
-data class Matrix2(
- var x: Vector2 = Vector2(x = 1.0f),
- var y: Vector2 = Vector2(y = 1.0f)
-) {
- constructor(m: Matrix2) : this(m.x.copy(), m.y.copy())
-
- companion object {
- fun of(vararg a: Float): Matrix2 {
- require(a.size >= 4)
- return Matrix2(
- Vector2(a[0], a[2]),
- Vector2(a[1], a[3])
- )
- }
-
- fun identity() = Matrix2()
- }
-
- inline val m2storage: List<Float>
- get() = x.v2storage + y.v2storage
-
- operator fun get(column: Int) = when (column) {
- 0 -> x
- 1 -> y
- else -> throw IllegalArgumentException("column must be in 0..1")
- }
- operator fun get(column: Int, row: Int) = get(column)[row]
-
- operator fun get(column: MatrixColumn) = when (column) {
- MatrixColumn.X -> x
- MatrixColumn.Y -> y
- else -> throw IllegalArgumentException("column must be X or Y")
- }
- operator fun get(column: MatrixColumn, row: Int) = get(column)[row]
-
- operator fun set(column: Int, v: Vector2) {
- this[column].xy = v
- }
- operator fun set(column: Int, row: Int, v: Float) {
- this[column][row] = v
- }
-
- operator fun unaryMinus() = Matrix2(-x, -y)
- operator fun inc() = Matrix2(this).apply {
- ++x
- ++y
- }
- operator fun dec() = Matrix2(this).apply {
- --x
- --y
- }
-
- operator fun plus(v: Float) = Matrix2(x + v, y + v)
- operator fun minus(v: Float) = Matrix2(x - v, y - v)
- operator fun times(v: Float) = Matrix2(x * v, y * v)
- operator fun div(v: Float) = Matrix2(x / v, y / v)
-
- operator fun times(m: Matrix2): Matrix2 {
- val t = transpose(this)
- return Matrix2(
- Vector2(dot(t.x, m.x), dot(t.y, m.x)),
- Vector2(dot(t.x, m.y), dot(t.y, m.y))
- )
- }
-
- operator fun times(v: Vector2): Vector2 {
- val t = transpose(this)
- return Vector2(dot(t.x, v), dot(t.y, v))
- }
-
- fun toFloatArray() = floatArrayOf(
- x.x, y.x,
- x.y, y.y
- )
-
- override fun toString(): String {
- return """
- |${x.x} ${y.x}|
- |${x.y} ${y.y}|
- """.trimIndent()
- }
-}
diff --git a/ui/ui-core/src/main/java/androidx/ui/vectormath64/MatrixExtensions.kt b/ui/ui-core/src/main/java/androidx/ui/vectormath64/MatrixExtensions.kt
index f4631a1..b1feb1c 100644
--- a/ui/ui-core/src/main/java/androidx/ui/vectormath64/MatrixExtensions.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/vectormath64/MatrixExtensions.kt
@@ -19,11 +19,6 @@
import kotlin.math.sin
import kotlin.math.tan
-fun transpose(m: Matrix2) = Matrix2(
- Vector2(m.x.x, m.y.x),
- Vector2(m.x.y, m.y.y)
-)
-
fun transpose(m: Matrix3) = Matrix3(
Vector3(m.x.x, m.y.x, m.z.x),
Vector3(m.x.y, m.y.y, m.z.y),
diff --git a/ui/ui-core/src/main/java/androidx/ui/vectormath64/Scalar.kt b/ui/ui-core/src/main/java/androidx/ui/vectormath64/Scalar.kt
index 1e9c3cb..84e7660 100644
--- a/ui/ui-core/src/main/java/androidx/ui/vectormath64/Scalar.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/vectormath64/Scalar.kt
@@ -25,12 +25,6 @@
const val INV_TWO_PI = INV_PI * 0.5f
const val INV_FOUR_PI = INV_PI * 0.25f
-inline fun mix(a: Float, b: Float, x: Float) = a * (1.0f - x) + b * x
-
inline fun degrees(v: Float) = v * (180.0f * INV_PI)
inline fun radians(v: Float) = v * (PI / 180.0f)
-
-inline fun fract(v: Float) = v % 1
-
-inline fun sqr(v: Float) = v * v
diff --git a/ui/ui-core/src/main/java/androidx/ui/vectormath64/VectorExtensions.kt b/ui/ui-core/src/main/java/androidx/ui/vectormath64/VectorExtensions.kt
index 9957019..a5d2b2c 100644
--- a/ui/ui-core/src/main/java/androidx/ui/vectormath64/VectorExtensions.kt
+++ b/ui/ui-core/src/main/java/androidx/ui/vectormath64/VectorExtensions.kt
@@ -39,7 +39,7 @@
inline fun reflect(i: Vector2, n: Vector2) = i - 2.0f * dot(n, i) * n
fun refract(i: Vector2, n: Vector2, eta: Float): Vector2 {
val d = dot(n, i)
- val k = 1.0f - eta * eta * (1.0f - sqr(d))
+ val k = 1.0f - eta * eta * (1.0f - (d * d))
return if (k < 0.0f) Vector2(0.0f) else eta * i - (eta * d + sqrt(k)) * n
}
@@ -57,18 +57,6 @@
)
}
-inline fun mix(a: Vector2, b: Vector2, x: Float): Vector2 {
- return Vector2(
- mix(a.x, b.x, x),
- mix(a.y, b.y, x))
-}
-
-inline fun mix(a: Vector2, b: Vector2, x: Vector2): Vector2 {
- return Vector2(
- mix(a.x, b.x, x.x),
- mix(a.y, b.y, x.y))
-}
-
inline fun min(v: Vector2) = min(v.x, v.y)
inline fun min(a: Vector2, b: Vector2) = Vector2(min(a.x, b.x), min(a.y, b.y))
inline fun max(v: Vector2) = max(v.x, v.y)
@@ -100,7 +88,7 @@
inline fun reflect(i: Vector3, n: Vector3) = i - 2.0f * dot(n, i) * n
fun refract(i: Vector3, n: Vector3, eta: Float): Vector3 {
val d = dot(n, i)
- val k = 1.0f - eta * eta * (1.0f - sqr(d))
+ val k = 1.0f - eta * eta * (1.0f - (d * d))
return if (k < 0.0f) Vector3(0.0f) else eta * i - (eta * d + sqrt(k)) * n
}
@@ -120,20 +108,6 @@
)
}
-inline fun mix(a: Vector3, b: Vector3, x: Float): Vector3 {
- return Vector3(
- mix(a.x, b.x, x),
- mix(a.y, b.y, x),
- mix(a.z, b.z, x))
-}
-
-inline fun mix(a: Vector3, b: Vector3, x: Vector3): Vector3 {
- return Vector3(
- mix(a.x, b.x, x.x),
- mix(a.y, b.y, x.y),
- mix(a.z, b.z, x.z))
-}
-
inline fun min(v: Vector3) = min(v.x, min(v.y, v.z))
inline fun min(a: Vector3, b: Vector3) = Vector3(min(a.x, b.x), min(a.y, b.y), min(a.z, b.z))
inline fun max(v: Vector3) = max(v.x, max(v.y, v.z))
@@ -177,22 +151,6 @@
)
}
-inline fun mix(a: Vector4, b: Vector4, x: Float): Vector4 {
- return Vector4(
- mix(a.x, b.x, x),
- mix(a.y, b.y, x),
- mix(a.z, b.z, x),
- mix(a.w, b.w, x))
-}
-
-inline fun mix(a: Vector4, b: Vector4, x: Vector4): Vector4 {
- return Vector4(
- mix(a.x, b.x, x.x),
- mix(a.y, b.y, x.y),
- mix(a.z, b.z, x.z),
- mix(a.w, b.w, x.w))
-}
-
inline fun min(v: Vector4) = min(v.x, min(v.y, min(v.z, v.w)))
inline fun min(a: Vector4, b: Vector4): Vector4 {
return Vector4(min(a.x, b.x), min(a.y, b.y), min(a.z, b.z), min(a.w, b.w))
diff --git a/ui/ui-framework/src/main/java/androidx/ui/core/selection/Selection.kt b/ui/ui-framework/src/main/java/androidx/ui/core/selection/Selection.kt
index 0b8bacd..242e6cc 100644
--- a/ui/ui-framework/src/main/java/androidx/ui/core/selection/Selection.kt
+++ b/ui/ui-framework/src/main/java/androidx/ui/core/selection/Selection.kt
@@ -92,7 +92,7 @@
selection = selection.copy(end = other.end)
}
- selection = selection.copy(handlesCrossed = this.handlesCrossed || other.handlesCrossed)
+ selection = selection.copy(handlesCrossed = other.handlesCrossed)
return selection
}
diff --git a/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionTest.kt b/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionTest.kt
index 879900b..4a4a616 100644
--- a/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionTest.kt
+++ b/ui/ui-framework/src/test/java/androidx/ui/core/selection/SelectionTest.kt
@@ -197,6 +197,63 @@
}
@Test
+ fun selection_handles_crossed_to_not_crossed() {
+ val startOffset1 = 20
+ val endOffset1 = 9
+ val startCoordinates1 = PxPosition(50.px, 50.px)
+ val endCoordinates1 = PxPosition(20.px, 20.px)
+ val layoutCoordinates: LayoutCoordinates = mock()
+ val startAnchor1 = Selection.AnchorInfo(
+ coordinates = startCoordinates1,
+ direction = TextDirection.Ltr,
+ offset = startOffset1,
+ layoutCoordinates = layoutCoordinates
+ )
+ val endAnchor1 = Selection.AnchorInfo(
+ coordinates = endCoordinates1,
+ direction = TextDirection.Ltr,
+ offset = endOffset1,
+ layoutCoordinates = layoutCoordinates
+ )
+ val oldSelection = Selection(
+ start = startAnchor1,
+ end = endAnchor1,
+ handlesCrossed = true
+ )
+ val startOffset2 = 0
+ val endOffset2 = 30
+ val startCoordinates2 = PxPosition(0.px, 20.px)
+ val endCoordinates2 = PxPosition(50.px, 300.px)
+ val startAnchor2 = Selection.AnchorInfo(
+ coordinates = startCoordinates2,
+ direction = TextDirection.Ltr,
+ offset = startOffset2,
+ layoutCoordinates = layoutCoordinates
+ )
+ val endAnchor2 = Selection.AnchorInfo(
+ coordinates = endCoordinates2,
+ direction = TextDirection.Ltr,
+ offset = endOffset2,
+ layoutCoordinates = layoutCoordinates
+ )
+ val newSelection = Selection(
+ start = startAnchor2,
+ end = endAnchor2,
+ handlesCrossed = false
+ )
+
+ val selection = oldSelection.merge(newSelection)
+
+ assertThat(selection.start.offset).isEqualTo(startOffset2)
+ assertThat(selection.end.offset).isEqualTo(endOffset2)
+ assertThat(selection.start.coordinates).isEqualTo(startCoordinates2)
+ assertThat(selection.end.coordinates).isEqualTo(endCoordinates2)
+ assertThat(selection.start.layoutCoordinates).isEqualTo(layoutCoordinates)
+ assertThat(selection.end.layoutCoordinates).isEqualTo(layoutCoordinates)
+ assertThat(selection.handlesCrossed).isFalse()
+ }
+
+ @Test
fun selection_toTextRange_handles_not_cross() {
val startOffset = 0
val endOffset = 6
diff --git a/webkit/integration-tests/testapp/src/main/AndroidManifest.xml b/webkit/integration-tests/testapp/src/main/AndroidManifest.xml
index 845bc22..9e80901 100644
--- a/webkit/integration-tests/testapp/src/main/AndroidManifest.xml
+++ b/webkit/integration-tests/testapp/src/main/AndroidManifest.xml
@@ -108,5 +108,8 @@
<activity
android:name=".WebMessageListenerActivity"
android:exported="true" />
+ <activity
+ android:name=".WebMessageListenerMaliciousWebsiteActivity"
+ android:exported="true" />
</application>
</manifest>
diff --git a/webkit/integration-tests/testapp/src/main/assets/www/web_message_listener_demo.js b/webkit/integration-tests/testapp/src/main/assets/www/web_message_listener_demo.js
new file mode 100644
index 0000000..67e5a82
--- /dev/null
+++ b/webkit/integration-tests/testapp/src/main/assets/www/web_message_listener_demo.js
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2019 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.
+ */
+allFramesObject.onmessage = function(event) {
+ document.getElementById('reply_message').innerText = event.data;
+}
+function sendMessage(e) {
+ e.preventDefault();
+ const message = document.getElementById("send_message").value;
+ allFramesObject.postMessage(message);
+}
+function checkForObject(objectName, elementId) {
+ var verb = window.hasOwnProperty(objectName) ? "do" : "don't";
+ var element = document.getElementById(elementId);
+ element.innerText = `I ${verb} have access to ${objectName}`;
+}
+function detectObjects(event) {
+ checkForObject('restrictedObject', 'restricted_object_result');
+ checkForObject('allFramesObject', 'all_frames_object_result');
+}
+window.addEventListener("DOMContentLoaded", detectObjects);
diff --git a/webkit/integration-tests/testapp/src/main/assets/www/web_message_listener_genuine.html b/webkit/integration-tests/testapp/src/main/assets/www/web_message_listener_genuine.html
new file mode 100644
index 0000000..0d43a5f
--- /dev/null
+++ b/webkit/integration-tests/testapp/src/main/assets/www/web_message_listener_genuine.html
@@ -0,0 +1,30 @@
+<html>
+<!-- Copyright 2019 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.
+-->
+<head>
+ <script src="https://example.com/androidx_webkit/example/assets/www/web_message_listener_demo.js">
+ </script>
+</head>
+<body>
+ <h1>example.com.</h1>
+ <div id="restricted_object_result" style="color:red">Detecting...</div>
+ <div id="all_frames_object_result" style="color:red">Detecting...</div>
+ <div>
+ <input value="ping!" id="send_message">
+ <button type="button" onclick="sendMessage(event)">Send Message</button>
+ <div id='reply_message'></div>
+ </div>
+</body>
+</html>
diff --git a/webkit/integration-tests/testapp/src/main/assets/www/web_message_listener_malicious.html b/webkit/integration-tests/testapp/src/main/assets/www/web_message_listener_malicious.html
new file mode 100644
index 0000000..07cd7ce
--- /dev/null
+++ b/webkit/integration-tests/testapp/src/main/assets/www/web_message_listener_malicious.html
@@ -0,0 +1,34 @@
+<html>
+<!-- Copyright 2019 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.
+-->
+<head>
+ <script src="https://malicious.com/androidx_webkit/example/assets/www/web_message_listener_demo.js">
+ </script>
+</head>
+<body>
+ <h1>malicious.com.</h1>
+ <p>A malicious website may try to iframe a well-meaning website.</p>
+ <div id="restricted_object_result" style="color:red">Detecting...</div>
+ <div id="all_frames_object_result" style="color:red">Detecting...</div>
+ <div>
+ <input value="ping!" id="send_message">
+ <button type="button" onclick="sendMessage(event)">Send Message</button>
+ <div id='reply_message'></div>
+ </div>
+ <iframe src="https://example.com/androidx_webkit/example/assets/www/web_message_listener_genuine.html"
+ height="200" style="margin: 30px">
+ </iframe>
+</body>
+</html>
diff --git a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/JsJavaInteractionActivity.java b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/JsJavaInteractionActivity.java
index 5f58f3e..a6ddade 100644
--- a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/JsJavaInteractionActivity.java
+++ b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/JsJavaInteractionActivity.java
@@ -42,6 +42,11 @@
new MenuListView.MenuItem(
getResources().getString(R.string.web_message_listener_activity_title),
new Intent(activityContext, WebMessageListenerActivity.class)),
+ new MenuListView.MenuItem(
+ getResources().getString(
+ R.string.web_message_listener_malicious_website_activity_title),
+ new Intent(
+ activityContext, WebMessageListenerMaliciousWebsiteActivity.class)),
};
listView.setItems(menuItems);
}
diff --git a/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/WebMessageListenerMaliciousWebsiteActivity.java b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/WebMessageListenerMaliciousWebsiteActivity.java
new file mode 100644
index 0000000..d23e6f7
--- /dev/null
+++ b/webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/WebMessageListenerMaliciousWebsiteActivity.java
@@ -0,0 +1,171 @@
+/*
+ * Copyright 2019 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 com.example.androidx.webkit;
+
+import static androidx.webkit.WebViewAssetLoader.AssetsPathHandler;
+
+import android.annotation.SuppressLint;
+import android.app.Activity;
+import android.content.Context;
+import android.net.Uri;
+import android.os.Bundle;
+import android.webkit.WebResourceRequest;
+import android.webkit.WebResourceResponse;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+import android.widget.Toast;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.webkit.JsReplyProxy;
+import androidx.webkit.WebMessageCompat;
+import androidx.webkit.WebViewAssetLoader;
+import androidx.webkit.WebViewCompat;
+import androidx.webkit.WebViewFeature;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * An {@link Activity} to show how WebMessageListener deals with malicious websites.
+ */
+@SuppressLint("RestrictedApi")
+public class WebMessageListenerMaliciousWebsiteActivity extends AppCompatActivity {
+ private final Uri mMaliciousUrl = new Uri.Builder()
+ .scheme("https")
+ .authority("malicious.com")
+ .appendPath("androidx_webkit")
+ .appendPath("example")
+ .appendPath("assets")
+ .build();
+
+ private static class MyWebViewClient extends WebViewClient {
+ private final WebViewAssetLoader[] mAssetLoaders;
+
+ MyWebViewClient(WebViewAssetLoader[] loaders) {
+ mAssetLoaders = loaders;
+ }
+
+ @Override
+ @RequiresApi(21)
+ public WebResourceResponse shouldInterceptRequest(
+ WebView view, WebResourceRequest request) {
+ for (WebViewAssetLoader loader : mAssetLoaders) {
+ WebResourceResponse response = loader.shouldInterceptRequest(request.getUrl());
+ if (response != null) {
+ return response;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ @SuppressWarnings("deprecation") // use the old one for compatibility with all API levels.
+ public WebResourceResponse shouldInterceptRequest(WebView view, String request) {
+ for (WebViewAssetLoader loader : mAssetLoaders) {
+ WebResourceResponse response = loader.shouldInterceptRequest(Uri.parse(request));
+ if (response != null) {
+ return response;
+ }
+ }
+ return null;
+ }
+ }
+
+ private static class AvailableInAllowedOriginsFrameMessageListener
+ implements WebViewCompat.WebMessageListener {
+ @Override
+ public void onPostMessage(WebView view, WebMessageCompat message, Uri sourceOrigin,
+ boolean isMainFrame, JsReplyProxy replyProxy) {
+ replyProxy.postMessage("Hello");
+ }
+ }
+
+ private static class AvailableInAllFramesMessageListener
+ implements WebViewCompat.WebMessageListener {
+ private final Context mContext;
+ private final List<String> mBadAuthorities;
+
+ AvailableInAllFramesMessageListener(Context context, List<String> badAuthorities) {
+ mContext = context;
+ mBadAuthorities = badAuthorities;
+ }
+
+ @Override
+ public void onPostMessage(WebView view, WebMessageCompat message, Uri sourceOrigin,
+ boolean isMainFrame, JsReplyProxy replyProxy) {
+ for (String badAuthority : mBadAuthorities) {
+ if (sourceOrigin.getAuthority().equals(badAuthority)) {
+ Toast.makeText(mContext, "Message from known bad website, no response.",
+ Toast.LENGTH_SHORT)
+ .show();
+ return;
+ }
+ }
+ replyProxy.postMessage("Reply from app for " + message.getData());
+ }
+ }
+
+ @SuppressLint("SetJavascriptEnabled")
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_web_message_listener_malicious_website);
+ setTitle(R.string.web_message_listener_malicious_website_activity_title);
+ WebkitHelpers.appendWebViewVersionToTitle(this);
+
+ if (!WebViewFeature.isFeatureSupported(WebViewFeature.WEB_MESSAGE_LISTENER)) {
+ WebkitHelpers.showMessageInActivity(WebMessageListenerMaliciousWebsiteActivity.this,
+ R.string.webkit_api_not_available);
+ return;
+ }
+
+ // Use WebViewAssetLoader to load html page from app's assets.
+ WebViewAssetLoader assetLoaderMalicious =
+ new WebViewAssetLoader.Builder()
+ .setDomain("malicious.com")
+ .addPathHandler(mMaliciousUrl.getPath() + "/", new AssetsPathHandler(this))
+ .build();
+ WebViewAssetLoader assetLoaderGenuine =
+ new WebViewAssetLoader.Builder()
+ .setDomain("example.com")
+ .addPathHandler(
+ "/androidx_webkit/example/assets/", new AssetsPathHandler(this))
+ .build();
+
+ WebView webView = findViewById(R.id.webview);
+ webView.setWebViewClient(new MyWebViewClient(
+ new WebViewAssetLoader[] {assetLoaderMalicious, assetLoaderGenuine}));
+ webView.getSettings().setJavaScriptEnabled(true);
+
+ // If you only intend to communicate with a limited number of origins, prefer only injecting
+ // the listener in those frames.
+ WebViewCompat.addWebMessageListener(webView, "restrictedObject",
+ Arrays.asList("https://example.com"),
+ new AvailableInAllowedOriginsFrameMessageListener());
+
+ // If you need to communicate with a wider set of origins but are aware of some origins
+ // matching your filter that you need to block communication with, you can check the sending
+ // frame's origin on the Java side in onPostMessage().
+ WebViewCompat.addWebMessageListener(webView, "allFramesObject", Arrays.asList("*"),
+ new AvailableInAllFramesMessageListener(this, Arrays.asList("malicious.com")));
+
+ webView.loadUrl(
+ Uri.withAppendedPath(mMaliciousUrl, "www/web_message_listener_malicious.html")
+ .toString());
+ }
+}
diff --git a/webkit/integration-tests/testapp/src/main/res/layout/activity_web_message_listener_malicious_website.xml b/webkit/integration-tests/testapp/src/main/res/layout/activity_web_message_listener_malicious_website.xml
new file mode 100644
index 0000000..90b0b8a
--- /dev/null
+++ b/webkit/integration-tests/testapp/src/main/res/layout/activity_web_message_listener_malicious_website.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2019 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.
+-->
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:id="@+id/activity_web_message_listener"
+ android:orientation="vertical"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+ <WebView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/webview"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+</LinearLayout>
diff --git a/webkit/integration-tests/testapp/src/main/res/values/strings.xml b/webkit/integration-tests/testapp/src/main/res/values/strings.xml
index d955806..e0cf5b1 100644
--- a/webkit/integration-tests/testapp/src/main/res/values/strings.xml
+++ b/webkit/integration-tests/testapp/src/main/res/values/strings.xml
@@ -72,4 +72,5 @@
<string name="fullscreen_activity_title">Fullscreen web contents Demo</string>
<string name="js_java_interaction_activity_title">JavaScript - Java communication</string>
<string name="web_message_listener_activity_title">WebMessageListener Demo</string>
+ <string name="web_message_listener_malicious_website_activity_title">Malicious Website Demo</string>
</resources>