add westworld log to global actions
Bug: 147508238 Test: atest GlobalActionsDialogTest Change-Id: I298f4737e022b4d8aff51891a2b283a2c6679ffe
This commit is contained in:
@@ -78,10 +78,13 @@ import android.widget.ImageView.ScaleType;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.internal.R;
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.internal.colorextraction.ColorExtractor;
|
||||
import com.android.internal.colorextraction.ColorExtractor.GradientColors;
|
||||
import com.android.internal.colorextraction.drawable.ScrimDrawable;
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.UiEvent;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.internal.statusbar.IStatusBarService;
|
||||
import com.android.internal.util.EmergencyAffordanceManager;
|
||||
@@ -171,6 +174,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
|
||||
private final IActivityManager mIActivityManager;
|
||||
private final TelecomManager mTelecomManager;
|
||||
private final MetricsLogger mMetricsLogger;
|
||||
private final UiEventLogger mUiEventLogger;
|
||||
private final NotificationShadeDepthController mDepthController;
|
||||
private final BlurUtils mBlurUtils;
|
||||
|
||||
@@ -203,6 +207,23 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
|
||||
private final ControlsListingController mControlsListingController;
|
||||
private boolean mAnyControlsProviders = false;
|
||||
|
||||
@VisibleForTesting
|
||||
public enum GlobalActionsEvent implements UiEventLogger.UiEventEnum {
|
||||
@UiEvent(doc = "The global actions / power menu surface became visible on the screen.")
|
||||
GA_POWER_MENU_OPEN(337);
|
||||
|
||||
private final int mId;
|
||||
|
||||
GlobalActionsEvent(int id) {
|
||||
mId = id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getId() {
|
||||
return mId;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param context everything needs a context :(
|
||||
*/
|
||||
@@ -223,7 +244,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
|
||||
ControlsUiController controlsUiController, IWindowManager iWindowManager,
|
||||
@Background Executor backgroundExecutor,
|
||||
ControlsListingController controlsListingController,
|
||||
ControlsController controlsController) {
|
||||
ControlsController controlsController, UiEventLogger uiEventLogger) {
|
||||
mContext = new ContextThemeWrapper(context, com.android.systemui.R.style.qs_theme);
|
||||
mWindowManagerFuncs = windowManagerFuncs;
|
||||
mAudioManager = audioManager;
|
||||
@@ -240,6 +261,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
|
||||
mIActivityManager = iActivityManager;
|
||||
mTelecomManager = telecomManager;
|
||||
mMetricsLogger = metricsLogger;
|
||||
mUiEventLogger = uiEventLogger;
|
||||
mDepthController = depthController;
|
||||
mSysuiColorExtractor = colorExtractor;
|
||||
mStatusBarService = statusBarService;
|
||||
@@ -997,6 +1019,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
|
||||
*/
|
||||
public void onShow(DialogInterface dialog) {
|
||||
mMetricsLogger.visible(MetricsEvent.POWER_MENU);
|
||||
mUiEventLogger.log(GlobalActionsEvent.GA_POWER_MENU_OPEN);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
/*
|
||||
* Copyright (C) 2020 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.systemui.globalactions;
|
||||
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import android.app.IActivityManager;
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.app.trust.TrustManager;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.res.Resources;
|
||||
import android.media.AudioManager;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.os.UserManager;
|
||||
import android.service.dreams.IDreamManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.testing.AndroidTestingRunner;
|
||||
import android.testing.TestableLooper;
|
||||
import android.view.IWindowManager;
|
||||
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.internal.statusbar.IStatusBarService;
|
||||
import com.android.internal.widget.LockPatternUtils;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.colorextraction.SysuiColorExtractor;
|
||||
import com.android.systemui.controls.controller.ControlsController;
|
||||
import com.android.systemui.controls.management.ControlsListingController;
|
||||
import com.android.systemui.controls.ui.ControlsUiController;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.plugins.GlobalActions;
|
||||
import com.android.systemui.statusbar.BlurUtils;
|
||||
import com.android.systemui.statusbar.NotificationShadeDepthController;
|
||||
import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
@SmallTest
|
||||
@RunWith(AndroidTestingRunner.class)
|
||||
@TestableLooper.RunWithLooper
|
||||
public class GlobalActionsDialogTest extends SysuiTestCase {
|
||||
private GlobalActionsDialog mGlobalActionsDialog;
|
||||
|
||||
@Mock private GlobalActions.GlobalActionsManager mWindowManagerFuncs;
|
||||
@Mock private AudioManager mAudioManager;
|
||||
@Mock private IDreamManager mDreamManager;
|
||||
@Mock private DevicePolicyManager mDevicePolicyManager;
|
||||
@Mock private LockPatternUtils mLockPatternUtils;
|
||||
@Mock private BroadcastDispatcher mBroadcastDispatcher;
|
||||
@Mock private ConnectivityManager mConnectivityManager;
|
||||
@Mock private TelephonyManager mTelephonyManager;
|
||||
@Mock private ContentResolver mContentResolver;
|
||||
@Mock private Resources mResources;
|
||||
@Mock private ConfigurationController mConfigurationController;
|
||||
@Mock private ActivityStarter mActivityStarter;
|
||||
@Mock private KeyguardStateController mKeyguardStateController;
|
||||
@Mock private UserManager mUserManager;
|
||||
@Mock private TrustManager mTrustManager;
|
||||
@Mock private IActivityManager mActivityManager;
|
||||
@Mock private MetricsLogger mMetricsLogger;
|
||||
@Mock private NotificationShadeDepthController mDepthController;
|
||||
@Mock private SysuiColorExtractor mColorExtractor;
|
||||
@Mock private IStatusBarService mStatusBarService;
|
||||
@Mock private BlurUtils mBlurUtils;
|
||||
@Mock private NotificationShadeWindowController mNotificationShadeWindowController;
|
||||
@Mock private ControlsUiController mControlsUiController;
|
||||
@Mock private IWindowManager mWindowManager;
|
||||
@Mock private Executor mBackgroundExecutor;
|
||||
@Mock private ControlsListingController mControlsListingController;
|
||||
@Mock private ControlsController mControlsController;
|
||||
@Mock private UiEventLogger mUiEventLogger;
|
||||
|
||||
private TestableLooper mTestableLooper;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mTestableLooper = TestableLooper.get(this);
|
||||
allowTestableLooperAsMainThread();
|
||||
mGlobalActionsDialog = new GlobalActionsDialog(mContext,
|
||||
mWindowManagerFuncs,
|
||||
mAudioManager,
|
||||
mDreamManager,
|
||||
mDevicePolicyManager,
|
||||
mLockPatternUtils,
|
||||
mBroadcastDispatcher,
|
||||
mConnectivityManager,
|
||||
mTelephonyManager,
|
||||
mContentResolver,
|
||||
null,
|
||||
mResources,
|
||||
mConfigurationController,
|
||||
mActivityStarter,
|
||||
mKeyguardStateController,
|
||||
mUserManager,
|
||||
mTrustManager,
|
||||
mActivityManager,
|
||||
null,
|
||||
mMetricsLogger,
|
||||
mDepthController,
|
||||
mColorExtractor,
|
||||
mStatusBarService,
|
||||
mBlurUtils,
|
||||
mNotificationShadeWindowController,
|
||||
mControlsUiController,
|
||||
mWindowManager,
|
||||
mBackgroundExecutor,
|
||||
mControlsListingController,
|
||||
mControlsController,
|
||||
mUiEventLogger
|
||||
);
|
||||
}
|
||||
@Test
|
||||
public void testShouldLogVisibility() {
|
||||
mGlobalActionsDialog.onShow(null);
|
||||
verify(mUiEventLogger, times(1))
|
||||
.log(GlobalActionsDialog.GlobalActionsEvent.GA_POWER_MENU_OPEN);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user