/* * 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.assist import com.android.internal.logging.UiEvent import com.android.internal.logging.UiEventLogger import com.android.internal.util.FrameworkStatsLog.ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__AOD1 import com.android.internal.util.FrameworkStatsLog.ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__AOD2 import com.android.internal.util.FrameworkStatsLog.ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__APP_DEFAULT import com.android.internal.util.FrameworkStatsLog.ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__APP_FULLSCREEN import com.android.internal.util.FrameworkStatsLog.ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__APP_IMMERSIVE import com.android.internal.util.FrameworkStatsLog.ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__BOUNCER import com.android.internal.util.FrameworkStatsLog.ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__LAUNCHER_ALL_APPS import com.android.internal.util.FrameworkStatsLog.ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__LAUNCHER_HOME import com.android.internal.util.FrameworkStatsLog.ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__LAUNCHER_OVERVIEW import com.android.internal.util.FrameworkStatsLog.ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__UNKNOWN_DEVICE_STATE import com.android.internal.util.FrameworkStatsLog.ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__UNLOCKED_LOCKSCREEN enum class AssistantInvocationEvent(private val id: Int) : UiEventLogger.UiEventEnum { @UiEvent(doc = "Assistant invoked by unknown method") ASSISTANT_INVOCATION_UNKNOWN(442), @UiEvent(doc = "Assistant invoked by touch gesture") ASSISTANT_INVOCATION_TOUCH_GESTURE(443), @UiEvent(doc = "Assistant invoked by alternate touch gesture") ASSISTANT_INVOCATION_TOUCH_GESTURE_ALT(444), @UiEvent(doc = "Assistant invoked by hotword") ASSISTANT_INVOCATION_HOTWORD(445), @UiEvent(doc = "Assistant invoked by tapping quick search bar icon") ASSISTANT_INVOCATION_QUICK_SEARCH_BAR(446), @UiEvent(doc = "Assistant invoked by home button long press") ASSISTANT_INVOCATION_HOME_LONG_PRESS(447), @UiEvent(doc = "Assistant invoked by physical gesture") ASSISTANT_INVOCATION_PHYSICAL_GESTURE(448), @UiEvent(doc = "Assistant invocation started by unknown method") ASSISTANT_INVOCATION_START_UNKNOWN(530), @UiEvent(doc = "Assistant invocation started by touch gesture") ASSISTANT_INVOCATION_START_TOUCH_GESTURE(531), @UiEvent(doc = "Assistant invocation started by physical gesture") ASSISTANT_INVOCATION_START_PHYSICAL_GESTURE(532), @UiEvent(doc = "Assistant invoked by long press on the physical power button") ASSISTANT_INVOCATION_POWER_LONG_PRESS(758); override fun getId(): Int { return id } companion object { fun eventFromLegacyInvocationType(legacyInvocationType: Int, isInvocationComplete: Boolean): AssistantInvocationEvent { return if (isInvocationComplete) { when (legacyInvocationType) { AssistManager.INVOCATION_TYPE_GESTURE -> ASSISTANT_INVOCATION_TOUCH_GESTURE AssistManager.INVOCATION_TYPE_OTHER -> ASSISTANT_INVOCATION_PHYSICAL_GESTURE AssistManager.INVOCATION_TYPE_VOICE -> ASSISTANT_INVOCATION_HOTWORD AssistManager.INVOCATION_TYPE_QUICK_SEARCH_BAR -> ASSISTANT_INVOCATION_QUICK_SEARCH_BAR AssistManager.INVOCATION_TYPE_HOME_BUTTON_LONG_PRESS -> ASSISTANT_INVOCATION_HOME_LONG_PRESS AssistManager.INVOCATION_TYPE_POWER_BUTTON_LONG_PRESS -> ASSISTANT_INVOCATION_POWER_LONG_PRESS else -> ASSISTANT_INVOCATION_UNKNOWN } } else { when (legacyInvocationType) { AssistManager.INVOCATION_TYPE_GESTURE -> ASSISTANT_INVOCATION_START_TOUCH_GESTURE AssistManager.INVOCATION_TYPE_OTHER -> ASSISTANT_INVOCATION_START_PHYSICAL_GESTURE else -> ASSISTANT_INVOCATION_START_UNKNOWN } } } fun deviceStateFromLegacyDeviceState(legacyDeviceState: Int): Int { return when (legacyDeviceState) { PhoneStateMonitor.PHONE_STATE_AOD1 -> ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__AOD1 PhoneStateMonitor.PHONE_STATE_AOD2 -> ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__AOD2 PhoneStateMonitor.PHONE_STATE_BOUNCER -> ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__BOUNCER PhoneStateMonitor.PHONE_STATE_UNLOCKED_LOCKSCREEN -> ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__UNLOCKED_LOCKSCREEN PhoneStateMonitor.PHONE_STATE_HOME -> ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__LAUNCHER_HOME PhoneStateMonitor.PHONE_STATE_OVERVIEW -> ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__LAUNCHER_OVERVIEW PhoneStateMonitor.PHONE_STATE_ALL_APPS -> ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__LAUNCHER_ALL_APPS PhoneStateMonitor.PHONE_STATE_APP_DEFAULT -> ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__APP_DEFAULT PhoneStateMonitor.PHONE_STATE_APP_IMMERSIVE -> ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__APP_IMMERSIVE PhoneStateMonitor.PHONE_STATE_APP_FULLSCREEN -> ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__APP_FULLSCREEN else -> ASSISTANT_INVOCATION_REPORTED__DEVICE_STATE__UNKNOWN_DEVICE_STATE } } } }