Merge "Stop complications from hiding if animations are disabled." into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
dccbda11b8
@@ -22,14 +22,18 @@ import static com.android.systemui.dreams.complication.dagger.ComplicationModule
|
|||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.Region;
|
import android.graphics.Region;
|
||||||
import android.os.Debug;
|
import android.os.Debug;
|
||||||
|
import android.os.UserHandle;
|
||||||
|
import android.provider.Settings;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||||
import androidx.lifecycle.LifecycleOwner;
|
import androidx.lifecycle.LifecycleOwner;
|
||||||
|
|
||||||
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
import com.android.systemui.dreams.DreamOverlayStateController;
|
import com.android.systemui.dreams.DreamOverlayStateController;
|
||||||
import com.android.systemui.util.ViewController;
|
import com.android.systemui.util.ViewController;
|
||||||
|
import com.android.systemui.util.settings.SecureSettings;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -54,6 +58,8 @@ public class ComplicationHostViewController extends ViewController<ConstraintLay
|
|||||||
private final LifecycleOwner mLifecycleOwner;
|
private final LifecycleOwner mLifecycleOwner;
|
||||||
private final ComplicationCollectionViewModel mComplicationCollectionViewModel;
|
private final ComplicationCollectionViewModel mComplicationCollectionViewModel;
|
||||||
private final HashMap<ComplicationId, Complication.ViewHolder> mComplications = new HashMap<>();
|
private final HashMap<ComplicationId, Complication.ViewHolder> mComplications = new HashMap<>();
|
||||||
|
@VisibleForTesting
|
||||||
|
boolean mIsAnimationEnabled;
|
||||||
|
|
||||||
// Whether dream entry animations are finished.
|
// Whether dream entry animations are finished.
|
||||||
private boolean mEntryAnimationsFinished = false;
|
private boolean mEntryAnimationsFinished = false;
|
||||||
@@ -64,7 +70,8 @@ public class ComplicationHostViewController extends ViewController<ConstraintLay
|
|||||||
ComplicationLayoutEngine layoutEngine,
|
ComplicationLayoutEngine layoutEngine,
|
||||||
DreamOverlayStateController dreamOverlayStateController,
|
DreamOverlayStateController dreamOverlayStateController,
|
||||||
LifecycleOwner lifecycleOwner,
|
LifecycleOwner lifecycleOwner,
|
||||||
@Named(SCOPED_COMPLICATIONS_MODEL) ComplicationCollectionViewModel viewModel) {
|
@Named(SCOPED_COMPLICATIONS_MODEL) ComplicationCollectionViewModel viewModel,
|
||||||
|
SecureSettings secureSettings) {
|
||||||
super(view);
|
super(view);
|
||||||
mLayoutEngine = layoutEngine;
|
mLayoutEngine = layoutEngine;
|
||||||
mLifecycleOwner = lifecycleOwner;
|
mLifecycleOwner = lifecycleOwner;
|
||||||
@@ -78,6 +85,10 @@ public class ComplicationHostViewController extends ViewController<ConstraintLay
|
|||||||
mDreamOverlayStateController.areEntryAnimationsFinished();
|
mDreamOverlayStateController.areEntryAnimationsFinished();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Whether animations are enabled.
|
||||||
|
mIsAnimationEnabled = secureSettings.getFloatForUser(
|
||||||
|
Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f, UserHandle.USER_CURRENT) != 0.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -148,7 +159,7 @@ public class ComplicationHostViewController extends ViewController<ConstraintLay
|
|||||||
|
|
||||||
// Complications to be added before dream entry animations are finished are set
|
// Complications to be added before dream entry animations are finished are set
|
||||||
// to invisible and are animated in.
|
// to invisible and are animated in.
|
||||||
if (!mEntryAnimationsFinished) {
|
if (!mEntryAnimationsFinished && mIsAnimationEnabled) {
|
||||||
view.setVisibility(View.INVISIBLE);
|
view.setVisibility(View.INVISIBLE);
|
||||||
}
|
}
|
||||||
mComplications.put(id, viewHolder);
|
mComplications.put(id, viewHolder);
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ import static org.mockito.Mockito.never;
|
|||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import android.os.UserHandle;
|
||||||
|
import android.provider.Settings;
|
||||||
import android.testing.AndroidTestingRunner;
|
import android.testing.AndroidTestingRunner;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
@@ -33,6 +35,8 @@ import androidx.test.filters.SmallTest;
|
|||||||
|
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
import com.android.systemui.dreams.DreamOverlayStateController;
|
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.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -96,6 +100,10 @@ public class ComplicationHostViewControllerTest extends SysuiTestCase {
|
|||||||
|
|
||||||
private ComplicationHostViewController mController;
|
private ComplicationHostViewController mController;
|
||||||
|
|
||||||
|
private SecureSettings mSecureSettings;
|
||||||
|
|
||||||
|
private static final int CURRENT_USER_ID = UserHandle.USER_SYSTEM;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
@@ -108,12 +116,17 @@ public class ComplicationHostViewControllerTest extends SysuiTestCase {
|
|||||||
when(mViewHolder.getLayoutParams()).thenReturn(mComplicationLayoutParams);
|
when(mViewHolder.getLayoutParams()).thenReturn(mComplicationLayoutParams);
|
||||||
when(mComplicationView.getParent()).thenReturn(mComplicationHostView);
|
when(mComplicationView.getParent()).thenReturn(mComplicationHostView);
|
||||||
|
|
||||||
|
mSecureSettings = new FakeSettings();
|
||||||
|
mSecureSettings.putFloatForUser(
|
||||||
|
Settings.Global.ANIMATOR_DURATION_SCALE, 1.0f, CURRENT_USER_ID);
|
||||||
|
|
||||||
mController = new ComplicationHostViewController(
|
mController = new ComplicationHostViewController(
|
||||||
mComplicationHostView,
|
mComplicationHostView,
|
||||||
mLayoutEngine,
|
mLayoutEngine,
|
||||||
mDreamOverlayStateController,
|
mDreamOverlayStateController,
|
||||||
mLifecycleOwner,
|
mLifecycleOwner,
|
||||||
mViewModel);
|
mViewModel,
|
||||||
|
mSecureSettings);
|
||||||
|
|
||||||
mController.init();
|
mController.init();
|
||||||
}
|
}
|
||||||
@@ -188,6 +201,23 @@ public class ComplicationHostViewControllerTest extends SysuiTestCase {
|
|||||||
verify(mComplicationView, never()).setVisibility(View.INVISIBLE);
|
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() {
|
private Observer<Collection<ComplicationViewModel>> captureComplicationViewModelsObserver() {
|
||||||
verify(mComplicationViewModelLiveData).observe(eq(mLifecycleOwner),
|
verify(mComplicationViewModelLiveData).observe(eq(mLifecycleOwner),
|
||||||
mObserverCaptor.capture());
|
mObserverCaptor.capture());
|
||||||
|
|||||||
Reference in New Issue
Block a user