content: /*
   * Copyright (C) 2007 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 android.telephony.gsm;
  
  import android.app.PendingIntent;
  
  import java.util.ArrayList;
  
  
  /**
   * Manages SMS operations such as sending data, text, and pdu SMS messages.
   * Get this object by calling the static method SmsManager.getDefault().
   * @deprecated Replaced by android.telephony.SmsManager that supports both GSM and CDMA.
   */
  @Deprecated public final class SmsManager {
      private static SmsManager sInstance;
      private android.telephony.SmsManager mSmsMgrProxy;
  
      /** Get the default instance of the SmsManager
       *
       * @return the default instance of the SmsManager
       * @deprecated Use android.telephony.SmsManager.
       */
      @Deprecated
      public static final SmsManager getDefault() {
          if (sInstance == null) {
              sInstance = new SmsManager();
          }
          return sInstance;
      }
  
      @Deprecated
      private SmsManager() {
          mSmsMgrProxy = android.telephony.SmsManager.getDefault();
      }
  
      /**
       * Send a text based SMS.
       *
       * @param destinationAddress the address to send the message to
       * @param scAddress 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:
       *  <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 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").
       *
       * @throws IllegalArgumentException if destinationAddress or text are empty
       * @deprecated Use android.telephony.SmsManager.
       */
      @Deprecated
      public final void sendTextMessage(
              String destinationAddress, String scAddress, String text,
              PendingIntent sentIntent, PendingIntent deliveryIntent) {
          mSmsMgrProxy.sendTextMessage(destinationAddress, scAddress, text,
                  sentIntent, deliveryIntent);
      }
  
      /**
       * Divide a text message into several messages, none bigger than
       * the maximum SMS message size.
       *
       * @param text the original message.  Must not be null.
       * @return an <code>ArrayList</code> of strings that, in order,
       *   comprise the original message
       * @deprecated Use android.telephony.SmsManager.
       */
      @Deprecated
      public final ArrayList<String> divideMessage(String text) {
          return mSmsMgrProxy.divideMessage(text);
      }
  
      /**
       * Send a multi-part text based SMS.  The callee should have already
       * divided the message into correctly sized parts by calling
       * <code>divideMessage</code>.
       *
       * @param destinationAddress the address to send the message to
       * @param scAddress 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 applicaitons,
       *   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").
       *
       * @throws IllegalArgumentException if destinationAddress or data are empty
       * @deprecated Use android.telephony.SmsManager.
       */
      @Deprecated
      public final void sendMultipartTextMessage(
              String destinationAddress, String scAddress, ArrayList<String> parts,
              ArrayList<PendingIntent> sentIntents, ArrayList<PendingIntent> deliveryIntents) {
          mSmsMgrProxy.sendMultipartTextMessage(destinationAddress, scAddress, parts,
                  sentIntents, deliveryIntents);
      }
  
      /**
       * Send a data based SMS to a specific application port.
       *
       * @param destinationAddress the address to send the message to
       * @param scAddress is the service center address or null to use
       *  the current default SMSC
       * @param destinationPort 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 sucessfully sent, or failed.
       *  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 applicaitons,
       *  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").
       *
       * @throws IllegalArgumentException if destinationAddress or data are empty
       * @deprecated Use android.telephony.SmsManager.
       */
      @Deprecated
      public final void sendDataMessage(
              String destinationAddress, String scAddress, short destinationPort,
              byte[] data, PendingIntent sentIntent, PendingIntent deliveryIntent) {
          mSmsMgrProxy.sendDataMessage(destinationAddress, scAddress, destinationPort,
                  data, sentIntent, deliveryIntent);
      }
  
      /**
       * Copy a raw SMS PDU to the SIM.
       *
       * @param smsc the SMSC for this message, or NULL for the default SMSC
       * @param pdu the raw PDU to store
       * @param status message status (STATUS_ON_SIM_READ, STATUS_ON_SIM_UNREAD,
       *               STATUS_ON_SIM_SENT, STATUS_ON_SIM_UNSENT)
       * @return true for success
       * @deprecated Use android.telephony.SmsManager.
       * {@hide}
       */
      @Deprecated
      public final boolean copyMessageToSim(byte[] smsc, byte[] pdu, int status) {
          return mSmsMgrProxy.copyMessageToIcc(smsc, pdu, status);
      }
  
      /**
       * Delete the specified message from the SIM.
       *
       * @param messageIndex is the record index of the message on SIM
       * @return true for success
       * @deprecated Use android.telephony.SmsManager.
       * {@hide}
       */
      @Deprecated
      public final boolean deleteMessageFromSim(int messageIndex) {
          return mSmsMgrProxy.deleteMessageFromIcc(messageIndex);
      }
  
      /**
       * Update the specified message on the SIM.
       *
       * @param messageIndex record index of message to update
       * @param newStatus new message status (STATUS_ON_SIM_READ,
       *                  STATUS_ON_SIM_UNREAD, STATUS_ON_SIM_SENT,
       *                  STATUS_ON_SIM_UNSENT, STATUS_ON_SIM_FREE)
       * @param pdu the raw PDU to store
       * @return true for success
       * @deprecated Use android.telephony.SmsManager.
       * {@hide}
       */
      @Deprecated
      public final boolean updateMessageOnSim(int messageIndex, int newStatus, byte[] pdu) {
          return mSmsMgrProxy.updateMessageOnIcc(messageIndex, newStatus, pdu);
      }
  
      /**
       * Retrieves all messages currently stored on SIM.
       * @return <code>ArrayList</code> of <code>SmsMessage</code> objects
       * @deprecated Use android.telephony.SmsManager.
       * {@hide}
       */
      @Deprecated
      public final ArrayList<android.telephony.SmsMessage> getAllMessagesFromSim() {
          return android.telephony.SmsManager.getDefault().getAllMessagesFromIcc();
      }
  
      /** Free space (TS 51.011 10.5.3).
       *  @deprecated Use android.telephony.SmsManager. */
      @Deprecated static public final int STATUS_ON_SIM_FREE      = 0;
  
      /** Received and read (TS 51.011 10.5.3).
       * @deprecated Use android.telephony.SmsManager. */
      @Deprecated static public final int STATUS_ON_SIM_READ      = 1;
  
      /** Received and unread (TS 51.011 10.5.3).
       * @deprecated Use android.telephony.SmsManager. */
      @Deprecated static public final int STATUS_ON_SIM_UNREAD    = 3;
  
      /** Stored and sent (TS 51.011 10.5.3).
       * @deprecated Use android.telephony.SmsManager. */
      @Deprecated static public final int STATUS_ON_SIM_SENT      = 5;
  
      /** Stored and unsent (TS 51.011 10.5.3).
       * @deprecated Use android.telephony.SmsManager. */
      @Deprecated static public final int STATUS_ON_SIM_UNSENT    = 7;
  
      /** Generic failure cause
       * @deprecated Use android.telephony.SmsManager. */
      @Deprecated static public final int RESULT_ERROR_GENERIC_FAILURE    = 1;
  
      /** Failed because radio was explicitly turned off
       * @deprecated Use android.telephony.SmsManager. */
      @Deprecated static public final int RESULT_ERROR_RADIO_OFF          = 2;
  
      /** Failed because no pdu provided
       * @deprecated Use android.telephony.SmsManager. */
      @Deprecated static public final int RESULT_ERROR_NULL_PDU           = 3;
  
      /** Failed because service is currently unavailable
       * @deprecated Use android.telephony.SmsManager. */
      @Deprecated static public final int RESULT_ERROR_NO_SERVICE         = 4;
  
  }
  