Separating system and user-installed apps in PS container.
We add a horizontal line separator in PS container which demarcates user-installed vs system installed apps in private space. User-installed are shown above the separator, system ones below. UX Mock: https://www.figma.com/file/K6bIIcG882EiJNjxvSWsFT/V%E2%80%A2-Private-Space?node-id=11546%3A310574&mode=dev Mock Image: https://photos.app.goo.gl/Wj8sJkS7P7bRbovg8 Demo video: https://photos.app.goo.gl/MBw6HpDnf6PJqUfs8 Bug: 308054233 Flag: ACONFIG com.android.launcher3.Flags.private_space_sys_apps_separation DEVELOPMENT Test: AlphabeticalAppsListTest Change-Id: Iad8e289c49a05ac7ef1978bd8e4ebe7aa0add0ca
This commit is contained in:
@@ -17,6 +17,7 @@ package com.android.launcher3.allapps;
|
||||
|
||||
import static com.android.launcher3.allapps.SectionDecorationInfo.ROUND_BOTTOM_LEFT;
|
||||
import static com.android.launcher3.allapps.SectionDecorationInfo.ROUND_BOTTOM_RIGHT;
|
||||
import static com.android.launcher3.allapps.SectionDecorationInfo.ROUND_NOTHING;
|
||||
import static com.android.launcher3.allapps.SectionDecorationInfo.ROUND_TOP_LEFT;
|
||||
import static com.android.launcher3.allapps.SectionDecorationInfo.ROUND_TOP_RIGHT;
|
||||
import static com.android.launcher3.allapps.UserProfileManager.STATE_DISABLED;
|
||||
@@ -61,7 +62,8 @@ public abstract class BaseAllAppsAdapter<T extends Context & ActivityContext> ex
|
||||
public static final int VIEW_TYPE_WORK_EDU_CARD = 1 << 4;
|
||||
public static final int VIEW_TYPE_WORK_DISABLED_CARD = 1 << 5;
|
||||
public static final int VIEW_TYPE_PRIVATE_SPACE_HEADER = 1 << 6;
|
||||
public static final int NEXT_ID = 7;
|
||||
public static final int VIEW_TYPE_PRIVATE_SPACE_SYS_APPS_DIVIDER = 1 << 7;
|
||||
public static final int NEXT_ID = 8;
|
||||
|
||||
// Common view type masks
|
||||
public static final int VIEW_TYPE_MASK_DIVIDER = VIEW_TYPE_ALL_APPS_DIVIDER;
|
||||
@@ -69,6 +71,8 @@ public abstract class BaseAllAppsAdapter<T extends Context & ActivityContext> ex
|
||||
|
||||
public static final int VIEW_TYPE_MASK_PRIVATE_SPACE_HEADER =
|
||||
VIEW_TYPE_PRIVATE_SPACE_HEADER;
|
||||
public static final int VIEW_TYPE_MASK_PRIVATE_SPACE_SYS_APPS_DIVIDER =
|
||||
VIEW_TYPE_PRIVATE_SPACE_SYS_APPS_DIVIDER;
|
||||
|
||||
protected final SearchAdapterProvider<?> mAdapterProvider;
|
||||
|
||||
@@ -199,6 +203,11 @@ public abstract class BaseAllAppsAdapter<T extends Context & ActivityContext> ex
|
||||
return isViewType(viewType, VIEW_TYPE_MASK_PRIVATE_SPACE_HEADER);
|
||||
}
|
||||
|
||||
/** Checks if the passed viewType represents private space system apps divider. */
|
||||
public static boolean isPrivateSpaceSysAppsDividerView(int viewType) {
|
||||
return isViewType(viewType, VIEW_TYPE_MASK_PRIVATE_SPACE_SYS_APPS_DIVIDER);
|
||||
}
|
||||
|
||||
public void setIconFocusListener(OnFocusChangeListener focusListener) {
|
||||
mIconFocusListener = focusListener;
|
||||
}
|
||||
@@ -227,9 +236,9 @@ public abstract class BaseAllAppsAdapter<T extends Context & ActivityContext> ex
|
||||
case VIEW_TYPE_EMPTY_SEARCH:
|
||||
return new ViewHolder(mLayoutInflater.inflate(R.layout.all_apps_empty_search,
|
||||
parent, false));
|
||||
case VIEW_TYPE_ALL_APPS_DIVIDER:
|
||||
case VIEW_TYPE_ALL_APPS_DIVIDER, VIEW_TYPE_PRIVATE_SPACE_SYS_APPS_DIVIDER:
|
||||
return new ViewHolder(mLayoutInflater.inflate(
|
||||
R.layout.all_apps_divider, parent, false));
|
||||
R.layout.private_space_divider, parent, false));
|
||||
case VIEW_TYPE_WORK_EDU_CARD:
|
||||
return new ViewHolder(mLayoutInflater.inflate(
|
||||
R.layout.work_apps_edu, parent, false));
|
||||
@@ -282,6 +291,11 @@ public abstract class BaseAllAppsAdapter<T extends Context & ActivityContext> ex
|
||||
new SectionDecorationInfo(mActivityContext, roundRegions,
|
||||
false /* decorateTogether */);
|
||||
break;
|
||||
case VIEW_TYPE_PRIVATE_SPACE_SYS_APPS_DIVIDER:
|
||||
adapterItem = mApps.getAdapterItems().get(position);
|
||||
adapterItem.decorationInfo = new SectionDecorationInfo(mActivityContext,
|
||||
ROUND_NOTHING, true /* decorateTogether */);
|
||||
break;
|
||||
case VIEW_TYPE_ALL_APPS_DIVIDER:
|
||||
case VIEW_TYPE_WORK_DISABLED_CARD:
|
||||
// nothing to do
|
||||
|
||||
Reference in New Issue
Block a user