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

am: c1d04860d5

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

View File

@@ -51,9 +51,10 @@ public class BluetoothDeviceNamePreferenceController extends AbstractPreferenceC
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);
@@ -76,7 +77,7 @@ public class BluetoothDeviceNamePreferenceController extends AbstractPreferenceC
@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());
}
} }