diff options
Diffstat (limited to 'telephony/java/com')
13 files changed, 322 insertions, 0 deletions
diff --git a/telephony/java/com/android/ims/ImsConfig.java b/telephony/java/com/android/ims/ImsConfig.java index 487786045b8e..314ea6a6f44c 100644 --- a/telephony/java/com/android/ims/ImsConfig.java +++ b/telephony/java/com/android/ims/ImsConfig.java @@ -783,6 +783,7 @@ public class ImsConfig { public static final int WIFI_ONLY = 0; public static final int CELLULAR_PREFERRED = 1; public static final int WIFI_PREFERRED = 2; + public static final int IMS_PREFERRED = 10; } public ImsConfig(IImsConfig iconfig) { diff --git a/telephony/java/com/android/ims/ImsUtInterface.java b/telephony/java/com/android/ims/ImsUtInterface.java index 5dfbce3dd65f..417f18788e94 100644 --- a/telephony/java/com/android/ims/ImsUtInterface.java +++ b/telephony/java/com/android/ims/ImsUtInterface.java @@ -129,6 +129,12 @@ public interface ImsUtInterface { public void queryCallForward(int condition, String number, Message result); /** + * Retrieves the configuration of the call forward for the specified service class. + * The return value of ((AsyncResult)result.obj) is an array of {@link ImsCallForwardInfo}. + */ + public void queryCallForward(int condition, String number, + int serviceClass, Message result); + /** * Retrieves the configuration of the call waiting. * The return value of ((AsyncResult)result.obj) is an array of {@link ImsSsInfo}. */ diff --git a/telephony/java/com/android/ims/internal/IImsUt.aidl b/telephony/java/com/android/ims/internal/IImsUt.aidl index 302be65070f7..51729b78b0b8 100644 --- a/telephony/java/com/android/ims/internal/IImsUt.aidl +++ b/telephony/java/com/android/ims/internal/IImsUt.aidl @@ -128,4 +128,12 @@ interface IImsUt { */ int updateCallBarringWithPassword(int cbType, int action, in String[] barrList, int serviceClass, String password); + + /** + * Retrieves the configuration of the call forward for specified service class. + * Returns an integer value to indicate the requestId of the UT request. + * -1 is returned if the "condition" is invalid for the queryCallForward, + * otherwise, integer greater than -1 will be returned. + */ + int queryCFForServiceClass(int condition, String number, int serviceClass); } diff --git a/telephony/java/com/android/internal/telephony/DctConstants.java b/telephony/java/com/android/internal/telephony/DctConstants.java index 541292a1e230..1d97894f1436 100644 --- a/telephony/java/com/android/internal/telephony/DctConstants.java +++ b/telephony/java/com/android/internal/telephony/DctConstants.java @@ -115,6 +115,7 @@ public class DctConstants { public static final int EVENT_SIM_STATE_UPDATED = BASE + 55; public static final int EVENT_APN_UNTHROTTLED = BASE + 56; public static final int EVENT_AIRPLANE_MODE_CHANGED = BASE + 57; + public static final int EVENT_GET_ENHANCED_RADIO_CAPABILITY = BASE + 58; /***** Constants *****/ diff --git a/telephony/java/com/android/internal/telephony/ISmsSecurityAgent.aidl b/telephony/java/com/android/internal/telephony/ISmsSecurityAgent.aidl new file mode 100644 index 000000000000..3b525292cb2d --- /dev/null +++ b/telephony/java/com/android/internal/telephony/ISmsSecurityAgent.aidl @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package com.android.internal.telephony; + +import com.android.internal.telephony.SmsAuthorizationRequest; + +/** + * ISmsSecurityAgent enhances the security of outgoing SMS messages by allowing trusted system + * components to inspect and authorize or reject outgoing SMS messages. + * + * @hide + **/ +interface ISmsSecurityAgent { + /** + * Called when a SMS message is queued for dispatch allowing a registered + * agent to decide on whether to accept/reject the request to send an SMS message. + * <b>Unless the agent rejects the request within the OEM specific timeout, the SMS + * will be sent.</b> + * @param request the object containing information regarding the message and + * through which the agent can accept/reject the request. + */ + void onAuthorize(in SmsAuthorizationRequest request); + +} diff --git a/telephony/java/com/android/internal/telephony/ISmsSecurityService.aidl b/telephony/java/com/android/internal/telephony/ISmsSecurityService.aidl new file mode 100644 index 000000000000..e479f0c1f678 --- /dev/null +++ b/telephony/java/com/android/internal/telephony/ISmsSecurityService.aidl @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package com.android.internal.telephony; + +import com.android.internal.telephony.ISmsSecurityAgent; +import com.android.internal.telephony.SmsAuthorizationRequest; + +/** + * ISmsSecurityService exposes a service that monitors the dispatch of outgoing SMS messages + * and notifies a registered ISmsSecurityAgent in order to authorize or reject the dispatch + * of each outgoing SMS message. + * + * @hide + */ +interface ISmsSecurityService { + /** + * Registers an agent in order to receive requests for outgoing SMS messages on which + * it can accept or reject the request for the dispatch of each SMS message. + * <b>Only one agent can be registered at one time.</b> + * @param agent the agent to be registered. + * @return true if the registration succeeds, false otherwise. + */ + boolean register(in ISmsSecurityAgent agent); + + /** + * Unregisters the previously registered agent and causes the security + * service to no longer rely on the agent for a decision regarding + * successive SMS messages being dispatched allowing all successive messages to be dispatched. + * + * @param agent the agent to be unregistered. + * @return true if the unregistration succeeds, false otherwise. + */ + boolean unregister(in ISmsSecurityAgent agent); + + /** + * Allows the registered ISmsSecurityAgent implementation to asynchronously send a response + * on whether it will accept/reject the dispatch of the SMS message. + * <b>If the agent responds after the OEM defined timeout it may not be able to + * interfere on whether the SMS was sent or not.</b> + * @param request the request related to an outgoing SMS message to accept/reject. + * @param accepted true to accept, false to reject. + * return true if the response took effect, false if a response has already been sent for this + * request or an OEM specific timeout already happened. + */ + boolean sendResponse(in SmsAuthorizationRequest request, boolean authorized); +} diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java index 3eda7482117f..30ea4b83e477 100644 --- a/telephony/java/com/android/internal/telephony/RILConstants.java +++ b/telephony/java/com/android/internal/telephony/RILConstants.java @@ -525,6 +525,9 @@ public interface RILConstants { int RIL_REQUEST_SET_ALLOWED_NETWORK_TYPES_BITMAP = 222; int RIL_REQUEST_GET_ALLOWED_NETWORK_TYPES_BITMAP = 223; + /* RIL Request to get newly supported radio + capabilities include 5G SA*/ + int RIL_REQUEST_GET_ENHANCED_RADIO_CAPABILITY = 600; /* Responses begin */ int RIL_RESPONSE_ACKNOWLEDGEMENT = 800; diff --git a/telephony/java/com/android/internal/telephony/SmsAuthorizationRequest.aidl b/telephony/java/com/android/internal/telephony/SmsAuthorizationRequest.aidl new file mode 100644 index 000000000000..a2f7020f9b90 --- /dev/null +++ b/telephony/java/com/android/internal/telephony/SmsAuthorizationRequest.aidl @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package com.android.internal.telephony; + +/** @hide */ +parcelable SmsAuthorizationRequest; diff --git a/telephony/java/com/android/internal/telephony/SmsAuthorizationRequest.java b/telephony/java/com/android/internal/telephony/SmsAuthorizationRequest.java new file mode 100644 index 000000000000..bc64fa802903 --- /dev/null +++ b/telephony/java/com/android/internal/telephony/SmsAuthorizationRequest.java @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2016, The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package com.android.internal.telephony; + +import android.os.IBinder; +import android.os.Parcel; +import android.os.Parcelable; +import android.os.RemoteException; + +/** + * This class represents a request from the {@link ISmsSecurityService} to trusted parties + * in order to allow third party components to participate in the decision process to accept + * or reject a request to send an SMS message. + * + * @hide + */ +public class SmsAuthorizationRequest implements Parcelable { + + private final ISmsSecurityService service; + + private final IBinder token; + + public final String packageName; + + public final String destinationAddress; + + public final String message; + + public SmsAuthorizationRequest(final Parcel source) { + this.service = ISmsSecurityService.Stub.asInterface(source.readStrongBinder()); + this.token = source.readStrongBinder(); + this.packageName = source.readString(); + this.destinationAddress = source.readString(); + this.message = source.readString(); + } + + public SmsAuthorizationRequest(final ISmsSecurityService service, + final IBinder binderToken, + final String packageName, + final String destinationAddress, + final String message) { + this.service = service; + this.token = binderToken; + this.packageName = packageName; + this.destinationAddress = destinationAddress; + this.message = message; + } + + @Override + public void writeToParcel(final Parcel dest, final int flags) { + dest.writeStrongBinder(service.asBinder()); + dest.writeStrongBinder(token); + dest.writeString(packageName); + dest.writeString(destinationAddress); + dest.writeString(message); + } + + @Override + public int describeContents() { + return 0; + } + + public static Parcelable.Creator<SmsAuthorizationRequest> CREATOR = + new Creator<SmsAuthorizationRequest>() { + @Override + public SmsAuthorizationRequest[] newArray(final int size) { + return new SmsAuthorizationRequest[size]; + } + + @Override + public SmsAuthorizationRequest createFromParcel(final Parcel source) { + return new SmsAuthorizationRequest(source); + } + }; + + public void accept() throws RemoteException{ + service.sendResponse(this, true); + } + + public void reject() throws RemoteException { + service.sendResponse(this, false); + } + + public IBinder getToken() { + return token; + } + + @Override + public String toString() { + return String.format("[%s] (%s) # %s", + this.packageName, + this.destinationAddress, + this.message); + } +} diff --git a/telephony/java/com/android/internal/telephony/TelephonyIntents.java b/telephony/java/com/android/internal/telephony/TelephonyIntents.java index b905212a9100..c90b06338d21 100644 --- a/telephony/java/com/android/internal/telephony/TelephonyIntents.java +++ b/telephony/java/com/android/internal/telephony/TelephonyIntents.java @@ -323,6 +323,26 @@ public class TelephonyIntents { "android.intent.action.USER_ACTIVITY_NOTIFICATION"; /** + * <p>Broadcast sent to show Emergency notification due to Voice Over Wifi availability + * + * <p class="note"> + * You can <em>not</em> receive this through components declared + * in manifests, only by explicitly registering for it with + * {@link android.content.Context#registerReceiver(android.content.BroadcastReceiver, + * android.content.IntentFilter) Context.registerReceiver()}. + * + * <p class="note"> + * Requires no permission. + * + * <p class="note">This is a protected intent that can only be sent + * by the system. + * + * @hide + */ + public static final String ACTION_VOWIFI_ENABLED + = "org.codeaurora.telephony.VOWIFI_ENABLED"; + + /** * Kept for backwards compatibility. * @deprecated @see TelephonyManager#ACTION_CARRIER_SIGNAL_REDIRECTED */ diff --git a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java index f636276f11b8..f636276f11b8 100644..100755 --- a/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java +++ b/telephony/java/com/android/internal/telephony/cdma/SmsMessage.java diff --git a/telephony/java/com/android/internal/telephony/cdma/sms/SmsEnvelope.java b/telephony/java/com/android/internal/telephony/cdma/sms/SmsEnvelope.java index 9e2d29cd12e9..c6db36c45d87 100644 --- a/telephony/java/com/android/internal/telephony/cdma/sms/SmsEnvelope.java +++ b/telephony/java/com/android/internal/telephony/cdma/sms/SmsEnvelope.java @@ -38,6 +38,7 @@ public final class SmsEnvelope { static public final int TELESERVICE_WAP = 0x1004; static public final int TELESERVICE_WEMT = 0x1005; static public final int TELESERVICE_SCPT = 0x1006; + static public final int TELESERVICE_CT_WAP = 0xFDEA; /** Carriers specific Teleservice IDs. */ public static final int TELESERVICE_FDEA_WAP = 0xFDEA; // 65002 diff --git a/telephony/java/com/android/internal/telephony/uicc/IccUtils.java b/telephony/java/com/android/internal/telephony/uicc/IccUtils.java index ec1204042260..c27c42667187 100644 --- a/telephony/java/com/android/internal/telephony/uicc/IccUtils.java +++ b/telephony/java/com/android/internal/telephony/uicc/IccUtils.java @@ -25,10 +25,12 @@ import android.graphics.Color; import android.os.Build; import com.android.internal.annotations.VisibleForTesting; +import com.android.internal.telephony.EncodeException; import com.android.internal.telephony.GsmAlphabet; import com.android.telephony.Rlog; import java.io.UnsupportedEncodingException; +import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.List; @@ -962,5 +964,6 @@ public class IccUtils { serializedFplmns[offset++] = (byte) 0xff; } return serializedFplmns; + } } |