A Android app Permissions with Kotlin Flow APIs

Overview

Permission Flow for Android

Know about real-time state of a Android app Permissions with Kotlin Flow APIs. Made with ❤️ for Android Developers.

Build Release codecov Maven Central GitHub

dokka kover

Github Followers GitHub stars GitHub forks GitHub watchers Twitter Follow

💡 Introduction

In big projects, app is generally divided in several modules and in such cases, if any individual module is just a data module (not having UI) and need to know state of a permission, it's not that easy. This library provides a way to know state of a permission throughout the app and from any layer of the application safely.

For example, you can listen for state of contacts permission in class where you'll instantly show list of contacts when permission is granted.

It's a simple and easy to use library. Just Plug and Play.

🚀 Implementation

You can check /app directory which includes example application for demonstration.

1. Gradle setup

In build.gradle of app module, include this dependency

dependencies {
    implementation "dev.shreyaspatil.permission-flow:permission-flow-android:$version"
    
    // For using in Jetpack Compose
    implementation "dev.shreyaspatil.permission-flow:permission-flow-compose:$version"
}

You can find latest version and changelogs in the releases.

2. Initialization

Before using any API of the library, it needs to be initialized before.
Initialize PermissionFlow as follows (For example, in Application class):

class MyApplication: Application() {
    override fun onCreate() {
        super.onCreate()
        PermissionFlow.init(this)
    }
}

3. Observing a Permission State

3.1 Observing Permission with StateFlow

A permission state can be subscribed by retrieving StateFlow or StateFlow as follows:

val permissionFlow = PermissionFlow.getInstance()

// Observe state of single permission
suspend fun observePermission() {
    permissionFlow.getPermissionState(android.Manifest.permission.READ_CONTACTS).collect { state ->
        if (state.isGranted) {
            // Do something
        }
    }
}

// Observe state of multiple permissions
suspend fun observeMultiplePermissions() {
    permissionFlow.getMultiplePermissionState(
        android.Manifest.permission.READ_CONTACTS,
        android.Manifest.permission.READ_SMS
    ).collect { state ->
        // All permission states
        val allPermissions = state.permissions

        // Check whether all permissions are granted
        val allGranted = state.allGranted

        // List of granted permissions
        val grantedPermissions = state.grantedPermissions

        // List of denied permissions
        val deniedPermissions = state.deniedPermissions
    }
}

3.2 Observing permissions in Jetpack Compose

State of a permission and state of multiple permissions can also be observed in Jetpack Compose application as follows:

@Composable
fun ExampleSinglePermission() {
    val state by rememberPermissionState(Manifest.permission.CAMERA)
    if (state.isGranted) {
        // Render something
    } else {
        // Render something else
    }
}

@Composable
fun ExampleMultiplePermission() {
    val state by rememberMultiplePermissionState(
        Manifest.permission.CAMERA
        Manifest.permission.ACCESS_FINE_LOCATION,
        Manifest.permission.READ_CONTACTS
    )
    
    if (state.allGranted) {
        // Render something
    }
    
    val grantedPermissions = state.grantedPermissions
    // Do something with `grantedPermissions`
    
    val deniedPermissions = state.deniedPermissions
    // Do something with `deniedPermissions`
}

4. Requesting permission with PermissionFlow

It's necessary to use utilities provided by this library to request permissions so that whenever permission state changes, this library takes care of notifying respective flows.

4.1 Request permission from Activity / Fragment

Use registerForPermissionFlowRequestsResult() method to get ActivityResultLauncher and use launch() method to request for permission.

class ContactsActivity : AppCompatActivity() {

    private val permissionLauncher = registerForPermissionFlowRequestsResult()

    private fun askContactsPermission() {
        permissionLauncher.launch(Manifest.permission.READ_CONTACTS, ...)
    }
}

4.2 Request permission in Jetpack Compose

Use rememberPermissionFlowRequestLauncher() method to get ManagedActivityResultLauncher and use launch() method to request for permission.

@Composable
fun Example() {
    val permissionLauncher = rememberPermissionFlowRequestLauncher()
    
    Button(onClick = { permissionLauncher.launch(android.Manifest.permission.CAMERA, ...) }) {
        Text("Request Permissions")
    } 
}

5. Manually notifying permission state changes ⚠️

If you're not using ActivityResultLauncher APIs provided by this library then you will not receive permission state change updates. But there's a provision by which you can help this library to know about permission state changes.

Use PermissionFlow#notifyPermissionsChanged() to notify the permission state changes from your manual implementations.

For example:

class MyActivity: AppCompatActivity() {
    private val permissionFlow = PermissionFlow.getInstance()
    
    private val permissionLauncher = registerForActivityResult(RequestPermission()) { isGranted ->
        permissionFlow.notifyPermissionsChanged(android.Manifest.permission.READ_CONTACTS)
    }
}

6. Manually Start / Stop Listening ⚠️

This library starts processing things lazily whenever getPermissionState() or getMultiplePermissionState() is called for the first time. But this can be controlled with these methods:

fun doSomething() {
    // Stops listening to the state changes of permissions throughout the application.
    // This means the state of permission retrieved with [getMultiplePermissionState] method will not 
    // be updated after stopping listening. 
    permissionFlow.stopListening()
    
    // Starts listening the changes of state of permissions after stopping listening
    permissionFlow.startListening()
}

📄 API Documentation

Visit the API documentation of this library to get more information in detail. This documentation is generated using Dokka.

📊 Test coverage report

Check the Test Coverage Report of this library. This is generated using Kover.


🙋‍♂️ Contribute

Read contribution guidelines for more information regarding contribution.

💬 Discuss?

Have any questions, doubts or want to present your opinions, views? You're always welcome. You can start discussions.

📝 License

Copyright 2022 Shreyas Patil

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
  • Support for shouldShowRequestRationale

    Support for shouldShowRequestRationale

    I was wondering if we can add support for shouldShowRequestRationale as mentioned in the recommend flow of permissions by Google

    Infact, I was trying to do the same, but I am not too sure about the implementation

    opened by ForceGT 4
  • [Update]: Bump mockk from 1.12.7 to 1.13.1

    [Update]: Bump mockk from 1.12.7 to 1.13.1

    Bumps mockk from 1.12.7 to 1.13.1.

    Release notes

    Sourced from mockk's releases.

    V1.12.8

    Big thanks to @​aSemy, @​qoomon and @​kubode for investigating and fixing the bugs introduced in v1.12.7 and further improving the library!

    What's Changed

    Full Changelog: https://github.com/mockk/mockk/compare/1.12.7...v1.12.8

    Commits

    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)
    dependencies 
    opened by dependabot[bot] 2
  • [Update]: Bump mockk from 1.12.7 to 1.12.8

    [Update]: Bump mockk from 1.12.7 to 1.12.8

    Bumps mockk from 1.12.7 to 1.12.8.

    Release notes

    Sourced from mockk's releases.

    V1.12.8

    Big thanks to @​aSemy, @​qoomon and @​kubode for investigating and fixing the bugs introduced in v1.12.7 and further improving the library!

    What's Changed

    Full Changelog: https://github.com/mockk/mockk/compare/1.12.7...v1.12.8

    Commits
    • 1f2d038 Bump version to 1.12.9-SNAPSHOT
    • b0eea7e Merge pull request #918 from aSemy/patch-1
    • 3f9b2ca add 1.7.20-RC to test matrix
    • 53f22ed Merge pull request #913 from aSemy/fix/de-duplicate-valueclasssupport
    • c986928 update API dump
    • 8342477 Merge remote-tracking branch 'mockk/master' into fix/de-duplicate-valueclasss...
    • 6a8ff9f fix import after mockk-core package rename
    • 0e9ff0c update package after subproject rename
    • 2213135 make boxCast internal again
    • 5b1f61c revert boxCast refactor (while it respects value classes, it is not specifica...
    • Additional commits viewable in compare view

    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)
    dependencies 
    opened by dependabot[bot] 2
  • [Update]: Bump mockk from 1.12.7 to 1.13.2

    [Update]: Bump mockk from 1.12.7 to 1.13.2

    Bumps mockk from 1.12.7 to 1.13.2.

    Release notes

    Sourced from mockk's releases.

    1.13.2

    What's Changed

    New Contributors

    Full Changelog: https://github.com/mockk/mockk/compare/1.13.1...1.13.2

    1.13.1

    New major release, mainly because the dependency to be included in gradle/maven files has changed from io.mockk:mockk to io.mockk:mockk-<platform>, where platform is either jvm or android.

    What's Changed

    Full Changelog: https://github.com/mockk/mockk/compare/v1.12.8...1.13.1

    V1.12.8

    Big thanks to @​aSemy, @​qoomon and @​kubode for investigating and fixing the bugs introduced in v1.12.7 and further improving the library!

    What's Changed

    Full Changelog: https://github.com/mockk/mockk/compare/1.12.7...v1.12.8

    Commits
    • 6d5fe10 Bump version to 1.13.3-SNAPSHOT
    • 85737c8 Merge pull request #933 from aSemy/add_jdk_19_to_test_matrix
    • 51dac76 Merge remote-tracking branch 'origin/master' into add_jdk_19_to_test_matrix
    • 985c6fe add jdk 19 to workflow test matrix
    • 159a50a Merge pull request #916 from stuebingerb/fix/fix-sealed-classes
    • 7cf6f19 Merge pull request #926 from aSemy/docs/readme_update_dependencies
    • 00b8bb9 formatting, remove NBSPs
    • 7a826fc update dependencies in readme to reflect new multiplatform structure
    • 3c78f7c Updated the dependency name after 1.13.1 change
    • 5f7a350 Bump version after 1.13.1 release
    • Additional commits viewable in compare view

    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)
    dependencies 
    opened by dependabot[bot] 1
  • [Update]: Bump turbine from 0.8.0 to 0.10.0

    [Update]: Bump turbine from 0.8.0 to 0.10.0

    Bumps turbine from 0.8.0 to 0.10.0.

    Release notes

    Sourced from turbine's releases.

    0.10.0

    Changed

    • Remove ReceiveTurbine.ignoreRemainingEvents from public API.

    Fixed

    • Restore usage of Unconfined dispatcher preventing value conflation (as much as possible) so that intermediate values can always be observed.

    0.9.0

    • FlowTurbine is now called ReceiveTurbine. This is the consume-only type with which you assert on events it has seen (historically only from a Flow).
    • New public Turbine type implements ReceiveTurbine but also allows you write events from a data source. Use this to implement fakes or collect events from non-Flow streams.
    • Extension functions on ReceiveChannel provide ReceiveTurbine-like assertion capabilities.
    • Support for legacy JS has been removed. Only JS IR is now supported.
    • Removed some APIs deprecated in 0.8.x.
    Changelog

    Sourced from turbine's changelog.

    [0.10.0]

    Changed

    • Remove ReceiveTurbine.ignoreRemainingEvents from public API.

    Fixed

    • Restore usage of Unconfined dispatcher preventing value conflation (as much as possible) so that intermediate values can always be observed.

    [0.9.0]

    • FlowTurbine is now called ReceiveTurbine. This is the consume-only type with which you assert on events it has seen (historically only from a Flow).
    • New public Turbine type implements ReceiveTurbine but also allows you write events from a data source. Use this to implement fakes or collect events from non-Flow streams.
    • Extension functions on ReceiveChannel provide ReceiveTurbine-like assertion capabilities.
    • Support for legacy JS has been removed. Only JS IR is now supported.
    • Removed some APIs deprecated in 0.8.x.
    Commits
    • ae9549e Prepare version 0.10.0
    • b273fd7 Restore unconfined dispatcher usage
    • d447cde Upgrade to Kotlin and Dokka to 1.7.10
    • a1a5ea8 Remove public property indicating ignoring remaining events
    • 3a89143 Bump actions/setup-java from 3.4.1 to 3.5.0
    • 5be054f Use Gradle wrapper 7.5.1.
    • 071bb70 Use Coroutines 1.6.4.
    • 403d968 Fix release link for version 0.9.0.
    • bb0cdac Prepare next development version
    • c8919d0 Prepare version 0.9.0
    • Additional commits viewable in compare view

    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)
    dependencies 
    opened by dependabot[bot] 1
  • [Update]: Bump mockk from 1.12.5 to 1.12.7

    [Update]: Bump mockk from 1.12.5 to 1.12.7

    Bumps mockk from 1.12.5 to 1.12.7.

    Release notes

    Sourced from mockk's releases.

    1.12.7

    What's Changed

    New Contributors

    Full Changelog: https://github.com/mockk/mockk/compare/1.12.6...1.12.7

    V1.12.6

    What's Changed

    New Contributors

    Full Changelog: https://github.com/mockk/mockk/compare/1.12.5...1.12.6

    Commits
    • 35e4dea Fix a bug with artifact signing and release v1.12.7
    • ae698e2 Merge pull request #887 from kubode/kubode/fix_android_publishing
    • 5d40bb2 Remove wrong Jar import
    • 41c2299 Fix an issue that Android libraries was not published
    • bee2223 Merge pull request #885 from aSemy/dynamic-enable-signing
    • 07be76d Merge pull request #886 from aSemy/patch-1
    • 88ff38d Update android-sdk-detector.settings.gradle.kts
    • 9784ce2 only sign if the signing properties are present
    • 4139fa2 Update release process for sonatype and release v1.12.6
    • 870bd59 Merge pull request #855 from aSemy/fix/854-update-build-config
    • Additional commits viewable in compare view

    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)
    dependencies 
    opened by dependabot[bot] 1
  • [Update]: Bump org.jetbrains.kotlinx.kover from 0.5.1 to 0.6.0

    [Update]: Bump org.jetbrains.kotlinx.kover from 0.5.1 to 0.6.0

    Bumps org.jetbrains.kotlinx.kover from 0.5.1 to 0.6.0.

    Release notes

    Sourced from org.jetbrains.kotlinx.kover's releases.

    0.6.0

    Note that this is a full changelog relative to 0.6.0 version. Changelog relative to 0.6.0-Beta can be found at the changelog file.

    In this version, the plugin API has been completely redesigned. The new API allows you to configure Kover in a more flexible manner, there is no need to configure Kover or test tasks separately.

    Please refer to migration guide in order to migrate from previous versions.

    Features

    • Implemented a new plugin API (#19)
    • Added support of instruction and branch counters for verification tasks (#128)
    • Ordered report tasks before verification tasks (#209)
    • Minimal and default agent versions upgraded to 1.0.680

    Bugfixes

    • Verification task is no longer executed if there are no rules (#168)
    • Added instrumentation filtering by common filters (#201)
    • Fixed instrumentation counter in IntelliJ verifier (#210, #211, #212)

    Internal features

    • Kotlin version upgraded to 1.7.10
    • instrumentation config added to the test framework
    • added test on instrumentation config

    Documentation

    • Updated docs for onCheck properties (#213)

    0.6.0-Beta

    In this version, the plugin API has been fully redesigned. The new API allows you to configure Kover in a more flexible manner, there is no need to configure Kover or test tasks separately.

    Refer to migration guide in order to migrate.

    This is a beta release, the stability of all features is not guaranteed. The beta version is released to collect feedback on the new API and its usability.

    Features

    • Implemented a new plugin API (#19)
    • Minimal and default agent versions upgraded to 1.0.675
    • Added support of instruction and branch counters for verification tasks (#128)

    Bugfixes

    • Verification task is no longer executed if there are no rules (#168)

    Internal features

    • Kotlin version upgraded to 1.7.10
    • instrumentation config added to the test framework
    • added test on instrumentation config
    Changelog

    Sourced from org.jetbrains.kotlinx.kover's changelog.

    0.6.0 / 2022-08-23

    Note that this is a full changelog relative to 0.6.0 version. Changelog relative to 0.6.0-Beta can be found at the end of the changelog.

    In this version, the plugin API has been completely redesigned. The new API allows you to configure Kover in a more flexible manner, there is no need to configure Kover or test tasks separately.

    Please refer to migration guide in order to migrate from previous versions.

    Features

    • Implemented a new plugin API (#19)
    • Added support of instruction and branch counters for verification tasks (#128)
    • Ordered report tasks before verification tasks (#209)
    • Minimal and default agent versions upgraded to 1.0.680

    Bugfixes

    • Verification task is no longer executed if there are no rules (#168)
    • Added instrumentation filtering by common filters (#201)
    • Fixed instrumentation counter in IntelliJ verifier (#210, #211, #212)

    Internal features

    • Kotlin version upgraded to 1.7.10
    • instrumentation config added to the test framework
    • added test on instrumentation config

    Documentation

    • Updated docs for onCheck properties (#213)

    Changelog relative to version 0.6.0-Beta

    Features

    • Ordered report tasks before verification (#209)
    • Minimal and default agent versions upgraded to 1.0.680

    Bugfixes

    • Added instrumentation filtering by common filters (#201)
    • Fixed instrumentation counter in IntelliJ verifier (#210, #211, #212)

    Documentation

    • Updated docs for onCheck properties (#213)

    0.6.0-Beta / 2022-08-02

    In this version, the plugin API has been fully redesigned. The new API allows you to configure Kover in a more flexible manner, there is no need to configure Kover or test tasks separately.

    Refer to migration guide in order to migrate.

    This is a beta release, the stability of all features is not guaranteed. The beta version is released to collect feedback on the new API and its usability.

    Features

    • Implemented a new plugin API (#19)
    • Minimal and default agent versions upgraded to 1.0.675

    ... (truncated)

    Commits
    • 0fcc584 Release 0.6.0
    • a0ff8d9 Updated docs for onCheck properties
    • cb8280d Ordered report tasks before verification
    • f7f0d1c Fixed instrumentation counter in IntelliJ verifier
    • 5e50881 Added instrumentation filtering by common filters
    • 34005d4 Improved the description of merged tasks in the README.md
    • f1f8f2f Release 0.6.0-Beta
    • 6d6ca6c Implemented Kover API version 2
    • d9e1369 Upgrade Gradle version to 7.4.2
    • 072e748 Update README.md (#184)
    • See full diff in compare view

    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)
    dependencies 
    opened by dependabot[bot] 1
  • [Update]: Bump mockk from 1.12.5 to 1.12.6

    [Update]: Bump mockk from 1.12.5 to 1.12.6

    Bumps mockk from 1.12.5 to 1.12.6.

    Release notes

    Sourced from mockk's releases.

    V1.12.6

    What's Changed

    New Contributors

    Full Changelog: https://github.com/mockk/mockk/compare/1.12.5...1.12.6

    Commits
    • 4139fa2 Update release process for sonatype and release v1.12.6
    • 870bd59 Merge pull request #855 from aSemy/fix/854-update-build-config
    • 6eab7ab set buildSrc to use jdk11
    • 339f19e disable failing sealed interface tests
    • 634814c formatting
    • 35e5836 disable failing sealed class tests
    • bd4e048 fix android test dependencies
    • 216ca93 set-up separate Java Toolchains for test/main tasks
    • fd65c4b lower toolchain version, adjust how it's set in the GitHub Action
    • d1d4518 bump toolchain versions to latest LTS version
    • Additional commits viewable in compare view

    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)
    dependencies 
    opened by dependabot[bot] 1
  • [Update]: Bump turbine from 0.8.0 to 0.9.0

    [Update]: Bump turbine from 0.8.0 to 0.9.0

    Bumps turbine from 0.8.0 to 0.9.0.

    Release notes

    Sourced from turbine's releases.

    0.9.0

    • FlowTurbine is now called ReceiveTurbine. This is the consume-only type with which you assert on events it has seen (historically only from a Flow).
    • New public Turbine type implements ReceiveTurbine but also allows you write events from a data source. Use this to implement fakes or collect events from non-Flow streams.
    • Extension functions on ReceiveChannel provide ReceiveTurbine-like assertion capabilities.
    • Support for legacy JS has been removed. Only JS IR is now supported.
    • Removed some APIs deprecated in 0.8.x.
    Changelog

    Sourced from turbine's changelog.

    [0.9.0]

    • FlowTurbine is now called ReceiveTurbine. This is the consume-only type with which you assert on events it has seen (historically only from a Flow).
    • New public Turbine type implements ReceiveTurbine but also allows you write events from a data source. Use this to implement fakes or collect events from non-Flow streams.
    • Extension functions on ReceiveChannel provide ReceiveTurbine-like assertion capabilities.
    • Support for legacy JS has been removed. Only JS IR is now supported.
    • Removed some APIs deprecated in 0.8.x.
    Commits
    • c8919d0 Prepare version 0.9.0
    • 5ea5ba3 Update comments to match new API shape
    • e7f67a4 Restructure Turbine around channels
    • 2a93f70 Bump actions/setup-java from 3.4.0 to 3.4.1
    • c84e69e Delete cancel method on hot flows doc
    • 70345b1 Bump actions/setup-java from 3.3.0 to 3.4.0
    • 7473948 fix testIn documentation
    • dd8d4de Bump actions/setup-java from 3.2.0 to 3.3.0
    • bbe4938 Prepare next development version
    • See full diff in compare view

    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)
    dependencies 
    opened by dependabot[bot] 1
  • [Update]: Bump mockk from 1.12.4 to 1.12.5

    [Update]: Bump mockk from 1.12.4 to 1.12.5

    Bumps mockk from 1.12.4 to 1.12.5.

    Release notes

    Sourced from mockk's releases.

    V1.12.5

    Thanks a lot @​aSemy for the big effort to add value class support!

    What's Changed

    New Contributors

    Full Changelog: https://github.com/mockk/mockk/compare/1.12.4...1.12.5

    Commits
    • 1d1e6a8 Changes for release 1.12.5
    • b37283b Merge branch 'master' of github.com:mockk/mockk
    • 02a6d45 Merge pull request #849 from aSemy/fix/152-value-classes
    • 4f2f26f Merge pull request #861 from aSemy/fix/832-kt1_7-sealed-classes
    • 92893ca Merge pull request #862 from aSemy/update-github-action-all-tests
    • 50bed94 add a timeout of 30 minutes (just in case...)
    • 6d810ba use the same cache settings for android tests, update concurrency (hopefully ...
    • b9dbde2 enable Gradle Build Cache, disable Gradle Welcome message
    • 2ce0e65 update to cachev3, separate Gradle caches, make hash key less strict
    • fbd393a move concurrency block
    • Additional commits viewable in compare view

    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)
    dependencies 
    opened by dependabot[bot] 1
  • [Update]: Bump kotlinx-coroutines-android from 1.6.3 to 1.6.4

    [Update]: Bump kotlinx-coroutines-android from 1.6.3 to 1.6.4

    Bumps kotlinx-coroutines-android from 1.6.3 to 1.6.4.

    Release notes

    Sourced from kotlinx-coroutines-android's releases.

    1.6.4

    • Added TestScope.backgroundScope for launching coroutines that perform work in the background and need to be cancelled at the end of the test (#3287).
    • Fixed the POM of kotlinx-coroutines-debug having an incorrect reference to kotlinx-coroutines-bom, which cause the builds of Maven projects using the debug module to break (#3334).
    • Fixed the Publisher.await functions in kotlinx-coroutines-reactive not ensuring that the Subscriber methods are invoked serially (#3360). Thank you, @​EgorKulbachka!
    • Fixed a memory leak in withTimeout on K/N with the new memory model (#3351).
    • Added the guarantee that all Throwable implementations in the core library are serializable (#3328).
    • Moved the documentation to https://kotlinlang.org/api/kotlinx.coroutines/ (#3342).
    • Various documentation improvements.
    Changelog

    Sourced from kotlinx-coroutines-android's changelog.

    Version 1.6.4

    • Added TestScope.backgroundScope for launching coroutines that perform work in the background and need to be cancelled at the end of the test (#3287).
    • Fixed the POM of kotlinx-coroutines-debug having an incorrect reference to kotlinx-coroutines-bom, which cause the builds of Maven projects using the debug module to break (#3334).
    • Fixed the Publisher.await functions in kotlinx-coroutines-reactive not ensuring that the Subscriber methods are invoked serially (#3360). Thank you, @​EgorKulbachka!
    • Fixed a memory leak in withTimeout on K/N with the new memory model (#3351).
    • Added the guarantee that all Throwable implementations in the core library are serializable (#3328).
    • Moved the documentation to https://kotlinlang.org/api/kotlinx.coroutines/ (#3342).
    • Various documentation improvements.
    Commits
    • 81e17dd Version 1.6.4
    • f31b037 Merge remote-tracking branch 'origin/master' into develop
    • c8271ad Improve CoroutineDispatcher documentation (#3359)
    • ac4f57e Update binary compatibility validator to 0.11.0 (#3362)
    • 143bdfa Add a scope for launching background work in tests (#3348)
    • 562902b Fix debug module publication with shadow plugin (#3357)
    • 8b6473d Comply with Subscriber rule 2.7 in the await* impl (#3360)
    • 10261a7 Update readme (#3343)
    • 7934032 Reduce reachable references of disposed invokeOnTimeout handle (#3353)
    • f0874d1 Merge pull request #3342 from Kotlin/kotlinlang-api
    • Additional commits viewable in compare view

    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)
    dependencies 
    opened by dependabot[bot] 1
  • [Update]: Bump org.jetbrains.kotlinx.kover from 0.5.1 to 0.6.1

    [Update]: Bump org.jetbrains.kotlinx.kover from 0.5.1 to 0.6.1

    Bumps org.jetbrains.kotlinx.kover from 0.5.1 to 0.6.1.

    Release notes

    Sourced from org.jetbrains.kotlinx.kover's releases.

    0.6.1

    Features

    • Implemented filtering of reports by annotation (#121)
    • Minimal and default agent versions upgraded to 1.0.683

    Bugfixes

    • Added filtering out projects without a build file (#222)
    • Added JaCoCo reports filtering (#220)
    • Fixed coverage for function reference (#148)
    • Fixed incorrect multiplatform lookup adapter (#193)
    • Fixed ArrayIndexOutOfBoundsException during class instrumentation (#166)

    Internal features

    • Upgraded Gradle version to 7.5.1
    • Rewritten functional tests infrastructure
    • Added example projects
    • XML and HTML report generation moved to Kover Aggregator

    Documentation

    • Added contribution guide
    • Added section Building and contributing into Table of contents
    • Fix migration to 0.6.0 documentation

    0.6.0

    Note that this is a full changelog relative to 0.6.0 version. Changelog relative to 0.6.0-Beta can be found at the changelog file.

    In this version, the plugin API has been completely redesigned. The new API allows you to configure Kover in a more flexible manner, there is no need to configure Kover or test tasks separately.

    Please refer to migration guide in order to migrate from previous versions.

    Features

    • Implemented a new plugin API (#19)
    • Added support of instruction and branch counters for verification tasks (#128)
    • Ordered report tasks before verification tasks (#209)
    • Minimal and default agent versions upgraded to 1.0.680

    Bugfixes

    • Verification task is no longer executed if there are no rules (#168)
    • Added instrumentation filtering by common filters (#201)
    • Fixed instrumentation counter in IntelliJ verifier (#210, #211, #212)

    Internal features

    • Kotlin version upgraded to 1.7.10
    • instrumentation config added to the test framework
    • added test on instrumentation config

    Documentation

    • Updated docs for onCheck properties (#213)

    ... (truncated)

    Changelog

    Sourced from org.jetbrains.kotlinx.kover's changelog.

    0.6.1 / 2022-10-03

    Features

    • Implemented filtering of reports by annotation (#121)
    • Minimal and default agent versions upgraded to 1.0.683

    Bugfixes

    • Added filtering out projects without a build file (#222)
    • Added JaCoCo reports filtering (#220)
    • Fixed coverage for function reference (#148)
    • Fixed incorrect multiplatform lookup adapter (#193)
    • Fixed ArrayIndexOutOfBoundsException during class instrumentation (#166)

    Internal features

    • Upgraded Gradle version to 7.5.1
    • Rewritten functional tests infrastructure
    • Added example projects
    • XML and HTML report generation moved to Kover Aggregator

    Documentation

    • Added contribution guide
    • Added section Building and contributing into Table of contents
    • Fix migration to 0.6.0 documentation

    0.6.0 / 2022-08-23

    Note that this is a full changelog relative to 0.6.0 version. Changelog relative to 0.6.0-Beta can be found at the end of the changelog.

    In this version, the plugin API has been completely redesigned. The new API allows you to configure Kover in a more flexible manner, there is no need to configure Kover or test tasks separately.

    Please refer to migration guide in order to migrate from previous versions.

    Features

    • Implemented a new plugin API (#19)
    • Added support of instruction and branch counters for verification tasks (#128)
    • Ordered report tasks before verification tasks (#209)
    • Minimal and default agent versions upgraded to 1.0.680

    Bugfixes

    • Verification task is no longer executed if there are no rules (#168)
    • Added instrumentation filtering by common filters (#201)
    • Fixed instrumentation counter in IntelliJ verifier (#210, #211, #212)

    Internal features

    • Kotlin version upgraded to 1.7.10
    • instrumentation config added to the test framework
    • added test on instrumentation config

    Documentation

    ... (truncated)

    Commits
    • 24a0188 Release 0.6.1
    • 8734c77 Minimal and default agent versions upgraded to 1.0.683
    • 3dc8702 Fixed incorrect multiplatform lookup adapter
    • 562d11c Add Android example project
    • 55173f6 Implemented filtering of reports by annotation
    • 1d75e05 Fix migration to 0.6.0 documentation
    • d72c49d Added example projects
    • 798dc69 Added section Building and contributing into Table of contents
    • da53779 Added contribution guide
    • 633aebf Added JaCoCo reports filtering
    • Additional commits viewable in compare view

    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)
    dependencies 
    opened by dependabot[bot] 0
  • [Update]: Bump turbine from 0.10.0 to 0.11.0

    [Update]: Bump turbine from 0.10.0 to 0.11.0

    Bumps turbine from 0.10.0 to 0.11.0.

    Release notes

    Sourced from turbine's releases.

    0.11.0

    Added

    • Restore timeout support. By default a 1-second timeout will be enforced when awaiting an event. This can be customized by supplying a timeout argument or by using the withTurbineTimeout wrapper function. Timeouts will always use wall clock time even when using a virtual time dispatcher.

    Changed

    • When runTest (or any TestCoroutineScheduler) is in use, switch to the UnconfinedTestScheduler internally to ensure virtual time remains working.
    Changelog

    Sourced from turbine's changelog.

    [0.11.0]

    Added

    • Restore timeout support. By default a 1-second timeout will be enforced when awaiting an event. This can be customized by supplying a timeout argument or by using the withTurbineTimeout wrapper function. Timeouts will always use wall clock time even when using a virtual time dispatcher.

    Changed

    • When runTest (or any TestCoroutineScheduler) is in use, switch to the UnconfinedTestScheduler internally to ensure virtual time remains working.
    Commits
    • c806049 Prepare version 0.11.0
    • 0645f26 Small useless tweaks
    • bd023f0 Copy Channel timeout tests into Flow and Flow-in-scope tests
    • f118449 Restore timeouts with wallclock time (#140)
    • 65bfc13 Fix incorrect expectCompleteButWasErrorThrows test
    • b0f10c6 Fix bugs with expectRecentItem and error events
    • bfc4558 Centralize custom exception subtype for tests
    • b4f99fa Use test-specific unconfined when test scheduler is in use
    • 9b6c033 Prepare next development version
    • See full diff in compare view

    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)
    dependencies 
    opened by dependabot[bot] 2
  • [Update]: Bump com.vanniktech.maven.publish from 0.21.0 to 0.22.0

    [Update]: Bump com.vanniktech.maven.publish from 0.21.0 to 0.22.0

    Bumps com.vanniktech.maven.publish from 0.21.0 to 0.22.0.

    Changelog

    Sourced from com.vanniktech.maven.publish's changelog.

    Version 0.22.0 (2022-09-09)

    • NEW: When publishing to maven central by setting SONATYPE_HOST or calling publishToMavenCentral(...) the plugin will now explicitly create a staging repository on Sonatype. This avoids issues where a single build would create multiple repositories
    • The above change means that the plugin supports parallel builds and it is not neccessary anymore to use --no-parallel and --no-daemon together with publish
    • NEW: When publishing with the publish or publishAllPublicationsToMavenCentralRepository tasks the plugin will automatically close the staging repository at the end of the build if it was successful.
    • NEW: Option to also automatically release the staging repository after closing was susccessful
    SONATYPE_HOST=DEFAULT # or S01
    SONATYPE_AUTOMATIC_RELEASE=true
    

    or

    mavenPublishing {
      publishToMavenCentral("DEFAULT", true)
      // or publishToMavenCentral("S01", true)
    }
    
    • in case the option above is enabled, the closeAndReleaseRepository task is not needed anymore
    • when closing the repository fails the plugin will fail the build immediately instead of timing out
    • when closing the repository fails the plugin will try to print the error messages from Nexus
    • increased timeouts for calls to the Sonatype Nexus APIs
    • fixed incompatibility with the com.gradle.plugin-publish plugin
    • added wokaround for Kotlin multiplatform builds reporting disabled build optimizations
    Commits
    • 7df14f3 Prepare for release 0.22.0
    • 3dd754a Use version catalog to manage dependencies to make renovate work again (#412)
    • 0dc4587 prepare changelog for next release (#411)
    • 0db5be2 drop repository when build fails (#410)
    • 19a8631 retrieve activity messages when closing repository fails (#409)
    • d28e119 Use composite builds instead of buildSrc (#408)
    • 5e48420 Create nexus lazily to avoid an error when properties aren't set (#405)
    • 86b2c8f workaround issues with the signing setup (#404)
    • c143338 automatically close the created repository and optionally also release it (#403)
    • 482502d detect when closing the repository failed (#402)
    • Additional commits viewable in compare view

    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)
    dependencies 
    opened by dependabot[bot] 1
  • Add App Startup library

    Add App Startup library

    First of all thank you for this awesome project. I added App Startup library in this project and the user doesn't need to initialize manually anymore!

    I also fixed the build issues. ActivityLifecycleCallbackExtTest using reflect modifiers. It's no longer supporting on JDK16 or later. (I'm not native speaker, sorry for any grammatical mistakes)

    • [x] ./gradlew build -> BUILD SUCCESSFUL
    • [x] ./gradlew spotlessApply -> BUILD SUCCESSFUL
    opened by dev-weiqi 2
  • [Update]: Bump com.diffplug.spotless from 6.7.2 to 6.9.0

    [Update]: Bump com.diffplug.spotless from 6.7.2 to 6.9.0

    Bumps com.diffplug.spotless from 6.7.2 to 6.9.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)
    dependencies 
    opened by dependabot[bot] 1
  • [Update]: Bump kotlinVersion from 1.6.10 to 1.7.10

    [Update]: Bump kotlinVersion from 1.6.10 to 1.7.10

    Bumps kotlinVersion from 1.6.10 to 1.7.10. Updates org.jetbrains.kotlin.android from 1.6.10 to 1.7.10

    Release notes

    Sourced from org.jetbrains.kotlin.android's releases.

    Kotlin 1.7.10

    Changelog

    Compiler

    • KT-52702 Invalid locals information when compiling kotlinx.collections.immutable with Kotlin 1.7.0-RC2
    • KT-52892 Disappeared specific builder inference resolution ambiguity errors
    • KT-52782 Appeared receiver type mismatch error due to ProperTypeInferenceConstraintsProcessing compiler feature
    • KT-52718 declaringClass deprecation message mentions the wrong replacement in 1.7

    IDE. Configuration

    • KTIJ-21982 Cannot run/build anything with Kotlin plugin since last update

    Tools. Gradle

    • KT-52777 'org.jetbrains.kotlinx:atomicfu:1.7.0' Gradle 7.0+ plugin variant was published with missing classes

    Tools. Gradle. JS

    • KT-52856 Kotlin/JS: Upgrade NPM dependencies

    Tools. Gradle. Multiplatform

    • KT-52955 SourceSetMetadataStorageForIde: Broken 'cleanupStaleEntries' with enabled configuration caching or isolated ClassLoaders
    • KT-52694 Kotlin 1.7.0 breaks Configuration Caching in Android projects

    Tools. Incremental Compile

    • KT-52669 Full rebuild in IC exception recovery leaves corrupt IC data

    Checksums

    File Sha256
    kotlin-compiler-1.7.10.zip 7683f5451ef308eb773a686ee7779a76a95ed8b143c69ac247937619d7ca3a09
    kotlin-native-linux-x86_64-1.7.10.tar.gz 6f89015e1dfbc7b535e540a22a004ef3e6e4f04349e4a894ed45e703c3b3116f
    kotlin-native-macos-x86_64-1.7.10.tar.gz a5ba0ce86ebd3cc625456c7180b3d890bc2808ef9f14f8d56dd6ab3bb103a4ef
    kotlin-native-macos-aarch64-1.7.10.tar.gz c971cdf36eb733e249170458c567ad7c38fe0a801f6a784b2de54e3eda49c329
    kotlin-native-windows-x86_64-1.7.10.zip dec9c2019e73b887851794040c7809074578aca41341b15a929433183d01eb8d

    Kotlin 1.7.0

    Changelog

    Analysis API. FIR

    • KT-50864 Analysis API: ISE: "KtCallElement should always resolve to a KtCallInfo" is thrown on call resolution inside plusAssign target
    • KT-50252 Analysis API: Implement FirModuleResolveStates for libraries
    • KT-50862 Analsysis API: do not create use site subsitution override symbols

    ... (truncated)

    Changelog

    Sourced from org.jetbrains.kotlin.android's changelog.

    1.7.10

    Compiler

    • KT-52702 Invalid locals information when compiling kotlinx.collections.immutable with Kotlin 1.7.0-RC2
    • KT-52892 Disappeared specific builder inference resolution ambiguity errors
    • KT-52782 Appeared receiver type mismatch error due to ProperTypeInferenceConstraintsProcessing compiler feature
    • KT-52718 declaringClass deprecation message mentions the wrong replacement in 1.7

    IDE

    Fixes

    • KTIJ-19088 KotlinUFunctionCallExpression.resolve() returns null for calls to @​JvmSynthetic functions
    • KTIJ-19624 NoDescriptorForDeclarationException on iosTest.kt.vm
    • KTIJ-21515 Load JVM target 1.6 as 1.8 in Maven projects
    • KTIJ-21735 Exception when opening a project
    • KTIJ-17414 UAST: Synthetic enum methods have null return values
    • KTIJ-17444 UAST: Synthetic enum methods are missing nullness annotations
    • KTIJ-19043 UElement#comments is empty for a Kotlin property with a getter
    • KTIJ-10031 IDE fails to suggest a project declaration import if the name clashes with internal declaration with implicit import from stdlib (ex. @​Serializable)
    • KTIJ-21151 Exception about wrong read access from "Java overriding methods searcher" with Kotlin overrides
    • KTIJ-20736 NoClassDefFoundError: Could not initialize class org.jetbrains.kotlin.idea.roots.KotlinNonJvmOrderEnumerationHandler. Kotlin plugin 1.7 fails to start
    • KTIJ-21063 IDE highlighting: False positive error "Context receivers should be enabled explicitly"
    • KTIJ-20810 NoClassDefFoundError: org/jetbrains/kotlin/idea/util/SafeAnalyzeKt errors in 1.7.0-master-212 kotlin plugin on project open
    • KTIJ-17869 KotlinUFunctionCallExpression.resolve() returns null for instantiations of local classes with default constructors
    • KTIJ-21061 UObjectLiteralExpression.getExpressionType() returns the base class type for Kotlin object literals instead of the anonymous class type
    • KTIJ-20200 UAST: @​Deprecated(level=HIDDEN) constructors are not returning UMethod.isConstructor=true

    IDE. Code Style, Formatting

    • KTIJ-20554 Introduce some code style for definitely non-null types

    IDE. Completion

    • KTIJ-14740 Multiplatform declaration actualised in an intermediate source set is shown twice in a completion popup called in the source set

    IDE. Debugger

    • KTIJ-20815 MPP Debugger: Evaluation of expect function for the project with intermediate source set may fail with java.lang.NoSuchMethodError

    IDE. Decompiler, Indexing, Stubs

    • KTIJ-21472 "java.lang.IllegalStateException: Could not read file" exception on indexing invalid class file
    • KTIJ-20802 Definitely Not-Null types: "UpToDateStubIndexMismatch: PSI and index do not match" plugin error when trying to use library function with T&Any

    IDE. FIR

    • KTIJ-20971 FIR IDE: "Parameter Info" shows parameters of uncallable methods
    • KTIJ-21021 FIR IDE: Completion of extension function does not work on nullable receiver

    ... (truncated)

    Commits
    • ea836fd Add changelog for 1.7.10
    • 66fb59d Merge KT-MR-6569: [IC] Fix fallback logic in IncrementalCompilerRunner
    • 298c99e Revert renaming the kotlinx-atomicfu-runtime module
    • 39d59cb [IC] Fix fallback logic in IncrementalCompilerRunner
    • aab426c Remove 'org.jetbrains.kotlin.platform.type' attribute from publication
    • 7cc0002 Update Gradle publish plugin to 1.0.0-rc-3 version
    • 5c34d5b [MPP] SourceSetMetadataStorageForIde: Remove faulty 'cleanupStaleEntries'
    • a449dda [FE 1.0] Imitate having builder inference annotation while trying resolve wit...
    • 304bf92 Revert "[Gradle] Propagate offline mode to Native compiler"
    • 91863f2 Revert "[Gradle] Propagate offline mode to Native cinterop"
    • Additional commits viewable in compare view

    Updates org.jetbrains.dokka from 1.6.10 to 1.7.10

    Release notes

    Sourced from org.jetbrains.dokka's releases.

    1.7.0 Beta

    Improvements

    General

    HTML format

    Javadoc format

    GFM format

    Kotlin-as-Java plugin

    Gradle runner

    Fixes

    General bugfixes

    Security

    ... (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)
    dependencies 
    opened by dependabot[bot] 0
Releases(v1.0.0)
Owner
Shreyas Patil
💼Android Engineer @ Paytm Insider, 👨‍💻Google Developer Expert for Android, ❤️Kotlin, 👨‍🚀Organizer @KotlinMumbai
Shreyas Patil
A full-stack application showing the power 💪 of KOTLIN. Entire android app + backend Apis written in Kotlin 🔥

Gamebaaz ?? A full-stack application showing the power ?? of KOTLIN. Entire android app + backend Apis written in Kotlin ?? Android Backend Jetpack Co

Sarnava Konar 85 Nov 17, 2022
A Mars Photos app for Android using NASA APIs with MVVM + Clean Architecture

Mars Photos App ?? Mars Photos App for Android that display a list of photos taken from cameras from different rovers - Made with Hilt, Coroutines, Re

Waseef Akhtar 3 Jun 30, 2022
A news app made using android studio in Java with features like favourite news, Location detector for local news, and especially made with HUAWEI APIs

HuaweiGlobalNewsApp A news app made using android studio in Java with features like favourite news, Location detector for local news, and especially m

Christian Imanuel Hadiwidjaja 1 Oct 30, 2021
An simple image gallery app utilizing Unsplash API to showcase modern Android development architecture (MVVM + Kotlin + Retrofit2 + Hilt + Coroutines + Kotlin Flow + mockK + Espresso + Junit)

Imagine App An simple image gallery app utilizing Unsplash API. Built with ❤︎ by Wajahat Karim and contributors Features Popular photos with paginatio

Wajahat Karim 313 Jan 4, 2023
App which show comic and characters using marvel apis

Marvel App App which show comic and characters using marvel apis ScreenShot Tech Room database MVVM Architecture Navigation Component How to run proje

null 2 Jan 1, 2022
null 0 Jan 7, 2022
CameraX- - CameraXbasic aims to demonstrate how to use CameraX APIs written in Kotlin

CameraXbasic CameraXbasic aims to demonstrate how to use CameraX APIs written in

null 0 Apr 21, 2022
Android application that implements location and network related Android APIs

Location and network data collection Location and network data collection with Android's telephonyManager class. Introduction Technologies Android's A

jquk 0 Oct 31, 2021
Android samples for Google Workspace APIs

Google Workspace Android Samples A collection of samples that demonstrate how to call Google Workspace APIs from Android. Products Drive Deprecation A

Google Workspace 615 Dec 16, 2022
Sanctuary relies on the Android Work Profile APIs to create a self-contained work profile on a user's personal device.

Sanctuary relies on the Android Work Profile APIs to create a self-contained work profile on a user's personal device. Managed apps, data, and management policies are restricted to the work profile, keeping them secure and separate from personal data while maintaining user privacy.

Jonathan Odul 1 Dec 15, 2021
An android application that displays public apis' for developers to use

An android application that displays public apis' for developers to use. This application implements adaptive layout by use of a sliding pane layout

Samora Machel 3 Oct 17, 2022
SlushFlicks has been built upon public APIs from IMDB.

SlushFlicks SlushFlicks has been built upon public APIs from IMDB. This application helps users to view trending, popular, upcoming and top-rated movi

Sifat Oshan 14 Jul 28, 2022
NativeScript empowers you to access native platform APIs from JavaScript directly. Angular, Capacitor, Ionic, React, Svelte, Vue and you name it compatible.

NativeScript empowers you to access native APIs from JavaScript directly. The framework currently provides iOS and Android runtimes for rich mobile de

NativeScript 22k Dec 31, 2022
Wiremock-testing - WireMock - A great library to mock APIs in your tests and supports Junit5

WireMock Testing WireMock is a great library to mock APIs in your tests and supp

Roger Viñas 1 Oct 4, 2022
GitHub application fetches events, repositories and profile using GitHub APIs

GitHub application using GitHub REST API Dagger MVVM architecture Mockk Jetpack Compose Kotlin Coroutines Application pages Attention If you want to u

Marjan DavoodiNejad 6 Oct 17, 2022
MVVM + Kotlin + Jetpack Compose +Navigation Compose + Hilt + Retrofit + Unit Testing + Compose Testing + Coroutines + Kotlin Flow + Io mockK

MvvmKotlinJetpackCompose Why do we need an architecture even when you can make an app without it? let's say you created a project without any architec

Sayyed Rizwan 46 Nov 29, 2022
Shreyas Patil 2.1k Dec 30, 2022
Simple Notes app demonstrates modern Android development with Hilt, Material Motion, Coroutines, Flow, Jetpack (Room, ViewModel) based on MVVM architecture.

Simple Notes app demonstrates modern Android development with Hilt, Material Motion, Coroutines, Flow, Jetpack (Room, ViewModel) based on MVVM architecture.

Aravind Chowdary 2 Sep 3, 2022
The JeTrivia is built on a modern Android Development tech stack with MVVM architecture. Kotlin, Coroutine, Flow, StateFlow, Jetpack Compose, Navigation, Room, Hilt, Retrofit2, OkHttp3, kotlinx.serialization, MockK, Truth

JeTrivia ?? In Progress ?? The JeTrivia application is sample based on MVVM architecture. Fetching data from the network via repository pattern and sa

Tolga Bolatcan 5 Mar 31, 2022