Loading quickstep/src/com/android/launcher3/taskbar/TaskbarModelCallbacks.java +10 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.launcher3.taskbar; import android.util.SparseArray; import android.view.View; import androidx.annotation.UiThread; import com.android.launcher3.LauncherSettings.Favorites; import com.android.launcher3.model.BgDataModel; import com.android.launcher3.model.BgDataModel.FixedContainerItems; Loading @@ -29,6 +31,8 @@ import com.android.launcher3.util.IntArray; import com.android.launcher3.util.IntSet; import com.android.launcher3.util.ItemInfoMatcher; import com.android.launcher3.util.LauncherBindableItemsContainer; import com.android.launcher3.util.PackageUserKey; import com.android.launcher3.util.Preconditions; import com.android.quickstep.RecentsModel; import java.io.PrintWriter; Loading @@ -37,6 +41,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.function.Predicate; /** Loading Loading @@ -250,9 +255,12 @@ public class TaskbarModelCallbacks implements mControllers.taskbarPopupController.setDeepShortcutMap(deepShortcutMapCopy); } @UiThread @Override public void bindAllApplications(AppInfo[] apps, int flags) { mControllers.taskbarAllAppsController.setApps(apps, flags); public void bindAllApplications(AppInfo[] apps, int flags, Map<PackageUserKey, Integer> packageUserKeytoUidMap) { Preconditions.assertUIThread(); mControllers.taskbarAllAppsController.setApps(apps, flags, packageUserKeytoUidMap); mControllers.taskbarRecentAppsController.setApps(apps); } Loading quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsController.java +8 −3 Original line number Diff line number Diff line Loading @@ -26,7 +26,9 @@ import com.android.launcher3.taskbar.TaskbarControllers; import com.android.launcher3.taskbar.overlay.TaskbarOverlayContext; import com.android.launcher3.util.PackageUserKey; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.function.Predicate; /** Loading @@ -53,6 +55,8 @@ public final class TaskbarAllAppsController { private boolean mDisallowGlobalDrag; private boolean mDisallowLongClick; private Map<PackageUserKey, Integer> mPackageUserKeytoUidMap = Collections.emptyMap(); /** Initialize the controller. */ public void init(TaskbarControllers controllers, boolean allAppsVisible) { mControllers = controllers; Loading @@ -67,11 +71,12 @@ public final class TaskbarAllAppsController { } /** Updates the current {@link AppInfo} instances. */ public void setApps(AppInfo[] apps, int flags) { public void setApps(AppInfo[] apps, int flags, Map<PackageUserKey, Integer> map) { mApps = apps; mAppsModelFlags = flags; mPackageUserKeytoUidMap = map; if (mAppsView != null) { mAppsView.getAppsStore().setApps(mApps, mAppsModelFlags); mAppsView.getAppsStore().setApps(mApps, mAppsModelFlags, mPackageUserKeytoUidMap); } } Loading Loading @@ -136,7 +141,7 @@ public final class TaskbarAllAppsController { viewController.show(animate); mAppsView = overlayContext.getAppsView(); mAppsView.getAppsStore().setApps(mApps, mAppsModelFlags); mAppsView.getAppsStore().setApps(mApps, mAppsModelFlags, mPackageUserKeytoUidMap); mAppsView.getFloatingHeaderView() .findFixedRowByType(PredictionRowView.class) .setPredictedApps(mPredictedApps); Loading quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java +23 −15 Original line number Diff line number Diff line Loading @@ -566,9 +566,10 @@ public class StatsLogCompatManager extends StatsLogManager { * Helps to construct and log statsd compatible impression events. */ private static class StatsCompatImpressionLogger implements StatsImpressionLogger { private final IntArray mResultTypeList = new IntArray(); private final IntArray mResultCountList = new IntArray(); private int[] mResultTypeList = new int[]{}; private int[] mResultCountList = new int[]{}; private final List<Boolean> mAboveKeyboardList = new ArrayList<>(); private int[] mUidList = new int[]{}; private InstanceId mInstanceId = DEFAULT_INSTANCE_ID; private State mLauncherState = State.UNKNOWN; private int mQueryLength = -1; Loading @@ -593,25 +594,29 @@ public class StatsLogCompatManager extends StatsLogManager { @Override public StatsImpressionLogger withResultType(IntArray resultType) { this.mResultTypeList.clear(); this.mResultTypeList.addAll(resultType); mResultTypeList = resultType.toArray(); return this; } @Override public StatsImpressionLogger withResultCount(IntArray resultCount) { this.mResultCountList.clear(); this.mResultCountList.addAll(resultCount); mResultCountList = resultCount.toArray(); return this; } @Override public StatsImpressionLogger withAboveKeyboard(List<Boolean> aboveKeyboard) { this.mAboveKeyboardList.clear(); mAboveKeyboardList.clear(); this.mAboveKeyboardList.addAll(aboveKeyboard); return this; } @Override public StatsImpressionLogger withUids(IntArray uid) { mUidList = uid.toArray(); return this; } @Override public void log(EventEnum event) { boolean[] mAboveKeyboard = new boolean[mAboveKeyboardList.size()]; Loading @@ -626,11 +631,12 @@ public class StatsLogCompatManager extends StatsLogManager { logStringBuilder.append(String.format("ImpressionEvent:%s ", name)); logStringBuilder.append(String.format("LauncherState = %s ", mLauncherState)); logStringBuilder.append(String.format("QueryLength = %s ", mQueryLength)); for (int i = 0; i < mResultTypeList.size(); i++) { for (int i = 0; i < mResultTypeList.length; i++) { logStringBuilder.append(String.format( "\n ResultType = %s with ResultCount = %s with is_above_keyboard = %s", mResultTypeList.get(i), mResultCountList.get(i), mAboveKeyboard[i])); "\n ResultType = %s with ResultCount = %s with is_above_keyboard = %s" + " with uid = %s", mResultTypeList[i], mResultCountList[i], mAboveKeyboard[i], mUidList[i])); } Log.d(IMPRESSION_TAG, logStringBuilder.toString()); } Loading @@ -643,11 +649,13 @@ public class StatsLogCompatManager extends StatsLogManager { mLauncherState.getLauncherState(), // state mQueryLength, // query_length //result type list mResultTypeList.toArray(), mResultTypeList, // result count list mResultCountList.toArray(), mResultCountList, // above keyboard list mAboveKeyboard mAboveKeyboard, // uid list mUidList ); } } Loading src/com/android/launcher3/Launcher.java +9 −2 Original line number Diff line number Diff line Loading @@ -133,6 +133,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.annotation.StringRes; import androidx.annotation.UiThread; import androidx.annotation.VisibleForTesting; import com.android.launcher3.DropTarget.DragObject; Loading Loading @@ -205,6 +206,7 @@ import com.android.launcher3.util.LockedUserState; import com.android.launcher3.util.OnboardingPrefs; import com.android.launcher3.util.PackageUserKey; import com.android.launcher3.util.PendingRequestArgs; import com.android.launcher3.util.Preconditions; import com.android.launcher3.util.RunnableList; import com.android.launcher3.util.SafeCloseable; import com.android.launcher3.util.ScreenOnTracker; Loading Loading @@ -246,6 +248,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.function.Predicate; import java.util.function.Supplier; Loading Loading @@ -2971,8 +2974,12 @@ public class Launcher extends StatefulActivity<LauncherState> */ @Override @TargetApi(Build.VERSION_CODES.S) public void bindAllApplications(AppInfo[] apps, int flags) { mAppsView.getAppsStore().setApps(apps, flags); @UiThread public void bindAllApplications(AppInfo[] apps, int flags, Map<PackageUserKey, Integer> packageUserKeytoUidMap) { Preconditions.assertUIThread(); AllAppsStore appsStore = mAppsView.getAppsStore(); appsStore.setApps(apps, flags, packageUserKeytoUidMap); PopupContainerWithArrow.dismissInvalidPopup(this); if (Utilities.ATLEAST_S) { Trace.endAsyncSection(DISPLAY_ALL_APPS_TRACE_METHOD_NAME, Loading src/com/android/launcher3/allapps/AllAppsStore.java +15 −3 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static com.android.launcher3.model.data.AppInfo.EMPTY_ARRAY; import static com.android.launcher3.model.data.ItemInfoWithIcon.FLAG_SHOW_DOWNLOAD_PROGRESS_MASK; import static com.android.launcher3.testing.shared.TestProtocol.WORK_TAB_MISSING; import android.os.UserHandle; import android.util.Log; import android.view.View; import android.view.ViewGroup; Loading @@ -35,7 +36,9 @@ import com.android.launcher3.util.PackageUserKey; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.CopyOnWriteArrayList; import java.util.function.Consumer; import java.util.function.Predicate; Loading @@ -57,8 +60,8 @@ public class AllAppsStore { private final List<OnUpdateListener> mUpdateListeners = new CopyOnWriteArrayList<>(); private final ArrayList<ViewGroup> mIconContainers = new ArrayList<>(); private Map<PackageUserKey, Integer> mPackageUserKeytoUidMap = Collections.emptyMap(); private int mModelFlags; private int mDeferUpdatesFlags = 0; private boolean mUpdatePending = false; Loading @@ -67,12 +70,21 @@ public class AllAppsStore { } /** * Sets the current set of apps. * Sets the current set of apps and sets mapping for {@link PackageUserKey} to Uid for * the current set of apps. */ public void setApps(AppInfo[] apps, int flags) { public void setApps(AppInfo[] apps, int flags, Map<PackageUserKey, Integer> map) { mApps = apps; mModelFlags = flags; notifyUpdate(); mPackageUserKeytoUidMap = map; } /** * Look up for Uid using package name and user handle for the current set of apps. */ public int lookUpForUid(String packageName, UserHandle user) { return mPackageUserKeytoUidMap.getOrDefault(new PackageUserKey(packageName, user), -1); } /** Loading Loading
quickstep/src/com/android/launcher3/taskbar/TaskbarModelCallbacks.java +10 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.launcher3.taskbar; import android.util.SparseArray; import android.view.View; import androidx.annotation.UiThread; import com.android.launcher3.LauncherSettings.Favorites; import com.android.launcher3.model.BgDataModel; import com.android.launcher3.model.BgDataModel.FixedContainerItems; Loading @@ -29,6 +31,8 @@ import com.android.launcher3.util.IntArray; import com.android.launcher3.util.IntSet; import com.android.launcher3.util.ItemInfoMatcher; import com.android.launcher3.util.LauncherBindableItemsContainer; import com.android.launcher3.util.PackageUserKey; import com.android.launcher3.util.Preconditions; import com.android.quickstep.RecentsModel; import java.io.PrintWriter; Loading @@ -37,6 +41,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.function.Predicate; /** Loading Loading @@ -250,9 +255,12 @@ public class TaskbarModelCallbacks implements mControllers.taskbarPopupController.setDeepShortcutMap(deepShortcutMapCopy); } @UiThread @Override public void bindAllApplications(AppInfo[] apps, int flags) { mControllers.taskbarAllAppsController.setApps(apps, flags); public void bindAllApplications(AppInfo[] apps, int flags, Map<PackageUserKey, Integer> packageUserKeytoUidMap) { Preconditions.assertUIThread(); mControllers.taskbarAllAppsController.setApps(apps, flags, packageUserKeytoUidMap); mControllers.taskbarRecentAppsController.setApps(apps); } Loading
quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsController.java +8 −3 Original line number Diff line number Diff line Loading @@ -26,7 +26,9 @@ import com.android.launcher3.taskbar.TaskbarControllers; import com.android.launcher3.taskbar.overlay.TaskbarOverlayContext; import com.android.launcher3.util.PackageUserKey; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.function.Predicate; /** Loading @@ -53,6 +55,8 @@ public final class TaskbarAllAppsController { private boolean mDisallowGlobalDrag; private boolean mDisallowLongClick; private Map<PackageUserKey, Integer> mPackageUserKeytoUidMap = Collections.emptyMap(); /** Initialize the controller. */ public void init(TaskbarControllers controllers, boolean allAppsVisible) { mControllers = controllers; Loading @@ -67,11 +71,12 @@ public final class TaskbarAllAppsController { } /** Updates the current {@link AppInfo} instances. */ public void setApps(AppInfo[] apps, int flags) { public void setApps(AppInfo[] apps, int flags, Map<PackageUserKey, Integer> map) { mApps = apps; mAppsModelFlags = flags; mPackageUserKeytoUidMap = map; if (mAppsView != null) { mAppsView.getAppsStore().setApps(mApps, mAppsModelFlags); mAppsView.getAppsStore().setApps(mApps, mAppsModelFlags, mPackageUserKeytoUidMap); } } Loading Loading @@ -136,7 +141,7 @@ public final class TaskbarAllAppsController { viewController.show(animate); mAppsView = overlayContext.getAppsView(); mAppsView.getAppsStore().setApps(mApps, mAppsModelFlags); mAppsView.getAppsStore().setApps(mApps, mAppsModelFlags, mPackageUserKeytoUidMap); mAppsView.getFloatingHeaderView() .findFixedRowByType(PredictionRowView.class) .setPredictedApps(mPredictedApps); Loading
quickstep/src/com/android/quickstep/logging/StatsLogCompatManager.java +23 −15 Original line number Diff line number Diff line Loading @@ -566,9 +566,10 @@ public class StatsLogCompatManager extends StatsLogManager { * Helps to construct and log statsd compatible impression events. */ private static class StatsCompatImpressionLogger implements StatsImpressionLogger { private final IntArray mResultTypeList = new IntArray(); private final IntArray mResultCountList = new IntArray(); private int[] mResultTypeList = new int[]{}; private int[] mResultCountList = new int[]{}; private final List<Boolean> mAboveKeyboardList = new ArrayList<>(); private int[] mUidList = new int[]{}; private InstanceId mInstanceId = DEFAULT_INSTANCE_ID; private State mLauncherState = State.UNKNOWN; private int mQueryLength = -1; Loading @@ -593,25 +594,29 @@ public class StatsLogCompatManager extends StatsLogManager { @Override public StatsImpressionLogger withResultType(IntArray resultType) { this.mResultTypeList.clear(); this.mResultTypeList.addAll(resultType); mResultTypeList = resultType.toArray(); return this; } @Override public StatsImpressionLogger withResultCount(IntArray resultCount) { this.mResultCountList.clear(); this.mResultCountList.addAll(resultCount); mResultCountList = resultCount.toArray(); return this; } @Override public StatsImpressionLogger withAboveKeyboard(List<Boolean> aboveKeyboard) { this.mAboveKeyboardList.clear(); mAboveKeyboardList.clear(); this.mAboveKeyboardList.addAll(aboveKeyboard); return this; } @Override public StatsImpressionLogger withUids(IntArray uid) { mUidList = uid.toArray(); return this; } @Override public void log(EventEnum event) { boolean[] mAboveKeyboard = new boolean[mAboveKeyboardList.size()]; Loading @@ -626,11 +631,12 @@ public class StatsLogCompatManager extends StatsLogManager { logStringBuilder.append(String.format("ImpressionEvent:%s ", name)); logStringBuilder.append(String.format("LauncherState = %s ", mLauncherState)); logStringBuilder.append(String.format("QueryLength = %s ", mQueryLength)); for (int i = 0; i < mResultTypeList.size(); i++) { for (int i = 0; i < mResultTypeList.length; i++) { logStringBuilder.append(String.format( "\n ResultType = %s with ResultCount = %s with is_above_keyboard = %s", mResultTypeList.get(i), mResultCountList.get(i), mAboveKeyboard[i])); "\n ResultType = %s with ResultCount = %s with is_above_keyboard = %s" + " with uid = %s", mResultTypeList[i], mResultCountList[i], mAboveKeyboard[i], mUidList[i])); } Log.d(IMPRESSION_TAG, logStringBuilder.toString()); } Loading @@ -643,11 +649,13 @@ public class StatsLogCompatManager extends StatsLogManager { mLauncherState.getLauncherState(), // state mQueryLength, // query_length //result type list mResultTypeList.toArray(), mResultTypeList, // result count list mResultCountList.toArray(), mResultCountList, // above keyboard list mAboveKeyboard mAboveKeyboard, // uid list mUidList ); } } Loading
src/com/android/launcher3/Launcher.java +9 −2 Original line number Diff line number Diff line Loading @@ -133,6 +133,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.annotation.StringRes; import androidx.annotation.UiThread; import androidx.annotation.VisibleForTesting; import com.android.launcher3.DropTarget.DragObject; Loading Loading @@ -205,6 +206,7 @@ import com.android.launcher3.util.LockedUserState; import com.android.launcher3.util.OnboardingPrefs; import com.android.launcher3.util.PackageUserKey; import com.android.launcher3.util.PendingRequestArgs; import com.android.launcher3.util.Preconditions; import com.android.launcher3.util.RunnableList; import com.android.launcher3.util.SafeCloseable; import com.android.launcher3.util.ScreenOnTracker; Loading Loading @@ -246,6 +248,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.function.Predicate; import java.util.function.Supplier; Loading Loading @@ -2971,8 +2974,12 @@ public class Launcher extends StatefulActivity<LauncherState> */ @Override @TargetApi(Build.VERSION_CODES.S) public void bindAllApplications(AppInfo[] apps, int flags) { mAppsView.getAppsStore().setApps(apps, flags); @UiThread public void bindAllApplications(AppInfo[] apps, int flags, Map<PackageUserKey, Integer> packageUserKeytoUidMap) { Preconditions.assertUIThread(); AllAppsStore appsStore = mAppsView.getAppsStore(); appsStore.setApps(apps, flags, packageUserKeytoUidMap); PopupContainerWithArrow.dismissInvalidPopup(this); if (Utilities.ATLEAST_S) { Trace.endAsyncSection(DISPLAY_ALL_APPS_TRACE_METHOD_NAME, Loading
src/com/android/launcher3/allapps/AllAppsStore.java +15 −3 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static com.android.launcher3.model.data.AppInfo.EMPTY_ARRAY; import static com.android.launcher3.model.data.ItemInfoWithIcon.FLAG_SHOW_DOWNLOAD_PROGRESS_MASK; import static com.android.launcher3.testing.shared.TestProtocol.WORK_TAB_MISSING; import android.os.UserHandle; import android.util.Log; import android.view.View; import android.view.ViewGroup; Loading @@ -35,7 +36,9 @@ import com.android.launcher3.util.PackageUserKey; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.CopyOnWriteArrayList; import java.util.function.Consumer; import java.util.function.Predicate; Loading @@ -57,8 +60,8 @@ public class AllAppsStore { private final List<OnUpdateListener> mUpdateListeners = new CopyOnWriteArrayList<>(); private final ArrayList<ViewGroup> mIconContainers = new ArrayList<>(); private Map<PackageUserKey, Integer> mPackageUserKeytoUidMap = Collections.emptyMap(); private int mModelFlags; private int mDeferUpdatesFlags = 0; private boolean mUpdatePending = false; Loading @@ -67,12 +70,21 @@ public class AllAppsStore { } /** * Sets the current set of apps. * Sets the current set of apps and sets mapping for {@link PackageUserKey} to Uid for * the current set of apps. */ public void setApps(AppInfo[] apps, int flags) { public void setApps(AppInfo[] apps, int flags, Map<PackageUserKey, Integer> map) { mApps = apps; mModelFlags = flags; notifyUpdate(); mPackageUserKeytoUidMap = map; } /** * Look up for Uid using package name and user handle for the current set of apps. */ public int lookUpForUid(String packageName, UserHandle user) { return mPackageUserKeytoUidMap.getOrDefault(new PackageUserKey(packageName, user), -1); } /** Loading