Skip to content

Commit

Permalink
Merge pull request #271 from ouchadam/tech/state-submodule
Browse files Browse the repository at this point in the history
screen-state submodule
  • Loading branch information
ouchadam authored Nov 28, 2022
2 parents 89b5a72 + 99c9556 commit 4d829ac
Show file tree
Hide file tree
Showing 47 changed files with 102 additions and 715 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/assemble.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ jobs:

steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'

- uses: actions/setup-java@v3
with:
distribution: 'adopt'
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/check_size.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ jobs:

steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'

- uses: actions/setup-java@v2
with:
distribution: 'adopt'
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/release-candidate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ jobs:

steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'

- uses: actions/setup-java@v2
with:
distribution: 'adopt'
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/release-train.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ jobs:

steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'

- uses: actions/setup-node@v3
with:
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ jobs:

steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'
- uses: actions/setup-java@v2
with:
distribution: 'adopt'
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "screen-state"]
path = screen-state
url = [email protected]:ouchadam/screen-state.git
1 change: 0 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,6 @@ ext.firebase = { dependencies, name ->
}
}


if (launchTask.contains("codeCoverageReport".toLowerCase())) {
apply from: 'tools/coverage.gradle'
}

This file was deleted.

1 change: 0 additions & 1 deletion domains/android/compose-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,4 @@ dependencies {
implementation project(":features:navigator")
implementation project(":design-library")
api project(":domains:android:core")
api project(":domains:state")
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,53 +21,3 @@ inline fun <reified VM : ViewModel> ComponentActivity.viewModel(
}
return ViewModelLazy(VM::class, { viewModelStore }, { factoryPromise })
}


inline fun <reified S, E> ComponentActivity.state(
noinline factory: () -> State<S, E>
): Lazy<State<S, E>> {
val factoryPromise = object : Factory {
@Suppress("UNCHECKED_CAST")
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return when(modelClass) {
StateViewModel::class.java -> factory() as T
else -> throw Error()
}
}
}
return KeyedViewModelLazy(
key = S::class.java.canonicalName!!,
StateViewModel::class,
{ viewModelStore },
{ factoryPromise }
) as Lazy<State<S, E>>
}

class KeyedViewModelLazy<VM : ViewModel> @JvmOverloads constructor(
private val key: String,
private val viewModelClass: KClass<VM>,
private val storeProducer: () -> ViewModelStore,
private val factoryProducer: () -> ViewModelProvider.Factory,
) : Lazy<VM> {
private var cached: VM? = null

override val value: VM
get() {
val viewModel = cached
return if (viewModel == null) {
val factory = factoryProducer()
val store = storeProducer()
ViewModelProvider(
store,
factory,
CreationExtras.Empty
).get(key, viewModelClass.java).also {
cached = it
}
} else {
viewModel
}
}

override fun isInitialized(): Boolean = cached != null
}

This file was deleted.

This file was deleted.

14 changes: 0 additions & 14 deletions domains/state/build.gradle

This file was deleted.

Loading

0 comments on commit 4d829ac

Please sign in to comment.