summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jason Monk <jmonk@google.com> 2018-12-21 19:34:12 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-12-21 19:34:12 +0000
commitfe54380e1e09b72fea49dab19d8c757f62b79077 (patch)
tree53e332906fc315c8a05d30171f64f0ab05ed3ab4
parent1048106e8f1c5563e948d9a28e2b710d9b323230 (diff)
parent8966d997ee020d1e43a71293c351b6ec36e0a541 (diff)
Merge changes Ic8951a01,Ia2a577e3,Ibdca61a4
* changes: Move QSFragment to be a LifecycleFragment Remove usages of Dependency#get from NotificationViewHierarchyManager Remove Dependency#get from ExtensionControllerImpl
-rw-r--r--packages/SystemUI/src/com/android/systemui/Dependency.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSFragment.java17
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/NotificationViewHierarchyManager.java49
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/ExtensionControllerImpl.java31
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java3
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java7
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/ExtensionControllerImplTest.java5
7 files changed, 73 insertions, 47 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/Dependency.java b/packages/SystemUI/src/com/android/systemui/Dependency.java
index 443e389b1d02..f51004a83c65 100644
--- a/packages/SystemUI/src/com/android/systemui/Dependency.java
+++ b/packages/SystemUI/src/com/android/systemui/Dependency.java
@@ -531,10 +531,18 @@ public class Dependency extends SystemUI {
sDependency.destroyDependency(cls, destroy);
}
+ /**
+ * @deprecated see docs/dagger.md
+ */
+ @Deprecated
public static <T> T get(Class<T> cls) {
return sDependency.getDependency(cls);
}
+ /**
+ * @deprecated see docs/dagger.md
+ */
+ @Deprecated
public static <T> T get(DependencyKey<T> cls) {
return sDependency.getDependency(cls);
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java
index 93130d4667d0..bedba9a04ddc 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSFragment.java
@@ -18,7 +18,7 @@ import static android.app.StatusBarManager.DISABLE2_QUICK_SETTINGS;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
-import android.app.Fragment;
+import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Rect;
import android.os.Bundle;
@@ -46,10 +46,11 @@ import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
import com.android.systemui.statusbar.phone.NotificationsQuickSettingsContainer;
import com.android.systemui.statusbar.policy.RemoteInputQuickSettingsDisabler;
import com.android.systemui.util.InjectionInflationController;
+import com.android.systemui.util.LifecycleFragment;
import javax.inject.Inject;
-public class QSFragment extends Fragment implements QS, CommandQueue.Callbacks {
+public class QSFragment extends LifecycleFragment implements QS, CommandQueue.Callbacks {
private static final String TAG = "QS";
private static final boolean DEBUG = false;
private static final String EXTRA_EXPANDED = "expanded";
@@ -81,9 +82,12 @@ public class QSFragment extends Fragment implements QS, CommandQueue.Callbacks {
@Inject
public QSFragment(RemoteInputQuickSettingsDisabler remoteInputQsDisabler,
- InjectionInflationController injectionInflater) {
+ InjectionInflationController injectionInflater,
+ Context context) {
mRemoteInputQuickSettingsDisabler = remoteInputQsDisabler;
mInjectionInflater = injectionInflater;
+ SysUiServiceProvider.getComponent(context, CommandQueue.class)
+ .observe(getLifecycle(), this);
}
@Override
@@ -118,13 +122,6 @@ public class QSFragment extends Fragment implements QS, CommandQueue.Callbacks {
mQSPanel.getTileLayout().restoreInstanceState(savedInstanceState);
}
}
- SysUiServiceProvider.getComponent(getContext(), CommandQueue.class).addCallback(this);
- }
-
- @Override
- public void onDestroyView() {
- SysUiServiceProvider.getComponent(getContext(), CommandQueue.class).removeCallback(this);
- super.onDestroyView();
}
@Override
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationViewHierarchyManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationViewHierarchyManager.java
index 017cda741e5f..017a9c368fdf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationViewHierarchyManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationViewHierarchyManager.java
@@ -25,7 +25,6 @@ import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
-import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.statusbar.notification.NotificationData;
@@ -44,6 +43,8 @@ import java.util.Stack;
import javax.inject.Inject;
import javax.inject.Singleton;
+import dagger.Lazy;
+
/**
* NotificationViewHierarchyManager manages updating the view hierarchy of notification views based
* on their group structure. For example, if a notification becomes bundled with another,
@@ -60,20 +61,15 @@ public class NotificationViewHierarchyManager {
mTmpChildOrderMap = new HashMap<>();
// Dependencies:
- protected final NotificationLockscreenUserManager mLockscreenUserManager =
- Dependency.get(NotificationLockscreenUserManager.class);
- protected final NotificationGroupManager mGroupManager =
- Dependency.get(NotificationGroupManager.class);
- protected final VisualStabilityManager mVisualStabilityManager =
- Dependency.get(VisualStabilityManager.class);
- private final StatusBarStateController mStatusBarStateController =
- Dependency.get(StatusBarStateController.class);
- private final NotificationEntryManager mEntryManager =
- Dependency.get(NotificationEntryManager.class);
- private final BubbleController mBubbleController = Dependency.get(BubbleController.class);
+ protected final NotificationLockscreenUserManager mLockscreenUserManager;
+ protected final NotificationGroupManager mGroupManager;
+ protected final VisualStabilityManager mVisualStabilityManager;
+ private final StatusBarStateController mStatusBarStateController;
+ private final NotificationEntryManager mEntryManager;
+ private final BubbleController mBubbleController;
// Lazy
- private ShadeController mShadeController;
+ private final Lazy<ShadeController> mShadeController;
/**
* {@code true} if notifications not part of a group should by default be rendered in their
@@ -120,20 +116,27 @@ public class NotificationViewHierarchyManager {
}
}
- private ShadeController getShadeController() {
- if (mShadeController == null) {
- mShadeController = Dependency.get(ShadeController.class);
- }
- return mShadeController;
- }
-
@Inject
- public NotificationViewHierarchyManager(Context context) {
+ public NotificationViewHierarchyManager(Context context,
+ NotificationLockscreenUserManager notificationLockscreenUserManager,
+ NotificationGroupManager groupManager,
+ VisualStabilityManager visualStabilityManager,
+ StatusBarStateController statusBarStateController,
+ NotificationEntryManager notificationEntryManager,
+ BubbleController bubbleController,
+ Lazy<ShadeController> shadeController) {
+ mLockscreenUserManager = notificationLockscreenUserManager;
+ mGroupManager = groupManager;
+ mVisualStabilityManager = visualStabilityManager;
+ mStatusBarStateController = statusBarStateController;
+ mEntryManager = notificationEntryManager;
+ mBubbleController = bubbleController;
+ mShadeController = shadeController;
Resources res = context.getResources();
mAlwaysExpandNonGroupedNotification =
res.getBoolean(R.bool.config_alwaysExpandNonGroupedNotifications);
mStatusBarStateListener = new StatusBarStateListener(mBubbleController);
- Dependency.get(StatusBarStateController.class).addCallback(mStatusBarStateListener);
+ mStatusBarStateController.addCallback(mStatusBarStateListener);
}
public void setUpWithPresenter(NotificationPresenter presenter,
@@ -396,7 +399,7 @@ public class NotificationViewHierarchyManager {
&& !row.isLowPriority()));
}
- entry.getRow().setOnAmbient(getShadeController().isDozing());
+ entry.getRow().setOnAmbient(mShadeController.get().isDozing());
int userId = entry.notification.getUserId();
boolean suppressedSummary = mGroupManager.isSummaryOfSuppressedGroup(
entry.notification) && !entry.isRowRemoved();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/ExtensionControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ExtensionControllerImpl.java
index 2305db0dbf8d..fd030d133be0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/ExtensionControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/ExtensionControllerImpl.java
@@ -19,7 +19,6 @@ import android.content.res.Configuration;
import android.os.Handler;
import android.util.ArrayMap;
-import com.android.systemui.Dependency;
import com.android.systemui.plugins.Plugin;
import com.android.systemui.plugins.PluginListener;
import com.android.systemui.shared.plugins.PluginManager;
@@ -49,12 +48,24 @@ public class ExtensionControllerImpl implements ExtensionController {
public static final int SORT_ORDER_DEFAULT = 4;
private final Context mDefaultContext;
+ private final LeakDetector mLeakDetector;
+ private final PluginManager mPluginManager;
+ private final TunerService mTunerService;
+ private final ConfigurationController mConfigurationController;
/**
*/
@Inject
- public ExtensionControllerImpl(Context context) {
+ public ExtensionControllerImpl(Context context,
+ LeakDetector leakDetector,
+ PluginManager pluginManager,
+ TunerService tunerService,
+ ConfigurationController configurationController) {
mDefaultContext = context;
+ mLeakDetector = leakDetector;
+ mPluginManager = pluginManager;
+ mTunerService = tunerService;
+ mConfigurationController = configurationController;
}
@Override
@@ -168,14 +179,14 @@ public class ExtensionControllerImpl implements ExtensionController {
@Override
public void clearItem(boolean isDestroyed) {
if (isDestroyed && mItem != null) {
- Dependency.get(LeakDetector.class).trackGarbage(mItem);
+ mLeakDetector.trackGarbage(mItem);
}
mItem = null;
}
private void notifyChanged() {
if (mItem != null) {
- Dependency.get(LeakDetector.class).trackGarbage(mItem);
+ mLeakDetector.trackGarbage(mItem);
}
mItem = null;
for (int i = 0; i < mProducers.size(); i++) {
@@ -216,7 +227,7 @@ public class ExtensionControllerImpl implements ExtensionController {
public PluginItem(String action, Class<P> cls, PluginConverter<T, P> converter) {
mConverter = converter;
- Dependency.get(PluginManager.class).addPluginListener(action, this, cls);
+ mPluginManager.addPluginListener(action, this, cls);
}
@Override
@@ -244,7 +255,7 @@ public class ExtensionControllerImpl implements ExtensionController {
@Override
public void destroy() {
- Dependency.get(PluginManager.class).removePluginListener(this);
+ mPluginManager.removePluginListener(this);
}
@Override
@@ -260,7 +271,7 @@ public class ExtensionControllerImpl implements ExtensionController {
public TunerItem(TunerFactory<T> factory, String... setting) {
mFactory = factory;
- Dependency.get(TunerService.class).addTunable(this, setting);
+ mTunerService.addTunable(this, setting);
}
@Override
@@ -270,7 +281,7 @@ public class ExtensionControllerImpl implements ExtensionController {
@Override
public void destroy() {
- Dependency.get(TunerService.class).removeTunable(this);
+ mTunerService.removeTunable(this);
}
@Override
@@ -298,7 +309,7 @@ public class ExtensionControllerImpl implements ExtensionController {
mSupplier = supplier;
mUiMode = mDefaultContext.getResources().getConfiguration().uiMode
& Configuration.UI_MODE_TYPE_MASK;
- Dependency.get(ConfigurationController.class).addCallback(this);
+ mConfigurationController.addCallback(this);
}
@Override
@@ -318,7 +329,7 @@ public class ExtensionControllerImpl implements ExtensionController {
@Override
public void destroy() {
- Dependency.get(ConfigurationController.class).removeCallback(this);
+ mConfigurationController.removeCallback(this);
}
@Override
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
index ab508a25e76b..45e49dfd8cf2 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java
@@ -125,6 +125,7 @@ public class QSFragmentTest extends SysuiBaseFragmentTest {
@Override
protected Fragment instantiate(Context context, String className, Bundle arguments) {
return new QSFragment(new RemoteInputQuickSettingsDisabler(context),
- new InjectionInflationController(SystemUIFactory.getInstance().getRootComponent()));
+ new InjectionInflationController(SystemUIFactory.getInstance().getRootComponent()),
+ context);
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java
index 520a927d1ab0..8cf4b05b6371 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationViewHierarchyManagerTest.java
@@ -20,6 +20,7 @@ import static junit.framework.Assert.assertTrue;
import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -35,6 +36,7 @@ import android.widget.LinearLayout;
import com.android.systemui.Dependency;
import com.android.systemui.InitController;
import com.android.systemui.SysuiTestCase;
+import com.android.systemui.bubbles.BubbleController;
import com.android.systemui.plugins.statusbar.NotificationSwipeActionHelper;
import com.android.systemui.statusbar.notification.NotificationData;
import com.android.systemui.statusbar.notification.NotificationData.Entry;
@@ -90,7 +92,10 @@ public class NotificationViewHierarchyManagerTest extends SysuiTestCase {
when(mEntryManager.getNotificationData()).thenReturn(mNotificationData);
- mViewHierarchyManager = new NotificationViewHierarchyManager(mContext);
+ mViewHierarchyManager = new NotificationViewHierarchyManager(mContext,
+ mLockscreenUserManager, mGroupManager, mVisualStabilityManager,
+ mock(StatusBarStateController.class), mEntryManager, mock(BubbleController.class),
+ () -> mShadeController);
Dependency.get(InitController.class).executePostInitTasks();
mViewHierarchyManager.setUpWithPresenter(mPresenter, mListContainer);
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/ExtensionControllerImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/ExtensionControllerImplTest.java
index 1cceefa7910c..2553ac1e8fcb 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/ExtensionControllerImplTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/ExtensionControllerImplTest.java
@@ -28,7 +28,6 @@ import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
import android.testing.TestableLooper.RunWithLooper;
-import com.android.systemui.Dependency;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.plugins.OverlayPlugin;
import com.android.systemui.plugins.Plugin;
@@ -39,6 +38,7 @@ import com.android.systemui.statusbar.policy.ExtensionController.Extension;
import com.android.systemui.statusbar.policy.ExtensionController.TunerFactory;
import com.android.systemui.tuner.TunerService;
import com.android.systemui.tuner.TunerService.Tunable;
+import com.android.systemui.util.leak.LeakDetector;
import org.junit.Before;
import org.junit.Test;
@@ -62,7 +62,8 @@ public class ExtensionControllerImplTest extends SysuiTestCase {
mPluginManager = mDependency.injectMockDependency(PluginManager.class);
mTunerService = mDependency.injectMockDependency(TunerService.class);
mConfigurationController = mDependency.injectMockDependency(ConfigurationController.class);
- mExtensionController = Dependency.get(ExtensionController.class);
+ mExtensionController = new ExtensionControllerImpl(mContext,
+ mock(LeakDetector.class), mPluginManager, mTunerService, mConfigurationController);
}
@Test