Merge "Handle null intent in WifiCallingPreferenceController" into qt-dev am: b4d94a8ccc

am: ab2a2b3d3f

Change-Id: Ic27910a58098eb4234e976cd2619a106bf4c347f
This commit is contained in:
Lei Yu
2019-06-14 16:06:03 -07:00
committed by android-build-merger
2 changed files with 13 additions and 0 deletions

View File

@@ -114,6 +114,10 @@ public class WifiCallingPreferenceController extends TelephonyBasePreferenceCont
if (mSimCallManager != null) {
Intent intent = MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext,
mSimCallManager);
if (intent == null) {
// Do nothing in this case since preference is invisible
return;
}
final PackageManager pm = mContext.getPackageManager();
List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
preference.setTitle(resolutions.get(0).loadLabel(pm));

View File

@@ -27,6 +27,7 @@ import android.content.Context;
import android.content.Intent;
import android.os.PersistableBundle;
import android.provider.Settings;
import android.telecom.PhoneAccountHandle;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -117,6 +118,14 @@ public class WifiCallingPreferenceControllerTest {
assertThat(mPreference.isEnabled()).isFalse();
}
@Test
public void updateState_invalidPhoneAccountHandle_shouldNotCrash() {
mController.mSimCallManager = new PhoneAccountHandle(null /* invalid */, "");
//Should not crash
mController.updateState(mPreference);
}
@Test
public void updateState_wfcNonRoaming() {
assertNull(mController.mSimCallManager);