Loading quickstep/res/layout/overview_actions_container.xml +3 −9 Original line number Diff line number Diff line Loading @@ -21,10 +21,9 @@ <LinearLayout android:id="@+id/action_buttons" android:layout_width="match_parent" android:layout_width="wrap_content" android:layout_height="@dimen/overview_actions_height" android:layout_gravity="bottom" android:gravity="center_horizontal" android:layout_gravity="bottom|center_horizontal" android:orientation="horizontal"> <Button Loading @@ -36,17 +35,12 @@ android:text="@string/action_screenshot" android:theme="@style/ThemeControlHighlightWorkspaceColor" /> <Space android:id="@+id/action_split_space" android:layout_width="@dimen/overview_actions_button_spacing" android:layout_height="1dp" android:visibility="gone" /> <Button android:id="@+id/action_split" style="@style/OverviewActionButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/overview_actions_button_spacing" android:text="@string/action_split" android:theme="@style/ThemeControlHighlightWorkspaceColor" android:visibility="gone" /> Loading quickstep/src/com/android/quickstep/views/OverviewActionsView.java +23 −12 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.FrameLayout; import android.widget.LinearLayout; import androidx.annotation.IntDef; import androidx.annotation.Nullable; Loading Loading @@ -107,6 +108,7 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo private MultiValueAlpha mMultiValueAlpha; protected LinearLayout mActionButtons; // The screenshot button is implemented as a Button in launcher3 and NexusLauncher, but is an // ImageButton in go launcher (does not share a common class with Button). Take care when // casting this. Loading Loading @@ -151,7 +153,8 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo @Override protected void onFinishInflate() { super.onFinishInflate(); mMultiValueAlpha = new MultiValueAlpha(findViewById(R.id.action_buttons), NUM_ALPHAS); mActionButtons = findViewById(R.id.action_buttons); mMultiValueAlpha = new MultiValueAlpha(mActionButtons, NUM_ALPHAS); mMultiValueAlpha.setUpdateVisibility(true); mScreenshotButton = findViewById(R.id.action_screenshot); Loading Loading @@ -243,13 +246,13 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo /** * Updates a batch of flags to hide and show actions buttons for tablet/non tablet case. * @param isSmallScreen True if the current display is a small screen. */ public void updateForSmallScreen(boolean isSmallScreen) { private void updateForIsTablet() { assert mDp != null; // Update flags to see if split button should be hidden. updateSplitButtonHiddenFlags(FLAG_SMALL_SCREEN_HIDE_SPLIT, isSmallScreen); updateSplitButtonHiddenFlags(FLAG_SMALL_SCREEN_HIDE_SPLIT, !mDp.isTablet); // Update flags to see if save app pair button should be hidden. updateAppPairButtonHiddenFlags(FLAG_SMALL_SCREEN_HIDE_APP_PAIR, isSmallScreen); updateAppPairButtonHiddenFlags(FLAG_SMALL_SCREEN_HIDE_APP_PAIR, !mDp.isTablet); } /** Loading @@ -274,7 +277,10 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo mScreenshotButtonHiddenFlags &= ~flag; } int desiredVisibility = mScreenshotButtonHiddenFlags == 0 ? VISIBLE : GONE; if (mScreenshotButton.getVisibility() != desiredVisibility) { mScreenshotButton.setVisibility(desiredVisibility); mActionButtons.requestLayout(); } } /** Loading @@ -292,8 +298,10 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo mSplitButtonHiddenFlags &= ~flag; } int desiredVisibility = mSplitButtonHiddenFlags == 0 ? VISIBLE : GONE; if (mSplitButton.getVisibility() != desiredVisibility) { mSplitButton.setVisibility(desiredVisibility); findViewById(R.id.action_split_space).setVisibility(desiredVisibility); mActionButtons.requestLayout(); } } /** Loading @@ -315,7 +323,10 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo mAppPairButtonHiddenFlags &= ~flag; } int desiredVisibility = mAppPairButtonHiddenFlags == 0 ? VISIBLE : GONE; if (mSaveAppPairButton.getVisibility() != desiredVisibility) { mSaveAppPairButton.setVisibility(desiredVisibility); mActionButtons.requestLayout(); } } public MultiProperty getContentAlpha() { Loading @@ -342,7 +353,7 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo * Returns the visibility of the overview actions buttons. */ public @Visibility int getActionsButtonVisibility() { return findViewById(R.id.action_buttons).getVisibility(); return mActionButtons.getVisibility(); } /** Loading @@ -358,8 +369,7 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo if (mDp == null) { return; } LayoutParams actionParams = (LayoutParams) findViewById( R.id.action_buttons).getLayoutParams(); LayoutParams actionParams = (LayoutParams) mActionButtons.getLayoutParams(); actionParams.setMargins( actionParams.leftMargin, mDp.overviewActionsTopMarginPx, actionParams.rightMargin, getBottomMargin()); Loading @@ -386,6 +396,7 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo mDp = dp; mTaskSize.set(taskSize); updateVerticalMargin(DisplayController.getNavigationMode(getContext())); updateForIsTablet(); requestLayout(); Loading quickstep/src/com/android/quickstep/views/RecentsView.java +2 −4 Original line number Diff line number Diff line Loading @@ -1062,6 +1062,8 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T @Nullable DesktopRecentsTransitionController desktopRecentsTransitionController) { mActionsView = actionsView; mActionsView.updateHiddenFlags(HIDDEN_NO_TASKS, getTaskViewCount() == 0); // Update flags for 1p/3p launchers mActionsView.updateFor3pLauncher(!supportsAppPairs()); mSplitSelectStateController = splitController; mDesktopRecentsTransitionController = desktopRecentsTransitionController; } Loading Loading @@ -4020,10 +4022,6 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T // Update flags to see if actions bar should show buttons for a single task or a pair of // tasks. mActionsView.updateForGroupedTask(isCurrentSplit); // Update flags to see if actions bar should show buttons for tablets or phones. mActionsView.updateForSmallScreen(!mActivity.getDeviceProfile().isTablet); // Update flags for 1p/3p launchers mActionsView.updateFor3pLauncher(!supportsAppPairs()); if (isDesktopModeSupported()) { boolean isCurrentDesktop = getCurrentPageTaskView() instanceof DesktopTaskView; Loading tests/tapl/com/android/launcher3/tapl/BaseOverview.java +3 −2 Original line number Diff line number Diff line Loading @@ -401,8 +401,9 @@ public class BaseOverview extends LauncherInstrumentation.VisibleContainer { if (isTablet && Math.abs(task.getExactCenterX() - mLauncher.getExactScreenCenterX()) >= 1) { return false; } if (!mLauncher.isAppPairsEnabled() && task.isTaskSplit()) { // Overview actions aren't visible for split screen tasks. if (task.isTaskSplit() && (!mLauncher.isAppPairsEnabled() || !isTablet)) { // Overview actions aren't visible for split screen tasks, except for save app pair // button on tablets. return false; } return true; Loading Loading
quickstep/res/layout/overview_actions_container.xml +3 −9 Original line number Diff line number Diff line Loading @@ -21,10 +21,9 @@ <LinearLayout android:id="@+id/action_buttons" android:layout_width="match_parent" android:layout_width="wrap_content" android:layout_height="@dimen/overview_actions_height" android:layout_gravity="bottom" android:gravity="center_horizontal" android:layout_gravity="bottom|center_horizontal" android:orientation="horizontal"> <Button Loading @@ -36,17 +35,12 @@ android:text="@string/action_screenshot" android:theme="@style/ThemeControlHighlightWorkspaceColor" /> <Space android:id="@+id/action_split_space" android:layout_width="@dimen/overview_actions_button_spacing" android:layout_height="1dp" android:visibility="gone" /> <Button android:id="@+id/action_split" style="@style/OverviewActionButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/overview_actions_button_spacing" android:text="@string/action_split" android:theme="@style/ThemeControlHighlightWorkspaceColor" android:visibility="gone" /> Loading
quickstep/src/com/android/quickstep/views/OverviewActionsView.java +23 −12 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.FrameLayout; import android.widget.LinearLayout; import androidx.annotation.IntDef; import androidx.annotation.Nullable; Loading Loading @@ -107,6 +108,7 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo private MultiValueAlpha mMultiValueAlpha; protected LinearLayout mActionButtons; // The screenshot button is implemented as a Button in launcher3 and NexusLauncher, but is an // ImageButton in go launcher (does not share a common class with Button). Take care when // casting this. Loading Loading @@ -151,7 +153,8 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo @Override protected void onFinishInflate() { super.onFinishInflate(); mMultiValueAlpha = new MultiValueAlpha(findViewById(R.id.action_buttons), NUM_ALPHAS); mActionButtons = findViewById(R.id.action_buttons); mMultiValueAlpha = new MultiValueAlpha(mActionButtons, NUM_ALPHAS); mMultiValueAlpha.setUpdateVisibility(true); mScreenshotButton = findViewById(R.id.action_screenshot); Loading Loading @@ -243,13 +246,13 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo /** * Updates a batch of flags to hide and show actions buttons for tablet/non tablet case. * @param isSmallScreen True if the current display is a small screen. */ public void updateForSmallScreen(boolean isSmallScreen) { private void updateForIsTablet() { assert mDp != null; // Update flags to see if split button should be hidden. updateSplitButtonHiddenFlags(FLAG_SMALL_SCREEN_HIDE_SPLIT, isSmallScreen); updateSplitButtonHiddenFlags(FLAG_SMALL_SCREEN_HIDE_SPLIT, !mDp.isTablet); // Update flags to see if save app pair button should be hidden. updateAppPairButtonHiddenFlags(FLAG_SMALL_SCREEN_HIDE_APP_PAIR, isSmallScreen); updateAppPairButtonHiddenFlags(FLAG_SMALL_SCREEN_HIDE_APP_PAIR, !mDp.isTablet); } /** Loading @@ -274,7 +277,10 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo mScreenshotButtonHiddenFlags &= ~flag; } int desiredVisibility = mScreenshotButtonHiddenFlags == 0 ? VISIBLE : GONE; if (mScreenshotButton.getVisibility() != desiredVisibility) { mScreenshotButton.setVisibility(desiredVisibility); mActionButtons.requestLayout(); } } /** Loading @@ -292,8 +298,10 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo mSplitButtonHiddenFlags &= ~flag; } int desiredVisibility = mSplitButtonHiddenFlags == 0 ? VISIBLE : GONE; if (mSplitButton.getVisibility() != desiredVisibility) { mSplitButton.setVisibility(desiredVisibility); findViewById(R.id.action_split_space).setVisibility(desiredVisibility); mActionButtons.requestLayout(); } } /** Loading @@ -315,7 +323,10 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo mAppPairButtonHiddenFlags &= ~flag; } int desiredVisibility = mAppPairButtonHiddenFlags == 0 ? VISIBLE : GONE; if (mSaveAppPairButton.getVisibility() != desiredVisibility) { mSaveAppPairButton.setVisibility(desiredVisibility); mActionButtons.requestLayout(); } } public MultiProperty getContentAlpha() { Loading @@ -342,7 +353,7 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo * Returns the visibility of the overview actions buttons. */ public @Visibility int getActionsButtonVisibility() { return findViewById(R.id.action_buttons).getVisibility(); return mActionButtons.getVisibility(); } /** Loading @@ -358,8 +369,7 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo if (mDp == null) { return; } LayoutParams actionParams = (LayoutParams) findViewById( R.id.action_buttons).getLayoutParams(); LayoutParams actionParams = (LayoutParams) mActionButtons.getLayoutParams(); actionParams.setMargins( actionParams.leftMargin, mDp.overviewActionsTopMarginPx, actionParams.rightMargin, getBottomMargin()); Loading @@ -386,6 +396,7 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo mDp = dp; mTaskSize.set(taskSize); updateVerticalMargin(DisplayController.getNavigationMode(getContext())); updateForIsTablet(); requestLayout(); Loading
quickstep/src/com/android/quickstep/views/RecentsView.java +2 −4 Original line number Diff line number Diff line Loading @@ -1062,6 +1062,8 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T @Nullable DesktopRecentsTransitionController desktopRecentsTransitionController) { mActionsView = actionsView; mActionsView.updateHiddenFlags(HIDDEN_NO_TASKS, getTaskViewCount() == 0); // Update flags for 1p/3p launchers mActionsView.updateFor3pLauncher(!supportsAppPairs()); mSplitSelectStateController = splitController; mDesktopRecentsTransitionController = desktopRecentsTransitionController; } Loading Loading @@ -4020,10 +4022,6 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T // Update flags to see if actions bar should show buttons for a single task or a pair of // tasks. mActionsView.updateForGroupedTask(isCurrentSplit); // Update flags to see if actions bar should show buttons for tablets or phones. mActionsView.updateForSmallScreen(!mActivity.getDeviceProfile().isTablet); // Update flags for 1p/3p launchers mActionsView.updateFor3pLauncher(!supportsAppPairs()); if (isDesktopModeSupported()) { boolean isCurrentDesktop = getCurrentPageTaskView() instanceof DesktopTaskView; Loading
tests/tapl/com/android/launcher3/tapl/BaseOverview.java +3 −2 Original line number Diff line number Diff line Loading @@ -401,8 +401,9 @@ public class BaseOverview extends LauncherInstrumentation.VisibleContainer { if (isTablet && Math.abs(task.getExactCenterX() - mLauncher.getExactScreenCenterX()) >= 1) { return false; } if (!mLauncher.isAppPairsEnabled() && task.isTaskSplit()) { // Overview actions aren't visible for split screen tasks. if (task.isTaskSplit() && (!mLauncher.isAppPairsEnabled() || !isTablet)) { // Overview actions aren't visible for split screen tasks, except for save app pair // button on tablets. return false; } return true; Loading