Merge "Fix weather clock clipped when swiping in Lockscreen" into udc-dev
This commit is contained in:
@@ -178,6 +178,20 @@ public class KeyguardClockSwitchController extends ViewController<KeyguardClockS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set alpha directly to mView will clip clock, so we set alpha to clock face instead
|
||||||
|
*/
|
||||||
|
public void setAlpha(float alpha) {
|
||||||
|
ClockController clock = getClock();
|
||||||
|
if (clock != null) {
|
||||||
|
clock.getLargeClock().getView().setAlpha(alpha);
|
||||||
|
clock.getSmallClock().getView().setAlpha(alpha);
|
||||||
|
}
|
||||||
|
if (mStatusArea != null) {
|
||||||
|
mStatusArea.setAlpha(alpha);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Attach the controller to the view it relates to.
|
* Attach the controller to the view it relates to.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -135,4 +135,31 @@ public class KeyguardStatusView extends GridLayout {
|
|||||||
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
||||||
Trace.endSection();
|
Trace.endSection();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clock content will be clipped when goes beyond bounds,
|
||||||
|
* so we setAlpha for all views except clock
|
||||||
|
*/
|
||||||
|
public void setAlpha(float alpha, boolean excludeClock) {
|
||||||
|
if (!excludeClock) {
|
||||||
|
setAlpha(alpha);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (alpha == 1 || alpha == 0) {
|
||||||
|
setAlpha(alpha);
|
||||||
|
}
|
||||||
|
for (int i = 0; i < getChildCount(); i++) {
|
||||||
|
View child = getChildAt(i);
|
||||||
|
if (child == mStatusViewContainer) {
|
||||||
|
for (int j = 0; j < mStatusViewContainer.getChildCount(); j++) {
|
||||||
|
View innerChild = mStatusViewContainer.getChildAt(j);
|
||||||
|
if (innerChild != mClockView) {
|
||||||
|
innerChild.setAlpha(alpha);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
child.setAlpha(alpha);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -180,7 +180,8 @@ public class KeyguardStatusViewController extends ViewController<KeyguardStatusV
|
|||||||
*/
|
*/
|
||||||
public void setAlpha(float alpha) {
|
public void setAlpha(float alpha) {
|
||||||
if (!mKeyguardVisibilityHelper.isVisibilityAnimating()) {
|
if (!mKeyguardVisibilityHelper.isVisibilityAnimating()) {
|
||||||
mView.setAlpha(alpha);
|
mView.setAlpha(alpha, true);
|
||||||
|
mKeyguardClockSwitchController.setAlpha(alpha);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -134,6 +134,7 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase {
|
|||||||
|
|
||||||
private KeyguardClockSwitchController mController;
|
private KeyguardClockSwitchController mController;
|
||||||
private View mSliceView;
|
private View mSliceView;
|
||||||
|
private LinearLayout mStatusArea;
|
||||||
private FakeExecutor mExecutor;
|
private FakeExecutor mExecutor;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
@@ -195,8 +196,8 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase {
|
|||||||
|
|
||||||
mSliceView = new View(getContext());
|
mSliceView = new View(getContext());
|
||||||
when(mView.findViewById(R.id.keyguard_slice_view)).thenReturn(mSliceView);
|
when(mView.findViewById(R.id.keyguard_slice_view)).thenReturn(mSliceView);
|
||||||
when(mView.findViewById(R.id.keyguard_status_area)).thenReturn(
|
mStatusArea = new LinearLayout(getContext());
|
||||||
new LinearLayout(getContext()));
|
when(mView.findViewById(R.id.keyguard_status_area)).thenReturn(mStatusArea);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -401,6 +402,15 @@ public class KeyguardClockSwitchControllerTest extends SysuiTestCase {
|
|||||||
assertNull(mController.getClock());
|
assertNull(mController.getClock());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSetAlpha_setClockAlphaForCLockFace() {
|
||||||
|
mController.onViewAttached();
|
||||||
|
mController.setAlpha(0.5f);
|
||||||
|
verify(mLargeClockView).setAlpha(0.5f);
|
||||||
|
verify(mSmallClockView).setAlpha(0.5f);
|
||||||
|
assertEquals(0.5f, mStatusArea.getAlpha(), 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
private void verifyAttachment(VerificationMode times) {
|
private void verifyAttachment(VerificationMode times) {
|
||||||
verify(mClockRegistry, times).registerClockChangeListener(
|
verify(mClockRegistry, times).registerClockChangeListener(
|
||||||
any(ClockRegistry.ClockChangeListener.class));
|
any(ClockRegistry.ClockChangeListener.class));
|
||||||
|
|||||||
@@ -24,6 +24,8 @@ class KeyguardStatusViewTest : SysuiTestCase() {
|
|||||||
get() = keyguardStatusView.findViewById(R.id.status_view_media_container)
|
get() = keyguardStatusView.findViewById(R.id.status_view_media_container)
|
||||||
private val statusViewContainer: ViewGroup
|
private val statusViewContainer: ViewGroup
|
||||||
get() = keyguardStatusView.findViewById(R.id.status_view_container)
|
get() = keyguardStatusView.findViewById(R.id.status_view_container)
|
||||||
|
private val clockView: ViewGroup
|
||||||
|
get() = keyguardStatusView.findViewById(R.id.keyguard_clock_container)
|
||||||
private val childrenExcludingMedia
|
private val childrenExcludingMedia
|
||||||
get() = statusViewContainer.children.filter { it != mediaView }
|
get() = statusViewContainer.children.filter { it != mediaView }
|
||||||
|
|
||||||
@@ -56,4 +58,12 @@ class KeyguardStatusViewTest : SysuiTestCase() {
|
|||||||
assertThat(it.translationY).isEqualTo(translationY)
|
assertThat(it.translationY).isEqualTo(translationY)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun setAlphaExcludeClock() {
|
||||||
|
keyguardStatusView.setAlpha(0.5f, /* excludeClock= */true)
|
||||||
|
assertThat(statusViewContainer.alpha).isNotEqualTo(0.5f)
|
||||||
|
assertThat(mediaView.alpha).isEqualTo(0.5f)
|
||||||
|
assertThat(clockView.alpha).isNotEqualTo(0.5f)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user