Loading libs/WindowManager/Shell/res/values/config.xml +4 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,10 @@ TODO(b/238217847): This config is temporary until we refactor the base WMComponent. --> <bool name="config_registerShellTaskOrganizerOnInit">true</bool> <!-- Determines whether to register the shell transitions on init. TODO(b/238217847): This config is temporary until we refactor the base WMComponent. --> <bool name="config_registerShellTransitionsOnInit">true</bool> <!-- Animation duration for PIP when entering. --> <integer name="config_pipEnterAnimationDuration">425</integer> Loading libs/WindowManager/Shell/src/com/android/wm/shell/TaskView.java +1 −2 Original line number Diff line number Diff line Loading @@ -41,7 +41,6 @@ import android.window.WindowContainerToken; import android.window.WindowContainerTransaction; import com.android.wm.shell.common.SyncTransactionQueue; import com.android.wm.shell.transition.Transitions; import java.io.PrintWriter; import java.util.concurrent.Executor; Loading Loading @@ -123,7 +122,7 @@ public class TaskView extends SurfaceView implements SurfaceHolder.Callback, /** Until all users are converted, we may have mixed-use (eg. Car). */ private boolean isUsingShellTransitions() { return mTaskViewTransitions != null && Transitions.ENABLE_SHELL_TRANSITIONS; return mTaskViewTransitions != null && mTaskViewTransitions.isEnabled(); } /** Loading libs/WindowManager/Shell/src/com/android/wm/shell/TaskViewTransitions.java +4 −0 Original line number Diff line number Diff line Loading @@ -87,6 +87,10 @@ public class TaskViewTransitions implements Transitions.TransitionHandler { // Note: Don't unregister handler since this is a singleton with lifetime bound to Shell } boolean isEnabled() { return mTransitions.isRegistered(); } /** * Looks through the pending transitions for one matching `taskView`. * @param taskView the pending transition should be for this. Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java +4 −0 Original line number Diff line number Diff line Loading @@ -506,6 +506,10 @@ public abstract class WMShellBaseModule { @ShellMainThread ShellExecutor mainExecutor, @ShellMainThread Handler mainHandler, @ShellAnimationThread ShellExecutor animExecutor) { if (!context.getResources().getBoolean(R.bool.config_registerShellTransitionsOnInit)) { // TODO(b/238217847): Force override shell init if registration is disabled shellInit = new ShellInit(mainExecutor); } return new Transitions(context, shellInit, shellController, organizer, pool, displayController, mainExecutor, mainHandler, animExecutor); } Loading libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java +19 −8 Original line number Diff line number Diff line Loading @@ -122,6 +122,8 @@ public class Transitions implements RemoteCallable<Transitions> { private final ShellController mShellController; private final ShellTransitionImpl mImpl = new ShellTransitionImpl(); private boolean mIsRegistered = false; /** List of possible handlers. Ordered by specificity (eg. tapped back to front). */ private final ArrayList<TransitionHandler> mHandlers = new ArrayList<>(); Loading Loading @@ -163,19 +165,18 @@ public class Transitions implements RemoteCallable<Transitions> { displayController, pool, mainExecutor, mainHandler, animExecutor); mRemoteTransitionHandler = new RemoteTransitionHandler(mMainExecutor); mShellController = shellController; shellInit.addInitCallback(this::onInit, this); } private void onInit() { mShellController.addExternalInterface(KEY_EXTRA_SHELL_SHELL_TRANSITIONS, this::createExternalInterface, this); // The very last handler (0 in the list) should be the default one. mHandlers.add(mDefaultTransitionHandler); ProtoLog.v(ShellProtoLogGroup.WM_SHELL_TRANSITIONS, "addHandler: Default"); // Next lowest priority is remote transitions. mHandlers.add(mRemoteTransitionHandler); ProtoLog.v(ShellProtoLogGroup.WM_SHELL_TRANSITIONS, "addHandler: Remote"); shellInit.addInitCallback(this::onInit, this); } private void onInit() { mShellController.addExternalInterface(KEY_EXTRA_SHELL_SHELL_TRANSITIONS, this::createExternalInterface, this); ContentResolver resolver = mContext.getContentResolver(); mTransitionAnimationScaleSetting = getTransitionAnimationScaleSetting(); Loading @@ -186,13 +187,23 @@ public class Transitions implements RemoteCallable<Transitions> { new SettingsObserver()); if (Transitions.ENABLE_SHELL_TRANSITIONS) { mIsRegistered = true; // Register this transition handler with Core try { mOrganizer.registerTransitionPlayer(mPlayerImpl); } catch (RuntimeException e) { mIsRegistered = false; throw e; } // Pre-load the instance. TransitionMetrics.getInstance(); } } public boolean isRegistered() { return mIsRegistered; } private float getTransitionAnimationScaleSetting() { return fixScale(Settings.Global.getFloat(mContext.getContentResolver(), Settings.Global.TRANSITION_ANIMATION_SCALE, mContext.getResources().getFloat( Loading Loading
libs/WindowManager/Shell/res/values/config.xml +4 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,10 @@ TODO(b/238217847): This config is temporary until we refactor the base WMComponent. --> <bool name="config_registerShellTaskOrganizerOnInit">true</bool> <!-- Determines whether to register the shell transitions on init. TODO(b/238217847): This config is temporary until we refactor the base WMComponent. --> <bool name="config_registerShellTransitionsOnInit">true</bool> <!-- Animation duration for PIP when entering. --> <integer name="config_pipEnterAnimationDuration">425</integer> Loading
libs/WindowManager/Shell/src/com/android/wm/shell/TaskView.java +1 −2 Original line number Diff line number Diff line Loading @@ -41,7 +41,6 @@ import android.window.WindowContainerToken; import android.window.WindowContainerTransaction; import com.android.wm.shell.common.SyncTransactionQueue; import com.android.wm.shell.transition.Transitions; import java.io.PrintWriter; import java.util.concurrent.Executor; Loading Loading @@ -123,7 +122,7 @@ public class TaskView extends SurfaceView implements SurfaceHolder.Callback, /** Until all users are converted, we may have mixed-use (eg. Car). */ private boolean isUsingShellTransitions() { return mTaskViewTransitions != null && Transitions.ENABLE_SHELL_TRANSITIONS; return mTaskViewTransitions != null && mTaskViewTransitions.isEnabled(); } /** Loading
libs/WindowManager/Shell/src/com/android/wm/shell/TaskViewTransitions.java +4 −0 Original line number Diff line number Diff line Loading @@ -87,6 +87,10 @@ public class TaskViewTransitions implements Transitions.TransitionHandler { // Note: Don't unregister handler since this is a singleton with lifetime bound to Shell } boolean isEnabled() { return mTransitions.isRegistered(); } /** * Looks through the pending transitions for one matching `taskView`. * @param taskView the pending transition should be for this. Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java +4 −0 Original line number Diff line number Diff line Loading @@ -506,6 +506,10 @@ public abstract class WMShellBaseModule { @ShellMainThread ShellExecutor mainExecutor, @ShellMainThread Handler mainHandler, @ShellAnimationThread ShellExecutor animExecutor) { if (!context.getResources().getBoolean(R.bool.config_registerShellTransitionsOnInit)) { // TODO(b/238217847): Force override shell init if registration is disabled shellInit = new ShellInit(mainExecutor); } return new Transitions(context, shellInit, shellController, organizer, pool, displayController, mainExecutor, mainHandler, animExecutor); } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/transition/Transitions.java +19 −8 Original line number Diff line number Diff line Loading @@ -122,6 +122,8 @@ public class Transitions implements RemoteCallable<Transitions> { private final ShellController mShellController; private final ShellTransitionImpl mImpl = new ShellTransitionImpl(); private boolean mIsRegistered = false; /** List of possible handlers. Ordered by specificity (eg. tapped back to front). */ private final ArrayList<TransitionHandler> mHandlers = new ArrayList<>(); Loading Loading @@ -163,19 +165,18 @@ public class Transitions implements RemoteCallable<Transitions> { displayController, pool, mainExecutor, mainHandler, animExecutor); mRemoteTransitionHandler = new RemoteTransitionHandler(mMainExecutor); mShellController = shellController; shellInit.addInitCallback(this::onInit, this); } private void onInit() { mShellController.addExternalInterface(KEY_EXTRA_SHELL_SHELL_TRANSITIONS, this::createExternalInterface, this); // The very last handler (0 in the list) should be the default one. mHandlers.add(mDefaultTransitionHandler); ProtoLog.v(ShellProtoLogGroup.WM_SHELL_TRANSITIONS, "addHandler: Default"); // Next lowest priority is remote transitions. mHandlers.add(mRemoteTransitionHandler); ProtoLog.v(ShellProtoLogGroup.WM_SHELL_TRANSITIONS, "addHandler: Remote"); shellInit.addInitCallback(this::onInit, this); } private void onInit() { mShellController.addExternalInterface(KEY_EXTRA_SHELL_SHELL_TRANSITIONS, this::createExternalInterface, this); ContentResolver resolver = mContext.getContentResolver(); mTransitionAnimationScaleSetting = getTransitionAnimationScaleSetting(); Loading @@ -186,13 +187,23 @@ public class Transitions implements RemoteCallable<Transitions> { new SettingsObserver()); if (Transitions.ENABLE_SHELL_TRANSITIONS) { mIsRegistered = true; // Register this transition handler with Core try { mOrganizer.registerTransitionPlayer(mPlayerImpl); } catch (RuntimeException e) { mIsRegistered = false; throw e; } // Pre-load the instance. TransitionMetrics.getInstance(); } } public boolean isRegistered() { return mIsRegistered; } private float getTransitionAnimationScaleSetting() { return fixScale(Settings.Global.getFloat(mContext.getContentResolver(), Settings.Global.TRANSITION_ANIMATION_SCALE, mContext.getResources().getFloat( Loading