1 /* 2 * Copyright 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 androidx.core.telecom.test.ui.calling 18 19 import android.net.Uri 20 import androidx.core.telecom.test.services.CallState 21 import androidx.core.telecom.test.services.CallType 22 import androidx.core.telecom.test.services.Direction 23 24 /** Defines valid call state transitions */ 25 enum class CallStateTransition { 26 ANSWER, 27 HOLD, 28 UNHOLD, 29 NONE, 30 DISCONNECT 31 } 32 33 /** UI state and callback container for a Call */ 34 data class CallUiState( 35 val id: Int, 36 val name: String, 37 val photo: Uri?, 38 val number: String, 39 val state: CallState, 40 val validTransition: CallStateTransition, 41 val direction: Direction, 42 val callType: CallType, 43 val onStateChanged: (transition: CallStateTransition) -> Unit, 44 val meetingSummaryUiState: MeetingSummaryUiState, 45 val participantUiState: ParticipantExtensionUiState?, 46 val localCallSilenceUiState: LocalCallSilenceExtensionUiState?, 47 val callIconUiState: CallIconExtensionUiState? 48 ) 49