Bluetooth : fix for unnecessary device-scan starting
- When trying to pair with any device, if bond state changes device scan will be started automatically. - add some flag to check proper scan time and to prevent unnecessary device scanning. Signed-off-by: jhtop.kim <jhtop.kim@samsung.com> Change-Id: I4977ec122105f33cdd25a4f5c9fed59dda916379
This commit is contained in:
@@ -68,6 +68,7 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment {
|
|||||||
|
|
||||||
private PreferenceGroup mAvailableDevicesCategory;
|
private PreferenceGroup mAvailableDevicesCategory;
|
||||||
private boolean mAvailableDevicesCategoryIsPresent;
|
private boolean mAvailableDevicesCategoryIsPresent;
|
||||||
|
private boolean mActivityStarted;
|
||||||
|
|
||||||
private TextView mEmptyView;
|
private TextView mEmptyView;
|
||||||
|
|
||||||
@@ -98,6 +99,7 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityCreated(Bundle savedInstanceState) {
|
public void onActivityCreated(Bundle savedInstanceState) {
|
||||||
|
mActivityStarted = true;
|
||||||
super.onActivityCreated(savedInstanceState);
|
super.onActivityCreated(savedInstanceState);
|
||||||
|
|
||||||
mEmptyView = (TextView) getView().findViewById(android.R.id.empty);
|
mEmptyView = (TextView) getView().findViewById(android.R.id.empty);
|
||||||
@@ -144,7 +146,7 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment {
|
|||||||
}
|
}
|
||||||
getActivity().registerReceiver(mReceiver, mIntentFilter);
|
getActivity().registerReceiver(mReceiver, mIntentFilter);
|
||||||
|
|
||||||
updateContent(mLocalAdapter.getBluetoothState());
|
updateContent(mLocalAdapter.getBluetoothState(), mActivityStarted);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -226,7 +228,7 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment {
|
|||||||
preferenceGroup.setEnabled(true);
|
preferenceGroup.setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateContent(int bluetoothState) {
|
private void updateContent(int bluetoothState, boolean scanState) {
|
||||||
final PreferenceScreen preferenceScreen = getPreferenceScreen();
|
final PreferenceScreen preferenceScreen = getPreferenceScreen();
|
||||||
int messageId = 0;
|
int messageId = 0;
|
||||||
|
|
||||||
@@ -289,7 +291,14 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment {
|
|||||||
|
|
||||||
if (numberOfPairedDevices == 0) {
|
if (numberOfPairedDevices == 0) {
|
||||||
preferenceScreen.removePreference(mPairedDevicesCategory);
|
preferenceScreen.removePreference(mPairedDevicesCategory);
|
||||||
startScanning();
|
if (scanState == true) {
|
||||||
|
mActivityStarted = false;
|
||||||
|
startScanning();
|
||||||
|
} else {
|
||||||
|
if (!mAvailableDevicesCategoryIsPresent) {
|
||||||
|
getPreferenceScreen().addPreference(mAvailableDevicesCategory);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
getActivity().invalidateOptionsMenu();
|
getActivity().invalidateOptionsMenu();
|
||||||
return; // not break
|
return; // not break
|
||||||
@@ -316,7 +325,7 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment {
|
|||||||
@Override
|
@Override
|
||||||
public void onBluetoothStateChanged(int bluetoothState) {
|
public void onBluetoothStateChanged(int bluetoothState) {
|
||||||
super.onBluetoothStateChanged(bluetoothState);
|
super.onBluetoothStateChanged(bluetoothState);
|
||||||
updateContent(bluetoothState);
|
updateContent(bluetoothState, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -329,7 +338,7 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment {
|
|||||||
public void onDeviceBondStateChanged(CachedBluetoothDevice cachedDevice, int bondState) {
|
public void onDeviceBondStateChanged(CachedBluetoothDevice cachedDevice, int bondState) {
|
||||||
setDeviceListGroup(getPreferenceScreen());
|
setDeviceListGroup(getPreferenceScreen());
|
||||||
removeAllDevices();
|
removeAllDevices();
|
||||||
updateContent(mLocalAdapter.getBluetoothState());
|
updateContent(mLocalAdapter.getBluetoothState(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private final View.OnClickListener mDeviceProfilesListener = new View.OnClickListener() {
|
private final View.OnClickListener mDeviceProfilesListener = new View.OnClickListener() {
|
||||||
|
Reference in New Issue
Block a user