diff options
| author | 2021-08-24 15:01:04 +0000 | |
|---|---|---|
| committer | 2021-08-24 15:01:04 +0000 | |
| commit | eecd6074c49d5818c9650f9077114197931483fd (patch) | |
| tree | 6613213c82637e1a09b8cf3d47d383c1a734e39c | |
| parent | 0fd6b2ca4c24d476533af21e75bdc39baf894e99 (diff) | |
| parent | 92ae4dfef08b9f85ffdacee444edca32c8437f52 (diff) | |
Merge "Revert "Revert "[Dagger] Remove Dependency.get from VolumeDialog..."" into sc-v2-dev
7 files changed, 95 insertions, 38 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java index 9cb9a362d460..0923caaf0d76 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIDefaultModule.java @@ -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 { diff --git a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java index 102fc40ef1ad..55aad5d5d145 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/SystemUIModule.java @@ -75,7 +75,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; @@ -112,7 +111,6 @@ 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 35251002fb7b..891244823271 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java +++ b/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java @@ -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 = { }) diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java index f2e031cfa1df..c083c14a3730 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogComponent.java @@ -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; diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java index dbf115b62a58..58f74a0d2a02 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java @@ -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 */); }); } } 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 1ef4c169b786..79aa643fc6c2 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/dagger/VolumeModule.java +++ b/packages/SystemUI/src/com/android/systemui/volume/dagger/VolumeModule.java @@ -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; + } } 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 dd4830e893af..949345662e79 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java @@ -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); } |