Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 9 additions & 18 deletions artifacts.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,6 @@
"javaVersion": 8,
"publicationName": "maven"
},
{
"gradlePath": ":workflow-core",
"group": "com.squareup.workflow1",
"artifactId": "workflow-core-android",
"description": "Workflow Core",
"packaging": "aar",
"javaVersion": 8,
"publicationName": "android"
},
{
"gradlePath": ":workflow-core",
"group": "com.squareup.workflow1",
Expand Down Expand Up @@ -80,15 +71,6 @@
"javaVersion": 8,
"publicationName": "kotlinMultiplatform"
},
{
"gradlePath": ":workflow-runtime",
"group": "com.squareup.workflow1",
"artifactId": "workflow-runtime-android",
"description": "Workflow Runtime",
"packaging": "aar",
"javaVersion": 8,
"publicationName": "android"
},
{
"gradlePath": ":workflow-runtime",
"group": "com.squareup.workflow1",
Expand Down Expand Up @@ -143,6 +125,15 @@
"javaVersion": 8,
"publicationName": "kotlinMultiplatform"
},
{
"gradlePath": ":workflow-runtime-android",
"group": "com.squareup.workflow1",
"artifactId": "workflow-runtime-android",
"description": "Workflow Runtime Android",
"packaging": "aar",
"javaVersion": 8,
"publicationName": "maven"
},
{
"gradlePath": ":workflow-rx2",
"group": "com.squareup.workflow1",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ import com.squareup.workflow1.Snapshot
import com.squareup.workflow1.StatefulWorkflow
import com.squareup.workflow1.WorkflowAction.Companion.noAction
import com.squareup.workflow1.action
import com.squareup.workflow1.toParcelable
import com.squareup.workflow1.toSnapshot
import com.squareup.workflow1.ui.AndroidScreen
import com.squareup.workflow1.ui.Screen
import com.squareup.workflow1.ui.ScreenViewFactory
Expand All @@ -24,6 +22,8 @@ import com.squareup.workflow1.ui.navigation.AlertOverlay.Event.ButtonClicked
import com.squareup.workflow1.ui.navigation.AlertOverlay.Event.Canceled
import com.squareup.workflow1.ui.navigation.BackButtonScreen
import com.squareup.workflow1.ui.navigation.BodyAndOverlaysScreen
import com.squareup.workflow1.ui.toParcelable
import com.squareup.workflow1.ui.toSnapshot
import kotlinx.parcelize.Parcelize

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ import com.squareup.sample.hellobackbutton.HelloBackButtonWorkflow.State.Baker
import com.squareup.sample.hellobackbutton.HelloBackButtonWorkflow.State.Charlie
import com.squareup.workflow1.Snapshot
import com.squareup.workflow1.StatefulWorkflow
import com.squareup.workflow1.toParcelable
import com.squareup.workflow1.toSnapshot
import com.squareup.workflow1.ui.toParcelable
import com.squareup.workflow1.ui.toSnapshot
import kotlinx.parcelize.Parcelize

object HelloBackButtonWorkflow : StatefulWorkflow<Unit, State, Nothing, HelloBackButtonScreen>() {
Expand Down
1 change: 1 addition & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ include(
":workflow-config:config-jvm",
":workflow-core",
":workflow-runtime",
":workflow-runtime-android",
":workflow-rx2",
":workflow-testing",
":workflow-tracing",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,66 +1,10 @@
androidx.activity:activity-ktx:1.7.0
androidx.activity:activity:1.7.0
androidx.annotation:annotation-experimental:1.4.1
androidx.annotation:annotation-jvm:1.8.1
androidx.annotation:annotation:1.8.1
androidx.arch.core:core-common:2.2.0
androidx.arch.core:core-runtime:2.2.0
androidx.autofill:autofill:1.0.0
androidx.collection:collection-jvm:1.4.4
androidx.collection:collection-ktx:1.4.4
androidx.collection:collection:1.4.4
androidx.compose.runtime:runtime-android:1.7.2
androidx.compose.runtime:runtime-saveable-android:1.7.2
androidx.compose.runtime:runtime-saveable:1.7.2
androidx.compose.runtime:runtime:1.7.2
androidx.compose.ui:ui-android:1.7.2
androidx.compose.ui:ui-geometry-android:1.7.2
androidx.compose.ui:ui-geometry:1.7.2
androidx.compose.ui:ui-graphics-android:1.7.2
androidx.compose.ui:ui-graphics:1.7.2
androidx.compose.ui:ui-text-android:1.7.2
androidx.compose.ui:ui-text:1.7.2
androidx.compose.ui:ui-unit-android:1.7.2
androidx.compose.ui:ui-unit:1.7.2
androidx.compose.ui:ui-util-android:1.7.2
androidx.compose.ui:ui-util:1.7.2
androidx.compose:compose-bom:2024.09.02
androidx.concurrent:concurrent-futures:1.1.0
androidx.core:core-ktx:1.12.0
androidx.core:core:1.12.0
androidx.customview:customview-poolingcontainer:1.0.0
androidx.emoji2:emoji2:1.2.0
androidx.graphics:graphics-path:1.0.1
androidx.interpolator:interpolator:1.0.0
androidx.lifecycle:lifecycle-common-jvm:2.8.7
androidx.lifecycle:lifecycle-common:2.8.7
androidx.lifecycle:lifecycle-livedata-core:2.8.7
androidx.lifecycle:lifecycle-process:2.8.7
androidx.lifecycle:lifecycle-runtime-android:2.8.7
androidx.lifecycle:lifecycle-runtime-compose-android:2.8.7
androidx.lifecycle:lifecycle-runtime-compose:2.8.7
androidx.lifecycle:lifecycle-runtime-ktx-android:2.8.7
androidx.lifecycle:lifecycle-runtime-ktx:2.8.7
androidx.lifecycle:lifecycle-runtime:2.8.7
androidx.lifecycle:lifecycle-viewmodel-android:2.8.7
androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.7
androidx.lifecycle:lifecycle-viewmodel:2.8.7
androidx.profileinstaller:profileinstaller:1.3.1
androidx.savedstate:savedstate-ktx:1.2.1
androidx.savedstate:savedstate:1.2.1
androidx.startup:startup-runtime:1.1.1
androidx.tracing:tracing:1.0.0
androidx.versionedparcelable:versionedparcelable:1.1.1
com.google.guava:listenablefuture:1.0
com.squareup.okio:okio-jvm:3.3.0
com.squareup.okio:okio:3.3.0
org.jetbrains.kotlin:kotlin-bom:2.0.21
org.jetbrains.kotlin:kotlin-stdlib-common:2.0.21
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.21
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.21
org.jetbrains.kotlin:kotlin-stdlib:2.0.21
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,7 @@ public final class com/squareup/workflow1/WorkflowIdentifier$Companion {
public final fun parse (Lokio/ByteString;)Lcom/squareup/workflow1/WorkflowIdentifier;
}

public final class com/squareup/workflow1/WorkflowIdentifierEx_jvmKt {
public final class com/squareup/workflow1/WorkflowIdentifierExKt {
public static final fun getWorkflowIdentifier (Lkotlin/reflect/KClass;)Lcom/squareup/workflow1/WorkflowIdentifier;
}

Expand Down
64 changes: 9 additions & 55 deletions workflow-core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import com.squareup.workflow1.buildsrc.iosWithSimulatorArm64

plugins {
id("kotlin-multiplatform")
id("com.android.kotlin.multiplatform.library")
id("published")
}

Expand All @@ -14,63 +13,18 @@ kotlin {
if (targets == "kmp" || targets == "jvm") {
jvm { withJava() }
}
// The default KMP
// ["hierarchy template"](https://www.jetbrains.com/help/kotlin-multiplatform-dev/multiplatform-hierarchy.html#see-the-full-hierarchy-template)
// configures `androidMain` and `jvmMain` to be entirely separate targets, even though Android
// *can* be made to be a child of JVM. Changing this requires completely wiring up all targets
// ourselves though, so for now we've left them separate to simplify gradle config. If there ends
// up being too much code duplication, we can either make `androidMain` a child of `jvmMain`, or
// introduce a new shared target that includes both of them. Compose, for example, uses a
// structure where `jvm` is the shared parent of both `android` and `desktop`.
if (targets == "kmp" || targets == "android") {
androidLibrary {
namespace = "com.squareup.workflow1.android"
testNamespace = "$namespace.test"

compileSdk = libs.versions.compileSdk.get().toInt()
minSdk = libs.versions.minSdk.get().toInt()

withHostTestBuilder {
}.configure {
}

withDeviceTestBuilder {
sourceSetTreeName = "test"
}.configure {
instrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

// Disable transition and rotation animations.
animationsDisabled = true
}
}
}
if (targets == "kmp" || targets == "js") {
js(IR) { browser() }
}
}

sourceSets {
commonMain {
dependencies {
api(libs.kotlin.jdk6)
api(libs.kotlinx.coroutines.core)
// For Snapshot.
api(libs.squareup.okio)
}
}

commonTest {
dependencies {
implementation(libs.kotlinx.atomicfu)
implementation(libs.kotlinx.coroutines.test.common)
implementation(libs.kotlin.test.core)
}
}
dependencies {
commonMainApi(libs.kotlin.jdk6)
commonMainApi(libs.kotlinx.coroutines.core)
// For Snapshot.
commonMainApi(libs.squareup.okio)

getByName("androidHostTest") {
dependencies {
implementation(libs.robolectric)
implementation(libs.robolectric.annotations)
}
}
}
commonTestImplementation(libs.kotlinx.atomicfu)
commonTestImplementation(libs.kotlinx.coroutines.test.common)
commonTestImplementation(libs.kotlin.test.core)
}
11 changes: 0 additions & 11 deletions workflow-core/dependencies/androidRuntimeClasspath.txt

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

11 changes: 11 additions & 0 deletions workflow-runtime-android/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Module Workflow Runtime Android

This module is an Android library that contains utilities to start a Workflow runtime that are
specific to Android components. This contains only the 'headless' components for Workflow on
Android; i.e. no UI concerns.

See :workflow-ui:core-android for the complimentary helpers on Android that include UI concerns:
view model persistent, `WorkflowLayout`, etc.

It also provides a place to include tests that verify behaviour of the runtime while using
Android specific dispatchers.
10 changes: 10 additions & 0 deletions workflow-runtime-android/api/workflow-runtime-android.api
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
public final class com/squareup/workflow1/android/AndroidRenderWorkflowKt {
public static final fun removeWorkflowState (Landroidx/lifecycle/SavedStateHandle;)V
public static final fun renderWorkflowIn (Lcom/squareup/workflow1/Workflow;Lkotlinx/coroutines/CoroutineScope;Landroidx/lifecycle/SavedStateHandle;Ljava/util/List;Ljava/util/Set;Lcom/squareup/workflow1/WorkflowTracer;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/StateFlow;
public static final fun renderWorkflowIn (Lcom/squareup/workflow1/Workflow;Lkotlinx/coroutines/CoroutineScope;Ljava/lang/Object;Landroidx/lifecycle/SavedStateHandle;Ljava/util/List;Ljava/util/Set;Lcom/squareup/workflow1/WorkflowTracer;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/StateFlow;
public static final fun renderWorkflowIn (Lcom/squareup/workflow1/Workflow;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/flow/StateFlow;Landroidx/lifecycle/SavedStateHandle;Ljava/util/List;Ljava/util/Set;Lcom/squareup/workflow1/WorkflowTracer;Lkotlin/jvm/functions/Function2;)Lkotlinx/coroutines/flow/StateFlow;
public static synthetic fun renderWorkflowIn$default (Lcom/squareup/workflow1/Workflow;Lkotlinx/coroutines/CoroutineScope;Landroidx/lifecycle/SavedStateHandle;Ljava/util/List;Ljava/util/Set;Lcom/squareup/workflow1/WorkflowTracer;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/StateFlow;
public static synthetic fun renderWorkflowIn$default (Lcom/squareup/workflow1/Workflow;Lkotlinx/coroutines/CoroutineScope;Ljava/lang/Object;Landroidx/lifecycle/SavedStateHandle;Ljava/util/List;Ljava/util/Set;Lcom/squareup/workflow1/WorkflowTracer;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/StateFlow;
public static synthetic fun renderWorkflowIn$default (Lcom/squareup/workflow1/Workflow;Lkotlinx/coroutines/CoroutineScope;Lkotlinx/coroutines/flow/StateFlow;Landroidx/lifecycle/SavedStateHandle;Ljava/util/List;Ljava/util/Set;Lcom/squareup/workflow1/WorkflowTracer;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/flow/StateFlow;
}

Loading
Loading