Loading src/java/com/android/internal/telephony/Phone.java +4 −1 Original line number Diff line number Diff line Loading @@ -898,6 +898,8 @@ public abstract class Phone extends Handler implements PhoneInternalInterface { Rlog.e(mLogTag, "Invalid Exception for usage setting " + ar.exception); break; // technically extraneous, but good hygiene } } else { mUsageSettingFromModem = msg.arg1; } break; default: Loading Loading @@ -4484,7 +4486,8 @@ public abstract class Phone extends Handler implements PhoneInternalInterface { mCi.getUsageSetting(obtainMessage(EVENT_GET_USAGE_SETTING_DONE)); // If the modem value is already known, and the value has changed, proceed to update. } else if (mPreferredUsageSetting != mUsageSettingFromModem) { mCi.setUsageSetting(obtainMessage(EVENT_SET_USAGE_SETTING_DONE), mCi.setUsageSetting(obtainMessage(EVENT_SET_USAGE_SETTING_DONE, mPreferredUsageSetting, 0 /* unused */), mPreferredUsageSetting); } return true; Loading tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java +36 −0 Original line number Diff line number Diff line Loading @@ -2016,6 +2016,42 @@ public class GsmCdmaPhoneTest extends TelephonyTest { new AsyncResult(null, null, null))); } @Test @SmallTest public void testUsageSettingUpdate_ResetToDefault() { setupUsageSettingResources(); mPhoneUT.mCi = mMockCi; SubscriptionInfoInternal si = makeSubscriptionInfoInternal( false, SubscriptionManager.USAGE_SETTING_DATA_CENTRIC); doReturn(si).when(mSubscriptionManagerService).getSubscriptionInfoInternal(anyInt()); mPhoneUT.updateUsageSetting(); processAllMessages(); verify(mMockCi).getUsageSetting(any()); mPhoneUT.sendMessage(mPhoneUT.obtainMessage(GsmCdmaPhone.EVENT_GET_USAGE_SETTING_DONE, new AsyncResult(null, new int[]{SubscriptionManager.USAGE_SETTING_VOICE_CENTRIC}, null))); processAllMessages(); // Grab the message to ensure it returns the preferred value for updating the cache ArgumentCaptor<Message> messageCaptor = ArgumentCaptor.forClass(Message.class); verify(mMockCi).setUsageSetting( messageCaptor.capture(), eq(SubscriptionManager.USAGE_SETTING_DATA_CENTRIC)); AsyncResult.forMessage(messageCaptor.getValue()); messageCaptor.getValue().sendToTarget(); processAllMessages(); si = makeSubscriptionInfoInternal(false, SubscriptionManager.USAGE_SETTING_VOICE_CENTRIC); doReturn(si).when(mSubscriptionManagerService).getSubscriptionInfoInternal(anyInt()); mPhoneUT.updateUsageSetting(); processAllMessages(); verify(mMockCi).setUsageSetting(any(), eq(SubscriptionManager.USAGE_SETTING_VOICE_CENTRIC)); } @Test @SmallTest public void testUsageSettingUpdate_DefaultOpportunistic() { Loading Loading
src/java/com/android/internal/telephony/Phone.java +4 −1 Original line number Diff line number Diff line Loading @@ -898,6 +898,8 @@ public abstract class Phone extends Handler implements PhoneInternalInterface { Rlog.e(mLogTag, "Invalid Exception for usage setting " + ar.exception); break; // technically extraneous, but good hygiene } } else { mUsageSettingFromModem = msg.arg1; } break; default: Loading Loading @@ -4484,7 +4486,8 @@ public abstract class Phone extends Handler implements PhoneInternalInterface { mCi.getUsageSetting(obtainMessage(EVENT_GET_USAGE_SETTING_DONE)); // If the modem value is already known, and the value has changed, proceed to update. } else if (mPreferredUsageSetting != mUsageSettingFromModem) { mCi.setUsageSetting(obtainMessage(EVENT_SET_USAGE_SETTING_DONE), mCi.setUsageSetting(obtainMessage(EVENT_SET_USAGE_SETTING_DONE, mPreferredUsageSetting, 0 /* unused */), mPreferredUsageSetting); } return true; Loading
tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java +36 −0 Original line number Diff line number Diff line Loading @@ -2016,6 +2016,42 @@ public class GsmCdmaPhoneTest extends TelephonyTest { new AsyncResult(null, null, null))); } @Test @SmallTest public void testUsageSettingUpdate_ResetToDefault() { setupUsageSettingResources(); mPhoneUT.mCi = mMockCi; SubscriptionInfoInternal si = makeSubscriptionInfoInternal( false, SubscriptionManager.USAGE_SETTING_DATA_CENTRIC); doReturn(si).when(mSubscriptionManagerService).getSubscriptionInfoInternal(anyInt()); mPhoneUT.updateUsageSetting(); processAllMessages(); verify(mMockCi).getUsageSetting(any()); mPhoneUT.sendMessage(mPhoneUT.obtainMessage(GsmCdmaPhone.EVENT_GET_USAGE_SETTING_DONE, new AsyncResult(null, new int[]{SubscriptionManager.USAGE_SETTING_VOICE_CENTRIC}, null))); processAllMessages(); // Grab the message to ensure it returns the preferred value for updating the cache ArgumentCaptor<Message> messageCaptor = ArgumentCaptor.forClass(Message.class); verify(mMockCi).setUsageSetting( messageCaptor.capture(), eq(SubscriptionManager.USAGE_SETTING_DATA_CENTRIC)); AsyncResult.forMessage(messageCaptor.getValue()); messageCaptor.getValue().sendToTarget(); processAllMessages(); si = makeSubscriptionInfoInternal(false, SubscriptionManager.USAGE_SETTING_VOICE_CENTRIC); doReturn(si).when(mSubscriptionManagerService).getSubscriptionInfoInternal(anyInt()); mPhoneUT.updateUsageSetting(); processAllMessages(); verify(mMockCi).setUsageSetting(any(), eq(SubscriptionManager.USAGE_SETTING_VOICE_CENTRIC)); } @Test @SmallTest public void testUsageSettingUpdate_DefaultOpportunistic() { Loading