diff --git a/src/com/android/launcher3/views/WorkEduView.java b/src/com/android/launcher3/views/WorkEduView.java index d6737db725..03d3026069 100644 --- a/src/com/android/launcher3/views/WorkEduView.java +++ b/src/com/android/launcher3/views/WorkEduView.java @@ -60,7 +60,6 @@ public class WorkEduView extends AbstractSlideInView private View mViewWrapper; private Button mProceedButton; private TextView mContentText; - private AllAppsPagedView mAllAppsPagedView; private int mNextWorkEduStep = WORK_EDU_PERSONAL_APPS; @@ -101,13 +100,10 @@ public class WorkEduView extends AbstractSlideInView // make sure layout does not shrink when we change the text mContentText.post(() -> mContentText.setMinLines(mContentText.getLineCount())); - if (mLauncher.getAppsView().getContentView() instanceof AllAppsPagedView) { - mAllAppsPagedView = (AllAppsPagedView) mLauncher.getAppsView().getContentView(); - } mProceedButton.setOnClickListener(view -> { - if (mAllAppsPagedView != null) { - mAllAppsPagedView.snapToPage(AllAppsContainerView.AdapterHolder.WORK); + if (getAllAppsPagedView() != null) { + getAllAppsPagedView().snapToPage(AllAppsContainerView.AdapterHolder.WORK); } goToWorkTab(true); }); @@ -155,8 +151,8 @@ public class WorkEduView extends AbstractSlideInView } private void goToFirstPage() { - if (mAllAppsPagedView != null) { - mAllAppsPagedView.snapToPageImmediately(AllAppsContainerView.AdapterHolder.MAIN); + if (getAllAppsPagedView() != null) { + getAllAppsPagedView().snapToPageImmediately(AllAppsContainerView.AdapterHolder.MAIN); } } @@ -171,6 +167,11 @@ public class WorkEduView extends AbstractSlideInView mOpenCloseAnimator.start(); } + private AllAppsPagedView getAllAppsPagedView() { + View v = mLauncher.getAppsView().getContentView(); + return (v instanceof AllAppsPagedView) ? (AllAppsPagedView) v : null; + } + /** * Checks if user has not seen onboarding UI yet and shows it when user navigates to all apps */ diff --git a/tests/src/com/android/launcher3/ui/WorkTabTest.java b/tests/src/com/android/launcher3/ui/WorkTabTest.java index 1e1cf04dfd..ac0d355704 100644 --- a/tests/src/com/android/launcher3/ui/WorkTabTest.java +++ b/tests/src/com/android/launcher3/ui/WorkTabTest.java @@ -82,6 +82,7 @@ public class WorkTabTest extends AbstractLauncherUiTest { mDevice.pressHome(); waitForLauncherCondition("Launcher didn't start", Objects::nonNull); executeOnLauncher(launcher -> launcher.getStateManager().goToState(ALL_APPS)); + waitForState("Launcher internal state didn't switch to All Apps", () -> ALL_APPS); waitForLauncherCondition("Personal tab is missing", launcher -> launcher.getAppsView().isPersonalTabVisible(), 60000); waitForLauncherCondition("Work tab is missing", @@ -180,6 +181,10 @@ public class WorkTabTest extends AbstractLauncherUiTest { // open work tab executeOnLauncher(launcher -> launcher.getStateManager().goToState(ALL_APPS)); waitForState("Launcher did not switch to all apps", () -> ALL_APPS); + waitForLauncherCondition("Work tab not setup", + launcher -> launcher.getAppsView().getContentView() instanceof AllAppsPagedView, + 60000); + executeOnLauncher(launcher -> { AllAppsPagedView pagedView = (AllAppsPagedView) launcher.getAppsView().getContentView(); pagedView.setCurrentPage(WORK_PAGE); @@ -199,7 +204,7 @@ public class WorkTabTest extends AbstractLauncherUiTest { DragLayer dragLayer = l.getDragLayer(); return dragLayer.getChildCount() > 0 && dragLayer.getChildAt( dragLayer.getChildCount() - 1) instanceof WorkEduView; - }); + }, 6000); return getFromLauncher(launcher -> (WorkEduView) launcher.getDragLayer().getChildAt( launcher.getDragLayer().getChildCount() - 1)); }