Fixed
Status Update
Comments
il...@google.com <il...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit c5269bdf671209b2f130deec65abd0bebc07024c
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Mon Feb 25 14:04:58 2019
Escape package name with Kotlin Keywords with backtick.
Let KotlinPoet apply backtick to keywords in package names by creating
a ClassName out of the res id instead of just writing it as a literal.
This change also happens make it so that the R class is imported instead
of having it in-line with the identifier.
Bug: 126020455
Test: ./gradlew navigation:navigation-safe-args-gradle-plugin:test \
navigation:navigation-safe-args-generator:test
Change-Id: I84684bbb8dbdde7d334a33bd6e00e50d2b12de9d
M navigation/safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/java/JavaNavWriter.kt
M navigation/safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/java/JavaTypes.kt
M navigation/safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/kotlin/KotlinNavWriter.kt
M navigation/safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/kotlin/KotlinTypes.kt
M navigation/safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/models/ResReference.kt
M navigation/safe-args-generator/src/tests/kotlin/androidx/navigation/safe/args/generator/KotlinNavWriterTest.kt
M navigation/safe-args-generator/src/tests/test-data/expected/java_nav_writer_test/Finish.java
M navigation/safe-args-generator/src/tests/test-data/expected/java_nav_writer_test/MainFragmentDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/java_nav_writer_test/Next.java
M navigation/safe-args-generator/src/tests/test-data/expected/java_nav_writer_test/SanitizedMainFragmentDirections.java
A navigation/safe-args-generator/src/tests/test-data/expected/kotlin_nav_writer_test/FunFragmentDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/kotlin_nav_writer_test/MainFragmentArgs.kt
M navigation/safe-args-generator/src/tests/test-data/expected/kotlin_nav_writer_test/MainFragmentDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/kotlin_nav_writer_test/Next.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested/LoginDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested/LoginFragmentDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested/MainFragmentDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested_overridden_action/InnerSettingsDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested_overridden_action/MainFragmentDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested_overridden_action/SettingsDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested_same_action/MainFragmentDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested_same_action/SettingsDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested_same_action/SettingsFragmentDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested/LoginDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested/LoginFragmentDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested/MainFragmentDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested_overridden_action/InnerSettingsDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested_overridden_action/MainFragmentDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested_overridden_action/SettingsDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested_same_action/MainFragmentDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested_same_action/SettingsDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested_same_action/SettingsFragmentDirections.kt
https://android-review.googlesource.com/912255
https://goto.google.com/android-sha1/c5269bdf671209b2f130deec65abd0bebc07024c
Branch: androidx-master-dev
commit c5269bdf671209b2f130deec65abd0bebc07024c
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Mon Feb 25 14:04:58 2019
Escape package name with Kotlin Keywords with backtick.
Let KotlinPoet apply backtick to keywords in package names by creating
a ClassName out of the res id instead of just writing it as a literal.
This change also happens make it so that the R class is imported instead
of having it in-line with the identifier.
Bug: 126020455
Test: ./gradlew navigation:navigation-safe-args-gradle-plugin:test \
navigation:navigation-safe-args-generator:test
Change-Id: I84684bbb8dbdde7d334a33bd6e00e50d2b12de9d
M navigation/safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/java/JavaNavWriter.kt
M navigation/safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/java/JavaTypes.kt
M navigation/safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/kotlin/KotlinNavWriter.kt
M navigation/safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/kotlin/KotlinTypes.kt
M navigation/safe-args-generator/src/main/kotlin/androidx/navigation/safe/args/generator/models/ResReference.kt
M navigation/safe-args-generator/src/tests/kotlin/androidx/navigation/safe/args/generator/KotlinNavWriterTest.kt
M navigation/safe-args-generator/src/tests/test-data/expected/java_nav_writer_test/Finish.java
M navigation/safe-args-generator/src/tests/test-data/expected/java_nav_writer_test/MainFragmentDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/java_nav_writer_test/Next.java
M navigation/safe-args-generator/src/tests/test-data/expected/java_nav_writer_test/SanitizedMainFragmentDirections.java
A navigation/safe-args-generator/src/tests/test-data/expected/kotlin_nav_writer_test/FunFragmentDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/kotlin_nav_writer_test/MainFragmentArgs.kt
M navigation/safe-args-generator/src/tests/test-data/expected/kotlin_nav_writer_test/MainFragmentDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/kotlin_nav_writer_test/Next.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested/LoginDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested/LoginFragmentDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested/MainFragmentDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested_overridden_action/InnerSettingsDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested_overridden_action/MainFragmentDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested_overridden_action/SettingsDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested_same_action/MainFragmentDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested_same_action/SettingsDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/java/nested_same_action/SettingsFragmentDirections.java
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested/LoginDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested/LoginFragmentDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested/MainFragmentDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested_overridden_action/InnerSettingsDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested_overridden_action/MainFragmentDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested_overridden_action/SettingsDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested_same_action/MainFragmentDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested_same_action/SettingsDirections.kt
M navigation/safe-args-generator/src/tests/test-data/expected/nav_generator_test/kotlin/nested_same_action/SettingsFragmentDirections.kt
il...@google.com <il...@google.com> #3
This is fixed and will be available in Navigation 1.0.0-rc02
Description
Version used: 1.0.0-rc01
I recently worked on an app with package name 'in.bitotsav', and used navigation architecture component to implement a single activity structure. I had been using safeargs using
apply plugin: "androidx.navigation.safeargs"
But just now, I discovered the availability of "androidx.navigation.safeargs.kotlin", so I tried applying it. But it leads to compilation error due to the 'in' part of the package name not being escaped in the generated code, for statements like:
override fun getActionId(): Int = in.bitotsav.R.id.action_global_destEventDetail
and
fun actionDestLoginToDestRegistration(): NavDirections =
ActionOnlyNavDirections(in.bitotsav.R.id.action_destLogin_to_destRegistration)
This can be fixed if the 'in' is escaped with backticks, as:
override fun getActionId(): Int = `in`.bitotsav.R.id.action_global_destEventDetail
This is also what is done by android studio in imports.
Version Info:
minSdkVersion 21
targetSdkVersion 28
Android Studio 3.5 Canary 3
Build #AI-183.5153.38.35.5256920, built on January 24, 2019
JRE: 1.8.0_152-release-1248-b01 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.20.8-arch1-1-ARCH