Merge "Have Activity Transitions activited by a new window attribute." into lmp-dev
This commit is contained in:
@@ -1429,6 +1429,7 @@ package android {
|
||||
field public static final int windowActionBar = 16843469; // 0x10102cd
|
||||
field public static final int windowActionBarOverlay = 16843492; // 0x10102e4
|
||||
field public static final int windowActionModeOverlay = 16843485; // 0x10102dd
|
||||
field public static final int windowActivityTransitions = 16843982; // 0x10104ce
|
||||
field public static final int windowAllowEnterTransitionOverlap = 16843836; // 0x101043c
|
||||
field public static final int windowAllowReturnTransitionOverlap = 16843835; // 0x101043b
|
||||
field public static final int windowAnimationStyle = 16842926; // 0x10100ae
|
||||
@@ -34878,6 +34879,7 @@ package android.view {
|
||||
field public static final int FEATURE_ACTION_BAR = 8; // 0x8
|
||||
field public static final int FEATURE_ACTION_BAR_OVERLAY = 9; // 0x9
|
||||
field public static final int FEATURE_ACTION_MODE_OVERLAY = 10; // 0xa
|
||||
field public static final int FEATURE_ACTIVITY_TRANSITIONS = 13; // 0xd
|
||||
field public static final int FEATURE_CONTENT_TRANSITIONS = 12; // 0xc
|
||||
field public static final int FEATURE_CONTEXT_MENU = 6; // 0x6
|
||||
field public static final int FEATURE_CUSTOM_TITLE = 7; // 0x7
|
||||
|
||||
@@ -4756,7 +4756,7 @@ public class Activity extends ContextThemeWrapper
|
||||
* Activity through a returning activity transition, giving you the resultCode
|
||||
* and any additional data from it. This method will only be called if the activity
|
||||
* set a result code other than {@link #RESULT_CANCELED} and it supports activity
|
||||
* transitions with {@link Window#FEATURE_CONTENT_TRANSITIONS}.
|
||||
* transitions with {@link Window#FEATURE_ACTIVITY_TRANSITIONS}.
|
||||
*
|
||||
* <p>The purpose of this function is to let the called Activity send a hint about
|
||||
* its state so that this underlying Activity can prepare to be exposed. A call to
|
||||
@@ -5781,7 +5781,7 @@ public class Activity extends ContextThemeWrapper
|
||||
* When {@link android.app.ActivityOptions#makeSceneTransitionAnimation(Activity,
|
||||
* android.view.View, String)} was used to start an Activity, <var>callback</var>
|
||||
* will be called to handle shared elements on the <i>launched</i> Activity. This requires
|
||||
* {@link Window#FEATURE_CONTENT_TRANSITIONS}.
|
||||
* {@link Window#FEATURE_ACTIVITY_TRANSITIONS}.
|
||||
*
|
||||
* @param callback Used to manipulate shared element transitions on the launched Activity.
|
||||
*/
|
||||
@@ -5797,7 +5797,7 @@ public class Activity extends ContextThemeWrapper
|
||||
* android.view.View, String)} was used to start an Activity, <var>callback</var>
|
||||
* will be called to handle shared elements on the <i>launching</i> Activity. Most
|
||||
* calls will only come when returning from the started Activity.
|
||||
* This requires {@link Window#FEATURE_CONTENT_TRANSITIONS}.
|
||||
* This requires {@link Window#FEATURE_ACTIVITY_TRANSITIONS}.
|
||||
*
|
||||
* @param callback Used to manipulate shared element transitions on the launching Activity.
|
||||
*/
|
||||
|
||||
@@ -414,7 +414,7 @@ public class ActivityOptions {
|
||||
* exit Transition. The position of the shared element in the launched Activity will be the
|
||||
* epicenter of its entering Transition.
|
||||
*
|
||||
* <p>This requires {@link android.view.Window#FEATURE_CONTENT_TRANSITIONS} to be
|
||||
* <p>This requires {@link android.view.Window#FEATURE_ACTIVITY_TRANSITIONS} to be
|
||||
* enabled on the calling Activity to cause an exit transition. The same must be in
|
||||
* the called Activity to get an entering transition.</p>
|
||||
* @param activity The Activity whose window contains the shared elements.
|
||||
@@ -438,7 +438,7 @@ public class ActivityOptions {
|
||||
* will be used as the epicenter for the exit Transition. The position of the associated
|
||||
* shared element in the launched Activity will be the epicenter of its entering Transition.
|
||||
*
|
||||
* <p>This requires {@link android.view.Window#FEATURE_CONTENT_TRANSITIONS} to be
|
||||
* <p>This requires {@link android.view.Window#FEATURE_ACTIVITY_TRANSITIONS} to be
|
||||
* enabled on the calling Activity to cause an exit transition. The same must be in
|
||||
* the called Activity to get an entering transition.</p>
|
||||
* @param activity The Activity whose window contains the shared elements.
|
||||
@@ -453,7 +453,7 @@ public class ActivityOptions {
|
||||
public static ActivityOptions makeSceneTransitionAnimation(Activity activity,
|
||||
Pair<View, String>... sharedElements) {
|
||||
ActivityOptions opts = new ActivityOptions();
|
||||
if (!activity.getWindow().hasFeature(Window.FEATURE_CONTENT_TRANSITIONS)) {
|
||||
if (!activity.getWindow().hasFeature(Window.FEATURE_ACTIVITY_TRANSITIONS)) {
|
||||
opts.mAnimationType = ANIM_DEFAULT;
|
||||
return opts;
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@ class ActivityTransitionState {
|
||||
}
|
||||
|
||||
public void setEnterActivityOptions(Activity activity, ActivityOptions options) {
|
||||
if (activity.getWindow().hasFeature(Window.FEATURE_CONTENT_TRANSITIONS)
|
||||
if (activity.getWindow().hasFeature(Window.FEATURE_ACTIVITY_TRANSITIONS)
|
||||
&& options != null && mEnterActivityOptions == null
|
||||
&& mEnterTransitionCoordinator == null
|
||||
&& options.getAnimationType() == ActivityOptions.ANIM_SCENE_TRANSITION) {
|
||||
@@ -272,7 +272,7 @@ class ActivityTransitionState {
|
||||
}
|
||||
|
||||
public void startExitOutTransition(Activity activity, Bundle options) {
|
||||
if (!activity.getWindow().hasFeature(Window.FEATURE_CONTENT_TRANSITIONS)) {
|
||||
if (!activity.getWindow().hasFeature(Window.FEATURE_ACTIVITY_TRANSITIONS)) {
|
||||
return;
|
||||
}
|
||||
ActivityOptions activityOptions = new ActivityOptions(options);
|
||||
|
||||
@@ -110,11 +110,20 @@ public abstract class Window {
|
||||
*/
|
||||
public static final int FEATURE_CONTENT_TRANSITIONS = 12;
|
||||
|
||||
/**
|
||||
* Enables Activities to run Activity Transitions either through sending or receiving
|
||||
* ActivityOptions bundle created with
|
||||
* {@link android.app.ActivityOptions#makeSceneTransitionAnimation(android.app.Activity,
|
||||
* android.util.Pair[])} or {@link android.app.ActivityOptions#makeSceneTransitionAnimation(
|
||||
* android.app.Activity, View, String)}.
|
||||
*/
|
||||
public static final int FEATURE_ACTIVITY_TRANSITIONS = 13;
|
||||
|
||||
/**
|
||||
* Max value used as a feature ID
|
||||
* @hide
|
||||
*/
|
||||
public static final int FEATURE_MAX = FEATURE_CONTENT_TRANSITIONS;
|
||||
public static final int FEATURE_MAX = FEATURE_ACTIVITY_TRANSITIONS;
|
||||
|
||||
/** Flag for setting the progress bar's visibility to VISIBLE */
|
||||
public static final int PROGRESS_VISIBILITY_ON = -1;
|
||||
@@ -1459,7 +1468,7 @@ public abstract class Window {
|
||||
* 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. Requires {@link #FEATURE_CONTENT_TRANSITIONS}.
|
||||
* remain unaffected. Requires {@link #FEATURE_ACTIVITY_TRANSITIONS}.
|
||||
*
|
||||
* @param transition The Transition to use to move Views out of the scene when calling a
|
||||
* new Activity.
|
||||
@@ -1475,7 +1484,7 @@ public abstract class Window {
|
||||
* 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}.
|
||||
* Requires {@link #FEATURE_ACTIVITY_TRANSITIONS}.
|
||||
*
|
||||
* @param transition The Transition to use to move Views into the scene when reentering from a
|
||||
* previously-started Activity.
|
||||
@@ -1489,7 +1498,7 @@ public abstract class Window {
|
||||
* {@link ViewGroup#isTransitionGroup} return true. Typical Transitions will extend
|
||||
* {@link android.transition.Visibility} as entering is governed by changing visibility from
|
||||
* {@link View#INVISIBLE} to {@link View#VISIBLE}. If <code>transition</code> is null,
|
||||
* entering Views will remain unaffected. Requires {@link #FEATURE_CONTENT_TRANSITIONS}.
|
||||
* entering Views will remain unaffected. Requires {@link #FEATURE_ACTIVITY_TRANSITIONS}.
|
||||
*
|
||||
* @return the Transition to use to move Views into the initial Scene.
|
||||
* @attr ref android.R.styleable#Window_windowEnterTransition
|
||||
@@ -1517,7 +1526,7 @@ public abstract class Window {
|
||||
* 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. Requires {@link #FEATURE_CONTENT_TRANSITIONS}.
|
||||
* remain unaffected. Requires {@link #FEATURE_ACTIVITY_TRANSITIONS}.
|
||||
*
|
||||
* @return the Transition to use to move Views out of the scene when calling a
|
||||
* new Activity.
|
||||
@@ -1531,7 +1540,7 @@ public abstract class Window {
|
||||
* 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}.
|
||||
* Requires {@link #FEATURE_ACTIVITY_TRANSITIONS}.
|
||||
*
|
||||
* @return The Transition to use to move Views into the scene when reentering from a
|
||||
* previously-started Activity.
|
||||
@@ -1544,7 +1553,7 @@ public abstract class Window {
|
||||
* Scene. 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.
|
||||
* Requires {@link #FEATURE_CONTENT_TRANSITIONS}.
|
||||
* Requires {@link #FEATURE_ACTIVITY_TRANSITIONS}.
|
||||
*
|
||||
* @param transition The Transition to use for shared elements transferred into the content
|
||||
* Scene.
|
||||
@@ -1559,7 +1568,7 @@ public abstract class Window {
|
||||
* 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}.
|
||||
* Requires {@link #FEATURE_ACTIVITY_TRANSITIONS}.
|
||||
*
|
||||
* @param transition The Transition to use for shared elements transferred out of the content
|
||||
* Scene.
|
||||
@@ -1569,7 +1578,7 @@ public abstract class Window {
|
||||
|
||||
/**
|
||||
* Returns the Transition that will be used for shared elements transferred into the content
|
||||
* Scene. Requires {@link #FEATURE_CONTENT_TRANSITIONS}.
|
||||
* Scene. Requires {@link #FEATURE_ACTIVITY_TRANSITIONS}.
|
||||
*
|
||||
* @return Transition to use for sharend elements transferred into the content Scene.
|
||||
* @attr ref android.R.styleable#Window_windowSharedElementEnterTransition
|
||||
@@ -1578,7 +1587,7 @@ public abstract class Window {
|
||||
|
||||
/**
|
||||
* Returns the Transition that will be used for shared elements transferred back to a
|
||||
* calling Activity. Requires {@link #FEATURE_CONTENT_TRANSITIONS}.
|
||||
* calling Activity. Requires {@link #FEATURE_ACTIVITY_TRANSITIONS}.
|
||||
*
|
||||
* @return Transition to use for sharend elements transferred into the content Scene.
|
||||
* @attr ref android.R.styleable#Window_windowSharedElementReturnTransition
|
||||
@@ -1590,7 +1599,7 @@ public abstract class Window {
|
||||
* before the shared elements are transferred to the called Activity. If the shared elements
|
||||
* must animate during the exit transition, this Transition should be used. Upon completion,
|
||||
* the shared elements may be transferred to the started Activity.
|
||||
* Requires {@link #FEATURE_CONTENT_TRANSITIONS}.
|
||||
* Requires {@link #FEATURE_ACTIVITY_TRANSITIONS}.
|
||||
*
|
||||
* @param transition The Transition to use for shared elements in the launching Window
|
||||
* prior to transferring to the launched Activity's Window.
|
||||
@@ -1603,7 +1612,7 @@ public abstract class Window {
|
||||
* 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}.
|
||||
* Requires {@link #FEATURE_ACTIVITY_TRANSITIONS}.
|
||||
*
|
||||
* @param transition The Transition to use for shared elements in the launching Window
|
||||
* after the shared element has returned to the Window.
|
||||
@@ -1614,7 +1623,7 @@ public abstract class Window {
|
||||
/**
|
||||
* Returns the Transition to use for shared elements in the launching Window prior
|
||||
* to transferring to the launched Activity's Window.
|
||||
* Requires {@link #FEATURE_CONTENT_TRANSITIONS}.
|
||||
* Requires {@link #FEATURE_ACTIVITY_TRANSITIONS}.
|
||||
*
|
||||
* @return the Transition to use for shared elements in the launching Window prior
|
||||
* to transferring to the launched Activity's Window.
|
||||
@@ -1625,7 +1634,7 @@ public abstract class Window {
|
||||
/**
|
||||
* 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}.
|
||||
* Requires {@link #FEATURE_ACTIVITY_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.
|
||||
@@ -1703,7 +1712,7 @@ public abstract class Window {
|
||||
* Returns the duration, in milliseconds, of the window background fade
|
||||
* when transitioning into or away from an Activity when called with an Activity Transition.
|
||||
* <p>When executing the enter transition, the background starts transparent
|
||||
* and fades in. This requires {@link #FEATURE_CONTENT_TRANSITIONS}. The default is
|
||||
* and fades in. This requires {@link #FEATURE_ACTIVITY_TRANSITIONS}. The default is
|
||||
* 300 milliseconds.</p>
|
||||
*
|
||||
* @return The duration of the window background fade to opaque during enter transition.
|
||||
@@ -1716,7 +1725,7 @@ public abstract class Window {
|
||||
* Sets the duration, in milliseconds, of the window background fade
|
||||
* when transitioning into or away from an Activity when called with an Activity Transition.
|
||||
* <p>When executing the enter transition, the background starts transparent
|
||||
* and fades in. This requires {@link #FEATURE_CONTENT_TRANSITIONS}. The default is
|
||||
* and fades in. This requires {@link #FEATURE_ACTIVITY_TRANSITIONS}. The default is
|
||||
* 300 milliseconds.</p>
|
||||
*
|
||||
* @param fadeDurationMillis The duration of the window background fade to or from opaque
|
||||
|
||||
@@ -458,6 +458,10 @@
|
||||
transitions between different window content. -->
|
||||
<attr name="windowContentTransitionManager" format="reference" />
|
||||
|
||||
<!-- Flag indicating whether this window allows Activity Transitions.
|
||||
Corresponds to {@link android.view.Window#FEATURE_ACTIVITY_TRANSITIONS}. -->
|
||||
<attr name="windowActivityTransitions" format="boolean" />
|
||||
|
||||
<!-- 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)}. -->
|
||||
@@ -1792,6 +1796,7 @@
|
||||
<attr name="windowTranslucentNavigation" />
|
||||
<attr name="windowSwipeToDismiss" />
|
||||
<attr name="windowContentTransitions" />
|
||||
<attr name="windowActivityTransitions" />
|
||||
<attr name="windowContentTransitionManager" />
|
||||
<attr name="windowActionBarFullscreenDecorLayout" />
|
||||
|
||||
|
||||
@@ -2293,6 +2293,7 @@
|
||||
<public type="attr" name="patternPathData" />
|
||||
<public type="attr" name="strokeAlpha" />
|
||||
<public type="attr" name="fillAlpha" />
|
||||
<public type="attr" name="windowActivityTransitions" />
|
||||
|
||||
<public-padding type="dimen" name="l_resource_pad" end="0x01050010" />
|
||||
|
||||
|
||||
@@ -192,6 +192,7 @@ please see themes_device_defaults.xml.
|
||||
<item name="navigationBarColor">@color/black</item>
|
||||
<item name="windowActionBarFullscreenDecorLayout">@layout/screen_action_bar</item>
|
||||
<item name="windowContentTransitions">false</item>
|
||||
<item name="windowActivityTransitions">false</item>
|
||||
|
||||
<!-- Define these here; ContextThemeWrappers around themes that define them should
|
||||
always clear these values. -->
|
||||
@@ -816,6 +817,7 @@ please see themes_device_defaults.xml.
|
||||
<!-- Theme for the dialog shown when an app crashes or ANRs. -->
|
||||
<style name="Theme.Dialog.AppError" parent="Theme.DeviceDefault.Light.Dialog.Alert">
|
||||
<item name="windowContentTransitions">false</item>
|
||||
<item name="windowActivityTransitions">false</item>
|
||||
<item name="windowCloseOnTouchOutside">false</item>
|
||||
</style>
|
||||
|
||||
@@ -827,6 +829,7 @@ please see themes_device_defaults.xml.
|
||||
<item name="textColor">@color/secondary_text_nofocus</item>
|
||||
<item name="windowCloseOnTouchOutside">false</item>
|
||||
<item name="windowContentTransitions">false</item>
|
||||
<item name="windowActivityTransitions">false</item>
|
||||
</style>
|
||||
|
||||
<!-- Theme for a window that looks like a toast. -->
|
||||
@@ -836,6 +839,7 @@ please see themes_device_defaults.xml.
|
||||
<item name="backgroundDimEnabled">false</item>
|
||||
<item name="windowCloseOnTouchOutside">false</item>
|
||||
<item name="windowContentTransitions">false</item>
|
||||
<item name="windowActivityTransitions">false</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
|
||||
<style name="Theme.Leanback.Dialog.AppError" parent="Theme.Leanback.Dialog">
|
||||
<item name="windowContentTransitions">false</item>
|
||||
<item name="windowActivityTransitions">false</item>
|
||||
<item name="windowCloseOnTouchOutside">false</item>
|
||||
</style>
|
||||
|
||||
|
||||
@@ -157,7 +157,8 @@ please see themes_device_defaults.xml.
|
||||
<item name="windowTitleStyle">@style/WindowTitle.Material</item>
|
||||
<item name="windowTitleSize">@dimen/action_bar_default_height_material</item>
|
||||
<item name="windowTitleBackgroundStyle">@style/WindowTitleBackground.Material</item>
|
||||
<item name="windowContentTransitions">true</item>
|
||||
<item name="windowContentTransitions">false</item>
|
||||
<item name="windowActivityTransitions">true</item>
|
||||
<item name="windowAnimationStyle">@style/Animation.Material.Activity</item>
|
||||
<item name="windowSoftInputMode">stateUnspecified|adjustUnspecified</item>
|
||||
<item name="windowActionBar">true</item>
|
||||
@@ -511,7 +512,8 @@ please see themes_device_defaults.xml.
|
||||
<item name="windowEnterTransition">@transition/fade</item>
|
||||
<item name="windowSharedElementEnterTransition">@transition/move</item>
|
||||
<item name="windowSharedElementExitTransition">@transition/move</item>
|
||||
<item name="windowContentTransitions">true</item>
|
||||
<item name="windowContentTransitions">false</item>
|
||||
<item name="windowActivityTransitions">true</item>
|
||||
|
||||
<!-- Dialog attributes -->
|
||||
<item name="dialogTheme">@style/Theme.Material.Light.Dialog</item>
|
||||
|
||||
@@ -124,6 +124,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
|
||||
private static final int CUSTOM_TITLE_COMPATIBLE_FEATURES = DEFAULT_FEATURES |
|
||||
(1 << FEATURE_CUSTOM_TITLE) |
|
||||
(1 << FEATURE_CONTENT_TRANSITIONS) |
|
||||
(1 << FEATURE_ACTIVITY_TRANSITIONS) |
|
||||
(1 << FEATURE_ACTION_MODE_OVERLAY);
|
||||
|
||||
private static final Transition USE_DEFAULT_TRANSITION = new TransitionSet();
|
||||
@@ -3207,6 +3208,9 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
|
||||
if (a.getBoolean(R.styleable.Window_windowContentTransitions, false)) {
|
||||
requestFeature(FEATURE_CONTENT_TRANSITIONS);
|
||||
}
|
||||
if (a.getBoolean(R.styleable.Window_windowActivityTransitions, false)) {
|
||||
requestFeature(FEATURE_ACTIVITY_TRANSITIONS);
|
||||
}
|
||||
|
||||
final WindowManager windowService = (WindowManager) getContext().getSystemService(
|
||||
Context.WINDOW_SERVICE);
|
||||
@@ -3516,7 +3520,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
|
||||
|
||||
// Only inflate or create a new TransitionManager if the caller hasn't
|
||||
// already set a custom one.
|
||||
if (hasFeature(FEATURE_CONTENT_TRANSITIONS)) {
|
||||
if (hasFeature(FEATURE_ACTIVITY_TRANSITIONS)) {
|
||||
if (mTransitionManager == null) {
|
||||
final int transitionRes = getWindowStyle().getResourceId(
|
||||
R.styleable.Window_windowContentTransitionManager,
|
||||
|
||||
Reference in New Issue
Block a user