Loading src/java/com/android/internal/telephony/imsphone/ImsPhone.java +14 −8 Original line number Diff line number Diff line Loading @@ -951,23 +951,28 @@ public class ImsPhone extends ImsPhoneBase { return 0; } public void getCallBarring(String facility, Message onComplete) { if (DBG) Rlog.d(LOG_TAG, "getCallBarring facility=" + facility); public void getCallBarring(String facility, Message onComplete, int serviceClass) { if (DBG) { Rlog.d(LOG_TAG, "getCallBarring facility=" + facility + ", serviceClass = " + serviceClass); } Message resp; resp = obtainMessage(EVENT_GET_CALL_BARRING_DONE, onComplete); try { ImsUtInterface ut = mCT.getUtInterface(); ut.queryCallBarring(getCBTypeFromFacility(facility), resp); ut.queryCallBarring(getCBTypeFromFacility(facility), resp, serviceClass); } catch (ImsException e) { sendErrorResponse(onComplete, e); } } public void setCallBarring(String facility, boolean lockState, String password, Message onComplete) { if (DBG) Rlog.d(LOG_TAG, "setCallBarring facility=" + facility + ", lockState=" + lockState); public void setCallBarring(String facility, boolean lockState, String password, Message onComplete, int serviceClass) { if (DBG) { Rlog.d(LOG_TAG, "setCallBarring facility=" + facility + ", lockState=" + lockState + ", serviceClass = " + serviceClass); } Message resp; resp = obtainMessage(EVENT_SET_CALL_BARRING_DONE, onComplete); Loading @@ -982,7 +987,8 @@ public class ImsPhone extends ImsPhoneBase { try { ImsUtInterface ut = mCT.getUtInterface(); // password is not required with Ut interface ut.updateCallBarring(getCBTypeFromFacility(facility), action, resp, null); ut.updateCallBarring(getCBTypeFromFacility(facility), action, resp, null, serviceClass); } catch (ImsException e) { sendErrorResponse(onComplete, e); } Loading src/java/com/android/internal/telephony/imsphone/ImsPhoneMmiCode.java +6 −3 Original line number Diff line number Diff line Loading @@ -736,7 +736,9 @@ public final class ImsPhoneMmiCode extends Handler implements MmiCode { try { int serviceClass = siToServiceClass(mSib); if (serviceClass != SERVICE_CLASS_NONE && serviceClass != SERVICE_CLASS_VOICE) { && serviceClass != SERVICE_CLASS_VOICE && serviceClass != (SERVICE_CLASS_PACKET + SERVICE_CLASS_DATA_SYNC)) { return false; } return true; Loading Loading @@ -845,13 +847,14 @@ public final class ImsPhoneMmiCode extends Handler implements MmiCode { String password = mSia; String facility = scToBarringFacility(mSc); int serviceClass = siToServiceClass(mSib); if (isInterrogate()) { mPhone.getCallBarring(facility, obtainMessage(EVENT_SUPP_SVC_QUERY_COMPLETE, this)); obtainMessage(EVENT_SUPP_SVC_QUERY_COMPLETE, this), serviceClass); } else if (isActivate() || isDeactivate()) { mPhone.setCallBarring(facility, isActivate(), password, obtainMessage(EVENT_SET_COMPLETE, this)); obtainMessage(EVENT_SET_COMPLETE, this), serviceClass); } else { throw new RuntimeException ("Invalid or Unsupported MMI Code"); } Loading tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneTest.java +9 −6 Original line number Diff line number Diff line Loading @@ -509,23 +509,26 @@ public class ImsPhoneTest extends TelephonyTest { @SmallTest public void testCellBarring() throws Exception { Message msg = mTestHandler.obtainMessage(); mImsPhoneUT.getCallBarring(CommandsInterface.CB_FACILITY_BAOC, msg); mImsPhoneUT.getCallBarring(CommandsInterface.CB_FACILITY_BAOC, msg, CommandsInterface.SERVICE_CLASS_NONE); ArgumentCaptor<Message> messageArgumentCaptor = ArgumentCaptor.forClass(Message.class); verify(mImsUtInterface).queryCallBarring(eq(ImsUtInterface.CB_BAOC), messageArgumentCaptor.capture()); messageArgumentCaptor.capture(), eq(CommandsInterface.SERVICE_CLASS_NONE)); assertEquals(msg, messageArgumentCaptor.getValue().obj); mImsPhoneUT.setCallBarring(CommandsInterface.CB_FACILITY_BAOIC, true, "abc", msg); mImsPhoneUT.setCallBarring(CommandsInterface.CB_FACILITY_BAOIC, true, "abc", msg, CommandsInterface.SERVICE_CLASS_NONE); verify(mImsUtInterface).updateCallBarring(eq(ImsUtInterface.CB_BOIC), eq(CommandsInterface.CF_ACTION_ENABLE), messageArgumentCaptor.capture(), (String[]) eq(null)); (String[]) eq(null), eq(CommandsInterface.SERVICE_CLASS_NONE)); assertEquals(msg, messageArgumentCaptor.getValue().obj); mImsPhoneUT.setCallBarring(CommandsInterface.CB_FACILITY_BAOICxH, false, "abc", msg); mImsPhoneUT.setCallBarring(CommandsInterface.CB_FACILITY_BAOICxH, false, "abc", msg, CommandsInterface.SERVICE_CLASS_NONE); verify(mImsUtInterface).updateCallBarring(eq(ImsUtInterface.CB_BOIC_EXHC), eq(CommandsInterface.CF_ACTION_DISABLE), messageArgumentCaptor.capture(), (String[])eq(null)); (String[])eq(null), eq(CommandsInterface.SERVICE_CLASS_NONE)); assertEquals(msg, messageArgumentCaptor.getValue().obj); } Loading Loading
src/java/com/android/internal/telephony/imsphone/ImsPhone.java +14 −8 Original line number Diff line number Diff line Loading @@ -951,23 +951,28 @@ public class ImsPhone extends ImsPhoneBase { return 0; } public void getCallBarring(String facility, Message onComplete) { if (DBG) Rlog.d(LOG_TAG, "getCallBarring facility=" + facility); public void getCallBarring(String facility, Message onComplete, int serviceClass) { if (DBG) { Rlog.d(LOG_TAG, "getCallBarring facility=" + facility + ", serviceClass = " + serviceClass); } Message resp; resp = obtainMessage(EVENT_GET_CALL_BARRING_DONE, onComplete); try { ImsUtInterface ut = mCT.getUtInterface(); ut.queryCallBarring(getCBTypeFromFacility(facility), resp); ut.queryCallBarring(getCBTypeFromFacility(facility), resp, serviceClass); } catch (ImsException e) { sendErrorResponse(onComplete, e); } } public void setCallBarring(String facility, boolean lockState, String password, Message onComplete) { if (DBG) Rlog.d(LOG_TAG, "setCallBarring facility=" + facility + ", lockState=" + lockState); public void setCallBarring(String facility, boolean lockState, String password, Message onComplete, int serviceClass) { if (DBG) { Rlog.d(LOG_TAG, "setCallBarring facility=" + facility + ", lockState=" + lockState + ", serviceClass = " + serviceClass); } Message resp; resp = obtainMessage(EVENT_SET_CALL_BARRING_DONE, onComplete); Loading @@ -982,7 +987,8 @@ public class ImsPhone extends ImsPhoneBase { try { ImsUtInterface ut = mCT.getUtInterface(); // password is not required with Ut interface ut.updateCallBarring(getCBTypeFromFacility(facility), action, resp, null); ut.updateCallBarring(getCBTypeFromFacility(facility), action, resp, null, serviceClass); } catch (ImsException e) { sendErrorResponse(onComplete, e); } Loading
src/java/com/android/internal/telephony/imsphone/ImsPhoneMmiCode.java +6 −3 Original line number Diff line number Diff line Loading @@ -736,7 +736,9 @@ public final class ImsPhoneMmiCode extends Handler implements MmiCode { try { int serviceClass = siToServiceClass(mSib); if (serviceClass != SERVICE_CLASS_NONE && serviceClass != SERVICE_CLASS_VOICE) { && serviceClass != SERVICE_CLASS_VOICE && serviceClass != (SERVICE_CLASS_PACKET + SERVICE_CLASS_DATA_SYNC)) { return false; } return true; Loading Loading @@ -845,13 +847,14 @@ public final class ImsPhoneMmiCode extends Handler implements MmiCode { String password = mSia; String facility = scToBarringFacility(mSc); int serviceClass = siToServiceClass(mSib); if (isInterrogate()) { mPhone.getCallBarring(facility, obtainMessage(EVENT_SUPP_SVC_QUERY_COMPLETE, this)); obtainMessage(EVENT_SUPP_SVC_QUERY_COMPLETE, this), serviceClass); } else if (isActivate() || isDeactivate()) { mPhone.setCallBarring(facility, isActivate(), password, obtainMessage(EVENT_SET_COMPLETE, this)); obtainMessage(EVENT_SET_COMPLETE, this), serviceClass); } else { throw new RuntimeException ("Invalid or Unsupported MMI Code"); } Loading
tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneTest.java +9 −6 Original line number Diff line number Diff line Loading @@ -509,23 +509,26 @@ public class ImsPhoneTest extends TelephonyTest { @SmallTest public void testCellBarring() throws Exception { Message msg = mTestHandler.obtainMessage(); mImsPhoneUT.getCallBarring(CommandsInterface.CB_FACILITY_BAOC, msg); mImsPhoneUT.getCallBarring(CommandsInterface.CB_FACILITY_BAOC, msg, CommandsInterface.SERVICE_CLASS_NONE); ArgumentCaptor<Message> messageArgumentCaptor = ArgumentCaptor.forClass(Message.class); verify(mImsUtInterface).queryCallBarring(eq(ImsUtInterface.CB_BAOC), messageArgumentCaptor.capture()); messageArgumentCaptor.capture(), eq(CommandsInterface.SERVICE_CLASS_NONE)); assertEquals(msg, messageArgumentCaptor.getValue().obj); mImsPhoneUT.setCallBarring(CommandsInterface.CB_FACILITY_BAOIC, true, "abc", msg); mImsPhoneUT.setCallBarring(CommandsInterface.CB_FACILITY_BAOIC, true, "abc", msg, CommandsInterface.SERVICE_CLASS_NONE); verify(mImsUtInterface).updateCallBarring(eq(ImsUtInterface.CB_BOIC), eq(CommandsInterface.CF_ACTION_ENABLE), messageArgumentCaptor.capture(), (String[]) eq(null)); (String[]) eq(null), eq(CommandsInterface.SERVICE_CLASS_NONE)); assertEquals(msg, messageArgumentCaptor.getValue().obj); mImsPhoneUT.setCallBarring(CommandsInterface.CB_FACILITY_BAOICxH, false, "abc", msg); mImsPhoneUT.setCallBarring(CommandsInterface.CB_FACILITY_BAOICxH, false, "abc", msg, CommandsInterface.SERVICE_CLASS_NONE); verify(mImsUtInterface).updateCallBarring(eq(ImsUtInterface.CB_BOIC_EXHC), eq(CommandsInterface.CF_ACTION_DISABLE), messageArgumentCaptor.capture(), (String[])eq(null)); (String[])eq(null), eq(CommandsInterface.SERVICE_CLASS_NONE)); assertEquals(msg, messageArgumentCaptor.getValue().obj); } Loading