Merge "Increase visibility of Transition.areValuesChanged() to protected to allow subclasses outside the android.transition package to override it."
diff --git a/api/current.txt b/api/current.txt
index 118223c..7539ae6 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -31807,6 +31807,7 @@
method public android.transition.Transition addTarget(java.lang.String);
method public android.transition.Transition addTarget(java.lang.Class);
method public android.transition.Transition addTarget(android.view.View);
+ method protected boolean areValuesChanged(android.transition.TransitionValues, android.transition.TransitionValues);
method public boolean canRemoveViews();
method public abstract void captureEndValues(android.transition.TransitionValues);
method public abstract void captureStartValues(android.transition.TransitionValues);
diff --git a/api/system-current.txt b/api/system-current.txt
index 903c40c..845d455 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -33966,6 +33966,7 @@
method public android.transition.Transition addTarget(java.lang.String);
method public android.transition.Transition addTarget(java.lang.Class);
method public android.transition.Transition addTarget(android.view.View);
+ method protected boolean areValuesChanged(android.transition.TransitionValues, android.transition.TransitionValues);
method public boolean canRemoveViews();
method public abstract void captureEndValues(android.transition.TransitionValues);
method public abstract void captureStartValues(android.transition.TransitionValues);
diff --git a/core/java/android/transition/Transition.java b/core/java/android/transition/Transition.java
index 2705bcf..c942042 100644
--- a/core/java/android/transition/Transition.java
+++ b/core/java/android/transition/Transition.java
@@ -1762,7 +1762,17 @@
runAnimators();
}
- boolean areValuesChanged(TransitionValues oldValues, TransitionValues newValues) {
+ /**
+ * Returns whether transition values have changed between the start scene and the end scene
+ * (thus determining whether animation is required). The default implementation compares the
+ * property values returned from {@link #getTransitionProperties()}, or all property values if
+ * {@code getTransitionProperties()} returns null. Subclasses may override this method to
+ * provide logic more specific to their transition implementation.
+ *
+ * @param oldValues the first set of values, may be {@code null}
+ * @param newValues the second set of values, may be {@code null}
+ */
+ protected boolean areValuesChanged(TransitionValues oldValues, TransitionValues newValues) {
boolean valuesChanged = false;
// if oldValues null, then transition didn't care to stash values,
// and won't get canceled
diff --git a/core/java/android/transition/Visibility.java b/core/java/android/transition/Visibility.java
index 8779229..26dca43 100644
--- a/core/java/android/transition/Visibility.java
+++ b/core/java/android/transition/Visibility.java
@@ -182,7 +182,7 @@
return visibility == View.VISIBLE && parent != null;
}
- private VisibilityInfo getVisibilityChangeInfo(TransitionValues startValues,
+ private static VisibilityInfo getVisibilityChangeInfo(TransitionValues startValues,
TransitionValues endValues) {
final VisibilityInfo visInfo = new VisibilityInfo();
visInfo.visibilityChange = false;
@@ -484,7 +484,7 @@
}
@Override
- boolean areValuesChanged(TransitionValues oldValues, TransitionValues newValues) {
+ protected boolean areValuesChanged(TransitionValues oldValues, TransitionValues newValues) {
if (oldValues == null && newValues == null) {
return false;
}