diff options
author | 2021-05-26 17:36:20 +0800 | |
---|---|---|
committer | 2021-05-26 18:59:56 +0800 | |
commit | abf096f21f7395202858c34eaa9f0f8195c1777d (patch) | |
tree | b7c6153fce312f5f940d0593df13f79c29e0c426 | |
parent | acbeea2b9cd05464ff7027dab50f38e6623a179d (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
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; |