Android injection using the Anvil compiler plugin

Overview

Maven Central Gradle Plugin Portal License


Tangle creates Dagger bindings for Android classes using the Anvil Kotlin compiler plugin. This is meant to be an alternative to Hilt, for those who'd prefer to enjoy the faster compilation and better flexibility of Anvil.

Since Tangle is an extension upon Anvil, its code generation will be applied to Kotlin files only.

Please see the project website for full documentation.

Features

ViewModel Injection

class MyViewModel @VMInject constructor(
  val repository: MyRepository,
  @TangleParam("userId") // pulls the "userId" argument out of SavedStateHandle
  val userId: String
) : ViewModel()

@Composable
fun MyComposable(
  navController: NavController,
  viewModel: MyViewModel = tangleViewModel()
) { /* ... */ }

class MyFragment : Fragment() {
  val viewModel: MyViewModel by tangleViewModel()
}

Inject ViewModels, including scoped SavedStateHandle arguments. Use the @TangleParam annotation to automatically extract navigation/Bundle arguments and inject them directly. read more

Fragment Injection with Bundle arguments

@ContributesFragment(AppScope::class)
class MyFragment @FragmentInject constructor(
  val repository: MyRepository
) : Fragment() {

  val name: String by arg("name")

  @FragmentInjectFactory
  interface Factory {
    fun create(
      @TangleParam("name") name: String
    ): MyFragment
  }
}

Use constructor injection in Fragments, with optional AssistedInject-like factories for type-safe Bundle arguments. Bindings are created automatically. read more

Worker Injection

@TangleWorker
class MyWorker @AssistedInject constructor(
  @Assisted context: Context,
  @Assisted params: WorkerParameters
) : CoroutineWorker(context,params) {
  override suspend fun doWork(): Result {
    /* ... */
  }
}

Use Dagger's @AssistedInject and @Assisted annotations and @TangleWorker to inject any ListenableWorker. read more

License

Copyright (C) 2021 Rick Busarow
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
  • Bump foundation from 1.0.0-rc02 to 1.0.0

    Bump foundation from 1.0.0-rc02 to 1.0.0

    Bumps foundation from 1.0.0-rc02 to 1.0.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 PR: needs recreation 
    opened by dependabot[bot] 4
  • Compose viewModel lookup ignores fragment in FragmentManager different than supportFragmentManager

    Compose viewModel lookup ignores fragment in FragmentManager different than supportFragmentManager

    I have the case of navigation based on a FragmentManager of a parent fragment via the childFragmentManager property.

    Unfortunately the current implementation of currentFragmentOrNull checks only the activity.supportFragmentManager stack thus ignoring my fragments. Injecting of ViewModel works, but fragment arguments are not passed to the SavedStateHandle

    opened by jakoss 3
  • Bump lifecycle-viewmodel-savedstate from 2.4.0 to 2.4.1

    Bump lifecycle-viewmodel-savedstate from 2.4.0 to 2.4.1

    Bumps lifecycle-viewmodel-savedstate from 2.4.0 to 2.4.1.

    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] 3
  • Bump junit-jupiter-engine from 5.7.2 to 5.8.0

    Bump junit-jupiter-engine from 5.7.2 to 5.8.0

    Bumps junit-jupiter-engine from 5.7.2 to 5.8.0.

    Release notes

    Sourced from junit-jupiter-engine's releases.

    JUnit 5.8.0 = Platform 1.8.0 + Jupiter 5.8.0 + Vintage 5.8.0

    See Release Notes.

    JUnit 5.8.0-RC1 = Platform 1.8.0-RC1 + Jupiter 5.8.0-RC1 + Vintage 5.8.0-RC1

    See Release Notes.

    JUnit 5.8.0-M1 = Platform 1.8.0-M1 + Jupiter 5.8.0-M1 + Vintage 5.8.0-M1

    See Release Notes.

    Commits
    • 709fd6e Release 5.8
    • fa74055 Use text block
    • d36ea28 Declare service in module descriptor
    • 6c0bf02 Fix modular user guide tests by reading module jdk.httpserver
    • b6dff0d Add LauncherSessionListener example to user guide
    • 439084d Polish documentation for 5.8 GA
    • fa021ed Document published dependency scope change as potentially breaking
    • efb980c Polishing
    • 0bd6feb Remove link to package private class in Javadoc
    • 75538a7 Document that autoCloseArguments in @​ParameterizedTest is a potentially break...
    • 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] 3
  • Bump moshi-ksp from 0.13.0 to 0.14.0

    Bump moshi-ksp from 0.13.0 to 0.14.0

    Bumps moshi-ksp from 0.13.0 to 0.14.0.

    Release notes

    Sourced from moshi-ksp's releases.

    0.14.0

    • Update KSP to 1.5.30-1.0.0 stable!
    • moshi-sealed-ksp has now been merged into moshi-sealed-codegen. This artifact can be used for both kapt and ksp.
    • moshi-ksp is now soft-deprecated and will be fully deprecated once Moshi's next release is out with formal support.
    Changelog

    Sourced from moshi-ksp's changelog.

    Version 0.14.0

    2021-09-07

    • Update KSP to 1.5.30-1.0.0 stable!
    • moshi-sealed-ksp has now been merged into moshi-sealed-codegen. This artifact can be used for both kapt and ksp.
    • moshi-ksp is now soft-deprecated and will be fully deprecated once Moshi's next release is out with formal support.
    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] 3
  • Bump moshi-sealed-codegen from 0.13.0 to 0.14.0

    Bump moshi-sealed-codegen from 0.13.0 to 0.14.0

    Bumps moshi-sealed-codegen from 0.13.0 to 0.14.0.

    Release notes

    Sourced from moshi-sealed-codegen's releases.

    0.14.0

    • Update KSP to 1.5.30-1.0.0 stable!
    • moshi-sealed-ksp has now been merged into moshi-sealed-codegen. This artifact can be used for both kapt and ksp.
    • moshi-ksp is now soft-deprecated and will be fully deprecated once Moshi's next release is out with formal support.
    Changelog

    Sourced from moshi-sealed-codegen's changelog.

    Version 0.14.0

    2021-09-07

    • Update KSP to 1.5.30-1.0.0 stable!
    • moshi-sealed-ksp has now been merged into moshi-sealed-codegen. This artifact can be used for both kapt and ksp.
    • moshi-ksp is now soft-deprecated and will be fully deprecated once Moshi's next release is out with formal support.
    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] 3
  • Bump moshi-sealed-runtime from 0.13.0 to 0.14.0

    Bump moshi-sealed-runtime from 0.13.0 to 0.14.0

    Bumps moshi-sealed-runtime from 0.13.0 to 0.14.0.

    Release notes

    Sourced from moshi-sealed-runtime's releases.

    0.14.0

    • Update KSP to 1.5.30-1.0.0 stable!
    • moshi-sealed-ksp has now been merged into moshi-sealed-codegen. This artifact can be used for both kapt and ksp.
    • moshi-ksp is now soft-deprecated and will be fully deprecated once Moshi's next release is out with formal support.
    Changelog

    Sourced from moshi-sealed-runtime's changelog.

    Version 0.14.0

    2021-09-07

    • Update KSP to 1.5.30-1.0.0 stable!
    • moshi-sealed-ksp has now been merged into moshi-sealed-codegen. This artifact can be used for both kapt and ksp.
    • moshi-ksp is now soft-deprecated and will be fully deprecated once Moshi's next release is out with formal support.
    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] 3
  • Bump kotlinx-coroutines-jdk8 from 1.5.1 to 1.5.2

    Bump kotlinx-coroutines-jdk8 from 1.5.1 to 1.5.2

    Bumps kotlinx-coroutines-jdk8 from 1.5.1 to 1.5.2.

    Release notes

    Sourced from kotlinx-coroutines-jdk8's releases.

    1.5.2

    • Kotlin is updated to 1.5.30.
    • New native targets for Apple Silicon are introduced.
    • Fixed a bug when onUndeliveredElement was incorrectly called on properly received elements on JS (#2826).
    • Fixed Dispatchers.Default on React Native, it now fully relies on setTimeout instead of stub process.nextTick. Thanks to @​Legion2 (#2843).
    • Optimizations of Mutex implementation (#2581).
    • Mutex implementation is made completely lock-free as stated (#2590).
    • Various documentation and guides improvements. Thanks to @​MasoodFallahpoor and @​Pihanya.
    Changelog

    Sourced from kotlinx-coroutines-jdk8's changelog.

    Version 1.5.2

    • Kotlin is updated to 1.5.30.
    • New native targets for Apple Silicon are introduced.
    • Fixed a bug when onUndeliveredElement was incorrectly called on a properly received elements on JS (#2826).
    • Fixed Dispatchers.Default on React Native, it now fully relies on setTimeout instead of stub process.nextTick. Thanks to @​Legion2 (#2843).
    • Optimizations of Mutex implementation (#2581).
    • Mutex implementation is made completely lock-free as stated (#2590).
    • Various documentation and guides improvements. Thanks to @​MasoodFallahpoor and @​Pihanya.
    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 PR: needs recreation 
    opened by dependabot[bot] 3
  • Bump kotlinx-coroutines-android from 1.5.1 to 1.5.2

    Bump kotlinx-coroutines-android from 1.5.1 to 1.5.2

    Bumps kotlinx-coroutines-android from 1.5.1 to 1.5.2.

    Release notes

    Sourced from kotlinx-coroutines-android's releases.

    1.5.2

    • Kotlin is updated to 1.5.30.
    • New native targets for Apple Silicon are introduced.
    • Fixed a bug when onUndeliveredElement was incorrectly called on properly received elements on JS (#2826).
    • Fixed Dispatchers.Default on React Native, it now fully relies on setTimeout instead of stub process.nextTick. Thanks to @​Legion2 (#2843).
    • Optimizations of Mutex implementation (#2581).
    • Mutex implementation is made completely lock-free as stated (#2590).
    • Various documentation and guides improvements. Thanks to @​MasoodFallahpoor and @​Pihanya.
    Changelog

    Sourced from kotlinx-coroutines-android's changelog.

    Version 1.5.2

    • Kotlin is updated to 1.5.30.
    • New native targets for Apple Silicon are introduced.
    • Fixed a bug when onUndeliveredElement was incorrectly called on a properly received elements on JS (#2826).
    • Fixed Dispatchers.Default on React Native, it now fully relies on setTimeout instead of stub process.nextTick. Thanks to @​Legion2 (#2843).
    • Optimizations of Mutex implementation (#2581).
    • Mutex implementation is made completely lock-free as stated (#2590).
    • Various documentation and guides improvements. Thanks to @​MasoodFallahpoor and @​Pihanya.
    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 PR: needs recreation 
    opened by dependabot[bot] 3
  • Bump kotlinx-coroutines-core from 1.5.1 to 1.5.2

    Bump kotlinx-coroutines-core from 1.5.1 to 1.5.2

    Bumps kotlinx-coroutines-core from 1.5.1 to 1.5.2.

    Release notes

    Sourced from kotlinx-coroutines-core's releases.

    1.5.2

    • Kotlin is updated to 1.5.30.
    • New native targets for Apple Silicon are introduced.
    • Fixed a bug when onUndeliveredElement was incorrectly called on properly received elements on JS (#2826).
    • Fixed Dispatchers.Default on React Native, it now fully relies on setTimeout instead of stub process.nextTick. Thanks to @​Legion2 (#2843).
    • Optimizations of Mutex implementation (#2581).
    • Mutex implementation is made completely lock-free as stated (#2590).
    • Various documentation and guides improvements. Thanks to @​MasoodFallahpoor and @​Pihanya.
    Changelog

    Sourced from kotlinx-coroutines-core's changelog.

    Version 1.5.2

    • Kotlin is updated to 1.5.30.
    • New native targets for Apple Silicon are introduced.
    • Fixed a bug when onUndeliveredElement was incorrectly called on a properly received elements on JS (#2826).
    • Fixed Dispatchers.Default on React Native, it now fully relies on setTimeout instead of stub process.nextTick. Thanks to @​Legion2 (#2843).
    • Optimizations of Mutex implementation (#2581).
    • Mutex implementation is made completely lock-free as stated (#2590).
    • Various documentation and guides improvements. Thanks to @​MasoodFallahpoor and @​Pihanya.
    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 PR: needs recreation 
    opened by dependabot[bot] 3
  • Bump kotlinx-coroutines-core-jvm from 1.5.1 to 1.5.2

    Bump kotlinx-coroutines-core-jvm from 1.5.1 to 1.5.2

    Bumps kotlinx-coroutines-core-jvm from 1.5.1 to 1.5.2.

    Release notes

    Sourced from kotlinx-coroutines-core-jvm's releases.

    1.5.2

    • Kotlin is updated to 1.5.30.
    • New native targets for Apple Silicon are introduced.
    • Fixed a bug when onUndeliveredElement was incorrectly called on properly received elements on JS (#2826).
    • Fixed Dispatchers.Default on React Native, it now fully relies on setTimeout instead of stub process.nextTick. Thanks to @​Legion2 (#2843).
    • Optimizations of Mutex implementation (#2581).
    • Mutex implementation is made completely lock-free as stated (#2590).
    • Various documentation and guides improvements. Thanks to @​MasoodFallahpoor and @​Pihanya.
    Changelog

    Sourced from kotlinx-coroutines-core-jvm's changelog.

    Version 1.5.2

    • Kotlin is updated to 1.5.30.
    • New native targets for Apple Silicon are introduced.
    • Fixed a bug when onUndeliveredElement was incorrectly called on a properly received elements on JS (#2826).
    • Fixed Dispatchers.Default on React Native, it now fully relies on setTimeout instead of stub process.nextTick. Thanks to @​Legion2 (#2843).
    • Optimizations of Mutex implementation (#2581).
    • Mutex implementation is made completely lock-free as stated (#2590).
    • Various documentation and guides improvements. Thanks to @​MasoodFallahpoor and @​Pihanya.
    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 PR: needs recreation 
    opened by dependabot[bot] 3
  • Make ComponentActivity.tangleViewModel() initialize lazily

    Make ComponentActivity.tangleViewModel() initialize lazily

    This seems to be the same issue as #227

    I tested my changes with my demo project linked in #561 and can confirm I'm no longer seeing the crash

    Fixes #561

    opened by WhosNickDoglio 0
  • NPE when using tangleViewModel() Activity extension function

    NPE when using tangleViewModel() Activity extension function

    The crash happens anytime you call the tangleViewModel ComponentActivity extension method outside of onCreate (if you call it inside onCreate it doesn't crash). Let me know if there's any more info I can provide to help.

    This is my MainActivity from my reproducing project

    class MainActivity : AppCompatActivity() {
    
        private val viewModel by tangleViewModel<MainViewModel>()
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            Toast.makeText(this, viewModel.greeting, Toast.LENGTH_SHORT).show()
        }
    }
    

    Tested using

    • Anvil 2.4.2
    • Tangle 0.15.1

    Stacktrace:

    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{dev.whosnickdoglio.tanglebug/dev.whosnickdoglio.tanglebug.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Bundle android.content.Intent.getExtras()' on a null object reference
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3591)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3842)
            at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
            at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
            at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2252)
            at android.os.Handler.dispatchMessage(Handler.java:106)
            at android.os.Looper.loopOnce(Looper.java:201)
            at android.os.Looper.loop(Looper.java:288)
            at android.app.ActivityThread.main(ActivityThread.java:7842)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
         Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.os.Bundle android.content.Intent.getExtras()' on a null object reference
            at dev.whosnickdoglio.tanglebug.MainActivity.<init>(MainActivity.kt:29)
            at java.lang.Class.newInstance(Native Method)
            at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
            at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:45)
            at android.app.Instrumentation.newActivity(Instrumentation.java:1285)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3578)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3842) 
            at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) 
            at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
            at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2252) 
            at android.os.Handler.dispatchMessage(Handler.java:106) 
            at android.os.Looper.loopOnce(Looper.java:201) 
            at android.os.Looper.loop(Looper.java:288) 
            at android.app.ActivityThread.main(ActivityThread.java:7842) 
            at java.lang.reflect.Method.invoke(Native Method) 
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) 
    

    Sample project that reproduces the crash

    opened by WhosNickDoglio 0
  • Bump loader-utils from 2.0.2 to 2.0.4 in /website

    Bump loader-utils from 2.0.2 to 2.0.4 in /website

    Bumps loader-utils from 2.0.2 to 2.0.4.

    Release notes

    Sourced from loader-utils's releases.

    v2.0.4

    2.0.4 (2022-11-11)

    Bug Fixes

    v2.0.3

    2.0.3 (2022-10-20)

    Bug Fixes

    • security: prototype pollution exploit (#217) (a93cf6f)
    Changelog

    Sourced from loader-utils's changelog.

    2.0.4 (2022-11-11)

    Bug Fixes

    2.0.3 (2022-10-20)

    Bug Fixes

    • security: prototype pollution exploit (#217) (a93cf6f)
    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)
    • @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

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Update dependency com.vanniktech:gradle-maven-publish-plugin to v0.22.0

    Update dependency com.vanniktech:gradle-maven-publish-plugin to v0.22.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | com.vanniktech:gradle-maven-publish-plugin | 0.21.0 -> 0.22.0 | age | adoption | passing | confidence |


    ⚠ Dependency Lookup Warnings ⚠

    Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.


    Release Notes

    vanniktech/gradle-maven-publish-plugin

    v0.22.0

    Compare Source

    • 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

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies automerge 
    opened by renovate[bot] 0
  • Update dokka to v1.7.20

    Update dokka to v1.7.20

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.jetbrains.dokka | 1.6.10 -> 1.7.20 | age | adoption | passing | confidence | | org.jetbrains.dokka:dokka-gradle-plugin | 1.6.10 -> 1.7.20 | age | adoption | passing | confidence | | org.jetbrains.dokka:dokka-core | 1.6.10 -> 1.7.20 | age | adoption | passing | confidence |


    ⚠ Dependency Lookup Warnings ⚠

    Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.


    Release Notes

    Kotlin/dokka

    v1.7.20: 1.7.20 Beta

    This release focuses primarily on improving user experience and HTML format in particular.

    Improvements
    General
    • Display inherited extensions (can be disabled by setting suppressInheritedMembers configuration property) (#​2625)
    • Display details for @Deprecated declarations such as deprecation message, level and proposed replacement (#​2622)
    • Display and document Enum's synthetic values() and valueOf() functions (#​2650)
    • Do not render constructors for annotation classes (#​2642)
    • Display values of Java constants (#​2609)
    • Trim spaces inside indented code blocks (#​2661, #​2232, #​2233)
    • Replace package name on the cover of package pages with "Package-level declarations" (#​2586)
    HTML format
    • Add IntelliJ icons to the navigation side menu (#​2578)
    • Add auto-scrolling to selected navigation item (#​2575)
    • Use OS color scheme to initialize light/dark mode, thanks to @​pt2121! (#​2611)
    • Update styling of all section tabs (including platform tabs) to match kotlinlang.org (#​2589)
    • Format long signatures dynamically based on client width (#​2659)
    • Add a horizontal divider between function overloads that are displayed on the same page (#​2585)
    • Add Cmd + K / Ctrl + K hotkey for opening search dialog, thanks to @​atyrin! (#​2633)
    • Make current breadcrumb element not clickable and of default font color (#​2588)
    • Update code highlighting colors (#​2670)
    • Do not render platform tabs for common-only content (#​2613)
    • Apply the same style to all KDoc tag headers, making it more consistent (#​2587)
    • Move source links into signature, especially helpful on pages with many overloads (#​2476)
    • Add inner/nested declarations to the navigation side menu (#​2597)
    • Disable copy button for signatures (#​2577)
    Javadoc format
    Kotlin-as-Java plugin
    • Render annotation blocks for transformed classes, previously ignored (#​2549)
    Gradle runner
    • Remove kotlin-stdlib dependency, which should fix errors like Module was compiled with an incompatible version of Kotlin, thanks to @​martinbonnin! (#​2570)
    Bugfixes
    • Fixed missing spaces between adjacent Markdown elements, where _try_ *this* would be rendered as trythis (#​2640)
    • Fixed dependency resolution errors when building documentation for multiplatform projects with enabled compatibility metadata variant (#​2634)
    • Fixed a rare StackOverflowError related to type-aliased native references (#​2664)
    • Fixed IllegalStateException that was caused by using JS's dynamic types (#​2645)
    • Fixed a bug where certain private declarations were rendered as public (#​2639)
    • Fixed incorrect handling of static declarations used within @see tag (#​2627)
    • Fixed Java Enum types being rendered as Any (#​2647)
    • Fixed incorrect signature generation that was caused by generic types caching (#​2619)
    • Fixed incorrect parsing of static imports in Java annotation params (#​2593)
    • Fixed sourceRoots configuration param not handling single .java files, thanks to @​2017398956! (#​2604)
    • Fixed unresponsive HTML anchor button (#​2644)
    • Fixed dokka-customFormat-example project to use up-to-date logo styles (#​2608)
    Developer experience
    Other
    • Warn users that GFM, Javadoc and Jekyll formats are in early alpha stages by printing a build log message during execution (#​2550)
    • Revise developer guides documentation that should help plugin authors and new contributors (#​2523)
    • Bump Gradle to 7.5.1, thanks to @​Goooler! (#​2618)
    • Fix spelling errors, thanks to @​FelixDombek! (#​2594)

    v1.7.10: 1.7.10 Beta

    Bugfix release that addresses several blockers and regressions.

    General
    • Support Kotlin 1.7.10
    Gradle plugin
    • Do not expose Kotlin stdlib in plugin dependencies, this should fix errors like Module was compiled with an incompatible version of Kotlin when using Dokka. Thanks to @​martinbonnin (#​2543)
    Java sources
    • Fixed build failure caused by having configured source links for Java code (#​2544)
    • Fixed several exotic problems that led to build failures, all related to using annotation in Java sources (#​2509, #​2551, #​2350)
    • Fixed IntelliJ platform WARN: Attempt to load key messages that appeared when analyzing Java sources (#​2559)

    v1.7.0: 1.7.0 Beta

    Improvements

    General
    HTML format
    Javadoc format
    GFM format
    Kotlin-as-Java plugin
    Gradle runner

    Fixes

    General bugfixes
    Security

    Plugin API

    Other

    Thanks to all the contributors!

    v1.6.21: 1.6.21 Beta

    This is a bugfix release that mostly enables building documentation for multiplatform projects that utilize .klib libraries.

    Changes

    Bugfixes

    • Support KLIB libraries for common platform, previously led to ERROR CLASS instead of references in documentation (#​2441)
    • Fixed a maven plugin build problem related to coroutines which only occurred in multi-module builds (#​2461)

    v1.6.20: 1.6.20 Beta

    Features

    HTML format changes

    Bugfixes

    Plugin API Changes

    General Improvements

    Known issues

    • Kotlin Multiplatform projects that use .klib libraries may experience problems. There will be a separate 1.6.21 release that will address this issue shortly.

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about these updates again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies automerge 
    opened by renovate[bot] 0
  • Update coil to v2.2.2

    Update coil to v2.2.2

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | io.coil-kt:coil-gif | 2.2.0 -> 2.2.2 | age | adoption | passing | confidence | | io.coil-kt:coil | 2.2.0 -> 2.2.2 | age | adoption | passing | confidence | | io.coil-kt:coil-compose | 2.2.0 -> 2.2.2 | age | adoption | passing | confidence |


    ⚠ Dependency Lookup Warnings ⚠

    Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.


    Release Notes

    coil-kt/coil

    v2.2.2

    Compare Source

    • Ensure an image loader is fully initialized before registering its system callbacks. #​1465
    • Set the preferred bitmap config in VideoFrameDecoder on API 30+ to avoid banding. #​1487
    • Fix parsing paths containing # in FileUriMapper. #​1466
    • Fix reading responses with non-ascii headers from the disk cache. #​1468
    • Fix decoding videos inside asset subfolders. #​1489
    • Update androidx.annotation to 1.5.0.

    v2.2.1

    Compare Source

    • Fix: RoundedCornersTransformation now properly scales the input bitmap.
    • Remove dependency on the kotlin-parcelize plugin.
    • Update compile SDK to 33.
    • Downgrade androidx.appcompat:appcompat-resources to 1.4.2 to work around #​1423.

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about these updates again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    dependencies automerge 
    opened by renovate[bot] 0
Releases(0.15.1)
  • 0.15.1(Aug 24, 2022)

    Changes

    The 0.15.1 version is built using these major dependencies:

    | library | version | |:--------------------|:--------| | Anvil | 2.4.2 | | Dagger | 2.43.2 | | Kotlin | 1.7.0 | | androidx.compose | 1.2.1 | | androidx.core | 1.2.0 | | androidx.work | 2.7.1 | | androidx.activity | 1.5.1 | | androidx.fragment | 1.5.2 | | androidx.lifecycle | 2.5.1 | | androidx.savedstate | 1.2.0 |

    🐛 Bug Fixes

    🧰 Maintenance

    • Update dependency com.autonomousapps.dependency-analysis to v1.13.1 (#541)
    • Update dependency mathjs to v11.1.0 (#540)
    • Update dependency io.mockk:mockk to v1.12.7 (#533)
    • Update dependency com.autonomousapps.dependency-analysis to v1.13.0 (#535)
    • Update square-anvil to v2.4.2 (#538)
    • revert paging-compose to 1.0.0-alpha14 (#539)
    • Update dependency androidx.paging:paging-compose to v1.0.0-alpha16 (#434)
    • use gradle-build-action for caching in instrumented tests and add AVD caching (#536)
    • Update dependency mdx-mermaid to v1.3.2 (#532)
    • Update dependency org.robolectric:robolectric to v4.8.2 (#534)
    • Update dependency mermaid to v9.1.6 (#529)
    • Update dependency androidx.test:orchestrator to v1.4.1 (#436)
    • Update coil to v2.2.0 (#528)
    • Update androidx-fragment-version to v1.5.2 (#521)
    • Update google-dagger to v2.43.2 (#476)
    • Update androidx-compose-runtime to v1.2.1 (#522)
    • Update dependency gradle to v7.5.1 (#520)
    • Update kotest to v5.4.2 (#523)
    • Update dependency androidx.appcompat:appcompat to v1.5.0 (#524)
    • Update dependency com.android.tools.build:gradle to v7.2.2 (#518)
    • Update docusaurus monorepo to v2.0.1 (#514)
    • Update dependency com.autonomousapps.dependency-analysis to v1.12.0 (#516)
    • Update dependency Chart.js to v3.9.1 (#517)
    • Update dependency mermaid to v9.1.5 (#519)
    • Update dependency com.autonomousapps.dependency-analysis to v1.11.3 (#512)
    • Update kotest to v5.4.1 (#510)
    • Update dependency com.autonomousapps.dependency-analysis to v1.11.2 (#511)
    • Update dependency com.autonomousapps.dependency-analysis to v1.11.1 (#509)

    New Contributors

    • @jakoss made their first contribution in https://github.com/RBusarow/Tangle/pull/527

    Contributors

    @RBusarow, @jakoss and @oldwomanjosiah

    Full Changelog: https://github.com/RBusarow/Tangle/compare/0.15.0...0.15.1

    Source code(tar.gz)
    Source code(zip)
  • 0.15.0(Jul 27, 2022)

    Changes

    The 0.15.0 version is built using these major dependencies:

    | library | version | |:--------------------|:--------| | Anvil | 2.4.1 | | Dagger | 2.43 | | Kotlin | 1.7.0 | | androidx.compose | 1.2.0 | | androidx.core | 1.2.0 | | androidx.work | 2.7.1 | | androidx.activity | 1.5.1 | | androidx.fragment | 1.5.1 | | androidx.lifecycle | 2.5.1 | | androidx.savedstate | 1.2.0 |

    🐛 Bug Fixes

    Contributors

    @RBusarow, @oldwomanjosiah

    Source code(tar.gz)
    Source code(zip)
  • 0.14.1(Nov 6, 2021)

  • 0.14.0(Sep 30, 2021)

    Changes

    🐛 Bug Fixes

    • Gradle plugin will now automatically enable/disable Tangle features depending upon which Androidx dependencies a module has. (#353)

    🧰 Maintenance

    • kotlin version-related updates (#358)
      • Kotlin 1.5.30
      • Compose 1.0.3
    • update KotlinPoet to 1.10.1 (#359)
    Source code(tar.gz)
    Source code(zip)
  • 0.13.2(Sep 22, 2021)

  • 0.13.1(Sep 19, 2021)

    🚀 Features

    • The Tangle Gradle Plugin will now automatically apply the Anvil Gradle plugin if it hasn't been applied already. There is no change to behavior if Anvil was already applied manually, or if Anvil is applied later on in configuration. (#333)

    🐛 Bug Fixes

    • The Tangle Gradle Plugin will now correctly detect existence of the Android Gradle Plugin (#333)
    • The website's "get started" button point to configuration doc (#331)

    🧰 Maintenance

    • Bump com.osacky.doctor from 0.7.1 to 0.7.2 (#329)
    • Bump kotest-property-jvm from 4.6.2 to 4.6.3 (#328)
    • Bump lifecycle-viewmodel-compose from 1.0.0-alpha07 to 2.4.0-beta01 (#327)
    • Bump navigation-runtime-ktx from 2.4.0-alpha08 to 2.4.0-alpha09 (#326)
    • update Dokka to 1.5.30 (#324)
    • update Gradle Plugin Publish to 0.16.0 (#325)
    • Bump gradle-maven-publish-plugin from 0.17.0 to 0.18.0 (#322)
    • Bump junit-jupiter-api from 5.7.2 to 5.8.0 (#321)
    • Bump ktlint-gradle from 10.1.0 to 10.2.0 (#312)
    Source code(tar.gz)
    Source code(zip)
  • 0.13.0(Sep 8, 2021)

    🚀 Features

    • add member injection (#309)
    @TangleScope(UserScope::class)
    class UserActivity : Activity() {
    
      @Inject lateinit var logger: MyLogger
    
      override fun onCreate(savedInstanceState: Bundle?) {
        // inject MyLogger
        TangleGraph.inject(this)
    
        super.onCreate(savedInstanceState)
    
        logger.log("started UserActivity")
      }
    }
    

    💥 Breaking Changes

    • rename TangleGraph.init() to TangleGraph.add() (#299)
    • make :tangle-api a regular jar artifact (#289) (not really a breaking change though?)

    🧰 Maintenance

    • Bump moshi-ksp from 0.13.0 to 0.14.0 (#307)
    • Bump auto-service-ksp from 0.5.5 to 1.0.0 (#308)
    • Bump Androidx Work to 2.6.0 (#277)
    • Bump AGP to 7.0.2 (#278)
    • Bump compose from 1.0.1 to 1.0.2 (#262)
    Source code(tar.gz)
    Source code(zip)
  • 0.12.1(Sep 1, 2021)

    🐛 Bug Fixes

    • fix by tangleViewModel ignores ComponentActivity or FragmentActivity (#228)
    • fix by tangleViewModel in a Fragment attempts to initialize eagerly (and crashes) (#227)

    🧰 Maintenance

    • update Anvil to 2.3.4 (#251)
    Source code(tar.gz)
    Source code(zip)
  • 0.12.0(Aug 26, 2021)

    🚀 Features

    • WorkManager/Worker Assisted injection is now supported (#180)
    @TangleWorker
    class MyWorker @AssistedInject constructor(
      @Assisted context: Context,
      @Assisted params: WorkerParameters,
      val repository: MyRepository
    ) : CoroutineWorker(context,params){
      override suspend fun doWork(): Result {
        // ...
      }
    }
    

    💥 Breaking Changes

    • The by tangleViewModel() delegate functions for Activity and Fragment have been moved to their own modules. (#204) This was done to prevent leaking the Androidx transitive dependencies into projects which don't otherwise use them. The new artifacts are:
      • com.rickbusarow.tangle:tangle-viewmodel-activity
      • com.rickbusarow.tangle:tangle-viewmodel-fragment
    • TangleGraph has moved :tangle-api (tangle.inject.TangleGraph) (#169)

    🐛 Bug Fixes

    • fix wrapping of very long checkNotNull error messages (#162)
    Source code(tar.gz)
    Source code(zip)
  • 0.11.5(Aug 9, 2021)

  • 0.11.4(Aug 4, 2021)

  • 0.11.3(Aug 4, 2021)

  • 0.11.2(Aug 3, 2021)

  • 0.11.1(Aug 2, 2021)

    Changes

    • create 0.11.1 version for website docs @RBusarow (#111)

    🐛 Bug Fixes

    • update applied paths in TanglePlugin @RBusarow (#110)

    🧰 Maintenance

    • Bump constraintlayout from 2.0.4 to 2.1.0 @dependabot (#108)
    • update version to 0.11.1 @RBusarow (#109)
    • add release-drafter @RBusarow (#106)
    Source code(tar.gz)
    Source code(zip)
  • 0.11.0(Jul 30, 2021)

    Implemented Enhancements

    • split fragments and viewmodels into different modules #51 @RBusarow
    • support Fragment member injection #52 @RBusarow
    • remove ViewModelKey and just use ClassKey #62 @RBusarow
    • add a shouldFail parameter to compile and auto-check #72 @RBusarow
    • rewrite ViewModel injection #73 @RBusarow

    Fixed Bugs

    • support dagger.Lazy member injection in fragments #53 @RBusarow
    • update manifest packages #60 @RBusarow
    • fix duplicate maven artifact IDs #65 @RBusarow
    • fix samples in Dokka #74 @RBusarow

    Other Changes

    • add require function which throws TangleCompilationException #6 @RBusarow
    • Docusaurus #7 @RBusarow
    • update api dump #47 @RBusarow
    • replace kotlinter with ktlint-gradle #45 @RBusarow
    • initial Dokka setup #46 @RBusarow
    • basic knit setup #48 @RBusarow
    • automatically deploy website for every merge into main #49 @RBusarow
    • update version in docs to 0.11.0 #50 @RBusarow
    • ci(Mergify): configuration update #57 @RBusarow
    • enable explicitApi mode in Android modules #58 @RBusarow
    • misc kdoc progress #59 @RBusarow
    • disable ktlint for dependabot PRs #61 @RBusarow
    • Bump navigation-common from 2.4.0-alpha04 to 2.4.0-alpha05 #64 @dependabot[bot]
    • Bump navigation-compose from 2.4.0-alpha04 to 2.4.0-alpha05 #63 @dependabot[bot]
    • Bump com.osacky.doctor from 0.7.0 to 0.7.1 #67 @dependabot[bot]
    • Bump appcompat from 1.3.0 to 1.3.1 #66 @dependabot[bot]
    • Bump fragment-ktx from 1.3.5 to 1.3.6 #68 @dependabot[bot]
    • Bump activity-ktx from 1.2.3 to 1.2.4 #69 @dependabot[bot]
    • Move TangleViewModelFactory to internal package #70 @RBusarow
    • fix Kotlin syntax highlighting in docusaurus/prism #76 @RBusarow
    • adding fragment integration tests #77 @RBusarow
    • make CHANGELOG a "page" instead of a "doc" #78 @RBusarow
    • Update next version docs for new view model api #79 @RBusarow
    • Docusaurus theming #81 @RBusarow
    • rename the compose tangle function to tangleViewModel #82 @RBusarow
    • docs/website updates #83 @RBusarow
    • update badges #84 @RBusarow
    • Bump dagger-compiler from 2.37 to 2.38.1 #86 @dependabot[bot]
    • Bump auto-common from 1.1 to 1.1.2 #80 @dependabot[bot]
    • Bump com.rickbusarow.gradle-dependency-sync from 0.11.1 to 0.11.2 #98 @dependabot[bot]
    • Bump activity-ktx from 1.2.4 to 1.3.0 #100 @dependabot[bot]
    • Bump activity-compose from 1.3.0-rc02 to 1.3.0 #92 @dependabot[bot]
    • Bump material from 1.0.0-rc02 to 1.0.0 #99 @dependabot[bot]
    • Bump accompanist-coil from 0.14.0 to 0.15.0 #94 @dependabot[bot]
    • Bump gradle from 4.2.2 to 7.0.0 #95 @dependabot[bot]
    • update AGP to 7.0.0 #103 @RBusarow
    • update composeOptions for 1.0.0 #105 @RBusarow
    Source code(tar.gz)
    Source code(zip)
  • 0.10.0(Jul 18, 2021)

    0.10.0

    Initial release

    This release supports multi-bound ViewModel injection via the by tangle() delegate function, with Compose support.

    Automatic SavedStateHandle injection is supported, and arguments can be automatically constructor-injected via the @FromSavedState("myKey") annotation.

    Source code(tar.gz)
    Source code(zip)
A general purpose compiler heart

Jamtree A general purpose compiler heart. This is a component of the compiler of the jamplate programming language.

Jamplate 3 Nov 22, 2022
Screen Capture Utils - A plugin to handle screen capture events on android and ios

Screen Capture Utils A plugin to handle screen capture events on android and ios ?? Initialize SDK late ScreenCaptureUtils screenCaptureUtils;

Chiziaruhoma Ogbonda 41 Apr 12, 2022
Useful helpers that make it easier to implement maven-plugin mojos with kotlin

A library that makes writing powerful maven plugins even easier by providing kotlin extensions and convenience functions for common use cases.

TOOListicon 1 Nov 4, 2022
🧹 Error correcting parser plugin

Tidyparse The main goal of this project is to speed up the process of learning a new language by suggesting ways to fix source code. Tidyparse expects

breandan 5 Dec 15, 2022
Android library to easily serialize and cache your objects to disk using key/value pairs.

Deprecated This project is no longer maintained. No new issues or pull requests will be accepted. You can still use the source or fork the project to

Anup Cowkur 667 Dec 22, 2022
A set of helper classes for using dagger 1 with Android components such as Applications, Activities, Fragments, BroadcastReceivers, and Services.

##fb-android-dagger A set of helper classes for using dagger with Android components such as Applications, Activities, Fragments, BroadcastReceivers,

Andy Dennie 283 Nov 11, 2022
Android Secure SharedPreferences Using Facebook Conceal Encryption

SharedChamber Android Project : SharedChamber on top of SharedPreferences using Facebook Conceal Description Conceal provides a set of Java APIs to pe

Hafiq 95 Nov 25, 2022
Trail is a simple logging system for Java and Android. Create logs using the same API and the library will detect automatically in which platform the code is running.

Trail Trail is a simple logging system for Java and Android. Create logs using the same API and the library will detect automatically in which platfor

Mauricio Togneri 13 Aug 29, 2022
recompose is a tool for converting Android layouts in XML to Kotlin code using Jetpack Compose.

recompose is a tool for converting Android layouts in XML to Kotlin code using Jetpack Compose.

Sebastian Kaspari 565 Jan 2, 2023
A simple library for validating user input in forms using annotations.

ValidationKomensky for Android A simple library for validating user input in forms using annotations. Features: Validate all views at once and show fe

Inmite s.r.o. 512 Nov 20, 2022
A lightweight library for config and using SharedPreferences

preferences-helper SharePreferences is very popular with any project and all most all project has SharePreferences for saving data. This library will

Khang Tran 23 May 8, 2021
This project is an add-on for the excellent J2V8 Project. It allows users to debug JS running in V8 using Chrome DevTools. Uses Stetho for communication with Chrome DevTools.

J2V8-Debugger This project is an add-on for the excellent J2V8 Project. It allows users to debug JS running in V8 using Chrome DevTools. Uses Stetho f

Alex Trotsenko 76 Jan 3, 2023
Generate helper methods for compose navigation using KSP

Compose NavGen Generate helper methods for compose navigation using KSP. ?? You can try it now, but it's still under development. ?? TODO Support defa

Kenji Abe 6 Feb 5, 2022
Extensions to encrypt DataStore using Tink

encrypted-datastore Extensions to encrypt DataStore using Tink. ⚠️ This tiny library will be maintained until an official solution for DataStore encry

Osip Fatkullin 53 Jan 1, 2023
Format numbers using a string pattern with this simple number formatted like ##-####-##

AndroidPattern Format numbers using a string pattern with this simple number formatted like ##-####-## Installation To get a Git project into your bui

Hussein Habibi Juybari 2 Oct 25, 2021
DEMOMovieDB - Client App using movieDB with Kotlin

DEMOMovieDB DEMOMovieDB is a gorgeous client application for TMDb on Android, bu

null 0 Feb 15, 2022
λRPC allows using code with high-order functions as a service

λRPC Simple native RPC with high order functions support. Inspired by @altavir and Communicator. λRPC allows using code with high-order functions as a

Andrey Stoyan 5 May 18, 2022
A universal memory dumper using Frida

Fridump Fridump (v0.1) is an open source memory dumping tool, primarily aimed to penetration testers and developers. Fridump is using the Frida framew

null 547 Dec 22, 2022
Sample project displaying process of OTP validation using firebase

OTP-Validation-using-firebase Sample project displaying process of OTP validation using firebase Screenshots Concepts used Integrated Firebase sdk for

Ankita Gaba 2 Jun 18, 2022