Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Android Auto] Backwards compatible interfaces using using jvm default #1674

Closed
wants to merge 5 commits into from

Conversation

kmadsen
Copy link
Contributor

@kmadsen kmadsen commented Sep 17, 2022

Summary of changes

See the discussion thread on this topic here #1670 (comment)

Opening this as a separate pull request as we may find new solutions that make this work. I will also fill in some more details next week.

User impact (optional)

Pull request checklist:

  • Briefly describe the changes in this PR.
  • Include before/after visuals or gifs if this PR includes visual changes.
  • Write tests for all new functionality. If tests were not written, please explain why.
  • Optimize code for java consumption (@JvmOverloads, @file:JvmName, etc).
  • Add example if relevant.
  • Document any changes to public APIs.
  • Run make update-api to update generated api files, if there's public API changes, otherwise the verify-api-* CI steps might fail.
  • Update CHANGELOG.md or use the label 'skip changelog', otherwise check changelog CI step will fail.
  • If this PR is a v10.[version] release branch fix / enhancement, merge it to main firstly and then port to v10.[version] release branch.

Fixes: < Link to related issues that will be fixed by this pull request, if they exist >

PRs must be submitted under the terms of our Contributor License Agreement CLA.

@kmadsen kmadsen requested review from a team as code owners September 17, 2022 01:43
@kmadsen
Copy link
Contributor Author

kmadsen commented Sep 17, 2022

Closing here because this is the pull request used to resolve the issue #1670

@kmadsen
Copy link
Contributor Author

kmadsen commented Sep 20, 2022

Updating with a snapshot

@kmadsen kmadsen reopened this Sep 20, 2022
@@ -32,6 +32,11 @@ android {
}
}

// THIS IS REQUIRED or else it will not compile
Copy link
Contributor Author

@kmadsen kmadsen Sep 20, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inheriting from MapboxCarMapObserver does not compile without this compiler flag when an sdk is built with the jvm-default=all flag

e: /Users/kylemadsen/Development/mapbox/mapbox-maps-android/android-auto-app/src/main/java/com/mapbox/maps/testapp/auto/car/CarAnimationThreadController.kt: (16, 7): Inheritance from an interface with '@JvmDefault' members is only allowed with -Xjvm-default option

Here is the compile error. It is nothing to do with CarAnimationThreadController except that it is inheriting from MapboxCarMapObserver. Also realize that it is the kotlin compiler that fails, not the CarJavaInterfaceChecker

@kmadsen
Copy link
Contributor Author

kmadsen commented Sep 20, 2022

#1674 (comment)

Closing because this pull request is only showcasing the issue with a snapshot sdk that was created with the jvm-default=all compiler flag

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant