diff options
author | Winson Chung <winsonc@google.com> | 2015-07-07 00:17:55 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-07-07 00:17:56 +0000 |
commit | 2924dc346654a22f72575eb8ae3ce2e714818bd2 (patch) | |
tree | d558743a427ba15982c3ca982e5017f0bd0d3b8f /packages | |
parent | 760b1409bc865df5c60f637b8c994eb20888acb8 (diff) | |
parent | 5c9f4b90bf56b242467f0b5b4d2c7c5b71e6a777 (diff) | |
download | frameworks_base-2924dc346654a22f72575eb8ae3ce2e714818bd2.zip frameworks_base-2924dc346654a22f72575eb8ae3ce2e714818bd2.tar.gz frameworks_base-2924dc346654a22f72575eb8ae3ce2e714818bd2.tar.bz2 |
Merge "Adding metrics to overview." into mnc-dev
Diffstat (limited to 'packages')
7 files changed, 78 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/recents/Constants.java b/packages/SystemUI/src/com/android/systemui/recents/Constants.java index 18c213d..a4acf83 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/Constants.java +++ b/packages/SystemUI/src/com/android/systemui/recents/Constants.java @@ -20,6 +20,14 @@ package com.android.systemui.recents; * Constants */ public class Constants { + + public static class Metrics { + // DO NOT MODIFY THE ORDER OF THESE METRICS + public static final int DismissSourceKeyboard = 0; + public static final int DismissSourceSwipeGesture = 1; + public static final int DismissSourceHeaderButton = 2; + } + public static class DebugFlags { // Enable this with any other debug flag to see more info public static final boolean Verbose = false; diff --git a/packages/SystemUI/src/com/android/systemui/recents/Recents.java b/packages/SystemUI/src/com/android/systemui/recents/Recents.java index 6a45369..8c2ac88 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/Recents.java +++ b/packages/SystemUI/src/com/android/systemui/recents/Recents.java @@ -39,6 +39,8 @@ import android.util.MutableBoolean; import android.view.Display; import android.view.LayoutInflater; import android.view.View; + +import com.android.internal.logging.MetricsLogger; import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.RecentsComponent; @@ -453,6 +455,9 @@ public class Recents extends SystemUI return; } + // Keep track of actually launched affiliated tasks + MetricsLogger.count(mContext, "overview_affiliated_task_launch", 1); + // Launch the task if (toTask.isActive) { // Bring an active task to the foreground @@ -465,11 +470,15 @@ public class Recents extends SystemUI @Override public void showNextAffiliatedTask() { + // Keep track of when the affiliated task is triggered + MetricsLogger.count(mContext, "overview_affiliated_task_next", 1); showRelativeAffiliatedTask(true); } @Override public void showPrevAffiliatedTask() { + // Keep track of when the affiliated task is triggered + MetricsLogger.count(mContext, "overview_affiliated_task_prev", 1); showRelativeAffiliatedTask(false); } diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java index bf15c68..789457d 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java @@ -33,6 +33,8 @@ import android.view.View; import android.view.ViewStub; import android.widget.Toast; +import com.android.internal.logging.MetricsConstants; +import com.android.internal.logging.MetricsLogger; import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.recents.misc.Console; @@ -224,6 +226,7 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView // Mark the task that is the launch target int taskStackCount = stacks.size(); + int launchTaskIndexInStack = 0; if (mConfig.launchedToTaskId != -1) { for (int i = 0; i < taskStackCount; i++) { TaskStack stack = stacks.get(i); @@ -233,6 +236,7 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView Task t = tasks.get(j); if (t.key.id == mConfig.launchedToTaskId) { t.isLaunchTarget = true; + launchTaskIndexInStack = tasks.size() - j - 1; break; } } @@ -259,6 +263,28 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView // Animate the SystemUI scrims into view mScrimViews.prepareEnterRecentsAnimation(); + + // Keep track of whether we launched from the nav bar button or via alt-tab + if (mConfig.launchedWithAltTab) { + MetricsLogger.count(this, "overview_trigger_alttab", 1); + } else { + MetricsLogger.count(this, "overview_trigger_nav_btn", 1); + } + // Keep track of whether we launched from an app or from home + if (mConfig.launchedFromAppWithThumbnail) { + MetricsLogger.count(this, "overview_source_app", 1); + // If from an app, track the stack index of the app in the stack (for affiliated tasks) + MetricsLogger.histogram(this, "overview_source_app_index", launchTaskIndexInStack); + } else { + MetricsLogger.count(this, "overview_source_home", 1); + } + // Keep track of the total stack task count + int taskCount = 0; + for (int i = 0; i < stacks.size(); i++) { + TaskStack stack = stacks.get(i); + taskCount += stack.getTaskCount(); + } + MetricsLogger.histogram(this, "overview_task_count", taskCount); } /** Dismisses recents if we are already visible and the intent is to toggle the recents view */ @@ -374,6 +400,7 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView @Override protected void onStart() { super.onStart(); + MetricsLogger.visible(this, MetricsLogger.OVERVIEW_ACTIVITY); RecentsTaskLoader loader = RecentsTaskLoader.getInstance(); SystemServicesProxy ssp = loader.getSystemServicesProxy(); Recents.notifyVisibilityChanged(this, ssp, true); @@ -414,6 +441,7 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView @Override protected void onStop() { super.onStop(); + MetricsLogger.hidden(this, MetricsLogger.OVERVIEW_ACTIVITY); RecentsTaskLoader loader = RecentsTaskLoader.getInstance(); SystemServicesProxy ssp = loader.getSystemServicesProxy(); Recents.notifyVisibilityChanged(this, ssp, false); @@ -498,6 +526,9 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView case KeyEvent.KEYCODE_DEL: case KeyEvent.KEYCODE_FORWARD_DEL: { mRecentsView.dismissFocusedTask(); + // Keep track of deletions by keyboard + MetricsLogger.histogram(this, "overview_task_dismissed_source", + Constants.Metrics.DismissSourceKeyboard); return true; } default: @@ -591,6 +622,8 @@ public class RecentsActivity extends Activity implements RecentsView.RecentsView RecentsTaskLoader loader = RecentsTaskLoader.getInstance(); SystemServicesProxy ssp = loader.getSystemServicesProxy(); Recents.startScreenPinning(this, ssp); + + MetricsLogger.count(this, "overview_screen_pinned", 1); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java index 6cb11b1..947c19c 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java @@ -37,6 +37,7 @@ import android.view.WindowInsets; import android.view.WindowManagerGlobal; import android.widget.FrameLayout; +import com.android.internal.logging.MetricsLogger; import com.android.systemui.R; import com.android.systemui.recents.Constants; import com.android.systemui.recents.RecentsAppWidgetHostView; @@ -589,11 +590,22 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV if (mCb != null) { mCb.onTaskLaunchFailed(); } + + // Keep track of failed launches + MetricsLogger.count(getContext(), "overview_task_launch_failed", 1); } } } }; + // Keep track of the index of the task launch + int taskIndexFromFront = 0; + int taskIndex = stack.indexOfTask(task); + if (taskIndex > -1) { + taskIndexFromFront = stack.getTaskCount() - taskIndex - 1; + } + MetricsLogger.histogram(getContext(), "overview_task_launch_index", taskIndexFromFront); + // Launch the app right away if there is no task view, otherwise, animate the icon out first if (tv == null) { launchRunnable.run(); @@ -644,6 +656,9 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV } mCb.onAllTaskViewsDismissed(); + + // Keep track of all-deletions + MetricsLogger.count(getContext(), "overview_task_all_dismissed", 1); } /** Final callback after Recents is finally hidden. */ diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java index ebfc796..abdebf3 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java @@ -29,6 +29,8 @@ import android.view.View; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.FrameLayout; + +import com.android.internal.logging.MetricsLogger; import com.android.systemui.R; import com.android.systemui.recents.Constants; import com.android.systemui.recents.RecentsConfiguration; @@ -1361,6 +1363,9 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal public void onTaskViewAppInfoClicked(TaskView tv) { if (mCb != null) { mCb.onTaskViewAppInfoClicked(tv.getTask()); + + // Keep track of app-info invocations + MetricsLogger.count(getContext(), "overview_app_info", 1); } } diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java index 13bdbd2..78b3512 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java @@ -23,6 +23,7 @@ import android.view.VelocityTracker; import android.view.View; import android.view.ViewConfiguration; import android.view.ViewParent; +import com.android.internal.logging.MetricsLogger; import com.android.systemui.recents.Constants; import com.android.systemui.recents.Recents; import com.android.systemui.recents.RecentsConfiguration; @@ -452,6 +453,9 @@ class TaskStackViewTouchHandler implements SwipeHelper.Callback { tv.setTouchEnabled(true); // Remove the task view from the stack mSv.onTaskViewDismissed(tv); + // Keep track of deletions by keyboard + MetricsLogger.histogram(tv.getContext(), "overview_task_dismissed_source", + Constants.Metrics.DismissSourceSwipeGesture); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java index 5906ef1..cbfe842 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java @@ -27,6 +27,7 @@ import android.view.View; import android.view.ViewOutlineProvider; import android.view.animation.AccelerateInterpolator; import android.widget.FrameLayout; +import com.android.internal.logging.MetricsLogger; import com.android.systemui.R; import com.android.systemui.recents.Constants; import com.android.systemui.recents.RecentsConfiguration; @@ -741,6 +742,9 @@ public class TaskView extends FrameLayout implements Task.TaskCallbacks, } } else if (v == mHeaderView.mDismissButton) { dismissTask(); + // Keep track of deletions by the dismiss button + MetricsLogger.histogram(getContext(), "overview_task_dismissed_source", + Constants.Metrics.DismissSourceHeaderButton); } else if (v == mHeaderView.mMoveTaskButton) { if (mCb != null) { mCb.onTaskResize(tv); |