Merge "Avoid callback leak in ComplicationHostViewController" into tm-qpr-dev am: 0348c776bd
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21907979 Change-Id: I015a97e8664255f643f7cf2d9db8ebbdee5c5775 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -61,9 +61,6 @@ public class ComplicationHostViewController extends ViewController<ConstraintLay
|
||||
@VisibleForTesting
|
||||
boolean mIsAnimationEnabled;
|
||||
|
||||
// Whether dream entry animations are finished.
|
||||
private boolean mEntryAnimationsFinished = false;
|
||||
|
||||
@Inject
|
||||
protected ComplicationHostViewController(
|
||||
@Named(SCOPED_COMPLICATIONS_LAYOUT) ConstraintLayout view,
|
||||
@@ -78,14 +75,6 @@ public class ComplicationHostViewController extends ViewController<ConstraintLay
|
||||
mComplicationCollectionViewModel = viewModel;
|
||||
mDreamOverlayStateController = dreamOverlayStateController;
|
||||
|
||||
mDreamOverlayStateController.addCallback(new DreamOverlayStateController.Callback() {
|
||||
@Override
|
||||
public void onStateChanged() {
|
||||
mEntryAnimationsFinished =
|
||||
mDreamOverlayStateController.areEntryAnimationsFinished();
|
||||
}
|
||||
});
|
||||
|
||||
// Whether animations are enabled.
|
||||
mIsAnimationEnabled = secureSettings.getFloatForUser(
|
||||
Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f, UserHandle.USER_CURRENT) != 0.0f;
|
||||
@@ -159,7 +148,8 @@ public class ComplicationHostViewController extends ViewController<ConstraintLay
|
||||
|
||||
// Complications to be added before dream entry animations are finished are set
|
||||
// to invisible and are animated in.
|
||||
if (!mEntryAnimationsFinished && mIsAnimationEnabled) {
|
||||
if (!mDreamOverlayStateController.areEntryAnimationsFinished()
|
||||
&& mIsAnimationEnabled) {
|
||||
view.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
mComplications.put(id, viewHolder);
|
||||
|
||||
@@ -92,9 +92,6 @@ public class ComplicationHostViewControllerTest extends SysuiTestCase {
|
||||
@Captor
|
||||
private ArgumentCaptor<Observer<Collection<ComplicationViewModel>>> mObserverCaptor;
|
||||
|
||||
@Captor
|
||||
private ArgumentCaptor<DreamOverlayStateController.Callback> mCallbackCaptor;
|
||||
|
||||
@Complication.Category
|
||||
static final int COMPLICATION_CATEGORY = Complication.CATEGORY_SYSTEM;
|
||||
|
||||
@@ -189,8 +186,6 @@ public class ComplicationHostViewControllerTest extends SysuiTestCase {
|
||||
|
||||
// Dream entry animations finished.
|
||||
when(mDreamOverlayStateController.areEntryAnimationsFinished()).thenReturn(true);
|
||||
final DreamOverlayStateController.Callback stateCallback = captureOverlayStateCallback();
|
||||
stateCallback.onStateChanged();
|
||||
|
||||
// Add a complication after entry animations are finished.
|
||||
final HashSet<ComplicationViewModel> complications = new HashSet<>(
|
||||
@@ -223,9 +218,4 @@ public class ComplicationHostViewControllerTest extends SysuiTestCase {
|
||||
mObserverCaptor.capture());
|
||||
return mObserverCaptor.getValue();
|
||||
}
|
||||
|
||||
private DreamOverlayStateController.Callback captureOverlayStateCallback() {
|
||||
verify(mDreamOverlayStateController).addCallback(mCallbackCaptor.capture());
|
||||
return mCallbackCaptor.getValue();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user