Write your asynchronous Network / IO call painlessly in Kotlin !!

Overview

Asynkio : Write asynced IO/ Network calls painlessly on android

Awesome Kotlin Badge| Download | Build Status | Documentation

Write your network requests, IO calls in android with Kotlin seamlessly. Asynkio Inspired by python's asyncio

What I mean is..

async {
    //All network requests on couroutines
    val response = await {
        //Get the data
        val resp = get("https://awesome.com/lib", params = mapOf("lib" to "Asynkio"))

        //Post the data
        return@await post("https://youareonfire.com/lib", data = mapOf("id" to resp.jsonObject["id"]))
    }
    //Process the result on UI thread
    if (response.statusCode == 200){
        yoTextView.text = response.text
    }
}

Yes, that's it. No retrofit. No Volley. Java/Kotlin are very bad at handling the http requests, but still Asynkio is the optimal way. No extra overhead, Seriously...No bullshit!

Another example

async {
    filename = await {
        longRunningFileOperation(content)
    }
}.onError {
    Toast.makeText(context, "Oops ! it failed",Toast.LENGTH_LONG).show()
}.finally {
    closeTheFile(filename)
}

Want to use it? Checkout full documentation over here Getting Started

Implementation

Gradle

implementation 'me.nikhilchaudhari:asynkio:{latest-version}'

Maven

<dependency>
    <groupId>me.nikhilchaudhari</groupId>
    <artifactId>asynkio</artifactId>
    <version>{latest-version}</version>
    <type>pom</type>
</dependency>

Please check releases for latest version

Documentation


License

   Copyright 2019 @ Nikhil Chaudhari

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
Comments
  • Added support for client side certificate validation

    Added support for client side certificate validation

    This PR is an implementation for the issue mentioned here: Feature Support for SSLContext

    These code changes will enable users of asynkio to provide a custom ssl configuration by supplying a preconfigured SSLContext instance. That will provide the underlying client the options to validate the server certificate against your own list of trusted certificates. Besides validating the server certificate it also will have the support for mutual authentication.

    opened by Hakky54 4
  • Feature Support for SSLContext

    Feature Support for SSLContext

    Hi,

    Thank you for this awesome http client. I noticed that there is no option to pass an instance of SSLContext within the requests. It would be great to have that option as well for https requests which will enable me and other developers to use a custom list of trusted certificates or even provide a custom client certificate as well for mutual authentication. Would that be possible?

    Kinds regards, Hakan

    opened by Hakky54 3
  • Bump kotlin_version from 1.4.30 to 1.4.32

    Bump kotlin_version from 1.4.30 to 1.4.32

    Bumps kotlin_version from 1.4.30 to 1.4.32. Updates kotlin-gradle-plugin from 1.4.30 to 1.4.32

    Release notes

    Sourced from kotlin-gradle-plugin's releases.

    Kotlin 1.4.31

    1.4.31

    Compiler

    • KT-39776 2020.3+: Unresolved reference to Kotlin stdlib function

    IDE. Gradle Integration

    • KT-44845 After update to Kotlin 1.4.30 all external dependencies is unresolved in IDE with kotlin.mpp.enableGranularSourceSetsMetadata=true

    IDE. Gradle. Script

    • KTIJ-11137 build.gradle.kts: Fatal error during save/load standalone scripts settings
    • KTIJ-898 Unable to import with Kotlin DSL buildscript - NullPointerException in KotlinDslScriptModelProcessorKt.toListOfScriptModels

    IDE. Multiplatform

    • KTIJ-1200 KotlinIconProviderKt.addExpectActualMarker takes up to 180+ seconds

    IDE

    Fixes

    • KT-44697 New JVM IR backend notification - narrow its triggering to Kotlin projects
    • KT-44523 IDE notification for trying new JVM backend
    • KTIJ-696 Freeze during startup of IDEA with intellij project with Kotlin (211-1.4.10-release-IJ1440)

    Checksums

    File Sha256
    kotlin-compiler-1.4.31.zip b50e7016febf7510325d685ae69cc62f49a7ca7f670cb4e0888112e3ec09c6ec *
    kotlin-native-linux-1.4.31.tar.gz 87fc40385ffbd44eebde6487d15e1c5c67c218870b332b525e122f014b7de3e3
    kotlin-native-macos-1.4.31.tar.gz 0e351756b382096204d61456f855480ce6b65ac53897c4bfa78a287895f37e32
    kotlin-native-windows-1.4.31.zip a60aec97fd21294ab11e57acdd33d37d79db11b22656fa435b791e9a709727b4

    * Sorry, Sha256 sum was initially published incorrectly. Now it is fixed.

    Changelog

    Sourced from kotlin-gradle-plugin's changelog.

    CHANGELOG

    Commits

    Updates kotlin-stdlib-jdk7 from 1.4.30 to 1.4.32

    Release notes

    Sourced from kotlin-stdlib-jdk7's releases.

    Kotlin 1.4.31

    1.4.31

    Compiler

    • KT-39776 2020.3+: Unresolved reference to Kotlin stdlib function

    IDE. Gradle Integration

    • KT-44845 After update to Kotlin 1.4.30 all external dependencies is unresolved in IDE with kotlin.mpp.enableGranularSourceSetsMetadata=true

    IDE. Gradle. Script

    • KTIJ-11137 build.gradle.kts: Fatal error during save/load standalone scripts settings
    • KTIJ-898 Unable to import with Kotlin DSL buildscript - NullPointerException in KotlinDslScriptModelProcessorKt.toListOfScriptModels

    IDE. Multiplatform

    • KTIJ-1200 KotlinIconProviderKt.addExpectActualMarker takes up to 180+ seconds

    IDE

    Fixes

    • KT-44697 New JVM IR backend notification - narrow its triggering to Kotlin projects
    • KT-44523 IDE notification for trying new JVM backend
    • KTIJ-696 Freeze during startup of IDEA with intellij project with Kotlin (211-1.4.10-release-IJ1440)

    Checksums

    File Sha256
    kotlin-compiler-1.4.31.zip b50e7016febf7510325d685ae69cc62f49a7ca7f670cb4e0888112e3ec09c6ec *
    kotlin-native-linux-1.4.31.tar.gz 87fc40385ffbd44eebde6487d15e1c5c67c218870b332b525e122f014b7de3e3
    kotlin-native-macos-1.4.31.tar.gz 0e351756b382096204d61456f855480ce6b65ac53897c4bfa78a287895f37e32
    kotlin-native-windows-1.4.31.zip a60aec97fd21294ab11e57acdd33d37d79db11b22656fa435b791e9a709727b4

    * Sorry, Sha256 sum was initially published incorrectly. Now it is fixed.

    Changelog

    Sourced from kotlin-stdlib-jdk7's changelog.

    CHANGELOG

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • Bump gradle from 3.3.0 to 4.1.3

    Bump gradle from 3.3.0 to 4.1.3

    Bumps gradle from 3.3.0 to 4.1.3.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • Bump kotlin_version from 1.4.30 to 1.4.31

    Bump kotlin_version from 1.4.30 to 1.4.31

    Bumps kotlin_version from 1.4.30 to 1.4.31. Updates kotlin-gradle-plugin from 1.4.30 to 1.4.31

    Release notes

    Sourced from kotlin-gradle-plugin's releases.

    Kotlin 1.4.31

    1.4.31

    Compiler

    • KT-39776 2020.3+: Unresolved reference to Kotlin stdlib function

    IDE. Gradle Integration

    • KT-44845 After update to Kotlin 1.4.30 all external dependencies is unresolved in IDE with kotlin.mpp.enableGranularSourceSetsMetadata=true

    IDE. Gradle. Script

    • KTIJ-11137 build.gradle.kts: Fatal error during save/load standalone scripts settings
    • KTIJ-898 Unable to import with Kotlin DSL buildscript - NullPointerException in KotlinDslScriptModelProcessorKt.toListOfScriptModels

    IDE. Multiplatform

    • KTIJ-1200 KotlinIconProviderKt.addExpectActualMarker takes up to 180+ seconds

    IDE

    Fixes

    • KT-44697 New JVM IR backend notification - narrow its triggering to Kotlin projects
    • KT-44523 IDE notification for trying new JVM backend
    • KTIJ-696 Freeze during startup of IDEA with intellij project with Kotlin (211-1.4.10-release-IJ1440)

    Checksums

    File Sha256
    kotlin-compiler-1.4.31.zip b50e7016febf7510325d685ae69cc62f49a7ca7f670cb4e0888112e3ec09c6ec *
    kotlin-native-linux-1.4.31.tar.gz 87fc40385ffbd44eebde6487d15e1c5c67c218870b332b525e122f014b7de3e3
    kotlin-native-macos-1.4.31.tar.gz 0e351756b382096204d61456f855480ce6b65ac53897c4bfa78a287895f37e32
    kotlin-native-windows-1.4.31.zip a60aec97fd21294ab11e57acdd33d37d79db11b22656fa435b791e9a709727b4

    * Sorry, Sha256 sum was initially published incorrectly. Now it is fixed.

    Changelog

    Sourced from kotlin-gradle-plugin's changelog.

    1.4.31

    Compiler

    • KT-39776 2020.3+: Unresolved reference to Kotlin stdlib function

    IDE. Gradle Integration

    • KT-44845 After update to Kotlin 1.4.30 all external dependencies is unresolved in IDE with kotlin.mpp.enableGranularSourceSetsMetadata=true

    IDE. Gradle. Script

    • KTIJ-11137 build.gradle.kts: Fatal error during save/load standalone scripts settings
    • KTIJ-898 Unable to import with Kotlin DSL buildscript - NullPointerException in KotlinDslScriptModelProcessorKt.toListOfScriptModels

    IDE. Multiplatform

    • KTIJ-1200 KotlinIconProviderKt.addExpectActualMarker takes up to 180+ seconds

    IDE

    Fixes

    • KT-44697 New JVM IR backend notification - narrow its triggering to Kotlin projects
    • KT-44523 IDE notification for trying new JVM backend
    • KTIJ-696 Freeze during startup of IDEA with intellij project with Kotlin (211-1.4.10-release-IJ1440)
    Commits
    • ae24875 Add ChangeLog for kotlin 1.4.31
    • d5cf736 Add ChangeLog for kotlin 1.4.30-release
    • 929b6dd Do not swallow PCE
    • fbe977a Update Kotlin/Native: 1.4.31-release-146
    • d0e0900 Backport "Fix cache service for resolution anchors"
    • 434c199 Update Kotlin/Native: 1.4.31-dev-141
    • d1814fb Fix NPE
    • 4c61fb4 Fixed NPE on StandaloneScriptRootsCache instantiation
    • e148cbe Lightweight hashCode calc for LibraryInfo
    • 36d91ae Check declaration modifier for actual method to avoid freeze
    • Additional commits viewable in compare view

    Updates kotlin-stdlib-jdk7 from 1.4.30 to 1.4.31

    Release notes

    Sourced from kotlin-stdlib-jdk7's releases.

    Kotlin 1.4.31

    1.4.31

    Compiler

    • KT-39776 2020.3+: Unresolved reference to Kotlin stdlib function

    IDE. Gradle Integration

    • KT-44845 After update to Kotlin 1.4.30 all external dependencies is unresolved in IDE with kotlin.mpp.enableGranularSourceSetsMetadata=true

    IDE. Gradle. Script

    • KTIJ-11137 build.gradle.kts: Fatal error during save/load standalone scripts settings
    • KTIJ-898 Unable to import with Kotlin DSL buildscript - NullPointerException in KotlinDslScriptModelProcessorKt.toListOfScriptModels

    IDE. Multiplatform

    • KTIJ-1200 KotlinIconProviderKt.addExpectActualMarker takes up to 180+ seconds

    IDE

    Fixes

    • KT-44697 New JVM IR backend notification - narrow its triggering to Kotlin projects
    • KT-44523 IDE notification for trying new JVM backend
    • KTIJ-696 Freeze during startup of IDEA with intellij project with Kotlin (211-1.4.10-release-IJ1440)

    Checksums

    File Sha256
    kotlin-compiler-1.4.31.zip b50e7016febf7510325d685ae69cc62f49a7ca7f670cb4e0888112e3ec09c6ec *
    kotlin-native-linux-1.4.31.tar.gz 87fc40385ffbd44eebde6487d15e1c5c67c218870b332b525e122f014b7de3e3
    kotlin-native-macos-1.4.31.tar.gz 0e351756b382096204d61456f855480ce6b65ac53897c4bfa78a287895f37e32
    kotlin-native-windows-1.4.31.zip a60aec97fd21294ab11e57acdd33d37d79db11b22656fa435b791e9a709727b4

    * Sorry, Sha256 sum was initially published incorrectly. Now it is fixed.

    Changelog

    Sourced from kotlin-stdlib-jdk7's changelog.

    1.4.31

    Compiler

    • KT-39776 2020.3+: Unresolved reference to Kotlin stdlib function

    IDE. Gradle Integration

    • KT-44845 After update to Kotlin 1.4.30 all external dependencies is unresolved in IDE with kotlin.mpp.enableGranularSourceSetsMetadata=true

    IDE. Gradle. Script

    • KTIJ-11137 build.gradle.kts: Fatal error during save/load standalone scripts settings
    • KTIJ-898 Unable to import with Kotlin DSL buildscript - NullPointerException in KotlinDslScriptModelProcessorKt.toListOfScriptModels

    IDE. Multiplatform

    • KTIJ-1200 KotlinIconProviderKt.addExpectActualMarker takes up to 180+ seconds

    IDE

    Fixes

    • KT-44697 New JVM IR backend notification - narrow its triggering to Kotlin projects
    • KT-44523 IDE notification for trying new JVM backend
    • KTIJ-696 Freeze during startup of IDEA with intellij project with Kotlin (211-1.4.10-release-IJ1440)
    Commits
    • ae24875 Add ChangeLog for kotlin 1.4.31
    • d5cf736 Add ChangeLog for kotlin 1.4.30-release
    • 929b6dd Do not swallow PCE
    • fbe977a Update Kotlin/Native: 1.4.31-release-146
    • d0e0900 Backport "Fix cache service for resolution anchors"
    • 434c199 Update Kotlin/Native: 1.4.31-dev-141
    • d1814fb Fix NPE
    • 4c61fb4 Fixed NPE on StandaloneScriptRootsCache instantiation
    • e148cbe Lightweight hashCode calc for LibraryInfo
    • 36d91ae Check declaration modifier for actual method to avoid freeze
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • Bump gradle from 3.3.0 to 4.1.2

    Bump gradle from 3.3.0 to 4.1.2

    Bumps gradle from 3.3.0 to 4.1.2.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

    You can always request more updates by clicking Bump now in your Dependabot dashboard.

    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • Bump coroutine_version from 1.0.1 to 1.4.2-native-mt

    Bump coroutine_version from 1.0.1 to 1.4.2-native-mt

    Bumps coroutine_version from 1.0.1 to 1.4.2-native-mt. Updates kotlinx-coroutines-core from 1.0.1 to 1.4.2-native-mt

    Release notes

    Sourced from kotlinx-coroutines-core's releases.

    1.4.2

    • Fixed StackOverflowError in Job.toString when Job is observed in its intermediate state (#2371).
    • Improved liveness and latency of Dispatchers.Default and Dispatchers.IO in low-loaded mode (#2381).
    • Improved performance of consecutive Channel.cancel invocations (#2384).
    • SharingStarted is now fun interface (#2397).
    • Additional lint settings for SharedFlow to catch programmatic errors early (#2376).
    • Fixed bug when mutex and semaphore were not released during cancellation (#2390, thanks to @Tilps for reproducing).
    • Some corner cases in cancellation propagation between coroutines and listenable futures are repaired (#1442, thanks to @vadimsemenov).
    • Fixed unconditional cast to CoroutineStackFrame in exception recovery that triggered failures of instrumented code (#2386).
    • Platform-specific dependencies are removed from kotlinx-coroutines-javafx (#2360).

    1.4.1

    This is a patch release with an important fix to the SharedFlow implementation.

    • SharedFlow: Fix scenario with concurrent emitters and cancellation of a subscriber (#2359, thanks to @vehovsky for the bug report).

    1.4.0

    Improvements

    • StateFlow, SharedFlow and corresponding operators are promoted to stable API (#2316).
    • Flow.debounce operator with timeout selector based on each individual element is added (#1216, thanks to @mkano9!).
    • CoroutineContext.job extension property is introduced (#2159).
    • Flow.combine operator is reworked:
      • Complete fairness is maintained for single-threaded dispatchers.
      • Its performance is improved, depending on the use-case, by at least 50% (#2296).
      • Quadratic complexity depending on the number of upstream flows is eliminated (#2296).
      • crossinline and inline-heavy internals are removed, fixing sporadic SIGSEGV on Mediatek Android devices (#1683, #1743).
    • Flow.zip operator performance is improved by 40%.
    • Various API has been promoted to stable or its deprecation level has been raised (#2316).

    Bug fixes

    • Suspendable stateIn operator propagates exception to the caller when upstream fails to produce initial value (#2329).
    • Fix SharedFlow with replay for subscribers working at different speed (#2325).
    • Do not fail debug agent installation when security manager does not provide access to system properties (#2311).
    • Cancelled lazy coroutines are properly cleaned up from debug agent output (#2294).
    • BlockHound false-positives are correctly filtered out (#2302, #2190, #2303).
    • Potential crash during a race between cancellation and upstream in Observable.asFlow is fixed (#2104, #2299, thanks to @LouisCAD and @drinkthestars).

    1.4.0-M1

    Breaking changes

    • The concept of atomic cancellation in channels is removed. All operations in channels and corresponding Flow operators are cancellable in non-atomic way (#1813).
    • If CoroutineDispatcher throws RejectedExecutionException, cancel current Job and schedule its execution to Dispatchers.IO (#2003).
    • CancellableContinuation.invokeOnCancellation is invoked if the continuation was cancelled while its resume has been dispatched (#1915).
    • Flow.singleOrNull operator is aligned with standard library and does not longer throw IllegalStateException on multiple values (#2289).

    New experimental features

    ... (truncated)

    Changelog

    Sourced from kotlinx-coroutines-core's changelog.

    Change log for kotlinx.coroutines

    Version 1.4.2

    • Fixed StackOverflowError in Job.toString when Job is observed in its intermediate state (#2371).
    • Improved liveness and latency of Dispatchers.Default and Dispatchers.IO in low-loaded mode (#2381).
    • Improved performance of consecutive Channel.cancel invocations (#2384).
    • SharingStarted is now fun interface (#2397).
    • Additional lint settings for SharedFlow to catch programmatic errors early (#2376).
    • Fixed bug when mutex and semaphore were not released during cancellation (#2390, thanks to @Tilps for reproducing).
    • Some corner cases in cancellation propagation between coroutines and listenable futures are repaired (#1442, thanks to @vadimsemenov).
    • Fixed unconditional cast to CoroutineStackFrame in exception recovery that triggered failures of instrumented code (#2386).
    • Platform-specific dependencies are removed from kotlinx-coroutines-javafx (#2360).

    Version 1.4.1

    This is a patch release with an important fix to the SharedFlow implementation.

    • SharedFlow: Fix scenario with concurrent emitters and cancellation of subscriber (#2359, thanks to @vehovsky for the bug report).

    Version 1.4.0

    Improvements

    • StateFlow, SharedFlow and corresponding operators are promoted to stable API (#2316).
    • Flow.debounce operator with timeout selector based on each individual element is added (#1216, thanks to @mkano9!).
    • CoroutineContext.job extension property is introduced (#2159).
    • Flow.combine operator is reworked:
      • Complete fairness is maintained for single-threaded dispatchers.
      • Its performance is improved, depending on the use-case, by at least 50% (#2296).
      • Quadratic complexity depending on the number of upstream flows is eliminated (#2296).
      • crossinline and inline-heavy internals are removed, fixing sporadic SIGSEGV on Mediatek Android devices (#1683, #1743).
    • Flow.zip operator performance is improved by 40%.
    • Various API has been promoted to stable or its deprecation level has been raised (#2316).

    Bug fixes

    • Suspendable stateIn operator propagates exception to the caller when upstream fails to produce initial value (#2329).
    • Fix SharedFlow with replay for subscribers working at different speed (#2325).
    • Do not fail debug agent installation when security manager does not provide access to system properties (#2311).
    • Cancelled lazy coroutines are properly cleaned up from debug agent output (#2294).
    • BlockHound false-positives are correctly filtered out (#2302, #2190, #2303).
    • Potential crash during a race between cancellation and upstream in Observable.asFlow is fixed (#2104, #2299, thanks to @LouisCAD and @drinkthestars).

    Version 1.4.0-M1

    Breaking changes

    • The concept of atomic cancellation in channels is removed. All operations in channels and corresponding Flow operators are cancellable in non-atomic way (#1813).

    ... (truncated)

    Commits

    Updates kotlinx-coroutines-android from 1.0.1 to 1.4.2-native-mt

    Release notes

    Sourced from kotlinx-coroutines-android's releases.

    1.4.2

    • Fixed StackOverflowError in Job.toString when Job is observed in its intermediate state (#2371).
    • Improved liveness and latency of Dispatchers.Default and Dispatchers.IO in low-loaded mode (#2381).
    • Improved performance of consecutive Channel.cancel invocations (#2384).
    • SharingStarted is now fun interface (#2397).
    • Additional lint settings for SharedFlow to catch programmatic errors early (#2376).
    • Fixed bug when mutex and semaphore were not released during cancellation (#2390, thanks to @Tilps for reproducing).
    • Some corner cases in cancellation propagation between coroutines and listenable futures are repaired (#1442, thanks to @vadimsemenov).
    • Fixed unconditional cast to CoroutineStackFrame in exception recovery that triggered failures of instrumented code (#2386).
    • Platform-specific dependencies are removed from kotlinx-coroutines-javafx (#2360).

    1.4.1

    This is a patch release with an important fix to the SharedFlow implementation.

    • SharedFlow: Fix scenario with concurrent emitters and cancellation of a subscriber (#2359, thanks to @vehovsky for the bug report).

    1.4.0

    Improvements

    • StateFlow, SharedFlow and corresponding operators are promoted to stable API (#2316).
    • Flow.debounce operator with timeout selector based on each individual element is added (#1216, thanks to @mkano9!).
    • CoroutineContext.job extension property is introduced (#2159).
    • Flow.combine operator is reworked:
      • Complete fairness is maintained for single-threaded dispatchers.
      • Its performance is improved, depending on the use-case, by at least 50% (#2296).
      • Quadratic complexity depending on the number of upstream flows is eliminated (#2296).
      • crossinline and inline-heavy internals are removed, fixing sporadic SIGSEGV on Mediatek Android devices (#1683, #1743).
    • Flow.zip operator performance is improved by 40%.
    • Various API has been promoted to stable or its deprecation level has been raised (#2316).

    Bug fixes

    • Suspendable stateIn operator propagates exception to the caller when upstream fails to produce initial value (#2329).
    • Fix SharedFlow with replay for subscribers working at different speed (#2325).
    • Do not fail debug agent installation when security manager does not provide access to system properties (#2311).
    • Cancelled lazy coroutines are properly cleaned up from debug agent output (#2294).
    • BlockHound false-positives are correctly filtered out (#2302, #2190, #2303).
    • Potential crash during a race between cancellation and upstream in Observable.asFlow is fixed (#2104, #2299, thanks to @LouisCAD and @drinkthestars).

    1.4.0-M1

    Breaking changes

    • The concept of atomic cancellation in channels is removed. All operations in channels and corresponding Flow operators are cancellable in non-atomic way (#1813).
    • If CoroutineDispatcher throws RejectedExecutionException, cancel current Job and schedule its execution to Dispatchers.IO (#2003).
    • CancellableContinuation.invokeOnCancellation is invoked if the continuation was cancelled while its resume has been dispatched (#1915).
    • Flow.singleOrNull operator is aligned with standard library and does not longer throw IllegalStateException on multiple values (#2289).

    New experimental features

    ... (truncated)

    Changelog

    Sourced from kotlinx-coroutines-android's changelog.

    Change log for kotlinx.coroutines

    Version 1.4.2

    • Fixed StackOverflowError in Job.toString when Job is observed in its intermediate state (#2371).
    • Improved liveness and latency of Dispatchers.Default and Dispatchers.IO in low-loaded mode (#2381).
    • Improved performance of consecutive Channel.cancel invocations (#2384).
    • SharingStarted is now fun interface (#2397).
    • Additional lint settings for SharedFlow to catch programmatic errors early (#2376).
    • Fixed bug when mutex and semaphore were not released during cancellation (#2390, thanks to @Tilps for reproducing).
    • Some corner cases in cancellation propagation between coroutines and listenable futures are repaired (#1442, thanks to @vadimsemenov).
    • Fixed unconditional cast to CoroutineStackFrame in exception recovery that triggered failures of instrumented code (#2386).
    • Platform-specific dependencies are removed from kotlinx-coroutines-javafx (#2360).

    Version 1.4.1

    This is a patch release with an important fix to the SharedFlow implementation.

    • SharedFlow: Fix scenario with concurrent emitters and cancellation of subscriber (#2359, thanks to @vehovsky for the bug report).

    Version 1.4.0

    Improvements

    • StateFlow, SharedFlow and corresponding operators are promoted to stable API (#2316).
    • Flow.debounce operator with timeout selector based on each individual element is added (#1216, thanks to @mkano9!).
    • CoroutineContext.job extension property is introduced (#2159).
    • Flow.combine operator is reworked:
      • Complete fairness is maintained for single-threaded dispatchers.
      • Its performance is improved, depending on the use-case, by at least 50% (#2296).
      • Quadratic complexity depending on the number of upstream flows is eliminated (#2296).
      • crossinline and inline-heavy internals are removed, fixing sporadic SIGSEGV on Mediatek Android devices (#1683, #1743).
    • Flow.zip operator performance is improved by 40%.
    • Various API has been promoted to stable or its deprecation level has been raised (#2316).

    Bug fixes

    • Suspendable stateIn operator propagates exception to the caller when upstream fails to produce initial value (#2329).
    • Fix SharedFlow with replay for subscribers working at different speed (#2325).
    • Do not fail debug agent installation when security manager does not provide access to system properties (#2311).
    • Cancelled lazy coroutines are properly cleaned up from debug agent output (#2294).
    • BlockHound false-positives are correctly filtered out (#2302, #2190, #2303).
    • Potential crash during a race between cancellation and upstream in Observable.asFlow is fixed (#2104, #2299, thanks to @LouisCAD and @drinkthestars).

    Version 1.4.0-M1

    Breaking changes

    • The concept of atomic cancellation in channels is removed. All operations in channels and corresponding Flow operators are cancellable in non-atomic way (#1813).

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

    You can always request more updates by clicking Bump now in your Dependabot dashboard.

    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 1
  • Unnecessary async extension functions?

    Unnecessary async extension functions?

    I am reading the code out of curiosity and was just wondering about this piece of code

    fun Any.async(c: suspend AsynkHandler.() -> Unit): AsynkHandler {
        val controller = AsynkHandler(this)
        keepCoroutineForCancelPurpose(controller)
        return async(c, controller)
    }
    
    fun Activity.async(c: suspend AsynkHandler.() -> Unit): AsynkHandler {
        val controller = AsynkHandler(this)
        keepCoroutineForCancelPurpose(controller)
        return async(c, controller)
    }
    
    fun Fragment.async(c: suspend AsynkHandler.() -> Unit): AsynkHandler {
        val controller = AsynkHandler(this)
        keepCoroutineForCancelPurpose(controller)
        return async(c, controller)
    }
    
    fun android.support.v4.app.Fragment.async(c: suspend AsynkHandler.() -> Unit): AsynkHandler {
        val controller = AsynkHandler(this)
        keepCoroutineForCancelPurpose(controller)
        return async(c, controller)
    }
    

    Wouldn't the first extension function just work for all the other definitions since it's an extension function of Any ? Why override it per activity/fragment?

    fun Any.async(c: suspend AsynkHandler.() -> Unit): AsynkHandler {
        val controller = AsynkHandler(this)
        keepCoroutineForCancelPurpose(controller)
        return async(c, controller)
    }
    

    Would you consider a PR to remove them ?

    Thanks!

    opened by robertoestivill 1
  • Library doesn't work in Android 9.0

    Library doesn't work in Android 9.0

    When I am trying run the library in Android 9.0. Library doesn't work. Library return me the following error:

    W/stine.nekoslif: Accessing hidden field Ljava/net/URL;->host:Ljava/lang/String; (dark greylist, reflection)

    I searched the error in stackoverflow with the following solution:

    https://stackoverflow.com/questions/53827256/android-9-0-java-net-url

    opened by moisesvs 1
  • java.lang.NoSuchFieldException

    java.lang.NoSuchFieldException

    Hello,

    I'm getting a java.lang.NoSuchFieldException whenever I'm trying to make a request. I traced it with the debugger and found out that getDeclaredField() method is throwing that error for the "authority" field as well.

    java.lang.NoSuchFieldException: No field host in class Ljava/net/URL; (declaration of 'java.net.URL' appears in /system/framework/core-oj.jar) at java.lang.Class.getDeclaredField(Native Method) at me.nikhilchaudhari.asynkio.request.RequestImpl.toIDN(RequestImpl.kt:174) at me.nikhilchaudhari.asynkio.request.RequestImpl.makeRoute(RequestImpl.kt:201) at me.nikhilchaudhari.asynkio.request.RequestImpl.(RequestImpl.kt:117) at me.nikhilchaudhari.asynkio.core.NetworkCall.request(NetworkCall.kt:115) at me.nikhilchaudhari.asynkio.core.NetworkCall.post(NetworkCall.kt:94) at me.nikhilchaudhari.asynkio.core.NetworkCall.post$default(NetworkCall.kt:92) at com.alfresco.core.data.NetworkProtocolImpl.post(NetworkProtocolImpl.kt:66) at com.alfresco.core.data.NetworkProtocol$DefaultImpls.post$default(NetworkProtocol.kt:28) at com.alfresco.alfrescocore.MainActivity$onCreate$1.invokeSuspend(MainActivity.kt:31) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:32) at kotlinx.coroutines.DispatchedTask$DefaultImpls.run(Dispatched.kt:235) at kotlinx.coroutines.DispatchedContinuation.run(Dispatched.kt:81) at kotlinx.coroutines.scheduling.Task.run(Tasks.kt:94) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586) at kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:732)

    opened by shikoko 1
  • Bump gradle from 3.3.0 to 4.2.0

    Bump gradle from 3.3.0 to 4.2.0

    Bumps gradle from 3.3.0 to 4.2.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Upgrade to GitHub-native Dependabot

    Upgrade to GitHub-native Dependabot

    Dependabot Preview will be shut down on August 3rd, 2021. In order to keep getting Dependabot updates, please merge this PR and migrate to GitHub-native Dependabot before then.

    Dependabot has been fully integrated into GitHub, so you no longer have to install and manage a separate app. This pull request migrates your configuration from Dependabot.com to a config file, using the new syntax. When merged, we'll swap out dependabot-preview (me) for a new dependabot app, and you'll be all set!

    With this change, you'll now use the Dependabot page in GitHub, rather than the Dependabot dashboard, to monitor your version updates, and you'll configure Dependabot through the new config file rather than a UI.

    If you've got any questions or feedback for us, please let us know by creating an issue in the dependabot/dependabot-core repository.

    Learn more about migrating to GitHub-native Dependabot

    Please note that regular @dependabot commands do not work on this pull request.

    dependencies 
    opened by dependabot-preview[bot] 0
  • Bump kotlin_version from 1.4.30 to 1.5.0

    Bump kotlin_version from 1.4.30 to 1.5.0

    Bumps kotlin_version from 1.4.30 to 1.5.0. Updates kotlin-gradle-plugin from 1.4.30 to 1.5.0

    Release notes

    Sourced from kotlin-gradle-plugin's releases.

    Kotlin 1.5.0-RC

    Changelog

    Compiler

    New Features

    • KT-28791 Kotlin serialization with inline classes
    • KT-43920 Support loading binary Java annotations on fields

    Performance Improvements

    • KT-44153 NI: Low Memory and IntelliJ hangs when quotes in split() are missed
    • KT-45410 JVM / IR: Extreme performance regression on arithmetic operations inside a loop

    Fixes

    • KT-35224 It's possible to pass non-spread arrays after arguments with SAM-conversion
    • KT-36853 IR: UninitializedPropertyAccessException on tailrec with object expression in default argument
    • KT-41056 Increase stub version due to new "contract" keyword
    • KT-43887 Problem with FunctionReferenceLowering$FunctionReferenceBuilder in kotlin native
    • KT-44210 KJS / IR: "AssertionError: Undefined parameter referenced: defined" caused by plus assign operators in build blocks
    • KT-44947 Sealed interfaces: Sealed fun interface leads to "NoWhenBranchMatchedException"
    • KT-44993 JVM IR: VerifyError on getfield with Kotlin generic field and elvis operator
    • KT-45139 Inline class: AssertionError: Expected top level inline class
    • KT-45195 JVM IR: annotation methods are generated as default interface methods if allopen is used
    • KT-45446 JVM / IR: NullPointerException caused by unreachable code and comparison
    • KT-45721 JVM / IR: "Unbound symbols not allowed" caused by class reference in sequence lambda
    • KT-45853 JVM / IR: "Accidental override" caused by inheriting Throwable.getCause from Java interface
    • KT-45861 Turning warnings into errors for calls with type parameters annotated by @​OnlyInputTypes
    • KT-45868 JVM IR: ClassCastException with SAM function in init block when SAM is generated via invokedynamic
    • KT-45920 JVM IR: "Accidental override" on redefining get() in custom Map class
    • KT-45963 JVM / IR: "AbstractMethodError: Receiver class does not define or inherit an implementation of the resolved method" in Dokka tests
    • KT-45967 JVM IR: "IllegalAccessError" with invokedynamic to Java SAM over callable reference to private function
    • KT-45982 Wrong subtyping result on captured types with postponed type variables

    IDE. Inspections and Intentions

    • KT-38155 Lift assignment out of 'if' produces type mismatch without manually adding a semicolon

    JavaScript

    • KT-44796 KJS / IR: default parameter of function with @​JsName leads to "RangeError: Maximum call stack size exceeded"

    Libraries

    • KT-39177 Make CharCategory available in common multiplatform code
    • KT-43772 Kotlin/Native unfinished workers detected.

    Tools. Gradle

    ... (truncated)

    Changelog

    Sourced from kotlin-gradle-plugin's changelog.

    CHANGELOG

    Commits

    Updates kotlin-stdlib-jdk7 from 1.4.30 to 1.5.0

    Release notes

    Sourced from kotlin-stdlib-jdk7's releases.

    Kotlin 1.5.0-RC

    Changelog

    Compiler

    New Features

    • KT-28791 Kotlin serialization with inline classes
    • KT-43920 Support loading binary Java annotations on fields

    Performance Improvements

    • KT-44153 NI: Low Memory and IntelliJ hangs when quotes in split() are missed
    • KT-45410 JVM / IR: Extreme performance regression on arithmetic operations inside a loop

    Fixes

    • KT-35224 It's possible to pass non-spread arrays after arguments with SAM-conversion
    • KT-36853 IR: UninitializedPropertyAccessException on tailrec with object expression in default argument
    • KT-41056 Increase stub version due to new "contract" keyword
    • KT-43887 Problem with FunctionReferenceLowering$FunctionReferenceBuilder in kotlin native
    • KT-44210 KJS / IR: "AssertionError: Undefined parameter referenced: defined" caused by plus assign operators in build blocks
    • KT-44947 Sealed interfaces: Sealed fun interface leads to "NoWhenBranchMatchedException"
    • KT-44993 JVM IR: VerifyError on getfield with Kotlin generic field and elvis operator
    • KT-45139 Inline class: AssertionError: Expected top level inline class
    • KT-45195 JVM IR: annotation methods are generated as default interface methods if allopen is used
    • KT-45446 JVM / IR: NullPointerException caused by unreachable code and comparison
    • KT-45721 JVM / IR: "Unbound symbols not allowed" caused by class reference in sequence lambda
    • KT-45853 JVM / IR: "Accidental override" caused by inheriting Throwable.getCause from Java interface
    • KT-45861 Turning warnings into errors for calls with type parameters annotated by @​OnlyInputTypes
    • KT-45868 JVM IR: ClassCastException with SAM function in init block when SAM is generated via invokedynamic
    • KT-45920 JVM IR: "Accidental override" on redefining get() in custom Map class
    • KT-45963 JVM / IR: "AbstractMethodError: Receiver class does not define or inherit an implementation of the resolved method" in Dokka tests
    • KT-45967 JVM IR: "IllegalAccessError" with invokedynamic to Java SAM over callable reference to private function
    • KT-45982 Wrong subtyping result on captured types with postponed type variables

    IDE. Inspections and Intentions

    • KT-38155 Lift assignment out of 'if' produces type mismatch without manually adding a semicolon

    JavaScript

    • KT-44796 KJS / IR: default parameter of function with @​JsName leads to "RangeError: Maximum call stack size exceeded"

    Libraries

    • KT-39177 Make CharCategory available in common multiplatform code
    • KT-43772 Kotlin/Native unfinished workers detected.

    Tools. Gradle

    ... (truncated)

    Changelog

    Sourced from kotlin-stdlib-jdk7's changelog.

    CHANGELOG

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Bump coroutine_version from 1.0.1 to 1.4.3-native-mt

    Bump coroutine_version from 1.0.1 to 1.4.3-native-mt

    Bumps coroutine_version from 1.0.1 to 1.4.3-native-mt. Updates kotlinx-coroutines-core from 1.0.1 to 1.4.3-native-mt

    Release notes

    Sourced from kotlinx-coroutines-core's releases.

    1.4.3

    General changes

    • Thread context is properly preserved and restored for coroutines without ThreadContextElement (#985)
    • ThreadContextElements are now restored in the opposite order from update (#2195)
    • Improved performance of combine with 4 parameters, thanks to @alexvanyo (#2419)
    • Debug agent sanitizer leaves at least one frame with source location (#1437)
    • Update Reactor version in kotlinx-coroutines-reactor to 3.4.1, thanks to @sokomishalov (#2432)
    • callsInPlace contract added to ReceiveChannel.consume (#941)
    • CoroutineStart.UNDISPATCHED promoted to stable API (#1393)
    • Kotlin updated to 1.4.30
    • kotlinx.coroutines are now released directly to MavenCentral
    • Reduced the size of DispatchedCoroutine by a field
    • Internal class TimeSource renamed to SchedulerTimeSource to prevent wildcard import issues (#2537)

    Bug fixes

    • Fixed the problem that prevented implementation via delegation for Job interface (#2423)
    • Fixed incorrect ProGuard rules that allowed shrinking volatile felds (#1564)
    • Fixed await/asDeferred for MinimalStage implementations in jdk8 module (#2456)
    • Fixed bug when onUndeliveredElement wasn't called for unlimited channels (#2435)
    • Fixed a bug when ListenableFuture.isCancelled returned from asListenableFuture could have thrown an exception, thanks to @vadimsemenov (#2421)
    • Coroutine in callbackFlow and produce is properly cancelled when the channel was closed separately (#2506)

    1.4.2

    • Fixed StackOverflowError in Job.toString when Job is observed in its intermediate state (#2371).
    • Improved liveness and latency of Dispatchers.Default and Dispatchers.IO in low-loaded mode (#2381).
    • Improved performance of consecutive Channel.cancel invocations (#2384).
    • SharingStarted is now fun interface (#2397).
    • Additional lint settings for SharedFlow to catch programmatic errors early (#2376).
    • Fixed bug when mutex and semaphore were not released during cancellation (#2390, thanks to @Tilps for reproducing).
    • Some corner cases in cancellation propagation between coroutines and listenable futures are repaired (#1442, thanks to @vadimsemenov).
    • Fixed unconditional cast to CoroutineStackFrame in exception recovery that triggered failures of instrumented code (#2386).
    • Platform-specific dependencies are removed from kotlinx-coroutines-javafx (#2360).

    1.4.1

    This is a patch release with an important fix to the SharedFlow implementation.

    • SharedFlow: Fix scenario with concurrent emitters and cancellation of a subscriber (#2359, thanks to @vehovsky for the bug report).

    1.4.0

    Improvements

    • StateFlow, SharedFlow and corresponding operators are promoted to stable API (#2316).
    • Flow.debounce operator with timeout selector based on each individual element is added (#1216, thanks to @mkano9!).
    • CoroutineContext.job extension property is introduced (#2159).
    • Flow.combine operator is reworked:
      • Complete fairness is maintained for single-threaded dispatchers.
      • Its performance is improved, depending on the use-case, by at least 50% (#2296).
      • Quadratic complexity depending on the number of upstream flows is eliminated (#2296).

    ... (truncated)

    Changelog

    Sourced from kotlinx-coroutines-core's changelog.

    Change log for kotlinx.coroutines

    Version 1.4.3

    General changes

    • Thread context is properly preserved and restored for coroutines without ThreadContextElement (#985)
    • ThreadContextElements are now restored in the opposite order from update (#2195)
    • Improved performance of combine with 4 parameters, thanks to @alexvanyo (#2419)
    • Debug agent sanitizer leaves at least one frame with source location (#1437)
    • Update Reactor version in kotlinx-coroutines-reactor to 3.4.1, thanks to @sokomishalov (#2432)
    • callInPlace contract added to ReceiveChannel.consume (#941)
    • CoroutineStart.UNDISPATCHED promoted to stable API (#1393)
    • Kotlin updated to 1.4.30
    • kotlinx.coroutines are now released directly to MavenCentral
    • Reduced the size of DispatchedCoroutine by a field
    • Internal class TimeSource renamed to SchedulerTimeSource to prevent wildcard import issues (#2537)

    Bug fixes

    • Fixed the problem that prevented implementation via delegation for Job interface (#2423)
    • Fixed incorrect ProGuard rules that allowed shrinking volatile felds (#1564)
    • Fixed await/asDeferredforMinimalState` implementations in jdk8 module (#2456)
    • Fixed bug when onUndeliveredElement wasn't called for unlimited channels (#2435)
    • Fixed a bug when ListenableFuture.isCancelled returned from asListenableFuture could have thrown an exception, thanks to @vadimsemenov (#2421)
    • Coroutine in callbackFlow and produce is properly cancelled when the channel was closed separately (#2506)

    Version 1.4.2

    • Fixed StackOverflowError in Job.toString when Job is observed in its intermediate state (#2371).
    • Improved liveness and latency of Dispatchers.Default and Dispatchers.IO in low-loaded mode (#2381).
    • Improved performance of consecutive Channel.cancel invocations (#2384).
    • SharingStarted is now fun interface (#2397).
    • Additional lint settings for SharedFlow to catch programmatic errors early (#2376).
    • Fixed bug when mutex and semaphore were not released during cancellation (#2390, thanks to @Tilps for reproducing).
    • Some corner cases in cancellation propagation between coroutines and listenable futures are repaired (#1442, thanks to @vadimsemenov).
    • Fixed unconditional cast to CoroutineStackFrame in exception recovery that triggered failures of instrumented code (#2386).
    • Platform-specific dependencies are removed from kotlinx-coroutines-javafx (#2360).

    Version 1.4.1

    This is a patch release with an important fix to the SharedFlow implementation.

    • SharedFlow: Fix scenario with concurrent emitters and cancellation of subscriber (#2359, thanks to @vehovsky for the bug report).

    Version 1.4.0

    Improvements

    ... (truncated)

    Commits

    Updates kotlinx-coroutines-android from 1.0.1 to 1.4.3-native-mt

    Release notes

    Sourced from kotlinx-coroutines-android's releases.

    1.4.3

    General changes

    • Thread context is properly preserved and restored for coroutines without ThreadContextElement (#985)
    • ThreadContextElements are now restored in the opposite order from update (#2195)
    • Improved performance of combine with 4 parameters, thanks to @alexvanyo (#2419)
    • Debug agent sanitizer leaves at least one frame with source location (#1437)
    • Update Reactor version in kotlinx-coroutines-reactor to 3.4.1, thanks to @sokomishalov (#2432)
    • callsInPlace contract added to ReceiveChannel.consume (#941)
    • CoroutineStart.UNDISPATCHED promoted to stable API (#1393)
    • Kotlin updated to 1.4.30
    • kotlinx.coroutines are now released directly to MavenCentral
    • Reduced the size of DispatchedCoroutine by a field
    • Internal class TimeSource renamed to SchedulerTimeSource to prevent wildcard import issues (#2537)

    Bug fixes

    • Fixed the problem that prevented implementation via delegation for Job interface (#2423)
    • Fixed incorrect ProGuard rules that allowed shrinking volatile felds (#1564)
    • Fixed await/asDeferred for MinimalStage implementations in jdk8 module (#2456)
    • Fixed bug when onUndeliveredElement wasn't called for unlimited channels (#2435)
    • Fixed a bug when ListenableFuture.isCancelled returned from asListenableFuture could have thrown an exception, thanks to @vadimsemenov (#2421)
    • Coroutine in callbackFlow and produce is properly cancelled when the channel was closed separately (#2506)

    1.4.2

    • Fixed StackOverflowError in Job.toString when Job is observed in its intermediate state (#2371).
    • Improved liveness and latency of Dispatchers.Default and Dispatchers.IO in low-loaded mode (#2381).
    • Improved performance of consecutive Channel.cancel invocations (#2384).
    • SharingStarted is now fun interface (#2397).
    • Additional lint settings for SharedFlow to catch programmatic errors early (#2376).
    • Fixed bug when mutex and semaphore were not released during cancellation (#2390, thanks to @Tilps for reproducing).
    • Some corner cases in cancellation propagation between coroutines and listenable futures are repaired (#1442, thanks to @vadimsemenov).
    • Fixed unconditional cast to CoroutineStackFrame in exception recovery that triggered failures of instrumented code (#2386).
    • Platform-specific dependencies are removed from kotlinx-coroutines-javafx (#2360).

    1.4.1

    This is a patch release with an important fix to the SharedFlow implementation.

    • SharedFlow: Fix scenario with concurrent emitters and cancellation of a subscriber (#2359, thanks to @vehovsky for the bug report).

    1.4.0

    Improvements

    • StateFlow, SharedFlow and corresponding operators are promoted to stable API (#2316).
    • Flow.debounce operator with timeout selector based on each individual element is added (#1216, thanks to @mkano9!).
    • CoroutineContext.job extension property is introduced (#2159).
    • Flow.combine operator is reworked:
      • Complete fairness is maintained for single-threaded dispatchers.
      • Its performance is improved, depending on the use-case, by at least 50% (#2296).
      • Quadratic complexity depending on the number of upstream flows is eliminated (#2296).

    ... (truncated)

    Changelog

    Sourced from kotlinx-coroutines-android's changelog.

    Change log for kotlinx.coroutines

    Version 1.4.3

    General changes

    • Thread context is properly preserved and restored for coroutines without ThreadContextElement (#985)
    • ThreadContextElements are now restored in the opposite order from update (#2195)
    • Improved performance of combine with 4 parameters, thanks to @alexvanyo (#2419)
    • Debug agent sanitizer leaves at least one frame with source location (#1437)
    • Update Reactor version in kotlinx-coroutines-reactor to 3.4.1, thanks to @sokomishalov (#2432)
    • callInPlace contract added to ReceiveChannel.consume (#941)
    • CoroutineStart.UNDISPATCHED promoted to stable API (#1393)
    • Kotlin updated to 1.4.30
    • kotlinx.coroutines are now released directly to MavenCentral
    • Reduced the size of DispatchedCoroutine by a field
    • Internal class TimeSource renamed to SchedulerTimeSource to prevent wildcard import issues (#2537)

    Bug fixes

    • Fixed the problem that prevented implementation via delegation for Job interface (#2423)
    • Fixed incorrect ProGuard rules that allowed shrinking volatile felds (#1564)
    • Fixed await/asDeferredforMinimalState` implementations in jdk8 module (#2456)
    • Fixed bug when onUndeliveredElement wasn't called for unlimited channels (#2435)
    • Fixed a bug when ListenableFuture.isCancelled returned from asListenableFuture could have thrown an exception, thanks to @vadimsemenov (#2421)
    • Coroutine in callbackFlow and produce is properly cancelled when the channel was closed separately (#2506)

    Version 1.4.2

    • Fixed StackOverflowError in Job.toString when Job is observed in its intermediate state (#2371).
    • Improved liveness and latency of Dispatchers.Default and Dispatchers.IO in low-loaded mode (#2381).
    • Improved performance of consecutive Channel.cancel invocations (#2384).
    • SharingStarted is now fun interface (#2397).
    • Additional lint settings for SharedFlow to catch programmatic errors early (#2376).
    • Fixed bug when mutex and semaphore were not released during cancellation (#2390, thanks to @Tilps for reproducing).
    • Some corner cases in cancellation propagation between coroutines and listenable futures are repaired (#1442, thanks to @vadimsemenov).
    • Fixed unconditional cast to CoroutineStackFrame in exception recovery that triggered failures of instrumented code (#2386).
    • Platform-specific dependencies are removed from kotlinx-coroutines-javafx (#2360).

    Version 1.4.1

    This is a patch release with an important fix to the SharedFlow implementation.

    • SharedFlow: Fix scenario with concurrent emitters and cancellation of subscriber (#2359, thanks to @vehovsky for the bug report).

    Version 1.4.0

    Improvements

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Bump constraint-layout from 1.1.3 to 2.0.4

    Bump constraint-layout from 1.1.3 to 2.0.4

    Bumps constraint-layout from 1.1.3 to 2.0.4.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

    You can always request more updates by clicking Bump now in your Dependabot dashboard.

    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
  • Bump gradle-bintray-plugin from 1.4 to 1.8.5

    Bump gradle-bintray-plugin from 1.4 to 1.8.5

    Bumps gradle-bintray-plugin from 1.4 to 1.8.5.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Note: This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.

    You can always request more updates by clicking Bump now in your Dependabot dashboard.

    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 0
Releases(v1.0.2)
Owner
Nikhil Chaudhari
programming and percussions !!
Nikhil Chaudhari
A small Android project to practice executing network requests and parsing the network response

InspirationalQuotesExercise A small Android project to practice executing network requests and parsing the network response This app uses the ZenQuote

Caren 0 Oct 13, 2021
Retrofit Flow Call Adapter Factory For Android

Summary Android Retrofit FlowCallAdapterFactory Retrofit 2 CallAdapter.Factory f

TaeHwan 12 Aug 3, 2022
Handle various HTTP status code by safe api call with Result sealed class

retrofit2-safe-api-call Handle various HTTP status code by safe api call with Result sealed class Library Retrofit2 OkHttp3 Gson Coroutine DI : Koin V

Jaesung Lee 2 May 16, 2022
A library that observes your network status.

A library that observes your network status. Update in progress ... Download Using gradle In your root build.gradle at the end of repositories add all

Moses Wangira 9 Apr 18, 2022
Android network client based on Cronet. This library let you easily use QUIC protocol in your Android projects

Android network client based on Cronet. This library let you easily use QUIC protocol in your Android projects

VK.com 104 Dec 12, 2022
Asynchronous Http and WebSocket Client library for Java

Async Http Client Follow @AsyncHttpClient on Twitter. The AsyncHttpClient (AHC) library allows Java applications to easily execute HTTP requests and a

AsyncHttpClient 6k Jan 8, 2023
Android Asynchronous Networking and Image Loading

Android Asynchronous Networking and Image Loading Download Maven Git Features Kotlin coroutine/suspend support Asynchronously download: Images into Im

Koushik Dutta 6.3k Dec 27, 2022
Easy, asynchronous, annotation-based SOAP for Android

IceSoap IceSoap provides quick, easy, asynchronous access to SOAP web services from Android devices. It allows for SOAP responses to be bound to Java

Alex Gilleran 75 Nov 29, 2022
Asynchronous socket, http(s) (client+server) and websocket library for android. Based on nio, not threads.

AndroidAsync AndroidAsync is a low level network protocol library. If you are looking for an easy to use, higher level, Android aware, http request li

Koushik Dutta 7.3k Jan 2, 2023
An android asynchronous http client built on top of HttpURLConnection.

Versions 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 Version 1.0.6 Description An android asynchronous http client based on HttpURLConnection. Updates U

David 15 Mar 29, 2020
Compact and easy to use, 'all-in-one' android network solution

Deprecated Unfortunately due to many reasons including maintenance cost, this library is deprecated. I recommend to use Retrofit/OkHttp instead. Curre

Orhan Obut 585 Dec 30, 2022
Android library listening network connection state and change of the WiFi signal strength with event bus

NetworkEvents Android library listening network connection state and change of the WiFi signal strength with event bus. It works with any implementati

Piotr Wittchen 452 Nov 21, 2022
Sandwich was invented for constructing the standardized response interface from the network response

?? A lightweight and standardized Android network response interface for handling successful data and error responses.

Jaewoong Eum 973 Jan 5, 2023
Operations are performed by calling api endpoints over the network

##About The app Operations are performed by calling api endpoints over the network. Local data is in effect immutable, the client just downloads updat

Marc Daniel Registre 1 Oct 22, 2021
Cli lightning network server, based on LDK (rust-lightning). Provides DUMB-RPC interface (telnet friendly).

Hello Lightning Cli lightning network server, based on LDK (rust-lightning). Provides DUMB-RPC interface (telnet friendly). Example: Build it run it:

null 9 Mar 28, 2022
SMNetworkChecker aims to help check if the network is connected or if the wifi is connected.

Network Checker for Android SMNetworkChecker aims to help check if the network is connected or if the wifi is connected. Preview Network connection O

Sangmin Kim 3 Aug 5, 2022
SimpleApiCalls is a type-safe REST client for Android. The library provides the ability to interact with APIs and send network requests with HttpURLConnection.

SimpleApiCalls ?? SimpleApiCalls is a type-safe REST client for Android. The library provides the ability to interact with APIs and send network reque

null 4 Nov 28, 2022
HttpMocker is a simple HTTP mocking library written in Kotlin to quickly and easily handle offline modes in your apps

HttpMocker HttpMocker is a very lightweight Kotlin library that allows to mock HTTP calls relying on either OkHttp or the Ktor client libraries. It ca

David Blanc 174 Nov 28, 2022
Mock your datas for Okhttp and Retrofit in json format in just a few moves

okhttp-json-mock This simple library helps you mock your data for using with okhttp+retrofit in json format in just a few moves. it forwards the reque

Mad Mirrajabi 240 Nov 25, 2022