From fefe2c8374400cc3645960acfd3a7994e57c5d3c Mon Sep 17 00:00:00 2001 From: Pinyao Ting Date: Tue, 3 Sep 2019 14:39:50 -0700 Subject: [PATCH] plugin for user event logging Bug: 140243695 Change-Id: If9c620aa10334b26ad9b489d6544201d38439fea --- .../logging/UserEventDispatcher.java | 11 ++++-- .../systemui/plugins/UserEventPlugin.java | 34 +++++++++++++++++++ 2 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 src_plugins/com/android/systemui/plugins/UserEventPlugin.java diff --git a/src/com/android/launcher3/logging/UserEventDispatcher.java b/src/com/android/launcher3/logging/UserEventDispatcher.java index c72b07a7f6..21ca74e12b 100644 --- a/src/com/android/launcher3/logging/UserEventDispatcher.java +++ b/src/com/android/launcher3/logging/UserEventDispatcher.java @@ -427,10 +427,16 @@ public class UserEventDispatcher implements ResourceBasedOverride { mAppOrTaskLaunch = false; ev.elapsedContainerMillis = SystemClock.uptimeMillis() - mElapsedContainerMillis; ev.elapsedSessionMillis = SystemClock.uptimeMillis() - mElapsedSessionMillis; - if (!IS_VERBOSE) { return; } + Log.d(TAG, generateLog(ev)); + } + + /** + * Returns a human-readable log for given user event. + */ + public static String generateLog(LauncherEvent ev) { String log = "\n-----------------------------------------------------" + "\naction:" + LoggerUtils.getActionStr(ev.action); if (ev.srcTarget != null && ev.srcTarget.length > 0) { @@ -445,8 +451,7 @@ public class UserEventDispatcher implements ResourceBasedOverride { ev.elapsedSessionMillis, ev.actionDurationMillis); log += "\n\n"; - Log.d(TAG, log); - return; + return log; } private static String getTargetsStr(Target[] targets) { diff --git a/src_plugins/com/android/systemui/plugins/UserEventPlugin.java b/src_plugins/com/android/systemui/plugins/UserEventPlugin.java new file mode 100644 index 0000000000..0e3664ae3f --- /dev/null +++ b/src_plugins/com/android/systemui/plugins/UserEventPlugin.java @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2019 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.plugins; + +import com.android.systemui.plugins.annotations.ProvidesInterface; + +/** + * Implement this plugin interface to access user event log on the device for prototype purpose. + * NOTE: plugin is for internal prototype only and is not visible in production environment. + */ +@ProvidesInterface(action = UserEventPlugin.ACTION, version = UserEventPlugin.VERSION) +public interface UserEventPlugin extends Plugin { + String ACTION = "com.android.launcher3.action.PLUGIN_USER_EVENT_LOG"; + int VERSION = 1; + + /** + * Callback to be triggered whenever an user event occurs. + */ + void onUserEvent(Object event); +}