Merge "Fix ClassCastException at NetworkSelectSettings" into udc-qpr-dev am: 32c75f49a7

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/24548405

Change-Id: I039187faf0a705b68509a241781f59f1e4c8c4b6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
SongFerng Wang
2023-08-29 04:59:49 +00:00
committed by Automerger Merge Worker
2 changed files with 48 additions and 33 deletions

View File

@@ -236,7 +236,15 @@ public class NetworkSelectSettings extends DashboardFragment {
@Override
public boolean onPreferenceTreeClick(Preference preference) {
if (preference != mSelectedPreference) {
if (preference == mSelectedPreference) {
Log.d(TAG, "onPreferenceTreeClick: preference is mSelectedPreference. Do nothing.");
return true;
}
if (!(preference instanceof NetworkOperatorPreference)) {
Log.d(TAG, "onPreferenceTreeClick: preference is not the NetworkOperatorPreference.");
return false;
}
stopNetworkQuery();
// Refresh the last selected item in case users reselect network.
@@ -266,7 +274,6 @@ public class NetworkSelectSettings extends DashboardFragment {
operator, true /* persistSelection */);
msg.sendToTarget();
});
}
return true;
}
@@ -563,8 +570,7 @@ public class NetworkSelectSettings extends DashboardFragment {
int idxPreference = mPreferenceCategory.getPreferenceCount();
while (idxPreference > 0) {
idxPreference--;
final NetworkOperatorPreference networkOperator = (NetworkOperatorPreference)
(mPreferenceCategory.getPreference(idxPreference));
final Preference networkOperator = mPreferenceCategory.getPreference(idxPreference);
networkOperator.setSummary(null);
}
}

View File

@@ -25,7 +25,6 @@ import android.content.Context;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.provider.Settings;
import android.telephony.CarrierConfigManager;
import android.telephony.CellIdentity;
import android.telephony.CellIdentityGsm;
@@ -37,6 +36,7 @@ import android.telephony.CellSignalStrengthGsm;
import android.telephony.CellSignalStrengthLte;
import android.telephony.TelephonyManager;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceManager;
import androidx.preference.PreferenceScreen;
@@ -310,4 +310,13 @@ public class NetworkSelectSettingsTest {
cellInfoGsm.setCellSignalStrength(cssg);
return cellInfoGsm;
}
@Test
@UiThreadTest
public void onPreferenceTreeClick_notNetworkOperatorPreference_noCrash() {
mNetworkSelectSettings.onCreateInitialization();
mNetworkSelectSettings.enablePreferenceScreen(true);
mNetworkSelectSettings.onPreferenceTreeClick(new Preference(mContext));
}
}