summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Yi-Ling Chuang <emilychuang@google.com> 2021-05-26 17:36:20 +0800
committer Yi-Ling Chuang <emilychuang@google.com> 2021-05-26 18:59:56 +0800
commitabf096f21f7395202858c34eaa9f0f8195c1777d (patch)
treeb7c6153fce312f5f940d0593df13f79c29e0c426
parentacbeea2b9cd05464ff7027dab50f38e6623a179d (diff)
Provide a way to suppress page transitions.
Some pages are not suitable to apply the page transition, for example, launching an acitivity that is depending on a value in the config file. External apps that are not applying the same transition may be launched in this case, applying the transition may lead to some unexpected behaviour. Hence, create a way to ignore the transition. Also refactor some logics. Fixes: 189299479 Test: rebuild Change-Id: Iebb47b9e0b0d9a3496f7e5f0c6cf1cd3d8d75031
-rw-r--r--packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/SettingsTransitionActivity.java44
-rw-r--r--packages/SettingsLib/SettingsTransition/src/com/android/settingslib/transition/SettingsTransitionHelper.java2
2 files changed, 11 insertions, 35 deletions
diff --git a/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/SettingsTransitionActivity.java b/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/SettingsTransitionActivity.java
index 4c45c5e3cb56..8c2621d3e4ec 100644
--- a/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/SettingsTransitionActivity.java
+++ b/packages/SettingsLib/CollapsingToolbarBaseActivity/src/com/android/settingslib/collapsingtoolbar/SettingsTransitionActivity.java
@@ -16,6 +16,8 @@
package com.android.settingslib.collapsingtoolbar;
+import static com.android.settingslib.transition.SettingsTransitionHelper.EXTRA_PAGE_TRANSITION_TYPE;
+
import android.app.ActivityOptions;
import android.content.Intent;
import android.os.Bundle;
@@ -28,6 +30,7 @@ import androidx.core.os.BuildCompat;
import androidx.fragment.app.FragmentActivity;
import com.android.settingslib.transition.SettingsTransitionHelper;
+import com.android.settingslib.transition.SettingsTransitionHelper.TransitionType;
/**
* A base Activity for Settings-specific page transition. Activities extending it will get
@@ -35,7 +38,6 @@ import com.android.settingslib.transition.SettingsTransitionHelper;
*/
public abstract class SettingsTransitionActivity extends FragmentActivity {
private static final String TAG = "SettingsTransitionActivity";
- private static final int DEFAULT_REQUEST = -1;
private Toolbar mToolbar;
@@ -58,45 +60,17 @@ public abstract class SettingsTransitionActivity extends FragmentActivity {
}
@Override
- public void startActivity(Intent intent) {
- if (!isSettingsTransitionEnabled()) {
- super.startActivity(intent);
- return;
- }
-
- super.startActivity(intent, createActivityOptionsBundleForTransition(null));
- }
-
- @Override
- public void startActivity(Intent intent, @Nullable Bundle options) {
- if (!isSettingsTransitionEnabled()) {
- super.startActivity(intent, options);
- return;
- }
-
- super.startActivity(intent, createActivityOptionsBundleForTransition(options));
- }
-
- @Override
- public void startActivityForResult(Intent intent, int requestCode) {
- if (!isSettingsTransitionEnabled() || requestCode == DEFAULT_REQUEST) {
- super.startActivityForResult(intent, requestCode);
- return;
- }
-
- super.startActivityForResult(intent, requestCode, createActivityOptionsBundleForTransition(
- null));
- }
-
- @Override
public void startActivityForResult(Intent intent, int requestCode, @Nullable Bundle options) {
- if (!isSettingsTransitionEnabled() || requestCode == DEFAULT_REQUEST) {
+ final int transitionType = intent.getIntExtra(EXTRA_PAGE_TRANSITION_TYPE,
+ TransitionType.TRANSITION_SHARED_AXIS);
+ if (!isSettingsTransitionEnabled() ||
+ transitionType == TransitionType.TRANSITION_NONE) {
super.startActivityForResult(intent, requestCode, options);
return;
}
- super.startActivityForResult(intent, requestCode, createActivityOptionsBundleForTransition(
- options));
+ super.startActivityForResult(intent, requestCode,
+ createActivityOptionsBundleForTransition(options));
}
protected boolean isSettingsTransitionEnabled() {
diff --git a/packages/SettingsLib/SettingsTransition/src/com/android/settingslib/transition/SettingsTransitionHelper.java b/packages/SettingsLib/SettingsTransition/src/com/android/settingslib/transition/SettingsTransitionHelper.java
index 3d9396492643..4612861b5766 100644
--- a/packages/SettingsLib/SettingsTransition/src/com/android/settingslib/transition/SettingsTransitionHelper.java
+++ b/packages/SettingsLib/SettingsTransition/src/com/android/settingslib/transition/SettingsTransitionHelper.java
@@ -55,6 +55,8 @@ public class SettingsTransitionHelper {
int TRANSITION_FADE = 2;
}
+ public static final String EXTRA_PAGE_TRANSITION_TYPE = "page_transition_type";
+
private static final String TAG = "SettingsTransitionHelper";
private static final long DURATION = 450L;
private static final float FADE_THROUGH_THRESHOLD = 0.22F;