[Dagger] Remove Dependency.get from VolumeDialogImpl.
The original change was reverted because it was breaking the build, but that was because automerger split the topic so not all CLs were in the build (see go/automerger-questions#did-automerger-split-a-topic). I'm now submitting the same changes on master and sc-v2-dev to avoid automerger issues. Test: atest and manual Bug: 138786270 Change-Id: I42665b800fb2016db9e33dcfa85c3661d9ccf605
This commit is contained in:
@@ -68,6 +68,7 @@ import com.android.systemui.statusbar.policy.IndividualSensorPrivacyController;
|
||||
import com.android.systemui.statusbar.policy.IndividualSensorPrivacyControllerImpl;
|
||||
import com.android.systemui.statusbar.policy.SensorPrivacyController;
|
||||
import com.android.systemui.statusbar.policy.SensorPrivacyControllerImpl;
|
||||
import com.android.systemui.volume.dagger.VolumeModule;
|
||||
|
||||
import javax.inject.Named;
|
||||
|
||||
@@ -82,7 +83,8 @@ import dagger.Provides;
|
||||
@Module(includes = {
|
||||
MediaModule.class,
|
||||
PowerModule.class,
|
||||
QSModule.class
|
||||
QSModule.class,
|
||||
VolumeModule.class
|
||||
})
|
||||
public abstract class SystemUIDefaultModule {
|
||||
|
||||
|
||||
@@ -76,7 +76,6 @@ import com.android.systemui.util.sensors.SensorModule;
|
||||
import com.android.systemui.util.settings.SettingsUtilModule;
|
||||
import com.android.systemui.util.time.SystemClock;
|
||||
import com.android.systemui.util.time.SystemClockImpl;
|
||||
import com.android.systemui.volume.dagger.VolumeModule;
|
||||
import com.android.systemui.wallet.dagger.WalletModule;
|
||||
import com.android.systemui.wmshell.BubblesManager;
|
||||
import com.android.wm.shell.bubbles.Bubbles;
|
||||
@@ -114,7 +113,6 @@ import dagger.Provides;
|
||||
TunerModule.class,
|
||||
UserModule.class,
|
||||
UtilModule.class,
|
||||
VolumeModule.class,
|
||||
WalletModule.class
|
||||
},
|
||||
subcomponents = {
|
||||
|
||||
@@ -70,6 +70,7 @@ import com.android.systemui.statusbar.policy.IndividualSensorPrivacyControllerIm
|
||||
import com.android.systemui.statusbar.policy.SensorPrivacyController;
|
||||
import com.android.systemui.statusbar.policy.SensorPrivacyControllerImpl;
|
||||
import com.android.systemui.statusbar.tv.notifications.TvNotificationHandler;
|
||||
import com.android.systemui.volume.dagger.VolumeModule;
|
||||
|
||||
import javax.inject.Named;
|
||||
|
||||
@@ -83,7 +84,8 @@ import dagger.Provides;
|
||||
*/
|
||||
@Module(includes = {
|
||||
PowerModule.class,
|
||||
QSModule.class
|
||||
QSModule.class,
|
||||
VolumeModule.class,
|
||||
},
|
||||
subcomponents = {
|
||||
})
|
||||
|
||||
@@ -20,7 +20,6 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.res.Configuration;
|
||||
import android.media.AudioManager;
|
||||
import android.media.VolumePolicy;
|
||||
import android.os.Bundle;
|
||||
import android.view.WindowManager.LayoutParams;
|
||||
@@ -84,7 +83,8 @@ public class VolumeDialogComponent implements VolumeComponent, TunerService.Tuna
|
||||
DemoModeController demoModeController,
|
||||
PluginDependencyProvider pluginDependencyProvider,
|
||||
ExtensionController extensionController,
|
||||
TunerService tunerService) {
|
||||
TunerService tunerService,
|
||||
VolumeDialog volumeDialog) {
|
||||
mContext = context;
|
||||
mKeyguardViewMediator = keyguardViewMediator;
|
||||
mActivityStarter = activityStarter;
|
||||
@@ -94,7 +94,7 @@ public class VolumeDialogComponent implements VolumeComponent, TunerService.Tuna
|
||||
pluginDependencyProvider.allowPluginDependency(VolumeDialogController.class);
|
||||
extensionController.newExtension(VolumeDialog.class)
|
||||
.withPlugin(VolumeDialog.class)
|
||||
.withDefault(this::createDefault)
|
||||
.withDefault(() -> volumeDialog)
|
||||
.withCallback(dialog -> {
|
||||
if (mDialog != null) {
|
||||
mDialog.destroy();
|
||||
@@ -108,14 +108,6 @@ public class VolumeDialogComponent implements VolumeComponent, TunerService.Tuna
|
||||
demoModeController.addCallback(this);
|
||||
}
|
||||
|
||||
protected VolumeDialog createDefault() {
|
||||
VolumeDialogImpl impl = new VolumeDialogImpl(mContext);
|
||||
impl.setStreamImportant(AudioManager.STREAM_SYSTEM, false);
|
||||
impl.setAutomute(true);
|
||||
impl.setSilentMode(false);
|
||||
return impl;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTuningChanged(String key, String newValue) {
|
||||
boolean volumeDownToEnterSilent = mVolumePolicy.volumeDownToEnterSilent;
|
||||
|
||||
@@ -106,7 +106,6 @@ import androidx.annotation.Nullable;
|
||||
import com.android.internal.graphics.drawable.BackgroundBlurDrawable;
|
||||
import com.android.internal.view.RotationPolicy;
|
||||
import com.android.settingslib.Utils;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.Prefs;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.animation.Interpolators;
|
||||
@@ -235,6 +234,10 @@ public class VolumeDialogImpl implements VolumeDialog,
|
||||
private final Object mSafetyWarningLock = new Object();
|
||||
private final Accessibility mAccessibility = new Accessibility();
|
||||
|
||||
private final ConfigurationController mConfigurationController;
|
||||
private final MediaOutputDialogFactory mMediaOutputDialogFactory;
|
||||
private final ActivityStarter mActivityStarter;
|
||||
|
||||
private boolean mShowing;
|
||||
private boolean mShowA11yStream;
|
||||
|
||||
@@ -256,14 +259,24 @@ public class VolumeDialogImpl implements VolumeDialog,
|
||||
private Consumer<Boolean> mCrossWindowBlurEnabledListener;
|
||||
private BackgroundBlurDrawable mDialogRowsViewBackground;
|
||||
|
||||
public VolumeDialogImpl(Context context) {
|
||||
public VolumeDialogImpl(
|
||||
Context context,
|
||||
VolumeDialogController volumeDialogController,
|
||||
AccessibilityManagerWrapper accessibilityManagerWrapper,
|
||||
DeviceProvisionedController deviceProvisionedController,
|
||||
ConfigurationController configurationController,
|
||||
MediaOutputDialogFactory mediaOutputDialogFactory,
|
||||
ActivityStarter activityStarter) {
|
||||
mContext =
|
||||
new ContextThemeWrapper(context, R.style.volume_dialog_theme);
|
||||
mController = Dependency.get(VolumeDialogController.class);
|
||||
mController = volumeDialogController;
|
||||
mKeyguard = (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE);
|
||||
mActivityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
|
||||
mAccessibilityMgr = Dependency.get(AccessibilityManagerWrapper.class);
|
||||
mDeviceProvisionedController = Dependency.get(DeviceProvisionedController.class);
|
||||
mAccessibilityMgr = accessibilityManagerWrapper;
|
||||
mDeviceProvisionedController = deviceProvisionedController;
|
||||
mConfigurationController = configurationController;
|
||||
mMediaOutputDialogFactory = mediaOutputDialogFactory;
|
||||
mActivityStarter = activityStarter;
|
||||
mShowActiveStreamOnly = showActiveStreamOnly();
|
||||
mHasSeenODICaptionsTooltip =
|
||||
Prefs.getBoolean(context, Prefs.Key.HAS_SEEN_ODI_CAPTIONS_TOOLTIP, false);
|
||||
@@ -306,14 +319,14 @@ public class VolumeDialogImpl implements VolumeDialog,
|
||||
mController.addCallback(mControllerCallbackH, mHandler);
|
||||
mController.getState();
|
||||
|
||||
Dependency.get(ConfigurationController.class).addCallback(this);
|
||||
mConfigurationController.addCallback(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
mController.removeCallback(mControllerCallbackH);
|
||||
mHandler.removeCallbacksAndMessages(null);
|
||||
Dependency.get(ConfigurationController.class).removeCallback(this);
|
||||
mConfigurationController.removeCallback(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1017,9 +1030,8 @@ public class VolumeDialogImpl implements VolumeDialog,
|
||||
Events.writeEvent(Events.EVENT_SETTINGS_CLICK);
|
||||
Intent intent = new Intent(Settings.Panel.ACTION_VOLUME);
|
||||
dismissH(DISMISS_REASON_SETTINGS_CLICKED);
|
||||
Dependency.get(MediaOutputDialogFactory.class).dismiss();
|
||||
Dependency.get(ActivityStarter.class).startActivity(intent,
|
||||
true /* dismissShade */);
|
||||
mMediaOutputDialogFactory.dismiss();
|
||||
mActivityStarter.startActivity(intent, true /* dismissShade */);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,11 +16,23 @@
|
||||
|
||||
package com.android.systemui.volume.dagger;
|
||||
|
||||
import android.content.Context;
|
||||
import android.media.AudioManager;
|
||||
|
||||
import com.android.systemui.media.dialog.MediaOutputDialogFactory;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.plugins.VolumeDialog;
|
||||
import com.android.systemui.plugins.VolumeDialogController;
|
||||
import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
|
||||
import com.android.systemui.volume.VolumeComponent;
|
||||
import com.android.systemui.volume.VolumeDialogComponent;
|
||||
import com.android.systemui.volume.VolumeDialogImpl;
|
||||
|
||||
import dagger.Binds;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
|
||||
/** Dagger Module for code in the volume package. */
|
||||
@@ -29,4 +41,28 @@ public interface VolumeModule {
|
||||
/** */
|
||||
@Binds
|
||||
VolumeComponent provideVolumeComponent(VolumeDialogComponent volumeDialogComponent);
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
static VolumeDialog provideVolumeDialog(
|
||||
Context context,
|
||||
VolumeDialogController volumeDialogController,
|
||||
AccessibilityManagerWrapper accessibilityManagerWrapper,
|
||||
DeviceProvisionedController deviceProvisionedController,
|
||||
ConfigurationController configurationController,
|
||||
MediaOutputDialogFactory mediaOutputDialogFactory,
|
||||
ActivityStarter activityStarter) {
|
||||
VolumeDialogImpl impl = new VolumeDialogImpl(
|
||||
context,
|
||||
volumeDialogController,
|
||||
accessibilityManagerWrapper,
|
||||
deviceProvisionedController,
|
||||
configurationController,
|
||||
mediaOutputDialogFactory,
|
||||
activityStarter);
|
||||
impl.setStreamImportant(AudioManager.STREAM_SYSTEM, false);
|
||||
impl.setAutomute(true);
|
||||
impl.setSilentMode(false);
|
||||
return impl;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,9 +41,13 @@ import androidx.test.filters.SmallTest;
|
||||
import com.android.systemui.Prefs;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.media.dialog.MediaOutputDialogFactory;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.plugins.VolumeDialogController;
|
||||
import com.android.systemui.plugins.VolumeDialogController.State;
|
||||
import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper;
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController;
|
||||
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -68,23 +72,34 @@ public class VolumeDialogImplTest extends SysuiTestCase {
|
||||
View mDrawerNormal;
|
||||
|
||||
@Mock
|
||||
VolumeDialogController mController;
|
||||
|
||||
VolumeDialogController mVolumeDialogController;
|
||||
@Mock
|
||||
KeyguardManager mKeyguard;
|
||||
|
||||
@Mock
|
||||
AccessibilityManagerWrapper mAccessibilityMgr;
|
||||
@Mock
|
||||
DeviceProvisionedController mDeviceProvisionedController;
|
||||
@Mock
|
||||
ConfigurationController mConfigurationController;
|
||||
@Mock
|
||||
MediaOutputDialogFactory mMediaOutputDialogFactory;
|
||||
@Mock
|
||||
ActivityStarter mActivityStarter;
|
||||
|
||||
@Before
|
||||
public void setup() throws Exception {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
mController = mDependency.injectMockDependency(VolumeDialogController.class);
|
||||
mAccessibilityMgr = mDependency.injectMockDependency(AccessibilityManagerWrapper.class);
|
||||
getContext().addMockSystemService(KeyguardManager.class, mKeyguard);
|
||||
|
||||
mDialog = new VolumeDialogImpl(getContext());
|
||||
mDialog = new VolumeDialogImpl(
|
||||
getContext(),
|
||||
mVolumeDialogController,
|
||||
mAccessibilityMgr,
|
||||
mDeviceProvisionedController,
|
||||
mConfigurationController,
|
||||
mMediaOutputDialogFactory,
|
||||
mActivityStarter);
|
||||
mDialog.init(0, null);
|
||||
State state = createShellState();
|
||||
mDialog.onStateChangedH(state);
|
||||
@@ -170,7 +185,7 @@ public class VolumeDialogImplTest extends SysuiTestCase {
|
||||
Mockito.reset(mAccessibilityMgr);
|
||||
ArgumentCaptor<VolumeDialogController.Callbacks> controllerCallbackCapture =
|
||||
ArgumentCaptor.forClass(VolumeDialogController.Callbacks.class);
|
||||
verify(mController).addCallback(controllerCallbackCapture.capture(), any());
|
||||
verify(mVolumeDialogController).addCallback(controllerCallbackCapture.capture(), any());
|
||||
VolumeDialogController.Callbacks callbacks = controllerCallbackCapture.getValue();
|
||||
callbacks.onShowSafetyWarning(AudioManager.FLAG_SHOW_UI);
|
||||
verify(mAccessibilityMgr).getRecommendedTimeoutMillis(
|
||||
@@ -201,13 +216,13 @@ public class VolumeDialogImplTest extends SysuiTestCase {
|
||||
mDialog.onStateChangedH(initialSilentState);
|
||||
|
||||
// expected: shouldn't call vibrate yet
|
||||
verify(mController, never()).vibrate(any());
|
||||
verify(mVolumeDialogController, never()).vibrate(any());
|
||||
|
||||
// changed ringer to vibrate
|
||||
mDialog.onStateChangedH(vibrateState);
|
||||
|
||||
// expected: vibrate device
|
||||
verify(mController).vibrate(any());
|
||||
verify(mVolumeDialogController).vibrate(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -225,7 +240,7 @@ public class VolumeDialogImplTest extends SysuiTestCase {
|
||||
mDialog.onStateChangedH(vibrateState);
|
||||
|
||||
// shouldn't call vibrate
|
||||
verify(mController, never()).vibrate(any());
|
||||
verify(mVolumeDialogController, never()).vibrate(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -238,7 +253,7 @@ public class VolumeDialogImplTest extends SysuiTestCase {
|
||||
mDrawerVibrate.performClick();
|
||||
|
||||
// Make sure we've actually changed the ringer mode.
|
||||
verify(mController, times(1)).setRingerMode(
|
||||
verify(mVolumeDialogController, times(1)).setRingerMode(
|
||||
AudioManager.RINGER_MODE_VIBRATE, false);
|
||||
}
|
||||
|
||||
@@ -252,7 +267,7 @@ public class VolumeDialogImplTest extends SysuiTestCase {
|
||||
mDrawerMute.performClick();
|
||||
|
||||
// Make sure we've actually changed the ringer mode.
|
||||
verify(mController, times(1)).setRingerMode(
|
||||
verify(mVolumeDialogController, times(1)).setRingerMode(
|
||||
AudioManager.RINGER_MODE_SILENT, false);
|
||||
}
|
||||
|
||||
@@ -266,7 +281,7 @@ public class VolumeDialogImplTest extends SysuiTestCase {
|
||||
mDrawerNormal.performClick();
|
||||
|
||||
// Make sure we've actually changed the ringer mode.
|
||||
verify(mController, times(1)).setRingerMode(
|
||||
verify(mVolumeDialogController, times(1)).setRingerMode(
|
||||
AudioManager.RINGER_MODE_NORMAL, false);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user