Minimize API of KeyguardBottomAreaView

As part of the effort to refactor KBAV to a more modern implementation,
this CL minimizes the public API surface of that class.

There are namely three changes:
1. Removal of setCentralSurfaces (this was no longer used inside KBAV)
2. Unification of the four "init" methods into one
3. Making startFinishDozeAnimation private (it was not called from
   outside the class)

Bug: b/235403546
Test: built using make and verified the bottom view is visible on the
lock screen. Does the bouncy animation, opens the home controls view
from that button, shows the song ID, etc.

Change-Id: I7393d357e82a139c3ad83b2f48b0f2dc9a02b93a
This commit is contained in:
Alejandro Nijamkin
2022-07-01 11:06:36 -07:00
parent 91079f446e
commit 262f1f312c
3 changed files with 37 additions and 58 deletions

View File

@@ -89,7 +89,6 @@ public class KeyguardBottomAreaView extends FrameLayout {
private ActivityStarter mActivityStarter;
private KeyguardStateController mKeyguardStateController;
private CentralSurfaces mCentralSurfaces;
private FalsingManager mFalsingManager;
private boolean mDozing;
@@ -139,9 +138,38 @@ public class KeyguardBottomAreaView extends FrameLayout {
super(context, attrs, defStyleAttr, defStyleRes);
}
public void initFrom(KeyguardBottomAreaView oldBottomArea) {
setCentralSurfaces(oldBottomArea.mCentralSurfaces);
/** Initializes the {@link KeyguardBottomAreaView} with the given dependencies */
public void init(
FalsingManager falsingManager,
QuickAccessWalletController controller,
ControlsComponent controlsComponent,
QRCodeScannerController qrCodeScannerController) {
mFalsingManager = falsingManager;
mQuickAccessWalletController = controller;
mQuickAccessWalletController.setupWalletChangeObservers(
mCardRetriever, WALLET_PREFERENCE_CHANGE, DEFAULT_PAYMENT_APP_CHANGE);
mQuickAccessWalletController.updateWalletPreference();
mQuickAccessWalletController.queryWalletCards(mCardRetriever);
updateWalletVisibility();
mControlsComponent = controlsComponent;
mControlsComponent.getControlsListingController().ifPresent(
c -> c.addCallback(mListingCallback));
mQRCodeScannerController = qrCodeScannerController;
mQRCodeScannerController.registerQRCodeScannerChangeObservers(
QRCodeScannerController.DEFAULT_QR_CODE_SCANNER_CHANGE,
QRCodeScannerController.QR_CODE_SCANNER_PREFERENCE_CHANGE);
updateQRCodeButtonVisibility();
updateAffordanceColors();
}
/**
* Initializes this instance of {@link KeyguardBottomAreaView} based on the given instance of
* another {@link KeyguardBottomAreaView}
*/
public void initFrom(KeyguardBottomAreaView oldBottomArea) {
// if it exists, continue to use the original ambient indication container
// instead of the newly inflated one
if (mAmbientIndicationArea != null) {
@@ -268,10 +296,6 @@ public class KeyguardBottomAreaView extends FrameLayout {
updateAffordanceColors();
}
public void setCentralSurfaces(CentralSurfaces centralSurfaces) {
mCentralSurfaces = centralSurfaces;
}
private void updateWalletVisibility() {
if (mDozing
|| mQuickAccessWalletController == null
@@ -332,7 +356,7 @@ public class KeyguardBottomAreaView extends FrameLayout {
return false;
}
public void startFinishDozeAnimation() {
private void startFinishDozeAnimation() {
long delay = 0;
if (mWalletButton.getVisibility() == View.VISIBLE) {
startFinishDozeAnimationElement(mWalletButton, delay);
@@ -415,38 +439,6 @@ public class KeyguardBottomAreaView extends FrameLayout {
return insets;
}
/** Set the falsing manager */
public void setFalsingManager(FalsingManager falsingManager) {
mFalsingManager = falsingManager;
}
/**
* Initialize the wallet feature, only enabling if the feature is enabled within the platform.
*/
public void initWallet(
QuickAccessWalletController controller) {
mQuickAccessWalletController = controller;
mQuickAccessWalletController.setupWalletChangeObservers(
mCardRetriever, WALLET_PREFERENCE_CHANGE, DEFAULT_PAYMENT_APP_CHANGE);
mQuickAccessWalletController.updateWalletPreference();
mQuickAccessWalletController.queryWalletCards(mCardRetriever);
updateWalletVisibility();
updateAffordanceColors();
}
/**
* Initialize the qr code scanner feature, controlled by QRCodeScannerController.
*/
public void initQRCodeScanner(QRCodeScannerController qrCodeScannerController) {
mQRCodeScannerController = qrCodeScannerController;
mQRCodeScannerController.registerQRCodeScannerChangeObservers(
QRCodeScannerController.DEFAULT_QR_CODE_SCANNER_CHANGE,
QRCodeScannerController.QR_CODE_SCANNER_PREFERENCE_CHANGE);
updateQRCodeButtonVisibility();
updateAffordanceColors();
}
private void updateQRCodeButtonVisibility() {
if (mQuickAccessWalletController != null
&& mQuickAccessWalletController.isWalletEnabled()) {
@@ -502,17 +494,6 @@ public class KeyguardBottomAreaView extends FrameLayout {
mQRCodeScannerButton.setBackgroundTintList(bgColor);
}
/**
* Initialize controls via the ControlsComponent
*/
public void initControls(ControlsComponent controlsComponent) {
mControlsComponent = controlsComponent;
mControlsComponent.getControlsListingController().ifPresent(
c -> c.addCallback(mListingCallback));
updateAffordanceColors();
}
private void onWalletClick(View v) {
// More coming here; need to inform the user about how to proceed
if (mFalsingManager.isFalseTap(FalsingManager.LOW_PENALTY)) {

View File

@@ -1118,7 +1118,6 @@ public class NotificationPanelViewController extends PanelViewController {
private void setCentralSurfaces(CentralSurfaces centralSurfaces) {
// TODO: this can be injected.
mCentralSurfaces = centralSurfaces;
mKeyguardBottomArea.setCentralSurfaces(mCentralSurfaces);
}
public void updateResources() {
@@ -1292,11 +1291,11 @@ public class NotificationPanelViewController extends PanelViewController {
}
private void initBottomArea() {
mKeyguardBottomArea.setCentralSurfaces(mCentralSurfaces);
mKeyguardBottomArea.setFalsingManager(mFalsingManager);
mKeyguardBottomArea.initWallet(mQuickAccessWalletController);
mKeyguardBottomArea.initControls(mControlsComponent);
mKeyguardBottomArea.initQRCodeScanner(mQRCodeScannerController);
mKeyguardBottomArea.init(
mFalsingManager,
mQuickAccessWalletController,
mControlsComponent,
mQRCodeScannerController);
}
@VisibleForTesting

View File

@@ -42,7 +42,6 @@ class KeyguardBottomAreaTest : SysuiTestCase() {
mKeyguardBottomArea = LayoutInflater.from(mContext).inflate(
R.layout.keyguard_bottom_area, null, false) as KeyguardBottomAreaView
mKeyguardBottomArea.setCentralSurfaces(mCentralSurfaces)
}
@Test