[Settings] IMS feature checking before accessing VT IMS API

Check IMS feature before accessing VT IMS API.o

Bug: 231248315
Test: local
Change-Id: I01b438cc79bb91ca05ba6bf57c7e38eb06e51a98
This commit is contained in:
Bonian Chen
2022-05-03 10:50:32 +08:00
parent a82a1ff84e
commit e0f1081739
2 changed files with 9 additions and 1 deletions

View File

@@ -17,6 +17,7 @@
package com.android.settings.network.telephony;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
@@ -129,6 +130,12 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
return queryImsState(mSubId).isEnabledByUser();
}
@VisibleForTesting
protected boolean isImsSupported() {
return mContext.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_TELEPHONY_IMS);
}
public VideoCallingPreferenceController init(int subId) {
mSubId = subId;
@@ -154,7 +161,7 @@ public class VideoCallingPreferenceController extends TelephonyTogglePreferenceC
return false;
}
return queryImsState(subId).isReadyToVideoCall();
return isImsSupported() && queryImsState(subId).isReadyToVideoCall();
}
@Override

View File

@@ -89,6 +89,7 @@ public class VideoCallingPreferenceControllerTest {
mController.init(SUB_ID);
doReturn(mQueryImsState).when(mController).queryImsState(anyInt());
doReturn(mQueryVoLteState).when(mController).queryVoLteState(anyInt());
doReturn(true).when(mController).isImsSupported();
mPreference.setKey(mController.getPreferenceKey());
mQueryImsState.setIsEnabledByPlatform(true);