Merge "Add logging for tapping on Dream Home Controls complication." into tm-qpr-dev

This commit is contained in:
Xiaowen Lei
2022-10-05 21:13:17 +00:00
committed by Android (Google) Code Review
2 changed files with 64 additions and 1 deletions

View File

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

View File

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