Merge "Added foldable assets to bp." into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
9a233f9e2e
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