Fixed
Status Update
Comments
il...@google.com <il...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 3582a85010eea5f6676c7ab596e5f019b4ec794f
Author: Ian Lake <ilake@google.com>
Date: Thu Nov 15 13:20:39 2018
Expand ActivityNavigator.Extras for passing flags
Instead of just being able to pass an instance
of ActivityOptionsCompat, move ActivityNavigator.Extras
to a Builder pattern and add the ability to add
any set of Intent.FLAG_ACTIVITY_ flags at runtime.
Test: updated tests
BUG: 119628354
Change-Id: If58c80ac4eafd630cb982762ea7fa802dd16ec92
M navigation/integration-tests/testapp/src/main/java/androidx/navigation/testapp/NavigationActivity.kt
M navigation/runtime/ktx/build.gradle
A navigation/runtime/ktx/src/androidTest/java/androidx/navigation/ActivityNavigatorExtrasTest.kt
A navigation/runtime/ktx/src/main/java/androidx/navigation/ActivityNavigatorExtras.kt
M navigation/runtime/src/androidTest/java/androidx/navigation/ActivityNavigatorTest.kt
M navigation/runtime/src/main/java/androidx/navigation/ActivityNavigator.java
https://android-review.googlesource.com/828140
https://goto.google.com/android-sha1/3582a85010eea5f6676c7ab596e5f019b4ec794f
Branch: androidx-master-dev
commit 3582a85010eea5f6676c7ab596e5f019b4ec794f
Author: Ian Lake <ilake@google.com>
Date: Thu Nov 15 13:20:39 2018
Expand ActivityNavigator.Extras for passing flags
Instead of just being able to pass an instance
of ActivityOptionsCompat, move ActivityNavigator.Extras
to a Builder pattern and add the ability to add
any set of Intent.FLAG_ACTIVITY_ flags at runtime.
Test: updated tests
BUG: 119628354
Change-Id: If58c80ac4eafd630cb982762ea7fa802dd16ec92
M navigation/integration-tests/testapp/src/main/java/androidx/navigation/testapp/NavigationActivity.kt
M navigation/runtime/ktx/build.gradle
A navigation/runtime/ktx/src/androidTest/java/androidx/navigation/ActivityNavigatorExtrasTest.kt
A navigation/runtime/ktx/src/main/java/androidx/navigation/ActivityNavigatorExtras.kt
M navigation/runtime/src/androidTest/java/androidx/navigation/ActivityNavigatorTest.kt
M navigation/runtime/src/main/java/androidx/navigation/ActivityNavigator.java
ou...@gmail.com <ou...@gmail.com> #3
Project: platform/frameworks/support
Branch: androidx-master-dev
commit a62e0621853c18be1d07cc8fba078d92a424e24a
Author: Ian Lake <ilake@google.com>
Date: Thu Nov 15 13:50:59 2018
Remove deprecated clearTask and launchDocument flags
Test: remaining tests still pass
BUG: 119628354
Change-Id: Ic411df16dd3a21351bbd7bac367ed98f9e66025a
M navigation/common/ktx/src/androidTest/java/androidx/navigation/NavOptionsBuilderTest.kt
M navigation/common/ktx/src/main/java/androidx/navigation/NavOptionsBuilder.kt
M navigation/common/src/main/java/androidx/navigation/NavOptions.java
M navigation/common/src/main/res/values/attrs.xml
M navigation/fragment/src/main/java/androidx/navigation/fragment/FragmentNavigator.java
M navigation/runtime/src/main/java/androidx/navigation/NavController.java
M navigation/runtime/src/main/java/androidx/navigation/NavInflater.java
https://android-review.googlesource.com/828160
https://goto.google.com/android-sha1/a62e0621853c18be1d07cc8fba078d92a424e24a
Branch: androidx-master-dev
commit a62e0621853c18be1d07cc8fba078d92a424e24a
Author: Ian Lake <ilake@google.com>
Date: Thu Nov 15 13:50:59 2018
Remove deprecated clearTask and launchDocument flags
Test: remaining tests still pass
BUG: 119628354
Change-Id: Ic411df16dd3a21351bbd7bac367ed98f9e66025a
M navigation/common/ktx/src/androidTest/java/androidx/navigation/NavOptionsBuilderTest.kt
M navigation/common/ktx/src/main/java/androidx/navigation/NavOptionsBuilder.kt
M navigation/common/src/main/java/androidx/navigation/NavOptions.java
M navigation/common/src/main/res/values/attrs.xml
M navigation/fragment/src/main/java/androidx/navigation/fragment/FragmentNavigator.java
M navigation/runtime/src/main/java/androidx/navigation/NavController.java
M navigation/runtime/src/main/java/androidx/navigation/NavInflater.java
il...@google.com <il...@google.com>
ap...@google.com <ap...@google.com> #4
If the app:clearTask is removed, how can i do when i have a splash and guide page ?
The first page is splash and wen enter the main page, the splash should be removed,or when back from the main,it will go to splash page,that is total wrong.
The first page is splash and wen enter the main page, the splash should be removed,or when back from the main,it will go to splash page,that is total wrong.
sp...@google.com <sp...@google.com> #6
At current now,there is two ways to do the above。
One:
In the NavHostFragment's Activity, override the onBackPress() method,adn if the current NavDestination is MainFragment then just finish the Activity.
@Override
public void onBackPressed() {
NavDestination navDestination = mNavController.getCurrentDestination();
if (navDestination != null
&& navDestination.getId() == R.id.mainFragment) {
finish();
return;
}
super.onBackPressed();
}
Two:
Set the to MainFragment action in Navigation_graph app:popUpTo="@id/nav_graph" and app:popUpToInclusive="true"
<?xml version="1.0" encoding="utf-8"?>
<navigation
android:id="@+id/nav_graph"
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 "
app:startDestination="@id/splashFragment">
<fragment
android:id="@+id/splashFragment"
android:name="com.ihuman.storydemo.fragment.splash.SplashFragment"
android:label="fragment_splash"
tools:layout="@layout/fragment_splash">
<action
android:id="@+id/action_splashFragment_to_mainFragment"
app:destination="@id/mainFragment"
app:enterAnim="@anim/anim_right_in"
app:exitAnim="@anim/anim_left_out"
app:popEnterAnim="@anim/anim_left_in"
app:popExitAnim="@anim/anim_right_out"
app:popUpTo="@id/nav_graph"
app:popUpToInclusive="true"/>
<action
android:id="@+id/action_splashFragment_to_guideFragment"
app:destination="@id/guideFragment"
app:enterAnim="@anim/anim_right_in"
app:exitAnim="@anim/anim_left_out"
app:popEnterAnim="@anim/anim_left_in"
app:popExitAnim="@anim/anim_right_out"
app:popUpTo="@id/nav_graph"
app:popUpToInclusive="true"/>
</fragment>
<fragment
android:id="@+id/guideFragment"
android:name="com.ihuman.storydemo.fragment.guide.GuideFragment"
android:label="GuideFragment"
tools:layout="@layout/fragment_guide">
<action
android:id="@+id/action_guideFragment_to_mainFragment"
app:destination="@id/mainFragment"
app:enterAnim="@anim/anim_right_in"
app:exitAnim="@anim/anim_left_out"
app:popEnterAnim="@anim/anim_left_in"
app:popExitAnim="@anim/anim_right_out"
app:popUpTo="@id/nav_graph"
app:popUpToInclusive="true"/>
</fragment>
<fragment
android:id="@+id/mainFragment"
android:name="com.ihuman.storydemo.fragment.main.MainFragment"
android:label="fragment_main"
tools:layout="@layout/fragment_main">
</fragment>
</navigation>
Wish for help!
One:
In the NavHostFragment's Activity, override the onBackPress() method,adn if the current NavDestination is MainFragment then just finish the Activity.
@Override
public void onBackPressed() {
NavDestination navDestination = mNavController.getCurrentDestination();
if (navDestination != null
&& navDestination.getId() == R.id.mainFragment) {
finish();
return;
}
super.onBackPressed();
}
Two:
Set the to MainFragment action in Navigation_graph app:popUpTo="@id/nav_graph" and app:popUpToInclusive="true"
<?xml version="1.0" encoding="utf-8"?>
<navigation
android:id="@+id/nav_graph"
xmlns:android="
xmlns:app="
xmlns:tools="
app:startDestination="@id/splashFragment">
<fragment
android:id="@+id/splashFragment"
android:name="com.ihuman.storydemo.fragment.splash.SplashFragment"
android:label="fragment_splash"
tools:layout="@layout/fragment_splash">
<action
android:id="@+id/action_splashFragment_to_mainFragment"
app:destination="@id/mainFragment"
app:enterAnim="@anim/anim_right_in"
app:exitAnim="@anim/anim_left_out"
app:popEnterAnim="@anim/anim_left_in"
app:popExitAnim="@anim/anim_right_out"
app:popUpTo="@id/nav_graph"
app:popUpToInclusive="true"/>
<action
android:id="@+id/action_splashFragment_to_guideFragment"
app:destination="@id/guideFragment"
app:enterAnim="@anim/anim_right_in"
app:exitAnim="@anim/anim_left_out"
app:popEnterAnim="@anim/anim_left_in"
app:popExitAnim="@anim/anim_right_out"
app:popUpTo="@id/nav_graph"
app:popUpToInclusive="true"/>
</fragment>
<fragment
android:id="@+id/guideFragment"
android:name="com.ihuman.storydemo.fragment.guide.GuideFragment"
android:label="GuideFragment"
tools:layout="@layout/fragment_guide">
<action
android:id="@+id/action_guideFragment_to_mainFragment"
app:destination="@id/mainFragment"
app:enterAnim="@anim/anim_right_in"
app:exitAnim="@anim/anim_left_out"
app:popEnterAnim="@anim/anim_left_in"
app:popExitAnim="@anim/anim_right_out"
app:popUpTo="@id/nav_graph"
app:popUpToInclusive="true"/>
</fragment>
<fragment
android:id="@+id/mainFragment"
android:name="com.ihuman.storydemo.fragment.main.MainFragment"
android:label="fragment_main"
tools:layout="@layout/fragment_main">
</fragment>
</navigation>
Wish for help!
Description
Version used: android.arch.navigation:navigation-ui:1.0.0-alpha05
Devices/Android versions reproduced on: any
I suppose it's no a bug, but just a wrong behavior.
If i have i custom scheme, like "com.example://" - this could not be used and inside framework http(s) will be appended.
NavDeeplink states that there is a scheme pattern, that should detect if there is any scheme before ":", but it fails if there is any dot in scheme. So any scheme that contains dots will fail. Only schemes with "-" are supported by now.
private static final Pattern SCHEME_PATTERN = Pattern.compile("^(\\w+-)*\\w+:");