Merge "Prevent showing TaskMenuView if icon isn't present" into ub-launcher3-rvc-qpr-dev am: 4b1d1a0f18

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/12130181

Change-Id: Iff8f2a973f2204e332f74f1af5499cdce6b9a5bd
This commit is contained in:
TreeHugger Robot
2020-07-17 00:32:05 +00:00
committed by Automerger Merge Worker
4 changed files with 22 additions and 8 deletions
@@ -169,7 +169,9 @@ public class TaskMenuView extends AbstractFloatingView {
}
if (mIsOpen) {
mOptionLayout.removeAllViews();
populateAndLayoutMenu();
if (!populateAndLayoutMenu()) {
close(false);
}
}
}
@@ -186,14 +188,22 @@ public class TaskMenuView extends AbstractFloatingView {
}
mActivity.getDragLayer().addView(this);
mTaskView = taskView;
populateAndLayoutMenu();
if (!populateAndLayoutMenu()) {
return false;
}
post(this::animateOpen);
return true;
}
private void populateAndLayoutMenu() {
/** @return true if successfully able to populate task view menu, false otherwise */
private boolean populateAndLayoutMenu() {
if (mTaskView.getTask().icon == null) {
// Icon may not be loaded
return false;
}
addMenuOptions(mTaskView);
orientAroundTaskView(mTaskView);
return true;
}
private void addMenuOptions(TaskView taskView) {
@@ -240,8 +250,10 @@ public class TaskMenuView extends AbstractFloatingView {
setLayoutParams(params);
setScaleX(taskView.getScaleX());
setScaleY(taskView.getScaleY());
boolean canActivityRotate = taskView.getRecentsView()
.mOrientationState.canRecentsActivityRotate();
mOptionLayout.setOrientation(orientationHandler
.getTaskMenuLayoutOrientation(mOptionLayout));
.getTaskMenuLayoutOrientation(canActivityRotate, mOptionLayout));
setPosition(sTempRect.left - insets.left, sTempRect.top - insets.top,
taskView.getPagedOrientationHandler());
}
@@ -239,7 +239,8 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler {
}
@Override
public int getTaskMenuLayoutOrientation(LinearLayout taskMenuLayout) {
public int getTaskMenuLayoutOrientation(boolean canRecentsActivityRotate,
LinearLayout taskMenuLayout) {
return LinearLayout.HORIZONTAL;
}
@@ -94,7 +94,7 @@ public interface PagedOrientationHandler {
float getTaskMenuX(float x, View thumbnailView);
float getTaskMenuY(float y, View thumbnailView);
int getTaskMenuWidth(View view);
int getTaskMenuLayoutOrientation(LinearLayout taskMenuLayout);
int getTaskMenuLayoutOrientation(boolean canRecentsActivityRotate, LinearLayout taskMenuLayout);
void setLayoutParamsForTaskMenuOptionItem(LinearLayout.LayoutParams lp);
int getDistanceToBottomOfRect(DeviceProfile dp, Rect rect);
@@ -237,8 +237,9 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler {
}
@Override
public int getTaskMenuLayoutOrientation(LinearLayout taskMenuLayout) {
return taskMenuLayout.getOrientation();
public int getTaskMenuLayoutOrientation(boolean canRecentsActivityRotate,
LinearLayout taskMenuLayout) {
return canRecentsActivityRotate ? taskMenuLayout.getOrientation() : LinearLayout.VERTICAL;
}
@Override