summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2015-07-07 00:17:55 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-07-07 00:17:56 +0000
commit2924dc346654a22f72575eb8ae3ce2e714818bd2 (patch)
treed558743a427ba15982c3ca982e5017f0bd0d3b8f /packages
parent760b1409bc865df5c60f637b8c994eb20888acb8 (diff)
parent5c9f4b90bf56b242467f0b5b4d2c7c5b71e6a777 (diff)
downloadframeworks_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')
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/Constants.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/Recents.java9
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java33
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java15
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java5
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/views/TaskView.java4
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);