├── .editorconfig ├── .github ├── pull_request_template.md ├── renovate.json5 └── workflows │ ├── .java-version │ ├── build.yaml │ └── release.yaml ├── .gitignore ├── CHANGELOG.md ├── LICENSE.txt ├── README.md ├── RELEASING.md ├── gradle.properties ├── gradle ├── libs.versions.toml ├── license-header.txt └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── kotlin-js-store └── yarn.lock ├── molecule-runtime ├── api │ ├── android │ │ └── molecule-runtime.api │ ├── jvm │ │ └── molecule-runtime.api │ └── molecule-runtime.klib.api ├── build.gradle ├── gradle.properties └── src │ ├── androidInstrumentedTest │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ └── AndroidUiFrameClockTest.kt │ ├── androidMain │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ ├── AndroidUiDispatcher.kt │ │ ├── AndroidUiFrameClock.kt │ │ └── timeSource.kt │ ├── commonMain │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ ├── GatedFrameClock.kt │ │ ├── RecompositionMode.kt │ │ ├── SnapshotNotifier.kt │ │ ├── molecule.kt │ │ ├── platform.kt │ │ └── timeSource.kt │ ├── commonTest │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ ├── GatedFrameClockTest.kt │ │ ├── MoleculeStateFlowTest.kt │ │ ├── MoleculeTest.kt │ │ └── RecordingExceptionHandler.kt │ ├── darwinMain │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ └── timeSource.kt │ ├── displayLinkMain │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ └── DisplayLinkClock.kt │ ├── displayLinkTest │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ └── DisplayLinkClockTest.kt │ ├── javaMain │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ └── platform.kt │ ├── javaTest │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ └── DefaultSnapshotNotifierPropertyTest.kt │ ├── jsTest │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ └── WindowAnimationFrameClockTest.kt │ ├── jvmMain │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ └── timeSource.kt │ ├── jvmTest │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ └── MoleculeConcurrentTest.kt │ ├── linuxMain │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ └── timeSource.kt │ ├── macosMain │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ └── DisplayLinkClock.kt │ ├── mingwMain │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ └── timeSource.kt │ ├── nonJavaMain │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ └── platform.kt │ ├── quartzCoreMain │ └── kotlin │ │ └── app │ │ └── cash │ │ └── molecule │ │ └── DisplayLinkClock.kt │ └── webMain │ └── kotlin │ └── app │ └── cash │ └── molecule │ ├── WindowAnimationFrameClock.kt │ ├── browser.kt │ └── timeSource.kt ├── molecule_not_a_framework_sign.jpg ├── sample-viewmodel ├── build.gradle └── src │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── molecule │ │ │ └── viewmodel │ │ │ ├── MainActivity.kt │ │ │ ├── MoleculeViewModel.kt │ │ │ ├── data.kt │ │ │ ├── presentationLogic.kt │ │ │ └── ui.kt │ └── res │ │ └── drawable │ │ └── rounded_arrow_drop_down_24.xml │ └── test │ └── java │ └── com │ └── example │ └── molecule │ └── viewmodel │ └── PupperPicsPresenterTest.kt ├── sample ├── build.gradle └── src │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── com │ │ │ └── example │ │ │ └── molecule │ │ │ ├── CounterActivity.kt │ │ │ ├── data.kt │ │ │ ├── presenter.kt │ │ │ └── view.kt │ └── res │ │ └── layout │ │ └── counter.xml │ └── test │ └── java │ └── com │ └── example │ └── molecule │ ├── CounterPresenterTest.kt │ └── LocalRandomService.kt └── settings.gradle /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - [ ] `CHANGELOG.md`'s "Unreleased" section has been updated, if applicable. 4 | -------------------------------------------------------------------------------- /.github/renovate.json5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/.github/renovate.json5 -------------------------------------------------------------------------------- /.github/workflows/.java-version: -------------------------------------------------------------------------------- 1 | 25 2 | -------------------------------------------------------------------------------- /.github/workflows/build.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/.github/workflows/build.yaml -------------------------------------------------------------------------------- /.github/workflows/release.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/.github/workflows/release.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/.gitignore -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/README.md -------------------------------------------------------------------------------- /RELEASING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/RELEASING.md -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/gradle.properties -------------------------------------------------------------------------------- /gradle/libs.versions.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/gradle/libs.versions.toml -------------------------------------------------------------------------------- /gradle/license-header.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/gradle/license-header.txt -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/gradlew.bat -------------------------------------------------------------------------------- /kotlin-js-store/yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/kotlin-js-store/yarn.lock -------------------------------------------------------------------------------- /molecule-runtime/api/android/molecule-runtime.api: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/api/android/molecule-runtime.api -------------------------------------------------------------------------------- /molecule-runtime/api/jvm/molecule-runtime.api: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/api/jvm/molecule-runtime.api -------------------------------------------------------------------------------- /molecule-runtime/api/molecule-runtime.klib.api: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/api/molecule-runtime.klib.api -------------------------------------------------------------------------------- /molecule-runtime/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/build.gradle -------------------------------------------------------------------------------- /molecule-runtime/gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/gradle.properties -------------------------------------------------------------------------------- /molecule-runtime/src/androidInstrumentedTest/kotlin/app/cash/molecule/AndroidUiFrameClockTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/androidInstrumentedTest/kotlin/app/cash/molecule/AndroidUiFrameClockTest.kt -------------------------------------------------------------------------------- /molecule-runtime/src/androidMain/kotlin/app/cash/molecule/AndroidUiDispatcher.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/androidMain/kotlin/app/cash/molecule/AndroidUiDispatcher.kt -------------------------------------------------------------------------------- /molecule-runtime/src/androidMain/kotlin/app/cash/molecule/AndroidUiFrameClock.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/androidMain/kotlin/app/cash/molecule/AndroidUiFrameClock.kt -------------------------------------------------------------------------------- /molecule-runtime/src/androidMain/kotlin/app/cash/molecule/timeSource.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/androidMain/kotlin/app/cash/molecule/timeSource.kt -------------------------------------------------------------------------------- /molecule-runtime/src/commonMain/kotlin/app/cash/molecule/GatedFrameClock.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/commonMain/kotlin/app/cash/molecule/GatedFrameClock.kt -------------------------------------------------------------------------------- /molecule-runtime/src/commonMain/kotlin/app/cash/molecule/RecompositionMode.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/commonMain/kotlin/app/cash/molecule/RecompositionMode.kt -------------------------------------------------------------------------------- /molecule-runtime/src/commonMain/kotlin/app/cash/molecule/SnapshotNotifier.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/commonMain/kotlin/app/cash/molecule/SnapshotNotifier.kt -------------------------------------------------------------------------------- /molecule-runtime/src/commonMain/kotlin/app/cash/molecule/molecule.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/commonMain/kotlin/app/cash/molecule/molecule.kt -------------------------------------------------------------------------------- /molecule-runtime/src/commonMain/kotlin/app/cash/molecule/platform.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/commonMain/kotlin/app/cash/molecule/platform.kt -------------------------------------------------------------------------------- /molecule-runtime/src/commonMain/kotlin/app/cash/molecule/timeSource.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/commonMain/kotlin/app/cash/molecule/timeSource.kt -------------------------------------------------------------------------------- /molecule-runtime/src/commonTest/kotlin/app/cash/molecule/GatedFrameClockTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/commonTest/kotlin/app/cash/molecule/GatedFrameClockTest.kt -------------------------------------------------------------------------------- /molecule-runtime/src/commonTest/kotlin/app/cash/molecule/MoleculeStateFlowTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/commonTest/kotlin/app/cash/molecule/MoleculeStateFlowTest.kt -------------------------------------------------------------------------------- /molecule-runtime/src/commonTest/kotlin/app/cash/molecule/MoleculeTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/commonTest/kotlin/app/cash/molecule/MoleculeTest.kt -------------------------------------------------------------------------------- /molecule-runtime/src/commonTest/kotlin/app/cash/molecule/RecordingExceptionHandler.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/commonTest/kotlin/app/cash/molecule/RecordingExceptionHandler.kt -------------------------------------------------------------------------------- /molecule-runtime/src/darwinMain/kotlin/app/cash/molecule/timeSource.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/darwinMain/kotlin/app/cash/molecule/timeSource.kt -------------------------------------------------------------------------------- /molecule-runtime/src/displayLinkMain/kotlin/app/cash/molecule/DisplayLinkClock.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/displayLinkMain/kotlin/app/cash/molecule/DisplayLinkClock.kt -------------------------------------------------------------------------------- /molecule-runtime/src/displayLinkTest/kotlin/app/cash/molecule/DisplayLinkClockTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/displayLinkTest/kotlin/app/cash/molecule/DisplayLinkClockTest.kt -------------------------------------------------------------------------------- /molecule-runtime/src/javaMain/kotlin/app/cash/molecule/platform.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/javaMain/kotlin/app/cash/molecule/platform.kt -------------------------------------------------------------------------------- /molecule-runtime/src/javaTest/kotlin/app/cash/molecule/DefaultSnapshotNotifierPropertyTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/javaTest/kotlin/app/cash/molecule/DefaultSnapshotNotifierPropertyTest.kt -------------------------------------------------------------------------------- /molecule-runtime/src/jsTest/kotlin/app/cash/molecule/WindowAnimationFrameClockTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/jsTest/kotlin/app/cash/molecule/WindowAnimationFrameClockTest.kt -------------------------------------------------------------------------------- /molecule-runtime/src/jvmMain/kotlin/app/cash/molecule/timeSource.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/jvmMain/kotlin/app/cash/molecule/timeSource.kt -------------------------------------------------------------------------------- /molecule-runtime/src/jvmTest/kotlin/app/cash/molecule/MoleculeConcurrentTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/jvmTest/kotlin/app/cash/molecule/MoleculeConcurrentTest.kt -------------------------------------------------------------------------------- /molecule-runtime/src/linuxMain/kotlin/app/cash/molecule/timeSource.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/linuxMain/kotlin/app/cash/molecule/timeSource.kt -------------------------------------------------------------------------------- /molecule-runtime/src/macosMain/kotlin/app/cash/molecule/DisplayLinkClock.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/macosMain/kotlin/app/cash/molecule/DisplayLinkClock.kt -------------------------------------------------------------------------------- /molecule-runtime/src/mingwMain/kotlin/app/cash/molecule/timeSource.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/mingwMain/kotlin/app/cash/molecule/timeSource.kt -------------------------------------------------------------------------------- /molecule-runtime/src/nonJavaMain/kotlin/app/cash/molecule/platform.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/nonJavaMain/kotlin/app/cash/molecule/platform.kt -------------------------------------------------------------------------------- /molecule-runtime/src/quartzCoreMain/kotlin/app/cash/molecule/DisplayLinkClock.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/quartzCoreMain/kotlin/app/cash/molecule/DisplayLinkClock.kt -------------------------------------------------------------------------------- /molecule-runtime/src/webMain/kotlin/app/cash/molecule/WindowAnimationFrameClock.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/webMain/kotlin/app/cash/molecule/WindowAnimationFrameClock.kt -------------------------------------------------------------------------------- /molecule-runtime/src/webMain/kotlin/app/cash/molecule/browser.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/webMain/kotlin/app/cash/molecule/browser.kt -------------------------------------------------------------------------------- /molecule-runtime/src/webMain/kotlin/app/cash/molecule/timeSource.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule-runtime/src/webMain/kotlin/app/cash/molecule/timeSource.kt -------------------------------------------------------------------------------- /molecule_not_a_framework_sign.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/molecule_not_a_framework_sign.jpg -------------------------------------------------------------------------------- /sample-viewmodel/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample-viewmodel/build.gradle -------------------------------------------------------------------------------- /sample-viewmodel/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample-viewmodel/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /sample-viewmodel/src/main/java/com/example/molecule/viewmodel/MainActivity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample-viewmodel/src/main/java/com/example/molecule/viewmodel/MainActivity.kt -------------------------------------------------------------------------------- /sample-viewmodel/src/main/java/com/example/molecule/viewmodel/MoleculeViewModel.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample-viewmodel/src/main/java/com/example/molecule/viewmodel/MoleculeViewModel.kt -------------------------------------------------------------------------------- /sample-viewmodel/src/main/java/com/example/molecule/viewmodel/data.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample-viewmodel/src/main/java/com/example/molecule/viewmodel/data.kt -------------------------------------------------------------------------------- /sample-viewmodel/src/main/java/com/example/molecule/viewmodel/presentationLogic.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample-viewmodel/src/main/java/com/example/molecule/viewmodel/presentationLogic.kt -------------------------------------------------------------------------------- /sample-viewmodel/src/main/java/com/example/molecule/viewmodel/ui.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample-viewmodel/src/main/java/com/example/molecule/viewmodel/ui.kt -------------------------------------------------------------------------------- /sample-viewmodel/src/main/res/drawable/rounded_arrow_drop_down_24.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample-viewmodel/src/main/res/drawable/rounded_arrow_drop_down_24.xml -------------------------------------------------------------------------------- /sample-viewmodel/src/test/java/com/example/molecule/viewmodel/PupperPicsPresenterTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample-viewmodel/src/test/java/com/example/molecule/viewmodel/PupperPicsPresenterTest.kt -------------------------------------------------------------------------------- /sample/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample/build.gradle -------------------------------------------------------------------------------- /sample/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /sample/src/main/java/com/example/molecule/CounterActivity.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample/src/main/java/com/example/molecule/CounterActivity.kt -------------------------------------------------------------------------------- /sample/src/main/java/com/example/molecule/data.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample/src/main/java/com/example/molecule/data.kt -------------------------------------------------------------------------------- /sample/src/main/java/com/example/molecule/presenter.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample/src/main/java/com/example/molecule/presenter.kt -------------------------------------------------------------------------------- /sample/src/main/java/com/example/molecule/view.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample/src/main/java/com/example/molecule/view.kt -------------------------------------------------------------------------------- /sample/src/main/res/layout/counter.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample/src/main/res/layout/counter.xml -------------------------------------------------------------------------------- /sample/src/test/java/com/example/molecule/CounterPresenterTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample/src/test/java/com/example/molecule/CounterPresenterTest.kt -------------------------------------------------------------------------------- /sample/src/test/java/com/example/molecule/LocalRandomService.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/sample/src/test/java/com/example/molecule/LocalRandomService.kt -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cashapp/molecule/HEAD/settings.gradle --------------------------------------------------------------------------------