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.view.View;
|
||||||
import android.widget.ImageView;
|
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.CoreStartable;
|
||||||
import com.android.systemui.animation.ActivityLaunchAnimator;
|
import com.android.systemui.animation.ActivityLaunchAnimator;
|
||||||
import com.android.systemui.controls.dagger.ControlsComponent;
|
import com.android.systemui.controls.dagger.ControlsComponent;
|
||||||
@@ -158,17 +161,38 @@ public class DreamHomeControlsComplication implements Complication {
|
|||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
private final ControlsComponent mControlsComponent;
|
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
|
@Inject
|
||||||
DreamHomeControlsChipViewController(
|
DreamHomeControlsChipViewController(
|
||||||
@Named(DREAM_HOME_CONTROLS_CHIP_VIEW) ImageView view,
|
@Named(DREAM_HOME_CONTROLS_CHIP_VIEW) ImageView view,
|
||||||
ActivityStarter activityStarter,
|
ActivityStarter activityStarter,
|
||||||
Context context,
|
Context context,
|
||||||
ControlsComponent controlsComponent) {
|
ControlsComponent controlsComponent,
|
||||||
|
UiEventLogger uiEventLogger) {
|
||||||
super(view);
|
super(view);
|
||||||
|
|
||||||
mActivityStarter = activityStarter;
|
mActivityStarter = activityStarter;
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mControlsComponent = controlsComponent;
|
mControlsComponent = controlsComponent;
|
||||||
|
mUiEventLogger = uiEventLogger;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -184,6 +208,8 @@ public class DreamHomeControlsComplication implements Complication {
|
|||||||
private void onClickHomeControls(View v) {
|
private void onClickHomeControls(View v) {
|
||||||
if (DEBUG) Log.d(TAG, "home controls complication tapped");
|
if (DEBUG) Log.d(TAG, "home controls complication tapped");
|
||||||
|
|
||||||
|
mUiEventLogger.log(DreamOverlayEvent.DREAM_HOME_CONTROLS_TAPPED);
|
||||||
|
|
||||||
final Intent intent = new Intent(mContext, ControlsActivity.class)
|
final Intent intent = new Intent(mContext, ControlsActivity.class)
|
||||||
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)
|
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||||
.putExtra(ControlsUiController.EXTRA_ANIMATE, true);
|
.putExtra(ControlsUiController.EXTRA_ANIMATE, true);
|
||||||
|
|||||||
@@ -29,9 +29,12 @@ import static org.mockito.Mockito.when;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.testing.AndroidTestingRunner;
|
import android.testing.AndroidTestingRunner;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
|
||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
|
import com.android.internal.logging.UiEventLogger;
|
||||||
import com.android.systemui.SysuiTestCase;
|
import com.android.systemui.SysuiTestCase;
|
||||||
import com.android.systemui.controls.ControlsServiceInfo;
|
import com.android.systemui.controls.ControlsServiceInfo;
|
||||||
import com.android.systemui.controls.controller.ControlsController;
|
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.controls.management.ControlsListingController;
|
||||||
import com.android.systemui.dreams.DreamOverlayStateController;
|
import com.android.systemui.dreams.DreamOverlayStateController;
|
||||||
import com.android.systemui.dreams.complication.dagger.DreamHomeControlsComplicationComponent;
|
import com.android.systemui.dreams.complication.dagger.DreamHomeControlsComplicationComponent;
|
||||||
|
import com.android.systemui.plugins.ActivityStarter;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -79,6 +83,15 @@ public class DreamHomeControlsComplicationTest extends SysuiTestCase {
|
|||||||
@Captor
|
@Captor
|
||||||
private ArgumentCaptor<ControlsListingController.ControlsListingCallback> mCallbackCaptor;
|
private ArgumentCaptor<ControlsListingController.ControlsListingCallback> mCallbackCaptor;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private ImageView mView;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private ActivityStarter mActivityStarter;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
UiEventLogger mUiEventLogger;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
@@ -151,6 +164,30 @@ public class DreamHomeControlsComplicationTest extends SysuiTestCase {
|
|||||||
verify(mDreamOverlayStateController).addComplication(mComplication);
|
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) {
|
private void setHaveFavorites(boolean value) {
|
||||||
final List<StructureInfo> favorites = mock(List.class);
|
final List<StructureInfo> favorites = mock(List.class);
|
||||||
when(favorites.isEmpty()).thenReturn(!value);
|
when(favorites.isEmpty()).thenReturn(!value);
|
||||||
|
|||||||
Reference in New Issue
Block a user