summaryrefslogtreecommitdiffstats
path: root/telephony/java/com/android/internal/telephony/IccSmsInterfaceManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'telephony/java/com/android/internal/telephony/IccSmsInterfaceManager.java')
-rw-r--r--telephony/java/com/android/internal/telephony/IccSmsInterfaceManager.java217
1 files changed, 0 insertions, 217 deletions
diff --git a/telephony/java/com/android/internal/telephony/IccSmsInterfaceManager.java b/telephony/java/com/android/internal/telephony/IccSmsInterfaceManager.java
deleted file mode 100644
index 5fef6de..0000000
--- a/telephony/java/com/android/internal/telephony/IccSmsInterfaceManager.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.internal.telephony;
-
-import android.app.PendingIntent;
-import android.content.Context;
-import android.util.Log;
-
-import com.android.internal.util.HexDump;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import static android.telephony.SmsManager.STATUS_ON_ICC_FREE;
-
-/**
- * IccSmsInterfaceManager to provide an inter-process communication to
- * access Sms in Icc.
- */
-public abstract class IccSmsInterfaceManager extends ISms.Stub {
- protected PhoneBase mPhone;
- protected Context mContext;
- protected SMSDispatcher mDispatcher;
-
- protected IccSmsInterfaceManager(PhoneBase phone){
- mPhone = phone;
- mContext = phone.getContext();
- }
-
- protected void enforceReceiveAndSend(String message) {
- mContext.enforceCallingPermission(
- "android.permission.RECEIVE_SMS", message);
- mContext.enforceCallingPermission(
- "android.permission.SEND_SMS", message);
- }
-
- /**
- * Send a data based SMS to a specific application port.
- *
- * @param destAddr the address to send the message to
- * @param scAddr is the service center address or null to use
- * the current default SMSC
- * @param destPort the port to deliver the message to
- * @param data the body of the message to send
- * @param sentIntent if not NULL this <code>PendingIntent</code> is
- * broadcast when the message is successfully sent, or failed.
- * The result code will be <code>Activity.RESULT_OK<code> for success,
- * or one of these errors:<br>
- * <code>RESULT_ERROR_GENERIC_FAILURE</code><br>
- * <code>RESULT_ERROR_RADIO_OFF</code><br>
- * <code>RESULT_ERROR_NULL_PDU</code><br>
- * For <code>RESULT_ERROR_GENERIC_FAILURE</code> the sentIntent may include
- * the extra "errorCode" containing a radio technology specific value,
- * generally only useful for troubleshooting.<br>
- * The per-application based SMS control checks sentIntent. If sentIntent
- * is NULL the caller will be checked against all unknown applications,
- * which cause smaller number of SMS to be sent in checking period.
- * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
- * broadcast when the message is delivered to the recipient. The
- * raw pdu of the status report is in the extended data ("pdu").
- */
- public void sendData(String destAddr, String scAddr, int destPort,
- byte[] data, PendingIntent sentIntent, PendingIntent deliveryIntent) {
- mPhone.getContext().enforceCallingPermission(
- "android.permission.SEND_SMS",
- "Sending SMS message");
- if (Log.isLoggable("SMS", Log.VERBOSE)) {
- log("sendData: destAddr=" + destAddr + " scAddr=" + scAddr + " destPort=" +
- destPort + " data='"+ HexDump.toHexString(data) + "' sentIntent=" +
- sentIntent + " deliveryIntent=" + deliveryIntent);
- }
- mDispatcher.sendData(destAddr, scAddr, destPort, data, sentIntent, deliveryIntent);
- }
-
- /**
- * Send a text based SMS.
- *
- * @param destAddr the address to send the message to
- * @param scAddr is the service center address or null to use
- * the current default SMSC
- * @param text the body of the message to send
- * @param sentIntent if not NULL this <code>PendingIntent</code> is
- * broadcast when the message is successfully sent, or failed.
- * The result code will be <code>Activity.RESULT_OK<code> for success,
- * or one of these errors:<br>
- * <code>RESULT_ERROR_GENERIC_FAILURE</code><br>
- * <code>RESULT_ERROR_RADIO_OFF</code><br>
- * <code>RESULT_ERROR_NULL_PDU</code><br>
- * For <code>RESULT_ERROR_GENERIC_FAILURE</code> the sentIntent may include
- * the extra "errorCode" containing a radio technology specific value,
- * generally only useful for troubleshooting.<br>
- * The per-application based SMS control checks sentIntent. If sentIntent
- * is NULL the caller will be checked against all unknown applications,
- * which cause smaller number of SMS to be sent in checking period.
- * @param deliveryIntent if not NULL this <code>PendingIntent</code> is
- * broadcast when the message is delivered to the recipient. The
- * raw pdu of the status report is in the extended data ("pdu").
- */
- public void sendText(String destAddr, String scAddr,
- String text, PendingIntent sentIntent, PendingIntent deliveryIntent) {
- mPhone.getContext().enforceCallingPermission(
- "android.permission.SEND_SMS",
- "Sending SMS message");
- if (Log.isLoggable("SMS", Log.VERBOSE)) {
- log("sendText: destAddr=" + destAddr + " scAddr=" + scAddr +
- " text='"+ text + "' sentIntent=" +
- sentIntent + " deliveryIntent=" + deliveryIntent);
- }
- mDispatcher.sendText(destAddr, scAddr, text, sentIntent, deliveryIntent);
- }
-
- /**
- * Send a multi-part text based SMS.
- *
- * @param destAddr the address to send the message to
- * @param scAddr is the service center address or null to use
- * the current default SMSC
- * @param parts an <code>ArrayList</code> of strings that, in order,
- * comprise the original message
- * @param sentIntents if not null, an <code>ArrayList</code> of
- * <code>PendingIntent</code>s (one for each message part) that is
- * broadcast when the corresponding message part has been sent.
- * The result code will be <code>Activity.RESULT_OK<code> for success,
- * or one of these errors:
- * <code>RESULT_ERROR_GENERIC_FAILURE</code>
- * <code>RESULT_ERROR_RADIO_OFF</code>
- * <code>RESULT_ERROR_NULL_PDU</code>.
- * The per-application based SMS control checks sentIntent. If sentIntent
- * is NULL the caller will be checked against all unknown applications,
- * which cause smaller number of SMS to be sent in checking period.
- * @param deliveryIntents if not null, an <code>ArrayList</code> of
- * <code>PendingIntent</code>s (one for each message part) that is
- * broadcast when the corresponding message part has been delivered
- * to the recipient. The raw pdu of the status report is in the
- * extended data ("pdu").
- */
- public void sendMultipartText(String destAddr, String scAddr, List<String> parts,
- List<PendingIntent> sentIntents, List<PendingIntent> deliveryIntents) {
- mPhone.getContext().enforceCallingPermission(
- "android.permission.SEND_SMS",
- "Sending SMS message");
- if (Log.isLoggable("SMS", Log.VERBOSE)) {
- int i = 0;
- for (String part : parts) {
- log("sendMultipartText: destAddr=" + destAddr + ", srAddr=" + scAddr +
- ", part[" + (i++) + "]=" + part);
- }
- }
- mDispatcher.sendMultipartText(destAddr, scAddr, (ArrayList<String>) parts,
- (ArrayList<PendingIntent>) sentIntents, (ArrayList<PendingIntent>) deliveryIntents);
- }
-
- /**
- * create SmsRawData lists from all sms record byte[]
- * Use null to indicate "free" record
- *
- * @param messages List of message records from EF_SMS.
- * @return SmsRawData list of all in-used records
- */
- protected ArrayList<SmsRawData> buildValidRawData(ArrayList<byte[]> messages) {
- int count = messages.size();
- ArrayList<SmsRawData> ret;
-
- ret = new ArrayList<SmsRawData>(count);
-
- for (int i = 0; i < count; i++) {
- byte[] ba = messages.get(i);
- if (ba[0] == STATUS_ON_ICC_FREE) {
- ret.add(null);
- } else {
- ret.add(new SmsRawData(messages.get(i)));
- }
- }
-
- return ret;
- }
-
- /**
- * Generates an EF_SMS record from status and raw PDU.
- *
- * @param status Message status. See TS 51.011 10.5.3.
- * @param pdu Raw message PDU.
- * @return byte array for the record.
- */
- protected byte[] makeSmsRecordData(int status, byte[] pdu) {
- byte[] data = new byte[IccConstants.SMS_RECORD_LENGTH];
-
- // Status bits for this record. See TS 51.011 10.5.3
- data[0] = (byte)(status & 7);
-
- System.arraycopy(pdu, 0, data, 1, pdu.length);
-
- // Pad out with 0xFF's.
- for (int j = pdu.length+1; j < IccConstants.SMS_RECORD_LENGTH; j++) {
- data[j] = -1;
- }
-
- return data;
- }
-
- protected abstract void log(String msg);
-
-}