Merge "Remove legacy callbacks between recents and split screen"
This commit is contained in:
committed by
Android (Google) Code Review
commit
d9413610c9
@@ -161,10 +161,6 @@
|
||||
<!-- The number of milliseconds to extend ambient pulse by when prompted (e.g. on touch) -->
|
||||
<integer name="ambient_notification_extension_time">10000</integer>
|
||||
|
||||
<!-- In multi-window, determines whether the stack where recents lives should grow from
|
||||
the smallest position when being launched. -->
|
||||
<bool name="recents_grow_in_multiwindow">true</bool>
|
||||
|
||||
<!-- Animation duration when using long press on recents to dock -->
|
||||
<integer name="long_press_dock_anim_duration">250</integer>
|
||||
|
||||
|
||||
@@ -65,10 +65,6 @@ public class Recents extends SystemUI implements CommandQueue.Callbacks {
|
||||
}
|
||||
}
|
||||
|
||||
public void growRecents() {
|
||||
mImpl.growRecents();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showRecentApps(boolean triggeredFromAltTab) {
|
||||
// Ensure the device has been provisioned before allowing the user to interact with
|
||||
|
||||
@@ -23,20 +23,16 @@ import android.content.Context;
|
||||
import android.window.WindowContainerToken;
|
||||
|
||||
import com.android.systemui.SystemUI;
|
||||
import com.android.systemui.recents.Recents;
|
||||
import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
import com.android.systemui.shared.system.TaskStackChangeListener;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import dagger.Lazy;
|
||||
|
||||
/**
|
||||
* Controls the docked stack divider.
|
||||
*/
|
||||
@@ -44,15 +40,12 @@ import dagger.Lazy;
|
||||
public class Divider extends SystemUI {
|
||||
private final KeyguardStateController mKeyguardStateController;
|
||||
private final DividerController mDividerController;
|
||||
private final Optional<Lazy<Recents>> mRecentsOptionalLazy;
|
||||
|
||||
Divider(Context context, DividerController dividerController,
|
||||
KeyguardStateController keyguardStateController,
|
||||
Optional<Lazy<Recents>> recentsOptionalLazy) {
|
||||
KeyguardStateController keyguardStateController) {
|
||||
super(context);
|
||||
mDividerController = dividerController;
|
||||
mKeyguardStateController = keyguardStateController;
|
||||
mRecentsOptionalLazy = recentsOptionalLazy;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -113,8 +106,7 @@ public class Divider extends SystemUI {
|
||||
}
|
||||
|
||||
public void onRecentsDrawn() {
|
||||
mDividerController.onRecentsDrawn(() -> mRecentsOptionalLazy.ifPresent(
|
||||
recentsLazy -> recentsLazy.get().growRecents()));
|
||||
mDividerController.onRecentsDrawn();
|
||||
}
|
||||
|
||||
public void onDockedFirstAnimationFrame() {
|
||||
|
||||
@@ -391,9 +391,9 @@ public class DividerController implements DividerView.DividerCallbacks,
|
||||
* subscriber, or DividerView, which has been removed and prevented from resizing. Instead,
|
||||
* register the event handler here and proxy the event to the current DividerView.
|
||||
*/
|
||||
public void onRecentsDrawn(DividerView.RecentDrawnCallback callback) {
|
||||
public void onRecentsDrawn() {
|
||||
if (mView != null) {
|
||||
mView.onRecentsDrawn(callback);
|
||||
mView.onRecentsDrawn();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -20,18 +20,14 @@ import android.content.Context;
|
||||
import android.os.Handler;
|
||||
|
||||
import com.android.systemui.dagger.qualifiers.Main;
|
||||
import com.android.systemui.recents.Recents;
|
||||
import com.android.systemui.statusbar.policy.KeyguardStateController;
|
||||
import com.android.wm.shell.common.DisplayController;
|
||||
import com.android.wm.shell.common.DisplayImeController;
|
||||
import com.android.wm.shell.common.SystemWindows;
|
||||
import com.android.wm.shell.common.TransactionPool;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import dagger.Lazy;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
@@ -42,14 +38,12 @@ import dagger.Provides;
|
||||
public class DividerModule {
|
||||
@Singleton
|
||||
@Provides
|
||||
static Divider provideDivider(Context context, Optional<Lazy<Recents>> recentsOptionalLazy,
|
||||
DisplayController displayController, SystemWindows systemWindows,
|
||||
DisplayImeController imeController, @Main Handler handler,
|
||||
static Divider provideDivider(Context context, DisplayController displayController,
|
||||
SystemWindows systemWindows, DisplayImeController imeController, @Main Handler handler,
|
||||
KeyguardStateController keyguardStateController, TransactionPool transactionPool) {
|
||||
// TODO(b/161116823): fetch DividerProxy from WM shell lib.
|
||||
DividerController dividerController = new DividerController(context, displayController,
|
||||
systemWindows, imeController, handler, transactionPool);
|
||||
return new Divider(context, dividerController, keyguardStateController,
|
||||
recentsOptionalLazy);
|
||||
return new Divider(context, dividerController, keyguardStateController);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,5 @@ package com.android.systemui.stackdivider;
|
||||
*/
|
||||
public class DividerState {
|
||||
public boolean animateAfterRecentsDrawn;
|
||||
public boolean growAfterRecentsDrawn;
|
||||
public float mRatioPositionBeforeMinimized;
|
||||
}
|
||||
|
||||
@@ -83,10 +83,6 @@ public class DividerView extends FrameLayout implements OnTouchListener,
|
||||
void onDraggingEnd();
|
||||
}
|
||||
|
||||
interface RecentDrawnCallback {
|
||||
void growRecents();
|
||||
}
|
||||
|
||||
static final long TOUCH_ANIMATION_DURATION = 150;
|
||||
static final long TOUCH_RELEASE_ANIMATION_DURATION = 200;
|
||||
|
||||
@@ -151,7 +147,6 @@ public class DividerView extends FrameLayout implements OnTouchListener,
|
||||
private DividerCallbacks mCallback;
|
||||
private final AnimationHandler mAnimationHandler = new AnimationHandler();
|
||||
|
||||
private boolean mGrowRecents;
|
||||
private ValueAnimator mCurrentAnimator;
|
||||
private boolean mEntranceAnimationRunning;
|
||||
private boolean mExitAnimationRunning;
|
||||
@@ -307,7 +302,6 @@ public class DividerView extends FrameLayout implements OnTouchListener,
|
||||
R.dimen.docked_stack_divider_lift_elevation);
|
||||
mLongPressEntraceAnimDuration = getResources().getInteger(
|
||||
R.integer.long_press_dock_anim_duration);
|
||||
mGrowRecents = getResources().getBoolean(R.bool.recents_grow_in_multiwindow);
|
||||
mTouchSlop = ViewConfiguration.get(mContext).getScaledTouchSlop();
|
||||
mFlingAnimationUtils = new FlingAnimationUtils(getResources().getDisplayMetrics(), 0.3f);
|
||||
boolean landscape = getResources().getConfiguration().orientation
|
||||
@@ -1322,39 +1316,11 @@ public class DividerView extends FrameLayout implements OnTouchListener,
|
||||
mBackground.getRight(), mBackground.getBottom(), Op.UNION);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether recents will grow when invoked. This happens in multi-window when recents is
|
||||
* very small. When invoking recents, we shrink the docked stack so recents has more space.
|
||||
*
|
||||
* @return the position of the divider when recents grows, or
|
||||
* {@link #INVALID_RECENTS_GROW_TARGET} if recents won't grow
|
||||
*/
|
||||
public int growsRecents() {
|
||||
boolean result = mGrowRecents
|
||||
&& mDockSide == WindowManager.DOCKED_TOP
|
||||
&& getCurrentPosition() == getSnapAlgorithm().getLastSplitTarget().position;
|
||||
if (result) {
|
||||
return getSnapAlgorithm().getMiddleTarget().position;
|
||||
} else {
|
||||
return INVALID_RECENTS_GROW_TARGET;
|
||||
}
|
||||
}
|
||||
|
||||
void onRecentsActivityStarting() {
|
||||
if (mGrowRecents && mDockSide == WindowManager.DOCKED_TOP
|
||||
&& getSnapAlgorithm().getMiddleTarget() != getSnapAlgorithm().getLastSplitTarget()
|
||||
&& getCurrentPosition() == getSnapAlgorithm().getLastSplitTarget().position) {
|
||||
mState.growAfterRecentsDrawn = true;
|
||||
startDragging(false /* animate */, false /* touching */);
|
||||
}
|
||||
}
|
||||
|
||||
void onDockedFirstAnimationFrame() {
|
||||
saveSnapTargetBeforeMinimized(mSplitLayout.getSnapAlgorithm().getMiddleTarget());
|
||||
}
|
||||
|
||||
void onDockedTopTask() {
|
||||
mState.growAfterRecentsDrawn = false;
|
||||
mState.animateAfterRecentsDrawn = true;
|
||||
startDragging(false /* animate */, false /* touching */);
|
||||
updateDockSide();
|
||||
@@ -1366,7 +1332,7 @@ public class DividerView extends FrameLayout implements OnTouchListener,
|
||||
null /* transaction */);
|
||||
}
|
||||
|
||||
void onRecentsDrawn(RecentDrawnCallback callback) {
|
||||
void onRecentsDrawn() {
|
||||
updateDockSide();
|
||||
final int position = calculatePositionForInsetBounds();
|
||||
if (mState.animateAfterRecentsDrawn) {
|
||||
@@ -1380,15 +1346,6 @@ public class DividerView extends FrameLayout implements OnTouchListener,
|
||||
200 /* endDelay */);
|
||||
});
|
||||
}
|
||||
if (mState.growAfterRecentsDrawn) {
|
||||
mState.growAfterRecentsDrawn = false;
|
||||
updateDockSide();
|
||||
if (callback != null) {
|
||||
callback.growRecents();
|
||||
}
|
||||
stopDragging(position, getSnapAlgorithm().getMiddleTarget(), 336,
|
||||
Interpolators.FAST_OUT_SLOW_IN);
|
||||
}
|
||||
}
|
||||
|
||||
void onUndockingTask() {
|
||||
|
||||
Reference in New Issue
Block a user