10b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi/* 20b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * Copyright (C) 2016 The Android Open Source Project 30b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * 40b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * Licensed under the Apache License, Version 2.0 (the "License"); 50b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * you may not use this file except in compliance with the License. 60b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * You may obtain a copy of the License at 70b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * 80b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * http://www.apache.org/licenses/LICENSE-2.0 90b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * 100b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * Unless required by applicable law or agreed to in writing, software 110b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * distributed under the License is distributed on an "AS IS" BASIS, 120b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * See the License for the specific language governing permissions and 140b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * limitations under the License 150b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi */ 160b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi 170b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggipackage com.android.server.wm; 180b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi 190b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggiimport static android.app.ActivityManager.StackId.DOCKED_STACK_ID; 200b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggiimport static android.app.ActivityManager.StackId.FREEFORM_WORKSPACE_STACK_ID; 210b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggiimport static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID; 220b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggiimport static android.app.ActivityManager.StackId.HOME_STACK_ID; 230b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi 240b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi/** 250b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * Describes the mode in which a window is drag resizing. 260b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi */ 270b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggiclass DragResizeMode { 280b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi 290b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi /** 300b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * Freeform mode: Client surface is fullscreen, and client is responsible to draw window at 310b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * the correct position. 320b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi */ 330b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi static final int DRAG_RESIZE_MODE_FREEFORM = 0; 340b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi 350b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi /** 360b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * Mode for resizing the docked (and adjacent) stack: Client surface is fullscreen, but window 370b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi * is drawn at (0, 0), window manager is responsible for positioning the surface when draging. 380b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi */ 390b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi static final int DRAG_RESIZE_MODE_DOCKED_DIVIDER = 1; 400b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi 410b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi static boolean isModeAllowedForStack(int stackId, int mode) { 420b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi switch (mode) { 430b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi case DRAG_RESIZE_MODE_FREEFORM: 440b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi return stackId == FREEFORM_WORKSPACE_STACK_ID; 450b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi case DRAG_RESIZE_MODE_DOCKED_DIVIDER: 460b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi return stackId == DOCKED_STACK_ID 470b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi || stackId == FULLSCREEN_WORKSPACE_STACK_ID 480b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi || stackId == HOME_STACK_ID; 490b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi default: 500b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi return false; 510b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi } 520b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi } 530b46f3c72c324bc9b8890ed9b81951bbeec70fddJorim Jaggi} 54