Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a01ccaae authored by Fiona Campbell's avatar Fiona Campbell Committed by Android (Google) Code Review
Browse files

Merge changes I36ea0ffc,I1f3797c5,I01aeeedd into tm-qpr-dev

* changes:
  Add constraints to window duration scale
  Add constraints to animation duration scales
  Ensure animation scales are within bounds
parents 2d7ea144 ed28faef
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1023,6 +1023,14 @@ public interface WindowManager extends ViewManager {
        }
    }

    /**
     * Ensure scales are between 0 and 20.
     * @hide
     */
    static float fixScale(float scale) {
        return Math.max(Math.min(scale, 20), 0);
    }

    public static class LayoutParams extends ViewGroup.LayoutParams implements Parcelable {
        /**
         * X position for this window.  With the default gravity it is ignored.
+2 −2
Original line number Diff line number Diff line
@@ -170,9 +170,9 @@ public final class InlineTooltipUi extends PopupWindow implements AutoCloseable

            int delayTimeMs = mShowDelayConfigMs;
            try {
                final float scale = Settings.Global.getFloat(
                final float scale = WindowManager.fixScale(Settings.Global.getFloat(
                        anchor.getContext().getContentResolver(),
                        Settings.Global.ANIMATOR_DURATION_SCALE);
                        Settings.Global.ANIMATOR_DURATION_SCALE));
                delayTimeMs *= scale;
            } catch (Settings.SettingNotFoundException e) {
                // do nothing
+9 −7
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.graphics.Rect;
import android.os.Handler;
import android.provider.Settings;
import android.view.RemoteAnimationTarget;
import android.view.WindowManager;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
@@ -68,10 +69,7 @@ class TaskFragmentAnimationSpec {

        // The transition animation should be adjusted based on the developer option.
        final ContentResolver resolver = mContext.getContentResolver();
        mTransitionAnimationScaleSetting = Settings.Global.getFloat(resolver,
                Settings.Global.TRANSITION_ANIMATION_SCALE,
                mContext.getResources().getFloat(
                        R.dimen.config_appTransitionAnimationDurationScaleDefault));
        mTransitionAnimationScaleSetting = getTransitionAnimationScaleSetting();
        resolver.registerContentObserver(
                Settings.Global.getUriFor(Settings.Global.TRANSITION_ANIMATION_SCALE), false,
                new SettingsObserver(handler));
@@ -223,6 +221,12 @@ class TaskFragmentAnimationSpec {
        return animation;
    }

    private float getTransitionAnimationScaleSetting() {
        return WindowManager.fixScale(Settings.Global.getFloat(mContext.getContentResolver(),
                Settings.Global.TRANSITION_ANIMATION_SCALE, mContext.getResources().getFloat(
                                R.dimen.config_appTransitionAnimationDurationScaleDefault)));
    }

    private class SettingsObserver extends ContentObserver {
        SettingsObserver(@NonNull Handler handler) {
            super(handler);
@@ -230,9 +234,7 @@ class TaskFragmentAnimationSpec {

        @Override
        public void onChange(boolean selfChange) {
            mTransitionAnimationScaleSetting = Settings.Global.getFloat(
                    mContext.getContentResolver(), Settings.Global.TRANSITION_ANIMATION_SCALE,
                    mTransitionAnimationScaleSetting);
            mTransitionAnimationScaleSetting = getTransitionAnimationScaleSetting();
        }
    }
}
+9 −7
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import static android.view.WindowManager.TRANSIT_KEYGUARD_GOING_AWAY;
import static android.view.WindowManager.TRANSIT_OPEN;
import static android.view.WindowManager.TRANSIT_TO_BACK;
import static android.view.WindowManager.TRANSIT_TO_FRONT;
import static android.view.WindowManager.fixScale;
import static android.window.TransitionInfo.FLAG_IS_INPUT_METHOD;
import static android.window.TransitionInfo.FLAG_IS_WALLPAPER;
import static android.window.TransitionInfo.FLAG_STARTING_WINDOW_TRANSFER_RECIPIENT;
@@ -167,10 +168,7 @@ public class Transitions implements RemoteCallable<Transitions> {
        ProtoLog.v(ShellProtoLogGroup.WM_SHELL_TRANSITIONS, "addHandler: Remote");

        ContentResolver resolver = mContext.getContentResolver();
        mTransitionAnimationScaleSetting = Settings.Global.getFloat(resolver,
                Settings.Global.TRANSITION_ANIMATION_SCALE,
                mContext.getResources().getFloat(
                        R.dimen.config_appTransitionAnimationDurationScaleDefault));
        mTransitionAnimationScaleSetting = getTransitionAnimationScaleSetting();
        dispatchAnimScaleSetting(mTransitionAnimationScaleSetting);

        resolver.registerContentObserver(
@@ -185,6 +183,12 @@ public class Transitions implements RemoteCallable<Transitions> {
        }
    }

    private float getTransitionAnimationScaleSetting() {
        return fixScale(Settings.Global.getFloat(mContext.getContentResolver(),
                Settings.Global.TRANSITION_ANIMATION_SCALE, mContext.getResources().getFloat(
                                R.dimen.config_appTransitionAnimationDurationScaleDefault)));
    }

    public ShellTransitions asRemoteTransitions() {
        return mImpl;
    }
@@ -963,9 +967,7 @@ public class Transitions implements RemoteCallable<Transitions> {
        @Override
        public void onChange(boolean selfChange) {
            super.onChange(selfChange);
            mTransitionAnimationScaleSetting = Settings.Global.getFloat(
                    mContext.getContentResolver(), Settings.Global.TRANSITION_ANIMATION_SCALE,
                    mTransitionAnimationScaleSetting);
            mTransitionAnimationScaleSetting = getTransitionAnimationScaleSetting();

            mMainExecutor.execute(() -> dispatchAnimScaleSetting(mTransitionAnimationScaleSetting));
        }
+3 −2
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ import android.os.PowerManager
import android.provider.Settings
import android.view.Surface
import android.view.View
import android.view.WindowManager.fixScale
import com.android.internal.jank.InteractionJankMonitor
import com.android.internal.jank.InteractionJankMonitor.CUJ_SCREEN_OFF
import com.android.internal.jank.InteractionJankMonitor.CUJ_SCREEN_OFF_SHOW_AOD
@@ -138,8 +139,8 @@ class UnlockedScreenOffAnimationController @Inject constructor(
    }

    fun updateAnimatorDurationScale() {
        animatorDurationScale =
                globalSettings.getFloat(Settings.Global.ANIMATOR_DURATION_SCALE, 1f)
        animatorDurationScale = fixScale(
                globalSettings.getFloat(Settings.Global.ANIMATOR_DURATION_SCALE, 1f))
    }

    override fun shouldDelayKeyguardShow(): Boolean =
Loading