Merge "Show just disconnected device on previously connected"
This commit is contained in:
committed by
Android (Google) Code Review
commit
3777d883a3
@@ -23,8 +23,10 @@ import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
|
||||
@@ -34,10 +36,12 @@ import androidx.preference.PreferenceGroup;
|
||||
import androidx.preference.PreferenceManager;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.bluetooth.BluetoothDevicePreference;
|
||||
import com.android.settings.bluetooth.BluetoothDeviceUpdater;
|
||||
import com.android.settings.connecteddevice.dock.DockUpdater;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
|
||||
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -49,11 +53,18 @@ import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.shadow.api.Shadow;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = ShadowBluetoothAdapter.class)
|
||||
public class PreviouslyConnectedDevicePreferenceControllerTest {
|
||||
|
||||
private final String KEY = "test_key";
|
||||
private static final String KEY = "test_key";
|
||||
private static final String FAKE_ADDRESS_1 = "AA:AA:AA:AA:AA:01";
|
||||
private static final String FAKE_ADDRESS_2 = "AA:AA:AA:AA:AA:02";
|
||||
private static final String FAKE_ADDRESS_3 = "AA:AA:AA:AA:AA:03";
|
||||
private static final String FAKE_ADDRESS_4 = "AA:AA:AA:AA:AA:04";
|
||||
|
||||
@Mock
|
||||
private DashboardFragment mDashboardFragment;
|
||||
@@ -67,6 +78,22 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
|
||||
private PreferenceManager mPreferenceManager;
|
||||
@Mock
|
||||
private Preference mSeeAllPreference;
|
||||
@Mock
|
||||
private CachedBluetoothDevice mCachedDevice1;
|
||||
@Mock
|
||||
private CachedBluetoothDevice mCachedDevice2;
|
||||
@Mock
|
||||
private CachedBluetoothDevice mCachedDevice3;
|
||||
@Mock
|
||||
private CachedBluetoothDevice mCachedDevice4;
|
||||
@Mock
|
||||
private BluetoothDevice mBluetoothDevice1;
|
||||
@Mock
|
||||
private BluetoothDevice mBluetoothDevice2;
|
||||
@Mock
|
||||
private BluetoothDevice mBluetoothDevice3;
|
||||
@Mock
|
||||
private BluetoothDevice mBluetoothDevice4;
|
||||
|
||||
private Context mContext;
|
||||
private PreviouslyConnectedDevicePreferenceController mPreConnectedDeviceController;
|
||||
@@ -85,6 +112,22 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
|
||||
mPreConnectedDeviceController.setSavedDockUpdater(mDockUpdater);
|
||||
mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
|
||||
|
||||
when(mCachedDevice1.getDevice()).thenReturn(mBluetoothDevice1);
|
||||
when(mCachedDevice1.getAddress()).thenReturn(FAKE_ADDRESS_1);
|
||||
when(mCachedDevice2.getDevice()).thenReturn(mBluetoothDevice2);
|
||||
when(mCachedDevice2.getAddress()).thenReturn(FAKE_ADDRESS_2);
|
||||
when(mCachedDevice3.getDevice()).thenReturn(mBluetoothDevice3);
|
||||
when(mCachedDevice3.getAddress()).thenReturn(FAKE_ADDRESS_3);
|
||||
when(mCachedDevice4.getDevice()).thenReturn(mBluetoothDevice4);
|
||||
when(mCachedDevice4.getAddress()).thenReturn(FAKE_ADDRESS_4);
|
||||
|
||||
final List<BluetoothDevice> mMostRecentlyConnectedDevices = new ArrayList<>();
|
||||
mMostRecentlyConnectedDevices.add(mBluetoothDevice1);
|
||||
mMostRecentlyConnectedDevices.add(mBluetoothDevice2);
|
||||
mMostRecentlyConnectedDevices.add(mBluetoothDevice4);
|
||||
mMostRecentlyConnectedDevices.add(mBluetoothDevice3);
|
||||
mShadowBluetoothAdapter.setMostRecentlyConnectedDevices(mMostRecentlyConnectedDevices);
|
||||
|
||||
mPreferenceGroup = spy(new PreferenceCategory(mContext));
|
||||
doReturn(mPreferenceManager).when(mPreferenceGroup).getPreferenceManager();
|
||||
mPreferenceGroup.setVisible(false);
|
||||
@@ -136,29 +179,43 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void onDeviceAdded_addDevicePreference_displayIt() {
|
||||
mPreConnectedDeviceController.onDeviceAdded(new Preference(mContext));
|
||||
final BluetoothDevicePreference preference1 = new BluetoothDevicePreference(
|
||||
mContext, mCachedDevice1, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
|
||||
|
||||
assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(1);
|
||||
mPreConnectedDeviceController.onDeviceAdded(preference1);
|
||||
|
||||
assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDeviceAdded_addFourDevicePreference_onlyDisplayThree() {
|
||||
mPreConnectedDeviceController.onDeviceAdded(new Preference(mContext));
|
||||
mPreConnectedDeviceController.onDeviceAdded(new Preference(mContext));
|
||||
mPreConnectedDeviceController.onDeviceAdded(new Preference(mContext));
|
||||
mPreConnectedDeviceController.onDeviceAdded(new Preference(mContext));
|
||||
final BluetoothDevicePreference preference1 = new BluetoothDevicePreference(
|
||||
mContext, mCachedDevice1, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
|
||||
final BluetoothDevicePreference preference2 = new BluetoothDevicePreference(
|
||||
mContext, mCachedDevice2, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
|
||||
final BluetoothDevicePreference preference3 = new BluetoothDevicePreference(
|
||||
mContext, mCachedDevice3, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
|
||||
final BluetoothDevicePreference preference4 = new BluetoothDevicePreference(
|
||||
mContext, mCachedDevice4, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
|
||||
|
||||
assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(3);
|
||||
mPreConnectedDeviceController.onDeviceAdded(preference1);
|
||||
mPreConnectedDeviceController.onDeviceAdded(preference2);
|
||||
mPreConnectedDeviceController.onDeviceAdded(preference3);
|
||||
mPreConnectedDeviceController.onDeviceAdded(preference4);
|
||||
|
||||
// 3 BluetoothDevicePreference and 1 see all preference
|
||||
assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(4);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDeviceRemoved_removeLastDevice_setInvisible() {
|
||||
final Preference preference = new Preference(mContext);
|
||||
mPreferenceGroup.addPreference(preference);
|
||||
public void onDeviceRemoved_removeLastDevice_showSeeAllPreference() {
|
||||
final BluetoothDevicePreference preference1 = new BluetoothDevicePreference(
|
||||
mContext, mCachedDevice1, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
|
||||
mPreferenceGroup.addPreference(preference1);
|
||||
|
||||
mPreConnectedDeviceController.onDeviceRemoved(preference);
|
||||
mPreConnectedDeviceController.onDeviceRemoved(preference1);
|
||||
|
||||
assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(0);
|
||||
assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -17,6 +17,7 @@
|
||||
package com.android.settings.testutils.shadow;
|
||||
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
|
||||
import org.robolectric.annotation.Implementation;
|
||||
import org.robolectric.annotation.Implements;
|
||||
@@ -29,6 +30,7 @@ public class ShadowBluetoothAdapter extends org.robolectric.shadows.ShadowBlueto
|
||||
|
||||
private int mState;
|
||||
private List<Integer> mSupportedProfiles = new ArrayList<>();
|
||||
private List<BluetoothDevice> mMostRecentlyConnectedDevices = new ArrayList<>();
|
||||
|
||||
@Implementation
|
||||
protected List<Integer> getSupportedProfiles() {
|
||||
@@ -56,4 +58,13 @@ public class ShadowBluetoothAdapter extends org.robolectric.shadows.ShadowBlueto
|
||||
protected boolean factoryReset() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Implementation
|
||||
protected List<BluetoothDevice> getMostRecentlyConnectedDevices() {
|
||||
return mMostRecentlyConnectedDevices;
|
||||
}
|
||||
|
||||
public void setMostRecentlyConnectedDevices(List<BluetoothDevice> list) {
|
||||
mMostRecentlyConnectedDevices = list;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user