diff --git a/src/com/android/launcher3/allapps/DiscoveryBounce.java b/src/com/android/launcher3/allapps/DiscoveryBounce.java index e8c5f15df9..48fdd73bee 100644 --- a/src/com/android/launcher3/allapps/DiscoveryBounce.java +++ b/src/com/android/launcher3/allapps/DiscoveryBounce.java @@ -111,7 +111,8 @@ public class DiscoveryBounce extends AbstractFloatingView { private static void showForHomeIfNeeded(Launcher launcher, boolean withDelay) { if (!launcher.isInState(NORMAL) - || launcher.getSharedPrefs().getBoolean(HOME_BOUNCE_SEEN, false) + || (launcher.getSharedPrefs().getBoolean(HOME_BOUNCE_SEEN, false) + && !shouldShowForWorkProfile(launcher)) || AbstractFloatingView.getTopOpenView(launcher) != null || UserManagerCompat.getInstance(launcher).isDemoUser() || ActivityManager.isRunningInTestHarness()) { @@ -138,7 +139,8 @@ public class DiscoveryBounce extends AbstractFloatingView { || !launcher.hasBeenResumed() || launcher.isForceInvisible() || launcher.getDeviceProfile().isVerticalBarLayout() - || launcher.getSharedPrefs().getBoolean(SHELF_BOUNCE_SEEN, false) + || (launcher.getSharedPrefs().getBoolean(SHELF_BOUNCE_SEEN, false) + && !shouldShowForWorkProfile(launcher)) || UserManagerCompat.getInstance(launcher).isDemoUser() || ActivityManager.isRunningInTestHarness()) { return; @@ -174,4 +176,10 @@ public class DiscoveryBounce extends AbstractFloatingView { view.mIsOpen = true; launcher.getDragLayer().addView(view); } + + private static boolean shouldShowForWorkProfile(Launcher launcher) { + return !launcher.getSharedPrefs().getBoolean( + PersonalWorkSlidingTabStrip.KEY_SHOWED_PEEK_WORK_TAB, false) + && UserManagerCompat.getInstance(launcher).hasWorkProfile(); + } } diff --git a/src/com/android/launcher3/allapps/PersonalWorkSlidingTabStrip.java b/src/com/android/launcher3/allapps/PersonalWorkSlidingTabStrip.java index a916697bf0..31c5914b81 100644 --- a/src/com/android/launcher3/allapps/PersonalWorkSlidingTabStrip.java +++ b/src/com/android/launcher3/allapps/PersonalWorkSlidingTabStrip.java @@ -39,7 +39,7 @@ public class PersonalWorkSlidingTabStrip extends LinearLayout implements PageInd private static final int POSITION_PERSONAL = 0; private static final int POSITION_WORK = 1; - private static final String KEY_SHOWED_PEEK_WORK_TAB = "showed_peek_work_tab"; + public static final String KEY_SHOWED_PEEK_WORK_TAB = "showed_peek_work_tab"; private final Paint mSelectedIndicatorPaint; private final Paint mDividerPaint; diff --git a/src/com/android/launcher3/compat/UserManagerCompat.java b/src/com/android/launcher3/compat/UserManagerCompat.java index 03e3861eae..ad5147734e 100644 --- a/src/com/android/launcher3/compat/UserManagerCompat.java +++ b/src/com/android/launcher3/compat/UserManagerCompat.java @@ -64,4 +64,6 @@ public abstract class UserManagerCompat { public abstract boolean isDemoUser(); public abstract boolean requestQuietModeEnabled(boolean enableQuietMode, UserHandle user); public abstract boolean isAnyProfileQuietModeEnabled(); + + public abstract boolean hasWorkProfile(); } diff --git a/src/com/android/launcher3/compat/UserManagerCompatVL.java b/src/com/android/launcher3/compat/UserManagerCompatVL.java index 1ff69818a9..eec3438496 100644 --- a/src/com/android/launcher3/compat/UserManagerCompatVL.java +++ b/src/com/android/launcher3/compat/UserManagerCompatVL.java @@ -119,6 +119,16 @@ public class UserManagerCompatVL extends UserManagerCompat { return users == null ? Collections.emptyList() : users; } + @Override + public boolean hasWorkProfile() { + synchronized (this) { + if (mUsers != null) { + return mUsers.size() > 1; + } + } + return getUserProfiles().size() > 1; + } + @Override public CharSequence getBadgedLabelForUser(CharSequence label, UserHandle user) { if (user == null) {