Merge "[Settings] Fix crash when user enter bluetooth page quickly." into udc-dev am: 3e374cc7a7
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23601556 Change-Id: Ic8bad0f315c897e786ab0669cf5fc68b955b0184 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -113,15 +113,27 @@ public class BlockingPrefWithSliceController extends BasePreferenceController im
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
if (mLiveData != null) {
|
||||
if (mLiveData == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
mLiveData.observeForever(this);
|
||||
} catch (SecurityException e) {
|
||||
Log.w(TAG, "observeForever - no permission");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop() {
|
||||
if (mLiveData != null) {
|
||||
if (mLiveData == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
mLiveData.removeObserver(this);
|
||||
} catch (SecurityException e) {
|
||||
Log.w(TAG, "removeObserver - no permission");
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -44,7 +44,6 @@ public class SlicePreferenceController extends BasePreferenceController implemen
|
||||
LiveData<Slice> mLiveData;
|
||||
@VisibleForTesting
|
||||
SlicePreference mSlicePreference;
|
||||
private boolean mIsObservering = false;
|
||||
private Uri mUri;
|
||||
|
||||
public SlicePreferenceController(Context context, String preferenceKey) {
|
||||
@@ -74,9 +73,14 @@ public class SlicePreferenceController extends BasePreferenceController implemen
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
if (mLiveData != null && !mIsObservering) {
|
||||
mIsObservering = true;
|
||||
if (mLiveData == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
mLiveData.observeForever(this);
|
||||
} catch (SecurityException e) {
|
||||
Log.w(TAG, "observeForever - no permission");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,9 +95,14 @@ public class SlicePreferenceController extends BasePreferenceController implemen
|
||||
}
|
||||
|
||||
private void removeLiveDataObserver() {
|
||||
if (mLiveData != null && mIsObservering && mLiveData.hasActiveObservers()) {
|
||||
mIsObservering = false;
|
||||
if (mLiveData == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
mLiveData.removeObserver(this);
|
||||
} catch (SecurityException e) {
|
||||
Log.w(TAG, "removeLiveDataObserver - no permission");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user