Merge "Remove Recents from components."

This commit is contained in:
Dave Mankoff
2019-11-07 19:35:51 +00:00
committed by Android (Google) Code Review
6 changed files with 36 additions and 13 deletions

View File

@@ -28,7 +28,10 @@ import com.android.systemui.dock.DockManager;
import com.android.systemui.dock.DockManagerImpl;
import com.android.systemui.power.EnhancedEstimates;
import com.android.systemui.power.EnhancedEstimatesImpl;
import com.android.systemui.recents.Recents;
import com.android.systemui.recents.RecentsImplementation;
import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.NotificationLockscreenUserManagerImpl;
import com.android.systemui.statusbar.car.CarStatusBar;
@@ -102,6 +105,13 @@ abstract class CarSystemUIModule {
return SysUiServiceProvider.getComponent(context, StatusBar.class);
}
@Provides
@Singleton
static Recents provideRecents(Context context, RecentsImplementation recentsImplementation,
CommandQueue commandQueue) {
return new Recents(context, recentsImplementation, commandQueue);
}
@Binds
abstract SystemUIRootComponent bindSystemUIRootComponent(
CarSystemUIRootComponent systemUIRootComponent);

View File

@@ -27,7 +27,10 @@ import com.android.systemui.dock.DockManager;
import com.android.systemui.dock.DockManagerImpl;
import com.android.systemui.power.EnhancedEstimates;
import com.android.systemui.power.EnhancedEstimatesImpl;
import com.android.systemui.recents.Recents;
import com.android.systemui.recents.RecentsImplementation;
import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.NotificationLockscreenUserManager;
import com.android.systemui.statusbar.NotificationLockscreenUserManagerImpl;
import com.android.systemui.statusbar.notification.collection.NotificationData;
@@ -86,4 +89,11 @@ abstract class SystemUIDefaultModule {
static Divider provideDivider(Context context) {
return new Divider(context);
}
@Provides
@Singleton
static Recents provideRecents(Context context, RecentsImplementation recentsImplementation,
CommandQueue commandQueue) {
return new Recents(context, recentsImplementation, commandQueue);
}
}

View File

@@ -25,6 +25,7 @@ import com.android.systemui.DumpController;
import com.android.systemui.assist.AssistModule;
import com.android.systemui.model.SysUiState;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.recents.Recents;
import com.android.systemui.stackdivider.Divider;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.notification.people.PeopleHubModule;
@@ -78,6 +79,9 @@ public abstract class SystemUIModule {
@BindsOptionalOf
abstract Divider optionalDivider();
@BindsOptionalOf
abstract Recents optionalRecents();
@BindsOptionalOf
abstract StatusBar optionalStatusBar();
}

View File

@@ -28,19 +28,14 @@ import com.android.systemui.statusbar.CommandQueue;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import javax.inject.Inject;
import javax.inject.Singleton;
/**
* A proxy to a Recents implementation.
*/
@Singleton
public class Recents extends SystemUI implements CommandQueue.Callbacks {
private final RecentsImplementation mImpl;
private final CommandQueue mCommandQueue;
@Inject
public Recents(Context context, RecentsImplementation impl, CommandQueue commandQueue) {
super(context);
mImpl = impl;
@@ -50,7 +45,6 @@ public class Recents extends SystemUI implements CommandQueue.Callbacks {
@Override
public void start() {
mCommandQueue.addCallback(this);
putComponent(Recents.class, this);
mImpl.onStart(mContext, this);
}

View File

@@ -118,6 +118,7 @@ import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.util.List;
import java.util.Locale;
import java.util.Optional;
import java.util.function.Consumer;
import javax.inject.Inject;
@@ -162,8 +163,8 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
private int mDisabledFlags1;
private int mDisabledFlags2;
private StatusBar mStatusBar;
private Recents mRecents;
private final Divider mDivider;
private final Optional<Recents> mRecentsOptional;
private WindowManager mWindowManager;
private final CommandQueue mCommandQueue;
private long mLastLockToAppLongPress;
@@ -267,7 +268,8 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
SysUiState sysUiFlagsContainer,
BroadcastDispatcher broadcastDispatcher,
CommandQueue commandQueue,
Divider divider) {
Divider divider,
Optional<Recents> recentsOptional) {
mAccessibilityManagerWrapper = accessibilityManagerWrapper;
mDeviceProvisionedController = deviceProvisionedController;
mStatusBarStateController = statusBarStateController;
@@ -281,6 +283,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
mBroadcastDispatcher = broadcastDispatcher;
mCommandQueue = commandQueue;
mDivider = divider;
mRecentsOptional = recentsOptional;
}
// ----- Fragment Lifecycle Callbacks -----
@@ -290,7 +293,6 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
super.onCreate(savedInstanceState);
mCommandQueue.observe(getLifecycle(), this);
mStatusBar = SysUiServiceProvider.getComponent(getContext(), StatusBar.class);
mRecents = SysUiServiceProvider.getComponent(getContext(), Recents.class);
mWindowManager = getContext().getSystemService(WindowManager.class);
mAccessibilityManager = getContext().getSystemService(AccessibilityManager.class);
mContentResolver = getContext().getContentResolver();
@@ -906,7 +908,7 @@ public class NavigationBarFragment extends LifecycleFragment implements Callback
}
private boolean onLongPressRecents() {
if (mRecents == null || !ActivityTaskManager.supportsMultiWindow(getContext())
if (mRecentsOptional.isPresent() || !ActivityTaskManager.supportsMultiWindow(getContext())
|| !mDivider.getView().getSnapAlgorithm().isSplitScreenFeasible()
|| ActivityManager.isLowRamDeviceStatic()
// If we are connected to the overview service, then disable the recents button

View File

@@ -79,6 +79,8 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.Optional;
@RunWith(AndroidTestingRunner.class)
@RunWithLooper(setAsMainLooper = true)
@SmallTest
@@ -97,6 +99,8 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest {
private BroadcastDispatcher mBroadcastDispatcher;
@Mock
private Divider mDivider;
@Mock
private Recents mRecents;
private AccessibilityManagerWrapper mAccessibilityWrapper =
new AccessibilityManagerWrapper(mContext) {
@@ -154,14 +158,12 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest {
private void setupSysuiDependency() {
mSysuiContext.putComponent(StatusBar.class, mock(StatusBar.class));
mSysuiContext.putComponent(Recents.class, mock(Recents.class));
Display display = new Display(DisplayManagerGlobal.getInstance(), EXTERNAL_DISPLAY_ID,
new DisplayInfo(), DEFAULT_DISPLAY_ADJUSTMENTS);
mSysuiTestableContextExternal = (SysuiTestableContext) mSysuiContext.createDisplayContext(
display);
mSysuiTestableContextExternal.putComponent(StatusBar.class, mock(StatusBar.class));
mSysuiTestableContextExternal.putComponent(Recents.class, mock(Recents.class));
injectLeakCheckedDependencies(ALL_SUPPORTED_CLASSES);
WindowManager windowManager = mock(WindowManager.class);
@@ -252,7 +254,8 @@ public class NavigationBarFragmentTest extends SysuiBaseFragmentTest {
mMockSysUiState,
mBroadcastDispatcher,
mCommandQueue,
mDivider);
mDivider,
Optional.of(mRecents));
}
private class HostCallbacksForExternalDisplay extends