Loading packages/SystemUI/src/com/android/systemui/dreams/complication/ComplicationHostViewController.java +13 −2 Original line number Diff line number Diff line Loading @@ -22,14 +22,18 @@ import static com.android.systemui.dreams.complication.dagger.ComplicationModule import android.graphics.Rect; import android.graphics.Region; import android.os.Debug; import android.os.UserHandle; import android.provider.Settings; import android.util.Log; import android.view.View; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.lifecycle.LifecycleOwner; import com.android.internal.annotations.VisibleForTesting; import com.android.systemui.dreams.DreamOverlayStateController; import com.android.systemui.util.ViewController; import com.android.systemui.util.settings.SecureSettings; import java.util.Collection; import java.util.HashMap; Loading @@ -54,6 +58,8 @@ public class ComplicationHostViewController extends ViewController<ConstraintLay private final LifecycleOwner mLifecycleOwner; private final ComplicationCollectionViewModel mComplicationCollectionViewModel; private final HashMap<ComplicationId, Complication.ViewHolder> mComplications = new HashMap<>(); @VisibleForTesting boolean mIsAnimationEnabled; // Whether dream entry animations are finished. private boolean mEntryAnimationsFinished = false; Loading @@ -64,7 +70,8 @@ public class ComplicationHostViewController extends ViewController<ConstraintLay ComplicationLayoutEngine layoutEngine, DreamOverlayStateController dreamOverlayStateController, LifecycleOwner lifecycleOwner, @Named(SCOPED_COMPLICATIONS_MODEL) ComplicationCollectionViewModel viewModel) { @Named(SCOPED_COMPLICATIONS_MODEL) ComplicationCollectionViewModel viewModel, SecureSettings secureSettings) { super(view); mLayoutEngine = layoutEngine; mLifecycleOwner = lifecycleOwner; Loading @@ -78,6 +85,10 @@ public class ComplicationHostViewController extends ViewController<ConstraintLay mDreamOverlayStateController.areEntryAnimationsFinished(); } }); // Whether animations are enabled. mIsAnimationEnabled = secureSettings.getFloatForUser( Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f, UserHandle.USER_CURRENT) != 0.0f; } @Override Loading Loading @@ -148,7 +159,7 @@ 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) { if (!mEntryAnimationsFinished && mIsAnimationEnabled) { view.setVisibility(View.INVISIBLE); } mComplications.put(id, viewHolder); Loading packages/SystemUI/tests/src/com/android/systemui/dreams/complication/ComplicationHostViewControllerTest.java +31 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.os.UserHandle; import android.provider.Settings; import android.testing.AndroidTestingRunner; import android.view.View; Loading @@ -33,6 +35,8 @@ import androidx.test.filters.SmallTest; import com.android.systemui.SysuiTestCase; import com.android.systemui.dreams.DreamOverlayStateController; import com.android.systemui.util.settings.FakeSettings; import com.android.systemui.util.settings.SecureSettings; import org.junit.Before; import org.junit.Test; Loading Loading @@ -96,6 +100,10 @@ public class ComplicationHostViewControllerTest extends SysuiTestCase { private ComplicationHostViewController mController; private SecureSettings mSecureSettings; private static final int CURRENT_USER_ID = UserHandle.USER_SYSTEM; @Before public void setup() { MockitoAnnotations.initMocks(this); Loading @@ -108,12 +116,17 @@ public class ComplicationHostViewControllerTest extends SysuiTestCase { when(mViewHolder.getLayoutParams()).thenReturn(mComplicationLayoutParams); when(mComplicationView.getParent()).thenReturn(mComplicationHostView); mSecureSettings = new FakeSettings(); mSecureSettings.putFloatForUser( Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f, CURRENT_USER_ID); mController = new ComplicationHostViewController( mComplicationHostView, mLayoutEngine, mDreamOverlayStateController, mLifecycleOwner, mViewModel); mViewModel, mSecureSettings); mController.init(); } Loading Loading @@ -188,6 +201,23 @@ public class ComplicationHostViewControllerTest extends SysuiTestCase { verify(mComplicationView, never()).setVisibility(View.INVISIBLE); } @Test public void testAnimationsDisabled_ComplicationsNeverSetToInvisible() { //Disable animations mController.mIsAnimationEnabled = false; final Observer<Collection<ComplicationViewModel>> observer = captureComplicationViewModelsObserver(); // Add a complication before entry animations are finished. final HashSet<ComplicationViewModel> complications = new HashSet<>( Collections.singletonList(mComplicationViewModel)); observer.onChanged(complications); // The complication view should not be set to invisible. verify(mComplicationView, never()).setVisibility(View.INVISIBLE); } private Observer<Collection<ComplicationViewModel>> captureComplicationViewModelsObserver() { verify(mComplicationViewModelLiveData).observe(eq(mLifecycleOwner), mObserverCaptor.capture()); Loading Loading
packages/SystemUI/src/com/android/systemui/dreams/complication/ComplicationHostViewController.java +13 −2 Original line number Diff line number Diff line Loading @@ -22,14 +22,18 @@ import static com.android.systemui.dreams.complication.dagger.ComplicationModule import android.graphics.Rect; import android.graphics.Region; import android.os.Debug; import android.os.UserHandle; import android.provider.Settings; import android.util.Log; import android.view.View; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.lifecycle.LifecycleOwner; import com.android.internal.annotations.VisibleForTesting; import com.android.systemui.dreams.DreamOverlayStateController; import com.android.systemui.util.ViewController; import com.android.systemui.util.settings.SecureSettings; import java.util.Collection; import java.util.HashMap; Loading @@ -54,6 +58,8 @@ public class ComplicationHostViewController extends ViewController<ConstraintLay private final LifecycleOwner mLifecycleOwner; private final ComplicationCollectionViewModel mComplicationCollectionViewModel; private final HashMap<ComplicationId, Complication.ViewHolder> mComplications = new HashMap<>(); @VisibleForTesting boolean mIsAnimationEnabled; // Whether dream entry animations are finished. private boolean mEntryAnimationsFinished = false; Loading @@ -64,7 +70,8 @@ public class ComplicationHostViewController extends ViewController<ConstraintLay ComplicationLayoutEngine layoutEngine, DreamOverlayStateController dreamOverlayStateController, LifecycleOwner lifecycleOwner, @Named(SCOPED_COMPLICATIONS_MODEL) ComplicationCollectionViewModel viewModel) { @Named(SCOPED_COMPLICATIONS_MODEL) ComplicationCollectionViewModel viewModel, SecureSettings secureSettings) { super(view); mLayoutEngine = layoutEngine; mLifecycleOwner = lifecycleOwner; Loading @@ -78,6 +85,10 @@ public class ComplicationHostViewController extends ViewController<ConstraintLay mDreamOverlayStateController.areEntryAnimationsFinished(); } }); // Whether animations are enabled. mIsAnimationEnabled = secureSettings.getFloatForUser( Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f, UserHandle.USER_CURRENT) != 0.0f; } @Override Loading Loading @@ -148,7 +159,7 @@ 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) { if (!mEntryAnimationsFinished && mIsAnimationEnabled) { view.setVisibility(View.INVISIBLE); } mComplications.put(id, viewHolder); Loading
packages/SystemUI/tests/src/com/android/systemui/dreams/complication/ComplicationHostViewControllerTest.java +31 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.os.UserHandle; import android.provider.Settings; import android.testing.AndroidTestingRunner; import android.view.View; Loading @@ -33,6 +35,8 @@ import androidx.test.filters.SmallTest; import com.android.systemui.SysuiTestCase; import com.android.systemui.dreams.DreamOverlayStateController; import com.android.systemui.util.settings.FakeSettings; import com.android.systemui.util.settings.SecureSettings; import org.junit.Before; import org.junit.Test; Loading Loading @@ -96,6 +100,10 @@ public class ComplicationHostViewControllerTest extends SysuiTestCase { private ComplicationHostViewController mController; private SecureSettings mSecureSettings; private static final int CURRENT_USER_ID = UserHandle.USER_SYSTEM; @Before public void setup() { MockitoAnnotations.initMocks(this); Loading @@ -108,12 +116,17 @@ public class ComplicationHostViewControllerTest extends SysuiTestCase { when(mViewHolder.getLayoutParams()).thenReturn(mComplicationLayoutParams); when(mComplicationView.getParent()).thenReturn(mComplicationHostView); mSecureSettings = new FakeSettings(); mSecureSettings.putFloatForUser( Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f, CURRENT_USER_ID); mController = new ComplicationHostViewController( mComplicationHostView, mLayoutEngine, mDreamOverlayStateController, mLifecycleOwner, mViewModel); mViewModel, mSecureSettings); mController.init(); } Loading Loading @@ -188,6 +201,23 @@ public class ComplicationHostViewControllerTest extends SysuiTestCase { verify(mComplicationView, never()).setVisibility(View.INVISIBLE); } @Test public void testAnimationsDisabled_ComplicationsNeverSetToInvisible() { //Disable animations mController.mIsAnimationEnabled = false; final Observer<Collection<ComplicationViewModel>> observer = captureComplicationViewModelsObserver(); // Add a complication before entry animations are finished. final HashSet<ComplicationViewModel> complications = new HashSet<>( Collections.singletonList(mComplicationViewModel)); observer.onChanged(complications); // The complication view should not be set to invisible. verify(mComplicationView, never()).setVisibility(View.INVISIBLE); } private Observer<Collection<ComplicationViewModel>> captureComplicationViewModelsObserver() { verify(mComplicationViewModelLiveData).observe(eq(mLifecycleOwner), mObserverCaptor.capture()); Loading