From c06ce125408696fd49c7fa9e1189ecb61804007a Mon Sep 17 00:00:00 2001 From: jsh Date: Mon, 11 May 2009 15:30:23 -0700 Subject: [PATCH] Internal APIs to get/set SMSC address. --- .../internal/telephony/CommandsInterface.java | 15 ++++++++++ .../com/android/internal/telephony/Phone.java | 15 ++++++++++ .../android/internal/telephony/PhoneBase.java | 8 +++++ .../internal/telephony/PhoneProxy.java | 8 +++++ .../com/android/internal/telephony/RIL.java | 30 +++++++++++++++++++ .../internal/telephony/RILConstants.java | 2 ++ .../telephony/test/SimulatedCommands.java | 8 +++++ 7 files changed, 86 insertions(+) diff --git a/telephony/java/com/android/internal/telephony/CommandsInterface.java b/telephony/java/com/android/internal/telephony/CommandsInterface.java index aec723845c876..5a1bb7e72fc76 100644 --- a/telephony/java/com/android/internal/telephony/CommandsInterface.java +++ b/telephony/java/com/android/internal/telephony/CommandsInterface.java @@ -1023,6 +1023,21 @@ public interface CommandsInterface { */ void setLocationUpdates(boolean enable, Message response); + /** + * Gets the default SMSC address. + * + * @param result Callback message contains the SMSC address. + */ + void getSmscAddress(Message result); + + /** + * Sets the default SMSC address. + * + * @param address new SMSC address + * @param result Callback message is empty on completion + */ + void setSmscAddress(String address, Message result); + void invokeOemRilRequestRaw(byte[] data, Message response); diff --git a/telephony/java/com/android/internal/telephony/Phone.java b/telephony/java/com/android/internal/telephony/Phone.java index 3f210ca82564d..03c1c56f26eb6 100644 --- a/telephony/java/com/android/internal/telephony/Phone.java +++ b/telephony/java/com/android/internal/telephony/Phone.java @@ -924,6 +924,21 @@ public interface Phone { */ void getPreferredNetworkType(Message response); + /** + * Gets the default SMSC address. + * + * @param result Callback message contains the SMSC address. + */ + void getSmscAddress(Message result); + + /** + * Sets the default SMSC address. + * + * @param address new SMSC address + * @param result Callback message is empty on completion + */ + void setSmscAddress(String address, Message result); + /** * Query neighboring cell IDs. response is dispatched when * this is complete. response.obj will be an AsyncResult, diff --git a/telephony/java/com/android/internal/telephony/PhoneBase.java b/telephony/java/com/android/internal/telephony/PhoneBase.java index 1ff0f7e9466aa..0314034f24240 100644 --- a/telephony/java/com/android/internal/telephony/PhoneBase.java +++ b/telephony/java/com/android/internal/telephony/PhoneBase.java @@ -574,6 +574,14 @@ public abstract class PhoneBase implements Phone { mCM.getPreferredNetworkType(response); } + public void getSmscAddress(Message result) { + mCM.getSmscAddress(result); + } + + public void setSmscAddress(String address, Message result) { + mCM.setSmscAddress(address, result); + } + public void setTTYModeEnabled(boolean enable, Message onComplete) { // This function should be overridden by the class CDMAPhone. Not implemented in GSMPhone. Log.e(LOG_TAG, "Error! This function should never be executed, inactive CDMAPhone."); diff --git a/telephony/java/com/android/internal/telephony/PhoneProxy.java b/telephony/java/com/android/internal/telephony/PhoneProxy.java index dd36f0bb6997d..b76d8015a93a4 100644 --- a/telephony/java/com/android/internal/telephony/PhoneProxy.java +++ b/telephony/java/com/android/internal/telephony/PhoneProxy.java @@ -671,5 +671,13 @@ public class PhoneProxy extends Handler implements Phone { public void notifyDataActivity() { mActivePhone.notifyDataActivity(); } + + public void getSmscAddress(Message result) { + mActivePhone.getSmscAddress(result); + } + + public void setSmscAddress(String address, Message result) { + mActivePhone.setSmscAddress(address, result); + } } diff --git a/telephony/java/com/android/internal/telephony/RIL.java b/telephony/java/com/android/internal/telephony/RIL.java index 3123111982d1a..be18a3993b19b 100644 --- a/telephony/java/com/android/internal/telephony/RIL.java +++ b/telephony/java/com/android/internal/telephony/RIL.java @@ -1760,6 +1760,32 @@ public final class RIL extends BaseCommands implements CommandsInterface { send(rr); } + /** + * {@inheritDoc} + */ + public void getSmscAddress(Message result) { + RILRequest rr = RILRequest.obtain(RIL_REQUEST_GET_SMSC_ADDRESS, result); + + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest)); + + send(rr); + } + + /** + * {@inheritDoc} + */ + public void setSmscAddress(String address, Message result) { + RILRequest rr = RILRequest.obtain(RIL_REQUEST_SET_SMSC_ADDRESS, result); + + rr.mp.writeInt(1); + rr.mp.writeString(address); + + if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest) + + " : " + address); + + send(rr); + } + //***** Private Methods private void sendScreenState(boolean on) { @@ -2027,6 +2053,8 @@ public final class RIL extends BaseCommands implements CommandsInterface { case RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM: ret = responseInts(p); break; case RIL_REQUEST_CDMA_DELETE_SMS_ON_RUIM: ret = responseVoid(p); break; case RIL_REQUEST_DEVICE_IDENTITY: ret = responseStrings(p); break; + case RIL_REQUEST_GET_SMSC_ADDRESS: ret = responseString(p); break; + case RIL_REQUEST_SET_SMSC_ADDRESS: ret = responseVoid(p); break; default: throw new RuntimeException("Unrecognized solicited response: " + rr.mRequest); //break; @@ -2885,6 +2913,8 @@ public final class RIL extends BaseCommands implements CommandsInterface { case RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM: return "RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM"; case RIL_REQUEST_CDMA_DELETE_SMS_ON_RUIM: return "RIL_REQUEST_CDMA_DELETE_SMS_ON_RUIM"; case RIL_REQUEST_DEVICE_IDENTITY: return "RIL_REQUEST_DEVICE_IDENTITY"; + case RIL_REQUEST_GET_SMSC_ADDRESS: return "RIL_REQUEST_GET_SMSC_ADDRESS"; + case RIL_REQUEST_SET_SMSC_ADDRESS: return "RIL_REQUEST_SET_SMSC_ADDRESS"; default: return ""; } } diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java index cbbdec65a608d..bcf51417aad8b 100644 --- a/telephony/java/com/android/internal/telephony/RILConstants.java +++ b/telephony/java/com/android/internal/telephony/RILConstants.java @@ -208,6 +208,8 @@ cat include/telephony/ril.h | \ int RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM = 96; int RIL_REQUEST_CDMA_DELETE_SMS_ON_RUIM = 97; int RIL_REQUEST_DEVICE_IDENTITY = 98; + int RIL_REQUEST_GET_SMSC_ADDRESS = 100; + int RIL_REQUEST_SET_SMSC_ADDRESS = 101; int RIL_UNSOL_RESPONSE_BASE = 1000; int RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED = 1000; int RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED = 1001; diff --git a/telephony/java/com/android/internal/telephony/test/SimulatedCommands.java b/telephony/java/com/android/internal/telephony/test/SimulatedCommands.java index cb09ceab768bb..5c69017e03798 100644 --- a/telephony/java/com/android/internal/telephony/test/SimulatedCommands.java +++ b/telephony/java/com/android/internal/telephony/test/SimulatedCommands.java @@ -1001,6 +1001,14 @@ public final class SimulatedCommands extends BaseCommands unimplemented(response); } + public void getSmscAddress(Message result) { + unimplemented(result); + } + + public void setSmscAddress(String address, Message result) { + unimplemented(result); + } + private boolean isSimLocked() { if (mSimLockedState != SimLockState.NONE) { return true;