diff options
| author | 2018-05-17 02:12:23 +0000 | |
|---|---|---|
| committer | 2018-05-17 02:12:23 +0000 | |
| commit | 8b49b9f736673f3e7ba4d9ce4bf02c21d0466f0c (patch) | |
| tree | bffbca184d86d7250d44ab338a056e09b923e2a4 | |
| parent | db712bec4a5fc4c33e22f53e1a7842ba0314016c (diff) | |
| parent | 60cd1d96a914d4c4d76937de42b3ea5444a4ed11 (diff) | |
Merge "Count app launch correctly." into pi-dev
3 files changed, 37 insertions, 7 deletions
diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/TaskStackChangeListener.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/TaskStackChangeListener.java index 7db3ac6e3889..f9aa8da5e11e 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/TaskStackChangeListener.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/TaskStackChangeListener.java @@ -17,6 +17,7 @@ package com.android.systemui.shared.system; import android.app.ActivityManager.TaskSnapshot; +import android.content.ComponentName; import android.os.UserHandle; import android.util.Log; @@ -43,6 +44,7 @@ public abstract class TaskStackChangeListener { public void onActivityDismissingDockedStack() { } public void onActivityLaunchOnSecondaryDisplayFailed() { } public void onTaskProfileLocked(int taskId, int userId) { } + public void onTaskCreated(int taskId, ComponentName componentName) { } public void onTaskRemoved(int taskId) { } public void onTaskMovedToFront(int taskId) { } public void onActivityRequestedOrientationChanged(int taskId, int requestedOrientation) { } diff --git a/packages/SystemUI/shared/src/com/android/systemui/shared/system/TaskStackChangeListeners.java b/packages/SystemUI/shared/src/com/android/systemui/shared/system/TaskStackChangeListeners.java index 857e0eadb1bc..5e293c61c35a 100644 --- a/packages/SystemUI/shared/src/com/android/systemui/shared/system/TaskStackChangeListeners.java +++ b/packages/SystemUI/shared/src/com/android/systemui/shared/system/TaskStackChangeListeners.java @@ -19,6 +19,7 @@ package com.android.systemui.shared.system; import android.app.ActivityManager.TaskSnapshot; import android.app.IActivityManager; import android.app.TaskStackListener; +import android.content.ComponentName; import android.os.Handler; import android.os.Looper; import android.os.Message; @@ -140,12 +141,16 @@ public class TaskStackChangeListeners extends TaskStackListener { } @Override - public void onTaskSnapshotChanged(int taskId, TaskSnapshot snapshot) - throws RemoteException { + public void onTaskSnapshotChanged(int taskId, TaskSnapshot snapshot) throws RemoteException { mHandler.obtainMessage(H.ON_TASK_SNAPSHOT_CHANGED, taskId, 0, snapshot).sendToTarget(); } @Override + public void onTaskCreated(int taskId, ComponentName componentName) throws RemoteException { + mHandler.obtainMessage(H.ON_TASK_CREATED, taskId, 0, componentName).sendToTarget(); + } + + @Override public void onTaskRemoved(int taskId) throws RemoteException { mHandler.obtainMessage(H.ON_TASK_REMOVED, taskId, 0).sendToTarget(); } @@ -174,9 +179,10 @@ public class TaskStackChangeListeners extends TaskStackListener { private static final int ON_PINNED_STACK_ANIMATION_STARTED = 9; private static final int ON_ACTIVITY_UNPINNED = 10; private static final int ON_ACTIVITY_LAUNCH_ON_SECONDARY_DISPLAY_FAILED = 11; - private static final int ON_TASK_REMOVED = 12; - private static final int ON_TASK_MOVED_TO_FRONT = 13; - private static final int ON_ACTIVITY_REQUESTED_ORIENTATION_CHANGE = 14; + private static final int ON_TASK_CREATED = 12; + private static final int ON_TASK_REMOVED = 13; + private static final int ON_TASK_MOVED_TO_FRONT = 14; + private static final int ON_ACTIVITY_REQUESTED_ORIENTATION_CHANGE = 15; public H(Looper looper) { @@ -262,6 +268,13 @@ public class TaskStackChangeListeners extends TaskStackListener { } break; } + case ON_TASK_CREATED: { + for (int i = mTaskStackListeners.size() - 1; i >= 0; i--) { + mTaskStackListeners.get(i).onTaskCreated(msg.arg1, + (ComponentName) msg.obj); + } + break; + } case ON_TASK_REMOVED: { for (int i = mTaskStackListeners.size() - 1; i >= 0; i--) { mTaskStackListeners.get(i).onTaskRemoved(msg.arg1); diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java index 69b0f311d64f..368fa67d2b89 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsOnboarding.java @@ -33,6 +33,7 @@ import android.annotation.StringRes; import android.annotation.TargetApi; import android.app.ActivityManager; import android.content.BroadcastReceiver; +import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; @@ -63,7 +64,6 @@ import com.android.systemui.R; import com.android.systemui.recents.misc.SysUiTaskStackChangeListener; import com.android.systemui.shared.recents.IOverviewProxy; import com.android.systemui.shared.system.ActivityManagerWrapper; -import com.android.systemui.shared.system.LauncherEventUtil; import java.util.Collections; import java.util.HashSet; @@ -110,8 +110,19 @@ public class RecentsOnboarding { private int mOverviewOpenedCountSinceQuickScrubTipDismiss; private final SysUiTaskStackChangeListener mTaskListener = new SysUiTaskStackChangeListener() { + private String mLastPackageName; + + @Override + public void onTaskCreated(int taskId, ComponentName componentName) { + onAppLaunch(); + } + @Override - public void onTaskStackChanged() { + public void onTaskMovedToFront(int taskId) { + onAppLaunch(); + } + + private void onAppLaunch() { ActivityManager.RunningTaskInfo info = ActivityManagerWrapper.getInstance() .getRunningTask(ACTIVITY_TYPE_UNDEFINED /* ignoreActivityType */); if (info == null) { @@ -121,6 +132,10 @@ public class RecentsOnboarding { hide(true); return; } + if (info.baseActivity.getPackageName().equals(mLastPackageName)) { + return; + } + mLastPackageName = info.baseActivity.getPackageName(); int activityType = info.configuration.windowConfiguration.getActivityType(); if (activityType == ACTIVITY_TYPE_STANDARD) { boolean alreadySeenSwipeUpOnboarding = hasSeenSwipeUpOnboarding(); |