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:
Lucas Silva
2023-03-09 17:52:29 +00:00
committed by Automerger Merge Worker
2 changed files with 2 additions and 22 deletions

View File

@@ -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);

View File

@@ -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();
}
}