Skip to content
Open
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
2 changes: 1 addition & 1 deletion .github/detekt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ complexity:
excludeStringsWithLessThan5Characters: true
ignoreStringsRegex: '$^'
TooManyFunctions:
active: true
active: false
excludes: ['**/test/**', '**/androidTest/**', '**/commonTest/**', '**/jvmTest/**', '**/jsTest/**', '**/iosTest/**']
thresholdInFiles: 11
thresholdInClasses: 11
Expand Down
8 changes: 8 additions & 0 deletions .idea/artifacts/workflow_core_jvm_0_26_0_SNAPSHOT.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/artifacts/workflow_runtime_jvm_0_26_0_SNAPSHOT.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 11 additions & 1 deletion .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions .idea/jarRepositories.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

43 changes: 11 additions & 32 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
plugins {
id("com.android.application")
kotlin("android")
kotlin("kapt")
}

kapt {
correctErrorTypes = true
useBuildCache = true
}

val isCI = System.getenv("CI") == "true"
Expand Down Expand Up @@ -86,38 +80,23 @@ dependencies {
implementation(Libs.kotlinStd)
implementation(Libs.materialDesign)
implementation(Libs.androidXCore)

implementation(Libs.Kotlinx.datetime)
implementation(Libs.Kotlinx.serialization)
implementation(Libs.Compose.animation)
implementation(Libs.Compose.foundation)
implementation(Libs.Compose.foundationLayout)
implementation(Libs.Compose.material)
implementation(Libs.Compose.runtime)
implementation(Libs.Compose.ui)

implementation(Libs.Workflow.core)
implementation(Libs.Workflow.runtime)
if (!isCI) {
implementation(Libs.Workflow.compose)
implementation(Libs.Workflow.composeTooling)
} else {
implementation("com.squareup.workflow:core-compose") {
version {
branch = "main"
}
}
implementation("com.squareup.workflow:compose-tooling") {
version {
branch = "main"
}
}
}

implementation(Libs.Koin.core)
implementation(Libs.Koin.android)

implementation(Libs.Moshi.core)
implementation(Libs.Moshi.adapters)
implementation(Libs.Moshi.sealedAnnotations)
kapt(Libs.Moshi.codegen)
kapt(Libs.Moshi.sealedCodgen)
implementation(Libs.Workflow.runtime) {
version { branch = "popalay/multiplatform" }
}
implementation(Libs.Workflow.compose) {
version { branch = "popalay/multiplatform" }
}
implementation(Libs.Workflow.composeTooling) {
version { branch = "popalay/multiplatform" }
}
}
1 change: 1 addition & 0 deletions app/src/main/java/com/popalay/tracktor/App.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.popalay.tracktor

import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.runtime.Composable
import com.popalay.tracktor.domain.workflow.AppWorkflow
import com.popalay.tracktor.feature.createtracker.CreateTrackerBinding
import com.popalay.tracktor.feature.featureflagslist.FeatureFlagsListBinding
import com.popalay.tracktor.feature.list.ListBinding
Expand Down
5 changes: 2 additions & 3 deletions app/src/main/java/com/popalay/tracktor/DefaultApplication.kt
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
package com.popalay.tracktor

import android.app.Application
import com.popalay.tracktor.domain.initKoin
import org.koin.android.ext.koin.androidContext
import org.koin.android.ext.koin.androidLogger
import org.koin.core.context.startKoin
import org.koin.core.logger.Level

class DefaultApplication : Application() {

override fun onCreate() {
super.onCreate()
startKoin {
initKoin {
androidContext(this@DefaultApplication)
androidLogger(Level.ERROR)
modules(modules)
}
}
}
32 changes: 0 additions & 32 deletions app/src/main/java/com/popalay/tracktor/Dependencies.kt

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.ViewAmbient
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.ui.tooling.preview.Preview
Expand All @@ -41,7 +42,9 @@ import androidx.ui.tooling.preview.PreviewParameterProvider
import com.popalay.tracktor.core.R
import com.popalay.tracktor.data.model.ProgressDirection
import com.popalay.tracktor.data.model.UnitValueType
import com.popalay.tracktor.feature.createtracker.CreateTrackerWorkflow.Action
import com.popalay.tracktor.domain.workflow.CreateTrackerWorkflow.Action
import com.popalay.tracktor.domain.workflow.CreateTrackerWorkflow.Rendering
import com.popalay.tracktor.domain.workflow.CreateTrackerWorkflow.State
import com.popalay.tracktor.success
import com.popalay.tracktor.ui.widget.Chip
import com.popalay.tracktor.ui.widget.ChipGroup
Expand All @@ -50,21 +53,21 @@ import com.popalay.tracktor.utils.imePadding
import com.popalay.tracktor.utils.onBackPressed
import com.squareup.workflow.ui.compose.composedViewFactory

val CreateTrackerBinding = composedViewFactory<CreateTrackerWorkflow.Rendering> { rendering, _ ->
val CreateTrackerBinding = composedViewFactory<Rendering> { rendering, _ ->
onBackPressed { rendering.onAction(Action.BackClicked) }
CreateTrackerScreen(rendering.state, rendering.onAction)
}

class CreateTrackerStatePreviewProvider : PreviewParameterProvider<CreateTrackerWorkflow.State> {
override val values: Sequence<CreateTrackerWorkflow.State>
get() = sequenceOf(CreateTrackerWorkflow.State())
class CreateTrackerStatePreviewProvider : PreviewParameterProvider<State> {
override val values: Sequence<State>
get() = sequenceOf(State())
}

@OptIn(ExperimentalAnimationApi::class)
@Preview
@Composable
fun CreateTrackerScreen(
@PreviewParameter(CreateTrackerStatePreviewProvider::class) state: CreateTrackerWorkflow.State,
@PreviewParameter(CreateTrackerStatePreviewProvider::class) state: State,
onAction: (Action) -> Unit = {}
) {
Scaffold(topBar = { CreateTrackerAppBar(onAction, state) }) {
Expand Down Expand Up @@ -94,7 +97,7 @@ fun CreateTrackerScreen(

@Composable
private fun CustomUnitCreator(
state: CreateTrackerWorkflow.State,
state: State,
onAction: (Action) -> Unit,
modifier: Modifier = Modifier
) {
Expand Down Expand Up @@ -126,7 +129,7 @@ private fun CustomUnitCreator(
@Composable
private fun RowScope.CustomUnitValueTypeDropDown(
onAction: (Action) -> Unit,
state: CreateTrackerWorkflow.State,
state: State,
modifier: Modifier = Modifier
) {
DropdownMenu(
Expand Down Expand Up @@ -158,7 +161,7 @@ private fun RowScope.CustomUnitValueTypeDropDown(
@Composable
private fun CreateTrackerAppBar(
onAction: (Action) -> Unit,
state: CreateTrackerWorkflow.State,
state: State,
modifier: Modifier = Modifier
) {
TopAppBar(
Expand All @@ -184,7 +187,7 @@ private fun CreateTrackerAppBar(

@Composable
private fun TitleInput(
state: CreateTrackerWorkflow.State,
state: State,
onAction: (Action) -> Unit,
modifier: Modifier = Modifier
) {
Expand All @@ -200,7 +203,7 @@ private fun TitleInput(

@Composable
private fun UnitSelector(
state: CreateTrackerWorkflow.State,
state: State,
onAction: (Action) -> Unit,
modifier: Modifier = Modifier
) {
Expand Down Expand Up @@ -238,7 +241,7 @@ private fun UnitSelector(

@Composable
private fun DirectionSelector(
state: CreateTrackerWorkflow.State,
state: State,
onAction: (Action) -> Unit,
modifier: Modifier = Modifier
) {
Expand All @@ -263,15 +266,15 @@ private fun DirectionSelector(

@Composable
private fun ValueInput(
state: CreateTrackerWorkflow.State,
state: State,
onAction: (Action) -> Unit,
modifier: Modifier = Modifier
) {
TextField(
value = state.initialValue,
label = { Text(stringResource(R.string.create_tracker_value_label)) },
onValueChange = { onAction(Action.ValueChanged(it)) },
keyboardType = state.initialValueKeyboardType,
keyboardType = KeyboardType.valueOf(state.initialValueKeyboardType),
activeColor = MaterialTheme.colors.onSurface,
backgroundColor = MaterialTheme.colors.surface,
modifier = modifier.fillMaxWidth().padding(horizontal = 16.dp)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,26 +20,28 @@ import androidx.ui.tooling.preview.Preview
import androidx.ui.tooling.preview.PreviewParameter
import androidx.ui.tooling.preview.PreviewParameterProvider
import com.popalay.tracktor.core.R
import com.popalay.tracktor.feature.featureflagslist.FeatureFlagsListWorkflow.Action
import com.popalay.tracktor.domain.workflow.FeatureFlagsListWorkflow.Action
import com.popalay.tracktor.domain.workflow.FeatureFlagsListWorkflow.Rendering
import com.popalay.tracktor.domain.workflow.FeatureFlagsListWorkflow.State
import com.popalay.tracktor.ui.widget.TopAppBar
import com.popalay.tracktor.utils.Faker
import com.popalay.tracktor.utils.onBackPressed
import com.squareup.workflow.ui.compose.composedViewFactory

val FeatureFlagsListBinding = composedViewFactory<FeatureFlagsListWorkflow.Rendering> { rendering, _ ->
val FeatureFlagsListBinding = composedViewFactory<Rendering> { rendering, _ ->
onBackPressed { rendering.onAction(Action.BackClicked) }
FeatureFlagsListScreen(rendering.state, rendering.onAction)
}

class FeatureFlagsListPreviewProvider : PreviewParameterProvider<FeatureFlagsListWorkflow.State> {
override val values: Sequence<FeatureFlagsListWorkflow.State>
get() = sequenceOf(FeatureFlagsListWorkflow.State(List(5) { Faker.fakeFeatureFlag() }))
class FeatureFlagsListPreviewProvider : PreviewParameterProvider<State> {
override val values: Sequence<State>
get() = sequenceOf(State(List(5) { Faker.fakeFeatureFlag() }))
}

@Preview
@Composable
fun FeatureFlagsListScreen(
@PreviewParameter(FeatureFlagsListPreviewProvider::class) state: FeatureFlagsListWorkflow.State,
@PreviewParameter(FeatureFlagsListPreviewProvider::class) state: State,
onAction: (Action) -> Unit = {}
) {
Scaffold(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ import com.popalay.tracktor.core.R
import com.popalay.tracktor.data.model.Category
import com.popalay.tracktor.data.model.Statistic
import com.popalay.tracktor.data.model.toListItem
import com.popalay.tracktor.feature.list.ListWorkflow.Action
import com.popalay.tracktor.feature.list.ListWorkflow.Rendering
import com.popalay.tracktor.domain.workflow.ListWorkflow.Action
import com.popalay.tracktor.domain.workflow.ListWorkflow.Rendering
import com.popalay.tracktor.ui.dialog.AddNewRecordDialog
import com.popalay.tracktor.ui.widget.AllCategoryList
import com.popalay.tracktor.ui.widget.AnimatedSnackbar
Expand Down Expand Up @@ -102,9 +102,9 @@ fun ListScreen(
when {
rendering.itemInEditing != null -> {
AddNewRecordDialog(
tracker = rendering.itemInEditing,
tracker = rendering.itemInEditing!!,
onDismissRequest = { rendering.onAction(Action.TrackDialogDismissed) },
onSave = { rendering.onAction(Action.NewRecordSubmitted(rendering.itemInEditing, it)) }
onSave = { rendering.onAction(Action.NewRecordSubmitted(rendering.itemInEditing!!, it)) }
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.unit.dp
import androidx.ui.tooling.preview.Preview
import com.popalay.tracktor.core.R
import com.popalay.tracktor.feature.settings.SettingsWorkflow.Action
import com.popalay.tracktor.domain.workflow.SettingsWorkflow.Action
import com.popalay.tracktor.domain.workflow.SettingsWorkflow.Rendering
import com.popalay.tracktor.ui.widget.TopAppBar
import com.popalay.tracktor.utils.onBackPressed
import com.squareup.workflow.ui.compose.composedViewFactory

val SettingsBinding = composedViewFactory<SettingsWorkflow.Rendering> { rendering, _ ->
val SettingsBinding = composedViewFactory<Rendering> { rendering, _ ->
onBackPressed { rendering.onAction(Action.BackClicked) }
SettingsScreen(rendering.onAction)
}
Expand Down
Loading