Merge "Make PipMotionHelper injectable" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
6b7f69ef38
@@ -57,9 +57,10 @@ public class PipBoundsAlgorithm {
|
||||
private int mOverridableMinSize;
|
||||
private Point mScreenEdgeInsets;
|
||||
|
||||
public PipBoundsAlgorithm(Context context, @NonNull PipBoundsState pipBoundsState) {
|
||||
public PipBoundsAlgorithm(Context context, @NonNull PipBoundsState pipBoundsState,
|
||||
@NonNull PipSnapAlgorithm pipSnapAlgorithm) {
|
||||
mPipBoundsState = pipBoundsState;
|
||||
mSnapAlgorithm = new PipSnapAlgorithm();
|
||||
mSnapAlgorithm = pipSnapAlgorithm;
|
||||
reloadResources(context);
|
||||
// Initialize the aspect ratio to the default aspect ratio. Don't do this in reload
|
||||
// resources as it would clobber mAspectRatio when entering PiP from fullscreen which
|
||||
|
||||
@@ -53,7 +53,6 @@ import com.android.wm.shell.pip.PipAnimationController;
|
||||
import com.android.wm.shell.pip.PipBoundsAlgorithm;
|
||||
import com.android.wm.shell.pip.PipBoundsState;
|
||||
import com.android.wm.shell.pip.PipTaskOrganizer;
|
||||
import com.android.wm.shell.pip.PipTransitionController;
|
||||
import com.android.wm.shell.pip.PipUiEventLogger;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
@@ -158,7 +157,7 @@ public class PipTouchHandler {
|
||||
PipBoundsAlgorithm pipBoundsAlgorithm,
|
||||
@NonNull PipBoundsState pipBoundsState,
|
||||
PipTaskOrganizer pipTaskOrganizer,
|
||||
PipTransitionController pipTransitionController,
|
||||
PipMotionHelper pipMotionHelper,
|
||||
FloatingContentCoordinator floatingContentCoordinator,
|
||||
PipUiEventLogger pipUiEventLogger,
|
||||
ShellExecutor mainExecutor) {
|
||||
@@ -173,9 +172,7 @@ public class PipTouchHandler {
|
||||
mFloatingContentCoordinator = floatingContentCoordinator;
|
||||
mMenuController.addListener(new PipMenuListener());
|
||||
mGesture = new DefaultPipTouchGesture();
|
||||
mMotionHelper = new PipMotionHelper(mContext, pipBoundsState, pipTaskOrganizer,
|
||||
mMenuController, mPipBoundsAlgorithm.getSnapAlgorithm(), pipTransitionController,
|
||||
floatingContentCoordinator);
|
||||
mMotionHelper = pipMotionHelper;
|
||||
mPipDismissTargetHandler = new PipDismissTargetHandler(context, pipUiEventLogger,
|
||||
mMotionHelper, mainExecutor);
|
||||
mPipResizeGestureHandler =
|
||||
|
||||
@@ -24,7 +24,6 @@ import android.testing.AndroidTestingRunner;
|
||||
import android.testing.TestableLooper;
|
||||
import android.testing.TestableResources;
|
||||
import android.util.Size;
|
||||
import android.view.Display;
|
||||
import android.view.DisplayInfo;
|
||||
import android.view.Gravity;
|
||||
|
||||
@@ -58,11 +57,13 @@ public class PipBoundsAlgorithmTest extends ShellTestCase {
|
||||
private DisplayInfo mDefaultDisplayInfo;
|
||||
private PipBoundsState mPipBoundsState;
|
||||
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
initializeMockResources();
|
||||
mPipBoundsState = new PipBoundsState(mContext);
|
||||
mPipBoundsAlgorithm = new PipBoundsAlgorithm(mContext, mPipBoundsState);
|
||||
mPipBoundsAlgorithm = new PipBoundsAlgorithm(mContext, mPipBoundsState,
|
||||
new PipSnapAlgorithm());
|
||||
|
||||
mPipBoundsState.setDisplayLayout(
|
||||
new DisplayLayout(mDefaultDisplayInfo, mContext.getResources(), true, true));
|
||||
|
||||
@@ -88,7 +88,8 @@ public class PipTaskOrganizerTest extends ShellTestCase {
|
||||
mComponent1 = new ComponentName(mContext, "component1");
|
||||
mComponent2 = new ComponentName(mContext, "component2");
|
||||
mPipBoundsState = new PipBoundsState(mContext);
|
||||
mPipBoundsAlgorithm = new PipBoundsAlgorithm(mContext, mPipBoundsState);
|
||||
mPipBoundsAlgorithm = new PipBoundsAlgorithm(mContext, mPipBoundsState,
|
||||
new PipSnapAlgorithm());
|
||||
mMainExecutor = new TestShellExecutor();
|
||||
mSpiedPipTaskOrganizer = spy(new PipTaskOrganizer(mContext,
|
||||
mMockSyncTransactionQueue, mPipBoundsState,
|
||||
|
||||
@@ -99,12 +99,14 @@ public class PipTouchHandlerTest extends ShellTestCase {
|
||||
public void setUp() throws Exception {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mPipBoundsState = new PipBoundsState(mContext);
|
||||
mPipBoundsAlgorithm = new PipBoundsAlgorithm(mContext, mPipBoundsState);
|
||||
mPipSnapAlgorithm = mPipBoundsAlgorithm.getSnapAlgorithm();
|
||||
mPipSnapAlgorithm = new PipSnapAlgorithm();
|
||||
mPipBoundsAlgorithm = new PipBoundsAlgorithm(mContext, mPipBoundsState, mPipSnapAlgorithm);
|
||||
PipMotionHelper pipMotionHelper = new PipMotionHelper(mContext, mPipBoundsState,
|
||||
mPipTaskOrganizer, mPhonePipMenuController, mPipSnapAlgorithm,
|
||||
mMockPipTransitionController, mFloatingContentCoordinator);
|
||||
mPipTouchHandler = new PipTouchHandler(mContext, mPhonePipMenuController,
|
||||
mPipBoundsAlgorithm, mPipBoundsState, mPipTaskOrganizer,
|
||||
mMockPipTransitionController, mFloatingContentCoordinator, mPipUiEventLogger,
|
||||
pipMotionHelper, mFloatingContentCoordinator, mPipUiEventLogger,
|
||||
mMainExecutor);
|
||||
mPipTouchHandler.init();
|
||||
mMotionHelper = Mockito.spy(mPipTouchHandler.getMotionHelper());
|
||||
|
||||
@@ -34,6 +34,7 @@ import com.android.wm.shell.pip.PipAnimationController;
|
||||
import com.android.wm.shell.pip.PipBoundsAlgorithm;
|
||||
import com.android.wm.shell.pip.PipBoundsState;
|
||||
import com.android.wm.shell.pip.PipMediaController;
|
||||
import com.android.wm.shell.pip.PipSnapAlgorithm;
|
||||
import com.android.wm.shell.pip.PipSurfaceTransactionHelper;
|
||||
import com.android.wm.shell.pip.PipTaskOrganizer;
|
||||
import com.android.wm.shell.pip.PipTransitionController;
|
||||
@@ -85,9 +86,15 @@ public abstract class TvPipModule {
|
||||
|
||||
@WMSingleton
|
||||
@Provides
|
||||
static PipBoundsAlgorithm providePipBoundsHandler(Context context,
|
||||
PipBoundsState pipBoundsState) {
|
||||
return new PipBoundsAlgorithm(context, pipBoundsState);
|
||||
static PipSnapAlgorithm providePipSnapAlgorithm() {
|
||||
return new PipSnapAlgorithm();
|
||||
}
|
||||
|
||||
@WMSingleton
|
||||
@Provides
|
||||
static PipBoundsAlgorithm providePipBoundsAlgorithm(Context context,
|
||||
PipBoundsState pipBoundsState, PipSnapAlgorithm pipSnapAlgorithm) {
|
||||
return new PipBoundsAlgorithm(context, pipBoundsState, pipSnapAlgorithm);
|
||||
}
|
||||
|
||||
@WMSingleton
|
||||
|
||||
@@ -43,6 +43,7 @@ import com.android.wm.shell.pip.PipAnimationController;
|
||||
import com.android.wm.shell.pip.PipBoundsAlgorithm;
|
||||
import com.android.wm.shell.pip.PipBoundsState;
|
||||
import com.android.wm.shell.pip.PipMediaController;
|
||||
import com.android.wm.shell.pip.PipSnapAlgorithm;
|
||||
import com.android.wm.shell.pip.PipSurfaceTransactionHelper;
|
||||
import com.android.wm.shell.pip.PipTaskOrganizer;
|
||||
import com.android.wm.shell.pip.PipTransition;
|
||||
@@ -51,6 +52,7 @@ import com.android.wm.shell.pip.PipUiEventLogger;
|
||||
import com.android.wm.shell.pip.phone.PhonePipMenuController;
|
||||
import com.android.wm.shell.pip.phone.PipAppOpsListener;
|
||||
import com.android.wm.shell.pip.phone.PipController;
|
||||
import com.android.wm.shell.pip.phone.PipMotionHelper;
|
||||
import com.android.wm.shell.pip.phone.PipTouchHandler;
|
||||
import com.android.wm.shell.transition.Transitions;
|
||||
|
||||
@@ -140,9 +142,15 @@ public class WMShellModule {
|
||||
|
||||
@WMSingleton
|
||||
@Provides
|
||||
static PipBoundsAlgorithm providesPipBoundsHandler(Context context,
|
||||
PipBoundsState pipBoundsState) {
|
||||
return new PipBoundsAlgorithm(context, pipBoundsState);
|
||||
static PipSnapAlgorithm providePipSnapAlgorithm() {
|
||||
return new PipSnapAlgorithm();
|
||||
}
|
||||
|
||||
@WMSingleton
|
||||
@Provides
|
||||
static PipBoundsAlgorithm providesPipBoundsAlgorithm(Context context,
|
||||
PipBoundsState pipBoundsState, PipSnapAlgorithm pipSnapAlgorithm) {
|
||||
return new PipBoundsAlgorithm(context, pipBoundsState, pipSnapAlgorithm);
|
||||
}
|
||||
|
||||
// Handler is used by Icon.loadDrawableAsync
|
||||
@@ -162,12 +170,12 @@ public class WMShellModule {
|
||||
PhonePipMenuController menuPhoneController, PipBoundsAlgorithm pipBoundsAlgorithm,
|
||||
PipBoundsState pipBoundsState,
|
||||
PipTaskOrganizer pipTaskOrganizer,
|
||||
PipTransitionController pipTransitionController,
|
||||
PipMotionHelper pipMotionHelper,
|
||||
FloatingContentCoordinator floatingContentCoordinator,
|
||||
PipUiEventLogger pipUiEventLogger,
|
||||
@ShellMainThread ShellExecutor mainExecutor) {
|
||||
return new PipTouchHandler(context, menuPhoneController, pipBoundsAlgorithm,
|
||||
pipBoundsState, pipTaskOrganizer, pipTransitionController,
|
||||
pipBoundsState, pipTaskOrganizer, pipMotionHelper,
|
||||
floatingContentCoordinator, pipUiEventLogger, mainExecutor);
|
||||
}
|
||||
|
||||
@@ -208,4 +216,16 @@ public class WMShellModule {
|
||||
return new PipTransition(context, pipBoundsState, pipMenuController,
|
||||
pipBoundsAlgorithm, pipAnimationController, transitions, shellTaskOrganizer);
|
||||
}
|
||||
|
||||
@WMSingleton
|
||||
@Provides
|
||||
static PipMotionHelper providePipMotionHelper(Context context,
|
||||
PipBoundsState pipBoundsState, PipTaskOrganizer pipTaskOrganizer,
|
||||
PhonePipMenuController menuController, PipSnapAlgorithm pipSnapAlgorithm,
|
||||
PipTransitionController pipTransitionController,
|
||||
FloatingContentCoordinator floatingContentCoordinator) {
|
||||
return new PipMotionHelper(context, pipBoundsState, pipTaskOrganizer,
|
||||
menuController, pipSnapAlgorithm, pipTransitionController,
|
||||
floatingContentCoordinator);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user