Merge "Inject PipBoundsHandler and PipSnapAlgorithm using Dagger2" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
062f7a09c9
@@ -42,6 +42,8 @@ import android.view.WindowManagerGlobal;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
* Handles bounds calculation for PIP on Phone and other form factors, it keeps tracking variant
|
||||
* state changes originated from Window Manager and is the source of truth for PiP window bounds.
|
||||
@@ -81,9 +83,10 @@ public class PipBoundsHandler {
|
||||
private boolean mIsShelfShowing;
|
||||
private int mShelfHeight;
|
||||
|
||||
public PipBoundsHandler(Context context) {
|
||||
@Inject
|
||||
public PipBoundsHandler(Context context, PipSnapAlgorithm pipSnapAlgorithm) {
|
||||
mContext = context;
|
||||
mSnapAlgorithm = new PipSnapAlgorithm(context);
|
||||
mSnapAlgorithm = pipSnapAlgorithm;
|
||||
mWindowManager = WindowManagerGlobal.getWindowManagerService();
|
||||
reloadResources();
|
||||
// Initialize the aspect ratio to the default aspect ratio. Don't do this in reload
|
||||
|
||||
@@ -25,6 +25,8 @@ import android.util.Size;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
* Calculates the snap targets and the snap position for the PIP given a position and a velocity.
|
||||
* All bounds are relative to the display top/left.
|
||||
@@ -39,6 +41,7 @@ public class PipSnapAlgorithm {
|
||||
|
||||
private int mOrientation = Configuration.ORIENTATION_UNDEFINED;
|
||||
|
||||
@Inject
|
||||
public PipSnapAlgorithm(Context context) {
|
||||
Resources res = context.getResources();
|
||||
mContext = context;
|
||||
|
||||
@@ -41,6 +41,7 @@ import com.android.systemui.UiOffloadThread;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.pip.BasePipManager;
|
||||
import com.android.systemui.pip.PipBoundsHandler;
|
||||
import com.android.systemui.pip.PipSnapAlgorithm;
|
||||
import com.android.systemui.pip.PipTaskOrganizer;
|
||||
import com.android.systemui.shared.recents.IPinnedStackAnimationListener;
|
||||
import com.android.systemui.shared.system.ActivityManagerWrapper;
|
||||
@@ -205,7 +206,9 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
|
||||
public PipManager(Context context, BroadcastDispatcher broadcastDispatcher,
|
||||
DisplayController displayController,
|
||||
FloatingContentCoordinator floatingContentCoordinator,
|
||||
DeviceConfigProxy deviceConfig) {
|
||||
DeviceConfigProxy deviceConfig,
|
||||
PipBoundsHandler pipBoundsHandler,
|
||||
PipSnapAlgorithm pipSnapAlgorithm) {
|
||||
mContext = context;
|
||||
mActivityManager = ActivityManager.getService();
|
||||
|
||||
@@ -218,7 +221,7 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
|
||||
ActivityManagerWrapper.getInstance().registerTaskStackListener(mTaskStackListener);
|
||||
|
||||
final IActivityTaskManager activityTaskManager = ActivityTaskManager.getService();
|
||||
mPipBoundsHandler = new PipBoundsHandler(context);
|
||||
mPipBoundsHandler = pipBoundsHandler;
|
||||
mPipTaskOrganizer = new PipTaskOrganizer(mContext, mPipBoundsHandler);
|
||||
mPipTaskOrganizer.registerPipTransitionCallback(this);
|
||||
mInputConsumerController = InputConsumerController.getPipInputConsumer();
|
||||
@@ -227,7 +230,7 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
|
||||
mInputConsumerController);
|
||||
mTouchHandler = new PipTouchHandler(context, mActivityManager, activityTaskManager,
|
||||
mMenuController, mInputConsumerController, mPipBoundsHandler, mPipTaskOrganizer,
|
||||
floatingContentCoordinator, deviceConfig);
|
||||
floatingContentCoordinator, deviceConfig, pipSnapAlgorithm);
|
||||
mAppOpsListener = new PipAppOpsListener(context, mActivityManager,
|
||||
mTouchHandler.getMotionHelper());
|
||||
displayController.addDisplayChangingController(mRotationController);
|
||||
|
||||
@@ -166,7 +166,8 @@ public class PipTouchHandler {
|
||||
PipBoundsHandler pipBoundsHandler,
|
||||
PipTaskOrganizer pipTaskOrganizer,
|
||||
FloatingContentCoordinator floatingContentCoordinator,
|
||||
DeviceConfigProxy deviceConfig) {
|
||||
DeviceConfigProxy deviceConfig,
|
||||
PipSnapAlgorithm pipSnapAlgorithm) {
|
||||
// Initialize the Pip input consumer
|
||||
mContext = context;
|
||||
mActivityManager = activityManager;
|
||||
@@ -174,7 +175,7 @@ public class PipTouchHandler {
|
||||
mMenuController = menuController;
|
||||
mMenuController.addListener(new PipMenuListener());
|
||||
mDismissViewController = new PipDismissViewController(context);
|
||||
mSnapAlgorithm = new PipSnapAlgorithm(mContext);
|
||||
mSnapAlgorithm = pipSnapAlgorithm;
|
||||
mFlingAnimationUtils = new FlingAnimationUtils(context.getResources().getDisplayMetrics(),
|
||||
2.5f);
|
||||
mGesture = new DefaultPipTouchGesture();
|
||||
|
||||
@@ -228,13 +228,14 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
|
||||
}
|
||||
|
||||
@Inject
|
||||
public PipManager(Context context, BroadcastDispatcher broadcastDispatcher) {
|
||||
public PipManager(Context context, BroadcastDispatcher broadcastDispatcher,
|
||||
PipBoundsHandler pipBoundsHandler) {
|
||||
if (mInitialized) {
|
||||
return;
|
||||
}
|
||||
mInitialized = true;
|
||||
mContext = context;
|
||||
mPipBoundsHandler = new PipBoundsHandler(context);
|
||||
mPipBoundsHandler = pipBoundsHandler;
|
||||
mPipTaskOrganizer = new PipTaskOrganizer(mContext, mPipBoundsHandler);
|
||||
mPipTaskOrganizer.registerPipTransitionCallback(this);
|
||||
mActivityTaskManager = ActivityTaskManager.getService();
|
||||
|
||||
@@ -58,7 +58,7 @@ public class PipBoundsHandlerTest extends SysuiTestCase {
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
initializeMockResources();
|
||||
mPipBoundsHandler = new PipBoundsHandler(mContext);
|
||||
mPipBoundsHandler = new PipBoundsHandler(mContext, new PipSnapAlgorithm(mContext));
|
||||
|
||||
mPipBoundsHandler.onDisplayInfoChanged(mDefaultDisplayInfo);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user