diff --git a/res/drawable/ic_corp.xml b/res/drawable/ic_corp.xml
new file mode 100644
index 0000000000..48f50076c9
--- /dev/null
+++ b/res/drawable/ic_corp.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/res/layout/work_tab_footer.xml b/res/layout/work_tab_footer.xml
new file mode 100644
index 0000000000..48578d799a
--- /dev/null
+++ b/res/layout/work_tab_footer.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/res/values/colors.xml b/res/values/colors.xml
index b44a31e40d..42fee80928 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -40,4 +40,6 @@
#E5E5E5
#9AA0A6
+
+ #FF6D00
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 266e0b0ad1..e7f45c22f8 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -94,6 +94,8 @@
2dp
36dp
17dp
+ 16dp
+ 20dp
3dp
diff --git a/res/values/strings.xml b/res/values/strings.xml
index fdd4d8d4d8..cbba9a2270 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -324,4 +324,7 @@
Work
+
+ Work profile
+
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 8cc4743a32..c714841828 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -168,4 +168,8 @@
- #DFE1E5
- @color/all_apps_bg_hand_fill_dark
+
+
diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java
index 2bb95cb50f..72ad69bcc8 100644
--- a/src/com/android/launcher3/allapps/AllAppsContainerView.java
+++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java
@@ -120,8 +120,8 @@ public class AllAppsContainerView extends RelativeLayout implements DragSource,
addView(mTouchFeedbackView, size, size);
mAH = new AdapterHolder[2];
- mAH[AdapterHolder.MAIN] = new AdapterHolder();
- mAH[AdapterHolder.WORK] = new AdapterHolder();
+ mAH[AdapterHolder.MAIN] = new AdapterHolder(false /* isWork */);
+ mAH[AdapterHolder.WORK] = new AdapterHolder(true /* isWork */);
}
@Override
@@ -627,8 +627,8 @@ public class AllAppsContainerView extends RelativeLayout implements DragSource,
AllAppsRecyclerView recyclerView;
boolean verticalFadingEdge;
- AdapterHolder() {
- appsList = new AlphabeticalAppsList(mLauncher, mComponentToAppMap);
+ AdapterHolder(boolean isWork) {
+ appsList = new AlphabeticalAppsList(mLauncher, mComponentToAppMap, isWork);
adapter = new AllAppsGridAdapter(mLauncher, appsList, mLauncher,
AllAppsContainerView.this, true);
appsList.setAdapter(adapter);
diff --git a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java
index ac8d367157..da4d9f0cc2 100644
--- a/src/com/android/launcher3/allapps/AllAppsGridAdapter.java
+++ b/src/com/android/launcher3/allapps/AllAppsGridAdapter.java
@@ -18,6 +18,7 @@ package com.android.launcher3.allapps;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
+import android.os.UserHandle;
import android.support.animation.DynamicAnimation;
import android.support.animation.SpringAnimation;
import android.support.v4.view.accessibility.AccessibilityEventCompat;
@@ -32,6 +33,7 @@ import android.view.View.OnFocusChangeListener;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;
+import android.widget.Switch;
import android.widget.TextView;
import com.android.launcher3.AppInfo;
@@ -41,6 +43,7 @@ import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.allapps.AlphabeticalAppsList.AdapterItem;
import com.android.launcher3.anim.SpringAnimationHandler;
+import com.android.launcher3.compat.UserManagerCompat;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.discovery.AppDiscoveryAppInfo;
import com.android.launcher3.discovery.AppDiscoveryItemView;
@@ -68,14 +71,15 @@ public class AllAppsGridAdapter extends RecyclerView.Adapter userProfiles = userManager.getUserProfiles();
+ for (UserHandle userProfile : userProfiles) {
+ if (userManager.isQuietModeEnabled(userProfile)) {
+ return true;
+ }
+ }
+ return false;
+ }
}
diff --git a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
index 09357f786d..5789b67b3b 100644
--- a/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
+++ b/src/com/android/launcher3/allapps/AllAppsRecyclerView.java
@@ -143,7 +143,7 @@ public class AllAppsRecyclerView extends BaseRecyclerView implements LogContaine
RecyclerView.RecycledViewPool pool = getRecycledViewPool();
int approxRows = (int) Math.ceil(grid.availableHeightPx / grid.allAppsIconSizePx);
pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_EMPTY_SEARCH, 1);
- pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_SEARCH_MARKET_DIVIDER, 1);
+ pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_ALL_APPS_DIVIDER, 1);
pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_SEARCH_MARKET, 1);
pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_ICON, approxRows * mNumAppsPerRow);
pool.setMaxRecycledViews(AllAppsGridAdapter.VIEW_TYPE_PREDICTION_ICON, mNumAppsPerRow);
@@ -167,7 +167,7 @@ public class AllAppsRecyclerView extends BaseRecyclerView implements LogContaine
putSameHeightFor(adapter, widthMeasureSpec, heightMeasureSpec,
AllAppsGridAdapter.VIEW_TYPE_PREDICTION_DIVIDER,
- AllAppsGridAdapter.VIEW_TYPE_SEARCH_MARKET_DIVIDER);
+ AllAppsGridAdapter.VIEW_TYPE_ALL_APPS_DIVIDER);
putSameHeightFor(adapter, widthMeasureSpec, heightMeasureSpec,
AllAppsGridAdapter.VIEW_TYPE_SEARCH_MARKET);
putSameHeightFor(adapter, widthMeasureSpec, heightMeasureSpec,
diff --git a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
index 7cf2d9564d..12715cba2d 100644
--- a/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
+++ b/src/com/android/launcher3/allapps/AlphabeticalAppsList.java
@@ -140,9 +140,9 @@ public class AlphabeticalAppsList {
return item;
}
- public static AdapterItem asMarketDivider(int pos) {
+ public static AdapterItem asAllAppsDivider(int pos) {
AdapterItem item = new AdapterItem();
- item.viewType = AllAppsGridAdapter.VIEW_TYPE_SEARCH_MARKET_DIVIDER;
+ item.viewType = AllAppsGridAdapter.VIEW_TYPE_ALL_APPS_DIVIDER;
item.position = pos;
return item;
}
@@ -160,6 +160,13 @@ public class AlphabeticalAppsList {
item.position = pos;
return item;
}
+
+ public static AdapterItem asWorkTabFooter(int pos) {
+ AdapterItem item = new AdapterItem();
+ item.viewType = AllAppsGridAdapter.VIEW_TYPE_WORK_TAB_FOOTER;
+ item.position = pos;
+ return item;
+ }
}
private final Launcher mLauncher;
@@ -179,6 +186,8 @@ public class AlphabeticalAppsList {
// The set of predicted apps resolved from the component names and the current set of apps
private final List mPredictedApps = new ArrayList<>();
private final List mDiscoveredApps = new ArrayList<>();
+ // Is it the work profile app list.
+ private final boolean mIsWork;
// The of ordered component names as a result of a search query
private ArrayList mSearchResults;
@@ -191,11 +200,16 @@ public class AlphabeticalAppsList {
private int mNumAppRowsInAdapter;
private ItemInfoMatcher mItemFilter;
- public AlphabeticalAppsList(Context context, HashMap componentToAppMap) {
+ public AlphabeticalAppsList(
+ Context context,
+ HashMap componentToAppMap,
+ boolean isWork) {
mComponentToAppMap = componentToAppMap;
mLauncher = Launcher.getLauncher(context);
mIndexer = new AlphabeticIndexCompat(context);
mAppNameComparator = new AppInfoComparator(context);
+ mIsWork = isWork;
}
public void updateItemFilter(ItemInfoMatcher itemFilter) {
@@ -545,7 +559,7 @@ public class AlphabeticalAppsList {
if (hasNoFilteredResults()) {
mAdapterItems.add(AdapterItem.asEmptySearch(position++));
} else {
- mAdapterItems.add(AdapterItem.asMarketDivider(position++));
+ mAdapterItems.add(AdapterItem.asAllAppsDivider(position++));
}
mAdapterItems.add(AdapterItem.asMarketSearch(position++));
}
@@ -604,6 +618,12 @@ public class AlphabeticalAppsList {
break;
}
}
+
+ // Add the work profile footer if required.
+ if (mIsWork) {
+ mAdapterItems.add(AdapterItem.asAllAppsDivider(position++));
+ mAdapterItems.add(AdapterItem.asWorkTabFooter(position++));
+ }
}
public boolean isAppDiscoveryRunning() {