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 18 package com.android.systemui.keyguard.ui.view.layout.sections 19 20 import android.view.ViewGroup.LayoutParams.MATCH_PARENT 21 import androidx.constraintlayout.widget.ConstraintSet 22 import androidx.constraintlayout.widget.ConstraintSet.BOTTOM 23 import androidx.constraintlayout.widget.ConstraintSet.END 24 import androidx.constraintlayout.widget.ConstraintSet.MATCH_CONSTRAINT 25 import androidx.constraintlayout.widget.ConstraintSet.PARENT_ID 26 import androidx.constraintlayout.widget.ConstraintSet.START 27 import androidx.constraintlayout.widget.ConstraintSet.TOP 28 import androidx.constraintlayout.widget.ConstraintSet.WRAP_CONTENT 29 import com.android.keyguard.KeyguardUpdateMonitor 30 import com.android.systemui.R 31 import com.android.systemui.keyguard.data.repository.KeyguardSection 32 import javax.inject.Inject 33 34 class DefaultAmbientIndicationAreaSection 35 @Inject 36 constructor(private val keyguardUpdateMonitor: KeyguardUpdateMonitor) : KeyguardSection { 37 override fun apply(constraintSet: ConstraintSet) { 38 constraintSet.apply { 39 constrainWidth(R.id.ambient_indication_container, MATCH_PARENT) 40 41 if (keyguardUpdateMonitor.isUdfpsSupported) { 42 // constrain below udfps and above indication area 43 constrainHeight(R.id.ambient_indication_container, MATCH_CONSTRAINT) 44 connect(R.id.ambient_indication_container, TOP, R.id.lock_icon_view, BOTTOM) 45 connect( 46 R.id.ambient_indication_container, 47 BOTTOM, 48 R.id.keyguard_indication_area, 49 TOP 50 ) 51 connect(R.id.ambient_indication_container, START, PARENT_ID, START) 52 connect(R.id.ambient_indication_container, END, PARENT_ID, END) 53 } else { 54 // constrain above lock icon 55 constrainHeight(R.id.ambient_indication_container, WRAP_CONTENT) 56 connect(R.id.ambient_indication_container, BOTTOM, R.id.lock_icon_view, TOP) 57 connect(R.id.ambient_indication_container, START, PARENT_ID, START) 58 connect(R.id.ambient_indication_container, END, PARENT_ID, END) 59 } 60 } 61 } 62 } 63