Merge "Offset bounds by card top padding to align lockscreen/launcher smartspaces." into tm-dev am: 2274df1efb

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18199686

Change-Id: I592ae1389968e4b721c162d837a510bf3fe00ba8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Josh Tsuji
2022-05-23 15:24:51 +00:00
committed by Automerger Merge Worker
4 changed files with 24 additions and 0 deletions

View File

@@ -134,6 +134,12 @@ public interface BcSmartspaceDataPlugin extends Plugin {
* Get the index of the currently selected page.
*/
int getSelectedPage();
/**
* Return the top padding value from the currently visible card, or 0 if there is no current
* card.
*/
int getCurrentCardTopPadding();
}
/** Interface for launching Intents, which can differ on the lockscreen */

View File

@@ -409,7 +409,19 @@ class KeyguardUnlockAnimationController @Inject constructor(
if (willUnlockWithSmartspaceTransition) {
lockscreenSmartspaceBounds = Rect().apply {
lockscreenSmartspace!!.getBoundsOnScreen(this)
// The smartspace container on the lockscreen has left and top padding to align it
// with other lockscreen content. This padding is inside the bounds on screen, so
// add it to those bounds so that the padding-less launcher smartspace is properly
// aligned.
offset(lockscreenSmartspace!!.paddingLeft, lockscreenSmartspace!!.paddingTop)
// Also offset by the current card's top padding, if it has any. This allows us to
// align the tops of the lockscreen/launcher smartspace cards. Some cards, such as
// the three-line date/weather/alarm card, only have three lines on lockscreen but
// two on launcher.
offset(0, (lockscreenSmartspace
as? BcSmartspaceDataPlugin.SmartspaceView)?.currentCardTopPadding ?: 0)
}
}

View File

@@ -151,6 +151,8 @@ class DreamSmartspaceControllerTest : SysuiTestCase() {
override fun setMediaTarget(target: SmartspaceTarget?) {}
override fun getSelectedPage(): Int { return 0; }
override fun getCurrentCardTopPadding(): Int { return 0; }
}
/**

View File

@@ -603,6 +603,10 @@ class LockscreenSmartspaceControllerTest : SysuiTestCase() {
override fun getSelectedPage(): Int {
return -1
}
override fun getCurrentCardTopPadding(): Int {
return 0
}
})
}
}