Add differentiating transitions for returning/reentering.
Bug 16550363 Change-Id: I85f9a8bcbc92ce048d06b36579bb05893534f7f8
This commit is contained in:
@@ -1435,8 +1435,12 @@ package android {
|
||||
field public static final int windowNoDisplay = 16843294; // 0x101021e
|
||||
field public static final int windowNoTitle = 16842838; // 0x1010056
|
||||
field public static final int windowOverscan = 16843727; // 0x10103cf
|
||||
field public static final int windowReenterTransition = 16843954; // 0x10104b2
|
||||
field public static final int windowReturnTransition = 16843953; // 0x10104b1
|
||||
field public static final int windowSharedElementEnterTransition = 16843835; // 0x101043b
|
||||
field public static final int windowSharedElementExitTransition = 16843836; // 0x101043c
|
||||
field public static final int windowSharedElementReenterTransition = 16843956; // 0x10104b4
|
||||
field public static final int windowSharedElementReturnTransition = 16843955; // 0x10104b3
|
||||
field public static final int windowShowAnimation = 16842934; // 0x10100b6
|
||||
field public static final int windowShowWallpaper = 16843410; // 0x1010292
|
||||
field public static final int windowSoftInputMode = 16843307; // 0x101022b
|
||||
@@ -35319,8 +35323,12 @@ package android.view {
|
||||
method protected final int getLocalFeatures();
|
||||
method public android.media.session.MediaController getMediaController();
|
||||
method public abstract int getNavigationBarColor();
|
||||
method public android.transition.Transition getReenterTransition();
|
||||
method public android.transition.Transition getReturnTransition();
|
||||
method public android.transition.Transition getSharedElementEnterTransition();
|
||||
method public android.transition.Transition getSharedElementExitTransition();
|
||||
method public android.transition.Transition getSharedElementReenterTransition();
|
||||
method public android.transition.Transition getSharedElementReturnTransition();
|
||||
method public abstract int getStatusBarColor();
|
||||
method public long getTransitionBackgroundFadeDuration();
|
||||
method public android.transition.TransitionManager getTransitionManager();
|
||||
@@ -35376,8 +35384,12 @@ package android.view {
|
||||
method public void setLogo(int);
|
||||
method public void setMediaController(android.media.session.MediaController);
|
||||
method public abstract void setNavigationBarColor(int);
|
||||
method public void setReenterTransition(android.transition.Transition);
|
||||
method public void setReturnTransition(android.transition.Transition);
|
||||
method public void setSharedElementEnterTransition(android.transition.Transition);
|
||||
method public void setSharedElementExitTransition(android.transition.Transition);
|
||||
method public void setSharedElementReenterTransition(android.transition.Transition);
|
||||
method public void setSharedElementReturnTransition(android.transition.Transition);
|
||||
method public void setSoftInputMode(int);
|
||||
method public abstract void setStatusBarColor(int);
|
||||
method public abstract void setTitle(java.lang.CharSequence);
|
||||
|
||||
@@ -256,7 +256,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
|
||||
@Override
|
||||
protected Transition getViewsTransition() {
|
||||
if (mIsReturning) {
|
||||
return getWindow().getExitTransition();
|
||||
return getWindow().getReenterTransition();
|
||||
} else {
|
||||
return getWindow().getEnterTransition();
|
||||
}
|
||||
@@ -264,7 +264,7 @@ class EnterTransitionCoordinator extends ActivityTransitionCoordinator {
|
||||
|
||||
protected Transition getSharedElementTransition() {
|
||||
if (mIsReturning) {
|
||||
return getWindow().getSharedElementExitTransition();
|
||||
return getWindow().getSharedElementReenterTransition();
|
||||
} else {
|
||||
return getWindow().getSharedElementEnterTransition();
|
||||
}
|
||||
|
||||
@@ -395,7 +395,7 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator {
|
||||
@Override
|
||||
protected Transition getViewsTransition() {
|
||||
if (mIsReturning) {
|
||||
return getWindow().getEnterTransition();
|
||||
return getWindow().getReturnTransition();
|
||||
} else {
|
||||
return getWindow().getExitTransition();
|
||||
}
|
||||
@@ -403,7 +403,7 @@ class ExitTransitionCoordinator extends ActivityTransitionCoordinator {
|
||||
|
||||
protected Transition getSharedElementTransition() {
|
||||
if (mIsReturning) {
|
||||
return getWindow().getSharedElementEnterTransition();
|
||||
return getWindow().getSharedElementReturnTransition();
|
||||
} else {
|
||||
return getWindow().getSharedElementExitTransition();
|
||||
}
|
||||
|
||||
@@ -1424,6 +1424,21 @@ public abstract class Window {
|
||||
*/
|
||||
public void setEnterTransition(Transition transition) {}
|
||||
|
||||
/**
|
||||
* Sets the Transition that will be used to move Views out of the scene when the Window is
|
||||
* preparing to close, for example after a call to
|
||||
* {@link android.app.Activity#finishAfterTransition()}. The exiting
|
||||
* Views will be those that are regular Views or ViewGroups that have
|
||||
* {@link ViewGroup#isTransitionGroup} return true. Typical Transitions will extend
|
||||
* {@link android.transition.Visibility} as entering is governed by changing visibility from
|
||||
* {@link View#VISIBLE} to {@link View#INVISIBLE}. If <code>transition</code> is null,
|
||||
* entering Views will remain unaffected. If nothing is set, the default will be to
|
||||
* use the same value as set in {@link #setEnterTransition(android.transition.Transition)}.
|
||||
* @param transition The Transition to use to move Views out of the Scene when the Window
|
||||
* is preparing to close.
|
||||
*/
|
||||
public void setReturnTransition(Transition transition) {}
|
||||
|
||||
/**
|
||||
* Sets the Transition that will be used to move Views out of the scene when starting a
|
||||
* new Activity. The exiting Views will be those that are regular Views or ViewGroups that
|
||||
@@ -1436,6 +1451,20 @@ public abstract class Window {
|
||||
*/
|
||||
public void setExitTransition(Transition transition) {}
|
||||
|
||||
/**
|
||||
* Sets the Transition that will be used to move Views in to the scene when returning from
|
||||
* a previously-started Activity. The entering Views will be those that are regular Views
|
||||
* or ViewGroups that have {@link ViewGroup#isTransitionGroup} return true. Typical Transitions
|
||||
* will extend {@link android.transition.Visibility} as exiting is governed by changing
|
||||
* visibility from {@link View#VISIBLE} to {@link View#INVISIBLE}. If transition is null,
|
||||
* the views will remain unaffected. If nothing is set, the default will be to use the same
|
||||
* transition as {@link #setExitTransition(android.transition.Transition)}.
|
||||
* Requires {@link #FEATURE_CONTENT_TRANSITIONS}.
|
||||
* @param transition The Transition to use to move Views into the scene when reentering from a
|
||||
* previously-started Activity.
|
||||
*/
|
||||
public void setReenterTransition(Transition transition) {}
|
||||
|
||||
/**
|
||||
* Returns the transition used to move Views into the initial scene. The entering
|
||||
* Views will be those that are regular Views or ViewGroups that have
|
||||
@@ -1448,6 +1477,19 @@ public abstract class Window {
|
||||
*/
|
||||
public Transition getEnterTransition() { return null; }
|
||||
|
||||
/**
|
||||
* Returns he Transition that will be used to move Views out of the scene when the Window is
|
||||
* preparing to close, for example after a call to
|
||||
* {@link android.app.Activity#finishAfterTransition()}. The exiting
|
||||
* Views will be those that are regular Views or ViewGroups that have
|
||||
* {@link ViewGroup#isTransitionGroup} return true. Typical Transitions will extend
|
||||
* {@link android.transition.Visibility} as entering is governed by changing visibility from
|
||||
* {@link View#VISIBLE} to {@link View#INVISIBLE}.
|
||||
* @return The Transition to use to move Views out of the Scene when the Window
|
||||
* is preparing to close.
|
||||
*/
|
||||
public Transition getReturnTransition() { return null; }
|
||||
|
||||
/**
|
||||
* Returns the Transition that will be used to move Views out of the scene when starting a
|
||||
* new Activity. The exiting Views will be those that are regular Views or ViewGroups that
|
||||
@@ -1460,6 +1502,18 @@ public abstract class Window {
|
||||
*/
|
||||
public Transition getExitTransition() { return null; }
|
||||
|
||||
/**
|
||||
* Returns the Transition that will be used to move Views in to the scene when returning from
|
||||
* a previously-started Activity. The entering Views will be those that are regular Views
|
||||
* or ViewGroups that have {@link ViewGroup#isTransitionGroup} return true. Typical Transitions
|
||||
* will extend {@link android.transition.Visibility} as exiting is governed by changing
|
||||
* visibility from {@link View#VISIBLE} to {@link View#INVISIBLE}.
|
||||
* Requires {@link #FEATURE_CONTENT_TRANSITIONS}.
|
||||
* @return The Transition to use to move Views into the scene when reentering from a
|
||||
* previously-started Activity.
|
||||
*/
|
||||
public Transition getReenterTransition() { return null; }
|
||||
|
||||
/**
|
||||
* Sets the Transition that will be used for shared elements transferred into the content
|
||||
* Scene. Typical Transitions will affect size and location, such as
|
||||
@@ -1471,6 +1525,19 @@ public abstract class Window {
|
||||
*/
|
||||
public void setSharedElementEnterTransition(Transition transition) {}
|
||||
|
||||
/**
|
||||
* Sets the Transition that will be used for shared elements transferred back to a
|
||||
* calling Activity. Typical Transitions will affect size and location, such as
|
||||
* {@link android.transition.ChangeBounds}. A null
|
||||
* value will cause transferred shared elements to blink to the final position.
|
||||
* If no value is set, the default will be to use the same value as
|
||||
* {@link #setSharedElementEnterTransition(android.transition.Transition)}.
|
||||
* Requires {@link #FEATURE_CONTENT_TRANSITIONS}.
|
||||
* @param transition The Transition to use for shared elements transferred out of the content
|
||||
* Scene.
|
||||
*/
|
||||
public void setSharedElementReturnTransition(Transition transition) {}
|
||||
|
||||
/**
|
||||
* Returns the Transition that will be used for shared elements transferred into the content
|
||||
* Scene. Requires {@link #FEATURE_CONTENT_TRANSITIONS}.
|
||||
@@ -1478,6 +1545,13 @@ public abstract class Window {
|
||||
*/
|
||||
public Transition getSharedElementEnterTransition() { return null; }
|
||||
|
||||
/**
|
||||
* Returns the Transition that will be used for shared elements transferred back to a
|
||||
* calling Activity. Requires {@link #FEATURE_CONTENT_TRANSITIONS}.
|
||||
* @return Transition to use for sharend elements transferred into the content Scene.
|
||||
*/
|
||||
public Transition getSharedElementReturnTransition() { return null; }
|
||||
|
||||
/**
|
||||
* Sets the Transition that will be used for shared elements after starting a new Activity
|
||||
* before the shared elements are transferred to the called Activity. If the shared elements
|
||||
@@ -1489,6 +1563,17 @@ public abstract class Window {
|
||||
*/
|
||||
public void setSharedElementExitTransition(Transition transition) {}
|
||||
|
||||
/**
|
||||
* Sets the Transition that will be used for shared elements reentering from a started
|
||||
* Activity after it has returned the shared element to it start location. If no value
|
||||
* is set, this will default to
|
||||
* {@link #setSharedElementExitTransition(android.transition.Transition)}.
|
||||
* Requires {@link #FEATURE_CONTENT_TRANSITIONS}.
|
||||
* @param transition The Transition to use for shared elements in the launching Window
|
||||
* after the shared element has returned to the Window.
|
||||
*/
|
||||
public void setSharedElementReenterTransition(Transition transition) {}
|
||||
|
||||
/**
|
||||
* Returns the Transition to use for shared elements in the launching Window prior
|
||||
* to transferring to the launched Activity's Window.
|
||||
@@ -1499,6 +1584,16 @@ public abstract class Window {
|
||||
*/
|
||||
public Transition getSharedElementExitTransition() { return null; }
|
||||
|
||||
/**
|
||||
* Returns the Transition that will be used for shared elements reentering from a started
|
||||
* Activity after it has returned the shared element to it start location.
|
||||
* Requires {@link #FEATURE_CONTENT_TRANSITIONS}.
|
||||
*
|
||||
* @return the Transition that will be used for shared elements reentering from a started
|
||||
* Activity after it has returned the shared element to it start location.
|
||||
*/
|
||||
public Transition getSharedElementReenterTransition() { return null; }
|
||||
|
||||
/**
|
||||
* Controls how the transition set in
|
||||
* {@link #setEnterTransition(android.transition.Transition)} overlaps with the exit
|
||||
|
||||
@@ -463,18 +463,36 @@
|
||||
{@link android.view.Window#setEnterTransition(android.transition.Transition)}. -->
|
||||
<attr name="windowEnterTransition" format="reference"/>
|
||||
|
||||
<!-- Reference to a Transition XML resource defining the desired Transition
|
||||
used to move Views out of the scene when the Window is
|
||||
preparing to close. Corresponds to
|
||||
{@link android.view.Window#setReturnTransition(android.transition.Transition)}. -->
|
||||
<attr name="windowReturnTransition" format="reference"/>
|
||||
|
||||
<!-- Reference to a Transition XML resource defining the desired Transition
|
||||
used to move Views out of the Window's content Scene when launching a new Activity.
|
||||
Corresponds to
|
||||
{@link android.view.Window#setExitTransition(android.transition.Transition)}. -->
|
||||
<attr name="windowExitTransition" format="reference"/>
|
||||
|
||||
<!-- Reference to a Transition XML resource defining the desired Transition
|
||||
used to move Views in to the scene when returning from a previously-started Activity.
|
||||
Corresponds to
|
||||
{@link android.view.Window#setReenterTransition(android.transition.Transition)}. -->
|
||||
<attr name="windowReenterTransition" format="reference"/>
|
||||
|
||||
<!-- Reference to a Transition XML resource defining the desired Transition
|
||||
used to move shared elements transferred into the Window's initial content Scene.
|
||||
Corresponds to {@link android.view.Window#setSharedElementEnterTransition(
|
||||
android.transition.Transition)}. -->
|
||||
<attr name="windowSharedElementEnterTransition" format="reference"/>
|
||||
|
||||
<!-- Reference to a Transition XML resource defining the desired Transition
|
||||
used to move shared elements transferred back to a calling Activity.
|
||||
Corresponds to {@link android.view.Window#setSharedElementReturnTransition(
|
||||
android.transition.Transition)}. -->
|
||||
<attr name="windowSharedElementReturnTransition" format="reference"/>
|
||||
|
||||
<!-- Reference to a Transition XML resource defining the desired Transition
|
||||
used when starting a new Activity to move shared elements prior to transferring
|
||||
to the called Activity.
|
||||
@@ -482,6 +500,12 @@
|
||||
android.transition.Transition)}. -->
|
||||
<attr name="windowSharedElementExitTransition" format="reference"/>
|
||||
|
||||
<!-- Reference to a Transition XML resource defining the desired Transition
|
||||
used for shared elements transferred back to a calling Activity.
|
||||
Corresponds to {@link android.view.Window#setSharedElementReenterTransition(
|
||||
android.transition.Transition)}. -->
|
||||
<attr name="windowSharedElementReenterTransition" format="reference"/>
|
||||
|
||||
<!-- Flag indicating whether this Window's transition should overlap with
|
||||
the exiting transition of the calling Activity. Corresponds to
|
||||
{@link android.view.Window#setAllowEnterTransitionOverlap(boolean)}. -->
|
||||
@@ -1751,30 +1775,54 @@
|
||||
or a fraction of the screen size in that dimension. -->
|
||||
<attr name="windowFixedHeightMajor" format="dimension|fraction" />
|
||||
<attr name="windowOutsetBottom" format="dimension" />
|
||||
<!-- Reference to a TransitionManager XML resource defining the desired Transition
|
||||
<!-- Reference to a Transition XML resource defining the desired Transition
|
||||
used to move Views into the initial Window's content Scene. Corresponds to
|
||||
{@link android.view.Window#setEnterTransition(android.transition.Transition)}. -->
|
||||
<attr name="windowEnterTransition"/>
|
||||
|
||||
<!-- Reference to a TransitionManager XML resource defining the desired Transition
|
||||
<!-- Reference to a Transition XML resource defining the desired Transition
|
||||
used to move Views out of the scene when the Window is
|
||||
preparing to close. Corresponds to
|
||||
{@link android.view.Window#setReturnTransition(android.transition.Transition)}. -->
|
||||
<attr name="windowReturnTransition"/>
|
||||
|
||||
<!-- Reference to a Transition XML resource defining the desired Transition
|
||||
used to move Views out of the Window's content Scene when launching a new Activity.
|
||||
Corresponds to
|
||||
{@link android.view.Window#setExitTransition(android.transition.Transition)}. -->
|
||||
<attr name="windowExitTransition"/>
|
||||
|
||||
<!-- Reference to a TransitionManager XML resource defining the desired Transition
|
||||
<!-- Reference to a Transition XML resource defining the desired Transition
|
||||
used to move Views in to the scene when returning from a previously-started Activity.
|
||||
Corresponds to
|
||||
{@link android.view.Window#setReenterTransition(android.transition.Transition)}. -->
|
||||
<attr name="windowReenterTransition"/>
|
||||
|
||||
<!-- Reference to a Transition XML resource defining the desired Transition
|
||||
used to move shared elements transferred into the Window's initial content Scene.
|
||||
Corresponds to {@link android.view.Window#setSharedElementEnterTransition(
|
||||
android.transition.Transition)}. -->
|
||||
<attr name="windowSharedElementEnterTransition"/>
|
||||
|
||||
<!-- Reference to a TransitionManager XML resource defining the desired Transition
|
||||
<!-- Reference to a Transition XML resource defining the desired Transition
|
||||
used to move shared elements transferred back to a calling Activity.
|
||||
Corresponds to {@link android.view.Window#setSharedElementReturnTransition(
|
||||
android.transition.Transition)}. -->
|
||||
<attr name="windowSharedElementReturnTransition"/>
|
||||
|
||||
<!-- Reference to a Transition XML resource defining the desired Transition
|
||||
used when starting a new Activity to move shared elements prior to transferring
|
||||
to the called Activity.
|
||||
Corresponds to {@link android.view.Window#setSharedElementExitTransition(
|
||||
android.transition.Transition)}. -->
|
||||
<attr name="windowSharedElementExitTransition"/>
|
||||
|
||||
<!-- Reference to a Transition XML resource defining the desired Transition
|
||||
used for shared elements transferred back to a calling Activity.
|
||||
Corresponds to {@link android.view.Window#setSharedElementReenterTransition(
|
||||
android.transition.Transition)}. -->
|
||||
<attr name="windowSharedElementReenterTransition"/>
|
||||
|
||||
|
||||
<!-- Flag indicating whether this Window's transition should overlap with
|
||||
the exiting transition of the calling Activity. Corresponds to
|
||||
|
||||
@@ -2265,6 +2265,10 @@
|
||||
<public type="attr" name="windowClipToOutline" />
|
||||
<public type="attr" name="datePickerDialogTheme" />
|
||||
<public type="attr" name="showText" />
|
||||
<public type="attr" name="windowReturnTransition" />
|
||||
<public type="attr" name="windowReenterTransition" />
|
||||
<public type="attr" name="windowSharedElementReturnTransition" />
|
||||
<public type="attr" name="windowSharedElementReenterTransition" />
|
||||
|
||||
<public-padding type="dimen" name="l_resource_pad" end="0x01050010" />
|
||||
|
||||
|
||||
@@ -50,7 +50,6 @@ import android.graphics.Rect;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.media.AudioManager;
|
||||
import android.media.session.MediaController;
|
||||
import android.media.session.MediaSession;
|
||||
import android.media.session.MediaSessionLegacyHelper;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
@@ -63,6 +62,7 @@ import android.transition.Scene;
|
||||
import android.transition.Transition;
|
||||
import android.transition.TransitionInflater;
|
||||
import android.transition.TransitionManager;
|
||||
import android.transition.TransitionSet;
|
||||
import android.util.AndroidRuntimeException;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.EventLog;
|
||||
@@ -126,6 +126,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
|
||||
(1 << FEATURE_CONTENT_TRANSITIONS) |
|
||||
(1 << FEATURE_ACTION_MODE_OVERLAY);
|
||||
|
||||
private static final Transition USE_DEFAULT_TRANSITION = new TransitionSet();
|
||||
|
||||
/**
|
||||
* Simple callback used by the context menu and its submenus. The options
|
||||
* menu submenus do not use this (their behavior is more complex).
|
||||
@@ -254,10 +256,14 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
|
||||
}
|
||||
};
|
||||
|
||||
private Transition mEnterTransition;
|
||||
private Transition mExitTransition;
|
||||
private Transition mSharedElementEnterTransition;
|
||||
private Transition mSharedElementExitTransition;
|
||||
private Transition mEnterTransition = null;
|
||||
private Transition mReturnTransition = USE_DEFAULT_TRANSITION;
|
||||
private Transition mExitTransition = null;
|
||||
private Transition mReenterTransition = USE_DEFAULT_TRANSITION;
|
||||
private Transition mSharedElementEnterTransition = null;
|
||||
private Transition mSharedElementReturnTransition = USE_DEFAULT_TRANSITION;
|
||||
private Transition mSharedElementExitTransition = null;
|
||||
private Transition mSharedElementReenterTransition = USE_DEFAULT_TRANSITION;
|
||||
private Boolean mAllowExitTransitionOverlap;
|
||||
private Boolean mAllowEnterTransitionOverlap;
|
||||
private long mBackgroundFadeDurationMillis = -1;
|
||||
@@ -3513,40 +3519,47 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
|
||||
}
|
||||
}
|
||||
|
||||
mEnterTransition = getTransition(mEnterTransition,
|
||||
mEnterTransition = getTransition(mEnterTransition, null,
|
||||
R.styleable.Window_windowEnterTransition);
|
||||
mExitTransition = getTransition(mExitTransition,
|
||||
mReturnTransition = getTransition(mReturnTransition, USE_DEFAULT_TRANSITION,
|
||||
R.styleable.Window_windowReturnTransition);
|
||||
mExitTransition = getTransition(mExitTransition, null,
|
||||
R.styleable.Window_windowExitTransition);
|
||||
mSharedElementEnterTransition = getTransition(mSharedElementEnterTransition,
|
||||
mReenterTransition = getTransition(mReenterTransition, USE_DEFAULT_TRANSITION,
|
||||
R.styleable.Window_windowReenterTransition);
|
||||
mSharedElementEnterTransition = getTransition(mSharedElementEnterTransition, null,
|
||||
R.styleable.Window_windowSharedElementEnterTransition);
|
||||
mSharedElementExitTransition = getTransition(mSharedElementExitTransition,
|
||||
mSharedElementReturnTransition = getTransition(mSharedElementReturnTransition,
|
||||
USE_DEFAULT_TRANSITION,
|
||||
R.styleable.Window_windowSharedElementReturnTransition);
|
||||
mSharedElementExitTransition = getTransition(mSharedElementExitTransition, null,
|
||||
R.styleable.Window_windowSharedElementExitTransition);
|
||||
mSharedElementReenterTransition = getTransition(mSharedElementReenterTransition,
|
||||
USE_DEFAULT_TRANSITION,
|
||||
R.styleable.Window_windowSharedElementReenterTransition);
|
||||
if (mAllowEnterTransitionOverlap == null) {
|
||||
mAllowEnterTransitionOverlap = getWindowStyle().getBoolean(
|
||||
R.styleable.
|
||||
Window_windowAllowEnterTransitionOverlap, true);
|
||||
R.styleable.Window_windowAllowEnterTransitionOverlap, true);
|
||||
}
|
||||
if (mAllowExitTransitionOverlap == null) {
|
||||
mAllowExitTransitionOverlap = getWindowStyle().getBoolean(
|
||||
R.styleable.
|
||||
Window_windowAllowExitTransitionOverlap, true);
|
||||
R.styleable.Window_windowAllowExitTransitionOverlap, true);
|
||||
}
|
||||
if (mBackgroundFadeDurationMillis < 0) {
|
||||
mBackgroundFadeDurationMillis = getWindowStyle().getInteger(
|
||||
R.styleable.
|
||||
Window_windowTransitionBackgroundFadeDuration,
|
||||
R.styleable.Window_windowTransitionBackgroundFadeDuration,
|
||||
DEFAULT_BACKGROUND_FADE_DURATION_MS);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Transition getTransition(Transition currentValue, int id) {
|
||||
if (currentValue != null) {
|
||||
private Transition getTransition(Transition currentValue, Transition defaultValue, int id) {
|
||||
if (currentValue != defaultValue) {
|
||||
return currentValue;
|
||||
}
|
||||
int transitionId = getWindowStyle().getResourceId(id, -1);
|
||||
Transition transition = null;
|
||||
Transition transition = defaultValue;
|
||||
if (transitionId != -1 && transitionId != R.transition.no_transition) {
|
||||
TransitionInflater inflater = TransitionInflater.from(getContext());
|
||||
transition = inflater.inflateTransition(transitionId);
|
||||
@@ -3898,41 +3911,85 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
|
||||
mEnterTransition = enterTransition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setReturnTransition(Transition transition) {
|
||||
mReturnTransition = transition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExitTransition(Transition exitTransition) {
|
||||
mExitTransition = exitTransition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setReenterTransition(Transition transition) {
|
||||
mReenterTransition = transition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSharedElementEnterTransition(Transition sharedElementEnterTransition) {
|
||||
mSharedElementEnterTransition = sharedElementEnterTransition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSharedElementReturnTransition(Transition transition) {
|
||||
mSharedElementReturnTransition = transition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSharedElementExitTransition(Transition sharedElementExitTransition) {
|
||||
mSharedElementExitTransition = sharedElementExitTransition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSharedElementReenterTransition(Transition transition) {
|
||||
mSharedElementReenterTransition = transition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Transition getEnterTransition() {
|
||||
return mEnterTransition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Transition getReturnTransition() {
|
||||
return mReturnTransition == USE_DEFAULT_TRANSITION ? getEnterTransition()
|
||||
: mReturnTransition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Transition getExitTransition() {
|
||||
return mExitTransition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Transition getReenterTransition() {
|
||||
return mReenterTransition == USE_DEFAULT_TRANSITION ? getExitTransition()
|
||||
: mReenterTransition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Transition getSharedElementEnterTransition() {
|
||||
return mSharedElementEnterTransition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Transition getSharedElementReturnTransition() {
|
||||
return mSharedElementReturnTransition == USE_DEFAULT_TRANSITION
|
||||
? getSharedElementEnterTransition() : mSharedElementReturnTransition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Transition getSharedElementExitTransition() {
|
||||
return mSharedElementExitTransition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Transition getSharedElementReenterTransition() {
|
||||
return mSharedElementReenterTransition == USE_DEFAULT_TRANSITION
|
||||
? getSharedElementExitTransition() : mSharedElementReenterTransition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAllowEnterTransitionOverlap(boolean allow) {
|
||||
mAllowEnterTransitionOverlap = allow;
|
||||
|
||||
Reference in New Issue
Block a user