Loading src/java/com/android/internal/telephony/ImsSmsDispatcher.java +7 −7 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ import android.telephony.Rlog; import android.telephony.ServiceState; import android.telephony.ims.ImsReasonInfo; import android.telephony.ims.aidl.IImsSmsListener; import android.telephony.ims.feature.ImsFeature; import android.telephony.ims.feature.MmTelFeature; import android.telephony.ims.stub.ImsRegistrationImplBase; import android.telephony.ims.stub.ImsSmsImplBase; Loading Loading @@ -66,8 +65,8 @@ public class ImsSmsDispatcher extends SMSDispatcher { * Listen to the IMS service state change * */ private ImsRegistrationImplBase.Callback mRegistrationCallback = new ImsRegistrationImplBase.Callback() { private android.telephony.ims.ImsMmTelManager.RegistrationCallback mRegistrationCallback = new android.telephony.ims.ImsMmTelManager.RegistrationCallback() { @Override public void onRegistered( @ImsRegistrationImplBase.ImsRegistrationTech int imsRadioTech) { Loading Loading @@ -95,12 +94,13 @@ public class ImsSmsDispatcher extends SMSDispatcher { } }; private ImsFeature.CapabilityCallback mCapabilityCallback = new ImsFeature.CapabilityCallback() { private android.telephony.ims.ImsMmTelManager.CapabilityCallback mCapabilityCallback = new android.telephony.ims.ImsMmTelManager.CapabilityCallback() { @Override public void onCapabilitiesStatusChanged(ImsFeature.Capabilities config) { public void onCapabilitiesStatusChanged( MmTelFeature.MmTelCapabilities capabilities) { synchronized (mLock) { mIsSmsCapable = config.isCapable( mIsSmsCapable = capabilities.isCapable( MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_SMS); } } Loading src/java/com/android/internal/telephony/Phone.java +14 −0 Original line number Diff line number Diff line Loading @@ -3277,6 +3277,20 @@ public abstract class Phone extends Handler implements PhoneInternalInterface { return isWifiCallingEnabled; } /** * @return true if the IMS capability for the registration technology specified is available, * false otherwise. */ public boolean isImsCapabilityAvailable(int capability, int regTech) { Phone imsPhone = mImsPhone; boolean isAvailable = false; if (imsPhone != null) { isAvailable = imsPhone.isImsCapabilityAvailable(capability, regTech); } Rlog.d(LOG_TAG, "isImsRegistered =" + isAvailable); return isAvailable; } /** * Get Volte Feature Availability */ Loading src/java/com/android/internal/telephony/imsphone/ImsPhone.java +5 −0 Original line number Diff line number Diff line Loading @@ -1619,6 +1619,11 @@ public class ImsPhone extends ImsPhoneBase { mDefaultPhone.getServiceStateTracker().onImsCapabilityChanged(); } @Override public boolean isImsCapabilityAvailable(int capability, int regTech) { return mCT.isImsCapabilityAvailable(capability, regTech); } @Override public boolean isVolteEnabled() { return mCT.isVolteEnabled(); Loading src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +17 −7 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ import android.telephony.ServiceState; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.telephony.ims.ImsCallProfile; import android.telephony.ims.ImsMmTelManager; import android.telephony.ims.ImsReasonInfo; import android.telephony.ims.ImsStreamMediaProfile; import android.telephony.ims.ImsSuppServiceNotification; Loading Loading @@ -3012,8 +3013,8 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { } }; private final ImsRegistrationImplBase.Callback mImsRegistrationCallback = new ImsRegistrationImplBase.Callback() { private final ImsMmTelManager.RegistrationCallback mImsRegistrationCallback = new ImsMmTelManager.RegistrationCallback() { @Override public void onRegistered( Loading Loading @@ -3052,13 +3053,14 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { } }; private final ImsFeature.CapabilityCallback mImsCapabilityCallback = new ImsFeature.CapabilityCallback() { private final ImsMmTelManager.CapabilityCallback mImsCapabilityCallback = new ImsMmTelManager.CapabilityCallback() { @Override public void onCapabilitiesStatusChanged(ImsFeature.Capabilities config) { if (DBG) log("onCapabilitiesStatusChanged: " + config); public void onCapabilitiesStatusChanged( MmTelFeature.MmTelCapabilities capabilities) { if (DBG) log("onCapabilitiesStatusChanged: " + capabilities); SomeArgs args = SomeArgs.obtain(); args.arg1 = config; args.arg1 = capabilities; // Remove any pending updates; they're already stale, so no need to process // them. removeMessages(EVENT_ON_FEATURE_CAPABILITY_CHANGED); Loading Loading @@ -3541,6 +3543,14 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { return mIsInEmergencyCall; } /** * @return true if the IMS capability for the specified registration technology is currently * available. */ public boolean isImsCapabilityAvailable(int capability, int regTech) { return (getImsRegistrationTech() == regTech) && mMmTelCapabilities.isCapable(capability); } public boolean isVolteEnabled() { boolean isRadioTechLte = getImsRegistrationTech() == ImsRegistrationImplBase.REGISTRATION_TECH_LTE; Loading tests/telephonytests/src/android/telephony/ims/ImsFeatureTest.java +26 −3 Original line number Diff line number Diff line Loading @@ -23,7 +23,9 @@ import static org.mockito.Matchers.eq; import static org.mockito.Mockito.verify; import android.os.Parcel; import android.os.RemoteException; import android.support.test.runner.AndroidJUnit4; import android.telephony.ims.aidl.IImsCapabilityCallback; import android.telephony.ims.feature.CapabilityChangeRequest; import android.telephony.ims.feature.ImsFeature; import android.telephony.ims.feature.MmTelFeature; Loading @@ -42,9 +44,29 @@ import org.mockito.MockitoAnnotations; @RunWith(AndroidJUnit4.class) public class ImsFeatureTest { // Public for Mockito testing public class CapabilityCallback extends IImsCapabilityCallback.Stub { @Override public void onQueryCapabilityConfiguration(int capability, int radioTech, boolean enabled) throws RemoteException { } @Override public void onChangeCapabilityConfigurationError(int capability, int radioTech, int reason) throws RemoteException { } @Override public void onCapabilitiesStatusChanged(int config) throws RemoteException { } } private TestImsFeature mTestImsFeature; private ImsFeature.CapabilityCallback mCapabilityCallback; private CapabilityCallback mCapabilityCallback; @Mock private IImsFeatureStatusCallback mTestStatusCallback; Loading @@ -55,7 +77,7 @@ public class ImsFeatureTest { public void setUp() { MockitoAnnotations.initMocks(this); mTestImsFeature = new TestImsFeature(); mCapabilityCallback = Mockito.spy(new ImsFeature.CapabilityCallback()); mCapabilityCallback = Mockito.spy(new CapabilityCallback()); mTestImsFeature.addCapabilityCallback(mCapabilityCallback); } Loading Loading @@ -183,7 +205,8 @@ public class ImsFeatureTest { mTestImsFeature.capabilitiesStatusChanged(status); assertEquals(status.getMask(), mTestImsFeature.queryCapabilityStatus().getMask()); verify(mCapabilityCallback).onCapabilitiesStatusChanged(eq(status)); verify(mCapabilityCallback).onCapabilitiesStatusChanged( eq(TestImsFeature.CAPABILITY_TEST_1 | TestImsFeature.CAPABILITY_TEST_2)); } @SmallTest Loading Loading
src/java/com/android/internal/telephony/ImsSmsDispatcher.java +7 −7 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ import android.telephony.Rlog; import android.telephony.ServiceState; import android.telephony.ims.ImsReasonInfo; import android.telephony.ims.aidl.IImsSmsListener; import android.telephony.ims.feature.ImsFeature; import android.telephony.ims.feature.MmTelFeature; import android.telephony.ims.stub.ImsRegistrationImplBase; import android.telephony.ims.stub.ImsSmsImplBase; Loading Loading @@ -66,8 +65,8 @@ public class ImsSmsDispatcher extends SMSDispatcher { * Listen to the IMS service state change * */ private ImsRegistrationImplBase.Callback mRegistrationCallback = new ImsRegistrationImplBase.Callback() { private android.telephony.ims.ImsMmTelManager.RegistrationCallback mRegistrationCallback = new android.telephony.ims.ImsMmTelManager.RegistrationCallback() { @Override public void onRegistered( @ImsRegistrationImplBase.ImsRegistrationTech int imsRadioTech) { Loading Loading @@ -95,12 +94,13 @@ public class ImsSmsDispatcher extends SMSDispatcher { } }; private ImsFeature.CapabilityCallback mCapabilityCallback = new ImsFeature.CapabilityCallback() { private android.telephony.ims.ImsMmTelManager.CapabilityCallback mCapabilityCallback = new android.telephony.ims.ImsMmTelManager.CapabilityCallback() { @Override public void onCapabilitiesStatusChanged(ImsFeature.Capabilities config) { public void onCapabilitiesStatusChanged( MmTelFeature.MmTelCapabilities capabilities) { synchronized (mLock) { mIsSmsCapable = config.isCapable( mIsSmsCapable = capabilities.isCapable( MmTelFeature.MmTelCapabilities.CAPABILITY_TYPE_SMS); } } Loading
src/java/com/android/internal/telephony/Phone.java +14 −0 Original line number Diff line number Diff line Loading @@ -3277,6 +3277,20 @@ public abstract class Phone extends Handler implements PhoneInternalInterface { return isWifiCallingEnabled; } /** * @return true if the IMS capability for the registration technology specified is available, * false otherwise. */ public boolean isImsCapabilityAvailable(int capability, int regTech) { Phone imsPhone = mImsPhone; boolean isAvailable = false; if (imsPhone != null) { isAvailable = imsPhone.isImsCapabilityAvailable(capability, regTech); } Rlog.d(LOG_TAG, "isImsRegistered =" + isAvailable); return isAvailable; } /** * Get Volte Feature Availability */ Loading
src/java/com/android/internal/telephony/imsphone/ImsPhone.java +5 −0 Original line number Diff line number Diff line Loading @@ -1619,6 +1619,11 @@ public class ImsPhone extends ImsPhoneBase { mDefaultPhone.getServiceStateTracker().onImsCapabilityChanged(); } @Override public boolean isImsCapabilityAvailable(int capability, int regTech) { return mCT.isImsCapabilityAvailable(capability, regTech); } @Override public boolean isVolteEnabled() { return mCT.isVolteEnabled(); Loading
src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +17 −7 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ import android.telephony.ServiceState; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.telephony.ims.ImsCallProfile; import android.telephony.ims.ImsMmTelManager; import android.telephony.ims.ImsReasonInfo; import android.telephony.ims.ImsStreamMediaProfile; import android.telephony.ims.ImsSuppServiceNotification; Loading Loading @@ -3012,8 +3013,8 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { } }; private final ImsRegistrationImplBase.Callback mImsRegistrationCallback = new ImsRegistrationImplBase.Callback() { private final ImsMmTelManager.RegistrationCallback mImsRegistrationCallback = new ImsMmTelManager.RegistrationCallback() { @Override public void onRegistered( Loading Loading @@ -3052,13 +3053,14 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { } }; private final ImsFeature.CapabilityCallback mImsCapabilityCallback = new ImsFeature.CapabilityCallback() { private final ImsMmTelManager.CapabilityCallback mImsCapabilityCallback = new ImsMmTelManager.CapabilityCallback() { @Override public void onCapabilitiesStatusChanged(ImsFeature.Capabilities config) { if (DBG) log("onCapabilitiesStatusChanged: " + config); public void onCapabilitiesStatusChanged( MmTelFeature.MmTelCapabilities capabilities) { if (DBG) log("onCapabilitiesStatusChanged: " + capabilities); SomeArgs args = SomeArgs.obtain(); args.arg1 = config; args.arg1 = capabilities; // Remove any pending updates; they're already stale, so no need to process // them. removeMessages(EVENT_ON_FEATURE_CAPABILITY_CHANGED); Loading Loading @@ -3541,6 +3543,14 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { return mIsInEmergencyCall; } /** * @return true if the IMS capability for the specified registration technology is currently * available. */ public boolean isImsCapabilityAvailable(int capability, int regTech) { return (getImsRegistrationTech() == regTech) && mMmTelCapabilities.isCapable(capability); } public boolean isVolteEnabled() { boolean isRadioTechLte = getImsRegistrationTech() == ImsRegistrationImplBase.REGISTRATION_TECH_LTE; Loading
tests/telephonytests/src/android/telephony/ims/ImsFeatureTest.java +26 −3 Original line number Diff line number Diff line Loading @@ -23,7 +23,9 @@ import static org.mockito.Matchers.eq; import static org.mockito.Mockito.verify; import android.os.Parcel; import android.os.RemoteException; import android.support.test.runner.AndroidJUnit4; import android.telephony.ims.aidl.IImsCapabilityCallback; import android.telephony.ims.feature.CapabilityChangeRequest; import android.telephony.ims.feature.ImsFeature; import android.telephony.ims.feature.MmTelFeature; Loading @@ -42,9 +44,29 @@ import org.mockito.MockitoAnnotations; @RunWith(AndroidJUnit4.class) public class ImsFeatureTest { // Public for Mockito testing public class CapabilityCallback extends IImsCapabilityCallback.Stub { @Override public void onQueryCapabilityConfiguration(int capability, int radioTech, boolean enabled) throws RemoteException { } @Override public void onChangeCapabilityConfigurationError(int capability, int radioTech, int reason) throws RemoteException { } @Override public void onCapabilitiesStatusChanged(int config) throws RemoteException { } } private TestImsFeature mTestImsFeature; private ImsFeature.CapabilityCallback mCapabilityCallback; private CapabilityCallback mCapabilityCallback; @Mock private IImsFeatureStatusCallback mTestStatusCallback; Loading @@ -55,7 +77,7 @@ public class ImsFeatureTest { public void setUp() { MockitoAnnotations.initMocks(this); mTestImsFeature = new TestImsFeature(); mCapabilityCallback = Mockito.spy(new ImsFeature.CapabilityCallback()); mCapabilityCallback = Mockito.spy(new CapabilityCallback()); mTestImsFeature.addCapabilityCallback(mCapabilityCallback); } Loading Loading @@ -183,7 +205,8 @@ public class ImsFeatureTest { mTestImsFeature.capabilitiesStatusChanged(status); assertEquals(status.getMask(), mTestImsFeature.queryCapabilityStatus().getMask()); verify(mCapabilityCallback).onCapabilitiesStatusChanged(eq(status)); verify(mCapabilityCallback).onCapabilitiesStatusChanged( eq(TestImsFeature.CAPABILITY_TEST_1 | TestImsFeature.CAPABILITY_TEST_2)); } @SmallTest Loading