Android 13 Launcher3修改单层桌面

Launcher要修改单层桌面,有3个地方需要修改

屏蔽取消上划显示所有应用
将应用图标自动加载到单层桌面,包括开机和后续安装的应用
删除长按桌面图标的“remove”按钮
1. 屏蔽取消上划显示所有应用
diff --git a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java
index 9016c1bea6..d50e062396 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java
@@ -69,9 +69,6 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr
             // Otherwise, don't intercept so they can scroll recents, dismiss a task, etc.
             return false;
         }
-        if (LauncherAppState.isUserSingleLayerStyle() && mLauncher.isInState(NORMAL)) {
-            return false;
-        }
         if (mLauncher.isInState(ALL_APPS)) {
             // In all-apps only listen if the container cannot scroll itself
             if (!mLauncher.getAppsView().shouldContainerScroll(ev)) {
@@ -100,6 +97,9 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr
         } else if (fromState == OVERVIEW) {
             return isDragTowardPositive ? OVERVIEW : NORMAL;
         } else if (fromState == NORMAL && isDragTowardPositive) {
+            if (LauncherAppState.isUserSingleLayerStyle()) {
+                return fromState;
+            }
             return ALL_APPS;
         }
2. 将应用图标自动加载到单层桌面,包括开机和后续安装的应用
diff --git a/src/com/android/launcher3/LauncherAppState.java b/src/com/android/launcher3/LauncherAppState.java
index 33eed47236..a80de99614 100644
--- a/src/com/android/launcher3/LauncherAppState.java
+++ b/src/com/android/launcher3/LauncherAppState.java
@@ -226,4 +226,8 @@ public class LauncherAppState implements SafeCloseable {
             }
         }
     }
+
+    public static boolean isUserSingleLayerStyle() {
+        return true;
+    }
 }
diff --git a/src/com/android/launcher3/model/AddWorkspaceItemsTask.java b/src/com/android/launcher3/model/AddWorkspaceItemsTask.java
index 0d978e1b23..df0d629b83 100644
--- a/src/com/android/launcher3/model/AddWorkspaceItemsTask.java
+++ b/src/com/android/launcher3/model/AddWorkspaceItemsTask.java
@@ -104,8 +104,13 @@ public class AddWorkspaceItemsTask extends BaseModelUpdateTask {
                         continue;
                     }
 
+                    boolean mForceAdd = false;
+                    if (item.itemType == LauncherSettings.Favorites.ITEM_TYPE_APPLICATION
+                            && item instanceof WorkspaceItemInfo) {
+                        mForceAdd = ((WorkspaceItemInfo) item).hasExtraFlag(WorkspaceItemInfo.EXTRA_FLAG_FORCE_ADD);
+                    }
                     // b/139663018 Short-circuit this logic if the icon is a system app
-                    if (PackageManagerHelper.isSystemApp(app.getContext(),
+                    if (!mForceAdd && PackageManagerHelper.isSystemApp(app.getContext(),
                             Objects.requireNonNull(item.getIntent()))) {
                         if (TestProtocol.sDebugTracing) {
                             Log.d(TestProtocol.MISSING_PROMISE_ICON,
diff --git a/src/com/android/launcher3/model/BgDataModel.java b/src/com/android/launcher3/model/BgDataModel.java
index b0f6e13ae3..54997fff9f 100644
--- a/src/com/android/launcher3/model/BgDataModel.java
+++ b/src/com/android/launcher3/model/BgDataModel.java
@@ -404,6 +404,12 @@ public class BgDataModel {
         return items;
     }
 
+    public synchronized ArrayList<ItemInfo> getAllWorkspaceItemsWithoutAppWidget() {
+        ArrayList<ItemInfo> items = new ArrayList<>(workspaceItems.size());
+        items.addAll(workspaceItems);
+        return items;
+    }
+
     /**
      * Calls the provided {@code op} for all workspaceItems in the in-memory model (both persisted
      * items and dynamic/predicted items for the provided {@code userHandle}.
diff --git a/src/com/android/launcher3/model/ItemInstallQueue.java b/src/com/android/launcher3/model/ItemInstallQueue.java
index 69f9b53090..b21bb91650 100644
--- a/src/com/android/l

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值