Merge "Settings: Optimize the selected WFD route preference summary"
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java b/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
index 9e36247..650267a 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingDialogFragment.java
@@ -55,6 +55,7 @@
private BluetoothPairingController mPairingController;
private BluetoothPairingDialog mPairingDialogActivity;
private EditText mPairingView;
+ private boolean mPositiveClicked = false;
/**
* The interface we expect a listener to implement. Typically this should be done by
* the controller.
@@ -83,6 +84,14 @@
}
@Override
+ public void onDestroy() {
+ super.onDestroy();
+ if (!mPositiveClicked) {
+ mPairingController.onCancel();
+ }
+ }
+
+ @Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@@ -104,6 +113,7 @@
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_POSITIVE) {
+ mPositiveClicked = true;
mPairingController.onDialogPositiveClick(this);
} else if (which == DialogInterface.BUTTON_NEGATIVE) {
mPairingController.onDialogNegativeClick(this);
diff --git a/src/com/android/settings/datausage/DataUsageList.java b/src/com/android/settings/datausage/DataUsageList.java
index 6beb3d8..4ee6530 100644
--- a/src/com/android/settings/datausage/DataUsageList.java
+++ b/src/com/android/settings/datausage/DataUsageList.java
@@ -37,7 +37,6 @@
import android.provider.Settings;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
-import android.util.FeatureFlagUtils;
import android.util.Log;
import android.util.SparseArray;
import android.view.View;
@@ -49,6 +48,7 @@
import android.widget.Spinner;
import androidx.annotation.VisibleForTesting;
+import androidx.lifecycle.Lifecycle;
import androidx.loader.app.LoaderManager.LoaderCallbacks;
import androidx.loader.content.Loader;
import androidx.preference.Preference;
@@ -501,6 +501,17 @@
+ cycle.end + "]");
}
+ // Avoid from updating UI after #onStop.
+ if (!getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) {
+ return;
+ }
+
+ // Avoid from updating UI when async query still on-going.
+ // This could happen when a request from #onMobileDataEnabledChange.
+ if (mCycleData == null) {
+ return;
+ }
+
// update chart to show selected cycle, and update detail data
// to match updated sweep bounds.
mChart.setNetworkCycleData(mCycleData.get(position));
diff --git a/src/com/android/settings/security/SimLockPreferenceController.java b/src/com/android/settings/security/SimLockPreferenceController.java
index 3b85888..e570e5d 100644
--- a/src/com/android/settings/security/SimLockPreferenceController.java
+++ b/src/com/android/settings/security/SimLockPreferenceController.java
@@ -95,7 +95,8 @@
for (SubscriptionInfo subInfo : subInfoList) {
final int simState = mTelephonyManager.getSimState(subInfo.getSimSlotIndex());
if ((simState != TelephonyManager.SIM_STATE_ABSENT)
- && (simState != TelephonyManager.SIM_STATE_UNKNOWN)) {
+ && (simState != TelephonyManager.SIM_STATE_UNKNOWN)
+ && (simState != TelephonyManager.SIM_STATE_PERM_DISABLED)) {
return true;
}
}