diff options
| author | 2021-08-19 22:03:30 +0000 | |
|---|---|---|
| committer | 2021-08-19 22:03:30 +0000 | |
| commit | efbfcd12900e28bfdb90cabfe8f3765bc46ab248 (patch) | |
| tree | 11dae3f6c74d0515041439a3f011984e0aa2b804 | |
| parent | e0b3b959f27fdbb571be6f56c62616b036d13e3f (diff) | |
| parent | f02365656fd91a9569ce4e93da6f1da9648bf972 (diff) | |
Merge "Revert "[Dagger] Remove Dependency.get from VolumeDialogImpl."" into sc-v2-dev
7 files changed, 38 insertions, 95 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java index 0923caaf0d76..9cb9a362d460 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java @@ -68,7 +68,6 @@ 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; @@ -83,8 +82,7 @@ import dagger.Provides; @Module(includes = { MediaModule.class, PowerModule.class, - QSModule.class, - VolumeModule.class + QSModule.class }) public abstract class SystemUIDefaultModule { diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java index 55aad5d5d145..102fc40ef1ad 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java @@ -75,6 +75,7 @@ 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; @@ -111,6 +112,7 @@ import dagger.Provides; TunerModule.class, UserModule.class, UtilModule.class, + VolumeModule.class, WalletModule.class }, subcomponents = { diff --git a/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java b/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java index 891244823271..35251002fb7b 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java +++ b/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java @@ -70,7 +70,6 @@ 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; @@ -84,8 +83,7 @@ import dagger.Provides; */ @Module(includes = { PowerModule.class, - QSModule.class, - VolumeModule.class, + QSModule.class }, subcomponents = { }) diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java index c083c14a3730..f2e031cfa1df 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java @@ -20,6 +20,7 @@ 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; @@ -83,8 +84,7 @@ public class VolumeDialogComponent implements VolumeComponent, TunerService.Tuna DemoModeController demoModeController, PluginDependencyProvider pluginDependencyProvider, ExtensionController extensionController, - TunerService tunerService, - VolumeDialog volumeDialog) { + TunerService tunerService) { 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(() -> volumeDialog) + .withDefault(this::createDefault) .withCallback(dialog -> { if (mDialog != null) { mDialog.destroy(); @@ -108,6 +108,14 @@ 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; diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java index 58f74a0d2a02..dbf115b62a58 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java @@ -106,6 +106,7 @@ 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; @@ -234,10 +235,6 @@ 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; @@ -259,24 +256,14 @@ public class VolumeDialogImpl implements VolumeDialog, private Consumer<Boolean> mCrossWindowBlurEnabledListener; private BackgroundBlurDrawable mDialogRowsViewBackground; - public VolumeDialogImpl( - Context context, - VolumeDialogController volumeDialogController, - AccessibilityManagerWrapper accessibilityManagerWrapper, - DeviceProvisionedController deviceProvisionedController, - ConfigurationController configurationController, - MediaOutputDialogFactory mediaOutputDialogFactory, - ActivityStarter activityStarter) { + public VolumeDialogImpl(Context context) { mContext = new ContextThemeWrapper(context, R.style.volume_dialog_theme); - mController = volumeDialogController; + mController = Dependency.get(VolumeDialogController.class); mKeyguard = (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE); mActivityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE); - mAccessibilityMgr = accessibilityManagerWrapper; - mDeviceProvisionedController = deviceProvisionedController; - mConfigurationController = configurationController; - mMediaOutputDialogFactory = mediaOutputDialogFactory; - mActivityStarter = activityStarter; + mAccessibilityMgr = Dependency.get(AccessibilityManagerWrapper.class); + mDeviceProvisionedController = Dependency.get(DeviceProvisionedController.class); mShowActiveStreamOnly = showActiveStreamOnly(); mHasSeenODICaptionsTooltip = Prefs.getBoolean(context, Prefs.Key.HAS_SEEN_ODI_CAPTIONS_TOOLTIP, false); @@ -319,14 +306,14 @@ public class VolumeDialogImpl implements VolumeDialog, mController.addCallback(mControllerCallbackH, mHandler); mController.getState(); - mConfigurationController.addCallback(this); + Dependency.get(ConfigurationController.class).addCallback(this); } @Override public void destroy() { mController.removeCallback(mControllerCallbackH); mHandler.removeCallbacksAndMessages(null); - mConfigurationController.removeCallback(this); + Dependency.get(ConfigurationController.class).removeCallback(this); } @Override @@ -1030,8 +1017,9 @@ public class VolumeDialogImpl implements VolumeDialog, Events.writeEvent(Events.EVENT_SETTINGS_CLICK); Intent intent = new Intent(Settings.Panel.ACTION_VOLUME); dismissH(DISMISS_REASON_SETTINGS_CLICKED); - mMediaOutputDialogFactory.dismiss(); - mActivityStarter.startActivity(intent, true /* dismissShade */); + Dependency.get(MediaOutputDialogFactory.class).dismiss(); + Dependency.get(ActivityStarter.class).startActivity(intent, + true /* dismissShade */); }); } } diff --git a/packages/SystemUI/src/com/android/systemui/volume/dagger/VolumeModule.java b/packages/SystemUI/src/com/android/systemui/volume/dagger/VolumeModule.java index 79aa643fc6c2..1ef4c169b786 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/dagger/VolumeModule.java +++ b/packages/SystemUI/src/com/android/systemui/volume/dagger/VolumeModule.java @@ -16,23 +16,11 @@ 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. */ @@ -41,28 +29,4 @@ 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; - } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java index 949345662e79..dd4830e893af 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java @@ -41,13 +41,9 @@ 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; @@ -72,34 +68,23 @@ public class VolumeDialogImplTest extends SysuiTestCase { View mDrawerNormal; @Mock - VolumeDialogController mVolumeDialogController; + VolumeDialogController mController; + @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(), - mVolumeDialogController, - mAccessibilityMgr, - mDeviceProvisionedController, - mConfigurationController, - mMediaOutputDialogFactory, - mActivityStarter); + mDialog = new VolumeDialogImpl(getContext()); mDialog.init(0, null); State state = createShellState(); mDialog.onStateChangedH(state); @@ -185,7 +170,7 @@ public class VolumeDialogImplTest extends SysuiTestCase { Mockito.reset(mAccessibilityMgr); ArgumentCaptor<VolumeDialogController.Callbacks> controllerCallbackCapture = ArgumentCaptor.forClass(VolumeDialogController.Callbacks.class); - verify(mVolumeDialogController).addCallback(controllerCallbackCapture.capture(), any()); + verify(mController).addCallback(controllerCallbackCapture.capture(), any()); VolumeDialogController.Callbacks callbacks = controllerCallbackCapture.getValue(); callbacks.onShowSafetyWarning(AudioManager.FLAG_SHOW_UI); verify(mAccessibilityMgr).getRecommendedTimeoutMillis( @@ -216,13 +201,13 @@ public class VolumeDialogImplTest extends SysuiTestCase { mDialog.onStateChangedH(initialSilentState); // expected: shouldn't call vibrate yet - verify(mVolumeDialogController, never()).vibrate(any()); + verify(mController, never()).vibrate(any()); // changed ringer to vibrate mDialog.onStateChangedH(vibrateState); // expected: vibrate device - verify(mVolumeDialogController).vibrate(any()); + verify(mController).vibrate(any()); } @Test @@ -240,7 +225,7 @@ public class VolumeDialogImplTest extends SysuiTestCase { mDialog.onStateChangedH(vibrateState); // shouldn't call vibrate - verify(mVolumeDialogController, never()).vibrate(any()); + verify(mController, never()).vibrate(any()); } @Test @@ -253,7 +238,7 @@ public class VolumeDialogImplTest extends SysuiTestCase { mDrawerVibrate.performClick(); // Make sure we've actually changed the ringer mode. - verify(mVolumeDialogController, times(1)).setRingerMode( + verify(mController, times(1)).setRingerMode( AudioManager.RINGER_MODE_VIBRATE, false); } @@ -267,7 +252,7 @@ public class VolumeDialogImplTest extends SysuiTestCase { mDrawerMute.performClick(); // Make sure we've actually changed the ringer mode. - verify(mVolumeDialogController, times(1)).setRingerMode( + verify(mController, times(1)).setRingerMode( AudioManager.RINGER_MODE_SILENT, false); } @@ -281,7 +266,7 @@ public class VolumeDialogImplTest extends SysuiTestCase { mDrawerNormal.performClick(); // Make sure we've actually changed the ringer mode. - verify(mVolumeDialogController, times(1)).setRingerMode( + verify(mController, times(1)).setRingerMode( AudioManager.RINGER_MODE_NORMAL, false); } |