Merge "Fix ClassCastException at NetworkSelectSettings" into udc-qpr-dev

This commit is contained in:
SongFerng Wang
2023-08-29 03:53:48 +00:00
committed by Android (Google) Code Review
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));
}
}