├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── config.yml │ └── feature_request.md ├── actions │ └── gradle-cache │ │ └── action.yml ├── dependabot.yml ├── pull_request_template.md └── workflows │ ├── android.yml │ └── publish-new-version.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── app ├── .gitignore ├── build.gradle.kts └── src │ └── main │ ├── AndroidManifest.xml │ ├── kotlin │ └── io │ │ └── getstream │ │ └── resultdemo │ │ ├── MainActivity.kt │ │ ├── MainViewModel.kt │ │ ├── MainViewModelFactory.kt │ │ ├── NetworkModule.kt │ │ ├── Poster.kt │ │ ├── PosterService.kt │ │ └── StreamResultApp.kt │ └── res │ ├── drawable-v24 │ └── ic_launcher_foreground.xml │ ├── drawable │ └── ic_launcher_background.xml │ ├── layout │ └── activity_main.xml │ ├── mipmap-anydpi-v26 │ ├── ic_launcher.xml │ └── ic_launcher_round.xml │ ├── mipmap-anydpi-v33 │ └── ic_launcher.xml │ ├── mipmap-hdpi │ ├── ic_launcher.webp │ └── ic_launcher_round.webp │ ├── mipmap-mdpi │ ├── ic_launcher.webp │ └── ic_launcher_round.webp │ ├── mipmap-xhdpi │ ├── ic_launcher.webp │ └── ic_launcher_round.webp │ ├── mipmap-xxhdpi │ ├── ic_launcher.webp │ └── ic_launcher_round.webp │ ├── mipmap-xxxhdpi │ ├── ic_launcher.webp │ └── ic_launcher_round.webp │ ├── values-night │ └── themes.xml │ ├── values │ ├── colors.xml │ ├── strings.xml │ └── themes.xml │ └── xml │ ├── backup_rules.xml │ └── data_extraction_rules.xml ├── build.gradle.kts ├── buildSrc ├── build.gradle.kts └── src │ └── main │ └── kotlin │ └── io │ └── getstream │ └── Configurations.kt ├── gradle.properties ├── gradle ├── libs.versions.toml └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── renovate.json ├── settings.gradle.kts ├── spotless ├── copyright.kt ├── copyright.kts └── copyright.xml ├── stream-result-call-retrofit ├── .gitignore ├── api │ └── stream-result-call-retrofit.api ├── build.gradle.kts ├── consumer-proguard-rules.pro └── src │ ├── main │ ├── AndroidManifest.xml │ └── kotlin │ │ └── io │ │ └── getstream │ │ └── result │ │ └── call │ │ └── retrofit │ │ ├── DefaultErrorParser.kt │ │ ├── DefaultErrorResponse.kt │ │ ├── ErrorParser.kt │ │ ├── RetrofitCall.kt │ │ ├── RetrofitCallAdapter.kt │ │ └── RetrofitCallAdapterFactory.kt │ └── test │ └── kotlin │ └── io │ └── getstream │ └── result │ └── call │ └── retrofit │ ├── BlockedRetrofit2Call.kt │ ├── Mother.kt │ ├── RetrofitCallTest.kt │ └── TestCoroutineExtension.kt ├── stream-result-call ├── .gitignore ├── api │ ├── android │ │ └── stream-result-call.api │ ├── jvm │ │ └── stream-result-call.api │ └── stream-result-call.api ├── build.gradle.kts └── src │ ├── androidTest │ └── kotlin │ │ └── io │ │ └── getstream │ │ └── result │ │ └── call │ │ ├── BlockedCall.kt │ │ ├── BlockedTask.kt │ │ ├── CallTests.kt │ │ ├── CoroutineCallTest.kt │ │ ├── DistinctCallTest.kt │ │ ├── DoOnResultCallTest.kt │ │ ├── DoOnStartCallTest.kt │ │ ├── FlatMapCallTest.kt │ │ ├── MapCallTest.kt │ │ ├── Mother.kt │ │ ├── ReturnOnErrorCallTest.kt │ │ ├── TestCoroutineExtension.kt │ │ └── ZipCallTest.kt │ └── commonMain │ └── kotlin │ └── io │ └── getstream │ └── result │ └── call │ ├── Call.kt │ ├── CoroutineCall.kt │ ├── DistinctCall.kt │ ├── DoOnResultCall.kt │ ├── DoOnStartCall.kt │ ├── ErrorCall.kt │ ├── FlatMapCall.kt │ ├── MapCall.kt │ ├── ResultCall.kt │ ├── ReturnOnErrorCall.kt │ ├── SharedCalls.kt │ ├── WithPreconditionCall.kt │ ├── ZipCall.kt │ ├── dispatcher │ └── CallDispatcherProvider.kt │ ├── internal │ └── SynchronizedReference.kt │ └── retry │ ├── CallRetryService.kt │ ├── RetryCall.kt │ └── RetryPolicy.kt └── stream-result ├── .gitignore ├── api ├── android │ └── stream-result.api ├── jvm │ └── stream-result.api └── stream-result.api ├── build.gradle.kts └── src └── commonMain ├── AndroidManifest.xml └── kotlin └── io └── getstream └── result ├── Error.kt ├── Result.kt └── internal └── StreamHandsOff.kt /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | [*] 3 | # Most of the standard properties are supported 4 | indent_size=2 5 | max_line_length=100 -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve. 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **SDK version** 14 | - x.x.x 15 | 16 | **To Reproduce** 17 | Steps to reproduce the behavior: 18 | 1. Go to '...' 19 | 2. Click on '....' 20 | 3. Scroll down to '....' 21 | 4. See error 22 | 23 | **Expected behavior** 24 | A clear and concise description of what you expected to happen. 25 | 26 | **Device:** 27 | - Vendor and model: [e.g. Samsung S8] 28 | - Android version: [e.g. 9] 29 | 30 | **Screenshots** 31 | If applicable, add screenshots to help explain your problem. 32 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: true 2 | contact_links: 3 | - name: Ask a question 4 | url: https://github.com/GetStream/stream-log/discussions 5 | about: If you just have a question, please open a discussion instead of an issue. 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Request new API or customization options to be added to the SDK. 4 | title: '' 5 | labels: feature request 6 | assignees: '' 7 | --- 8 | 9 | Describe the feature you'd like to see in the SDK 10 | -------------------------------------------------------------------------------- /.github/actions/gradle-cache/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Gradle Cache' 2 | description: 'Cache Gradle Build Cache to improve workflow execution time' 3 | inputs: 4 | key-prefix: 5 | description: 'A prefix on the key used to store/restore cache' 6 | required: true 7 | runs: 8 | using: "composite" 9 | steps: 10 | - uses: actions/cache@v3.0.11 11 | with: 12 | path: | 13 | ~/.gradle/caches 14 | ~/.gradle/wrapper 15 | key: ${{ runner.os }}-${{ inputs.key-prefix }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', '**/Dependencies.kt') }} 16 | restore-keys: | 17 | ${{ runner.os }}-${{ inputs.key-prefix }}- 18 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "gradle" # See documentation for possible values 9 | directory: "/" # Location of package manifests 10 | schedule: 11 | interval: "daily" 12 | # Allow up to 10 open pull requests for pip dependencies 13 | open-pull-requests-limit: 10 14 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | ### 🎯 Goal 2 | 3 | _Describe why we are making this change_ 4 | 5 | ### 🛠 Implementation details 6 | 7 | _Describe the implementation_ 8 | 9 | ### 🎨 UI Changes 10 | 11 | _Add relevant screenshots_ 12 | 13 | | Before | After | 14 | | --- | --- | 15 | | img | img | 16 | 17 | _Add relevant videos_ 18 | 19 |
Before | 23 |After | 24 |
---|---|
29 | 30 | | 31 |32 | 33 | | 34 |
24 | * @StreamHandsOff(reason = "If you move a card, the house is collapsed") 25 | * public class HouseOfCards { } 26 |* 27 | */ 28 | @MustBeDocumented 29 | @Retention(AnnotationRetention.RUNTIME) 30 | public annotation class StreamHandsOff(val reason: String) 31 | --------------------------------------------------------------------------------