Merge "Crash in Settings observed while changing the device orientation after renamed tablet"

This commit is contained in:
Fabrice Di Meglio
2014-02-14 23:59:47 +00:00
committed by Android (Google) Code Review
3 changed files with 12 additions and 9 deletions

View File

@@ -57,7 +57,7 @@ final class BluetoothDiscoverableEnabler implements Preference.OnPreferenceClick
static final int DEFAULT_DISCOVERABLE_TIMEOUT = DISCOVERABLE_TIMEOUT_TWO_MINUTES;
private final Context mContext;
private Context mContext;
private final Handler mUiHandler;
private final Preference mDiscoveryPreference;
// Preference for visibility time out. Not final as it needs to be set through setter.
@@ -91,9 +91,8 @@ final class BluetoothDiscoverableEnabler implements Preference.OnPreferenceClick
}
};
BluetoothDiscoverableEnabler(Context context, LocalBluetoothAdapter adapter,
BluetoothDiscoverableEnabler(LocalBluetoothAdapter adapter,
Preference discoveryPreference) {
mContext = context;
mUiHandler = new Handler();
mLocalAdapter = adapter;
mDiscoveryPreference = discoveryPreference;
@@ -105,11 +104,15 @@ final class BluetoothDiscoverableEnabler implements Preference.OnPreferenceClick
mVisibilityTimeoutPreference = visibilityPreference;
}
public void resume() {
public void resume(Context context) {
if (mLocalAdapter == null) {
return;
}
if (mContext != context) {
mContext = context;
}
IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED);
mContext.registerReceiver(mReceiver, filter);
mDiscoveryPreference.setOnPreferenceClickListener(this);

View File

@@ -156,7 +156,7 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment {
super.onResume();
if (mDiscoverableEnabler != null) {
mDiscoverableEnabler.resume();
mDiscoverableEnabler.resume(getActivity());
}
getActivity().registerReceiver(mReceiver, mIntentFilter);
if (mLocalAdapter != null) {
@@ -262,9 +262,9 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment {
if (!isRestrictedAndNotPinProtected()) {
if (mDiscoverableEnabler == null) {
mDiscoverableEnabler = new BluetoothDiscoverableEnabler(getActivity(),
mLocalAdapter, mMyDevicePreference);
mDiscoverableEnabler.resume();
mDiscoverableEnabler = new BluetoothDiscoverableEnabler(mLocalAdapter,
mMyDevicePreference);
mDiscoverableEnabler.resume(getActivity());
LocalBluetoothManager.getInstance(getActivity()).setDiscoverableEnabler(
mDiscoverableEnabler);
}

View File

@@ -82,7 +82,7 @@ public final class LocalDeviceProfilesSettings extends SettingsPreferenceFragmen
super.onResume();
mManager.setForegroundActivity(getActivity());
mAdvertisingEnabler.resume();
mDiscoverableEnabler.resume();
mDiscoverableEnabler.resume(getActivity());
}
@Override