1 /* 2 * Copyright (C) 2023 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.tools.traces.wm 18 19 enum class WindowingMode(val value: Int) { 20 /** Windowing mode is currently not defined. */ 21 WINDOWING_MODE_UNDEFINED(0), 22 23 /** Occupies the full area of the screen or the parent container. */ 24 WINDOWING_MODE_FULLSCREEN(1), 25 26 /** Always on-top (always visible). of other siblings in its parent container. */ 27 WINDOWING_MODE_PINNED(2), 28 29 /** Can be freely resized within its parent container. */ 30 WINDOWING_MODE_FREEFORM(5), 31 32 /** Generic multi-window with no presentation attribution from the window manager. */ 33 WINDOWING_MODE_MULTI_WINDOW(6); 34 35 companion object { fromIntnull36 fun fromInt(value: Int) = 37 values().firstOrNull { it.value == value } 38 ?: error("No valid windowing mode for id $value") 39 } 40 } 41