Loading src/java/com/android/internal/telephony/DefaultPhoneNotifier.java +3 −1 Original line number Diff line number Diff line Loading @@ -125,8 +125,10 @@ public class DefaultPhoneNotifier implements PhoneNotifier { @Override public void notifyDataActivity(Phone sender) { int phoneId = sender.getPhoneId(); int subId = sender.getSubId(); mTelephonyRegistryMgr.notifyDataActivityChanged(subId, sender.getDataActivityState()); mTelephonyRegistryMgr.notifyDataActivityChanged(phoneId, subId, sender.getDataActivityState()); } @Override Loading tests/telephonytests/src/com/android/internal/telephony/DefaultPhoneNotifierTest.java +18 −3 Original line number Diff line number Diff line Loading @@ -96,15 +96,30 @@ public class DefaultPhoneNotifierTest extends TelephonyTest { public void testNotifyDataActivity() throws Exception { //mock data activity state doReturn(TelephonyManager.DATA_ACTIVITY_NONE).when(mPhone).getDataActivityState(); doReturn(PHONE_ID).when(mPhone).getPhoneId(); mDefaultPhoneNotifierUT.notifyDataActivity(mPhone); verify(mTelephonyRegistryManager).notifyDataActivityChanged(eq(0), verify(mTelephonyRegistryManager).notifyDataActivityChanged(eq(1), eq(0), eq(TelephonyManager.DATA_ACTIVITY_NONE)); doReturn(1).when(mPhone).getSubId(); doReturn(1/*subId*/).when(mPhone).getSubId(); doReturn(TelephonyManager.DATA_ACTIVITY_IN).when(mPhone).getDataActivityState(); mDefaultPhoneNotifierUT.notifyDataActivity(mPhone); verify(mTelephonyRegistryManager).notifyDataActivityChanged(eq(1), verify(mTelephonyRegistryManager).notifyDataActivityChanged(eq(1), eq(1), eq(TelephonyManager.DATA_ACTIVITY_IN)); doReturn(SUB_ID).when(mPhone).getSubId(); doReturn(TelephonyManager.DATA_ACTIVITY_NONE).when(mPhone).getDataActivityState(); doReturn(2/*phoneId*/).when(mPhone).getPhoneId(); mDefaultPhoneNotifierUT.notifyDataActivity(mPhone); verify(mTelephonyRegistryManager).notifyDataActivityChanged(eq(2), eq(0), eq(TelephonyManager.DATA_ACTIVITY_NONE)); doReturn(1/*subId*/).when(mPhone).getSubId(); doReturn(TelephonyManager.DATA_ACTIVITY_INOUT).when(mPhone).getDataActivityState(); mDefaultPhoneNotifierUT.notifyDataActivity(mPhone); verify(mTelephonyRegistryManager).notifyDataActivityChanged( eq(2), eq(1), eq(TelephonyManager.DATA_ACTIVITY_INOUT)); } @Test @SmallTest Loading tests/telephonytests/src/com/android/internal/telephony/TelephonyRegistryTest.java +42 −1 Original line number Diff line number Diff line Loading @@ -108,6 +108,7 @@ public class TelephonyRegistryTest extends TelephonyTest { private int mRadioPowerState = RADIO_POWER_UNAVAILABLE; private int mDataConnectionState = TelephonyManager.DATA_UNKNOWN; private int mNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN; private int mDataActivity = TelephonyManager.DATA_ACTIVITY_NONE; private List<PhysicalChannelConfig> mPhysicalChannelConfigs; private CellLocation mCellLocation; private List<CellInfo> mCellInfo; Loading Loading @@ -185,7 +186,8 @@ public class TelephonyRegistryTest extends TelephonyTest { TelephonyCallback.ServiceStateListener, TelephonyCallback.CellInfoListener, TelephonyCallback.BarringInfoListener, TelephonyCallback.RegistrationFailedListener { TelephonyCallback.RegistrationFailedListener, TelephonyCallback.DataActivityListener { // This class isn't mockable to get invocation counts because the IBinder is null and // crashes the TelephonyRegistry. Make a cheesy verify(times()) alternative. public AtomicInteger invocationCount = new AtomicInteger(0); Loading Loading @@ -268,6 +270,11 @@ public class TelephonyRegistryTest extends TelephonyTest { mCellIdentityForRegiFail = cellIdentity; mRegistrationFailReason = causeCode; } public void onDataActivity(@Annotation.DataActivityType int direction) { invocationCount.incrementAndGet(); mDataActivity = direction; } } private void addTelephonyRegistryService() { Loading Loading @@ -1490,4 +1497,38 @@ public class TelephonyRegistryTest extends TelephonyTest { assertEquals(2, mTelephonyCallback.invocationCount.get()); assertEquals(mCellInfo, dummyCellInfo); } @Test public void testNotifyDataActivityForSubscriber() { final int subId = 1; int[] events = {TelephonyCallback.EVENT_DATA_ACTIVITY_CHANGED}; doReturn(mMockSubInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(anyInt()); doReturn(0/*slotIndex*/).when(mMockSubInfo).getSimSlotIndex(); assertEquals(TelephonyManager.DATA_ACTIVITY_NONE, mDataActivity); mTelephonyRegistry.listenWithEventList(false, false, subId, mContext.getOpPackageName(), mContext.getAttributionTag(), mTelephonyCallback.callback, events, true); mTelephonyRegistry.notifyDataActivityForSubscriber(0/*phoneId*/, subId, TelephonyManager.DATA_ACTIVITY_INOUT); processAllMessages(); assertEquals(TelephonyManager.DATA_ACTIVITY_INOUT, mDataActivity); } @Test public void testNotifyDataActivityForSubscriberForInvalidSubId() { final int subId = INVALID_SUBSCRIPTION_ID; int[] events = {TelephonyCallback.EVENT_DATA_ACTIVITY_CHANGED}; doReturn(mMockSubInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(anyInt()); doReturn(0/*slotIndex*/).when(mMockSubInfo).getSimSlotIndex(); assertEquals(TelephonyManager.DATA_ACTIVITY_NONE, mDataActivity); mTelephonyRegistry.listenWithEventList(false, false, subId, mContext.getOpPackageName(), mContext.getAttributionTag(), mTelephonyCallback.callback, events, true); mTelephonyRegistry.notifyDataActivityForSubscriber(0/*phoneId*/, subId, TelephonyManager.DATA_ACTIVITY_OUT); processAllMessages(); assertEquals(TelephonyManager.DATA_ACTIVITY_OUT, mDataActivity); } } Loading
src/java/com/android/internal/telephony/DefaultPhoneNotifier.java +3 −1 Original line number Diff line number Diff line Loading @@ -125,8 +125,10 @@ public class DefaultPhoneNotifier implements PhoneNotifier { @Override public void notifyDataActivity(Phone sender) { int phoneId = sender.getPhoneId(); int subId = sender.getSubId(); mTelephonyRegistryMgr.notifyDataActivityChanged(subId, sender.getDataActivityState()); mTelephonyRegistryMgr.notifyDataActivityChanged(phoneId, subId, sender.getDataActivityState()); } @Override Loading
tests/telephonytests/src/com/android/internal/telephony/DefaultPhoneNotifierTest.java +18 −3 Original line number Diff line number Diff line Loading @@ -96,15 +96,30 @@ public class DefaultPhoneNotifierTest extends TelephonyTest { public void testNotifyDataActivity() throws Exception { //mock data activity state doReturn(TelephonyManager.DATA_ACTIVITY_NONE).when(mPhone).getDataActivityState(); doReturn(PHONE_ID).when(mPhone).getPhoneId(); mDefaultPhoneNotifierUT.notifyDataActivity(mPhone); verify(mTelephonyRegistryManager).notifyDataActivityChanged(eq(0), verify(mTelephonyRegistryManager).notifyDataActivityChanged(eq(1), eq(0), eq(TelephonyManager.DATA_ACTIVITY_NONE)); doReturn(1).when(mPhone).getSubId(); doReturn(1/*subId*/).when(mPhone).getSubId(); doReturn(TelephonyManager.DATA_ACTIVITY_IN).when(mPhone).getDataActivityState(); mDefaultPhoneNotifierUT.notifyDataActivity(mPhone); verify(mTelephonyRegistryManager).notifyDataActivityChanged(eq(1), verify(mTelephonyRegistryManager).notifyDataActivityChanged(eq(1), eq(1), eq(TelephonyManager.DATA_ACTIVITY_IN)); doReturn(SUB_ID).when(mPhone).getSubId(); doReturn(TelephonyManager.DATA_ACTIVITY_NONE).when(mPhone).getDataActivityState(); doReturn(2/*phoneId*/).when(mPhone).getPhoneId(); mDefaultPhoneNotifierUT.notifyDataActivity(mPhone); verify(mTelephonyRegistryManager).notifyDataActivityChanged(eq(2), eq(0), eq(TelephonyManager.DATA_ACTIVITY_NONE)); doReturn(1/*subId*/).when(mPhone).getSubId(); doReturn(TelephonyManager.DATA_ACTIVITY_INOUT).when(mPhone).getDataActivityState(); mDefaultPhoneNotifierUT.notifyDataActivity(mPhone); verify(mTelephonyRegistryManager).notifyDataActivityChanged( eq(2), eq(1), eq(TelephonyManager.DATA_ACTIVITY_INOUT)); } @Test @SmallTest Loading
tests/telephonytests/src/com/android/internal/telephony/TelephonyRegistryTest.java +42 −1 Original line number Diff line number Diff line Loading @@ -108,6 +108,7 @@ public class TelephonyRegistryTest extends TelephonyTest { private int mRadioPowerState = RADIO_POWER_UNAVAILABLE; private int mDataConnectionState = TelephonyManager.DATA_UNKNOWN; private int mNetworkType = TelephonyManager.NETWORK_TYPE_UNKNOWN; private int mDataActivity = TelephonyManager.DATA_ACTIVITY_NONE; private List<PhysicalChannelConfig> mPhysicalChannelConfigs; private CellLocation mCellLocation; private List<CellInfo> mCellInfo; Loading Loading @@ -185,7 +186,8 @@ public class TelephonyRegistryTest extends TelephonyTest { TelephonyCallback.ServiceStateListener, TelephonyCallback.CellInfoListener, TelephonyCallback.BarringInfoListener, TelephonyCallback.RegistrationFailedListener { TelephonyCallback.RegistrationFailedListener, TelephonyCallback.DataActivityListener { // This class isn't mockable to get invocation counts because the IBinder is null and // crashes the TelephonyRegistry. Make a cheesy verify(times()) alternative. public AtomicInteger invocationCount = new AtomicInteger(0); Loading Loading @@ -268,6 +270,11 @@ public class TelephonyRegistryTest extends TelephonyTest { mCellIdentityForRegiFail = cellIdentity; mRegistrationFailReason = causeCode; } public void onDataActivity(@Annotation.DataActivityType int direction) { invocationCount.incrementAndGet(); mDataActivity = direction; } } private void addTelephonyRegistryService() { Loading Loading @@ -1490,4 +1497,38 @@ public class TelephonyRegistryTest extends TelephonyTest { assertEquals(2, mTelephonyCallback.invocationCount.get()); assertEquals(mCellInfo, dummyCellInfo); } @Test public void testNotifyDataActivityForSubscriber() { final int subId = 1; int[] events = {TelephonyCallback.EVENT_DATA_ACTIVITY_CHANGED}; doReturn(mMockSubInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(anyInt()); doReturn(0/*slotIndex*/).when(mMockSubInfo).getSimSlotIndex(); assertEquals(TelephonyManager.DATA_ACTIVITY_NONE, mDataActivity); mTelephonyRegistry.listenWithEventList(false, false, subId, mContext.getOpPackageName(), mContext.getAttributionTag(), mTelephonyCallback.callback, events, true); mTelephonyRegistry.notifyDataActivityForSubscriber(0/*phoneId*/, subId, TelephonyManager.DATA_ACTIVITY_INOUT); processAllMessages(); assertEquals(TelephonyManager.DATA_ACTIVITY_INOUT, mDataActivity); } @Test public void testNotifyDataActivityForSubscriberForInvalidSubId() { final int subId = INVALID_SUBSCRIPTION_ID; int[] events = {TelephonyCallback.EVENT_DATA_ACTIVITY_CHANGED}; doReturn(mMockSubInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(anyInt()); doReturn(0/*slotIndex*/).when(mMockSubInfo).getSimSlotIndex(); assertEquals(TelephonyManager.DATA_ACTIVITY_NONE, mDataActivity); mTelephonyRegistry.listenWithEventList(false, false, subId, mContext.getOpPackageName(), mContext.getAttributionTag(), mTelephonyCallback.callback, events, true); mTelephonyRegistry.notifyDataActivityForSubscriber(0/*phoneId*/, subId, TelephonyManager.DATA_ACTIVITY_OUT); processAllMessages(); assertEquals(TelephonyManager.DATA_ACTIVITY_OUT, mDataActivity); } }