Loading core/java/android/app/Activity.java +4 −4 Original line number Diff line number Diff line Loading @@ -3783,14 +3783,14 @@ public class Activity extends ContextThemeWrapper /** * Moves the activity from {@link WindowConfiguration#WINDOWING_MODE_FREEFORM} windowing mode to * {@link WindowConfiguration#WINDOWING_MODE_FULLSCREEN}. * Moves the activity between {@link WindowConfiguration#WINDOWING_MODE_FREEFORM} windowing mode * and {@link WindowConfiguration#WINDOWING_MODE_FULLSCREEN}. * * @hide */ @Override public void exitFreeformMode() throws RemoteException { ActivityTaskManager.getService().exitFreeformMode(mToken); public void toggleFreeformWindowingMode() throws RemoteException { ActivityTaskManager.getService().toggleFreeformWindowingMode(mToken); } /** Loading core/java/android/app/IActivityTaskManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -215,7 +215,7 @@ interface IActivityTaskManager { void registerTaskStackListener(in ITaskStackListener listener); void unregisterTaskStackListener(in ITaskStackListener listener); void setTaskResizeable(int taskId, int resizeableMode); void exitFreeformMode(in IBinder token); void toggleFreeformWindowingMode(in IBinder token); void resizeTask(int taskId, in Rect bounds, int resizeMode); void moveStackToDisplay(int stackId, int displayId); void removeStack(int stackId); Loading core/java/android/view/Window.java +3 −4 Original line number Diff line number Diff line Loading @@ -622,11 +622,10 @@ public abstract class Window { /** @hide */ public interface WindowControllerCallback { /** * Moves the activity from * Moves the activity from {@link WindowConfiguration#WINDOWING_MODE_FREEFORM} windowing * mode to {@link WindowConfiguration#WINDOWING_MODE_FULLSCREEN}. * Moves the activity between {@link WindowConfiguration#WINDOWING_MODE_FREEFORM} windowing * mode and {@link WindowConfiguration#WINDOWING_MODE_FULLSCREEN}. */ void exitFreeformMode() throws RemoteException; void toggleFreeformWindowingMode() throws RemoteException; /** * Puts the activity in picture-in-picture mode if the activity supports. Loading core/java/com/android/internal/widget/DecorCaptionView.java +4 −4 Original line number Diff line number Diff line Loading @@ -329,13 +329,13 @@ public class DecorCaptionView extends ViewGroup implements View.OnTouchListener, } /** * Maximize the window by moving it to the maximized workspace stack. * Maximize or restore the window by moving it to the maximized or freeform workspace stack. **/ private void maximizeWindow() { private void toggleFreeformWindowingMode() { Window.WindowControllerCallback callback = mOwner.getWindowControllerCallback(); if (callback != null) { try { callback.exitFreeformMode(); callback.toggleFreeformWindowingMode(); } catch (RemoteException ex) { Log.e(TAG, "Cannot change task workspace."); } Loading Loading @@ -395,7 +395,7 @@ public class DecorCaptionView extends ViewGroup implements View.OnTouchListener, @Override public boolean onSingleTapUp(MotionEvent e) { if (mClickTarget == mMaximize) { maximizeWindow(); toggleFreeformWindowingMode(); } else if (mClickTarget == mClose) { mOwner.dispatchOnWindowDismissed( true /*finishTask*/, false /*suppressWindowTransition*/); Loading services/core/java/com/android/server/wm/ActivityTaskManagerService.java +17 −6 Original line number Diff line number Diff line Loading @@ -3202,23 +3202,34 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } @Override public void exitFreeformMode(IBinder token) { public void toggleFreeformWindowingMode(IBinder token) { synchronized (mGlobalLock) { long ident = Binder.clearCallingIdentity(); try { final ActivityRecord r = ActivityRecord.forTokenLocked(token); if (r == null) { throw new IllegalArgumentException( "exitFreeformMode: No activity record matching token=" + token); "toggleFreeformWindowingMode: No activity record matching token=" + token); } final ActivityStack stack = r.getActivityStack(); if (stack == null || !stack.inFreeformWindowingMode()) { throw new IllegalStateException( "exitFreeformMode: You can only go fullscreen from freeform."); if (stack == null) { throw new IllegalStateException("toggleFreeformWindowingMode: the activity " + "doesn't have a stack"); } if (!stack.inFreeformWindowingMode() && stack.getWindowingMode() != WINDOWING_MODE_FULLSCREEN) { throw new IllegalStateException("toggleFreeformWindowingMode: You can only " + "toggle between fullscreen and freeform."); } if (stack.inFreeformWindowingMode()) { stack.setWindowingMode(WINDOWING_MODE_FULLSCREEN); } else { stack.setWindowingMode(WINDOWING_MODE_FREEFORM); } } finally { Binder.restoreCallingIdentity(ident); } Loading Loading
core/java/android/app/Activity.java +4 −4 Original line number Diff line number Diff line Loading @@ -3783,14 +3783,14 @@ public class Activity extends ContextThemeWrapper /** * Moves the activity from {@link WindowConfiguration#WINDOWING_MODE_FREEFORM} windowing mode to * {@link WindowConfiguration#WINDOWING_MODE_FULLSCREEN}. * Moves the activity between {@link WindowConfiguration#WINDOWING_MODE_FREEFORM} windowing mode * and {@link WindowConfiguration#WINDOWING_MODE_FULLSCREEN}. * * @hide */ @Override public void exitFreeformMode() throws RemoteException { ActivityTaskManager.getService().exitFreeformMode(mToken); public void toggleFreeformWindowingMode() throws RemoteException { ActivityTaskManager.getService().toggleFreeformWindowingMode(mToken); } /** Loading
core/java/android/app/IActivityTaskManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -215,7 +215,7 @@ interface IActivityTaskManager { void registerTaskStackListener(in ITaskStackListener listener); void unregisterTaskStackListener(in ITaskStackListener listener); void setTaskResizeable(int taskId, int resizeableMode); void exitFreeformMode(in IBinder token); void toggleFreeformWindowingMode(in IBinder token); void resizeTask(int taskId, in Rect bounds, int resizeMode); void moveStackToDisplay(int stackId, int displayId); void removeStack(int stackId); Loading
core/java/android/view/Window.java +3 −4 Original line number Diff line number Diff line Loading @@ -622,11 +622,10 @@ public abstract class Window { /** @hide */ public interface WindowControllerCallback { /** * Moves the activity from * Moves the activity from {@link WindowConfiguration#WINDOWING_MODE_FREEFORM} windowing * mode to {@link WindowConfiguration#WINDOWING_MODE_FULLSCREEN}. * Moves the activity between {@link WindowConfiguration#WINDOWING_MODE_FREEFORM} windowing * mode and {@link WindowConfiguration#WINDOWING_MODE_FULLSCREEN}. */ void exitFreeformMode() throws RemoteException; void toggleFreeformWindowingMode() throws RemoteException; /** * Puts the activity in picture-in-picture mode if the activity supports. Loading
core/java/com/android/internal/widget/DecorCaptionView.java +4 −4 Original line number Diff line number Diff line Loading @@ -329,13 +329,13 @@ public class DecorCaptionView extends ViewGroup implements View.OnTouchListener, } /** * Maximize the window by moving it to the maximized workspace stack. * Maximize or restore the window by moving it to the maximized or freeform workspace stack. **/ private void maximizeWindow() { private void toggleFreeformWindowingMode() { Window.WindowControllerCallback callback = mOwner.getWindowControllerCallback(); if (callback != null) { try { callback.exitFreeformMode(); callback.toggleFreeformWindowingMode(); } catch (RemoteException ex) { Log.e(TAG, "Cannot change task workspace."); } Loading Loading @@ -395,7 +395,7 @@ public class DecorCaptionView extends ViewGroup implements View.OnTouchListener, @Override public boolean onSingleTapUp(MotionEvent e) { if (mClickTarget == mMaximize) { maximizeWindow(); toggleFreeformWindowingMode(); } else if (mClickTarget == mClose) { mOwner.dispatchOnWindowDismissed( true /*finishTask*/, false /*suppressWindowTransition*/); Loading
services/core/java/com/android/server/wm/ActivityTaskManagerService.java +17 −6 Original line number Diff line number Diff line Loading @@ -3202,23 +3202,34 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } @Override public void exitFreeformMode(IBinder token) { public void toggleFreeformWindowingMode(IBinder token) { synchronized (mGlobalLock) { long ident = Binder.clearCallingIdentity(); try { final ActivityRecord r = ActivityRecord.forTokenLocked(token); if (r == null) { throw new IllegalArgumentException( "exitFreeformMode: No activity record matching token=" + token); "toggleFreeformWindowingMode: No activity record matching token=" + token); } final ActivityStack stack = r.getActivityStack(); if (stack == null || !stack.inFreeformWindowingMode()) { throw new IllegalStateException( "exitFreeformMode: You can only go fullscreen from freeform."); if (stack == null) { throw new IllegalStateException("toggleFreeformWindowingMode: the activity " + "doesn't have a stack"); } if (!stack.inFreeformWindowingMode() && stack.getWindowingMode() != WINDOWING_MODE_FULLSCREEN) { throw new IllegalStateException("toggleFreeformWindowingMode: You can only " + "toggle between fullscreen and freeform."); } if (stack.inFreeformWindowingMode()) { stack.setWindowingMode(WINDOWING_MODE_FULLSCREEN); } else { stack.setWindowingMode(WINDOWING_MODE_FREEFORM); } } finally { Binder.restoreCallingIdentity(ident); } Loading