Change the title when in call/media state
* Change the title when in call/media state. Example: call state show "Available call devices" media state show "Available media devices" * Use isAudioModeOngoingCall() utility function for checking if it is in call status * Add register test to verify when in onStart() and onStop() the BluetoothCallback can be register and unregister. * Add title string test to verify when in call or media state, the title can be changed to corresponding string Bug: 78150641 Test: make -j40 RunSettingsRoboTests Change-Id: I6be72cf0cae75525084ac3c5be8524c709f51f7d Merged-In: I6be72cf0cae75525084ac3c5be8524c709f51f7d
This commit is contained in:
@@ -19,6 +19,7 @@ import static com.android.settings.core.BasePreferenceController.AVAILABLE;
|
||||
import static com.android.settings.core.BasePreferenceController.DISABLED_UNSUPPORTED;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Matchers.anyString;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.spy;
|
||||
@@ -27,14 +28,21 @@ import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.media.AudioManager;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceGroup;
|
||||
import android.support.v7.preference.PreferenceManager;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.bluetooth.AvailableMediaBluetoothDeviceUpdater;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.testutils.shadow.ShadowAudioManager;
|
||||
import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
|
||||
import com.android.settingslib.bluetooth.BluetoothCallback;
|
||||
import com.android.settingslib.bluetooth.BluetoothEventManager;
|
||||
import com.android.settingslib.bluetooth.LocalBluetoothManager;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -43,8 +51,13 @@ import org.mockito.Answers;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
@Config(shadows = {
|
||||
ShadowAudioManager.class,
|
||||
ShadowBluetoothUtils.class}
|
||||
)
|
||||
public class AvailableMediaDeviceGroupControllerTest {
|
||||
|
||||
private static final String PREFERENCE_KEY_1 = "pref_key_1";
|
||||
@@ -59,11 +72,17 @@ public class AvailableMediaDeviceGroupControllerTest {
|
||||
private PreferenceManager mPreferenceManager;
|
||||
@Mock
|
||||
private PackageManager mPackageManager;
|
||||
@Mock
|
||||
private BluetoothEventManager mEventManager;
|
||||
@Mock
|
||||
private LocalBluetoothManager mLocalManager;
|
||||
|
||||
private PreferenceGroup mPreferenceGroup;
|
||||
private Context mContext;
|
||||
private Preference mPreference;
|
||||
private AvailableMediaDeviceGroupController mAvailableMediaDeviceGroupController;
|
||||
private LocalBluetoothManager mLocalBluetoothManager;
|
||||
private ShadowAudioManager mShadowAudioManager;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
@@ -78,6 +97,11 @@ public class AvailableMediaDeviceGroupControllerTest {
|
||||
doReturn(mPackageManager).when(mContext).getPackageManager();
|
||||
doReturn(true).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
|
||||
|
||||
ShadowBluetoothUtils.sLocalBluetoothManager = mLocalManager;
|
||||
mLocalBluetoothManager = ShadowBluetoothUtils.getLocalBtManager(mContext);
|
||||
mShadowAudioManager = ShadowAudioManager.getShadow();
|
||||
doReturn(mEventManager).when(mLocalBluetoothManager).getEventManager();
|
||||
|
||||
mAvailableMediaDeviceGroupController = new AvailableMediaDeviceGroupController(mContext);
|
||||
mAvailableMediaDeviceGroupController.
|
||||
setBluetoothDeviceUpdater(mAvailableMediaBluetoothDeviceUpdater);
|
||||
@@ -127,6 +151,8 @@ public class AvailableMediaDeviceGroupControllerTest {
|
||||
// register the callback in onStart()
|
||||
mAvailableMediaDeviceGroupController.onStart();
|
||||
verify(mAvailableMediaBluetoothDeviceUpdater).registerCallback();
|
||||
verify(mLocalBluetoothManager.getEventManager()).registerCallback(
|
||||
any(BluetoothCallback.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -134,6 +160,8 @@ public class AvailableMediaDeviceGroupControllerTest {
|
||||
// unregister the callback in onStop()
|
||||
mAvailableMediaDeviceGroupController.onStop();
|
||||
verify(mAvailableMediaBluetoothDeviceUpdater).unregisterCallback();
|
||||
verify(mLocalBluetoothManager.getEventManager()).unregisterCallback(
|
||||
any(BluetoothCallback.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -151,4 +179,22 @@ public class AvailableMediaDeviceGroupControllerTest {
|
||||
assertThat(mAvailableMediaDeviceGroupController.getAvailabilityStatus()).isEqualTo(
|
||||
AVAILABLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setTitle_inCallState_showCallStateTitle() {
|
||||
mShadowAudioManager.setMode(AudioManager.MODE_IN_CALL);
|
||||
mAvailableMediaDeviceGroupController.onAudioModeChanged();
|
||||
|
||||
assertThat(mPreferenceGroup.getTitle()).isEqualTo(
|
||||
mContext.getText(R.string.connected_device_available_call_title));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setTitle_notInCallState_showMediaStateTitle() {
|
||||
mShadowAudioManager.setMode(AudioManager.MODE_NORMAL);
|
||||
mAvailableMediaDeviceGroupController.onAudioModeChanged();
|
||||
|
||||
assertThat(mPreferenceGroup.getTitle()).isEqualTo(
|
||||
mContext.getText(R.string.connected_device_available_media_title));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user