diff --git a/README.md b/README.md index 21515bacb8..1e22765f50 100644 --- a/README.md +++ b/README.md @@ -22,14 +22,6 @@ Workflow is: * A corresponding testing framework that facilitates simple-to-write unit tests for all application business logic and helps ensure correctness. -_**1.0.0-rc is ready and the core is stable. There are still experimental /** -**under construction areas of the API for UI integration however.** -These classes and functions are marked with `@WorkflowUIExperimentalApi`. -They are suitable for production use (we've been shipping them for months -at the very heart of our flagship app), but may require signature tweaks as -we iterate a bit more on Dialog management, and configuring transition effects. -If they do change, we will take care to minimize the impact via deprecation, etc._ - ## Using Workflows in your project ### Maven Artifacts diff --git a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/MaybeLoadingGatekeeperWorkflow.kt b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/MaybeLoadingGatekeeperWorkflow.kt index cc3db76db6..a9d5074a90 100644 --- a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/MaybeLoadingGatekeeperWorkflow.kt +++ b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/MaybeLoadingGatekeeperWorkflow.kt @@ -10,12 +10,10 @@ import com.squareup.workflow1.StatefulWorkflow import com.squareup.workflow1.Workflow import com.squareup.workflow1.action import com.squareup.workflow1.runningWorker -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import kotlinx.coroutines.flow.Flow typealias IsLoading = Boolean -@OptIn(WorkflowUiExperimentalApi::class) class MaybeLoadingGatekeeperWorkflow( private val childWithLoading: Workflow>, private val childProps: T, diff --git a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoemWorkflow.kt b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoemWorkflow.kt index 78e9380cea..4cf26dc7c9 100644 --- a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoemWorkflow.kt +++ b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoemWorkflow.kt @@ -32,7 +32,6 @@ import com.squareup.workflow1.WorkflowAction import com.squareup.workflow1.WorkflowAction.Companion.noAction import com.squareup.workflow1.action import com.squareup.workflow1.runningWorker -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BackStackScreen import com.squareup.workflow1.ui.navigation.toBackStackScreen import kotlinx.coroutines.delay @@ -94,7 +93,6 @@ class PerformancePoemWorkflow( } } - @OptIn(WorkflowUiExperimentalApi::class) override fun render( renderProps: Poem, renderState: State, diff --git a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoemsBrowserWorkflow.kt b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoemsBrowserWorkflow.kt index d731086f55..da2ab87b42 100644 --- a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoemsBrowserWorkflow.kt +++ b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoemsBrowserWorkflow.kt @@ -24,7 +24,6 @@ import com.squareup.workflow1.StatefulWorkflow import com.squareup.workflow1.WorkflowAction.Companion.noAction import com.squareup.workflow1.action import com.squareup.workflow1.runningWorker -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BackStackScreen import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableStateFlow @@ -84,7 +83,6 @@ class PerformancePoemsBrowserWorkflow( } } - @OptIn(WorkflowUiExperimentalApi::class) override fun render( renderProps: ConfigAndPoems, renderState: State, diff --git a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoetryActivity.kt b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoetryActivity.kt index 3cabb94f18..e68a33a9fc 100644 --- a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoetryActivity.kt +++ b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/PerformancePoetryActivity.kt @@ -22,13 +22,11 @@ import com.squareup.sample.container.SampleContainers import com.squareup.sample.poetry.model.Poem import com.squareup.workflow1.RuntimeConfig import com.squareup.workflow1.RuntimeConfigOptions.Companion.RENDER_PER_ACTION -import com.squareup.workflow1.WorkflowExperimentalRuntime import com.squareup.workflow1.WorkflowInterceptor import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ViewEnvironment.Companion.EMPTY import com.squareup.workflow1.ui.ViewRegistry import com.squareup.workflow1.ui.WorkflowLayout -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.renderWorkflowIn import com.squareup.workflow1.ui.withEnvironment import kotlinx.coroutines.flow.StateFlow @@ -36,7 +34,6 @@ import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.onEach import timber.log.Timber -@OptIn(WorkflowUiExperimentalApi::class) private val viewEnvironment = EMPTY + (ViewRegistry to SampleContainers) class PerformancePoetryActivity : AppCompatActivity() { @@ -53,7 +50,6 @@ class PerformancePoetryActivity : AppCompatActivity() { private var selectTimeoutCount = 0 private var selectTimeoutMainThreadMessageLatch = 0 - @OptIn(WorkflowUiExperimentalApi::class, WorkflowExperimentalRuntime::class) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -164,7 +160,6 @@ class PerformancePoetryActivity : AppCompatActivity() { } } - @OptIn(WorkflowUiExperimentalApi::class) private fun traceRenderingLatency(screen: Screen) { // Start the trace sections for new rendering produced -> shown. val navigationHolder = navigationInFlight @@ -269,7 +264,6 @@ class PoetryModel( interceptor: WorkflowInterceptor?, runtimeConfig: RuntimeConfig ) : ViewModel() { - @OptIn(WorkflowUiExperimentalApi::class) val renderings: StateFlow by lazy { renderWorkflowIn( workflow = workflow, diff --git a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/views/BlankScreen.kt b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/views/BlankScreen.kt index a70fb28da9..077c83548e 100644 --- a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/views/BlankScreen.kt +++ b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/views/BlankScreen.kt @@ -6,9 +6,7 @@ import android.widget.FrameLayout import com.squareup.workflow1.ui.AndroidScreen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewHolder -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) object BlankScreen : AndroidScreen { override val viewFactory: ScreenViewFactory get() = ScreenViewFactory.fromCode { _, initialEnvironment, context, container -> diff --git a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/views/LoaderSpinner.kt b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/views/LoaderSpinner.kt index 279f6d7532..853fa65f06 100644 --- a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/views/LoaderSpinner.kt +++ b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/views/LoaderSpinner.kt @@ -9,9 +9,7 @@ import com.squareup.benchmarks.performance.complex.poetry.R import com.squareup.workflow1.ui.AndroidScreen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewHolder -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) object LoaderSpinner : AndroidScreen { override val viewFactory = ScreenViewFactory.fromCode { _, initialEnvironment, context, _ -> diff --git a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/views/MayBeLoadingScreen.kt b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/views/MayBeLoadingScreen.kt index 6f10ade41b..2545f22e7b 100644 --- a/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/views/MayBeLoadingScreen.kt +++ b/benchmarks/performance-poetry/complex-poetry/src/main/java/com/squareup/benchmarks/performance/complex/poetry/views/MayBeLoadingScreen.kt @@ -2,15 +2,12 @@ package com.squareup.benchmarks.performance.complex.poetry.views import com.squareup.sample.container.overviewdetail.OverviewDetailScreen import com.squareup.sample.container.panel.ScrimScreen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BodyAndOverlaysScreen import com.squareup.workflow1.ui.navigation.FullScreenModal -@OptIn(WorkflowUiExperimentalApi::class) typealias MayBeLoadingScreen = BodyAndOverlaysScreen>, FullScreenModal> -@OptIn(WorkflowUiExperimentalApi::class) fun MayBeLoadingScreen( baseScreen: OverviewDetailScreen<*>, loaders: List = emptyList() diff --git a/fileTemplates/Layout Runner (ViewBinding).kt b/fileTemplates/Layout Runner (ViewBinding).kt deleted file mode 100644 index 9b0f3af2ce..0000000000 --- a/fileTemplates/Layout Runner (ViewBinding).kt +++ /dev/null @@ -1,27 +0,0 @@ -## Unlike the Workflow Templates, we never generate inner classes for view bindings -## or rendering types. i.e. they are never "optional" -package ${PACKAGE_NAME} - -import com.squareup.workflow1.ui.LayoutRunner -import com.squareup.workflow1.ui.LayoutRunner.Companion.bind -import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.ViewFactory -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi - -#parse("File Header.java") -@OptIn(WorkflowUiExperimentalApi::class) -class $Name( - private val binding: $VIEW_BINDING_TYPE -) : LayoutRunner<$RENDERING_TYPE> { - - override fun showRendering( - rendering: $RENDERING_TYPE, - viewEnvironment: ViewEnvironment - ) { - TODO("Update ViewBinding from rendering") - } - - companion object : ViewFactory<$RENDERING_TYPE> by bind( - $VIEW_BINDING_TYPE::inflate, ::$NAME - ) -} diff --git a/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/hellocompose/HelloComposeTest.kt b/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/hellocompose/HelloComposeTest.kt index f90aea904e..053a775bf6 100644 --- a/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/hellocompose/HelloComposeTest.kt +++ b/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/hellocompose/HelloComposeTest.kt @@ -5,7 +5,6 @@ import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import androidx.test.ext.junit.runners.AndroidJUnit4 -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.internal.test.IdleAfterTestRule import com.squareup.workflow1.ui.internal.test.IdlingDispatcherRule import com.squareup.workflow1.ui.internal.test.compose.settleForNextRendering @@ -18,7 +17,6 @@ import org.junit.rules.RuleChain import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) -@OptIn(WorkflowUiExperimentalApi::class) class HelloComposeTest { private val composeRule = createAndroidComposeRule() diff --git a/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/hellocomposebinding/HelloBindingTest.kt b/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/hellocomposebinding/HelloBindingTest.kt index a79a295d92..138f474e59 100644 --- a/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/hellocomposebinding/HelloBindingTest.kt +++ b/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/hellocomposebinding/HelloBindingTest.kt @@ -5,7 +5,6 @@ import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import androidx.test.ext.junit.runners.AndroidJUnit4 -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.internal.test.IdleAfterTestRule import com.squareup.workflow1.ui.internal.test.IdlingDispatcherRule import leakcanary.DetectLeaksAfterTestSuccess @@ -15,7 +14,6 @@ import org.junit.rules.RuleChain import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) -@OptIn(WorkflowUiExperimentalApi::class) class HelloBindingTest { private val composeRule = createAndroidComposeRule() diff --git a/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/hellocomposeworkflow/HelloComposeWorkflowTest.kt b/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/hellocomposeworkflow/HelloComposeWorkflowTest.kt index fb9e131c1f..4f46eba657 100644 --- a/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/hellocomposeworkflow/HelloComposeWorkflowTest.kt +++ b/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/hellocomposeworkflow/HelloComposeWorkflowTest.kt @@ -5,7 +5,6 @@ import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import androidx.test.ext.junit.runners.AndroidJUnit4 -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.internal.test.IdleAfterTestRule import com.squareup.workflow1.ui.internal.test.IdlingDispatcherRule import leakcanary.DetectLeaksAfterTestSuccess @@ -15,7 +14,6 @@ import org.junit.rules.RuleChain import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) -@OptIn(WorkflowUiExperimentalApi::class) class HelloComposeWorkflowTest { private val composeRule = createAndroidComposeRule() diff --git a/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/inlinerendering/InlineRenderingTest.kt b/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/inlinerendering/InlineRenderingTest.kt index b6e3566ed2..37e6ed4371 100644 --- a/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/inlinerendering/InlineRenderingTest.kt +++ b/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/inlinerendering/InlineRenderingTest.kt @@ -6,7 +6,6 @@ import androidx.compose.ui.test.hasClickAction import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.compose.ui.test.performClick import androidx.test.ext.junit.runners.AndroidJUnit4 -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.internal.test.IdleAfterTestRule import com.squareup.workflow1.ui.internal.test.IdlingDispatcherRule import com.squareup.workflow1.ui.internal.test.compose.settleForNextRendering @@ -19,7 +18,6 @@ import org.junit.rules.RuleChain import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) -@OptIn(WorkflowUiExperimentalApi::class) class InlineRenderingTest { private val composeRule = createAndroidComposeRule() diff --git a/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/launcher/SampleLauncherTest.kt b/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/launcher/SampleLauncherTest.kt index cd0a22f3c1..67e9a36570 100644 --- a/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/launcher/SampleLauncherTest.kt +++ b/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/launcher/SampleLauncherTest.kt @@ -10,7 +10,6 @@ import androidx.test.espresso.Espresso.pressBack import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry import com.squareup.sample.compose.R -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.internal.test.IdleAfterTestRule import com.squareup.workflow1.ui.internal.test.IdlingDispatcherRule import leakcanary.DetectLeaksAfterTestSuccess @@ -20,7 +19,6 @@ import org.junit.rules.RuleChain import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) -@OptIn(WorkflowUiExperimentalApi::class) class SampleLauncherTest { private val composeRule = createAndroidComposeRule() diff --git a/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/nestedrenderings/NestedRenderingsTest.kt b/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/nestedrenderings/NestedRenderingsTest.kt index 3a1376f94b..3577954682 100644 --- a/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/nestedrenderings/NestedRenderingsTest.kt +++ b/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/nestedrenderings/NestedRenderingsTest.kt @@ -9,7 +9,6 @@ import androidx.compose.ui.test.onAllNodesWithText import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import androidx.test.ext.junit.runners.AndroidJUnit4 -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.internal.test.IdleAfterTestRule import com.squareup.workflow1.ui.internal.test.IdlingDispatcherRule import leakcanary.DetectLeaksAfterTestSuccess @@ -21,7 +20,6 @@ import org.junit.runner.RunWith private const val ADD_BUTTON_TEXT = "Add Child" @RunWith(AndroidJUnit4::class) -@OptIn(WorkflowUiExperimentalApi::class) class NestedRenderingsTest { private val composeRule = createAndroidComposeRule() diff --git a/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/preview/PreviewTest.kt b/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/preview/PreviewTest.kt index ec222c5fdb..52fcabcbf6 100644 --- a/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/preview/PreviewTest.kt +++ b/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/preview/PreviewTest.kt @@ -5,7 +5,6 @@ import androidx.compose.ui.test.assertTextContains import androidx.compose.ui.test.junit4.createAndroidComposeRule import androidx.compose.ui.test.onNodeWithText import androidx.test.ext.junit.runners.AndroidJUnit4 -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.internal.test.IdleAfterTestRule import com.squareup.workflow1.ui.internal.test.IdlingDispatcherRule import leakcanary.DetectLeaksAfterTestSuccess @@ -15,7 +14,6 @@ import org.junit.rules.RuleChain import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) -@OptIn(WorkflowUiExperimentalApi::class) class PreviewTest { private val composeRule = createAndroidComposeRule() diff --git a/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/textinput/TextInputTest.kt b/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/textinput/TextInputTest.kt index adfc481f8a..a62131b69c 100644 --- a/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/textinput/TextInputTest.kt +++ b/samples/compose-samples/src/androidTest/java/com/squareup/sample/compose/textinput/TextInputTest.kt @@ -9,7 +9,6 @@ import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performTextInput import androidx.compose.ui.test.performTextReplacement import androidx.test.ext.junit.runners.AndroidJUnit4 -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.internal.test.IdleAfterTestRule import com.squareup.workflow1.ui.internal.test.IdlingDispatcherRule import com.squareup.workflow1.ui.internal.test.compose.settleForNextRendering @@ -22,7 +21,6 @@ import org.junit.rules.RuleChain import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) -@OptIn(WorkflowUiExperimentalApi::class) class TextInputTest { private val composeRule = createAndroidComposeRule() diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocompose/App.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocompose/App.kt index 15189b91ab..eddbc909fa 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocompose/App.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocompose/App.kt @@ -1,4 +1,4 @@ -@file:OptIn(WorkflowUiExperimentalApi::class, WorkflowExperimentalRuntime::class) +@file:OptIn(WorkflowExperimentalRuntime::class) package com.squareup.sample.compose.hellocompose @@ -13,21 +13,24 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.squareup.workflow1.WorkflowExperimentalRuntime import com.squareup.workflow1.config.AndroidRuntimeConfigTools +import com.squareup.workflow1.mapRendering import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.WorkflowRendering import com.squareup.workflow1.ui.compose.renderAsState import com.squareup.workflow1.ui.compose.withComposeInteropSupport +import com.squareup.workflow1.ui.withEnvironment private val viewEnvironment = ViewEnvironment.EMPTY.withComposeInteropSupport() @Composable fun App() { MaterialTheme { - val rendering by HelloComposeWorkflow.renderAsState( - props = Unit, - runtimeConfig = AndroidRuntimeConfigTools.getAppWorkflowRuntimeConfig(), - onOutput = {} - ) + val rendering by HelloComposeWorkflow + .mapRendering { it.withEnvironment(viewEnvironment) } + .renderAsState( + props = Unit, + runtimeConfig = AndroidRuntimeConfigTools.getAppWorkflowRuntimeConfig(), + onOutput = {} + ) WorkflowRendering( rendering, Modifier.border( diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocompose/HelloComposeScreen.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocompose/HelloComposeScreen.kt index cd32877240..99519c0290 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocompose/HelloComposeScreen.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocompose/HelloComposeScreen.kt @@ -8,11 +8,9 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.ComposeScreen import com.squareup.workflow1.ui.compose.tooling.Preview -@OptIn(WorkflowUiExperimentalApi::class) data class HelloComposeScreen( val message: String, val onClick: () -> Unit @@ -28,7 +26,6 @@ data class HelloComposeScreen( } } -@OptIn(WorkflowUiExperimentalApi::class) @Preview(heightDp = 150, showBackground = true) @Composable private fun HelloPreview() { diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloBinding.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloBinding.kt index 8776c87455..b15dba6bf8 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloBinding.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloBinding.kt @@ -8,11 +8,9 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import com.squareup.sample.compose.hellocomposebinding.HelloWorkflow.Rendering -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.ScreenComposableFactory import com.squareup.workflow1.ui.compose.tooling.Preview -@OptIn(WorkflowUiExperimentalApi::class) val HelloBinding = ScreenComposableFactory { rendering -> Text( rendering.message, @@ -23,7 +21,6 @@ val HelloBinding = ScreenComposableFactory { rendering -> ) } -@OptIn(WorkflowUiExperimentalApi::class) @Preview(heightDp = 150, showBackground = true) @Composable fun DrawHelloRenderingPreview() { diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloBindingActivity.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloBindingActivity.kt index 499fdc73e4..9178e33f24 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloBindingActivity.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloBindingActivity.kt @@ -16,14 +16,12 @@ import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewRegistry import com.squareup.workflow1.ui.WorkflowLayout -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.withComposeInteropSupport import com.squareup.workflow1.ui.plus import com.squareup.workflow1.ui.renderWorkflowIn import com.squareup.workflow1.ui.withEnvironment import kotlinx.coroutines.flow.StateFlow -@OptIn(WorkflowUiExperimentalApi::class) private val viewEnvironment = (ViewEnvironment.EMPTY + ViewRegistry(HelloBinding)) .withComposeInteropSupport { content -> @@ -35,7 +33,6 @@ private val viewEnvironment = * [screenComposableFactory][com.squareup.workflow1.ui.compose.ScreenComposableFactory]. */ class HelloBindingActivity : AppCompatActivity() { - @OptIn(WorkflowUiExperimentalApi::class) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -51,7 +48,6 @@ class HelloBindingActivity : AppCompatActivity() { } class HelloBindingModel(savedState: SavedStateHandle) : ViewModel() { - @OptIn(WorkflowUiExperimentalApi::class) val renderings: StateFlow by lazy { renderWorkflowIn( workflow = HelloWorkflow.mapRendering { it.withEnvironment(viewEnvironment) }, diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloWorkflow.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloWorkflow.kt index db3f50f557..b54341da4c 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloWorkflow.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposebinding/HelloWorkflow.kt @@ -9,7 +9,6 @@ import com.squareup.workflow1.StatefulWorkflow import com.squareup.workflow1.action import com.squareup.workflow1.parse import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi object HelloWorkflow : StatefulWorkflow() { enum class State { @@ -22,7 +21,6 @@ object HelloWorkflow : StatefulWorkflow() { } } - @OptIn(WorkflowUiExperimentalApi::class) data class Rendering( val message: String, val onClick: () -> Unit diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/ComposeWorkflow.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/ComposeWorkflow.kt index 2dfa5338d1..5d91e85cc9 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/ComposeWorkflow.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/ComposeWorkflow.kt @@ -7,7 +7,6 @@ import com.squareup.workflow1.Sink import com.squareup.workflow1.StatefulWorkflow import com.squareup.workflow1.Workflow import com.squareup.workflow1.WorkflowIdentifier -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.ComposeScreen /** @@ -28,7 +27,6 @@ import com.squareup.workflow1.ui.compose.ComposeScreen * trouble. However, it seems interesting, so we wanted to be able to point to it if a use case * comes up. */ -@WorkflowUiExperimentalApi abstract class ComposeWorkflow : Workflow, IdCacheable { @@ -54,7 +52,6 @@ abstract class ComposeWorkflow : /** * Returns a [ComposeWorkflow] that renders itself using the given [render] function. */ -@WorkflowUiExperimentalApi inline fun Workflow.Companion.composed( crossinline render: @Composable ( props: PropsT, diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/ComposeWorkflowImpl.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/ComposeWorkflowImpl.kt index 3eb573b481..54a2a75f48 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/ComposeWorkflowImpl.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/ComposeWorkflowImpl.kt @@ -10,10 +10,8 @@ import com.squareup.workflow1.Snapshot import com.squareup.workflow1.StatefulWorkflow import com.squareup.workflow1.action import com.squareup.workflow1.contraMap -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.ComposeScreen -@WorkflowUiExperimentalApi internal class ComposeWorkflowImpl( private val workflow: ComposeWorkflow ) : StatefulWorkflow, OutputT, ComposeScreen>() { diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloComposeWorkflow.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloComposeWorkflow.kt index 278dce20f2..fe96bd0310 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloComposeWorkflow.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloComposeWorkflow.kt @@ -16,7 +16,6 @@ import com.squareup.sample.compose.hellocomposeworkflow.HelloComposeWorkflow.Tog import com.squareup.workflow1.Sink import com.squareup.workflow1.WorkflowExperimentalRuntime import com.squareup.workflow1.config.AndroidRuntimeConfigTools -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.WorkflowRendering import com.squareup.workflow1.ui.compose.renderAsState @@ -25,7 +24,6 @@ import com.squareup.workflow1.ui.compose.renderAsState * * This workflow has type `Workflow`. */ -@OptIn(WorkflowUiExperimentalApi::class) object HelloComposeWorkflow : ComposeWorkflow() { object Toggle @@ -46,7 +44,6 @@ object HelloComposeWorkflow : ComposeWorkflow() { } } -@OptIn(WorkflowUiExperimentalApi::class) @Preview(showBackground = true) @Composable fun HelloComposeWorkflowPreview() { diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloComposeWorkflowActivity.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloComposeWorkflowActivity.kt index 478cd73e03..c56c7cdd21 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloComposeWorkflowActivity.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloComposeWorkflowActivity.kt @@ -14,14 +14,12 @@ import com.squareup.workflow1.mapRendering import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.WorkflowLayout -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.withComposeInteropSupport import com.squareup.workflow1.ui.renderWorkflowIn import com.squareup.workflow1.ui.withEnvironment import kotlinx.coroutines.flow.StateFlow class HelloComposeWorkflowActivity : AppCompatActivity() { - @OptIn(WorkflowUiExperimentalApi::class) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val model: HelloComposeModel by viewModels() @@ -31,7 +29,6 @@ class HelloComposeWorkflowActivity : AppCompatActivity() { } class HelloComposeModel(savedState: SavedStateHandle) : ViewModel() { - @OptIn(WorkflowUiExperimentalApi::class) val renderings: StateFlow by lazy { renderWorkflowIn( workflow = HelloWorkflow.mapRendering { diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloWorkflow.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloWorkflow.kt index 5c2bc937d4..a73b930a3f 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloWorkflow.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/hellocomposeworkflow/HelloWorkflow.kt @@ -7,14 +7,12 @@ import com.squareup.workflow1.Snapshot import com.squareup.workflow1.StatefulWorkflow import com.squareup.workflow1.action import com.squareup.workflow1.parse -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.ComposeScreen /** * The root workflow of this sample. Manges the current toggle state and passes it to * [HelloComposeWorkflow]. */ -@OptIn(WorkflowUiExperimentalApi::class) object HelloWorkflow : StatefulWorkflow() { enum class State { Hello, diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/inlinerendering/InlineRenderingActivity.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/inlinerendering/InlineRenderingActivity.kt index 8386aaa999..dd30c985fa 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/inlinerendering/InlineRenderingActivity.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/inlinerendering/InlineRenderingActivity.kt @@ -14,7 +14,6 @@ import com.squareup.workflow1.mapRendering import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.WorkflowLayout -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.withComposeInteropSupport import com.squareup.workflow1.ui.renderWorkflowIn import com.squareup.workflow1.ui.withEnvironment @@ -24,7 +23,6 @@ import kotlinx.coroutines.flow.StateFlow * A workflow that returns an anonymous `ComposeRendering`. */ class InlineRenderingActivity : AppCompatActivity() { - @OptIn(WorkflowUiExperimentalApi::class) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -35,7 +33,6 @@ class InlineRenderingActivity : AppCompatActivity() { } class HelloBindingModel(savedState: SavedStateHandle) : ViewModel() { - @OptIn(WorkflowUiExperimentalApi::class) val renderings: StateFlow by lazy { renderWorkflowIn( workflow = InlineRenderingWorkflow.mapRendering { diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/inlinerendering/InlineRenderingWorkflow.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/inlinerendering/InlineRenderingWorkflow.kt index 0af60d522e..8ce4577dc1 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/inlinerendering/InlineRenderingWorkflow.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/inlinerendering/InlineRenderingWorkflow.kt @@ -1,4 +1,4 @@ -@file:OptIn(WorkflowUiExperimentalApi::class, WorkflowExperimentalRuntime::class) +@file:OptIn(WorkflowExperimentalRuntime::class) package com.squareup.sample.compose.inlinerendering @@ -21,7 +21,6 @@ import com.squareup.workflow1.WorkflowExperimentalRuntime import com.squareup.workflow1.config.AndroidRuntimeConfigTools import com.squareup.workflow1.parse import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.ComposeScreen import com.squareup.workflow1.ui.compose.WorkflowRendering import com.squareup.workflow1.ui.compose.renderAsState diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/launcher/Samples.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/launcher/Samples.kt index 21426f6f46..dae6892bc0 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/launcher/Samples.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/launcher/Samples.kt @@ -18,10 +18,8 @@ import com.squareup.sample.compose.preview.PreviewActivity import com.squareup.sample.compose.preview.PreviewApp import com.squareup.sample.compose.textinput.TextInputActivity import com.squareup.sample.compose.textinput.TextInputAppPreview -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import kotlin.reflect.KClass -@OptIn(WorkflowUiExperimentalApi::class) val samples = listOf( Sample( "Compose Workflow", diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/LegacyRunner.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/LegacyRunner.kt index 6510d6f934..353b4be9b6 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/LegacyRunner.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/LegacyRunner.kt @@ -8,13 +8,11 @@ import com.squareup.sample.compose.databinding.LegacyViewBinding import com.squareup.sample.compose.nestedrenderings.RecursiveWorkflow.LegacyRendering import com.squareup.workflow1.ui.ScreenViewRunner import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.tooling.Preview /** * A [ScreenViewRunner] that renders [LegacyRendering]s using the legacy view framework. */ -@OptIn(WorkflowUiExperimentalApi::class) class LegacyRunner(private val binding: LegacyViewBinding) : ScreenViewRunner { override fun showRendering( @@ -25,7 +23,6 @@ class LegacyRunner(private val binding: LegacyViewBinding) : ScreenViewRunner @@ -36,7 +33,6 @@ private val viewEnvironment = } } -@WorkflowUiExperimentalApi class NestedRenderingsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -53,7 +49,6 @@ class NestedRenderingsActivity : AppCompatActivity() { } class NestedRenderingsModel(savedState: SavedStateHandle) : ViewModel() { - @OptIn(WorkflowUiExperimentalApi::class) val renderings: StateFlow by lazy { renderWorkflowIn( workflow = RecursiveWorkflow.mapRendering { it.withEnvironment(viewEnvironment) }, diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/RecursiveViewFactory.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/RecursiveViewFactory.kt index c290ffa885..4691e988e4 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/RecursiveViewFactory.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/RecursiveViewFactory.kt @@ -24,7 +24,6 @@ import androidx.compose.ui.tooling.preview.Preview import com.squareup.sample.compose.R import com.squareup.sample.compose.nestedrenderings.RecursiveWorkflow.Rendering import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.ScreenComposableFactory import com.squareup.workflow1.ui.compose.WorkflowRendering import com.squareup.workflow1.ui.compose.tooling.Preview @@ -37,7 +36,6 @@ val LocalBackgroundColor = compositionLocalOf { error("No background colo /** * A `ViewFactory` that renders [RecursiveWorkflow.Rendering]s. */ -@OptIn(WorkflowUiExperimentalApi::class) val RecursiveComposableFactory = ScreenComposableFactory { rendering -> // Every child should be drawn with a slightly-darker background color. val color = LocalBackgroundColor.current @@ -68,7 +66,6 @@ val RecursiveComposableFactory = ScreenComposableFactory { rendering } } -@OptIn(WorkflowUiExperimentalApi::class) @Preview @Composable fun RecursiveViewFactoryPreview() { @@ -91,7 +88,6 @@ fun RecursiveViewFactoryPreview() { } } -@OptIn(WorkflowUiExperimentalApi::class) @Composable private fun Children( children: List, diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/RecursiveWorkflow.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/RecursiveWorkflow.kt index 51c26325ec..8cff8fcb7d 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/RecursiveWorkflow.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/RecursiveWorkflow.kt @@ -11,7 +11,6 @@ import com.squareup.workflow1.renderChild import com.squareup.workflow1.ui.AndroidScreen import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ScreenViewFactory -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * A simple workflow that produces [Rendering]s of zero or more children. @@ -21,7 +20,6 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * to force it to go through the legacy view layer. This way this sample both demonstrates pass- * through Composable renderings as well as adapting in both directions. */ -@OptIn(WorkflowUiExperimentalApi::class) object RecursiveWorkflow : StatefulWorkflow() { data class State(val children: Int = 0) diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/StringRendering.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/StringRendering.kt index c2fc86862e..f571897a9a 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/StringRendering.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/nestedrenderings/StringRendering.kt @@ -1,7 +1,5 @@ package com.squareup.sample.compose.nestedrenderings import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) data class StringRendering(val value: String) : Screen diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/preview/PreviewActivity.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/preview/PreviewActivity.kt index ba99e7a2e1..0b7ca3e684 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/preview/PreviewActivity.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/preview/PreviewActivity.kt @@ -1,5 +1,3 @@ -@file:OptIn(WorkflowUiExperimentalApi::class) - package com.squareup.sample.compose.preview import android.os.Bundle @@ -21,7 +19,6 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.ComposeScreen import com.squareup.workflow1.ui.compose.WorkflowRendering import com.squareup.workflow1.ui.compose.tooling.Preview diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/App.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/App.kt index d50fce750a..9d3c2d5345 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/App.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/App.kt @@ -1,4 +1,4 @@ -@file:OptIn(WorkflowUiExperimentalApi::class, WorkflowExperimentalRuntime::class) +@file:OptIn(WorkflowExperimentalRuntime::class) package com.squareup.sample.compose.textinput @@ -10,7 +10,6 @@ import com.squareup.workflow1.WorkflowExperimentalRuntime import com.squareup.workflow1.config.AndroidRuntimeConfigTools import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewRegistry -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.RootScreen import com.squareup.workflow1.ui.compose.renderAsState import com.squareup.workflow1.ui.plus diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/TextInputViewFactory.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/TextInputViewFactory.kt index 795eac2b2d..0a22e4c823 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/TextInputViewFactory.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/TextInputViewFactory.kt @@ -18,12 +18,10 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.squareup.sample.compose.textinput.TextInputWorkflow.Rendering import com.squareup.workflow1.ui.TextController -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.ScreenComposableFactory import com.squareup.workflow1.ui.compose.asMutableState import com.squareup.workflow1.ui.compose.tooling.Preview -@OptIn(WorkflowUiExperimentalApi::class) val TextInputComposableFactory = ScreenComposableFactory { rendering -> Column( modifier = Modifier @@ -48,7 +46,6 @@ val TextInputComposableFactory = ScreenComposableFactory { rendering } } -@OptIn(WorkflowUiExperimentalApi::class) @Preview(showBackground = true) @Composable private fun TextInputViewFactoryPreview() { diff --git a/samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/TextInputWorkflow.kt b/samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/TextInputWorkflow.kt index 340110afd4..d55a13fb65 100644 --- a/samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/TextInputWorkflow.kt +++ b/samples/compose-samples/src/main/java/com/squareup/sample/compose/textinput/TextInputWorkflow.kt @@ -7,9 +7,7 @@ import com.squareup.workflow1.StatefulWorkflow import com.squareup.workflow1.action import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.TextController -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) object TextInputWorkflow : StatefulWorkflow() { data class State( diff --git a/samples/containers/android/src/androidTest/java/com/squareup/sample/container/overviewdetail/OverviewDetailContainerTest.kt b/samples/containers/android/src/androidTest/java/com/squareup/sample/container/overviewdetail/OverviewDetailContainerTest.kt index 3dd3ea7c84..9274cbb2bf 100644 --- a/samples/containers/android/src/androidTest/java/com/squareup/sample/container/overviewdetail/OverviewDetailContainerTest.kt +++ b/samples/containers/android/src/androidTest/java/com/squareup/sample/container/overviewdetail/OverviewDetailContainerTest.kt @@ -6,13 +6,11 @@ import androidx.activity.ComponentActivity import androidx.test.ext.junit.rules.ActivityScenarioRule import com.google.common.truth.Truth import com.squareup.sample.container.R -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.WorkflowViewStub import org.junit.Rule import org.junit.Test import kotlin.test.assertFailsWith -@OptIn(WorkflowUiExperimentalApi::class) internal class OverviewDetailContainerTest { @get:Rule val scenarioRule = ActivityScenarioRule(ComponentActivity::class.java) private val scenario get() = scenarioRule.scenario diff --git a/samples/containers/android/src/main/java/com/squareup/sample/container/SampleContainers.kt b/samples/containers/android/src/main/java/com/squareup/sample/container/SampleContainers.kt index 06ee3bea2d..4930c9f52a 100644 --- a/samples/containers/android/src/main/java/com/squareup/sample/container/SampleContainers.kt +++ b/samples/containers/android/src/main/java/com/squareup/sample/container/SampleContainers.kt @@ -3,9 +3,7 @@ package com.squareup.sample.container import com.squareup.sample.container.overviewdetail.OverviewDetailContainer import com.squareup.sample.container.panel.PanelOverlayDialogFactory import com.squareup.workflow1.ui.ViewRegistry -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) val SampleContainers = ViewRegistry( OverviewDetailContainer, PanelOverlayDialogFactory, diff --git a/samples/containers/android/src/main/java/com/squareup/sample/container/ScrimContainer.kt b/samples/containers/android/src/main/java/com/squareup/sample/container/ScrimContainer.kt index cee8e215a5..1d9fa1ea31 100644 --- a/samples/containers/android/src/main/java/com/squareup/sample/container/ScrimContainer.kt +++ b/samples/containers/android/src/main/java/com/squareup/sample/container/ScrimContainer.kt @@ -11,7 +11,6 @@ import com.squareup.sample.container.panel.ScrimScreen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromCode import com.squareup.workflow1.ui.ScreenViewHolder -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.WorkflowViewStub /** @@ -91,7 +90,6 @@ internal class ScrimContainer @JvmOverloads constructor( } } - @OptIn(WorkflowUiExperimentalApi::class) companion object : ScreenViewFactory> by fromCode( buildView = { _, initialEnvironment, context, _ -> val stub = WorkflowViewStub(context) diff --git a/samples/containers/android/src/main/java/com/squareup/sample/container/overviewdetail/OverviewDetailConfig.kt b/samples/containers/android/src/main/java/com/squareup/sample/container/overviewdetail/OverviewDetailConfig.kt index 141424aa87..e926f258ee 100644 --- a/samples/containers/android/src/main/java/com/squareup/sample/container/overviewdetail/OverviewDetailConfig.kt +++ b/samples/containers/android/src/main/java/com/squareup/sample/container/overviewdetail/OverviewDetailConfig.kt @@ -2,7 +2,6 @@ package com.squareup.sample.container.overviewdetail import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewEnvironmentKey -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * [com.squareup.workflow1.ui.ViewEnvironment] value that informs views @@ -30,12 +29,10 @@ enum class OverviewDetailConfig { */ Single; - @OptIn(WorkflowUiExperimentalApi::class) companion object : ViewEnvironmentKey() { override val default = None } } -@WorkflowUiExperimentalApi operator fun ViewEnvironment.plus(config: OverviewDetailConfig): ViewEnvironment = this + (OverviewDetailConfig to config) diff --git a/samples/containers/android/src/main/java/com/squareup/sample/container/overviewdetail/OverviewDetailContainer.kt b/samples/containers/android/src/main/java/com/squareup/sample/container/overviewdetail/OverviewDetailContainer.kt index f829fc570b..b4b6a7e456 100644 --- a/samples/containers/android/src/main/java/com/squareup/sample/container/overviewdetail/OverviewDetailContainer.kt +++ b/samples/containers/android/src/main/java/com/squareup/sample/container/overviewdetail/OverviewDetailContainer.kt @@ -10,7 +10,6 @@ import com.squareup.sample.container.overviewdetail.OverviewDetailConfig.Single import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewRunner import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.WorkflowViewStub import com.squareup.workflow1.ui.navigation.BackStackScreen import com.squareup.workflow1.ui.navigation.plus @@ -24,7 +23,6 @@ import com.squareup.workflow1.ui.navigation.plus * For single pane layouts, [OverviewDetailScreen] is repackaged as a [BackStackScreen] * with [OverviewDetailScreen.overviewRendering] as the base of the stack. */ -@OptIn(WorkflowUiExperimentalApi::class) class OverviewDetailContainer(view: View) : ScreenViewRunner> { private val overviewStub: WorkflowViewStub? = view.findViewById(R.id.overview_stub) diff --git a/samples/containers/android/src/main/java/com/squareup/sample/container/panel/PanelOverlayDialogFactory.kt b/samples/containers/android/src/main/java/com/squareup/sample/container/panel/PanelOverlayDialogFactory.kt index 699866da19..b2dbf4be5d 100644 --- a/samples/containers/android/src/main/java/com/squareup/sample/container/panel/PanelOverlayDialogFactory.kt +++ b/samples/containers/android/src/main/java/com/squareup/sample/container/panel/PanelOverlayDialogFactory.kt @@ -5,7 +5,6 @@ import android.graphics.Rect import androidx.appcompat.app.AppCompatDialog import com.squareup.sample.container.R import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.OverlayDialogFactory import com.squareup.workflow1.ui.navigation.OverlayDialogHolder import com.squareup.workflow1.ui.navigation.asDialogHolderWithContent @@ -15,7 +14,6 @@ import kotlin.reflect.KClass /** * Android support for [PanelOverlay]. */ -@OptIn(WorkflowUiExperimentalApi::class) internal object PanelOverlayDialogFactory : OverlayDialogFactory> { override val type: KClass> = PanelOverlay::class diff --git a/samples/containers/app-poetry/src/main/java/com/squareup/sample/poetryapp/PoetryActivity.kt b/samples/containers/app-poetry/src/main/java/com/squareup/sample/poetryapp/PoetryActivity.kt index 7fe351fa93..c860b59ffe 100644 --- a/samples/containers/app-poetry/src/main/java/com/squareup/sample/poetryapp/PoetryActivity.kt +++ b/samples/containers/app-poetry/src/main/java/com/squareup/sample/poetryapp/PoetryActivity.kt @@ -16,18 +16,15 @@ import com.squareup.workflow1.WorkflowExperimentalRuntime import com.squareup.workflow1.config.AndroidRuntimeConfigTools import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.WorkflowLayout -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.renderWorkflowIn import com.squareup.workflow1.ui.withRegistry import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.map import timber.log.Timber -@OptIn(WorkflowUiExperimentalApi::class) private val viewRegistry = SampleContainers class PoetryActivity : AppCompatActivity() { - @OptIn(WorkflowUiExperimentalApi::class) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -47,7 +44,6 @@ class PoetryActivity : AppCompatActivity() { } class PoetryModel(savedState: SavedStateHandle) : ViewModel() { - @OptIn(WorkflowUiExperimentalApi::class) val renderings: StateFlow by lazy { renderWorkflowIn( workflow = RealPoemsBrowserWorkflow(RealPoemWorkflow()), diff --git a/samples/containers/app-raven/src/main/java/com/squareup/sample/ravenapp/RavenActivity.kt b/samples/containers/app-raven/src/main/java/com/squareup/sample/ravenapp/RavenActivity.kt index ab7099e420..101ab4671a 100644 --- a/samples/containers/app-raven/src/main/java/com/squareup/sample/ravenapp/RavenActivity.kt +++ b/samples/containers/app-raven/src/main/java/com/squareup/sample/ravenapp/RavenActivity.kt @@ -1,4 +1,4 @@ -@file:OptIn(WorkflowUiExperimentalApi::class, WorkflowExperimentalRuntime::class) +@file:OptIn(WorkflowExperimentalRuntime::class) package com.squareup.sample.ravenapp @@ -16,7 +16,6 @@ import com.squareup.workflow1.WorkflowExperimentalRuntime import com.squareup.workflow1.config.AndroidRuntimeConfigTools import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.WorkflowLayout -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.renderWorkflowIn import com.squareup.workflow1.ui.withRegistry import kotlinx.coroutines.Job diff --git a/samples/containers/common/src/main/java/com/squareup/sample/container/overviewdetail/OverviewDetailScreen.kt b/samples/containers/common/src/main/java/com/squareup/sample/container/overviewdetail/OverviewDetailScreen.kt index 29109b1ee3..a963295dd5 100644 --- a/samples/containers/common/src/main/java/com/squareup/sample/container/overviewdetail/OverviewDetailScreen.kt +++ b/samples/containers/common/src/main/java/com/squareup/sample/container/overviewdetail/OverviewDetailScreen.kt @@ -1,7 +1,6 @@ package com.squareup.sample.container.overviewdetail import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BackStackScreen import com.squareup.workflow1.ui.navigation.plus @@ -16,7 +15,6 @@ import com.squareup.workflow1.ui.navigation.plus * an action that leads to an updated rendering with either a non-null [detailRendering], * or a null [selectDefault]. **[selectDefault] cannot be a no-op.** */ -@OptIn(WorkflowUiExperimentalApi::class) class OverviewDetailScreen private constructor( val overviewRendering: BackStackScreen, val detailRendering: BackStackScreen? = null, @@ -71,7 +69,6 @@ class OverviewDetailScreen private constructor( * If the new screen's `detailRendering` is `null`, it will have the * [selectDefault][OverviewDetailScreen.selectDefault] function of [other]. */ -@OptIn(WorkflowUiExperimentalApi::class) operator fun OverviewDetailScreen.plus( other: OverviewDetailScreen ): OverviewDetailScreen { diff --git a/samples/containers/common/src/main/java/com/squareup/sample/container/panel/PanelOverlay.kt b/samples/containers/common/src/main/java/com/squareup/sample/container/panel/PanelOverlay.kt index 1f164d160a..6d12d563cc 100644 --- a/samples/containers/common/src/main/java/com/squareup/sample/container/panel/PanelOverlay.kt +++ b/samples/containers/common/src/main/java/com/squareup/sample/container/panel/PanelOverlay.kt @@ -1,11 +1,9 @@ package com.squareup.sample.container.panel import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.ModalOverlay import com.squareup.workflow1.ui.navigation.ScreenOverlay -@OptIn(WorkflowUiExperimentalApi::class) class PanelOverlay( override val content: C ) : ScreenOverlay, ModalOverlay { diff --git a/samples/containers/common/src/main/java/com/squareup/sample/container/panel/ScrimScreen.kt b/samples/containers/common/src/main/java/com/squareup/sample/container/panel/ScrimScreen.kt index daef4cd52f..030dc87b69 100644 --- a/samples/containers/common/src/main/java/com/squareup/sample/container/panel/ScrimScreen.kt +++ b/samples/containers/common/src/main/java/com/squareup/sample/container/panel/ScrimScreen.kt @@ -1,14 +1,12 @@ package com.squareup.sample.container.panel import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.Wrapper /** * Show a scrim over some [content], which is invisible if [dimmed] is false, * visible if it is true. */ -@OptIn(WorkflowUiExperimentalApi::class) class ScrimScreen( override val content: C, val dimmed: Boolean diff --git a/samples/containers/common/src/test/java/com/squareup/sample/container/overviewdetail/OverviewDetailScreenTest.kt b/samples/containers/common/src/test/java/com/squareup/sample/container/overviewdetail/OverviewDetailScreenTest.kt index eedf00f82a..3e7ffb5ec2 100644 --- a/samples/containers/common/src/test/java/com/squareup/sample/container/overviewdetail/OverviewDetailScreenTest.kt +++ b/samples/containers/common/src/test/java/com/squareup/sample/container/overviewdetail/OverviewDetailScreenTest.kt @@ -2,11 +2,9 @@ package com.squareup.sample.container.overviewdetail import com.google.common.truth.Truth.assertThat import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BackStackScreen import org.junit.Test -@OptIn(WorkflowUiExperimentalApi::class) internal class OverviewDetailScreenTest { data class FooScreen(val value: T) : Screen data class BarScreen(val value: T) : Screen diff --git a/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/AreYouSureWorkflow.kt b/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/AreYouSureWorkflow.kt index 55862de90f..0c1a5603e2 100644 --- a/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/AreYouSureWorkflow.kt +++ b/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/AreYouSureWorkflow.kt @@ -14,7 +14,6 @@ import com.squareup.workflow1.ui.AndroidScreen import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.map -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.AlertOverlay import com.squareup.workflow1.ui.navigation.AlertOverlay.Button.NEGATIVE import com.squareup.workflow1.ui.navigation.AlertOverlay.Button.POSITIVE @@ -30,7 +29,6 @@ import kotlinx.parcelize.Parcelize * Wraps [HelloBackButtonWorkflow] to (sometimes) pop a confirmation alert when the back * button is pressed. */ -@OptIn(WorkflowUiExperimentalApi::class) object AreYouSureWorkflow : StatefulWorkflow() { override fun initialState( diff --git a/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/HelloBackButtonActivity.kt b/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/HelloBackButtonActivity.kt index 07017e2219..6c492a548f 100644 --- a/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/HelloBackButtonActivity.kt +++ b/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/HelloBackButtonActivity.kt @@ -1,4 +1,4 @@ -@file:OptIn(WorkflowUiExperimentalApi::class, WorkflowExperimentalRuntime::class) +@file:OptIn(WorkflowExperimentalRuntime::class) package com.squareup.sample.hellobackbutton @@ -14,7 +14,6 @@ import com.squareup.workflow1.WorkflowExperimentalRuntime import com.squareup.workflow1.config.AndroidRuntimeConfigTools import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.WorkflowLayout -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.renderWorkflowIn import com.squareup.workflow1.ui.withRegistry import kotlinx.coroutines.Job diff --git a/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/HelloBackButtonScreen.kt b/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/HelloBackButtonScreen.kt index 5b5cdd7142..314ded3feb 100644 --- a/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/HelloBackButtonScreen.kt +++ b/samples/containers/hello-back-button/src/main/java/com/squareup/sample/hellobackbutton/HelloBackButtonScreen.kt @@ -5,10 +5,8 @@ package com.squareup.sample.hellobackbutton import com.squareup.sample.hellobackbutton.databinding.HelloBackButtonLayoutBinding import com.squareup.workflow1.ui.AndroidScreen import com.squareup.workflow1.ui.ScreenViewFactory -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.setBackHandler -@OptIn(WorkflowUiExperimentalApi::class) data class HelloBackButtonScreen( val message: String, val onClick: () -> Unit, diff --git a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/PoemListRendering.kt b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/PoemListRendering.kt index 3cede84492..0c30b85347 100644 --- a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/PoemListRendering.kt +++ b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/PoemListRendering.kt @@ -17,9 +17,7 @@ import com.squareup.workflow1.ui.AndroidScreen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewRunner import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) data class PoemListScreen( val poems: List, val onPoemSelected: (Int) -> Unit, @@ -35,7 +33,6 @@ data class PoemListScreen( } } -@OptIn(WorkflowUiExperimentalApi::class) private class PoemListLayoutRunner(view: View) : ScreenViewRunner { init { view.findViewById(R.id.list_toolbar) diff --git a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemWorkflow.kt b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemWorkflow.kt index d9ef5e0f0a..88d29dc097 100644 --- a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemWorkflow.kt +++ b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemWorkflow.kt @@ -17,7 +17,6 @@ import com.squareup.workflow1.StatefulWorkflow import com.squareup.workflow1.WorkflowAction import com.squareup.workflow1.WorkflowAction.Companion.noAction import com.squareup.workflow1.parse -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BackStackScreen import com.squareup.workflow1.ui.navigation.toBackStackScreen @@ -36,7 +35,6 @@ class RealPoemWorkflow : PoemWorkflow, } ?: NO_SELECTED_STANZA } - @OptIn(WorkflowUiExperimentalApi::class) override fun render( renderProps: Poem, renderState: SelectedStanza, diff --git a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemsBrowserWorkflow.kt b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemsBrowserWorkflow.kt index 2938d353d3..fbed22bf4c 100644 --- a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemsBrowserWorkflow.kt +++ b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/RealPoemsBrowserWorkflow.kt @@ -9,7 +9,6 @@ import com.squareup.workflow1.Snapshot import com.squareup.workflow1.StatefulWorkflow import com.squareup.workflow1.action import com.squareup.workflow1.parse -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BackStackScreen typealias SelectedPoem = Int @@ -35,7 +34,6 @@ class RealPoemsBrowserWorkflow( } ?: NO_POEM_SELECTED } - @OptIn(WorkflowUiExperimentalApi::class) override fun render( renderProps: ConfigAndPoems, renderState: SelectedPoem, diff --git a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaListScreen.kt b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaListScreen.kt index f829be5e39..756a2cbe16 100644 --- a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaListScreen.kt +++ b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaListScreen.kt @@ -15,12 +15,10 @@ import com.squareup.workflow1.ui.AndroidScreen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewRunner import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BackStackConfig import com.squareup.workflow1.ui.navigation.BackStackConfig.CanGoBack import com.squareup.workflow1.ui.navigation.setBackHandler -@OptIn(WorkflowUiExperimentalApi::class) data class StanzaListScreen( val title: String, val subtitle: String, @@ -33,7 +31,6 @@ data class StanzaListScreen( ScreenViewFactory.fromLayout(R.layout.list, ::StanzaListLayoutRunner) } -@OptIn(WorkflowUiExperimentalApi::class) private class StanzaListLayoutRunner(view: View) : ScreenViewRunner { private val toolbar = view.findViewById(R.id.list_toolbar) private val recyclerView = view.findViewById(R.id.list_body) diff --git a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaScreen.kt b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaScreen.kt index 553944b8fd..49e5331878 100644 --- a/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaScreen.kt +++ b/samples/containers/poetry/src/main/java/com/squareup/sample/poetry/StanzaScreen.kt @@ -16,12 +16,10 @@ import com.squareup.workflow1.ui.Compatible import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewRunner import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BackStackConfig import com.squareup.workflow1.ui.navigation.BackStackConfig.None import com.squareup.workflow1.ui.navigation.setBackHandler -@OptIn(WorkflowUiExperimentalApi::class) data class StanzaScreen( val title: String, val stanzaNumber: Int, @@ -36,7 +34,6 @@ data class StanzaScreen( ScreenViewFactory.fromLayout(R.layout.stanza_layout, ::StanzaLayoutRunner) } -@OptIn(WorkflowUiExperimentalApi::class) private class StanzaLayoutRunner(private val view: View) : ScreenViewRunner { private val tabSize = TypedValue .applyDimension(TypedValue.COMPLEX_UNIT_SP, 24f, view.resources.displayMetrics) diff --git a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/BoardView.kt b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/BoardView.kt index a1e032f77a..eaca824947 100644 --- a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/BoardView.kt +++ b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/BoardView.kt @@ -10,7 +10,6 @@ import androidx.core.content.ContextCompat import com.squareup.sample.dungeon.board.Board import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewHolder -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import kotlin.math.abs import kotlin.math.min @@ -84,7 +83,6 @@ class BoardView(context: Context) : View(context) { } } - @OptIn(WorkflowUiExperimentalApi::class) companion object : ScreenViewFactory by ScreenViewFactory.fromCode( buildView = { _, initialEnvironment, context, _ -> diff --git a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/BoardsListLayoutRunner.kt b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/BoardsListLayoutRunner.kt index 98fab50b16..2fb81139b2 100644 --- a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/BoardsListLayoutRunner.kt +++ b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/BoardsListLayoutRunner.kt @@ -14,7 +14,6 @@ import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromLayout import com.squareup.workflow1.ui.ScreenViewRunner import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.WorkflowViewStub /** @@ -23,7 +22,6 @@ import com.squareup.workflow1.ui.WorkflowViewStub * Notably, this runner uses the [Cycler](https://github.com/square/cycler) library to configure * a `RecyclerView`. */ -@OptIn(WorkflowUiExperimentalApi::class) class BoardsListLayoutRunner(rootView: View) : ScreenViewRunner { /** diff --git a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/Component.kt b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/Component.kt index c4a925b110..c0eb034615 100644 --- a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/Component.kt +++ b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/Component.kt @@ -7,7 +7,6 @@ import com.squareup.sample.dungeon.DungeonAppWorkflow.State.LoadingBoardList import com.squareup.sample.dungeon.GameSessionWorkflow.State.Loading import com.squareup.sample.timemachine.shakeable.ShakeableTimeMachineLayoutRunner import com.squareup.workflow1.ui.ViewRegistry -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import kotlinx.coroutines.Dispatchers import kotlin.random.Random import kotlin.time.ExperimentalTime @@ -20,7 +19,6 @@ private const val AI_COUNT = 4 @Suppress("MemberVisibilityCanBePrivate") class Component(context: AppCompatActivity) { - @OptIn(WorkflowUiExperimentalApi::class) val viewRegistry = ViewRegistry( ShakeableTimeMachineLayoutRunner, LoadingScreenViewFactory(R.string.loading_boards_list), diff --git a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/DungeonActivity.kt b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/DungeonActivity.kt index ad7e8bab15..8f691299e1 100644 --- a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/DungeonActivity.kt +++ b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/DungeonActivity.kt @@ -4,13 +4,11 @@ import android.os.Bundle import androidx.activity.viewModels import androidx.appcompat.app.AppCompatActivity import com.squareup.workflow1.ui.WorkflowLayout -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.withRegistry import kotlinx.coroutines.flow.map class DungeonActivity : AppCompatActivity() { - @OptIn(WorkflowUiExperimentalApi::class) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) diff --git a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/DungeonAppWorkflow.kt b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/DungeonAppWorkflow.kt index c30a4ff742..6f09c390f5 100644 --- a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/DungeonAppWorkflow.kt +++ b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/DungeonAppWorkflow.kt @@ -12,11 +12,9 @@ import com.squareup.workflow1.action import com.squareup.workflow1.renderChild import com.squareup.workflow1.runningWorker import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BodyAndOverlaysScreen import com.squareup.workflow1.ui.navigation.Overlay -@OptIn(WorkflowUiExperimentalApi::class) class DungeonAppWorkflow( private val gameSessionWorkflow: GameSessionWorkflow, private val boardLoader: BoardLoader diff --git a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/GameLayoutRunner.kt b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/GameLayoutRunner.kt index a16b8056e8..16e44db40f 100644 --- a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/GameLayoutRunner.kt +++ b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/GameLayoutRunner.kt @@ -14,14 +14,12 @@ import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromLayout import com.squareup.workflow1.ui.ScreenViewRunner import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.WorkflowViewStub /** * Renders a live game, including the board with player and actors, and the buttons to control * the player. */ -@OptIn(WorkflowUiExperimentalApi::class) class GameLayoutRunner(view: View) : ScreenViewRunner { private val boardView: WorkflowViewStub = view.findViewById(R.id.board_stub) diff --git a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/GameSessionWorkflow.kt b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/GameSessionWorkflow.kt index 447ced3b5a..9d3a2daea3 100644 --- a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/GameSessionWorkflow.kt +++ b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/GameSessionWorkflow.kt @@ -16,7 +16,6 @@ import com.squareup.workflow1.WorkflowAction.Companion.noAction import com.squareup.workflow1.action import com.squareup.workflow1.runningWorker import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.AlertOverlay import com.squareup.workflow1.ui.navigation.AlertOverlay.Button.POSITIVE import com.squareup.workflow1.ui.navigation.BodyAndOverlaysScreen @@ -27,7 +26,6 @@ typealias BoardPath = String /** * Workflow that loads a game board, runs the game, and displays game over screens. */ -@OptIn(WorkflowUiExperimentalApi::class) class GameSessionWorkflow( private val gameWorkflow: GameWorkflow, private val vibrator: Vibrator, diff --git a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/LoadingBinding.kt b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/LoadingBinding.kt index 0c4d96b321..5c18b1bca3 100644 --- a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/LoadingBinding.kt +++ b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/LoadingBinding.kt @@ -1,5 +1,3 @@ -@file:OptIn(WorkflowUiExperimentalApi::class) - package com.squareup.sample.dungeon import android.view.View @@ -10,7 +8,6 @@ import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromLayout import com.squareup.workflow1.ui.ScreenViewRunner import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * Factory function for a [ScreenViewFactory] that shows a full-screen loading indicator with diff --git a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/TimeMachineAppWorkflow.kt b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/TimeMachineAppWorkflow.kt index f2f40ee584..acbdec950d 100644 --- a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/TimeMachineAppWorkflow.kt +++ b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/TimeMachineAppWorkflow.kt @@ -8,7 +8,6 @@ import com.squareup.sample.timemachine.shakeable.ShakeableTimeMachineWorkflow import com.squareup.sample.timemachine.shakeable.ShakeableTimeMachineWorkflow.PropsFactory import com.squareup.workflow1.StatelessWorkflow import com.squareup.workflow1.renderChild -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import kotlin.time.ExperimentalTime import kotlin.time.TimeSource @@ -16,7 +15,7 @@ import kotlin.time.TimeSource * A workflow that wraps [DungeonAppWorkflow] with a [ShakeableTimeMachineWorkflow] to enable * time travel debugging. */ -@OptIn(ExperimentalTime::class, WorkflowUiExperimentalApi::class) +@OptIn(ExperimentalTime::class) class TimeMachineAppWorkflow( appWorkflow: DungeonAppWorkflow, clock: TimeSource, @@ -29,7 +28,6 @@ class TimeMachineAppWorkflow( context ) - @OptIn(WorkflowUiExperimentalApi::class) override fun render( renderProps: BoardPath, context: RenderContext diff --git a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/TimeMachineModel.kt b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/TimeMachineModel.kt index 21d20be3d1..7ec6d57175 100644 --- a/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/TimeMachineModel.kt +++ b/samples/dungeon/app/src/main/java/com/squareup/sample/dungeon/TimeMachineModel.kt @@ -1,5 +1,3 @@ -@file:OptIn(WorkflowExperimentalRuntime::class) - package com.squareup.sample.dungeon import androidx.lifecycle.AbstractSavedStateViewModelFactory @@ -11,7 +9,6 @@ import com.squareup.workflow1.WorkflowExperimentalRuntime import com.squareup.workflow1.config.AndroidRuntimeConfigTools import com.squareup.workflow1.diagnostic.tracing.TracingWorkflowInterceptor import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.renderWorkflowIn import kotlinx.coroutines.flow.StateFlow import java.io.File @@ -22,11 +19,10 @@ class TimeMachineModel( private val workflow: TimeMachineAppWorkflow, private val traceFilesDir: File ) : ViewModel() { - @OptIn(WorkflowUiExperimentalApi::class, ExperimentalTime::class) + @OptIn(ExperimentalTime::class, WorkflowExperimentalRuntime::class) val renderings: StateFlow by lazy { val traceFile = traceFilesDir.resolve("workflow-trace-dungeon.json") - @OptIn(WorkflowUiExperimentalApi::class) renderWorkflowIn( workflow = workflow, prop = "simple_maze.txt", diff --git a/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/GameWorkflow.kt b/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/GameWorkflow.kt index 0024935fa6..6e3cd6e941 100644 --- a/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/GameWorkflow.kt +++ b/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/GameWorkflow.kt @@ -22,7 +22,6 @@ import com.squareup.workflow1.action import com.squareup.workflow1.renderChild import com.squareup.workflow1.runningWorker import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import kotlinx.coroutines.delay import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flow @@ -62,7 +61,6 @@ class GameWorkflow( object PlayerWasEaten : Output() } - @OptIn(WorkflowUiExperimentalApi::class) data class GameRendering( val board: Board, val gameOver: Boolean = false, diff --git a/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/board/Board.kt b/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/board/Board.kt index 7ebe669e36..c5fbcfec5a 100644 --- a/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/board/Board.kt +++ b/samples/dungeon/common/src/main/java/com/squareup/sample/dungeon/board/Board.kt @@ -1,7 +1,6 @@ package com.squareup.sample.dungeon.board import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import kotlinx.serialization.Serializable /** @@ -19,7 +18,6 @@ data class BoardMetadata(val name: String) * * @see parseBoard */ -@OptIn(WorkflowUiExperimentalApi::class) data class Board( val metadata: BoardMetadata, val width: Int, diff --git a/samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineLayoutRunner.kt b/samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineLayoutRunner.kt index 73b8500566..028963b025 100644 --- a/samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineLayoutRunner.kt +++ b/samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineLayoutRunner.kt @@ -11,7 +11,6 @@ import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromLayout import com.squareup.workflow1.ui.ScreenViewRunner import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.WorkflowViewStub import com.squareup.workflow1.ui.navigation.setBackHandler import kotlin.time.Duration @@ -22,7 +21,7 @@ import kotlin.time.ExperimentalTime * Renders [ShakeableTimeMachineWorkflow][ShakeableTimeMachineWorkflow] * [renderings][ShakeableTimeMachineScreen]. */ -@OptIn(ExperimentalTime::class, WorkflowUiExperimentalApi::class) +@OptIn(ExperimentalTime::class) class ShakeableTimeMachineLayoutRunner( private val view: View ) : ScreenViewRunner { diff --git a/samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineScreen.kt b/samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineScreen.kt index 0f5d9332b0..5a32bc5057 100644 --- a/samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineScreen.kt +++ b/samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineScreen.kt @@ -1,7 +1,6 @@ package com.squareup.sample.timemachine.shakeable import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import kotlin.time.Duration import kotlin.time.ExperimentalTime @@ -17,7 +16,6 @@ import kotlin.time.ExperimentalTime * @param onResumeRecording Event handler that will be called when [recording] is false and the user * wants to go back to the live delegate workflow. */ -@OptIn(WorkflowUiExperimentalApi::class) @ExperimentalTime data class ShakeableTimeMachineScreen( val rendering: Screen, diff --git a/samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineWorkflow.kt b/samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineWorkflow.kt index 401a535204..a2dd86abb5 100644 --- a/samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineWorkflow.kt +++ b/samples/dungeon/timemachine-shakeable/src/main/java/com/squareup/sample/timemachine/shakeable/ShakeableTimeMachineWorkflow.kt @@ -13,7 +13,6 @@ import com.squareup.workflow1.WorkflowAction import com.squareup.workflow1.action import com.squareup.workflow1.runningWorker import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import kotlin.time.Duration import kotlin.time.ExperimentalTime @@ -24,7 +23,6 @@ import kotlin.time.ExperimentalTime * * This workflow takes a [PropsFactory] as its props. See that class for more documentation. */ -@OptIn(WorkflowUiExperimentalApi::class) @ExperimentalTime class ShakeableTimeMachineWorkflow( private val timeMachineWorkflow: TimeMachineWorkflow, diff --git a/samples/hello-workflow-fragment/src/androidTest/java/com/squareup/sample/helloworkflowfragment/StubTest.kt b/samples/hello-workflow-fragment/src/androidTest/java/com/squareup/sample/helloworkflowfragment/StubTest.kt index bc7778b33b..f9197a1bb3 100644 --- a/samples/hello-workflow-fragment/src/androidTest/java/com/squareup/sample/helloworkflowfragment/StubTest.kt +++ b/samples/hello-workflow-fragment/src/androidTest/java/com/squareup/sample/helloworkflowfragment/StubTest.kt @@ -1,7 +1,6 @@ package com.squareup.sample.helloworkflowfragment import androidx.test.ext.junit.runners.AndroidJUnit4 -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import org.junit.Test import org.junit.runner.RunWith @@ -12,7 +11,6 @@ import org.junit.runner.RunWith * https://github.com/square/workflow-kotlin/issues/582 */ @RunWith(AndroidJUnit4::class) -@OptIn(WorkflowUiExperimentalApi::class) class StubTest { @Test fun fml() { } diff --git a/samples/hello-workflow-fragment/src/main/java/com/squareup/sample/helloworkflowfragment/HelloRendering.kt b/samples/hello-workflow-fragment/src/main/java/com/squareup/sample/helloworkflowfragment/HelloRendering.kt index f10966e066..4d42a74598 100644 --- a/samples/hello-workflow-fragment/src/main/java/com/squareup/sample/helloworkflowfragment/HelloRendering.kt +++ b/samples/hello-workflow-fragment/src/main/java/com/squareup/sample/helloworkflowfragment/HelloRendering.kt @@ -4,9 +4,7 @@ import com.squareup.sample.helloworkflowfragment.databinding.HelloGoodbyeLayoutB import com.squareup.workflow1.ui.AndroidScreen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromViewBinding -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) data class HelloRendering( val message: String, val onClick: () -> Unit diff --git a/samples/hello-workflow-fragment/src/main/java/com/squareup/sample/helloworkflowfragment/HelloWorkflowFragment.kt b/samples/hello-workflow-fragment/src/main/java/com/squareup/sample/helloworkflowfragment/HelloWorkflowFragment.kt index 7557fb9d16..5bca0cdee3 100644 --- a/samples/hello-workflow-fragment/src/main/java/com/squareup/sample/helloworkflowfragment/HelloWorkflowFragment.kt +++ b/samples/hello-workflow-fragment/src/main/java/com/squareup/sample/helloworkflowfragment/HelloWorkflowFragment.kt @@ -13,11 +13,9 @@ import androidx.lifecycle.viewModelScope import com.squareup.workflow1.WorkflowExperimentalRuntime import com.squareup.workflow1.config.AndroidRuntimeConfigTools import com.squareup.workflow1.ui.WorkflowLayout -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.renderWorkflowIn import kotlinx.coroutines.flow.StateFlow -@OptIn(WorkflowUiExperimentalApi::class) class HelloWorkflowFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, @@ -36,7 +34,6 @@ class HelloWorkflowFragment : Fragment() { } class HelloViewModel(savedState: SavedStateHandle) : ViewModel() { - @OptIn(WorkflowUiExperimentalApi::class) val renderings: StateFlow by lazy { renderWorkflowIn( workflow = HelloWorkflow, diff --git a/samples/hello-workflow/src/main/java/com/squareup/sample/helloworkflow/HelloRendering.kt b/samples/hello-workflow/src/main/java/com/squareup/sample/helloworkflow/HelloRendering.kt index e1a9b8be79..1ceb86b8df 100644 --- a/samples/hello-workflow/src/main/java/com/squareup/sample/helloworkflow/HelloRendering.kt +++ b/samples/hello-workflow/src/main/java/com/squareup/sample/helloworkflow/HelloRendering.kt @@ -4,9 +4,7 @@ import com.squareup.sample.helloworkflow.databinding.HelloGoodbyeLayoutBinding import com.squareup.workflow1.ui.AndroidScreen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromViewBinding -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) data class HelloRendering( val message: String, val onClick: () -> Unit diff --git a/samples/hello-workflow/src/main/java/com/squareup/sample/helloworkflow/HelloWorkflowActivity.kt b/samples/hello-workflow/src/main/java/com/squareup/sample/helloworkflow/HelloWorkflowActivity.kt index 8574a25b88..e641774af6 100644 --- a/samples/hello-workflow/src/main/java/com/squareup/sample/helloworkflow/HelloWorkflowActivity.kt +++ b/samples/hello-workflow/src/main/java/com/squareup/sample/helloworkflow/HelloWorkflowActivity.kt @@ -11,11 +11,9 @@ import androidx.lifecycle.viewModelScope import com.squareup.workflow1.WorkflowExperimentalRuntime import com.squareup.workflow1.config.AndroidRuntimeConfigTools import com.squareup.workflow1.ui.WorkflowLayout -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.renderWorkflowIn import kotlinx.coroutines.flow.StateFlow -@OptIn(WorkflowUiExperimentalApi::class) class HelloWorkflowActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -31,7 +29,6 @@ class HelloWorkflowActivity : AppCompatActivity() { } class HelloViewModel(savedState: SavedStateHandle) : ViewModel() { - @OptIn(WorkflowUiExperimentalApi::class) val renderings: StateFlow by lazy { renderWorkflowIn( workflow = HelloWorkflow, diff --git a/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/ButtonBar.kt b/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/ButtonBar.kt index 3f44b75377..ecf29eb3fe 100644 --- a/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/ButtonBar.kt +++ b/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/ButtonBar.kt @@ -12,7 +12,6 @@ import androidx.core.view.get import com.squareup.workflow1.ui.AndroidScreen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewHolder -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import android.widget.Button as ButtonView data class Button( @@ -20,7 +19,6 @@ data class Button( val onClick: () -> Unit ) -@OptIn(WorkflowUiExperimentalApi::class) class ButtonBar( vararg buttons: Button?, @ColorRes val color: Int = -1, diff --git a/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/NestedOverlaysActivity.kt b/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/NestedOverlaysActivity.kt index 97bcefada0..2d7f0a009c 100644 --- a/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/NestedOverlaysActivity.kt +++ b/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/NestedOverlaysActivity.kt @@ -12,11 +12,9 @@ import com.squareup.workflow1.WorkflowExperimentalRuntime import com.squareup.workflow1.config.AndroidRuntimeConfigTools import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.WorkflowLayout -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.renderWorkflowIn import kotlinx.coroutines.flow.StateFlow -@OptIn(WorkflowUiExperimentalApi::class) class NestedOverlaysActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -32,7 +30,6 @@ class NestedOverlaysActivity : AppCompatActivity() { } class NestedOverlaysViewModel(savedState: SavedStateHandle) : ViewModel() { - @OptIn(WorkflowUiExperimentalApi::class) val renderings: StateFlow by lazy { renderWorkflowIn( workflow = NestedOverlaysWorkflow, diff --git a/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/NestedOverlaysWorkflow.kt b/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/NestedOverlaysWorkflow.kt index 82c7b056a0..f539aec486 100644 --- a/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/NestedOverlaysWorkflow.kt +++ b/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/NestedOverlaysWorkflow.kt @@ -1,17 +1,13 @@ -@file:OptIn(WorkflowUiExperimentalApi::class) - package com.squareup.sample.nestedoverlays import com.squareup.sample.nestedoverlays.NestedOverlaysWorkflow.State import com.squareup.workflow1.Snapshot import com.squareup.workflow1.StatefulWorkflow import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BackButtonScreen import com.squareup.workflow1.ui.navigation.BodyAndOverlaysScreen import com.squareup.workflow1.ui.navigation.FullScreenModal -@OptIn(WorkflowUiExperimentalApi::class) object NestedOverlaysWorkflow : StatefulWorkflow() { data class State( val showTopBar: Boolean = true, diff --git a/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/TopAndBottomBarsScreen.kt b/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/TopAndBottomBarsScreen.kt index 9314cd33b7..c99a29cb2d 100644 --- a/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/TopAndBottomBarsScreen.kt +++ b/samples/nested-overlays/src/main/java/com/squareup/sample/nestedoverlays/TopAndBottomBarsScreen.kt @@ -7,10 +7,8 @@ import com.squareup.workflow1.ui.AndroidScreen import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromViewBinding -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.Wrapper -@OptIn(WorkflowUiExperimentalApi::class) data class TopAndBottomBarsScreen( override val content: T, val topBar: ButtonBar? = null, diff --git a/samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/ClickyTextRendering.kt b/samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/ClickyTextRendering.kt index dd58631778..bf13139641 100644 --- a/samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/ClickyTextRendering.kt +++ b/samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/ClickyTextRendering.kt @@ -11,9 +11,7 @@ import android.widget.TextView import com.squareup.workflow1.ui.AndroidScreen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewHolder -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) data class ClickyTextRendering( val message: String, val visible: Boolean = true, diff --git a/samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/OuterRendering.kt b/samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/OuterRendering.kt index b50ae12553..384d09ed9e 100644 --- a/samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/OuterRendering.kt +++ b/samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/OuterRendering.kt @@ -4,9 +4,7 @@ import com.squareup.sample.stubvisibility.databinding.StubVisibilityLayoutBindin import com.squareup.workflow1.ui.AndroidScreen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromViewBinding -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) data class OuterRendering( val top: ClickyTextRendering, val bottom: ClickyTextRendering diff --git a/samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/StubVisibilityActivity.kt b/samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/StubVisibilityActivity.kt index c58d7c636f..5558a72867 100644 --- a/samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/StubVisibilityActivity.kt +++ b/samples/stub-visibility/src/main/java/com/squareup/sample/stubvisibility/StubVisibilityActivity.kt @@ -1,4 +1,4 @@ -@file:OptIn(WorkflowUiExperimentalApi::class, WorkflowExperimentalRuntime::class) +@file:OptIn(WorkflowExperimentalRuntime::class) package com.squareup.sample.stubvisibility @@ -12,7 +12,6 @@ import com.squareup.workflow1.WorkflowExperimentalRuntime import com.squareup.workflow1.config.AndroidRuntimeConfigTools import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.WorkflowLayout -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.renderWorkflowIn import kotlinx.coroutines.flow.StateFlow @@ -29,7 +28,6 @@ class StubVisibilityActivity : AppCompatActivity() { class StubVisibilityModel(savedState: SavedStateHandle) : ViewModel() { val renderings: StateFlow by lazy { - @OptIn(WorkflowUiExperimentalApi::class) renderWorkflowIn( workflow = StubVisibilityWorkflow, scope = viewModelScope, diff --git a/samples/tictactoe/app/src/main/java/com/squareup/sample/authworkflow/AuthViewFactories.kt b/samples/tictactoe/app/src/main/java/com/squareup/sample/authworkflow/AuthViewFactories.kt index bb07ec0e52..74a10505df 100644 --- a/samples/tictactoe/app/src/main/java/com/squareup/sample/authworkflow/AuthViewFactories.kt +++ b/samples/tictactoe/app/src/main/java/com/squareup/sample/authworkflow/AuthViewFactories.kt @@ -1,9 +1,7 @@ package com.squareup.sample.authworkflow import com.squareup.workflow1.ui.ViewRegistry -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) val AuthViewFactories = ViewRegistry( AuthorizingViewFactory, LoginViewFactory, diff --git a/samples/tictactoe/app/src/main/java/com/squareup/sample/authworkflow/AuthorizingViewFactory.kt b/samples/tictactoe/app/src/main/java/com/squareup/sample/authworkflow/AuthorizingViewFactory.kt index b3e12f94d8..d1f78b0775 100644 --- a/samples/tictactoe/app/src/main/java/com/squareup/sample/authworkflow/AuthorizingViewFactory.kt +++ b/samples/tictactoe/app/src/main/java/com/squareup/sample/authworkflow/AuthorizingViewFactory.kt @@ -3,9 +3,7 @@ package com.squareup.sample.authworkflow import com.squareup.sample.tictactoe.databinding.AuthorizingLayoutBinding import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromViewBinding -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) internal val AuthorizingViewFactory: ScreenViewFactory = fromViewBinding(AuthorizingLayoutBinding::inflate) { rendering, _ -> authorizingMessage.text = rendering.message diff --git a/samples/tictactoe/app/src/main/java/com/squareup/sample/authworkflow/LoginViewFactory.kt b/samples/tictactoe/app/src/main/java/com/squareup/sample/authworkflow/LoginViewFactory.kt index 3a4785f67a..90e5dd661d 100644 --- a/samples/tictactoe/app/src/main/java/com/squareup/sample/authworkflow/LoginViewFactory.kt +++ b/samples/tictactoe/app/src/main/java/com/squareup/sample/authworkflow/LoginViewFactory.kt @@ -3,10 +3,8 @@ package com.squareup.sample.authworkflow import com.squareup.sample.tictactoe.databinding.LoginLayoutBinding import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromViewBinding -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.setBackHandler -@OptIn(WorkflowUiExperimentalApi::class) internal val LoginViewFactory: ScreenViewFactory = fromViewBinding(LoginLayoutBinding::inflate) { rendering, _ -> loginErrorMessage.text = rendering.errorMessage diff --git a/samples/tictactoe/app/src/main/java/com/squareup/sample/authworkflow/SecondFactorViewFactory.kt b/samples/tictactoe/app/src/main/java/com/squareup/sample/authworkflow/SecondFactorViewFactory.kt index 5972212a96..8867c10453 100644 --- a/samples/tictactoe/app/src/main/java/com/squareup/sample/authworkflow/SecondFactorViewFactory.kt +++ b/samples/tictactoe/app/src/main/java/com/squareup/sample/authworkflow/SecondFactorViewFactory.kt @@ -3,10 +3,8 @@ package com.squareup.sample.authworkflow import com.squareup.sample.tictactoe.databinding.SecondFactorLayoutBinding import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromViewBinding -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.setBackHandler -@OptIn(WorkflowUiExperimentalApi::class) internal val SecondFactorViewFactory: ScreenViewFactory = fromViewBinding(SecondFactorLayoutBinding::inflate) { rendering, _ -> root.setBackHandler(rendering.onCancel) diff --git a/samples/tictactoe/app/src/main/java/com/squareup/sample/gameworkflow/GameOverLayoutRunner.kt b/samples/tictactoe/app/src/main/java/com/squareup/sample/gameworkflow/GameOverLayoutRunner.kt index 344642dc90..f879159203 100644 --- a/samples/tictactoe/app/src/main/java/com/squareup/sample/gameworkflow/GameOverLayoutRunner.kt +++ b/samples/tictactoe/app/src/main/java/com/squareup/sample/gameworkflow/GameOverLayoutRunner.kt @@ -14,10 +14,8 @@ import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromViewBinding import com.squareup.workflow1.ui.ScreenViewRunner import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.setBackHandler -@OptIn(WorkflowUiExperimentalApi::class) internal class GameOverLayoutRunner( private val binding: GamePlayLayoutBinding ) : ScreenViewRunner { diff --git a/samples/tictactoe/app/src/main/java/com/squareup/sample/gameworkflow/GamePlayViewFactory.kt b/samples/tictactoe/app/src/main/java/com/squareup/sample/gameworkflow/GamePlayViewFactory.kt index 942a6663d7..138fa8e34f 100644 --- a/samples/tictactoe/app/src/main/java/com/squareup/sample/gameworkflow/GamePlayViewFactory.kt +++ b/samples/tictactoe/app/src/main/java/com/squareup/sample/gameworkflow/GamePlayViewFactory.kt @@ -5,10 +5,8 @@ import android.view.ViewGroup import com.squareup.sample.tictactoe.databinding.GamePlayLayoutBinding import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromViewBinding -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.setBackHandler -@OptIn(WorkflowUiExperimentalApi::class) internal val GamePlayViewFactory: ScreenViewFactory = fromViewBinding(GamePlayLayoutBinding::inflate) { rendering, _ -> renderBanner(rendering.gameState, rendering.playerInfo) diff --git a/samples/tictactoe/app/src/main/java/com/squareup/sample/gameworkflow/NewGameViewFactory.kt b/samples/tictactoe/app/src/main/java/com/squareup/sample/gameworkflow/NewGameViewFactory.kt index c65a0b2698..4519d00b4e 100644 --- a/samples/tictactoe/app/src/main/java/com/squareup/sample/gameworkflow/NewGameViewFactory.kt +++ b/samples/tictactoe/app/src/main/java/com/squareup/sample/gameworkflow/NewGameViewFactory.kt @@ -3,10 +3,8 @@ package com.squareup.sample.gameworkflow import com.squareup.sample.tictactoe.databinding.NewGameLayoutBinding import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromViewBinding -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.setBackHandler -@OptIn(WorkflowUiExperimentalApi::class) internal val NewGameViewFactory: ScreenViewFactory = fromViewBinding(NewGameLayoutBinding::inflate) { rendering, _ -> if (playerX.text.isBlank()) playerX.setText(rendering.defaultNameX) diff --git a/samples/tictactoe/app/src/main/java/com/squareup/sample/gameworkflow/TicTacToeViewFactories.kt b/samples/tictactoe/app/src/main/java/com/squareup/sample/gameworkflow/TicTacToeViewFactories.kt index 3fa650795f..6e9bb5fd98 100644 --- a/samples/tictactoe/app/src/main/java/com/squareup/sample/gameworkflow/TicTacToeViewFactories.kt +++ b/samples/tictactoe/app/src/main/java/com/squareup/sample/gameworkflow/TicTacToeViewFactories.kt @@ -1,9 +1,7 @@ package com.squareup.sample.gameworkflow import com.squareup.workflow1.ui.ViewRegistry -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) val TicTacToeViewFactories = ViewRegistry( NewGameViewFactory, GamePlayViewFactory, diff --git a/samples/tictactoe/app/src/main/java/com/squareup/sample/mainactivity/TicTacToeActivity.kt b/samples/tictactoe/app/src/main/java/com/squareup/sample/mainactivity/TicTacToeActivity.kt index d38114d096..682240cea3 100644 --- a/samples/tictactoe/app/src/main/java/com/squareup/sample/mainactivity/TicTacToeActivity.kt +++ b/samples/tictactoe/app/src/main/java/com/squareup/sample/mainactivity/TicTacToeActivity.kt @@ -9,14 +9,12 @@ import com.squareup.sample.authworkflow.AuthViewFactories import com.squareup.sample.container.SampleContainers import com.squareup.sample.gameworkflow.TicTacToeViewFactories import com.squareup.workflow1.ui.WorkflowLayout -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.plus import com.squareup.workflow1.ui.withRegistry import kotlinx.coroutines.flow.map import kotlinx.coroutines.launch import timber.log.Timber -@OptIn(WorkflowUiExperimentalApi::class) class TicTacToeActivity : AppCompatActivity() { /** Exposed for use by espresso tests. */ lateinit var idlingResource: IdlingResource diff --git a/samples/tictactoe/app/src/main/java/com/squareup/sample/mainactivity/TicTacToeComponent.kt b/samples/tictactoe/app/src/main/java/com/squareup/sample/mainactivity/TicTacToeComponent.kt index f9f1eed496..472097ea33 100644 --- a/samples/tictactoe/app/src/main/java/com/squareup/sample/mainactivity/TicTacToeComponent.kt +++ b/samples/tictactoe/app/src/main/java/com/squareup/sample/mainactivity/TicTacToeComponent.kt @@ -17,7 +17,6 @@ import com.squareup.sample.gameworkflow.RealTakeTurnsWorkflow import com.squareup.sample.gameworkflow.RunGameWorkflow import com.squareup.sample.gameworkflow.TakeTurnsWorkflow import com.squareup.sample.mainworkflow.TicTacToeWorkflow -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import io.reactivex.Single import io.reactivex.android.schedulers.AndroidSchedulers.mainThread import timber.log.Timber @@ -25,7 +24,6 @@ import timber.log.Timber /** * Pretend generated code of a pretend DI framework. */ -@OptIn(WorkflowUiExperimentalApi::class) class TicTacToeComponent : ViewModel() { private val countingIdlingResource = CountingIdlingResource("AuthServiceIdling") val idlingResource: IdlingResource = countingIdlingResource diff --git a/samples/tictactoe/app/src/main/java/com/squareup/sample/mainactivity/TicTacToeModel.kt b/samples/tictactoe/app/src/main/java/com/squareup/sample/mainactivity/TicTacToeModel.kt index c2f8e3da5e..3d4ae097c2 100644 --- a/samples/tictactoe/app/src/main/java/com/squareup/sample/mainactivity/TicTacToeModel.kt +++ b/samples/tictactoe/app/src/main/java/com/squareup/sample/mainactivity/TicTacToeModel.kt @@ -12,7 +12,6 @@ import com.squareup.workflow1.WorkflowExperimentalRuntime import com.squareup.workflow1.config.AndroidRuntimeConfigTools import com.squareup.workflow1.diagnostic.tracing.TracingWorkflowInterceptor import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.renderWorkflowIn import kotlinx.coroutines.Job import kotlinx.coroutines.flow.StateFlow @@ -25,7 +24,6 @@ class TicTacToeModel( ) : ViewModel() { private val running = Job() - @OptIn(WorkflowUiExperimentalApi::class) val renderings: StateFlow by lazy { val traceFile = traceFilesDir.resolve("workflow-trace-tictactoe.json") diff --git a/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/AuthWorkflow.kt b/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/AuthWorkflow.kt index d691642b18..a2b405988b 100644 --- a/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/AuthWorkflow.kt +++ b/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/AuthWorkflow.kt @@ -15,14 +15,12 @@ import com.squareup.workflow1.Workflow import com.squareup.workflow1.action import com.squareup.workflow1.runningWorker import com.squareup.workflow1.rx2.asWorker -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BackStackScreen /** * We define this otherwise redundant typealias to keep composite workflows * that build on [AuthWorkflow] decoupled from it, for ease of testing. */ -@OptIn(WorkflowUiExperimentalApi::class) typealias AuthWorkflow = Workflow> sealed class AuthState { @@ -59,7 +57,6 @@ sealed class AuthResult { * Includes a 2fa path for email addresses that include the string "2fa". * Token is "1234". */ -@OptIn(WorkflowUiExperimentalApi::class) class RealAuthWorkflow(private val authService: AuthService) : AuthWorkflow, StatefulWorkflow>() { diff --git a/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/AuthorizingScreen.kt b/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/AuthorizingScreen.kt index 41878b251b..fcf1e2e86d 100644 --- a/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/AuthorizingScreen.kt +++ b/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/AuthorizingScreen.kt @@ -1,9 +1,7 @@ package com.squareup.sample.authworkflow import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) data class AuthorizingScreen( val message: String ) : Screen diff --git a/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/LoginScreen.kt b/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/LoginScreen.kt index 8f375ad0b3..bc60c9c15b 100644 --- a/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/LoginScreen.kt +++ b/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/LoginScreen.kt @@ -1,9 +1,7 @@ package com.squareup.sample.authworkflow import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) data class LoginScreen( val errorMessage: String = "", val onLogin: (email: String, password: String) -> Unit = { _, _ -> }, diff --git a/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/SecondFactorScreen.kt b/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/SecondFactorScreen.kt index 7595cd8f6a..3b95d1e9dd 100644 --- a/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/SecondFactorScreen.kt +++ b/samples/tictactoe/common/src/main/java/com/squareup/sample/authworkflow/SecondFactorScreen.kt @@ -1,9 +1,7 @@ package com.squareup.sample.authworkflow import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) data class SecondFactorScreen( val errorMessage: String = "", val onSubmit: (String) -> Unit = {}, diff --git a/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/GameOverScreen.kt b/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/GameOverScreen.kt index 2b22ca2831..b0cc599aa1 100644 --- a/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/GameOverScreen.kt +++ b/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/GameOverScreen.kt @@ -1,9 +1,7 @@ package com.squareup.sample.gameworkflow import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) data class GameOverScreen( val endGameState: RunGameState.GameOver, val onTrySaveAgain: () -> Unit, diff --git a/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/GamePlayScreen.kt b/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/GamePlayScreen.kt index 6f2c9042f8..960f521fd0 100644 --- a/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/GamePlayScreen.kt +++ b/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/GamePlayScreen.kt @@ -1,9 +1,7 @@ package com.squareup.sample.gameworkflow import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) data class GamePlayScreen( val playerInfo: PlayerInfo = PlayerInfo(), val gameState: Turn = Turn(), diff --git a/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/NewGameScreen.kt b/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/NewGameScreen.kt index bb16547123..e5bf9f3331 100644 --- a/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/NewGameScreen.kt +++ b/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/NewGameScreen.kt @@ -1,9 +1,7 @@ package com.squareup.sample.gameworkflow import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@OptIn(WorkflowUiExperimentalApi::class) data class NewGameScreen( val defaultNameX: String, val defaultNameO: String, diff --git a/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/RunGameWorkflow.kt b/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/RunGameWorkflow.kt index 321f947d03..5dbcca2c92 100644 --- a/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/RunGameWorkflow.kt +++ b/samples/tictactoe/common/src/main/java/com/squareup/sample/gameworkflow/RunGameWorkflow.kt @@ -1,5 +1,3 @@ -@file:OptIn(WorkflowUiExperimentalApi::class) - package com.squareup.sample.gameworkflow import com.squareup.sample.gameworkflow.Ending.Quitted @@ -21,7 +19,6 @@ import com.squareup.workflow1.Workflow import com.squareup.workflow1.runningWorker import com.squareup.workflow1.rx2.asWorker import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.AlertOverlay import com.squareup.workflow1.ui.navigation.AlertOverlay.Button.NEGATIVE import com.squareup.workflow1.ui.navigation.AlertOverlay.Button.NEUTRAL diff --git a/samples/tictactoe/common/src/main/java/com/squareup/sample/mainworkflow/TicTacToeWorkflow.kt b/samples/tictactoe/common/src/main/java/com/squareup/sample/mainworkflow/TicTacToeWorkflow.kt index 5deef6a2e4..2f41d9ffd3 100644 --- a/samples/tictactoe/common/src/main/java/com/squareup/sample/mainworkflow/TicTacToeWorkflow.kt +++ b/samples/tictactoe/common/src/main/java/com/squareup/sample/mainworkflow/TicTacToeWorkflow.kt @@ -1,5 +1,3 @@ -@file:OptIn(WorkflowUiExperimentalApi::class) - package com.squareup.sample.mainworkflow import com.squareup.sample.authworkflow.AuthResult @@ -18,7 +16,6 @@ import com.squareup.workflow1.Workflow import com.squareup.workflow1.WorkflowAction.Companion.noAction import com.squareup.workflow1.action import com.squareup.workflow1.renderChild -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BackStackScreen import com.squareup.workflow1.ui.navigation.BodyAndOverlaysScreen import com.squareup.workflow1.ui.navigation.plus @@ -41,7 +38,6 @@ import com.squareup.workflow1.ui.navigation.plus * A [Unit] output event is emitted to signal that the workflow has ended, and the host * activity should be finished. */ -@OptIn(WorkflowUiExperimentalApi::class) class TicTacToeWorkflow( private val authWorkflow: AuthWorkflow, private val runGameWorkflow: RunGameWorkflow diff --git a/samples/tictactoe/common/src/test/java/com/squareup/sample/mainworkflow/TicTacToeWorkflowTest.kt b/samples/tictactoe/common/src/test/java/com/squareup/sample/mainworkflow/TicTacToeWorkflowTest.kt index 2fd6e30056..52a349bca2 100644 --- a/samples/tictactoe/common/src/test/java/com/squareup/sample/mainworkflow/TicTacToeWorkflowTest.kt +++ b/samples/tictactoe/common/src/test/java/com/squareup/sample/mainworkflow/TicTacToeWorkflowTest.kt @@ -16,7 +16,6 @@ import com.squareup.workflow1.runningWorker import com.squareup.workflow1.stateless import com.squareup.workflow1.testing.launchForTestingFromStartWith import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BackStackScreen import com.squareup.workflow1.ui.navigation.BodyAndOverlaysScreen import org.junit.Test @@ -25,7 +24,6 @@ import org.junit.Test * Demonstrates unit testing of a composite workflow. Note how we * pass in fakes for the nested workflows. */ -@OptIn(WorkflowUiExperimentalApi::class) class TicTacToeWorkflowTest { @Test fun `starts in auth over empty game`() { TicTacToeWorkflow(authWorkflow(), runGameWorkflow()).launchForTestingFromStartWith { diff --git a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/ItemListView.kt b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/ItemListView.kt index 3a6d15ffc7..2216ab5142 100644 --- a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/ItemListView.kt +++ b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/ItemListView.kt @@ -7,10 +7,8 @@ import android.widget.CheckBox import android.widget.EditText import android.widget.LinearLayout import com.squareup.sample.todo.TodoEditingSession.RowEditingSession -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.control -@OptIn(WorkflowUiExperimentalApi::class) class ItemListView private constructor(private val itemContainer: LinearLayout) { private val inflater = LayoutInflater.from(itemContainer.context) diff --git a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/ToDoActivity.kt b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/ToDoActivity.kt index 7d7b06c930..d9a9cd4194 100644 --- a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/ToDoActivity.kt +++ b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/ToDoActivity.kt @@ -1,4 +1,4 @@ -@file:OptIn(WorkflowUiExperimentalApi::class, WorkflowExperimentalRuntime::class) +@file:OptIn(WorkflowExperimentalRuntime::class) package com.squareup.sample.todo @@ -15,7 +15,6 @@ import com.squareup.workflow1.diagnostic.tracing.TracingWorkflowInterceptor import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ViewRegistry import com.squareup.workflow1.ui.WorkflowLayout -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.renderWorkflowIn import com.squareup.workflow1.ui.withRegistry import kotlinx.coroutines.flow.StateFlow diff --git a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoEditingSession.kt b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoEditingSession.kt index b8f9928411..9fd4f582e6 100644 --- a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoEditingSession.kt +++ b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoEditingSession.kt @@ -1,7 +1,6 @@ package com.squareup.sample.todo import com.squareup.workflow1.ui.TextController -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * An Android compatible editing session for a [TodoList]. Provides @@ -18,7 +17,6 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * is…hard. So, for such use cases, using [TextController] in this style * _is_ recommended. */ -@OptIn(WorkflowUiExperimentalApi::class) data class TodoEditingSession( val id: Int, val title: TextController, diff --git a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoEditorScreen.kt b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoEditorScreen.kt index 61134f7375..4b9a096cbe 100644 --- a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoEditorScreen.kt +++ b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoEditorScreen.kt @@ -1,5 +1,3 @@ -@file:OptIn(WorkflowUiExperimentalApi::class) - package com.squareup.sample.todo import android.content.Context.INPUT_METHOD_SERVICE @@ -11,13 +9,11 @@ import com.squareup.workflow1.ui.Compatible import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewRunner import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.control import com.squareup.workflow1.ui.navigation.BackStackConfig import com.squareup.workflow1.ui.navigation.BackStackConfig.CanGoBack import com.squareup.workflow1.ui.navigation.setBackHandler -@OptIn(WorkflowUiExperimentalApi::class) data class TodoEditorScreen( val session: TodoEditingSession, val onCheckboxClicked: (index: Int) -> Unit, @@ -30,7 +26,6 @@ data class TodoEditorScreen( ScreenViewFactory.fromViewBinding(TodoEditorLayoutBinding::inflate, ::Runner) } -@OptIn(WorkflowUiExperimentalApi::class) private class Runner( private val binding: TodoEditorLayoutBinding ) : ScreenViewRunner { diff --git a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoEditorWorkflow.kt b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoEditorWorkflow.kt index a43774ba0d..d5cb84d903 100644 --- a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoEditorWorkflow.kt +++ b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoEditorWorkflow.kt @@ -1,5 +1,3 @@ -@file:OptIn(WorkflowUiExperimentalApi::class) - package com.squareup.sample.todo import com.squareup.sample.todo.TodoEditingSession.RowEditingSession @@ -11,7 +9,6 @@ import com.squareup.workflow1.action import com.squareup.workflow1.asWorker import com.squareup.workflow1.runningWorker import com.squareup.workflow1.ui.TextController -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi sealed class TodoEditorOutput { data class ListUpdated(val newList: TodoList) : TodoEditorOutput() diff --git a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoListsAppWorkflow.kt b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoListsAppWorkflow.kt index a9c6602fe1..77c0ec800f 100644 --- a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoListsAppWorkflow.kt +++ b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoListsAppWorkflow.kt @@ -9,7 +9,6 @@ import com.squareup.sample.todo.TodoListsAppWorkflow.render import com.squareup.workflow1.Snapshot import com.squareup.workflow1.StatefulWorkflow import com.squareup.workflow1.action -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BackStackScreen sealed class TodoListsAppState { @@ -59,7 +58,6 @@ object TodoListsAppWorkflow : } } - @OptIn(WorkflowUiExperimentalApi::class) override fun render( renderProps: Unit, renderState: TodoListsAppState, diff --git a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoListsScreen.kt b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoListsScreen.kt index 8ec861b018..a11c2f74c6 100644 --- a/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoListsScreen.kt +++ b/samples/todo-android/app/src/main/java/com/squareup/sample/todo/TodoListsScreen.kt @@ -8,7 +8,6 @@ import com.squareup.sample.todo.databinding.TodoListsLayoutBinding import com.squareup.workflow1.ui.AndroidScreen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromViewBinding -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * Rendering of the list of [TodoList]s. @@ -19,7 +18,6 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * The entire concept of selection is owned by the parent [TodoListsAppWorkflow], * which may add that info to a copy of the child workflow's rendering. */ -@OptIn(WorkflowUiExperimentalApi::class) data class TodoListsScreen( val lists: List, val onRowClicked: (Int) -> Unit, diff --git a/workflow-ui/compose-tooling/src/androidTest/java/com/squareup/workflow1/ui/compose/tooling/PreviewViewFactoryTest.kt b/workflow-ui/compose-tooling/src/androidTest/java/com/squareup/workflow1/ui/compose/tooling/PreviewViewFactoryTest.kt index 4e2caf585f..ae90344411 100644 --- a/workflow-ui/compose-tooling/src/androidTest/java/com/squareup/workflow1/ui/compose/tooling/PreviewViewFactoryTest.kt +++ b/workflow-ui/compose-tooling/src/androidTest/java/com/squareup/workflow1/ui/compose/tooling/PreviewViewFactoryTest.kt @@ -16,7 +16,6 @@ import androidx.compose.ui.unit.dp import androidx.test.ext.junit.runners.AndroidJUnit4 import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ViewEnvironmentKey -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.LocalWorkflowEnvironment import com.squareup.workflow1.ui.compose.ScreenComposableFactory import com.squareup.workflow1.ui.compose.WorkflowRendering @@ -28,7 +27,6 @@ import org.junit.Test import org.junit.rules.RuleChain import org.junit.runner.RunWith -@OptIn(WorkflowUiExperimentalApi::class) @RunWith(AndroidJUnit4::class) internal class PreviewViewFactoryTest { diff --git a/workflow-ui/compose-tooling/src/main/java/com/squareup/workflow1/ui/compose/tooling/PlaceholderViewFactory.kt b/workflow-ui/compose-tooling/src/main/java/com/squareup/workflow1/ui/compose/tooling/PlaceholderViewFactory.kt index de833d5c36..094f461a5b 100644 --- a/workflow-ui/compose-tooling/src/main/java/com/squareup/workflow1/ui/compose/tooling/PlaceholderViewFactory.kt +++ b/workflow-ui/compose-tooling/src/main/java/com/squareup/workflow1/ui/compose/tooling/PlaceholderViewFactory.kt @@ -1,5 +1,4 @@ @file:Suppress("SameParameterValue") -@file:OptIn(WorkflowUiExperimentalApi::class) package com.squareup.workflow1.ui.compose.tooling @@ -22,7 +21,6 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.ScreenComposableFactory /** diff --git a/workflow-ui/compose-tooling/src/main/java/com/squareup/workflow1/ui/compose/tooling/PreviewViewEnvironment.kt b/workflow-ui/compose-tooling/src/main/java/com/squareup/workflow1/ui/compose/tooling/PreviewViewEnvironment.kt index f324f8d91e..aa29a8bbbc 100644 --- a/workflow-ui/compose-tooling/src/main/java/com/squareup/workflow1/ui/compose/tooling/PreviewViewEnvironment.kt +++ b/workflow-ui/compose-tooling/src/main/java/com/squareup/workflow1/ui/compose/tooling/PreviewViewEnvironment.kt @@ -1,5 +1,3 @@ -@file:OptIn(WorkflowUiExperimentalApi::class) - package com.squareup.workflow1.ui.compose.tooling import androidx.compose.runtime.Composable @@ -10,7 +8,6 @@ import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactoryFinder import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.ScreenComposableFactory import com.squareup.workflow1.ui.compose.ScreenComposableFactoryFinder import com.squareup.workflow1.ui.compose.asViewFactory @@ -62,7 +59,6 @@ private class PreviewScreenComposableFactoryFinder( private val mainFactory: ScreenComposableFactory? = null, private val placeholderFactory: ScreenComposableFactory ) : ScreenComposableFactoryFinder { - @OptIn(WorkflowUiExperimentalApi::class) override fun getComposableFactoryForRendering( environment: ViewEnvironment, rendering: ScreenT diff --git a/workflow-ui/compose-tooling/src/main/java/com/squareup/workflow1/ui/compose/tooling/Previews.kt b/workflow-ui/compose-tooling/src/main/java/com/squareup/workflow1/ui/compose/tooling/Previews.kt index 76060b91e7..170f512e31 100644 --- a/workflow-ui/compose-tooling/src/main/java/com/squareup/workflow1/ui/compose/tooling/Previews.kt +++ b/workflow-ui/compose-tooling/src/main/java/com/squareup/workflow1/ui/compose/tooling/Previews.kt @@ -6,7 +6,6 @@ import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactoryFinder import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.RootScreen import com.squareup.workflow1.ui.compose.ScreenComposableFactory import com.squareup.workflow1.ui.compose.ScreenComposableFactoryFinder @@ -30,7 +29,6 @@ import com.squareup.workflow1.ui.compose.asComposableFactory * ).Preview() * } */ -@WorkflowUiExperimentalApi @Composable public fun Screen.Preview( modifier: Modifier = Modifier, @@ -72,7 +70,6 @@ public fun Screen.Preview( * @param viewEnvironmentUpdater Function that configures the [ViewEnvironment] passed to this * factory. */ -@WorkflowUiExperimentalApi @Composable public fun ScreenComposableFactory.Preview( rendering: RenderingT, @@ -101,7 +98,6 @@ public fun ScreenComposableFactory.Preview( * @param viewEnvironmentUpdater Function that configures the [ViewEnvironment] passed to this * factory. */ -@WorkflowUiExperimentalApi @Composable public fun ScreenViewFactory.Preview( rendering: RenderingT, diff --git a/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/ComposeViewTreeIntegrationTest.kt b/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/ComposeViewTreeIntegrationTest.kt index 2a18319c6e..ff460dcbfe 100644 --- a/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/ComposeViewTreeIntegrationTest.kt +++ b/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/ComposeViewTreeIntegrationTest.kt @@ -35,7 +35,6 @@ import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromCode import com.squareup.workflow1.ui.ScreenViewHolder import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewRegistry -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.WorkflowViewStub import com.squareup.workflow1.ui.Wrapper import com.squareup.workflow1.ui.internal.test.IdleAfterTestRule @@ -55,7 +54,6 @@ import org.junit.Test import org.junit.rules.RuleChain import kotlin.reflect.KClass -@OptIn(WorkflowUiExperimentalApi::class) internal class ComposeViewTreeIntegrationTest { private val composeRule = createAndroidComposeRule() diff --git a/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/CompositionRootTest.kt b/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/CompositionRootTest.kt index bce16d6a7d..050cacd0c1 100644 --- a/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/CompositionRootTest.kt +++ b/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/CompositionRootTest.kt @@ -7,7 +7,6 @@ import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.createComposeRule import androidx.compose.ui.test.onNodeWithText import androidx.test.ext.junit.runners.AndroidJUnit4 -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.internal.test.IdleAfterTestRule import com.squareup.workflow1.ui.internal.test.IdlingDispatcherRule import leakcanary.DetectLeaksAfterTestSuccess @@ -17,7 +16,6 @@ import org.junit.rules.RuleChain import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) -@OptIn(WorkflowUiExperimentalApi::class) internal class CompositionRootTest { private val composeRule = createComposeRule() diff --git a/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/NoTransitionBackStackContainer.kt b/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/NoTransitionBackStackContainer.kt index f6bb3821ea..70a50fa5e9 100644 --- a/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/NoTransitionBackStackContainer.kt +++ b/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/NoTransitionBackStackContainer.kt @@ -6,7 +6,6 @@ import com.squareup.workflow1.ui.NamedScreen import com.squareup.workflow1.ui.R import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewHolder -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BackStackContainer import com.squareup.workflow1.ui.navigation.BackStackScreen @@ -16,7 +15,6 @@ import com.squareup.workflow1.ui.navigation.BackStackScreen */ // TODO (https://github.com/square/workflow-kotlin/issues/306) Remove once BackStackContainer is // transition-ignorant. -@OptIn(WorkflowUiExperimentalApi::class) internal class NoTransitionBackStackContainer(context: Context) : BackStackContainer(context) { override fun performTransition( diff --git a/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/RenderAsStateTest.kt b/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/RenderAsStateTest.kt index 5f3d2f26f2..832d65c2a7 100644 --- a/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/RenderAsStateTest.kt +++ b/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/RenderAsStateTest.kt @@ -22,7 +22,6 @@ import com.squareup.workflow1.parse import com.squareup.workflow1.readUtf8WithLength import com.squareup.workflow1.rendering import com.squareup.workflow1.stateless -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compose.RenderAsStateTest.SnapshottingWorkflow.SnapshottedRendering import com.squareup.workflow1.ui.internal.test.IdleAfterTestRule import com.squareup.workflow1.ui.internal.test.IdlingDispatcherRule @@ -46,7 +45,6 @@ import org.junit.runner.RunWith import kotlin.test.assertFailsWith @RunWith(AndroidJUnit4::class) -@OptIn(WorkflowUiExperimentalApi::class) internal class RenderAsStateTest { private val composeRule = createComposeRule() diff --git a/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/ScreenComposableFactoryTest.kt b/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/ScreenComposableFactoryTest.kt index d34545dedc..77f66cac56 100644 --- a/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/ScreenComposableFactoryTest.kt +++ b/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/ScreenComposableFactoryTest.kt @@ -20,7 +20,6 @@ import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewEnvironmentKey import com.squareup.workflow1.ui.ViewRegistry -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.WorkflowViewStub import com.squareup.workflow1.ui.internal.test.IdleAfterTestRule import com.squareup.workflow1.ui.internal.test.IdlingDispatcherRule @@ -31,7 +30,6 @@ import org.junit.Test import org.junit.rules.RuleChain import org.junit.runner.RunWith -@OptIn(WorkflowUiExperimentalApi::class) @RunWith(AndroidJUnit4::class) internal class ScreenComposableFactoryTest { diff --git a/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/WorkflowRenderingTest.kt b/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/WorkflowRenderingTest.kt index 6c93259f9a..54e4b9d2dc 100644 --- a/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/WorkflowRenderingTest.kt +++ b/workflow-ui/compose/src/androidTest/java/com/squareup/workflow1/ui/compose/WorkflowRenderingTest.kt @@ -66,7 +66,6 @@ import com.squareup.workflow1.ui.ScreenViewHolder import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewEnvironmentKey import com.squareup.workflow1.ui.ViewRegistry -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.internal.test.IdleAfterTestRule import com.squareup.workflow1.ui.internal.test.IdlingDispatcherRule import com.squareup.workflow1.ui.plus @@ -80,7 +79,6 @@ import org.junit.rules.RuleChain import org.junit.runner.RunWith import kotlin.reflect.KClass -@OptIn(WorkflowUiExperimentalApi::class) @RunWith(AndroidJUnit4::class) internal class WorkflowRenderingTest { diff --git a/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/ComposeScreen.kt b/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/ComposeScreen.kt index c61b58f7f6..1659da2fe0 100644 --- a/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/ComposeScreen.kt +++ b/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/ComposeScreen.kt @@ -4,7 +4,6 @@ import androidx.compose.runtime.Composable import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewRegistry -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * Interface implemented by a rendering class to allow it to drive a composable UI via an @@ -28,7 +27,6 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * * Example: * - * @OptIn(WorkflowUiExperimentalApi::class) * data class HelloScreen( * val message: String, * val onClick: () -> Unit @@ -73,7 +71,6 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * will be wrapped with the [CompositionRoot]. See the documentation on [CompositionRoot] for * more information. */ -@WorkflowUiExperimentalApi public interface ComposeScreen : Screen { /** @@ -87,7 +84,6 @@ public interface ComposeScreen : Screen { * Convenience function for creating anonymous [ComposeScreen]s since composable fun interfaces * aren't supported. See the [ComposeScreen] class for more information. */ -@WorkflowUiExperimentalApi public inline fun ComposeScreen( crossinline content: @Composable () -> Unit ): ComposeScreen = object : ComposeScreen { diff --git a/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/CompositionRoot.kt b/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/CompositionRoot.kt index 0a209a4a75..85c263acd2 100644 --- a/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/CompositionRoot.kt +++ b/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/CompositionRoot.kt @@ -9,7 +9,6 @@ import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.staticCompositionLocalOf import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * Used by [WrappedWithRootIfNecessary] to ensure the [CompositionRoot] is only applied once. @@ -36,7 +35,6 @@ public typealias CompositionRoot = @Composable (content: @Composable () -> Unit) * * You will rarely use this directly, prefer [ViewEnvironment.withComposeInteropSupport] */ -@WorkflowUiExperimentalApi public fun ScreenComposableFactoryFinder.withCompositionRoot( root: CompositionRoot ): ScreenComposableFactoryFinder { @@ -75,7 +73,6 @@ internal fun WrappedWithRootIfNecessary( } } -@WorkflowUiExperimentalApi private fun ScreenComposableFactoryFinder.mapFactories( transform: (ScreenComposableFactory<*>) -> ScreenComposableFactory<*> ): ScreenComposableFactoryFinder = object : ScreenComposableFactoryFinder { diff --git a/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/LocalWorkflowEnvironment.kt b/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/LocalWorkflowEnvironment.kt index 7361c920f3..72dea062b1 100644 --- a/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/LocalWorkflowEnvironment.kt +++ b/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/LocalWorkflowEnvironment.kt @@ -3,8 +3,6 @@ package com.squareup.workflow1.ui.compose import androidx.compose.runtime.ProvidableCompositionLocal import androidx.compose.runtime.compositionLocalOf import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@WorkflowUiExperimentalApi public val LocalWorkflowEnvironment: ProvidableCompositionLocal = compositionLocalOf { ViewEnvironment.EMPTY } diff --git a/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/ScreenComposableFactory.kt b/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/ScreenComposableFactory.kt index 2a8668f358..54d0da49aa 100644 --- a/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/ScreenComposableFactory.kt +++ b/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/ScreenComposableFactory.kt @@ -20,19 +20,16 @@ import com.squareup.workflow1.ui.ScreenViewHolder import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewRegistry import com.squareup.workflow1.ui.ViewRegistry.Key -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.androidx.OnBackPressedDispatcherOwnerKey import com.squareup.workflow1.ui.show import com.squareup.workflow1.ui.startShowing import kotlin.reflect.KClass -@WorkflowUiExperimentalApi public inline fun ScreenComposableFactory( noinline content: @Composable (rendering: ScreenT) -> Unit ): ScreenComposableFactory = ScreenComposableFactory(ScreenT::class, content) @PublishedApi -@WorkflowUiExperimentalApi internal fun ScreenComposableFactory( type: KClass, content: @Composable (rendering: ScreenT) -> Unit @@ -78,7 +75,6 @@ internal fun ScreenComposableFactory( * workflow = MyWorkflow.mapRendering { it.withEnvironment(viewEnvironment) } * ) */ -@WorkflowUiExperimentalApi public interface ScreenComposableFactory : ViewRegistry.Entry { public val type: KClass @@ -98,7 +94,6 @@ public interface ScreenComposableFactory : ViewRegistry.Ent * instances to [WorkflowRendering], which will apply the [ScreenComposableFactory] * and [ScreenComposableFactoryFinder] machinery for you. */ -@WorkflowUiExperimentalApi public fun ScreenT.toComposableFactory( environment: ViewEnvironment ): ScreenComposableFactory { @@ -113,7 +108,6 @@ public fun ScreenT.toComposableFactory( * It is unusual to use this function directly, it is mainly an implementation detail * of [ViewEnvironment.withComposeInteropSupport]. */ -@WorkflowUiExperimentalApi public fun ScreenComposableFactory.asViewFactory(): ScreenViewFactory { @@ -160,7 +154,6 @@ public fun ScreenComposableFactory.asViewFactory(): * It is unusual to use this function directly, it is mainly an implementation detail * of [ViewEnvironment.withComposeInteropSupport]. */ -@WorkflowUiExperimentalApi public fun ScreenViewFactory.asComposableFactory(): ScreenComposableFactory { return object : ScreenComposableFactory { diff --git a/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/ScreenComposableFactoryFinder.kt b/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/ScreenComposableFactoryFinder.kt index 23eaaed685..42004654ce 100644 --- a/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/ScreenComposableFactoryFinder.kt +++ b/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/ScreenComposableFactoryFinder.kt @@ -9,10 +9,8 @@ import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewEnvironmentKey import com.squareup.workflow1.ui.ViewRegistry import com.squareup.workflow1.ui.ViewRegistry.Key -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.getFactoryFor -@WorkflowUiExperimentalApi public interface ScreenComposableFactoryFinder { public fun getComposableFactoryForRendering( environment: ViewEnvironment, @@ -62,7 +60,6 @@ public interface ScreenComposableFactoryFinder { } } -@WorkflowUiExperimentalApi public fun ScreenComposableFactoryFinder.requireComposableFactoryForRendering( environment: ViewEnvironment, rendering: ScreenT diff --git a/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/TextControllerAsMutableState.kt b/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/TextControllerAsMutableState.kt index f78073649a..ee86b76865 100644 --- a/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/TextControllerAsMutableState.kt +++ b/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/TextControllerAsMutableState.kt @@ -1,5 +1,3 @@ -@file:OptIn(WorkflowUiExperimentalApi::class) - package com.squareup.workflow1.ui.compose import androidx.compose.runtime.Composable @@ -9,7 +7,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.snapshotFlow import com.squareup.workflow1.ui.TextController -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import kotlinx.coroutines.launch /** diff --git a/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/ViewEnvironmentWithComposeSupport.kt b/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/ViewEnvironmentWithComposeSupport.kt index af49eefcda..3dc7a8e11a 100644 --- a/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/ViewEnvironmentWithComposeSupport.kt +++ b/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/ViewEnvironmentWithComposeSupport.kt @@ -7,7 +7,6 @@ import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewFactoryFinder import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * Alternative to [WorkflowLayout][com.squareup.workflow1.ui.WorkflowLayout] @@ -19,7 +18,6 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * [BodyAndOverlaysScreen][com.squareup.workflow1.ui.navigation.BodyAndOverlaysScreen] * are not pure Compose, and must call [ViewEnvironment.withComposeInteropSupport] first. */ -@WorkflowUiExperimentalApi @Composable public fun ViewEnvironment.RootScreen( screen: Screen, modifier: Modifier = Modifier @@ -51,7 +49,6 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * [composition locals][androidx.compose.runtime.CompositionLocal] that all * [ScreenComposableFactory] factories need access to, such as UI themes. */ -@WorkflowUiExperimentalApi public fun ViewEnvironment.withComposeInteropSupport( compositionRootOrNull: CompositionRoot? = null ): ViewEnvironment { diff --git a/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/WorkflowRendering.kt b/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/WorkflowRendering.kt index 65f6068075..d1e8161bb0 100644 --- a/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/WorkflowRendering.kt +++ b/workflow-ui/compose/src/main/java/com/squareup/workflow1/ui/compose/WorkflowRendering.kt @@ -11,7 +11,6 @@ import com.squareup.workflow1.ui.Compatible import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ScreenViewHolder import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.WorkflowViewStub /** @@ -43,7 +42,6 @@ import com.squareup.workflow1.ui.WorkflowViewStub * * @throws IllegalArgumentException if no factory can be found for [rendering]'s type. */ -@WorkflowUiExperimentalApi @Composable public fun WorkflowRendering( rendering: Screen, diff --git a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/AndroidRenderWorkflowInTest.kt b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/AndroidRenderWorkflowInTest.kt index 8a493351da..0dadefba2b 100644 --- a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/AndroidRenderWorkflowInTest.kt +++ b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/AndroidRenderWorkflowInTest.kt @@ -18,7 +18,6 @@ import org.junit.Rule import org.junit.Test import org.junit.rules.RuleChain -@OptIn(WorkflowUiExperimentalApi::class) internal class AndroidRenderWorkflowInTest { @get:Rule val scenarioRule = ActivityScenarioRule(ComponentActivity::class.java) private val scenario get() = scenarioRule.scenario diff --git a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/WorkflowViewStubLifecycleActivity.kt b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/WorkflowViewStubLifecycleActivity.kt index e4afc76adf..dbee1bf8fb 100644 --- a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/WorkflowViewStubLifecycleActivity.kt +++ b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/WorkflowViewStubLifecycleActivity.kt @@ -6,7 +6,6 @@ import com.squareup.workflow1.ui.WorkflowViewStubLifecycleActivity.TestRendering import com.squareup.workflow1.ui.WorkflowViewStubLifecycleActivity.TestRendering.RecurseRendering import com.squareup.workflow1.ui.internal.test.AbstractLifecycleTestActivity -@OptIn(WorkflowUiExperimentalApi::class) internal class WorkflowViewStubLifecycleActivity : AbstractLifecycleTestActivity() { sealed class TestRendering : Screen { diff --git a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/WorkflowViewStubLifecycleTest.kt b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/WorkflowViewStubLifecycleTest.kt index 21d516d48c..99bcb114ec 100644 --- a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/WorkflowViewStubLifecycleTest.kt +++ b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/WorkflowViewStubLifecycleTest.kt @@ -41,7 +41,6 @@ import org.junit.rules.RuleChain /** * Tests for [WorkflowViewStub]'s [LifecycleOwner] integration. */ -@OptIn(WorkflowUiExperimentalApi::class) internal class WorkflowViewStubLifecycleTest { private val scenarioRule = diff --git a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/BackStackContainerPersistenceLifecycleTest.kt b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/BackStackContainerPersistenceLifecycleTest.kt index 415c27424d..7a3c73afa1 100644 --- a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/BackStackContainerPersistenceLifecycleTest.kt +++ b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/BackStackContainerPersistenceLifecycleTest.kt @@ -9,7 +9,6 @@ import androidx.lifecycle.Lifecycle.State.STARTED import androidx.test.ext.junit.rules.ActivityScenarioRule import androidx.test.filters.SdkSuppress import com.google.common.truth.Truth.assertThat -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.internal.test.IdlingDispatcherRule import com.squareup.workflow1.ui.navigation.fixtures.BackStackContainerLifecycleActivity import com.squareup.workflow1.ui.navigation.fixtures.BackStackContainerLifecycleActivity.TestRendering.LeafRendering @@ -26,7 +25,6 @@ import org.junit.rules.RuleChain * Uses a custom subclass, [NoTransitionBackStackContainer], to ensure transitions * are synchronous. */ -@OptIn(WorkflowUiExperimentalApi::class) internal class BackStackContainerPersistenceLifecycleTest { private val scenarioRule = diff --git a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/BackStackContainerTest.kt b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/BackStackContainerTest.kt index ea7c236e9d..25b542a1bb 100644 --- a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/BackStackContainerTest.kt +++ b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/BackStackContainerTest.kt @@ -18,13 +18,11 @@ import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewHolder import com.squareup.workflow1.ui.ViewEnvironment.Companion.EMPTY -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.show import com.squareup.workflow1.ui.showing import org.junit.Rule import org.junit.Test -@OptIn(WorkflowUiExperimentalApi::class) internal class BackStackContainerTest { @get:Rule val scenarioRule = ActivityScenarioRule(ComponentActivity::class.java) private val scenario get() = scenarioRule.scenario diff --git a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/DialogIntegrationTest.kt b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/DialogIntegrationTest.kt index 042c4ae43a..58c3463ed2 100644 --- a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/DialogIntegrationTest.kt +++ b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/DialogIntegrationTest.kt @@ -23,13 +23,11 @@ import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewHolder import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.WorkflowLayout -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.withEnvironment import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith -@OptIn(WorkflowUiExperimentalApi::class) @RunWith(AndroidJUnit4::class) internal class DialogIntegrationTest { @get:Rule val scenarioRule = ActivityScenarioRule(ComponentActivity::class.java) diff --git a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/ViewBackHandlerTest.kt b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/ViewBackHandlerTest.kt index a6a0c7a755..1d4bc30f52 100644 --- a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/ViewBackHandlerTest.kt +++ b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/ViewBackHandlerTest.kt @@ -4,7 +4,6 @@ import android.view.View import androidx.activity.ComponentActivity import androidx.test.ext.junit.rules.ActivityScenarioRule import com.google.common.truth.Truth.assertThat -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.androidx.WorkflowLifecycleOwner import com.squareup.workflow1.ui.internal.test.IdlingDispatcherRule import leakcanary.DetectLeaksAfterTestSuccess @@ -12,7 +11,6 @@ import org.junit.Rule import org.junit.Test import org.junit.rules.RuleChain -@OptIn(WorkflowUiExperimentalApi::class) internal class ViewBackHandlerTest { private val scenarioRule = ActivityScenarioRule(ComponentActivity::class.java) private val scenario get() = scenarioRule.scenario diff --git a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/ViewStateCacheTest.kt b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/ViewStateCacheTest.kt index f0e1f29883..8bde35628e 100644 --- a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/ViewStateCacheTest.kt +++ b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/ViewStateCacheTest.kt @@ -15,7 +15,6 @@ import com.squareup.workflow1.ui.NamedScreen import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ScreenViewHolder import com.squareup.workflow1.ui.ViewEnvironment.Companion.EMPTY -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.androidx.WorkflowLifecycleOwner import com.squareup.workflow1.ui.navigation.fixtures.ViewStateTestView import com.squareup.workflow1.ui.show @@ -28,7 +27,6 @@ import org.junit.runner.RunWith * instead of the `test` one because it involves non-trivial interactions with view lifecycle * methods, and it is risky to rely on fake implementations of views. */ -@OptIn(WorkflowUiExperimentalApi::class) @RunWith(AndroidJUnit4::class) internal class ViewStateCacheTest { diff --git a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/fixtures/BackStackContainerLifecycleActivity.kt b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/fixtures/BackStackContainerLifecycleActivity.kt index e2fd271941..ff90f9c2cb 100644 --- a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/fixtures/BackStackContainerLifecycleActivity.kt +++ b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/fixtures/BackStackContainerLifecycleActivity.kt @@ -16,7 +16,6 @@ import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromCode import com.squareup.workflow1.ui.ScreenViewHolder import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewRegistry -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.WorkflowViewStub import com.squareup.workflow1.ui.internal.test.AbstractLifecycleTestActivity import com.squareup.workflow1.ui.navigation.BackStackScreen @@ -26,7 +25,6 @@ import com.squareup.workflow1.ui.navigation.fixtures.BackStackContainerLifecycle import org.hamcrest.Matcher import org.hamcrest.Matchers.equalTo -@OptIn(WorkflowUiExperimentalApi::class) internal class BackStackContainerLifecycleActivity : AbstractLifecycleTestActivity() { /** @@ -50,7 +48,6 @@ internal class BackStackContainerLifecycleActivity : AbstractLifecycleTestActivi data class RecurseRendering(val wrappedBackstack: List) : TestRendering() - @OptIn(WorkflowUiExperimentalApi::class) data class OuterRendering(val name: String) : TestRendering() { val backStack = BackStackScreen(LeafRendering("nested leaf in $name")) } diff --git a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/fixtures/NoTransitionBackStackContainer.kt b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/fixtures/NoTransitionBackStackContainer.kt index 230a1065f5..deda91d51f 100644 --- a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/fixtures/NoTransitionBackStackContainer.kt +++ b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/fixtures/NoTransitionBackStackContainer.kt @@ -6,7 +6,6 @@ import com.squareup.workflow1.ui.NamedScreen import com.squareup.workflow1.ui.R import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewHolder -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BackStackContainer import com.squareup.workflow1.ui.navigation.BackStackScreen @@ -14,7 +13,6 @@ import com.squareup.workflow1.ui.navigation.BackStackScreen * A subclass of [BackStackContainer] that disables transitions to make it simpler to test the * actual backstack logic. Views are just swapped instantly. */ -@OptIn(WorkflowUiExperimentalApi::class) internal class NoTransitionBackStackContainer(context: Context) : BackStackContainer(context) { override fun performTransition( oldHolderMaybe: ScreenViewHolder>?, diff --git a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/fixtures/ViewStateTestView.kt b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/fixtures/ViewStateTestView.kt index 76476efeac..ff1a828382 100644 --- a/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/fixtures/ViewStateTestView.kt +++ b/workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/navigation/fixtures/ViewStateTestView.kt @@ -4,7 +4,6 @@ import android.content.Context import android.os.Parcel import android.os.Parcelable import android.os.Parcelable.Creator -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.internal.test.AbstractLifecycleTestActivity.LeafView import com.squareup.workflow1.ui.navigation.fixtures.BackStackContainerLifecycleActivity.TestRendering.LeafRendering @@ -12,7 +11,6 @@ import com.squareup.workflow1.ui.navigation.fixtures.BackStackContainerLifecycle * Simple view that has a string [viewState] property that will be saved and restored by the * [onSaveInstanceState] and [onRestoreInstanceState] methods. */ -@OptIn(WorkflowUiExperimentalApi::class) internal class ViewStateTestView( context: Context, private val crashOnRestore: Boolean = false diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/AndroidRenderWorkflow.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/AndroidRenderWorkflow.kt index 1d0c194176..02e5bc00fd 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/AndroidRenderWorkflow.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/AndroidRenderWorkflow.kt @@ -25,7 +25,6 @@ import kotlinx.coroutines.flow.stateIn * one -- which is likely to be the case most of the time if your root `RenderingT` * implementation is a `data class`. * - * @OptIn(WorkflowUiExperimentalApi::class) * class HelloWorkflowActivity : AppCompatActivity() { * override fun onCreate(savedInstanceState: Bundle?) { * super.onCreate(savedInstanceState) @@ -38,7 +37,6 @@ import kotlinx.coroutines.flow.stateIn * } * * class HelloViewModel(savedState: SavedStateHandle) : ViewModel() { - * @OptIn(WorkflowUiExperimentalApi::class) * val renderings: StateFlow = renderWorkflowIn( * workflow = HelloWorkflow, * scope = this.viewModelScope, @@ -80,7 +78,6 @@ import kotlinx.coroutines.flow.stateIn * A [StateFlow] of [RenderingT]s that will emit any time the root workflow creates a new * rendering. */ -@WorkflowUiExperimentalApi public fun renderWorkflowIn( workflow: Workflow, scope: CoroutineScope, @@ -106,7 +103,6 @@ public fun renderWorkflowIn( * An Android `ViewModel`-friendly wrapper for [com.squareup.workflow1.renderWorkflowIn], * for use with a [workflow] that requires one input value ([prop]) to run. * - * @OptIn(WorkflowUiExperimentalApi::class) * class HelloNameWorkflowActivity : AppCompatActivity() { * override fun onCreate(savedInstanceState: Bundle?) { * super.onCreate(savedInstanceState) @@ -119,7 +115,6 @@ public fun renderWorkflowIn( * } * * class HelloNameViewModel(savedState: SavedStateHandle) : ViewModel() { - * @OptIn(WorkflowUiExperimentalApi::class) * val renderings: StateFlow = renderWorkflowIn( * workflow = HelloNameWorkflow, * scope = this.viewModelScope, @@ -167,7 +162,6 @@ public fun renderWorkflowIn( * A [StateFlow] of [RenderingT]s that will emit any time the root workflow creates a new * rendering. */ -@WorkflowUiExperimentalApi public fun renderWorkflowIn( workflow: Workflow, scope: CoroutineScope, @@ -195,7 +189,6 @@ public fun renderWorkflowIn( * For example, for a workflow that uses [android.content.Intent] as its `PropsT` type, * you could do something like this: * - * @OptIn(WorkflowUiExperimentalApi::class) * class HelloIntentsWorkflowActivity : AppCompatActivity() { * * override fun onCreate(savedInstanceState: Bundle?) { @@ -220,7 +213,6 @@ public fun renderWorkflowIn( * class HelloIntentsViewModel(savedState: SavedStateHandle) : ViewModel() { * val intents = MutableStateFlow(Intent()) * - * @OptIn(WorkflowUiExperimentalApi::class) * val renderings: StateFlow = renderWorkflowIn( * workflow = HelloWorkflow, * scope = this.viewModelScope, @@ -269,7 +261,6 @@ public fun renderWorkflowIn( * A [StateFlow] of [RenderingT]s that will emit any time the root workflow creates a new * rendering. */ -@WorkflowUiExperimentalApi public fun renderWorkflowIn( workflow: Workflow, scope: CoroutineScope, @@ -303,7 +294,6 @@ public fun renderWorkflowIn( * overload of [renderWorkflowIn]. For use in obscure cases like swapping between * different Workflow runtimes in an app. Most apps will not use this function. */ -@WorkflowUiExperimentalApi public fun SavedStateHandle.removeWorkflowState() { remove(KEY) } diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/AndroidScreen.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/AndroidScreen.kt index 143fa25538..65b752b199 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/AndroidScreen.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/AndroidScreen.kt @@ -39,7 +39,6 @@ package com.squareup.workflow1.ui * * @see com.squareup.workflow1.ui.navigation.AndroidOverlay */ -@WorkflowUiExperimentalApi public interface AndroidScreen> : Screen { /** * Used to build instances of [android.view.View] as needed to diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/LayoutScreenViewFactory.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/LayoutScreenViewFactory.kt index 2b5a26c526..a2de8e9fe5 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/LayoutScreenViewFactory.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/LayoutScreenViewFactory.kt @@ -11,7 +11,6 @@ import kotlin.reflect.KClass * [ViewRunner factory][runnerConstructor] function. See [ScreenViewRunner] for * details. */ -@WorkflowUiExperimentalApi @PublishedApi internal class LayoutScreenViewFactory( override val type: KClass, diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ParcelableTextController.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ParcelableTextController.kt index 751c70e22a..3a24e630cd 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ParcelableTextController.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ParcelableTextController.kt @@ -7,7 +7,6 @@ import android.os.Parcelable.Creator /** * [Parcelable] implementation of [TextController]. */ -@WorkflowUiExperimentalApi public class ParcelableTextController private constructor( controllerImplementation: TextController ) : TextController by controllerImplementation, Parcelable { diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/RealScreenViewHolder.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/RealScreenViewHolder.kt index 4a4440dcc3..d12572c333 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/RealScreenViewHolder.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/RealScreenViewHolder.kt @@ -2,7 +2,6 @@ package com.squareup.workflow1.ui import android.view.View -@WorkflowUiExperimentalApi internal class RealScreenViewHolder( initialEnvironment: ViewEnvironment, override val view: View, diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ScreenViewFactory.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ScreenViewFactory.kt index 20d9488505..4c7ff2fbb0 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ScreenViewFactory.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ScreenViewFactory.kt @@ -12,7 +12,6 @@ import com.squareup.workflow1.ui.ScreenViewFactory.Companion.fromViewBinding import com.squareup.workflow1.ui.ViewRegistry.Key import kotlin.reflect.KClass -@WorkflowUiExperimentalApi public typealias ViewBindingInflater = (LayoutInflater, ViewGroup?, Boolean) -> BindingT /** @@ -48,7 +47,6 @@ public typealias ViewBindingInflater = (LayoutInflater, ViewGroup?, Bo * [WorkflowLifecycleOwner.destroyOnDetach][com.squareup.workflow1.ui.androidx.WorkflowLifecycleOwner.destroyOnDetach] * on the managed [view][ScreenViewHolder.view]! */ -@WorkflowUiExperimentalApi public interface ScreenViewFactory : ViewRegistry.Entry { public val type: KClass @@ -137,7 +135,6 @@ public interface ScreenViewFactory : ViewRegistry.Entry fromCode( crossinline buildView: ( initialRendering: ScreenT, @@ -176,7 +173,6 @@ public interface ScreenViewFactory : ViewRegistry.Entry forWrapper( crossinline prepEnvironment: (environment: ViewEnvironment) -> ViewEnvironment = { it }, crossinline prepContext: ( @@ -240,7 +236,6 @@ public interface ScreenViewFactory : ViewRegistry.Entry map( crossinline prepEnvironment: (environment: ViewEnvironment) -> ViewEnvironment = { it }, crossinline prepContext: ( @@ -282,7 +277,6 @@ public interface ScreenViewFactory : ViewRegistry.Entry ScreenT.toViewFactory( environment: ViewEnvironment ): ScreenViewFactory { @@ -300,7 +294,6 @@ public fun ScreenT.toViewFactory( * [WorkflowLifecycleOwner.installOn][com.squareup.workflow1.ui.androidx.WorkflowLifecycleOwner.installOn]), * provide a [viewStarter]. */ -@WorkflowUiExperimentalApi public fun ScreenViewHolder.startShowing( initialRendering: ScreenT, initialEnvironment: ViewEnvironment, @@ -325,7 +318,6 @@ public fun ScreenViewHolder.startShowing( * [WorkflowLifecycleOwner.installOn][com.squareup.workflow1.ui.androidx.WorkflowLifecycleOwner.installOn]), * at just the right moment. */ -@WorkflowUiExperimentalApi public fun interface ViewStarter { /** Called from [ScreenViewFactory.startShowing]. [doStart] must be invoked. */ public fun startView( @@ -338,7 +330,6 @@ public fun interface ViewStarter { * Convenience that combines [ScreenViewFactory.buildView] and [ScreenViewHolder.startShowing], * since we rarely need to do work between those two calls. */ -@WorkflowUiExperimentalApi public fun ScreenViewFactory.startShowing( initialRendering: ScreenT, initialEnvironment: ViewEnvironment, @@ -362,7 +353,6 @@ public fun ScreenViewFactory.startShowing( * * @see [ScreenViewFactory.map]. */ -@WorkflowUiExperimentalApi public inline fun ScreenViewFactory.map( noinline transform: (wrapperScreen: SourceT) -> TransformedT, crossinline prepEnvironment: (environment: ViewEnvironment) -> ViewEnvironment = { e -> e }, diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ScreenViewFactoryFinder.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ScreenViewFactoryFinder.kt index bddb6da7ab..a8da052b1f 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ScreenViewFactoryFinder.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ScreenViewFactoryFinder.kt @@ -48,7 +48,6 @@ import com.squareup.workflow1.ui.navigation.BodyAndOverlaysScreen * } * } */ -@WorkflowUiExperimentalApi public interface ScreenViewFactoryFinder { public fun getViewFactoryForRendering( environment: ViewEnvironment, @@ -84,7 +83,6 @@ public interface ScreenViewFactoryFinder { } } -@WorkflowUiExperimentalApi public fun ScreenViewFactoryFinder.requireViewFactoryForRendering( environment: ViewEnvironment, rendering: ScreenT diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ScreenViewHolder.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ScreenViewHolder.kt index 54b5e6c714..5fe3263bef 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ScreenViewHolder.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ScreenViewHolder.kt @@ -10,7 +10,6 @@ import android.view.View * Do not call [runner] directly. Use [ScreenViewHolder.show] instead. Or most commonly, * allow [WorkflowViewStub.show] to call it for you. */ -@WorkflowUiExperimentalApi public interface ScreenViewHolder { /** The [View] managed by this holder, and updated via [runner] */ public val view: View @@ -49,7 +48,6 @@ public interface ScreenViewHolder { * runner provides the implementation for the holder's [ScreenViewHolder.show] * method. */ -@WorkflowUiExperimentalApi public fun interface ScreenViewRunner { public fun showRendering( rendering: ScreenT, @@ -61,7 +59,6 @@ public fun interface ScreenViewRunner { * Returns true if [screen] is [compatible] with the [Screen] instance that * was last [shown][show] by the [view][ScreenViewHolder.view] managed by the receiver. */ -@WorkflowUiExperimentalApi public fun ScreenViewHolder<*>.canShow(screen: Screen): Boolean { // The null case covers bootstrapping, during the first call to show() // from ScreenViewFactory.start(). @@ -72,7 +69,6 @@ public fun ScreenViewHolder<*>.canShow(screen: Screen): Boolean { * Updates the [view][ScreenViewHolder.view] managed by the receiver to * display [screen], and updates the receiver's [environment] as well. */ -@WorkflowUiExperimentalApi public fun ScreenViewHolder.show( screen: ScreenT, environment: ViewEnvironment @@ -92,6 +88,5 @@ public fun ScreenViewHolder.show( * the receiver's `ScreenT` type parameter, e.g. if a * [mapping view factory][ScreenViewFactory.map] is in use. */ -@WorkflowUiExperimentalApi public val ScreenViewHolder<*>.showing: Screen get() = view.screen diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/TextControllerControlEditText.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/TextControllerControlEditText.kt index 7ae114ef44..50d834db3f 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/TextControllerControlEditText.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/TextControllerControlEditText.kt @@ -17,7 +17,6 @@ import kotlinx.coroutines.suspendCancellableCoroutine * * See [TextController] for more documentation. */ -@WorkflowUiExperimentalApi public fun TextController.control(view: EditText) { // Do nothing if already subscribed on a previous update pass and the coroutine is still active. val registeredController = @@ -51,7 +50,6 @@ public fun TextController.control(view: EditText) { view.setTag(R.id.text_controller_rendering, TextControllerSubscription(this, subscription)) } -@OptIn(WorkflowUiExperimentalApi::class) private class TextControllerSubscription( val controller: TextController, val subscription: Job diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ViewBindingScreenViewFactory.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ViewBindingScreenViewFactory.kt index c9ab9cd129..4fc8cb6134 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ViewBindingScreenViewFactory.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ViewBindingScreenViewFactory.kt @@ -5,7 +5,6 @@ import android.view.ViewGroup import androidx.viewbinding.ViewBinding import kotlin.reflect.KClass -@WorkflowUiExperimentalApi @PublishedApi internal class ViewBindingScreenViewFactory( override val type: KClass, diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ViewLaunchWhenAttached.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ViewLaunchWhenAttached.kt index 9212bc742b..0895951995 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ViewLaunchWhenAttached.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ViewLaunchWhenAttached.kt @@ -55,7 +55,6 @@ import kotlin.coroutines.EmptyCoroutineContext * the launched coroutine will be cancelled. The returned job is meant to provide a way to * cancel the launched coroutine before the view is detached. */ -@WorkflowUiExperimentalApi internal fun View.launchWhenAttached( context: CoroutineContext = EmptyCoroutineContext, block: suspend CoroutineScope.() -> Unit @@ -77,7 +76,6 @@ internal fun View.launchWhenAttached( return attachedScope.coroutineScope.coroutineContext.job } -@WorkflowUiExperimentalApi private fun View.ensureAttachedScope(): AttachedScope { // Makes for clearer code below. val view = this diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ViewShowRendering.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ViewShowRendering.kt index 273187f195..fe41c0cca1 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ViewShowRendering.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/ViewShowRendering.kt @@ -7,7 +7,6 @@ import android.view.View * or throws a [NullPointerException] if the receiver was not created via * [ScreenViewFactory.startShowing]. */ -@WorkflowUiExperimentalApi public var View.screen: Screen get() = checkNotNull(screenOrNull) { "Expected to find a Screen in tag R.id.workflow_screen" } internal set(value) = setTag(R.id.workflow_screen, value) @@ -16,7 +15,6 @@ public var View.screen: Screen * Returns the most recent [Screen] rendering [shown][ScreenViewHolder.show] in this view, * or `null` if the receiver was not initialized via [ScreenViewHolder.startShowing]. */ -@WorkflowUiExperimentalApi public val View.screenOrNull: Screen? get() = getTag(R.id.workflow_screen) as? Screen @@ -24,6 +22,5 @@ public val View.screenOrNull: Screen? * Returns the most recent [ViewEnvironment] applied to this view, or null * if the receiver was not initialized via [ScreenViewHolder.startShowing]. */ -@WorkflowUiExperimentalApi public val View.environmentOrNull: ViewEnvironment? get() = getTag(R.id.workflow_environment) as? ViewEnvironment diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/WorkflowLayout.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/WorkflowLayout.kt index 4ba6bc3ef7..790796c680 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/WorkflowLayout.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/WorkflowLayout.kt @@ -35,7 +35,6 @@ import kotlin.coroutines.EmptyCoroutineContext * See [com.squareup.workflow1.ui.renderWorkflowIn] for typical use * with a [com.squareup.workflow1.Workflow]. */ -@WorkflowUiExperimentalApi public class WorkflowLayout( context: Context, attributeSet: AttributeSet? = null diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/WorkflowViewStub.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/WorkflowViewStub.kt index 66f8b38ee2..3338014c98 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/WorkflowViewStub.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/WorkflowViewStub.kt @@ -64,7 +64,6 @@ import com.squareup.workflow1.ui.androidx.WorkflowLifecycleOwner * Use [replaceOldViewInParent] to customize replacing [actual] with a new view, e.g. * for animated transitions. */ -@WorkflowUiExperimentalApi public class WorkflowViewStub @JvmOverloads constructor( context: Context, attributeSet: AttributeSet? = null, diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/KeyedSavedStateRegistryOwner.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/KeyedSavedStateRegistryOwner.kt index 9b01eff68c..8e09e3b01c 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/KeyedSavedStateRegistryOwner.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/KeyedSavedStateRegistryOwner.kt @@ -5,7 +5,6 @@ import androidx.savedstate.SavedStateRegistry import androidx.savedstate.SavedStateRegistryController import androidx.savedstate.SavedStateRegistryOwner import androidx.savedstate.findViewTreeSavedStateRegistryOwner -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * The implementation of [SavedStateRegistryOwner] that should be installed on every immediate @@ -23,7 +22,6 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * @param lifecycleOwner The [LifecycleOwner] that will be delegated to by this instance. * (Required because [SavedStateRegistryOwner] extends [LifecycleOwner] for no clear reason.) */ -@WorkflowUiExperimentalApi internal class KeyedSavedStateRegistryOwner internal constructor( val key: String, lifecycleOwner: LifecycleOwner diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/OnBackPressedDispatcherOwnerKey.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/OnBackPressedDispatcherOwnerKey.kt index cb8ffb8ac3..111bea3ab5 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/OnBackPressedDispatcherOwnerKey.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/OnBackPressedDispatcherOwnerKey.kt @@ -2,7 +2,6 @@ package com.squareup.workflow1.ui.androidx import androidx.activity.OnBackPressedDispatcherOwner import com.squareup.workflow1.ui.ViewEnvironmentKey -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * Used by container classes to ensure that @@ -10,7 +9,6 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * works before new views are attached to their parents. Not intended for use by * feature code. */ -@WorkflowUiExperimentalApi public object OnBackPressedDispatcherOwnerKey : ViewEnvironmentKey() { override val default: OnBackPressedDispatcherOwner get() = error("Unset") diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/WorkflowAndroidXSupport.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/WorkflowAndroidXSupport.kt index d8b23d9a3e..4eb5d017de 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/WorkflowAndroidXSupport.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/WorkflowAndroidXSupport.kt @@ -10,7 +10,6 @@ import androidx.lifecycle.findViewTreeLifecycleOwner import androidx.savedstate.SavedStateRegistryOwner import androidx.savedstate.findViewTreeSavedStateRegistryOwner import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import kotlin.reflect.KClass import kotlin.reflect.cast @@ -23,7 +22,6 @@ public object WorkflowAndroidXSupport { * * @throws IllegalArgumentException if [context] is unmanaged */ - @WorkflowUiExperimentalApi public fun lifecycleOwnerFromContext(context: Context): LifecycleOwner = requireNotNull(context.ownerOrNull(LifecycleOwner::class)) { "Expected $context to lead to a LifecycleOwner" @@ -35,7 +33,6 @@ public object WorkflowAndroidXSupport { * null. This differs from [findViewTreeLifecycleOwner] because it will check the * [View.getContext] if no owner is found in the view tree. */ - @WorkflowUiExperimentalApi public fun lifecycleOwnerFromViewTreeOrContextOrNull(view: View): LifecycleOwner? = view.findViewTreeLifecycleOwner() ?: view.context.ownerOrNull(LifecycleOwner::class) @@ -46,7 +43,6 @@ public object WorkflowAndroidXSupport { * [findViewTreeSavedStateRegistryOwner] because it will check the [View.getContext] if no owner * is found in the view tree. */ - @WorkflowUiExperimentalApi public fun stateRegistryOwnerFromViewTreeOrContext(view: View): SavedStateRegistryOwner = checkNotNull(stateRegistryOwnerFromViewTreeOrContextOrNull(view)) { "Expected to find a SavedStateRegistryOwner either in a parent view or the Context of $view" @@ -65,7 +61,6 @@ public object WorkflowAndroidXSupport { * * @throws IllegalArgumentException if no [OnBackPressedDispatcherOwner] can be found */ - @WorkflowUiExperimentalApi public fun ViewEnvironment.onBackPressedDispatcherOwner( container: View ): OnBackPressedDispatcherOwner { @@ -84,7 +79,6 @@ public object WorkflowAndroidXSupport { * [findViewTreeOnBackPressedDispatcherOwner] method, and if that fails * checks its [Context][View.getContext]. */ - @WorkflowUiExperimentalApi public fun View.onBackPressedDispatcherOwnerOrNull(): OnBackPressedDispatcherOwner? { return findViewTreeOnBackPressedDispatcherOwner() ?: context.ownerOrNull(OnBackPressedDispatcherOwner::class) @@ -97,8 +91,9 @@ public object WorkflowAndroidXSupport { * [findViewTreeSavedStateRegistryOwner] because it will check the [View.getContext] if no owner * is found in the view tree. */ - @WorkflowUiExperimentalApi - private fun stateRegistryOwnerFromViewTreeOrContextOrNull(view: View): SavedStateRegistryOwner? = + private fun stateRegistryOwnerFromViewTreeOrContextOrNull( + view: View + ): SavedStateRegistryOwner? = (view.findViewTreeSavedStateRegistryOwner()) ?: view.context.ownerOrNull(SavedStateRegistryOwner::class) diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/WorkflowLifecycleOwner.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/WorkflowLifecycleOwner.kt index 3f3f29cc75..6d096e54db 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/WorkflowLifecycleOwner.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/WorkflowLifecycleOwner.kt @@ -17,7 +17,6 @@ import androidx.lifecycle.LifecycleRegistry import androidx.lifecycle.LifecycleRegistry.Companion.createUnsafe import androidx.lifecycle.findViewTreeLifecycleOwner import androidx.lifecycle.setViewTreeLifecycleOwner -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.androidx.WorkflowAndroidXSupport.lifecycleOwnerFromViewTreeOrContextOrNull import com.squareup.workflow1.ui.androidx.WorkflowLifecycleOwner.Companion.get import com.squareup.workflow1.ui.androidx.WorkflowLifecycleOwner.Companion.installOn @@ -40,7 +39,6 @@ import com.squareup.workflow1.ui.androidx.WorkflowLifecycleOwner.Companion.insta * * Set a [WorkflowLifecycleOwner] on a view by calling [installOn], and read it back using [get]. */ -@WorkflowUiExperimentalApi public interface WorkflowLifecycleOwner : LifecycleOwner { /** @@ -114,7 +112,6 @@ public interface WorkflowLifecycleOwner : LifecycleOwner { * @property findParentLifecycle Will be set to a no-op function when we are destroyed to avoid * leaking view instances. */ -@OptIn(WorkflowUiExperimentalApi::class) @VisibleForTesting(otherwise = PRIVATE) internal class RealWorkflowLifecycleOwner( private val findParentLifecycle: (View) -> Lifecycle, diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/WorkflowSavedStateRegistryAggregator.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/WorkflowSavedStateRegistryAggregator.kt index 168bd5beac..e4f70105ee 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/WorkflowSavedStateRegistryAggregator.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/androidx/WorkflowSavedStateRegistryAggregator.kt @@ -11,7 +11,6 @@ import androidx.lifecycle.findViewTreeLifecycleOwner import androidx.savedstate.SavedStateRegistryOwner import androidx.savedstate.findViewTreeSavedStateRegistryOwner import androidx.savedstate.setViewTreeSavedStateRegistryOwner -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * Manages a group of [SavedStateRegistryOwner]s that are all saved to @@ -52,7 +51,6 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * Note that this class _does not_ offer support for the pre-Jetpack [View.onSaveInstanceState] * mechanism. Container views must handle that themselves. */ -@WorkflowUiExperimentalApi public class WorkflowSavedStateRegistryAggregator { /** * Holds any states restored from the parent registry, as well as any states saved diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AlertDialogThemeResId.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AlertDialogThemeResId.kt index 42dd183676..ebcc4af7e4 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AlertDialogThemeResId.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AlertDialogThemeResId.kt @@ -1,13 +1,11 @@ package com.squareup.workflow1.ui.navigation import com.squareup.workflow1.ui.ViewEnvironmentKey -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * The default [OverlayDialogFactory] for [AlertOverlay] reads this value * for the `@StyleRes themeResId: Int` argument of `AlertDialog.Builder()`. */ -@WorkflowUiExperimentalApi public object AlertDialogThemeResId : ViewEnvironmentKey() { override val default: Int = 0 } diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AlertOverlayDialogFactory.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AlertOverlayDialogFactory.kt index d53d763717..75c21321ab 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AlertOverlayDialogFactory.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AlertOverlayDialogFactory.kt @@ -6,7 +6,6 @@ import android.content.DialogInterface import android.view.View.GONE import android.view.View.VISIBLE import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.AlertOverlay.Button import com.squareup.workflow1.ui.navigation.AlertOverlay.Button.NEGATIVE import com.squareup.workflow1.ui.navigation.AlertOverlay.Button.NEUTRAL @@ -24,7 +23,6 @@ import kotlin.reflect.KClass * - To customize how [AlertOverlay] is handled more generally, set up a * custom [OverlayDialogFactoryFinder]. */ -@WorkflowUiExperimentalApi internal class AlertOverlayDialogFactory : OverlayDialogFactory { override val type: KClass = AlertOverlay::class @@ -45,7 +43,6 @@ internal class AlertOverlayDialogFactory : OverlayDialogFactory { * Wraps the receiver in in an [OverlayDialogHolder] that is able to update its * buttons as new [AlertOverlay] renderings are received. */ -@WorkflowUiExperimentalApi public fun AlertDialog.toDialogHolder( initialEnvironment: ViewEnvironment ): OverlayDialogHolder { @@ -97,14 +94,12 @@ public fun AlertDialog.toDialogHolder( } } -@WorkflowUiExperimentalApi private fun Button.toId(): Int = when (this) { POSITIVE -> DialogInterface.BUTTON_POSITIVE NEGATIVE -> DialogInterface.BUTTON_NEGATIVE NEUTRAL -> DialogInterface.BUTTON_NEUTRAL } -@WorkflowUiExperimentalApi private fun AlertDialog.updateButtonsOnShow(rendering: AlertOverlay) { setOnShowListener(null) diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AndroidDialogBounds.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AndroidDialogBounds.kt index 4186338687..460fe1411e 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AndroidDialogBounds.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AndroidDialogBounds.kt @@ -8,7 +8,6 @@ import android.view.View import android.view.Window import android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.cancel @@ -23,7 +22,6 @@ import kotlinx.coroutines.flow.onEach * * @see OverlayDialogHolder.onUpdateBounds */ -@WorkflowUiExperimentalApi public fun Dialog.setBounds(bounds: Rect) { window?.let { it.addFlags(FLAG_LAYOUT_IN_SCREEN) @@ -44,7 +42,6 @@ public fun Dialog.setBounds(bounds: Rect) { * screen, based on [View.getLocationOnScreen] and its reported [width][View.getWidth] * and [height][View.getHeight]. */ -@WorkflowUiExperimentalApi public fun View.getScreenRect(rect: Rect) { val coordinates = IntArray(2) getLocationOnScreen(coordinates) @@ -56,7 +53,6 @@ public fun View.getScreenRect(rect: Rect) { } } -@WorkflowUiExperimentalApi internal fun D.maintainBounds( environment: ViewEnvironment, onBoundsChange: (Rect) -> Unit @@ -64,7 +60,6 @@ internal fun D.maintainBounds( maintainBounds(environment[OverlayArea].bounds, onBoundsChange) } -@WorkflowUiExperimentalApi private fun D.maintainBounds( bounds: StateFlow, onBoundsChange: (Rect) -> Unit diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AndroidOverlay.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AndroidOverlay.kt index 96c7c93faa..f52fb4d2cd 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AndroidOverlay.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AndroidOverlay.kt @@ -1,7 +1,5 @@ package com.squareup.workflow1.ui.navigation -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi - /** * Interface implemented by a rendering class to allow it to drive an Android UI * via an appropriate [OverlayDialogFactory] implementation. @@ -38,7 +36,6 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * * @see com.squareup.workflow1.ui.AndroidScreen */ -@WorkflowUiExperimentalApi public interface AndroidOverlay> : Overlay { public val dialogFactory: OverlayDialogFactory } diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AsDialogHolderWithContent.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AsDialogHolderWithContent.kt index 74a1fcfb1c..d8043dd5e4 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AsDialogHolderWithContent.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/AsDialogHolderWithContent.kt @@ -9,7 +9,6 @@ import androidx.activity.ComponentDialog import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ScreenViewHolder import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.androidx.OnBackPressedDispatcherOwnerKey import com.squareup.workflow1.ui.androidx.WorkflowLifecycleOwner import com.squareup.workflow1.ui.show @@ -33,7 +32,6 @@ import com.squareup.workflow1.ui.toViewFactory * [ComponentDialog.setContentView] and the [fixBackgroundAndDimming] extension * function provided below. */ -@WorkflowUiExperimentalApi public fun > ComponentDialog.asDialogHolderWithContent( overlay: O, environment: ViewEnvironment, diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/BackButtonScreen.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/BackButtonScreen.kt index 196a164b88..430d236c00 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/BackButtonScreen.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/BackButtonScreen.kt @@ -4,7 +4,6 @@ import com.squareup.workflow1.ui.AndroidScreen import com.squareup.workflow1.ui.Compatible.Companion.keyFor import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ScreenViewFactory -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.Wrapper /** @@ -22,7 +21,6 @@ import com.squareup.workflow1.ui.Wrapper * is pressed, or null to set no handler -- or clear a handler that was set previously. * Defaults to `null`. */ -@WorkflowUiExperimentalApi public class BackButtonScreen( public override val content: C, public val shadow: Boolean = false, diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/BackStackContainer.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/BackStackContainer.kt index e5b2a6109c..2bdcbe8994 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/BackStackContainer.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/BackStackContainer.kt @@ -22,7 +22,6 @@ import com.squareup.workflow1.ui.NamedScreen import com.squareup.workflow1.ui.R import com.squareup.workflow1.ui.ScreenViewHolder import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.androidx.WorkflowAndroidXSupport.onBackPressedDispatcherOwner import com.squareup.workflow1.ui.androidx.WorkflowAndroidXSupport.stateRegistryOwnerFromViewTreeOrContext import com.squareup.workflow1.ui.androidx.WorkflowLifecycleOwner @@ -44,7 +43,6 @@ import com.squareup.workflow1.ui.toViewFactory * 2. AndroidX [SavedStateRegistry] via * [SavedStateRegistryOwner][androidx.savedstate.SavedStateRegistryOwner]. */ -@WorkflowUiExperimentalApi public open class BackStackContainer @JvmOverloads constructor( context: Context, attributeSet: AttributeSet? = null, diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/BackStackScreenViewFactory.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/BackStackScreenViewFactory.kt index 55e577a44f..21d68aa022 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/BackStackScreenViewFactory.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/BackStackScreenViewFactory.kt @@ -5,9 +5,7 @@ import android.view.ViewGroup.LayoutParams.MATCH_PARENT import com.squareup.workflow1.ui.R import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewHolder -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@WorkflowUiExperimentalApi internal object BackStackScreenViewFactory : ScreenViewFactory> by ScreenViewFactory.fromCode( buildView = { _, initialEnvironment, context, _ -> diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/BodyAndOverlaysContainer.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/BodyAndOverlaysContainer.kt index 5af465ed6a..5493855e75 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/BodyAndOverlaysContainer.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/BodyAndOverlaysContainer.kt @@ -16,7 +16,6 @@ import com.squareup.workflow1.ui.R import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewHolder import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.WorkflowViewStub import com.squareup.workflow1.ui.screen @@ -27,7 +26,6 @@ import com.squareup.workflow1.ui.screen * support class, to make it practical to write custom forks should * the need arise. */ -@WorkflowUiExperimentalApi internal class BodyAndOverlaysContainer @JvmOverloads constructor( context: Context, attributeSet: AttributeSet? = null, diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/CoveredByModal.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/CoveredByModal.kt index 8f36d42ac9..524c875df6 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/CoveredByModal.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/CoveredByModal.kt @@ -1,7 +1,6 @@ package com.squareup.workflow1.ui.navigation import com.squareup.workflow1.ui.ViewEnvironmentKey -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * True in views managed by [BodyAndOverlaysScreen] when their events are being blocked @@ -11,7 +10,6 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * * https://stackoverflow.com/questions/2886407/dealing-with-rapid-tapping-on-buttons */ -@WorkflowUiExperimentalApi public object CoveredByModal : ViewEnvironmentKey() { override val default: Boolean = false } diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/DialogCollator.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/DialogCollator.kt index efb20ac7e4..521d20a1dd 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/DialogCollator.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/DialogCollator.kt @@ -3,7 +3,6 @@ package com.squareup.workflow1.ui.navigation import com.squareup.workflow1.ui.Compatible import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewEnvironmentKey -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.DialogCollator.IdAndSessions import com.squareup.workflow1.ui.navigation.DialogSession.KeyAndBundle import java.util.UUID @@ -12,7 +11,6 @@ import java.util.UUID * Helper provided to [DialogSessionUpdate.doUpdate] to give access * to an existing [DialogSession] able to display a given [Overlay]. */ -@WorkflowUiExperimentalApi internal fun interface OldSessionFinder { /** * Returns the existing [DialogSession] that can be [updated][DialogSession.show] @@ -33,7 +31,6 @@ internal fun interface OldSessionFinder { * existing session, if any, and a `covered: Boolean` param that indicates * if there is a [ModalOverlay] above [overlay] */ -@WorkflowUiExperimentalApi internal class DialogSessionUpdate( val overlay: Overlay, val doUpdate: ( @@ -71,7 +68,6 @@ internal class DialogSessionUpdate( * If provided, called with the complete set of [DialogSession] created by * [DialogCollator.scheduleUpdates], not just those of the client identified by [id]. */ -@WorkflowUiExperimentalApi internal fun ViewEnvironment.establishDialogCollator( id: UUID, existingSessions: List, @@ -121,7 +117,6 @@ internal fun ViewEnvironment.establishDialogCollator( * of `Dialog` windows and all updates, it is able to decide if any existing instances need to be * [destroyed][DialogSession.destroyDialog] and rebuilt to keep them in the correct order. */ -@WorkflowUiExperimentalApi internal class DialogCollator { /** * Set of [DialogSession] instances registered by a specific [LayeredDialogSessions], diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/DialogOverlay.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/DialogOverlay.kt index cda12dbb97..ce1732fb40 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/DialogOverlay.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/DialogOverlay.kt @@ -3,7 +3,6 @@ package com.squareup.workflow1.ui.navigation import android.app.Dialog import android.view.View import com.squareup.workflow1.ui.R -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * Returns the most recent [Overlay] rendering [shown][OverlayDialogHolder.show] @@ -12,7 +11,6 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * * Note that it is not safe to call this until after the [Dialog] has been shown. */ -@WorkflowUiExperimentalApi internal var Dialog.overlay: Overlay get() = checkNotNull(overlayOrNull) { "Expected to find an Overlay in tag R.id.workflow_overlay on the decor view of $this" @@ -26,7 +24,6 @@ internal var Dialog.overlay: Overlay * * Note that this will return `null` before the [Dialog] is shown. */ -@WorkflowUiExperimentalApi internal val Dialog.overlayOrNull: Overlay? get() = decorViewOrNull?.getTag(R.id.workflow_overlay) as? Overlay diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/DialogSession.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/DialogSession.kt index a20d5ea490..a66dbe048a 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/DialogSession.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/DialogSession.kt @@ -16,7 +16,6 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleOwner import com.squareup.workflow1.ui.Compatible import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.androidx.OnBackPressedDispatcherOwnerKey import com.squareup.workflow1.ui.androidx.WorkflowAndroidXSupport.onBackPressedDispatcherOwnerOrNull import com.squareup.workflow1.ui.androidx.WorkflowLifecycleOwner @@ -27,7 +26,6 @@ import com.squareup.workflow1.ui.androidx.WorkflowSavedStateRegistryAggregator * [OverlayDialogHolder], as well as enforcing modal behavior. See [LayeredDialogSessions] * for a general overview of the lifecycle of a managed [Dialog][android.app.Dialog]. */ -@WorkflowUiExperimentalApi internal class DialogSession( private val stateRegistryAggregator: WorkflowSavedStateRegistryAggregator, initialOverlay: Overlay, diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/FullScreenModalFactory.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/FullScreenModalFactory.kt index 8f2a8114c5..d8b64fde39 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/FullScreenModalFactory.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/FullScreenModalFactory.kt @@ -4,7 +4,6 @@ import android.content.Context import androidx.activity.ComponentDialog import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * Default [OverlayDialogFactory] for the standard [FullScreenModal] rendering class. @@ -12,7 +11,6 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * * To provide a custom binding for [FullScreenModal], see [OverlayDialogFactoryFinder]. */ -@WorkflowUiExperimentalApi internal class FullScreenModalFactory : OverlayDialogFactory> { override val type = FullScreenModal::class diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/LayeredDialogSessions.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/LayeredDialogSessions.kt index 0e7b88fb6d..0b7a658231 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/LayeredDialogSessions.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/LayeredDialogSessions.kt @@ -17,7 +17,6 @@ import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.findViewTreeLifecycleOwner import com.squareup.workflow1.ui.Compatible import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.androidx.WorkflowAndroidXSupport import com.squareup.workflow1.ui.androidx.WorkflowAndroidXSupport.lifecycleOwnerFromContext import com.squareup.workflow1.ui.androidx.WorkflowLifecycleOwner @@ -94,7 +93,6 @@ import java.util.UUID * @param getParentLifecycleOwner provides the [LifecycleOwner] to serve as * an ancestor to those created for managed [Dialog][android.app.Dialog]s. */ -@WorkflowUiExperimentalApi public class LayeredDialogSessions private constructor( private val context: Context, private val bounds: StateFlow, diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/OverlayArea.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/OverlayArea.kt index 03717fa2df..8f9e4f1bdb 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/OverlayArea.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/OverlayArea.kt @@ -3,7 +3,6 @@ package com.squareup.workflow1.ui.navigation import android.graphics.Rect import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewEnvironmentKey -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow @@ -12,7 +11,6 @@ import kotlinx.coroutines.flow.StateFlow * in the style reported by [View.getGlobalVisibleRect][android.view.View.getGlobalVisibleRect]. * Expected to be supplied by containers that support [BodyAndOverlaysScreen]. */ -@WorkflowUiExperimentalApi internal class OverlayArea( val bounds: StateFlow ) { @@ -21,6 +19,5 @@ internal class OverlayArea( } } -@WorkflowUiExperimentalApi internal operator fun ViewEnvironment.plus(overlayArea: OverlayArea): ViewEnvironment = this + (OverlayArea to overlayArea) diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/OverlayDialogFactory.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/OverlayDialogFactory.kt index e7f6ff9c78..1d15b76f57 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/OverlayDialogFactory.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/OverlayDialogFactory.kt @@ -5,7 +5,6 @@ import android.content.Context import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewRegistry import com.squareup.workflow1.ui.ViewRegistry.Key -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import kotlin.reflect.KClass /** @@ -64,7 +63,6 @@ import kotlin.reflect.KClass * latter but not the former can be used to create dialogs for non-modal windows like toasts * and tool tips. */ -@WorkflowUiExperimentalApi public interface OverlayDialogFactory : ViewRegistry.Entry { public val type: KClass @@ -110,7 +108,6 @@ public interface OverlayDialogFactory : ViewRegistry.Entry T.toDialogFactory( environment: ViewEnvironment ): OverlayDialogFactory = diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/OverlayDialogFactoryFinder.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/OverlayDialogFactoryFinder.kt index b08edf4f1f..741c78a20c 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/OverlayDialogFactoryFinder.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/OverlayDialogFactoryFinder.kt @@ -5,14 +5,12 @@ import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewEnvironmentKey import com.squareup.workflow1.ui.ViewRegistry import com.squareup.workflow1.ui.ViewRegistry.Key -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * [ViewEnvironment] service object used by [Overlay.toDialogFactory] to find the right * [OverlayDialogFactory]. The default implementation makes [AndroidOverlay] * work, and provides default bindings for [AlertOverlay] and [FullScreenModal]. */ -@WorkflowUiExperimentalApi public interface OverlayDialogFactoryFinder { public fun getDialogFactoryForRendering( environment: ViewEnvironment, diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/OverlayDialogHolder.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/OverlayDialogHolder.kt index 79fdfb77de..00f22d26e7 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/OverlayDialogHolder.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/OverlayDialogHolder.kt @@ -3,7 +3,6 @@ package com.squareup.workflow1.ui.navigation import android.app.Dialog import android.graphics.Rect import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compatible import com.squareup.workflow1.ui.show @@ -12,7 +11,6 @@ import com.squareup.workflow1.ui.show * of [OverlayT]. Also holds a reference to the [ViewEnvironment][environment] that was * most recently used to update the [dialog]. */ -@WorkflowUiExperimentalApi public interface OverlayDialogHolder { /** The [Dialog] managed by this holder, and updated via [runner] */ public val dialog: Dialog @@ -65,7 +63,6 @@ public interface OverlayDialogHolder { * Returns true if [overlay] is [compatible] with the [Overlay] instance that * was last [shown][show] by the [dialog][OverlayDialogHolder.dialog] managed by the receiver. */ -@WorkflowUiExperimentalApi public fun OverlayDialogHolder<*>.canShow(overlay: Overlay): Boolean { // The null case covers bootstrapping, during the first call to show(). return dialog.overlayOrNull?.let { compatible(it, overlay) } ?: true @@ -75,7 +72,6 @@ public fun OverlayDialogHolder<*>.canShow(overlay: Overlay): Boolean { * Updates the [dialog][OverlayDialogHolder.dialog] managed by the receiver to * display [overlay], and updates the receiver's [environment] as well. */ -@WorkflowUiExperimentalApi public fun OverlayDialogHolder.show( overlay: OverlayT, environment: ViewEnvironment @@ -102,6 +98,5 @@ public fun OverlayDialogHolder.show( * Note that the exact type of the returned [Overlay] is likely not to match that of * the receiver's `OverlayT` type parameter, e.g. if a wrapping dialog factory is in use. */ -@WorkflowUiExperimentalApi public val OverlayDialogHolder<*>.showing: Overlay get() = dialog.overlay diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/RealOverlayDialogHolder.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/RealOverlayDialogHolder.kt index a6d7cbb11b..10e6ed18be 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/RealOverlayDialogHolder.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/RealOverlayDialogHolder.kt @@ -3,9 +3,7 @@ package com.squareup.workflow1.ui.navigation import android.app.Dialog import android.graphics.Rect import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi -@WorkflowUiExperimentalApi internal class RealOverlayDialogHolder( initialEnvironment: ViewEnvironment, override val dialog: Dialog, diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/ViewSetBackHandler.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/ViewSetBackHandler.kt index 19b8309f90..bc2eac50cd 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/ViewSetBackHandler.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/ViewSetBackHandler.kt @@ -4,7 +4,6 @@ import android.view.View import androidx.activity.OnBackPressedCallback import androidx.lifecycle.findViewTreeLifecycleOwner import com.squareup.workflow1.ui.R -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.androidx.WorkflowAndroidXSupport.onBackPressedDispatcherOwnerOrNull /** @@ -19,7 +18,6 @@ import com.squareup.workflow1.ui.androidx.WorkflowAndroidXSupport.onBackPressedD * * @param onBack the function to run from [OnBackPressedCallback.handleOnBackPressed] */ -@WorkflowUiExperimentalApi public fun View.setBackHandler( enabled: Boolean = true, onBack: () -> Unit @@ -51,20 +49,17 @@ public fun View.setBackHandler( * [OnBackPressedDispatcher][androidx.activity.OnBackPressedDispatcher] queue * will not change, should a non-null handler be provided by a later call. */ -@WorkflowUiExperimentalApi public fun View.setBackHandler(onBack: (() -> Unit)?) { onBack?.let { setBackHandler(enabled = true, it) } ?: setBackHandler(enabled = false) {} } -@WorkflowUiExperimentalApi private var View.onBackPressedCallbackOrNull: MutableOnBackPressedCallback? get() = getTag(R.id.view_back_handler) as MutableOnBackPressedCallback? set(value) { setTag(R.id.view_back_handler, value) } -@WorkflowUiExperimentalApi private class MutableOnBackPressedCallback : OnBackPressedCallback(false) { var handler: () -> Unit = {} diff --git a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/ViewStateCache.kt b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/ViewStateCache.kt index e9ce46153a..5c8d395f93 100644 --- a/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/ViewStateCache.kt +++ b/workflow-ui/core-android/src/main/java/com/squareup/workflow1/ui/navigation/ViewStateCache.kt @@ -14,7 +14,6 @@ import androidx.savedstate.SavedStateRegistryOwner import com.squareup.workflow1.ui.Compatible.Companion.keyFor import com.squareup.workflow1.ui.NamedScreen import com.squareup.workflow1.ui.ScreenViewHolder -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.androidx.WorkflowSavedStateRegistryAggregator import com.squareup.workflow1.ui.showing @@ -30,7 +29,6 @@ import com.squareup.workflow1.ui.showing * [detachFromParentRegistry] when they are [attached][View.onAttachedToWindow] and * [detached][View.onDetachedFromWindow], respectively. */ -@WorkflowUiExperimentalApi public class ViewStateCache @VisibleForTesting(otherwise = PRIVATE) internal constructor( diff --git a/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/EnvironmentScreenAndroidIntegrationTest.kt b/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/EnvironmentScreenAndroidIntegrationTest.kt index 247e272c25..bd6dbb1de1 100644 --- a/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/EnvironmentScreenAndroidIntegrationTest.kt +++ b/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/EnvironmentScreenAndroidIntegrationTest.kt @@ -8,7 +8,6 @@ import com.squareup.workflow1.ui.navigation.WrappedScreen import org.junit.Test import org.mockito.kotlin.mock -@OptIn(WorkflowUiExperimentalApi::class) internal class EnvironmentScreenAndroidIntegrationTest { @Test fun mergingWorksForBuild() { val altFactory = WrappedFactory() diff --git a/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/ScreenViewFactoryTest.kt b/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/ScreenViewFactoryTest.kt index 5b0ab61034..d8458a9f4b 100644 --- a/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/ScreenViewFactoryTest.kt +++ b/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/ScreenViewFactoryTest.kt @@ -11,7 +11,6 @@ import org.mockito.kotlin.mock import kotlin.reflect.KClass import kotlin.test.assertFailsWith -@OptIn(WorkflowUiExperimentalApi::class) internal class ScreenViewFactoryTest { @Test @@ -74,7 +73,6 @@ internal class ScreenViewFactoryTest { assertThat(screen.content.viewFactory.updated).isTrue() } - @OptIn(WorkflowUiExperimentalApi::class) private class MyWrapper( override val content: C ) : Wrapper, AndroidScreen> { diff --git a/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/ViewLaunchWhenAttachedTest.kt b/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/ViewLaunchWhenAttachedTest.kt index 55a36ce9c1..25ba8b2377 100644 --- a/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/ViewLaunchWhenAttachedTest.kt +++ b/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/ViewLaunchWhenAttachedTest.kt @@ -34,7 +34,7 @@ import org.mockito.kotlin.mock import org.mockito.kotlin.times import org.mockito.kotlin.whenever -@OptIn(ExperimentalCoroutinesApi::class, WorkflowUiExperimentalApi::class) +@OptIn(ExperimentalCoroutinesApi::class) internal class ViewLaunchWhenAttachedTest { private val view = mockView() diff --git a/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/WorkflowLayoutTest.kt b/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/WorkflowLayoutTest.kt index 0037314c17..a0310243ad 100644 --- a/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/WorkflowLayoutTest.kt +++ b/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/WorkflowLayoutTest.kt @@ -29,7 +29,7 @@ import kotlin.coroutines.CoroutineContext @RunWith(RobolectricTestRunner::class) // SDK 28 required for the four-arg constructor we use in our custom view classes. @Config(manifest = Config.NONE, sdk = [28]) -@OptIn(WorkflowUiExperimentalApi::class, ExperimentalCoroutinesApi::class) +@OptIn(ExperimentalCoroutinesApi::class) internal class WorkflowLayoutTest { private val context: Context = ApplicationProvider.getApplicationContext() diff --git a/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/androidx/WorkflowSavedStateRegistryAggregatorTest.kt b/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/androidx/WorkflowSavedStateRegistryAggregatorTest.kt index df6059bb5e..1d273b3800 100644 --- a/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/androidx/WorkflowSavedStateRegistryAggregatorTest.kt +++ b/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/androidx/WorkflowSavedStateRegistryAggregatorTest.kt @@ -15,14 +15,12 @@ import androidx.savedstate.findViewTreeSavedStateRegistryOwner import androidx.savedstate.setViewTreeSavedStateRegistryOwner import androidx.test.core.app.ApplicationProvider import com.google.common.truth.Truth.assertThat -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import org.junit.Test import org.junit.runner.RunWith import org.robolectric.RobolectricTestRunner import kotlin.test.assertFailsWith @RunWith(RobolectricTestRunner::class) -@OptIn(WorkflowUiExperimentalApi::class) internal class WorkflowSavedStateRegistryAggregatorTest { private val fakeOnBack = object : OnBackPressedDispatcherOwner { override val lifecycle: Lifecycle diff --git a/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/navigation/NamedScreenAndroidIntegrationTest.kt b/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/navigation/NamedScreenAndroidIntegrationTest.kt index a4111bb411..dbad32135a 100644 --- a/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/navigation/NamedScreenAndroidIntegrationTest.kt +++ b/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/navigation/NamedScreenAndroidIntegrationTest.kt @@ -1,11 +1,8 @@ -@file:OptIn(WorkflowUiExperimentalApi::class) - package com.squareup.workflow1.ui.navigation import com.google.common.truth.Truth.assertThat import com.squareup.workflow1.ui.NamedScreen import com.squareup.workflow1.ui.ViewEnvironment.Companion.EMPTY -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.show import com.squareup.workflow1.ui.showing import com.squareup.workflow1.ui.startShowing diff --git a/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/navigation/ScreenViewFactoryTestUtil.kt b/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/navigation/ScreenViewFactoryTestUtil.kt index f9e63f5e51..4165673323 100644 --- a/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/navigation/ScreenViewFactoryTestUtil.kt +++ b/workflow-ui/core-android/src/test/java/com/squareup/workflow1/ui/navigation/ScreenViewFactoryTestUtil.kt @@ -1,5 +1,3 @@ -@file:OptIn(WorkflowUiExperimentalApi::class) - package com.squareup.workflow1.ui.navigation import android.content.Context @@ -11,7 +9,6 @@ import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewHolder import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewEnvironmentKey -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import org.mockito.kotlin.isA import org.mockito.kotlin.mock import org.mockito.kotlin.whenever diff --git a/workflow-ui/core-common/api/core-common.api b/workflow-ui/core-common/api/core-common.api index 3bcf3ecbc4..7ea6749533 100644 --- a/workflow-ui/core-common/api/core-common.api +++ b/workflow-ui/core-common/api/core-common.api @@ -128,9 +128,6 @@ public final class com/squareup/workflow1/ui/ViewRegistryKt { public static final fun plus (Lcom/squareup/workflow1/ui/ViewRegistry;Lcom/squareup/workflow1/ui/ViewRegistry;)Lcom/squareup/workflow1/ui/ViewRegistry; } -public abstract interface annotation class com/squareup/workflow1/ui/WorkflowUiExperimentalApi : java/lang/annotation/Annotation { -} - public abstract interface class com/squareup/workflow1/ui/Wrapper : com/squareup/workflow1/ui/Compatible, com/squareup/workflow1/ui/Container { public abstract fun asSequence ()Lkotlin/sequences/Sequence; public abstract fun getCompatibilityKey ()Ljava/lang/String; diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/Compatible.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/Compatible.kt index 0636662ff9..e1c293d819 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/Compatible.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/Compatible.kt @@ -8,7 +8,6 @@ package com.squareup.workflow1.ui * A convenient way to take control over the matching behavior of objects that * don't implement [Compatible] is to wrap them with [NamedScreen]. */ -@WorkflowUiExperimentalApi public fun compatible( me: Any, you: Any @@ -27,7 +26,6 @@ public fun compatible( * Renderings that don't implement this interface directly can be distinguished * by wrapping them with [NamedScreen]. */ -@WorkflowUiExperimentalApi public interface Compatible { /** * Instances of the same type are [compatible] iff they have the same [compatibilityKey]. diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/CompositeViewRegistry.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/CompositeViewRegistry.kt index 44501fe2f1..11a10b9487 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/CompositeViewRegistry.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/CompositeViewRegistry.kt @@ -18,7 +18,6 @@ import com.squareup.workflow1.ui.ViewRegistry.Key * more than one layer of indirection. In other words, a [CompositeViewRegistry] will never contain * a reference to another [CompositeViewRegistry]. */ -@WorkflowUiExperimentalApi internal class CompositeViewRegistry private constructor( private val registriesByKey: Map, ViewRegistry> ) : ViewRegistry { diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/Container.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/Container.kt index 277d7b3821..52a5d4e091 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/Container.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/Container.kt @@ -19,7 +19,6 @@ import com.squareup.workflow1.ui.Compatible.Companion.keyFor * * @param C the specific subtype of [BaseT] collected by this [Container]. */ -@WorkflowUiExperimentalApi public interface Container { public fun asSequence(): Sequence @@ -55,7 +54,6 @@ public interface Container { * [Compatible] [content]. In aid of that, this interface extends [Compatible] and * provides a convenient default implementation of [compatibilityKey]. */ -@WorkflowUiExperimentalApi public interface Wrapper : Container, Compatible { public val content: C diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/EnvironmentScreen.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/EnvironmentScreen.kt index cfbbe8ea2d..e110be2b97 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/EnvironmentScreen.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/EnvironmentScreen.kt @@ -8,7 +8,6 @@ package com.squareup.workflow1.ui * * UI kits are expected to provide handling for this class by default. */ -@WorkflowUiExperimentalApi public class EnvironmentScreen( public override val content: C, public val environment: ViewEnvironment = ViewEnvironment.EMPTY @@ -25,7 +24,6 @@ public class EnvironmentScreen( * [ViewRegistry.merge][com.squareup.workflow1.ui.merge] to preserve the [ViewRegistry] * entries of both. */ -@WorkflowUiExperimentalApi public fun Screen.withRegistry(viewRegistry: ViewRegistry): EnvironmentScreen<*> { return withEnvironment(ViewEnvironment.EMPTY + viewRegistry) } @@ -38,7 +36,6 @@ public fun Screen.withRegistry(viewRegistry: ViewRegistry): EnvironmentScreen<*> * [ViewRegistry.merge][com.squareup.workflow1.ui.merge] to preserve the [ViewRegistry] * entries of both. */ -@WorkflowUiExperimentalApi public fun Screen.withEnvironment( environment: ViewEnvironment = ViewEnvironment.EMPTY ): EnvironmentScreen<*> { @@ -58,7 +55,6 @@ public fun Screen.withEnvironment( * Returns an [EnvironmentScreen] derived from the receiver, * whose [EnvironmentScreen.environment] includes the given entry. */ -@WorkflowUiExperimentalApi public fun Screen.withEnvironment( entry: Pair, T> ): EnvironmentScreen<*> = withEnvironment(ViewEnvironment.EMPTY + entry) diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/NamedScreen.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/NamedScreen.kt index 44ee595fc0..9b719098bc 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/NamedScreen.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/NamedScreen.kt @@ -7,7 +7,6 @@ package com.squareup.workflow1.ui * * UI kits are expected to provide handling for this class by default. */ -@WorkflowUiExperimentalApi public data class NamedScreen( override val content: C, val name: String diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/Screen.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/Screen.kt index 37b586e8aa..e39681d6b8 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/Screen.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/Screen.kt @@ -3,5 +3,4 @@ package com.squareup.workflow1.ui /** * Marker interface implemented by renderings that map to a UI system's 2d view class. */ -@WorkflowUiExperimentalApi public interface Screen diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/TextController.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/TextController.kt index bef82ccffe..5f90741cd8 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/TextController.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/TextController.kt @@ -32,7 +32,6 @@ import kotlinx.coroutines.flow.drop * If your workflow needs to react to changes, it can observe [onTextChanged] by converting it to a * worker. */ -@WorkflowUiExperimentalApi public interface TextController { /** @@ -55,7 +54,6 @@ public interface TextController { /** * Create instance for default implementation of [TextController]. */ -@WorkflowUiExperimentalApi public fun TextController(initialValue: String = ""): TextController { return TextControllerImpl(initialValue) } @@ -63,7 +61,6 @@ public fun TextController(initialValue: String = ""): TextController { /** * Default implementation of [TextController]. */ -@WorkflowUiExperimentalApi private class TextControllerImpl(initialValue: String) : TextController { /** diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/TypedViewRegistry.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/TypedViewRegistry.kt index 5d3fb0ea50..17171bfe37 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/TypedViewRegistry.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/TypedViewRegistry.kt @@ -8,7 +8,6 @@ import kotlin.reflect.KClass * A [ViewRegistry] that contains a set of [Entry]s, keyed by the [KClass]es of the * rendering types. */ -@WorkflowUiExperimentalApi internal class TypedViewRegistry private constructor( private val bindings: Map, Entry<*>> ) : ViewRegistry { diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/ViewEnvironment.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/ViewEnvironment.kt index e7f8917135..1159ca1b68 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/ViewEnvironment.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/ViewEnvironment.kt @@ -8,7 +8,6 @@ package com.squareup.workflow1.ui * Calling [Screen.withEnvironment][com.squareup.workflow1.ui.withEnvironment] * on a [Screen] is the easiest way to customize its environment before rendering it. */ -@WorkflowUiExperimentalApi public class ViewEnvironment private constructor( public val map: Map, Any> = emptyMap() @@ -61,7 +60,6 @@ private constructor( * [BackStackConfig.Companion][com.squareup.workflow1.ui.navigation.BackStackConfig.Companion] * for an example. */ -@WorkflowUiExperimentalApi public abstract class ViewEnvironmentKey { /** * Defines the default value for this key. It is a grievous error for this value to be diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/ViewRegistry.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/ViewRegistry.kt index c7354e368e..867cf95f4a 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/ViewRegistry.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/ViewRegistry.kt @@ -61,7 +61,6 @@ import kotlin.reflect.safeCast * ) * } */ -@WorkflowUiExperimentalApi public interface ViewRegistry { /** * Identifies a UI factory [Entry] in a [ViewRegistry]. @@ -128,14 +127,12 @@ public interface ViewRegistry { } } -@WorkflowUiExperimentalApi public inline fun ViewRegistry.getFactoryFor( rendering: RenderingT ): FactoryT? { return FactoryT::class.safeCast(getEntryFor(Key(rendering::class, FactoryT::class))) } -@WorkflowUiExperimentalApi public inline fun < reified RenderingT : Any, reified FactoryT : Any @@ -143,12 +140,10 @@ public inline fun < return FactoryT::class.safeCast(getEntryFor(Key(RenderingT::class, FactoryT::class))) } -@WorkflowUiExperimentalApi public inline operator fun ViewRegistry.get( key: Key ): FactoryT? = FactoryT::class.safeCast(getEntryFor(key)) -@WorkflowUiExperimentalApi public fun ViewRegistry(vararg bindings: Entry<*>): ViewRegistry = TypedViewRegistry(*bindings) @@ -157,14 +152,12 @@ public fun ViewRegistry(vararg bindings: Entry<*>): ViewRegistry = * * Exists as a separate overload from the other two functions to disambiguate between them. */ -@WorkflowUiExperimentalApi public fun ViewRegistry(): ViewRegistry = TypedViewRegistry() /** * Transforms the receiver to add [entry], throwing [IllegalArgumentException] if the receiver * already has a matching [entry]. Use [merge] to replace an existing entry with a new one. */ -@WorkflowUiExperimentalApi public operator fun ViewRegistry.plus(entry: Entry<*>): ViewRegistry = this + ViewRegistry(entry) @@ -174,7 +167,6 @@ public operator fun ViewRegistry.plus(entry: Entry<*>): ViewRegistry = * @throws [IllegalArgumentException] if the receiver already has an matching [Entry]. * Use [merge] to replace existing entries instead. */ -@WorkflowUiExperimentalApi public operator fun ViewRegistry.plus(other: ViewRegistry): ViewRegistry { if (other.keys.isEmpty()) return this if (this.keys.isEmpty()) return other @@ -186,7 +178,6 @@ public operator fun ViewRegistry.plus(other: ViewRegistry): ViewRegistry { * If the receiver already has a [ViewRegistry], [ViewEnvironmentKey.combine] * is applied as usual to [merge] its entries. */ -@WorkflowUiExperimentalApi public operator fun ViewEnvironment.plus(registry: ViewRegistry): ViewEnvironment { if (this[ViewRegistry] === registry) return this if (registry.keys.isEmpty()) return this @@ -197,7 +188,6 @@ public operator fun ViewEnvironment.plus(registry: ViewRegistry): ViewEnvironmen * Combines the receiver with [other]. If there are conflicting entries, * those in [other] are preferred. */ -@WorkflowUiExperimentalApi public infix fun ViewRegistry.merge(other: ViewRegistry): ViewRegistry { if (this === other) return this if (other.keys.isEmpty()) return this diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/WorkflowUiExperimentalApi.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/WorkflowUiExperimentalApi.kt deleted file mode 100644 index fe27d2ab71..0000000000 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/WorkflowUiExperimentalApi.kt +++ /dev/null @@ -1,23 +0,0 @@ -@file:JvmMultifileClass -@file:JvmName("Workflows") - -package com.squareup.workflow1.ui - -import kotlin.RequiresOptIn.Level.ERROR -import kotlin.annotation.AnnotationRetention.BINARY - -/** - * Marks Workflow user interface APIs which are still in flux. Annotated code SHOULD NOT be used - * in library code or app code that you are not prepared to update when changing even minor - * workflow versions. Proceed with caution, and be ready to have the rug pulled out from under you. - */ -@Target( - AnnotationTarget.CLASS, - AnnotationTarget.PROPERTY, - AnnotationTarget.FUNCTION, - AnnotationTarget.TYPEALIAS -) -@MustBeDocumented -@Retention(value = BINARY) -@RequiresOptIn(level = ERROR) -public annotation class WorkflowUiExperimentalApi diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/AlertOverlay.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/AlertOverlay.kt index bbddd9d9c1..9284e57fec 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/AlertOverlay.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/AlertOverlay.kt @@ -1,13 +1,10 @@ package com.squareup.workflow1.ui.navigation -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi - /** * Models a typical "You sure about that?" alert box. * * UI kits are expected to provide handling for this class by default. */ -@WorkflowUiExperimentalApi public data class AlertOverlay( val buttons: Map = emptyMap(), val message: String = "", diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/BackStackConfig.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/BackStackConfig.kt index 5d8a2049cc..c9a102fb92 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/BackStackConfig.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/BackStackConfig.kt @@ -2,7 +2,6 @@ package com.squareup.workflow1.ui.navigation import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewEnvironmentKey -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * Informs views whether they're children of a [BackStackScreen], @@ -10,7 +9,6 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * [first frame][com.squareup.workflow1.ui.navigation.BackStackConfig.First] * or [not][com.squareup.workflow1.ui.navigation.BackStackConfig.CanGoBack]. */ -@WorkflowUiExperimentalApi public enum class BackStackConfig { /** * There is no [BackStackScreen] above here. @@ -34,6 +32,5 @@ public enum class BackStackConfig { } } -@WorkflowUiExperimentalApi public operator fun ViewEnvironment.plus(config: BackStackConfig): ViewEnvironment = this + (BackStackConfig to config) diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/BackStackScreen.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/BackStackScreen.kt index 85d4dab12d..bc20d3108b 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/BackStackScreen.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/BackStackScreen.kt @@ -4,7 +4,6 @@ import com.squareup.workflow1.ui.Compatible import com.squareup.workflow1.ui.Compatible.Companion.keyFor import com.squareup.workflow1.ui.Container import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.navigation.BackStackScreen.Companion import com.squareup.workflow1.ui.navigation.BackStackScreen.Companion.fromList import com.squareup.workflow1.ui.navigation.BackStackScreen.Companion.fromListOrNull @@ -25,7 +24,6 @@ import com.squareup.workflow1.ui.navigation.BackStackScreen.Companion.fromListOr * of composition -- in classic Android views, view state persistence support * requires peer BackStackScreens to have a unique keys. */ -@WorkflowUiExperimentalApi public class BackStackScreen internal constructor( public val frames: List, public val name: String @@ -134,17 +132,14 @@ public class BackStackScreen internal constructor( * to those of the receiver. [other] is nullable for convenience when using with * [toBackStackScreenOrNull]. */ -@WorkflowUiExperimentalApi public operator fun BackStackScreen.plus( other: BackStackScreen? ): BackStackScreen { return other?.let { BackStackScreen(frames + it.frames, this.name) } ?: this } -@WorkflowUiExperimentalApi public fun List.toBackStackScreenOrNull(name: String = ""): BackStackScreen? = fromListOrNull(this, name) -@WorkflowUiExperimentalApi public fun List.toBackStackScreen(name: String = ""): BackStackScreen = Companion.fromList(this, name) diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/BodyAndOverlaysScreen.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/BodyAndOverlaysScreen.kt index cd1b7a4a66..5b984438f0 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/BodyAndOverlaysScreen.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/BodyAndOverlaysScreen.kt @@ -3,7 +3,6 @@ package com.squareup.workflow1.ui.navigation import com.squareup.workflow1.ui.Compatible import com.squareup.workflow1.ui.Compatible.Companion.keyFor import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * A screen that may stack a number of [Overlay]s over a body. @@ -72,7 +71,6 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * of nesting -- in classic Android views, view state persistence support requires each * BodyAndOverlaysScreen in a hierarchy to have a unique key. */ -@WorkflowUiExperimentalApi public class BodyAndOverlaysScreen( public val body: B, public val overlays: List = emptyList(), diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/FullScreenModal.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/FullScreenModal.kt index 1fe9e25b33..72baa6f506 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/FullScreenModal.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/FullScreenModal.kt @@ -1,14 +1,12 @@ package com.squareup.workflow1.ui.navigation import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi /** * A basic [ScreenOverlay] that covers its container with the wrapped [content] [Screen]. * * UI kits are expected to provide handling for this class by default. */ -@WorkflowUiExperimentalApi public class FullScreenModal( public override val content: C ) : ScreenOverlay, ModalOverlay { diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/ModalOverlay.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/ModalOverlay.kt index 4d4c9f4b08..807dd035ab 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/ModalOverlay.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/ModalOverlay.kt @@ -1,10 +1,7 @@ package com.squareup.workflow1.ui.navigation -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi - /** * Marker interface identifying [Overlay] renderings whose presence * indicates that events are blocked from lower layers. */ -@WorkflowUiExperimentalApi public interface ModalOverlay : Overlay diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/Overlay.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/Overlay.kt index f98b593de9..0080ac7ed1 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/Overlay.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/Overlay.kt @@ -1,7 +1,5 @@ package com.squareup.workflow1.ui.navigation -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi - /** * Marker interface implemented by window-like renderings that map to a layer above * a base [Screen][com.squareup.workflow1.ui.Screen] by being placed in a @@ -18,5 +16,4 @@ import com.squareup.workflow1.ui.WorkflowUiExperimentalApi * See [ScreenOverlay] to define an [Overlay] whose content is provided by a wrapped * [Screen][com.squareup.workflow1.ui.Screen]. */ -@WorkflowUiExperimentalApi public interface Overlay diff --git a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/ScreenOverlay.kt b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/ScreenOverlay.kt index b42122f826..0d2b9e8855 100644 --- a/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/ScreenOverlay.kt +++ b/workflow-ui/core-common/src/main/java/com/squareup/workflow1/ui/navigation/ScreenOverlay.kt @@ -1,13 +1,11 @@ package com.squareup.workflow1.ui.navigation import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.Wrapper /** * An [Overlay] built around a root [content] [Screen]. */ -@WorkflowUiExperimentalApi public interface ScreenOverlay : Overlay, Wrapper { public override val content: ContentT diff --git a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/CompatibleTest.kt b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/CompatibleTest.kt index db518720ed..e0ecb91cdf 100644 --- a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/CompatibleTest.kt +++ b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/CompatibleTest.kt @@ -4,7 +4,6 @@ import com.google.common.truth.Truth.assertThat import org.junit.Test // If you try to replace isTrue() with isTrue compilation fails. -@OptIn(WorkflowUiExperimentalApi::class) @Suppress("UsePropertyAccessSyntax") class CompatibleTest { @Test fun `Different types do not match`() { diff --git a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/CompositeViewRegistryTest.kt b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/CompositeViewRegistryTest.kt index 6a7685d2f8..309ce9be97 100644 --- a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/CompositeViewRegistryTest.kt +++ b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/CompositeViewRegistryTest.kt @@ -7,7 +7,6 @@ import org.junit.Test import kotlin.reflect.KClass import kotlin.test.assertFailsWith -@OptIn(WorkflowUiExperimentalApi::class) internal class CompositeViewRegistryTest { @Test fun `constructor throws on duplicates`() { diff --git a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/EnvironmentScreenTest.kt b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/EnvironmentScreenTest.kt index d15ddfb301..bee793a9ea 100644 --- a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/EnvironmentScreenTest.kt +++ b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/EnvironmentScreenTest.kt @@ -6,7 +6,6 @@ import com.squareup.workflow1.ui.ViewRegistry.Key import org.junit.Test import kotlin.reflect.KClass -@OptIn(WorkflowUiExperimentalApi::class) internal class EnvironmentScreenTest { private class TestFactory( type: KClass diff --git a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/NamedScreenTest.kt b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/NamedScreenTest.kt index c36bae731a..3db70e01d5 100644 --- a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/NamedScreenTest.kt +++ b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/NamedScreenTest.kt @@ -4,7 +4,6 @@ import com.google.common.truth.Truth.assertThat import org.junit.Test // If you try to replace isTrue() with isTrue compilation fails. -@OptIn(WorkflowUiExperimentalApi::class) internal class NamedScreenTest { object Whut : Screen object Hey : Screen diff --git a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/TextControllerTest.kt b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/TextControllerTest.kt index 289a50a703..c57a925b47 100644 --- a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/TextControllerTest.kt +++ b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/TextControllerTest.kt @@ -5,7 +5,6 @@ import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.test.runTest import org.junit.Test -@OptIn(WorkflowUiExperimentalApi::class) internal class TextControllerTest { @Test fun `does not emit initial value`() = runTest { diff --git a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/ViewEnvironmentTest.kt b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/ViewEnvironmentTest.kt index 6f8186445e..05e3fce70c 100644 --- a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/ViewEnvironmentTest.kt +++ b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/ViewEnvironmentTest.kt @@ -4,7 +4,6 @@ import com.google.common.truth.Truth.assertThat import com.squareup.workflow1.ui.ViewEnvironment.Companion.EMPTY import org.junit.Test -@OptIn(WorkflowUiExperimentalApi::class) internal class ViewEnvironmentTest { private object StringHint : ViewEnvironmentKey() { override val default = "" diff --git a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/ViewRegistryTest.kt b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/ViewRegistryTest.kt index cbfdf0b154..5c0072e1ac 100644 --- a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/ViewRegistryTest.kt +++ b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/ViewRegistryTest.kt @@ -9,7 +9,6 @@ import kotlin.reflect.KClass import kotlin.test.assertFailsWith import kotlin.test.assertTrue -@OptIn(WorkflowUiExperimentalApi::class) internal class ViewRegistryTest { @Test fun `keys from bindings`() { diff --git a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/navigation/BackStackScreenTest.kt b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/navigation/BackStackScreenTest.kt index da825497a3..295b38c64c 100644 --- a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/navigation/BackStackScreenTest.kt +++ b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/navigation/BackStackScreenTest.kt @@ -2,11 +2,9 @@ package com.squareup.workflow1.ui.navigation import com.google.common.truth.Truth.assertThat import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import org.junit.Test import kotlin.test.assertFailsWith -@OptIn(WorkflowUiExperimentalApi::class) internal class BackStackScreenTest { data class FooScreen(val value: T) : Screen data class BarScreen(val value: T) : Screen diff --git a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/navigation/BodyAndOverlaysScreenTest.kt b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/navigation/BodyAndOverlaysScreenTest.kt index 297f4f6a21..2da79ab662 100644 --- a/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/navigation/BodyAndOverlaysScreenTest.kt +++ b/workflow-ui/core-common/src/test/java/com/squareup/workflow1/ui/navigation/BodyAndOverlaysScreenTest.kt @@ -2,11 +2,9 @@ package com.squareup.workflow1.ui.navigation import com.google.common.truth.Truth.assertThat import com.squareup.workflow1.ui.Screen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.compatible import org.junit.Test -@OptIn(WorkflowUiExperimentalApi::class) internal class BodyAndOverlaysScreenTest { data class S(val value: T) : Screen data class O(val value: T) : Overlay diff --git a/workflow-ui/internal-testing-android/src/main/java/com/squareup/workflow1/ui/internal/test/AbstractLifecycleTestActivity.kt b/workflow-ui/internal-testing-android/src/main/java/com/squareup/workflow1/ui/internal/test/AbstractLifecycleTestActivity.kt index 8cdde40ab6..18fbda3d01 100644 --- a/workflow-ui/internal-testing-android/src/main/java/com/squareup/workflow1/ui/internal/test/AbstractLifecycleTestActivity.kt +++ b/workflow-ui/internal-testing-android/src/main/java/com/squareup/workflow1/ui/internal/test/AbstractLifecycleTestActivity.kt @@ -15,7 +15,6 @@ import com.squareup.workflow1.ui.ScreenViewFactory import com.squareup.workflow1.ui.ScreenViewHolder import com.squareup.workflow1.ui.ViewEnvironment import com.squareup.workflow1.ui.ViewRegistry -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.WorkflowViewStub import com.squareup.workflow1.ui.plus import kotlin.reflect.KClass @@ -31,7 +30,6 @@ import kotlin.reflect.KClass * Subclasses must override [viewRegistry] to specify the [ScreenViewFactory]s they require. * All views will be hosted inside a [WorkflowViewStub]. */ -@WorkflowUiExperimentalApi public abstract class AbstractLifecycleTestActivity : WorkflowUiTestActivity() { private val lifecycleEvents = mutableListOf() diff --git a/workflow-ui/internal-testing-android/src/main/java/com/squareup/workflow1/ui/internal/test/IdleAfterTestRule.kt b/workflow-ui/internal-testing-android/src/main/java/com/squareup/workflow1/ui/internal/test/IdleAfterTestRule.kt index 57d4fa0c58..7e58fb616f 100644 --- a/workflow-ui/internal-testing-android/src/main/java/com/squareup/workflow1/ui/internal/test/IdleAfterTestRule.kt +++ b/workflow-ui/internal-testing-android/src/main/java/com/squareup/workflow1/ui/internal/test/IdleAfterTestRule.kt @@ -1,7 +1,6 @@ package com.squareup.workflow1.ui.internal.test import androidx.test.espresso.Espresso -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import org.junit.rules.TestRule import org.junit.runner.Description import org.junit.runners.model.Statement @@ -13,7 +12,6 @@ import org.junit.runners.model.Statement * Used as the last rule in our Compose tests to keep Leakcanary sweet, as a workaround for * https://issuetracker.google.com/issues/202190483 */ -@WorkflowUiExperimentalApi public object IdleAfterTestRule : TestRule { override fun apply( base: Statement, diff --git a/workflow-ui/internal-testing-android/src/main/java/com/squareup/workflow1/ui/internal/test/WorkflowUiTestActivity.kt b/workflow-ui/internal-testing-android/src/main/java/com/squareup/workflow1/ui/internal/test/WorkflowUiTestActivity.kt index 1038b6ad93..f5906653e9 100644 --- a/workflow-ui/internal-testing-android/src/main/java/com/squareup/workflow1/ui/internal/test/WorkflowUiTestActivity.kt +++ b/workflow-ui/internal-testing-android/src/main/java/com/squareup/workflow1/ui/internal/test/WorkflowUiTestActivity.kt @@ -6,7 +6,6 @@ import androidx.appcompat.app.AppCompatActivity import com.squareup.workflow1.ui.NamedScreen import com.squareup.workflow1.ui.Screen import com.squareup.workflow1.ui.ViewEnvironment -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.WorkflowViewStub /** @@ -26,7 +25,6 @@ import com.squareup.workflow1.ui.WorkflowViewStub * rendering to be automatically restored, set [restoreRenderingAfterConfigChange] to false before * calling `recreate()`. */ -@WorkflowUiExperimentalApi public open class WorkflowUiTestActivity : AppCompatActivity() { private val rootStub by lazy { WorkflowViewStub(this) } diff --git a/workflow-ui/radiography/src/main/java/com/squareup/workflow1/ui/radiography/WorkflowViewRenderer.kt b/workflow-ui/radiography/src/main/java/com/squareup/workflow1/ui/radiography/WorkflowViewRenderer.kt index c13c103c90..fb117b030b 100644 --- a/workflow-ui/radiography/src/main/java/com/squareup/workflow1/ui/radiography/WorkflowViewRenderer.kt +++ b/workflow-ui/radiography/src/main/java/com/squareup/workflow1/ui/radiography/WorkflowViewRenderer.kt @@ -2,7 +2,6 @@ package com.squareup.workflow1.ui.radiography import com.squareup.workflow1.ui.Compatible import com.squareup.workflow1.ui.NamedScreen -import com.squareup.workflow1.ui.WorkflowUiExperimentalApi import com.squareup.workflow1.ui.screenOrNull import radiography.AttributeAppendable import radiography.ScannableView @@ -12,7 +11,6 @@ import radiography.ViewStateRenderer public val WorkflowViewStateRenderer: ViewStateRenderer get() = WorkflowViewRendererImpl -@OptIn(WorkflowUiExperimentalApi::class) private object WorkflowViewRendererImpl : ViewStateRenderer { override fun AttributeAppendable.render(view: ScannableView) {