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.statusbar.chips.ui.model 18 19 import android.view.View 20 import com.android.systemui.common.shared.model.Icon 21 22 /** Model representing the display of an ongoing activity as a chip in the status bar. */ 23 sealed class OngoingActivityChipModel { 24 /** This chip shouldn't be shown. */ 25 data object Hidden : OngoingActivityChipModel() 26 27 /** This chip should be shown with the given information. */ 28 data class Shown( 29 /** The icon to show on the chip. */ 30 val icon: Icon, 31 /** 32 * The time this event started, used to show the timer. 33 * 34 * This time should be relative to 35 * [com.android.systemui.util.time.SystemClock.elapsedRealtime], *not* 36 * [com.android.systemui.util.time.SystemClock.currentTimeMillis] because the 37 * [ChipChronometer] is based off of elapsed realtime. See 38 * [android.widget.Chronometer.setBase]. 39 */ 40 val startTimeMs: Long, 41 /** Listener method to invoke when this chip is clicked. */ 42 val onClickListener: View.OnClickListener, 43 ) : OngoingActivityChipModel() 44 } 45