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

Overview

Asynkio : Write asynced IO/ Network calls painlessly on android


⚠️ Warning ⚠️

This library is no longer being maintained. Please make your code to use existing kotlin-coroutines features. The feature of async and await is now added in the kotlin-coroutines library itself. You can check here





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
Mostly Android, Kotlin, Jetpack Compose, sleep, eat.
Nikhil Chaudhari
Webclient-kotlin-sample - An example of using the http web client to promote synchronous and asynchronous https calls

Web Client Consumer Kotlin Sample The project is an example of using the http we

null 1 May 1, 2022
Asynchronous Spring Initializr API wrapper for Kotlin/JVM

initializr-kt Asynchronous Spring Initializr API wrapper for Kotlin/JVM. This library provides the simplest DSL for initializing Spring Boot projects

Mikhail Titov 2 May 8, 2022
DS-for-Kotlin - Some classic data sturctures write in kotlin for fun

DS-for-Kotlin Just write some classic data structure by kotlin during my leisure

ccyyxx 2 Jan 30, 2022
Tools for Kotlin/Kscript to easy write shell command line in kotlin code

Kscript Tools Easy way to run shell command line in kotlin and other tools Usage Used in kscript: @file:DependsOn("com.sealwu:kscript-tools:1.0.2") Us

Seal 4 Dec 12, 2022
Block unknown callers with this call screening service.

Silence Block unknown callers with this call screening service. By default numbers not in your contact list are blocked. Optionally allow: Numbers you

lucky 162 Jan 5, 2023
LiveDataCallAdapter - Live Data Call Adapter Factory

LiveDataCallAdapterFactory based on retrofit, the LiveData returned by the restf

Jay Wang 0 Feb 6, 2022
📞 Remote call sample android app using RemoteMonster

?? Remote call sample android app using RemoteMonster

Robin 1 Mar 17, 2022
Automatically generates UI demos which allow users to call any function with any parameters

Automatically generates UI demos which allow users to call any function (including composable ones) with any parameters. Useful for building demo screens in playground apps of various design systems.

Anton Popov 3 Jul 28, 2022
A Basic Call Recorder for rooted Android devices

Basic Call Recorder BCR is a simple Android call recording app for rooted devices or devices running custom firmware. Once enabled, it stays out of th

Andrew Gunnerson 420 Jan 7, 2023
Ktor is an asynchronous framework for creating microservices, web applications and more.

ktor-sample Ktor is an asynchronous framework for creating microservices, web applications and more. Written in Kotlin from the ground up. Application

mohamed tamer 5 Jan 22, 2022
This lib is the framework for dependency tasks, specially for the asynchronous tasks.

DependencyTask This lib is the framework for dependency tasks, specially for the asynchronous tasks. Backgroud Image that there is a progress with som

null 1 May 6, 2022
Execute asynchronous batch tasks with predefined or custom UI in Android.

AndroidBatchWorker Execute asynchronous batch tasks with predefined or custom UI in Android. Import Add JitPack repository to your project level build

Nowrose Muhammad Ragib 3 Nov 8, 2022
Training a dense neural network using both KotlinDL and Python3 on the mnist dataset.

KotlinDL-mnist KotlinDL: Deep Learning Framework written in Kotlin This project trains a dense neural network using both KotlinDL and Python3 on the m

Wu Han 2 Apr 7, 2022
KTor-Client---Android - The essence of KTor Client for network calls

KTor Client - Android This project encompasses the essence of KTor Client for ne

Mansoor Nisar 2 Jan 18, 2022
🍓CookHelper - food social network. The Api and Websocket are based on Ktor framework. Dependency injection with Koin library.

CookHelper [ ?? Work in Progress ?? ] CookHelper is a cross-platform application that will allow you to cook a delicious dish from an existing recipe

Arthur 11 Nov 9, 2022
Easy app for managing your files without ads, respecting your privacy & security

Simple File Manager Can also be used for browsing root files and SD card content. You can easily rename, copy, move, delete and share anything you wis

Simple Mobile Tools 1.2k Dec 29, 2022
To help to promote your android app by prompting users to rate your app in a bottom Sheet.

RateBottomSheet This an Android library to help to promote your Android App by prompting users to rate your app in the Google Play Store with a materi

Farham Hosseini 5 Jul 8, 2022
TakeNotes, taking care of your tasks and your health

Take Notes - Para tornar sua rotina mais Saudável TakeNotes, cuidando de suas tarefas e de sua saúde Sobre • Funcionalidades • Layout • Como executar

null 0 Dec 7, 2021
Binding your extras more easier, more simpler for your Android project

Ktan Ktan make your intent / arguments more easier and readable. And most important, will help you bind all extras for your activity / fragment. And a

Ade Fruandta 3 Jan 7, 2023