Merge "Launching last task when back button is pressed in overview" into ub-launcher3-master

This commit is contained in:
Sunny Goyal
2018-08-08 17:34:46 +00:00
committed by Android (Google) Code Review
5 changed files with 31 additions and 17 deletions
@@ -31,6 +31,7 @@ import com.android.launcher3.allapps.DiscoveryBounce;
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
import com.android.quickstep.RecentsModel;
import com.android.quickstep.views.RecentsView;
import com.android.quickstep.views.TaskView;
/**
* Definition for overview state
@@ -130,4 +131,14 @@ public class OverviewState extends LauncherState {
DeviceProfile dp = launcher.getDeviceProfile();
return dp.allAppsCellHeightPx - dp.allAppsIconTextSizePx;
}
@Override
public void onBackPressed(Launcher launcher) {
TaskView taskView = launcher.<RecentsView>getOverviewPanel().getRunningTaskView();
if (taskView != null) {
taskView.launchTask(true);
} else {
super.onBackPressed(launcher);
}
}
}
@@ -714,12 +714,16 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
setCurrentTask(runningTaskId);
}
public TaskView getRunningTaskView() {
return getTaskView(mRunningTaskId);
}
/**
* Hides the tile associated with {@link #mRunningTaskId}
*/
public void setRunningTaskHidden(boolean isHidden) {
mRunningTaskTileHidden = isHidden;
TaskView runningTask = getTaskView(mRunningTaskId);
TaskView runningTask = getRunningTaskView();
if (runningTask != null) {
runningTask.setAlpha(isHidden ? 0 : mContentAlpha);
}
@@ -745,7 +749,7 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
}
public void showNextTask() {
TaskView runningTaskView = getTaskView(mRunningTaskId);
TaskView runningTaskView = getRunningTaskView();
if (runningTaskView == null) {
// Launch the first task
if (getTaskViewCount() > 0) {
@@ -773,7 +777,7 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
}
private void applyRunningTaskIconScale() {
TaskView firstTask = getTaskView(mRunningTaskId);
TaskView firstTask = getRunningTaskView();
if (firstTask != null) {
firstTask.setIconScaleAndDim(mRunningTaskIconScaledDown ? 0 : 1);
}
@@ -781,7 +785,7 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl
public void animateUpRunningTaskIconScale() {
mRunningTaskIconScaledDown = false;
TaskView firstTask = getTaskView(mRunningTaskId);
TaskView firstTask = getRunningTaskView();
if (firstTask != null) {
firstTask.animateIconScaleAndDimIntoView();
}
+1 -7
View File
@@ -1606,14 +1606,8 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns,
AbstractFloatingView topView = AbstractFloatingView.getTopOpenView(this);
if (topView != null && topView.onBackPressed()) {
// Handled by the floating view.
} else if (!isInState(NORMAL)) {
LauncherState lastState = mStateManager.getLastState();
ued.logActionCommand(Action.Command.BACK, mStateManager.getState().containerType,
lastState.containerType);
mStateManager.goToState(lastState);
} else {
// Back button is a no-op here, but give at least some feedback for the button press
mWorkspace.showOutlinesTemporarily();
mStateManager.getState().onBackPressed(this);
}
}
@@ -30,6 +30,7 @@ import com.android.launcher3.uioverrides.AllAppsState;
import com.android.launcher3.uioverrides.FastOverviewState;
import com.android.launcher3.uioverrides.OverviewState;
import com.android.launcher3.uioverrides.UiFactory;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action;
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
import java.util.Arrays;
@@ -251,6 +252,16 @@ public class LauncherState {
}
}
public void onBackPressed(Launcher launcher) {
if (this != NORMAL) {
LauncherStateManager lsm = launcher.getStateManager();
LauncherState lastState = lsm.getLastState();
launcher.getUserEventDispatcher().logActionCommand(Action.Command.BACK,
containerType, lastState.containerType);
lsm.goToState(lastState);
}
}
protected static void dispatchWindowStateChanged(Launcher launcher) {
launcher.getWindow().getDecorView().sendAccessibilityEvent(TYPE_WINDOW_STATE_CHANGED);
}
-6
View File
@@ -1291,12 +1291,6 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
}
}
public void showOutlinesTemporarily() {
if (!mIsPageInTransition && !isTouchActive()) {
snapToPage(mCurrentPage);
}
}
private void updatePageAlphaValues() {
// We need to check the isDragging case because updatePageAlphaValues is called between
// goToState(SPRING_LOADED) and onStartStateTransition.