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

This commit is contained in:
Josh Tsuji
2022-05-23 15:02:17 +00:00
committed by Android (Google) Code Review
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. * Get the index of the currently selected page.
*/ */
int getSelectedPage(); 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 */ /** Interface for launching Intents, which can differ on the lockscreen */

View File

@@ -409,7 +409,19 @@ class KeyguardUnlockAnimationController @Inject constructor(
if (willUnlockWithSmartspaceTransition) { if (willUnlockWithSmartspaceTransition) {
lockscreenSmartspaceBounds = Rect().apply { lockscreenSmartspaceBounds = Rect().apply {
lockscreenSmartspace!!.getBoundsOnScreen(this) 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) 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 setMediaTarget(target: SmartspaceTarget?) {}
override fun getSelectedPage(): Int { return 0; } 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 { override fun getSelectedPage(): Int {
return -1 return -1
} }
override fun getCurrentCardTopPadding(): Int {
return 0
}
}) })
} }
} }