Merge "Added foldable assets to bp." into tm-qpr-dev am: 9a233f9e2e am: ce4034cd67
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20351041 Change-Id: I7d2bfe146b0a93ed7b397f382fa187dfaf98ca46 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -18,6 +18,7 @@ package com.android.systemui.biometrics
|
||||
|
||||
import android.annotation.RawRes
|
||||
import android.content.Context
|
||||
import android.content.res.Configuration
|
||||
import android.hardware.fingerprint.FingerprintManager
|
||||
import android.view.DisplayInfo
|
||||
import android.view.Surface
|
||||
@@ -33,15 +34,19 @@ import com.android.systemui.biometrics.AuthBiometricView.STATE_ERROR
|
||||
import com.android.systemui.biometrics.AuthBiometricView.STATE_HELP
|
||||
import com.android.systemui.biometrics.AuthBiometricView.STATE_IDLE
|
||||
import com.android.systemui.biometrics.AuthBiometricView.STATE_PENDING_CONFIRMATION
|
||||
import com.android.systemui.unfold.compat.ScreenSizeFoldProvider
|
||||
import com.android.systemui.unfold.updates.FoldProvider
|
||||
|
||||
/** Fingerprint only icon animator for BiometricPrompt. */
|
||||
open class AuthBiometricFingerprintIconController(
|
||||
context: Context,
|
||||
iconView: LottieAnimationView,
|
||||
protected val iconViewOverlay: LottieAnimationView
|
||||
) : AuthIconController(context, iconView) {
|
||||
) : AuthIconController(context, iconView), FoldProvider.FoldCallback {
|
||||
|
||||
private var isDeviceFolded: Boolean = false
|
||||
private val isSideFps: Boolean
|
||||
private val screenSizeFoldProvider: ScreenSizeFoldProvider = ScreenSizeFoldProvider(context)
|
||||
var iconLayoutParamSize: Pair<Int, Int> = Pair(1, 1)
|
||||
set(value) {
|
||||
if (field == value) {
|
||||
@@ -74,6 +79,8 @@ open class AuthBiometricFingerprintIconController(
|
||||
if (isSideFps && displayInfo.rotation == Surface.ROTATION_180) {
|
||||
iconView.rotation = 180f
|
||||
}
|
||||
screenSizeFoldProvider.registerCallback(this, context.mainExecutor)
|
||||
screenSizeFoldProvider.onConfigurationChange(context.resources.configuration)
|
||||
}
|
||||
|
||||
private fun updateIconSideFps(@BiometricState lastState: Int, @BiometricState newState: Int) {
|
||||
@@ -124,6 +131,10 @@ open class AuthBiometricFingerprintIconController(
|
||||
LottieColorUtils.applyDynamicColors(context, iconView)
|
||||
}
|
||||
|
||||
override fun onConfigurationChanged(newConfig: Configuration) {
|
||||
screenSizeFoldProvider.onConfigurationChange(newConfig)
|
||||
}
|
||||
|
||||
override fun updateIcon(@BiometricState lastState: Int, @BiometricState newState: Int) {
|
||||
if (isSideFps) {
|
||||
updateIconSideFps(lastState, newState)
|
||||
@@ -191,11 +202,21 @@ open class AuthBiometricFingerprintIconController(
|
||||
|
||||
@RawRes
|
||||
private fun getSideFpsAnimationForTransition(rotation: Int): Int = when (rotation) {
|
||||
Surface.ROTATION_0 -> R.raw.biometricprompt_landscape_base
|
||||
Surface.ROTATION_90 -> R.raw.biometricprompt_portrait_base_topleft
|
||||
Surface.ROTATION_180 -> R.raw.biometricprompt_landscape_base
|
||||
Surface.ROTATION_270 -> R.raw.biometricprompt_portrait_base_bottomright
|
||||
else -> R.raw.biometricprompt_landscape_base
|
||||
Surface.ROTATION_90 -> if (isDeviceFolded) {
|
||||
R.raw.biometricprompt_folded_base_topleft
|
||||
} else {
|
||||
R.raw.biometricprompt_portrait_base_topleft
|
||||
}
|
||||
Surface.ROTATION_270 -> if (isDeviceFolded) {
|
||||
R.raw.biometricprompt_folded_base_bottomright
|
||||
} else {
|
||||
R.raw.biometricprompt_portrait_base_bottomright
|
||||
}
|
||||
else -> if (isDeviceFolded) {
|
||||
R.raw.biometricprompt_folded_base_default
|
||||
} else {
|
||||
R.raw.biometricprompt_landscape_base
|
||||
}
|
||||
}
|
||||
|
||||
@RawRes
|
||||
@@ -273,4 +294,8 @@ open class AuthBiometricFingerprintIconController(
|
||||
}
|
||||
else -> null
|
||||
}
|
||||
|
||||
override fun onFoldUpdated(isFolded: Boolean) {
|
||||
isDeviceFolded = isFolded
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.android.systemui.biometrics
|
||||
|
||||
import android.annotation.DrawableRes
|
||||
import android.content.Context
|
||||
import android.content.res.Configuration
|
||||
import android.graphics.drawable.Animatable2
|
||||
import android.graphics.drawable.AnimatedVectorDrawable
|
||||
import android.graphics.drawable.Drawable
|
||||
@@ -91,4 +92,6 @@ abstract class AuthIconController(
|
||||
|
||||
/** Called during [onAnimationEnd] if the controller is not [deactivated]. */
|
||||
open fun handleAnimationEnd(drawable: Drawable) {}
|
||||
|
||||
open fun onConfigurationChanged(newConfig: Configuration) {}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.StringRes;
|
||||
import android.content.Context;
|
||||
import android.content.res.Configuration;
|
||||
import android.hardware.biometrics.BiometricAuthenticator.Modality;
|
||||
import android.hardware.biometrics.BiometricPrompt;
|
||||
import android.hardware.biometrics.PromptInfo;
|
||||
@@ -653,6 +654,12 @@ public abstract class AuthBiometricView extends LinearLayout {
|
||||
Utils.notifyAccessibilityContentChanged(mAccessibilityManager, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onConfigurationChanged(Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
mIconController.onConfigurationChanged(newConfig);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onFinishInflate() {
|
||||
super.onFinishInflate();
|
||||
|
||||
Reference in New Issue
Block a user