1 /* 2 * Copyright (C) 2024 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file 5 * except in compliance with the License. You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software distributed under the 10 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 * KIND, either express or implied. See the License for the specific language governing 12 * permissions and limitations under the License. 13 */ 14 package com.android.systemui.plugins.clocks 15 16 import android.view.View 17 import com.android.systemui.plugins.annotations.ProtectedInterface 18 import com.android.systemui.plugins.annotations.SimpleProperty 19 20 /** Interface for a specific clock face version rendered by the clock */ 21 @ProtectedInterface 22 interface ClockFaceController { 23 @get:SimpleProperty 24 @Deprecated("Prefer use of layout") 25 /** View that renders the clock face */ 26 val view: View 27 28 @get:SimpleProperty 29 /** Layout specification for this clock */ 30 val layout: ClockFaceLayout 31 32 @get:SimpleProperty 33 /** Determines the way the hosting app should behave when rendering this clock face */ 34 val config: ClockFaceConfig 35 36 @get:SimpleProperty 37 /** Current theme information the clock is using */ 38 val theme: ThemeConfig 39 40 @get:SimpleProperty 41 /** Events specific to this clock face */ 42 val events: ClockFaceEvents 43 44 @get:SimpleProperty 45 /** Triggers for various animations */ 46 val animations: ClockAnimations 47 } 48