diff --git a/packages/apps/Launcher3/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java b/packages/apps/Launcher3/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java
index e56c90c20cb..020ecedeb72 100644
--- a/packages/apps/Launcher3/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java
+++ b/packages/apps/Launcher3/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java
@@ -114,6 +114,8 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr
@Override
protected boolean canInterceptTouch(MotionEvent ev) {
+
+ if(true){ return false; }
// If we are swiping to all apps instead of overview, allow it from anywhere.
boolean interceptAnywhere = mLauncher.isInState(NORMAL);
if (mCurrentAnimation != null) {
diff --git a/packages/apps/Launcher3/src/com/android/launcher3/model/AddWorkspaceItemsTask.java b/packages/apps/Launcher3/src/com/android/launcher3/model/AddWorkspaceItemsTask.java
index 31ef2e5ea67..177f3513603 100644
--- a/packages/apps/Launcher3/src/com/android/launcher3/model/AddWorkspaceItemsTask.java
+++ b/packages/apps/Launcher3/src/com/android/launcher3/model/AddWorkspaceItemsTask.java
@@ -103,7 +103,7 @@ public class AddWorkspaceItemsTask extends BaseModelUpdateTask {
Log.d(TestProtocol.MISSING_PROMISE_ICON,
LOG + " Item is a system app.");
}
- continue;
+ // continue;
}
}
diff --git a/packages/apps/Launcher3/src/com/android/launcher3/model/BaseModelUpdateTask.java b/packages/apps/Launcher3/src/com/android/launcher3/model/BaseModelUpdateTask.java
index 2a6a6919e08..6e308d56c01 100644
--- a/packages/apps/Launcher3/src/com/android/launcher3/model/BaseModelUpdateTask.java
+++ b/packages/apps/Launcher3/src/com/android/launcher3/model/BaseModelUpdateTask.java
@@ -69,7 +69,7 @@ public abstract class BaseModelUpdateTask implements ModelUpdateTask {
Log.d(TAG, "Ignoring model task since loader is pending=" + this);
}
// Loader has not yet run.
- return;
+ // return;
}
execute(mApp, mDataModel, mAllAppsList);
}
diff --git a/packages/apps/Launcher3/src/com/android/launcher3/model/ItemInstallQueue.java b/packages/apps/Launcher3/src/com/android/launcher3/model/ItemInstallQueue.java
index 5a220f74c73..5e6093a19a2 100644
--- a/packages/apps/Launcher3/src/com/android/launcher3/model/ItemInstallQueue.java
+++ b/packages/apps/Launcher3/src/com/android/launcher3/model/ItemInstallQueue.java
@@ -247,7 +247,7 @@ public class ItemInstallQueue {
MODEL_EXECUTOR.post(this::flushQueueInBackground);
}
- private static class PendingInstallShortcutInfo extends ItemInfo {
+ public static class PendingInstallShortcutInfo extends ItemInfo {
final Intent intent;
diff --git a/packages/apps/Launcher3/src/com/android/launcher3/model/LoaderTask.java b/packages/apps/Launcher3/src/com/android/launcher3/model/LoaderTask.java
index f1c5d59fc8f..be24240884d 100644
--- a/packages/apps/Launcher3/src/com/android/launcher3/model/LoaderTask.java
+++ b/packages/apps/Launcher3/src/com/android/launcher3/model/LoaderTask.java
@@ -52,6 +52,8 @@ import android.util.Log;
import android.util.LongSparseArray;
import android.util.TimingLogger;
+import android.util.Pair;
+
import androidx.annotation.Nullable;
import com.android.launcher3.DeviceProfile;
@@ -244,6 +246,7 @@ public class LoaderTask implements Runnable {
}
logASplit(logger, "loadAllApps");
+ getAllApplications();
verifyNotStopped();
mResults.bindAllApps();
logASplit(logger, "bindAllApps");
@@ -342,6 +345,31 @@ public class LoaderTask implements Runnable {
loadWorkspace(allDeepShortcuts, contentUri, selection, null);
}
+ /*
+ * 加载所有应用
+ */
+ private void getAllApplications(){
+ final Context context = mApp.getContext();
+ ArrayList<Pair<ItemInfo,Object>> installQueue = new ArrayList<>();
+ final List<UserHandle> profiles = mUserManager.getUserProfiles();
+
+ for(UserHandle user : profiles){
+ final List<LauncherActivityInfo> apps = mLauncherApps.getActivityList(null,user);
+ ArrayList<ItemInstallQueue.PendingInstallShortcutInfo> added = new ArrayList<>();
+ synchronized (this){
+ for(LauncherActivityInfo app : apps){
+ ItemInstallQueue.PendingInstallShortcutInfo pendingInstallShortcutInfo
+ = new ItemInstallQueue.PendingInstallShortcutInfo(app.getActivityInfo().packageName,user);
+ added.add(pendingInstallShortcutInfo);
+ installQueue.add(pendingInstallShortcutInfo.getItemInfo(context));
+ }
+ }
+ if(!added.isEmpty()){
+ mApp.getModel().addAndBindAddedWorkspaceItems(installQueue);
+ }
+ }
+ }
+
protected void loadWorkspace(
List<ShortcutInfo> allDeepShortcuts,
Uri contentUri,
diff --git a/packages/apps/Launcher3/src/com/android/launcher3/model/PackageUpdatedTask.java b/packages/apps/Launcher3/src/com/android/launcher3/model/PackageUpdatedTask.java
index 489bc38376a..7da0c77b6e2 100644
--- a/packages/apps/Launcher3/src/com/android/launcher3/model/PackageUpdatedTask.java
+++ b/packages/apps/Launcher3/src/com/android/launcher3/model/PackageUpdatedTask.java
@@ -58,6 +58,8 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.function.Predicate;
+import android.util.Pair;
+import com.android.launcher3.model.data.AppInfo;
/**
* Handles updates due to changes in package manager (app installed/updated/removed)
@@ -177,6 +179,8 @@ public class PackageUpdatedTask extends BaseModelUpdateTask {
bindApplicationsIfNeeded();
+ updateToWorkSpace(context,app,appsList);
+
final IntSet removedShortcuts = new IntSet();
// Shortcuts to keep even if the corresponding app was removed
final IntSet forceKeepShortcuts = new IntSet();
@@ -359,6 +363,36 @@ public class PackageUpdatedTask extends BaseModelUpdateTask {
bindUpdatedWidgets(dataModel);
}
}
+ //安装的app添加到workspace工作区
+ public void updateToWorkSpace(Context context,LauncherAppState app,AllAppsList appsList){
+ ArrayList<Pair<ItemInfo,Object>> installQueue = new ArrayList<>();
+ UserManager mUserManager = app.getContext().getSystemService(UserManager.class);
+ final List<UserHandle> profiles = mUserManager.getUserProfiles();
+ ArrayList<ItemInstallQueue.PendingInstallShortcutInfo> added = new ArrayList<>();
+ LauncherApps mLauncherApps = app.getContext().getSystemService(LauncherApps.class);
+ for(UserHandle user : profiles){
+ final List<LauncherActivityInfo> apps = mLauncherApps.getActivityList(null,user);
+ synchronized (this){
+ for(LauncherActivityInfo info :apps){
+ for(AppInfo appInfo:appsList.data){
+ String packageName = info.getComponentName().getPackageName();
+ if(info.getComponentName().equals(appInfo.componentName)){
+ if(DEBUG){
+ Log.d(TAG,"updateToWorkSpace packageName: " + packageName);
+ }
+ ItemInstallQueue.PendingInstallShortcutInfo mPendingInstallShortcutInfo
+ = new ItemInstallQueue.PendingInstallShortcutInfo(packageName,user);
+ added.add(mPendingInstallShortcutInfo);
+ installQueue.add(mPendingInstallShortcutInfo.getItemInfo(context));
+ }
+ }
+ }
+ }
+ }
+ if(!added.isEmpty()){
+ app.getModel().addAndBindAddedWorkspaceItems(installQueue);
+ }
+ }
/**
* Updates {@param si}'s intent to point to a new ComponentName.
diff --git a/packages/apps/Launcher3/src_build_config/com/android/launcher3/BuildConfig.java b/packages/apps/Launcher3/src_build_config/com/android/launcher3/BuildConfig.java
index 9a81d3f54cd..8c83bcc3727 100644
--- a/packages/apps/Launcher3/src_build_config/com/android/launcher3/BuildConfig.java
+++ b/packages/apps/Launcher3/src_build_config/com/android/launcher3/BuildConfig.java
@@ -23,5 +23,5 @@ public final class BuildConfig {
* Flag to state if the QSB is on the first screen and placed on the top,
* this can be overwritten in other launchers with a different value, if needed.
*/
- public static final boolean QSB_ON_FIRST_SCREEN = true;
+ public static final boolean QSB_ON_FIRST_SCREEN = false;
}
现在改个桌面大家都收钱 了?程序员都改成自媒体了吗