Android 13.0 桌面改成单层桌面的代码记录


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;
 }

现在改个桌面大家都收钱 了?程序员都改成自媒体了吗

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
远程桌面管理系统(Remote Desktop Manager)是一款能否保存编辑删除你的远程桌面连接,带登陆的终端功能。支持连接,双显示器,等等。该软件兼容兼容Microsoft Remote Desktop,终端服务,VNC,LogMeIn,Team Viewer,FTP,SSH,Telnet,Dameware,X Window,VMware,Virtual PC,PC Anywhere, Hyper-V, Citrix, Radmin, Microsoft Remote Assistance, Oracle Virtual Box 等等。 功能特点: 远程连接 连接任何会话类型,如:RDP,SSH,网页,VNC,远程登录,ICA / HDX,网络,的TeamViewer,LogMeIn的和多 提高生产力和工作效率超过60的附加组件 安全地连接到25个以上的类型 管理 保存和管理所有的 输入凭据,并自动登录无处不在 导入或整合现有的管理器,如KeePass的,还有更多 文件及资料 保护敏感数据,如信用卡号,序列号和银行帐户 存储,共享和链接的文档和联系人 创建模板来简化管理 团队解决方案 分享与组织内集中所有的连接和 访问你的数据在离线时 管理和限制用户访问 查看连接日志和跟踪所有远程访问细节 安全 通过最好的加密算法,确保组织 生成强,并确定弱口令 美国联邦政府认可的加密 管理工具 集成的控制台,思杰的XenServer,VMware,微软终端服务器和Hyper-V 许多工具,如远程关机,局域网唤醒和库存报告 执行宏或脚本文件,如PowerShell中,VBScript中,SQL脚本和更多 用户界面与组织 直观的界面为所有类型的用户 易于部署和在企业环境中使用 无需大量培训 其它特点 从安装程序或zip文件部署 便携式设备的操作模式支持 扩展我们的SDK中的应用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值