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