Merge "Hide Dock speaker plays from sound pages" into udc-dev am: df5bbc630d am: 59b7f47307

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/21955162

Change-Id: I95a3d90e0b6f6bcd213c11ec3c4cb33e2132a4f2
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2023-03-15 12:49:19 +00:00
committed by Automerger Merge Worker
2 changed files with 58 additions and 1 deletions

View File

@@ -19,6 +19,8 @@ package com.android.settings.notification;
import static com.android.settings.notification.SettingPref.TYPE_GLOBAL; import static com.android.settings.notification.SettingPref.TYPE_GLOBAL;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Resources; import android.content.res.Resources;
import android.provider.Settings.Global; import android.provider.Settings.Global;
@@ -41,7 +43,7 @@ public class DockAudioMediaPreferenceController extends SettingPrefController {
DEFAULT_DOCK_AUDIO_MEDIA, DOCK_AUDIO_MEDIA_DISABLED, DOCK_AUDIO_MEDIA_ENABLED) { DEFAULT_DOCK_AUDIO_MEDIA, DOCK_AUDIO_MEDIA_DISABLED, DOCK_AUDIO_MEDIA_ENABLED) {
@Override @Override
public boolean isApplicable(Context context) { public boolean isApplicable(Context context) {
return context.getResources().getBoolean( return isLeDesk() && context.getResources().getBoolean(
com.android.settings.R.bool.has_dock_settings); com.android.settings.R.bool.has_dock_settings);
} }
@@ -60,4 +62,18 @@ public class DockAudioMediaPreferenceController extends SettingPrefController {
} }
}; };
} }
/**
* Checks the state of docking type
* @return true if it is low-end dock types
*/
private boolean isLeDesk() {
IntentFilter intentFilter = new IntentFilter(Intent.ACTION_DOCK_EVENT);
Intent dockStatus = mContext.registerReceiver(null, intentFilter);
if (dockStatus == null) {
return false;
}
int dockState = dockStatus.getIntExtra(Intent.EXTRA_DOCK_STATE, -1);
return dockState == Intent.EXTRA_DOCK_STATE_LE_DESK;
}
} }

View File

@@ -19,14 +19,19 @@ package com.android.settings.notification;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Answers.RETURNS_DEEP_STUBS; import static org.mockito.Answers.RETURNS_DEEP_STUBS;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.app.admin.DevicePolicyManager; import android.app.admin.DevicePolicyManager;
import android.content.BroadcastReceiver;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.provider.Settings.Global; import android.provider.Settings.Global;
import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentActivity;
@@ -72,6 +77,7 @@ public class DockAudioMediaPreferenceControllerTest {
mController = new DockAudioMediaPreferenceController(mContext, mSetting, null); mController = new DockAudioMediaPreferenceController(mContext, mSetting, null);
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
doReturn(mScreen).when(mSetting).getPreferenceScreen(); doReturn(mScreen).when(mSetting).getPreferenceScreen();
fakeDockState(Intent.EXTRA_DOCK_STATE_LE_DESK);
} }
@Test @Test
@@ -90,6 +96,34 @@ public class DockAudioMediaPreferenceControllerTest {
assertThat(mController.isAvailable()).isFalse(); assertThat(mController.isAvailable()).isFalse();
} }
@Test
public void isAvailable_undocked_shouldReturnFalse() {
when(mContext.registerReceiver(nullable(BroadcastReceiver.class),
any(IntentFilter.class))).thenReturn(null);
when(mContext.getResources().getBoolean(com.android.settings.R.bool.has_dock_settings))
.thenReturn(true);
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void isAvailable_highEndDock_shouldReturnFalse() {
fakeDockState(Intent.EXTRA_DOCK_STATE_HE_DESK);
when(mContext.getResources().getBoolean(com.android.settings.R.bool.has_dock_settings))
.thenReturn(true);
assertThat(mController.isAvailable()).isFalse();
}
@Test
public void isAvailable_lowEndDock_shouldReturnTrue() {
fakeDockState(Intent.EXTRA_DOCK_STATE_LE_DESK);
when(mContext.getResources().getBoolean(com.android.settings.R.bool.has_dock_settings))
.thenReturn(true);
assertThat(mController.isAvailable()).isTrue();
}
@Test @Test
public void displayPreference_dockAudioDisabled_shouldSelectFirstItem() { public void displayPreference_dockAudioDisabled_shouldSelectFirstItem() {
Global.putInt(mContentResolver, Global.DOCK_AUDIO_MEDIA_ENABLED, 0); Global.putInt(mContentResolver, Global.DOCK_AUDIO_MEDIA_ENABLED, 0);
@@ -127,4 +161,11 @@ public class DockAudioMediaPreferenceControllerTest {
assertThat(Global.getInt(mContentResolver, Global.DOCK_AUDIO_MEDIA_ENABLED, 0)) assertThat(Global.getInt(mContentResolver, Global.DOCK_AUDIO_MEDIA_ENABLED, 0))
.isEqualTo(1); .isEqualTo(1);
} }
private void fakeDockState(int dockState) {
Intent intent = new Intent(Intent.ACTION_DOCK_EVENT);
intent.putExtra(Intent.EXTRA_DOCK_STATE, dockState);
when(mContext.registerReceiver(nullable(BroadcastReceiver.class),
any(IntentFilter.class))).thenReturn(intent);
}
} }