Merge "Add logging for tapping on Dream Home Controls complication." into tm-qpr-dev
This commit is contained in:
@@ -28,6 +28,9 @@ import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.logging.UiEvent;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.systemui.CoreStartable;
|
||||
import com.android.systemui.animation.ActivityLaunchAnimator;
|
||||
import com.android.systemui.controls.dagger.ControlsComponent;
|
||||
@@ -158,17 +161,38 @@ public class DreamHomeControlsComplication implements Complication {
|
||||
private final Context mContext;
|
||||
private final ControlsComponent mControlsComponent;
|
||||
|
||||
private final UiEventLogger mUiEventLogger;
|
||||
|
||||
@VisibleForTesting
|
||||
public enum DreamOverlayEvent implements UiEventLogger.UiEventEnum {
|
||||
@UiEvent(doc = "The home controls on the screensaver has been tapped.")
|
||||
DREAM_HOME_CONTROLS_TAPPED(1212);
|
||||
|
||||
private final int mId;
|
||||
|
||||
DreamOverlayEvent(int id) {
|
||||
mId = id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
return mId;
|
||||
}
|
||||
}
|
||||
|
||||
@Inject
|
||||
DreamHomeControlsChipViewController(
|
||||
@Named(DREAM_HOME_CONTROLS_CHIP_VIEW) ImageView view,
|
||||
ActivityStarter activityStarter,
|
||||
Context context,
|
||||
ControlsComponent controlsComponent) {
|
||||
ControlsComponent controlsComponent,
|
||||
UiEventLogger uiEventLogger) {
|
||||
super(view);
|
||||
|
||||
mActivityStarter = activityStarter;
|
||||
mContext = context;
|
||||
mControlsComponent = controlsComponent;
|
||||
mUiEventLogger = uiEventLogger;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -184,6 +208,8 @@ public class DreamHomeControlsComplication implements Complication {
|
||||
private void onClickHomeControls(View v) {
|
||||
if (DEBUG) Log.d(TAG, "home controls complication tapped");
|
||||
|
||||
mUiEventLogger.log(DreamOverlayEvent.DREAM_HOME_CONTROLS_TAPPED);
|
||||
|
||||
final Intent intent = new Intent(mContext, ControlsActivity.class)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
.putExtra(ControlsUiController.EXTRA_ANIMATE, true);
|
||||
|
||||
@@ -29,9 +29,12 @@ import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.testing.AndroidTestingRunner;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.controls.ControlsServiceInfo;
|
||||
import com.android.systemui.controls.controller.ControlsController;
|
||||
@@ -40,6 +43,7 @@ import com.android.systemui.controls.dagger.ControlsComponent;
|
||||
import com.android.systemui.controls.management.ControlsListingController;
|
||||
import com.android.systemui.dreams.DreamOverlayStateController;
|
||||
import com.android.systemui.dreams.complication.dagger.DreamHomeControlsComplicationComponent;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -79,6 +83,15 @@ public class DreamHomeControlsComplicationTest extends SysuiTestCase {
|
||||
@Captor
|
||||
private ArgumentCaptor<ControlsListingController.ControlsListingCallback> mCallbackCaptor;
|
||||
|
||||
@Mock
|
||||
private ImageView mView;
|
||||
|
||||
@Mock
|
||||
private ActivityStarter mActivityStarter;
|
||||
|
||||
@Mock
|
||||
UiEventLogger mUiEventLogger;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
@@ -151,6 +164,30 @@ public class DreamHomeControlsComplicationTest extends SysuiTestCase {
|
||||
verify(mDreamOverlayStateController).addComplication(mComplication);
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensures clicking home controls chip logs UiEvent.
|
||||
*/
|
||||
@Test
|
||||
public void testClick_logsUiEvent() {
|
||||
final DreamHomeControlsComplication.DreamHomeControlsChipViewController viewController =
|
||||
new DreamHomeControlsComplication.DreamHomeControlsChipViewController(
|
||||
mView,
|
||||
mActivityStarter,
|
||||
mContext,
|
||||
mControlsComponent,
|
||||
mUiEventLogger);
|
||||
viewController.onViewAttached();
|
||||
|
||||
final ArgumentCaptor<View.OnClickListener> clickListenerCaptor =
|
||||
ArgumentCaptor.forClass(View.OnClickListener.class);
|
||||
verify(mView).setOnClickListener(clickListenerCaptor.capture());
|
||||
|
||||
clickListenerCaptor.getValue().onClick(mView);
|
||||
verify(mUiEventLogger).log(
|
||||
DreamHomeControlsComplication.DreamHomeControlsChipViewController
|
||||
.DreamOverlayEvent.DREAM_HOME_CONTROLS_TAPPED);
|
||||
}
|
||||
|
||||
private void setHaveFavorites(boolean value) {
|
||||
final List<StructureInfo> favorites = mock(List.class);
|
||||
when(favorites.isEmpty()).thenReturn(!value);
|
||||
|
||||
Reference in New Issue
Block a user