├── .editorconfig ├── .github └── FUNDING.yml ├── .gitignore ├── LICENSE ├── README.md ├── detekt.yml ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── hal-core ├── .gitignore ├── build.gradle └── src │ ├── main │ └── kotlin │ │ └── cafe │ │ └── adriel │ │ └── hal │ │ ├── HAL.kt │ │ ├── HALDsl.kt │ │ ├── HALKtx.kt │ │ └── observer │ │ └── FlowStateObserver.kt │ └── test │ └── kotlin │ └── cafe │ └── adriel │ └── hal │ ├── StateMachineTest.kt │ ├── StateObserverTest.kt │ └── util │ ├── CustomStateObserver.kt │ ├── FakeStateMachine.kt │ └── TestCoroutineScopeRule.kt ├── hal-livedata ├── .gitignore ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ └── kotlin │ └── cafe │ └── adriel │ └── hal │ └── livedata │ └── observer │ ├── HALKtx.kt │ └── LiveDataStateObserver.kt ├── hal-logo.png ├── jitpack.yml ├── sample ├── .gitignore ├── build.gradle └── src │ └── main │ ├── AndroidManifest.xml │ ├── java │ └── cafe │ │ └── adriel │ │ └── hal │ │ └── sample │ │ ├── MainActivity.kt │ │ ├── network │ │ ├── NetworkActivity.kt │ │ ├── NetworkStateMachine.kt │ │ ├── NetworkViewModel.kt │ │ └── model │ │ │ └── Post.kt │ │ └── turnstile │ │ ├── TurnstileActivity.kt │ │ ├── TurnstileStateMachine.kt │ │ └── TurnstileViewModel.kt │ └── res │ ├── drawable │ ├── ic_lock_close.xml │ └── ic_lock_open.xml │ ├── layout │ ├── activity_main.xml │ ├── activity_network.xml │ └── activity_turnstile.xml │ ├── mipmap-anydpi-v26 │ ├── ic_launcher.xml │ └── ic_launcher_round.xml │ ├── mipmap-hdpi │ ├── ic_launcher.png │ ├── ic_launcher_foreground.png │ └── ic_launcher_round.png │ ├── mipmap-mdpi │ ├── ic_launcher.png │ ├── ic_launcher_foreground.png │ └── ic_launcher_round.png │ ├── mipmap-xhdpi │ ├── ic_launcher.png │ ├── ic_launcher_foreground.png │ └── ic_launcher_round.png │ ├── mipmap-xxhdpi │ ├── ic_launcher.png │ ├── ic_launcher_foreground.png │ └── ic_launcher_round.png │ ├── mipmap-xxxhdpi │ ├── ic_launcher.png │ ├── ic_launcher_foreground.png │ └── ic_launcher_round.png │ └── values │ ├── colors.xml │ ├── strings.xml │ └── styles.xml ├── settings.gradle └── turnstile-diagram.jpg /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | ko_fi: adrielcafe 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/README.md -------------------------------------------------------------------------------- /detekt.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/detekt.yml -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/gradle.properties -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/gradlew.bat -------------------------------------------------------------------------------- /hal-core/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /hal-core/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/hal-core/build.gradle -------------------------------------------------------------------------------- /hal-core/src/main/kotlin/cafe/adriel/hal/HAL.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/hal-core/src/main/kotlin/cafe/adriel/hal/HAL.kt -------------------------------------------------------------------------------- /hal-core/src/main/kotlin/cafe/adriel/hal/HALDsl.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/hal-core/src/main/kotlin/cafe/adriel/hal/HALDsl.kt -------------------------------------------------------------------------------- /hal-core/src/main/kotlin/cafe/adriel/hal/HALKtx.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/hal-core/src/main/kotlin/cafe/adriel/hal/HALKtx.kt -------------------------------------------------------------------------------- /hal-core/src/main/kotlin/cafe/adriel/hal/observer/FlowStateObserver.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/hal-core/src/main/kotlin/cafe/adriel/hal/observer/FlowStateObserver.kt -------------------------------------------------------------------------------- /hal-core/src/test/kotlin/cafe/adriel/hal/StateMachineTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/hal-core/src/test/kotlin/cafe/adriel/hal/StateMachineTest.kt -------------------------------------------------------------------------------- /hal-core/src/test/kotlin/cafe/adriel/hal/StateObserverTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/hal-core/src/test/kotlin/cafe/adriel/hal/StateObserverTest.kt -------------------------------------------------------------------------------- /hal-core/src/test/kotlin/cafe/adriel/hal/util/CustomStateObserver.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/hal-core/src/test/kotlin/cafe/adriel/hal/util/CustomStateObserver.kt -------------------------------------------------------------------------------- /hal-core/src/test/kotlin/cafe/adriel/hal/util/FakeStateMachine.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/hal-core/src/test/kotlin/cafe/adriel/hal/util/FakeStateMachine.kt -------------------------------------------------------------------------------- /hal-core/src/test/kotlin/cafe/adriel/hal/util/TestCoroutineScopeRule.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/hal-core/src/test/kotlin/cafe/adriel/hal/util/TestCoroutineScopeRule.kt -------------------------------------------------------------------------------- /hal-livedata/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /hal-livedata/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/hal-livedata/build.gradle -------------------------------------------------------------------------------- /hal-livedata/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/hal-livedata/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /hal-livedata/src/main/kotlin/cafe/adriel/hal/livedata/observer/HALKtx.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/hal-livedata/src/main/kotlin/cafe/adriel/hal/livedata/observer/HALKtx.kt -------------------------------------------------------------------------------- /hal-livedata/src/main/kotlin/cafe/adriel/hal/livedata/observer/LiveDataStateObserver.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/hal-livedata/src/main/kotlin/cafe/adriel/hal/livedata/observer/LiveDataStateObserver.kt -------------------------------------------------------------------------------- /hal-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/hal-logo.png -------------------------------------------------------------------------------- /jitpack.yml: -------------------------------------------------------------------------------- 1 | jdk: 2 | - openjdk11 -------------------------------------------------------------------------------- /sample/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /sample/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/build.gradle -------------------------------------------------------------------------------- /sample/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /sample/src/main/java/cafe/adriel/hal/sample/MainActivity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/java/cafe/adriel/hal/sample/MainActivity.kt -------------------------------------------------------------------------------- /sample/src/main/java/cafe/adriel/hal/sample/network/NetworkActivity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/java/cafe/adriel/hal/sample/network/NetworkActivity.kt -------------------------------------------------------------------------------- /sample/src/main/java/cafe/adriel/hal/sample/network/NetworkStateMachine.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/java/cafe/adriel/hal/sample/network/NetworkStateMachine.kt -------------------------------------------------------------------------------- /sample/src/main/java/cafe/adriel/hal/sample/network/NetworkViewModel.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/java/cafe/adriel/hal/sample/network/NetworkViewModel.kt -------------------------------------------------------------------------------- /sample/src/main/java/cafe/adriel/hal/sample/network/model/Post.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/java/cafe/adriel/hal/sample/network/model/Post.kt -------------------------------------------------------------------------------- /sample/src/main/java/cafe/adriel/hal/sample/turnstile/TurnstileActivity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/java/cafe/adriel/hal/sample/turnstile/TurnstileActivity.kt -------------------------------------------------------------------------------- /sample/src/main/java/cafe/adriel/hal/sample/turnstile/TurnstileStateMachine.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/java/cafe/adriel/hal/sample/turnstile/TurnstileStateMachine.kt -------------------------------------------------------------------------------- /sample/src/main/java/cafe/adriel/hal/sample/turnstile/TurnstileViewModel.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/java/cafe/adriel/hal/sample/turnstile/TurnstileViewModel.kt -------------------------------------------------------------------------------- /sample/src/main/res/drawable/ic_lock_close.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/drawable/ic_lock_close.xml -------------------------------------------------------------------------------- /sample/src/main/res/drawable/ic_lock_open.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/drawable/ic_lock_open.xml -------------------------------------------------------------------------------- /sample/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/layout/activity_main.xml -------------------------------------------------------------------------------- /sample/src/main/res/layout/activity_network.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/layout/activity_network.xml -------------------------------------------------------------------------------- /sample/src/main/res/layout/activity_turnstile.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/layout/activity_turnstile.xml -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-anydpi-v26/ic_launcher.xml -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /sample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/values/colors.xml -------------------------------------------------------------------------------- /sample/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/values/strings.xml -------------------------------------------------------------------------------- /sample/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/sample/src/main/res/values/styles.xml -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/settings.gradle -------------------------------------------------------------------------------- /turnstile-diagram.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adrielcafe/hal/HEAD/turnstile-diagram.jpg --------------------------------------------------------------------------------