Load and draw Recent/Running tasks that aren't in Hotseat
- Re-support GroupTask as a tag on TaskbarView BubbleTextViews - Can tap to launch (startActivityFromRecents) or drag and drop - Move divider when enable_recents_in_taskbar is true Behavior: - While in Desktop mode, all open tasks show up in TaskbarView, either in the Hotseat section or the Running apps section past the divider. Each one also has a running line indicator. - While in Fullscreen mode, up to 2 Recent apps that are not part of Hotseat will be added to the right of the divider. Flag: com.android.launcher3.enable_recents_in_taskbar Test: TaskbarRecentAppsControllerTest Bug: 315354060 Change-Id: I2e2870cca434b51f276a701860edb32069109159
This commit is contained in:
1 parent
7c7c90528d
commit
c5995c8f6d
8 files changed
+399
-50
No files matched your search
@@ -33,6 +33,7 @@ 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.util.GroupTask;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
@@ -130,7 +131,7 @@ public class TaskbarModelCallbacks implements
|
||||
final int itemCount = mContainer.getChildCount();
|
||||
for (int itemIdx = 0; itemIdx < itemCount; itemIdx++) {
|
||||
View item = mContainer.getChildAt(itemIdx);
|
||||
if (op.evaluate((ItemInfo) item.getTag(), item)) {
|
||||
if (item.getTag() instanceof ItemInfo itemInfo && op.evaluate(itemInfo, item)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -201,18 +202,20 @@ public class TaskbarModelCallbacks implements
|
||||
if (mDeferUpdatesForSUW) {
|
||||
ItemInfo[] finalHotseatItemInfos = hotseatItemInfos;
|
||||
mDeferredUpdates = () ->
|
||||
commitHotseatItemUpdates(finalHotseatItemInfos, runningPackages,
|
||||
commitHotseatItemUpdates(finalHotseatItemInfos,
|
||||
recentAppsController.getShownTasks(), runningPackages,
|
||||
minimizedPackages);
|
||||
} else {
|
||||
commitHotseatItemUpdates(hotseatItemInfos, runningPackages, minimizedPackages);
|
||||
commitHotseatItemUpdates(hotseatItemInfos,
|
||||
recentAppsController.getShownTasks(), runningPackages, minimizedPackages);
|
||||
}
|
||||
}
|
||||
|
||||
private void commitHotseatItemUpdates(ItemInfo[] hotseatItemInfos, Set<String> runningPackages,
|
||||
Set<String> minimizedPackages) {
|
||||
mContainer.updateHotseatItems(hotseatItemInfos);
|
||||
mControllers.taskbarViewController.updateIconViewsRunningStates(runningPackages,
|
||||
minimizedPackages);
|
||||
private void commitHotseatItemUpdates(ItemInfo[] hotseatItemInfos, List<GroupTask> recentTasks,
|
||||
Set<String> runningPackages, Set<String> minimizedPackages) {
|
||||
mContainer.updateHotseatItems(hotseatItemInfos, recentTasks);
|
||||
mControllers.taskbarViewController.updateIconViewsRunningStates(
|
||||
runningPackages, minimizedPackages);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user