Snap for 11351012 from 7c295dedb1baf436082c636c069d80f11dc390cb to mainline-tzdata4-release

Change-Id: I7d5b2e26dc9cce6dffae993072e112773904f97d
diff --git a/common/device-side/util-axt/src/com/android/compatibility/common/util/OverrideAnimationScaleRule.java b/common/device-side/util-axt/src/com/android/compatibility/common/util/OverrideAnimationScaleRule.java
index 2d50bfa..c48f1bf 100644
--- a/common/device-side/util-axt/src/com/android/compatibility/common/util/OverrideAnimationScaleRule.java
+++ b/common/device-side/util-axt/src/com/android/compatibility/common/util/OverrideAnimationScaleRule.java
@@ -18,7 +18,10 @@
 
 import static com.android.compatibility.common.util.SystemUtil.runShellCommand;
 
+import android.text.TextUtils;
+
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 
 import org.junit.runner.Description;
 import org.junit.runners.model.Statement;
@@ -26,6 +29,9 @@
 
 public class OverrideAnimationScaleRule extends BeforeAfterRule {
 
+    // From javadoc definition, the default animator duration scale is 1
+    private static final String DEFAULT_ANIMATOR_DURATION_SCALE = "1";
+
     @NonNull
     private final GlobalSetting mWindowAnimationScaleSetting = new GlobalSetting(
             "window_animation_scale");
@@ -34,7 +40,7 @@
             "transition_animation_scale");
     @NonNull
     private final GlobalSetting mAnimatorDurationScaleSetting = new GlobalSetting(
-            "animator_duration_scale");
+            "animator_duration_scale", DEFAULT_ANIMATOR_DURATION_SCALE);
 
     private final float mAnimationScale;
 
@@ -62,9 +68,15 @@
         private final String mName;
 
         private String mInitialValue;
+        private String mDefaultValue;
 
         public GlobalSetting(@NonNull String name) {
+            this(name, /* defaultValue= */ null);
+        }
+
+        GlobalSetting(@NonNull String name, @Nullable String defaultValue) {
             mName = name;
+            mDefaultValue = defaultValue;
         }
 
         public void put(@NonNull String value) {
@@ -73,7 +85,13 @@
         }
 
         public void restore() {
-            runShellCommand("settings put global " + mName + " " + mInitialValue);
+            String restoreValue =
+                    !isEmptyOrNullString(mInitialValue.trim()) ? mInitialValue : mDefaultValue;
+            runShellCommand("settings put global " + mName + " " + restoreValue);
+        }
+
+        private boolean isEmptyOrNullString(String value) {
+            return TextUtils.isEmpty(value) || TextUtils.equals(value.toLowerCase(), "null");
         }
     }
 }