Status Update
Comments
ma...@gmail.com <ma...@gmail.com> #2
il...@google.com <il...@google.com> #3
since it is already marked as deprecated, we can probably do it by now.
ap...@google.com <ap...@google.com> #4
il...@google.com <il...@google.com> #5
Branch: androidx-master-dev
commit d576cbdc911cba16638a44fd8223391a90a07ef7
Author: Mike Nakhimovich <digitalbuddha@users.noreply.github.com>
Date: Tue Aug 11 09:30:34 2020
[GH] Hide deprecated internal API.
## Proposed Changes
* `RoomDatabase.java` has protected `mCallbacks` field which is leaking in the API docs, we should @Hide it.
## Testing
Test: Ran unit tests locally
## Issues Fixed
Fixes: 76109329
This is an imported pull request from
Resolves #61
Github-Pr-Head-Sha: 6440daa3a63752c7f9d5ba2a390248cd85bc634f
GitOrigin-RevId: fe92d8466a59b44b218b6ca3cbd57dcda17992f7
Change-Id: Id599cdf5b02b32bdae0166266fb7da967598fe92
A room/runtime/api/current.ignore
M room/runtime/api/current.txt
M room/runtime/api/public_plus_experimental_current.txt
M room/runtime/api/restricted_current.txt
M room/runtime/src/main/java/androidx/room/RoomDatabase.java
ma...@gmail.com <ma...@gmail.com> #6
il...@google.com <il...@google.com> #7
We're looking to do a Navigation 2.2.2
bug fix release and will include this fix in that.
an...@google.com <an...@google.com> #8
rc...@olx.ph <rc...@olx.ph> #9
Hello, does anyone know the timeline when to release version 2.3.0-alpha05
? Unfortunately we are also encountering this crash in our app. Thank you.
il...@google.com <il...@google.com> #10
rc...@olx.ph <rc...@olx.ph> #11
The crash is gone now, thank you!
ja...@gmail.com <ja...@gmail.com> #12
After upgrading to 2.2.2 i have crash on finding graph.
I/NavController: Could not find destination com.my.app:id/main_navigation in the navigation graph, ignoring the deep link from Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x1040c000 pkg=com.my.app cmp=com.my.app/com.my.app.MainActivity (has extras) }
This is simple deep link to specified fragment. We have nested NavHostFragment
. The fragment i'm deep linking to is in PARENT GRAPH, not the nested one. MainPageFragment
have the nested NavHostFragment
in it, so i guess the graph found is the nested one and so - does not match one that we are looking for.
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_navigation"
app:startDestination="@id/intro_navigation">
<fragment
android:id="@+id/mainPageFragment"
android:name="com.my.app.MainPageFragment"
android:label="MainPageFragment">
<argument
android:name="fromNotification"
android:defaultValue="false"
app:argType="boolean" />
</fragment>
</navigation>
I created this deep link by builder:
NavDeepLinkBuilder(context)
.setGraph(R.navigation.main_navigation)
.setDestination(R.id.mainPageFragment)
.setArguments(bundleOf("fromNotification" to true))
.createPendingIntent()
il...@google.com <il...@google.com> #13
Re #12 - please file a new bug with a sample project that reproduces your issue. It would be expected that you'd see at least one log message if you have nested NavHostFragment
instances with different graphs (the nested graph would ignore deep links to the outer one, as expected).
ja...@gmail.com <ja...@gmail.com> #14
I think that this code breaks down:
NavDestination node = i == 0
? (mGraph.getId() == destinationId ? mGraph : null)
: graph.findNode(destinationId, false);
For some reason it assumes that first deeplink have to be in current mGraph
. Shouldn't it always scan all graphs to look for proper node?
ja...@gmail.com <ja...@gmail.com> #15
I have 2 of such logs, each for every graph. I will try to create project that reproduces this and create new bug
Description
Version used: 2.2.0-rc03
Devices/Android versions reproduced on: can't reproduce
I have a few crash reports about this exceptions, that I can't reproduce in normal conditions and I wonder if this is some corner-case bug.
Stacktrace:
Fatal Exception: java.lang.IllegalStateException: unknown destination during deep link: com.app:id/nav_graph_main
at androidx.navigation.NavController.handleDeepLink(NavController.java:660)
at androidx.navigation.NavController.onGraphCreated(NavController.java:573)
at androidx.navigation.NavController.setGraph(NavController.java:534)
at androidx.navigation.NavController.setGraph(NavController.java:514)
at com.app.view.HomeFragment.prepareNestedNavHost(HomeFragment.java:65)
at com.app.view.HomeFragment.onViewCreated(HomeFragment.java:50)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:304)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1227)
at androidx.fragment.app.FragmentManager.addAddedFragments(FragmentManager.java:2373)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2108)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2064)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1960)
at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:418)
I have a main NavHostFragment, hosted in my MainActivity, that owns the "nav_graph_main" graph.
HomeFragment is a destination of "nav_graph_main" and it contains a second NavHost (the "nested" NavHost) to manage navigation between several subscreens together with a BottomNavigationBar (HomeFragment's layout is a NavHostFragment above a BottomNavigatonBar).
The graph of the "nested" navigation ("nav_graph_home") is a separate resource, with no link to the outer "nav_graph_main" graph.
I need to programmatically set the nested graph to the nested NavController, because the start destination practically depends on which bottom navigation tab I want to be selected first.
Therefore, in HomeFragment's onViewCreated, I call the following prepareNestedNavHost:
fun prepareNestedNavHost() {
val startDestination = args.startDestination
val navHostFragment = childFragmentManager.findFragmentById(R.id.navHostHome) as? NavHostFragment
navHostFragment?.navController?.apply {
// I have no other way to know if the graph is not set:
kotlin.runCatching { this.graph }.onFailure {
val nestedGraph = navInflater.inflate(R.navigation.nav_graph_home)
graph.startDestination = startDestination
this.graph = nestedGraph
}
}
}
The only potential reason that came out of my mind is that the nested NavController, sharing the same Activity with the outer NavController, might end up handling an Intent directed to the latter. Is this working as intended?