1 /* 2 * Copyright (C) 2024 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 com.android.systemui.shade.shared.model 18 19 /** Enumerates all known modes of operation of the shade. */ 20 sealed interface ShadeMode { 21 22 /** 23 * The single or "accordion" shade where the QS and notification parts are in two vertically 24 * stacked panels and the user can swipe up and down to expand or collapse between the two 25 * parts. 26 */ 27 data object Single : ShadeMode 28 29 /** 30 * The split shade where, on large screens and unfolded foldables, the QS and notification parts 31 * are placed side-by-side and expand/collapse as a single panel. 32 */ 33 data object Split : ShadeMode 34 35 /** 36 * The dual shade where the QS and notification parts each have their own independently 37 * expandable/collapsible panel on either side of the large screen / unfolded device or sharing 38 * a space on a small screen or folded device. 39 */ 40 data object Dual : ShadeMode 41 42 companion object { dualnull43 @JvmStatic fun dual(): Dual = Dual 44 } 45 } 46