summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2023-06-03 02:19:15 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-06-03 02:19:15 +0000
commit1d19aa0dbbcd9ac5475a1567cdebff03844af2dc (patch)
treec23507ec91b085a9843df6f5217d1dc6d0970598
parent9d4cc74a36cae9862206c9a97b5f8423ad3da08c (diff)
parent57d13811659a79243b793197d9a7ecd51e518a32 (diff)
Merge "Fix margins and positioning for the small (implicit) face view." into udc-dev am: 482472ad6a am: 57d1381165
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23542587 Change-Id: I513ec1f8604e117d446e9053db5ad785c125550e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt29
2 files changed, 30 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java b/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java
index f86e2ed6eb91..7f706859abb3 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/AuthContainerView.java
@@ -614,7 +614,11 @@ public class AuthContainerView extends LinearLayout
return ((AuthBiometricFingerprintView) view).isUdfps();
}
if (view instanceof BiometricPromptLayout) {
- return ((BiometricPromptLayout) view).isUdfps();
+ // this will force the prompt to align itself on the edge of the screen
+ // instead of centering (temporary workaround to prevent small implicit view
+ // from breaking due to the way gravity / margins are set in the legacy
+ // AuthPanelController
+ return true;
}
return false;
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt
index e4c4e9aedb56..1dffa80a084f 100644
--- a/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/biometrics/ui/binder/BiometricViewSizeBinder.kt
@@ -19,8 +19,11 @@ package com.android.systemui.biometrics.ui.binder
import android.animation.Animator
import android.animation.AnimatorSet
import android.animation.ValueAnimator
+import android.view.Surface
import android.view.View
import android.view.ViewGroup
+import android.view.WindowInsets
+import android.view.WindowManager
import android.view.accessibility.AccessibilityManager
import android.widget.TextView
import androidx.core.animation.addListener
@@ -52,7 +55,9 @@ object BiometricViewSizeBinder {
panelViewController: AuthPanelController,
jankListener: BiometricJankListener,
) {
- val accessibilityManager = view.context.getSystemService(AccessibilityManager::class.java)!!
+ val windowManager = requireNotNull(view.context.getSystemService(WindowManager::class.java))
+ val accessibilityManager =
+ requireNotNull(view.context.getSystemService(AccessibilityManager::class.java))
fun notifyAccessibilityChanged() {
Utils.notifyAccessibilityContentChanged(accessibilityManager, view)
}
@@ -102,15 +107,26 @@ object BiometricViewSizeBinder {
when {
size.isSmall -> {
iconHolderView.alpha = 1f
+ val bottomInset =
+ windowManager.maximumWindowMetrics.windowInsets
+ .getInsets(WindowInsets.Type.navigationBars())
+ .bottom
iconHolderView.y =
- view.height - iconHolderView.height - iconPadding
+ if (view.isLandscape()) {
+ (view.height - iconHolderView.height - bottomInset) / 2f
+ } else {
+ view.height -
+ iconHolderView.height -
+ iconPadding -
+ bottomInset
+ }
val newHeight =
- iconHolderView.height + 2 * iconPadding.toInt() -
+ iconHolderView.height + (2 * iconPadding.toInt()) -
iconHolderView.paddingTop -
iconHolderView.paddingBottom
panelViewController.updateForContentDimensions(
width,
- newHeight,
+ newHeight + bottomInset,
0, /* animateDurationMs */
)
}
@@ -181,6 +197,11 @@ object BiometricViewSizeBinder {
}
}
+private fun View.isLandscape(): Boolean {
+ val r = context.display.rotation
+ return r == Surface.ROTATION_90 || r == Surface.ROTATION_270
+}
+
private fun TextView.showTextOrHide(forceHide: Boolean = false) {
visibility = if (forceHide || text.isBlank()) View.GONE else View.VISIBLE
}