Fix a bug where bt name is updated to wrong preference.

am: f6e6ae2441

Change-Id: Ida538c867c7f68f7327e7f5a402023aa69ba41ed
This commit is contained in:
Fan Zhang
2017-07-18 00:57:59 +00:00
committed by android-build-merger
2 changed files with 15 additions and 5 deletions

View File

@@ -50,9 +50,10 @@ public class BluetoothDeviceNamePreferenceController extends PreferenceControlle
private final int mAccentColor; private final int mAccentColor;
@VisibleForTesting
Preference mPreference;
private LocalBluetoothManager mLocalManager; private LocalBluetoothManager mLocalManager;
private LocalBluetoothAdapter mLocalAdapter; private LocalBluetoothAdapter mLocalAdapter;
private Preference mPreference;
public BluetoothDeviceNamePreferenceController(Context context, Lifecycle lifecycle) { public BluetoothDeviceNamePreferenceController(Context context, Lifecycle lifecycle) {
this(context, (LocalBluetoothAdapter) null); this(context, (LocalBluetoothAdapter) null);
@@ -75,7 +76,7 @@ public class BluetoothDeviceNamePreferenceController extends PreferenceControlle
@Override @Override
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
mPreference = screen.findPreference(KEY_DEVICE_NAME); mPreference = screen.findPreference(getPreferenceKey());
super.displayPreference(screen); super.displayPreference(screen);
} }

View File

@@ -24,10 +24,10 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.app.Fragment; import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction; import android.app.FragmentTransaction;
import android.content.Context; import android.content.Context;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import com.android.settings.TestConfig; import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -53,9 +53,9 @@ public class BluetoothDeviceRenamePreferenceControllerTest {
@Mock(answer = Answers.RETURNS_DEEP_STUBS) @Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Fragment mFragment; private Fragment mFragment;
@Mock @Mock
private FragmentManager mFragmentManager;
@Mock
private FragmentTransaction mFragmentTransaction; private FragmentTransaction mFragmentTransaction;
@Mock
private PreferenceScreen mScreen;
private Context mContext; private Context mContext;
private Preference mPreference; private Preference mPreference;
private BluetoothDeviceRenamePreferenceController mController; private BluetoothDeviceRenamePreferenceController mController;
@@ -90,4 +90,13 @@ public class BluetoothDeviceRenamePreferenceControllerTest {
verify(mFragmentTransaction).add(any(), anyString()); verify(mFragmentTransaction).add(any(), anyString());
verify(mFragmentTransaction).commit(); verify(mFragmentTransaction).commit();
} }
@Test
public void displayPreference_shouldFindPreferenceWithMatchingPrefKey() {
when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
mController.displayPreference(mScreen);
assertThat(mController.mPreference.getKey()).isEqualTo(mController.getPreferenceKey());
}
} }