SHARE
TWEET

ril.class

a guest Jul 19th, 2013 130 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.android.internal.telephony;
  2.  
  3. import android.app.ActivityManagerNative;
  4. import android.content.BroadcastReceiver;
  5. import android.content.Context;
  6. import android.content.Intent;
  7. import android.content.IntentFilter;
  8. import android.net.ConnectivityManager;
  9. import android.net.LocalSocket;
  10. import android.os.AsyncResult;
  11. import android.os.Handler;
  12. import android.os.HandlerThread;
  13. import android.os.Looper;
  14. import android.os.Message;
  15. import android.os.Parcel;
  16. import android.os.PowerManager;
  17. import android.os.PowerManager.WakeLock;
  18. import android.os.Registrant;
  19. import android.os.RegistrantList;
  20. import android.os.SystemProperties;
  21. import android.telephony.NeighboringCellInfo;
  22. import android.telephony.PhoneNumberUtils;
  23. import android.telephony.SignalStrength;
  24. import android.telephony.SmsMessage;
  25. import android.text.TextUtils;
  26. import android.util.Log;
  27. import com.android.internal.telephony.cdma.CdmaCallWaitingNotification;
  28. import com.android.internal.telephony.cdma.CdmaInformationRecords;
  29. import com.android.internal.telephony.cdma.CdmaInformationRecords.CdmaDisplayInfoRec;
  30. import com.android.internal.telephony.cdma.CdmaInformationRecords.CdmaLineControlInfoRec;
  31. import com.android.internal.telephony.cdma.CdmaInformationRecords.CdmaNumberInfoRec;
  32. import com.android.internal.telephony.cdma.CdmaInformationRecords.CdmaRedirectingNumberInfoRec;
  33. import com.android.internal.telephony.cdma.CdmaInformationRecords.CdmaSignalInfoRec;
  34. import com.android.internal.telephony.cdma.CdmaInformationRecords.CdmaT53AudioControlInfoRec;
  35. import com.android.internal.telephony.cdma.CdmaInformationRecords.CdmaT53ClirInfoRec;
  36. import com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo;
  37. import com.android.internal.telephony.cdma.DataProfileOmh;
  38. import com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;
  39. import com.android.internal.telephony.gsm.SsData;
  40. import com.android.internal.telephony.gsm.SsData.RequestType;
  41. import com.android.internal.telephony.gsm.SsData.ServiceType;
  42. import com.android.internal.telephony.gsm.SuppServiceNotification;
  43. import com.android.internal.telephony.uicc.IccCardApplicationStatus;
  44. import com.android.internal.telephony.uicc.IccCardStatus;
  45. import com.android.internal.telephony.uicc.IccIoResult;
  46. import com.android.internal.telephony.uicc.IccRefreshResponse;
  47. import com.android.internal.telephony.uicc.IccUtils;
  48. import java.io.ByteArrayInputStream;
  49. import java.io.DataInputStream;
  50. import java.io.FileDescriptor;
  51. import java.io.IOException;
  52. import java.io.InputStream;
  53. import java.io.OutputStream;
  54. import java.io.PrintWriter;
  55. import java.io.UnsupportedEncodingException;
  56. import java.nio.ByteBuffer;
  57. import java.nio.ByteOrder;
  58. import java.util.ArrayList;
  59. import java.util.Arrays;
  60. import java.util.Collections;
  61. import java.util.Iterator;
  62. import java.util.concurrent.atomic.AtomicBoolean;
  63.  
  64. public final class RIL
  65.   extends BaseCommands
  66.   implements CommandsInterface
  67. {
  68.   private static final int CDMA_BROADCAST_SMS_NO_OF_SERVICE_CATEGORIES = 31;
  69.   private static final int CDMA_BSI_NO_OF_INTS_STRUCT = 3;
  70.   private static final int DEFAULT_WAKE_LOCK_TIMEOUT = 60000;
  71.   static final int EVENT_SEND = 1;
  72.   static final int EVENT_WAKE_LOCK_TIMEOUT = 2;
  73.   static final String LOG_TAG = "RILJ";
  74.   static final int RESPONSE_SOLICITED = 0;
  75.   static final int RESPONSE_UNSOLICITED = 1;
  76.   static final boolean RILJ_LOGD = true;
  77.   static final boolean RILJ_LOGV = false;
  78.   static final int RIL_MAX_COMMAND_BYTES = 8192;
  79.   static final String SOCKET_NAME_RIL = "rild";
  80.   static final String SOCKET_NAME_RIL1 = "rild1";
  81.   static final int SOCKET_OPEN_RETRY_MILLIS = 4000;
  82.   private static final String hwDSDSMode = SystemProperties.get("ro.config.dsds_mode", "");
  83.   private static final boolean isHwClipOverrideEnabled = SystemProperties.getBoolean("ro.config.hw_clip_override", false);
  84.   private static final boolean isHwDSDAEnabled = SystemProperties.getBoolean("ro.config.hw_dsda", false);
  85.   private Integer mInstanceId;
  86.   BroadcastReceiver mIntentReceiver = new BroadcastReceiver()
  87.   {
  88.     public void onReceive(Context paramAnonymousContext, Intent paramAnonymousIntent)
  89.     {
  90.       if (paramAnonymousIntent.getAction().equals("android.intent.action.SCREEN_ON"))
  91.       {
  92.         RIL.this.sendScreenState(true);
  93.         return;
  94.       }
  95.       if (paramAnonymousIntent.getAction().equals("android.intent.action.SCREEN_OFF"))
  96.       {
  97.         RIL.this.sendScreenState(false);
  98.         return;
  99.       }
  100.       Log.w("RILJ", "RIL received unexpected Intent: " + paramAnonymousIntent.getAction());
  101.     }
  102.   };
  103.   Object mLastNITZTimeInfo;
  104.   private RILEx mRILEx = new RILEx(null);
  105.   RILReceiver mReceiver;
  106.   Thread mReceiverThread;
  107.   int mRequestMessagesPending;
  108.   int mRequestMessagesWaiting;
  109.   ArrayList<RILRequest> mRequestsList = new ArrayList();
  110.   RILSender mSender;
  111.   HandlerThread mSenderThread;
  112.   private int mSetPreferredNetworkType;
  113.   LocalSocket mSocket;
  114.   AtomicBoolean mTestingEmergencyCall = new AtomicBoolean(false);
  115.   PowerManager.WakeLock mWakeLock;
  116.   int mWakeLockTimeout;
  117.  
  118.   public RIL(Context paramContext, int paramInt1, int paramInt2)
  119.   {
  120.     this(paramContext, paramInt1, paramInt2, null);
  121.   }
  122.  
  123.   public RIL(Context paramContext, int paramInt1, int paramInt2, Integer paramInteger)
  124.   {
  125.     super(paramContext);
  126.     riljLog("RIL(context, preferredNetworkType=" + paramInt1 + " cdmaSubscription=" + paramInt2 + ")");
  127.     mCdmaSubscription = paramInt2;
  128.     mPreferredNetworkType = paramInt1;
  129.     mPhoneType = 0;
  130.     mInstanceId = paramInteger;
  131.     mWakeLock = ((PowerManager)paramContext.getSystemService("power")).newWakeLock(1, "RILJ");
  132.     mWakeLock.setReferenceCounted(false);
  133.     mWakeLockTimeout = SystemProperties.getInt("ro.ril.wake_lock_timeout", 60000);
  134.     mRequestMessagesPending = 0;
  135.     mRequestMessagesWaiting = 0;
  136.     mSenderThread = new HandlerThread("RILSender");
  137.     mSenderThread.start();
  138.     mSender = new RILSender(mSenderThread.getLooper());
  139.     if (!((ConnectivityManager)paramContext.getSystemService("connectivity")).isNetworkSupported(0))
  140.       riljLog("Not starting RILReceiver: wifi-only");
  141.     if (SystemProperties.getBoolean("ro.radio.noril", false))
  142.     {
  143.       riljLog("Not starting RILReceiver: basebandless target");
  144.       return;
  145.     }
  146.     riljLog("Starting RILReceiver");
  147.     mReceiver = new RILReceiver();
  148.     mReceiverThread = new Thread(mReceiver, "RILReceiver");
  149.     mReceiverThread.start();
  150.     IntentFilter localIntentFilter = new IntentFilter();
  151.     localIntentFilter.addAction("android.intent.action.SCREEN_ON");
  152.     localIntentFilter.addAction("android.intent.action.SCREEN_OFF");
  153.     paramContext.registerReceiver(mIntentReceiver, localIntentFilter);
  154.     paramContext.sendStickyBroadcast(new Intent("android.intent.action.ACTION_RILD_START"));
  155.   }
  156.  
  157.   private void acquireWakeLock()
  158.   {
  159.     synchronized (mWakeLock)
  160.     {
  161.       mWakeLock.acquire();
  162.       mRequestMessagesPending = (1 + mRequestMessagesPending);
  163.       mSender.removeMessages(2);
  164.       Message localMessage = mSender.obtainMessage(2);
  165.       mSender.sendMessageDelayed(localMessage, mWakeLockTimeout);
  166.       return;
  167.     }
  168.   }
  169.  
  170.   private void broadcastWifiChannelsChangedIntent(byte[] paramArrayOfByte)
  171.   {
  172.     Intent localIntent = new Intent("android.intent.action.SAFE_WIFI_CHANNELS_CHANGED");
  173.     Log.d("RILJ", "WifiSafeChannels " + Arrays.toString(paramArrayOfByte));
  174.     try
  175.     {
  176.       String str = new String(paramArrayOfByte, "US-ASCII");
  177.       Log.d("RILJ", "Decoded string " + str);
  178.       String[] arrayOfString = str.split(",");
  179.       Log.d("RILJ", "Parsed channels " + Arrays.toString(arrayOfString));
  180.       localIntent.putExtra("current_channel", Integer.parseInt(arrayOfString[0]));
  181.       localIntent.putExtra("start_safe_channel", Integer.parseInt(arrayOfString[1]));
  182.       localIntent.putExtra("end_safe_channel", Integer.parseInt(arrayOfString[2]));
  183.       Log.d("RILJ", "Broadcasting intent ACTION_SAFE_WIFI_CHANNELS_CHANGED ");
  184.       ActivityManagerNative.broadcastStickyIntent(localIntent, "android.permission.READ_PHONE_STATE");
  185.       return;
  186.     }
  187.     catch (UnsupportedEncodingException localUnsupportedEncodingException)
  188.     {
  189.       Log.e("RILJ", "Decoding failed: " + localUnsupportedEncodingException);
  190.     }
  191.   }
  192.  
  193.   private void clearRequestsList(int paramInt, boolean paramBoolean)
  194.   {
  195.     for (;;)
  196.     {
  197.       synchronized (mRequestsList)
  198.       {
  199.         int i = mRequestsList.size();
  200.         if (paramBoolean)
  201.         {
  202.           Log.d("RILJ", "WAKE_LOCK_TIMEOUT  mReqPending=" + mRequestMessagesPending + " mRequestList=" + i);
  203.           break label180;
  204.           if (j < i)
  205.           {
  206.             RILRequest localRILRequest = (RILRequest)mRequestsList.get(j);
  207.             if (paramBoolean)
  208.               Log.d("RILJ", j + ": [" + mSerial + "] " + requestToString(mRequest));
  209.             localRILRequest.onError(paramInt, null);
  210.             localRILRequest.release();
  211.             j++;
  212.             continue;
  213.           }
  214.           mRequestsList.clear();
  215.           mRequestMessagesWaiting = 0;
  216.           return;
  217.         }
  218.       }
  219.       label180:
  220.       int j = 0;
  221.     }
  222.   }
  223.  
  224.   private void constructCdmaSendSmsRilRequest(RILRequest paramRILRequest, byte[] paramArrayOfByte)
  225.   {
  226.     DataInputStream localDataInputStream = new DataInputStream(new ByteArrayInputStream(paramArrayOfByte));
  227.     try
  228.     {
  229.       mp.writeInt(localDataInputStream.readInt());
  230.       mp.writeByte((byte)localDataInputStream.readInt());
  231.       mp.writeInt(localDataInputStream.readInt());
  232.       mp.writeInt(localDataInputStream.read());
  233.       mp.writeInt(localDataInputStream.read());
  234.       mp.writeInt(localDataInputStream.read());
  235.       mp.writeInt(localDataInputStream.read());
  236.       byte b1 = (byte)localDataInputStream.read();
  237.       mp.writeByte(b1);
  238.       for (byte b2 = 0; b2 < b1; b2++)
  239.         mp.writeByte(localDataInputStream.readByte());
  240.       mp.writeInt(localDataInputStream.read());
  241.       mp.writeByte((byte)localDataInputStream.read());
  242.       byte b3 = (byte)localDataInputStream.read();
  243.       mp.writeByte(b3);
  244.       for (byte b4 = 0; b4 < b3; b4++)
  245.         mp.writeByte(localDataInputStream.readByte());
  246.       int i = localDataInputStream.read();
  247.       mp.writeInt(i);
  248.       for (int j = 0; j < i; j++)
  249.         mp.writeByte(localDataInputStream.readByte());
  250.       return;
  251.     }
  252.     catch (IOException localIOException)
  253.     {
  254.       riljLog("sendSmsCdma: conversion from input stream to object failed: " + localIOException);
  255.     }
  256.   }
  257.  
  258.   private void constructGsmSendSmsRilRequest(RILRequest paramRILRequest, String paramString1, String paramString2)
  259.   {
  260.     mp.writeInt(2);
  261.     mp.writeString(paramString1);
  262.     mp.writeString(paramString2);
  263.   }
  264.  
  265.   private RILRequest findAndRemoveRequestFromList(int paramInt)
  266.   {
  267.     ArrayList localArrayList = mRequestsList;
  268.     for (int i = 0;; i++)
  269.       try
  270.       {
  271.         int j = mRequestsList.size();
  272.         if (i < j)
  273.         {
  274.           RILRequest localRILRequest = (RILRequest)mRequestsList.get(i);
  275.           if (mSerial == paramInt)
  276.           {
  277.             mRequestsList.remove(i);
  278.             if (mRequestMessagesWaiting > 0)
  279.               mRequestMessagesWaiting = (-1 + mRequestMessagesWaiting);
  280.             return localRILRequest;
  281.           }
  282.         }
  283.         else
  284.         {
  285.           return null;
  286.         }
  287.       }
  288.       finally {}
  289.   }
  290.  
  291.   private DataCallState getDataCallState(Parcel paramParcel, int paramInt)
  292.   {
  293.     DataCallState localDataCallState = new DataCallState();
  294.     version = paramInt;
  295.     if (paramInt < 5)
  296.     {
  297.       cid = paramParcel.readInt();
  298.       active = paramParcel.readInt();
  299.       type = paramParcel.readString();
  300.       String str4 = paramParcel.readString();
  301.       if (!TextUtils.isEmpty(str4))
  302.         addresses = str4.split(" ");
  303.     }
  304.     String str3;
  305.     do
  306.     {
  307.       return localDataCallState;
  308.       status = paramParcel.readInt();
  309.       suggestedRetryTime = paramParcel.readInt();
  310.       cid = paramParcel.readInt();
  311.       active = paramParcel.readInt();
  312.       type = paramParcel.readString();
  313.       ifname = paramParcel.readString();
  314.       if ((status == DataConnection.FailCause.NONE.getErrorCode()) && (TextUtils.isEmpty(ifname)))
  315.         throw new RuntimeException("getDataCallState, no ifname");
  316.       String str1 = paramParcel.readString();
  317.       if (!TextUtils.isEmpty(str1))
  318.         addresses = str1.split(" ");
  319.       String str2 = paramParcel.readString();
  320.       if (!TextUtils.isEmpty(str2))
  321.         dnses = str2.split(" ");
  322.       str3 = paramParcel.readString();
  323.     } while (TextUtils.isEmpty(str3));
  324.     gateways = str3.split(" ");
  325.     return localDataCallState;
  326.   }
  327.  
  328.   private CommandsInterface.RadioState getRadioStateFromInt(int paramInt)
  329.   {
  330.     switch (paramInt)
  331.     {
  332.     default:
  333.       throw new RuntimeException("Unrecognized RIL_RadioState: " + paramInt);
  334.     case 0:
  335.       return CommandsInterface.RadioState.RADIO_OFF;
  336.     case 1:
  337.       return CommandsInterface.RadioState.RADIO_UNAVAILABLE;
  338.     }
  339.     return CommandsInterface.RadioState.RADIO_ON;
  340.   }
  341.  
  342.   private boolean isQcUnsolOemHookResp(ByteBuffer paramByteBuffer)
  343.   {
  344.     int i = 8 + "QUALCOMM".length();
  345.     if (paramByteBuffer.capacity() < i)
  346.       Log.d("RILJ", "RIL_UNSOL_OEM_HOOK_RAW data size is " + paramByteBuffer.capacity());
  347.     String str;
  348.     do
  349.     {
  350.       return false;
  351.       byte[] arrayOfByte = new byte["QUALCOMM".length()];
  352.       paramByteBuffer.get(arrayOfByte);
  353.       str = new String(arrayOfByte);
  354.       Log.d("RILJ", "Oem ID in RIL_UNSOL_OEM_HOOK_RAW is " + str);
  355.     } while (!str.equals("QUALCOMM"));
  356.     return true;
  357.   }
  358.  
  359.   private void notifyRegistrantsCdmaInfoRec(CdmaInformationRecords paramCdmaInformationRecords)
  360.   {
  361.     if ((record instanceof CdmaInformationRecords.CdmaDisplayInfoRec))
  362.       if (mDisplayInfoRegistrants != null)
  363.       {
  364.         unsljLogRet(1027, record);
  365.         mDisplayInfoRegistrants.notifyRegistrants(new AsyncResult(null, record, null));
  366.       }
  367.     do
  368.     {
  369.       do
  370.       {
  371.         do
  372.         {
  373.           do
  374.           {
  375.             do
  376.             {
  377.               do
  378.               {
  379.                 return;
  380.                 if (!(record instanceof CdmaInformationRecords.CdmaSignalInfoRec)) {
  381.                   break;
  382.                 }
  383.               } while (mSignalInfoRegistrants == null);
  384.               unsljLogRet(1027, record);
  385.               mSignalInfoRegistrants.notifyRegistrants(new AsyncResult(null, record, null));
  386.               return;
  387.               if (!(record instanceof CdmaInformationRecords.CdmaNumberInfoRec)) {
  388.                 break;
  389.               }
  390.             } while (mNumberInfoRegistrants == null);
  391.             unsljLogRet(1027, record);
  392.             mNumberInfoRegistrants.notifyRegistrants(new AsyncResult(null, record, null));
  393.             return;
  394.             if (!(record instanceof CdmaInformationRecords.CdmaRedirectingNumberInfoRec)) {
  395.               break;
  396.             }
  397.           } while (mRedirNumInfoRegistrants == null);
  398.           unsljLogRet(1027, record);
  399.           mRedirNumInfoRegistrants.notifyRegistrants(new AsyncResult(null, record, null));
  400.           return;
  401.           if (!(record instanceof CdmaInformationRecords.CdmaLineControlInfoRec)) {
  402.             break;
  403.           }
  404.         } while (mLineControlInfoRegistrants == null);
  405.         unsljLogRet(1027, record);
  406.         mLineControlInfoRegistrants.notifyRegistrants(new AsyncResult(null, record, null));
  407.         return;
  408.         if (!(record instanceof CdmaInformationRecords.CdmaT53ClirInfoRec)) {
  409.           break;
  410.         }
  411.       } while (mT53ClirInfoRegistrants == null);
  412.       unsljLogRet(1027, record);
  413.       mT53ClirInfoRegistrants.notifyRegistrants(new AsyncResult(null, record, null));
  414.       return;
  415.     } while ((!(record instanceof CdmaInformationRecords.CdmaT53AudioControlInfoRec)) || (mT53AudCntrlInfoRegistrants == null));
  416.     unsljLogRet(1027, record);
  417.     mT53AudCntrlInfoRegistrants.notifyRegistrants(new AsyncResult(null, record, null));
  418.   }
  419.  
  420.   private void notifyRegistrantsRilConnectionChanged(int paramInt)
  421.   {
  422.     mRilVersion = paramInt;
  423.     if (mRilConnectedRegistrants != null)
  424.       mRilConnectedRegistrants.notifyRegistrants(new AsyncResult(null, new Integer(paramInt), null));
  425.   }
  426.  
  427.   private void processResponse(Parcel paramParcel)
  428.   {
  429.     int i = paramParcel.readInt();
  430.     if (i == 1)
  431.       processUnsolicited(paramParcel);
  432.     for (;;)
  433.     {
  434.       releaseWakeLockIfDone();
  435.       return;
  436.       if (i == 0)
  437.         processSolicited(paramParcel);
  438.     }
  439.   }
  440.  
  441.   private void processSolicited(Parcel paramParcel)
  442.   {
  443.     int i = paramParcel.readInt();
  444.     int j = paramParcel.readInt();
  445.     RILRequest localRILRequest = findAndRemoveRequestFromList(i);
  446.     if (localRILRequest == null)
  447.     {
  448.       Log.w("RILJ", "Unexpected solicited response! sn: " + i + " error: " + j);
  449.       return;
  450.     }
  451.     Object localObject2;
  452.     if (j != 0)
  453.     {
  454.       int k = paramParcel.dataAvail();
  455.       localObject2 = null;
  456.       if (k <= 0) {}
  457.     }
  458.     else
  459.     {
  460.       try
  461.       {
  462.         switch (mRequest)
  463.         {
  464.         default:
  465.           throw new RuntimeException("Unrecognized solicited response: " + mRequest);
  466.         }
  467.       }
  468.       catch (Throwable localThrowable)
  469.       {
  470.         Log.w("RILJ", localRILRequest.serialString() + "< " + requestToString(mRequest) + " exception, possible invalid RIL response", localThrowable);
  471.         if (mResult != null)
  472.         {
  473.           AsyncResult.forMessage(mResult, null, localThrowable);
  474.           mResult.sendToTarget();
  475.         }
  476.         localRILRequest.release();
  477.         return;
  478.       }
  479.       Object localObject3 = responseIccCardStatus(paramParcel);
  480.       localObject2 = localObject3;
  481.     }
  482.     while (j != 0)
  483.     {
  484.       localRILRequest.onError(j, localObject2);
  485.       localRILRequest.release();
  486.       return;
  487.       localObject2 = responseInts(paramParcel);
  488.       continue;
  489.       localObject2 = responseInts(paramParcel);
  490.       continue;
  491.       localObject2 = responseInts(paramParcel);
  492.       continue;
  493.       localObject2 = responseInts(paramParcel);
  494.       continue;
  495.       localObject2 = responseInts(paramParcel);
  496.       continue;
  497.       localObject2 = responseInts(paramParcel);
  498.       continue;
  499.       localObject2 = responseInts(paramParcel);
  500.       continue;
  501.       localObject2 = responseCallList(paramParcel);
  502.       continue;
  503.       localObject2 = responseVoid(paramParcel);
  504.       continue;
  505.       localObject2 = responseString(paramParcel);
  506.       continue;
  507.       localObject2 = responseVoid(paramParcel);
  508.       continue;
  509.       localObject2 = responseVoid(paramParcel);
  510.       continue;
  511.       if ((mTestingEmergencyCall.getAndSet(false)) && (mEmergencyCallbackModeRegistrant != null))
  512.       {
  513.         riljLog("testing emergency call, notify ECM Registrants");
  514.         mEmergencyCallbackModeRegistrant.notifyRegistrant();
  515.       }
  516.       localObject2 = responseVoid(paramParcel);
  517.       continue;
  518.       localObject2 = responseVoid(paramParcel);
  519.       continue;
  520.       localObject2 = responseVoid(paramParcel);
  521.       continue;
  522.       localObject2 = responseVoid(paramParcel);
  523.       continue;
  524.       localObject2 = responseInts(paramParcel);
  525.       continue;
  526.       localObject2 = responseSignalStrength(paramParcel);
  527.       continue;
  528.       localObject2 = responseStrings(paramParcel);
  529.       continue;
  530.       localObject2 = responseStrings(paramParcel);
  531.       continue;
  532.       localObject2 = responseStrings(paramParcel);
  533.       continue;
  534.       localObject2 = responseVoid(paramParcel);
  535.       continue;
  536.       localObject2 = responseVoid(paramParcel);
  537.       continue;
  538.       localObject2 = responseSMS(paramParcel);
  539.       continue;
  540.       localObject2 = responseStrings(paramParcel);
  541.       continue;
  542.       localObject2 = responseStrings(paramParcel);
  543.       continue;
  544.       localObject2 = responseStrings(paramParcel);
  545.       continue;
  546.       localObject2 = responseStrings(paramParcel);
  547.       continue;
  548.       localObject2 = responseStrings(paramParcel);
  549.       continue;
  550.       localObject2 = responseStrings(paramParcel);
  551.       continue;
  552.       localObject2 = responseSMS(paramParcel);
  553.       continue;
  554.       localObject2 = responseSetupDataCall(paramParcel);
  555.       continue;
  556.       localObject2 = responseICC_IO(paramParcel);
  557.       continue;
  558.       localObject2 = responseICC_IO(paramParcel);
  559.       continue;
  560.       localObject2 = responseInts(paramParcel);
  561.       continue;
  562.       localObject2 = responseVoid(paramParcel);
  563.       continue;
  564.       localObject2 = responseICC_IO(paramParcel);
  565.       continue;
  566.       localObject2 = responseString(paramParcel);
  567.       continue;
  568.       localObject2 = responseVoid(paramParcel);
  569.       continue;
  570.       localObject2 = responseVoid(paramParcel);
  571.       continue;
  572.       localObject2 = responseInts(paramParcel);
  573.       continue;
  574.       localObject2 = responseVoid(paramParcel);
  575.       continue;
  576.       localObject2 = responseCallForward(paramParcel);
  577.       continue;
  578.       localObject2 = responseVoid(paramParcel);
  579.       continue;
  580.       localObject2 = responseInts(paramParcel);
  581.       continue;
  582.       localObject2 = responseVoid(paramParcel);
  583.       continue;
  584.       localObject2 = responseVoid(paramParcel);
  585.       continue;
  586.       localObject2 = responseString(paramParcel);
  587.       continue;
  588.       localObject2 = responseString(paramParcel);
  589.       continue;
  590.       localObject2 = responseVoid(paramParcel);
  591.       continue;
  592.       localObject2 = responseVoid(paramParcel);
  593.       continue;
  594.       localObject2 = responseInts(paramParcel);
  595.       continue;
  596.       localObject2 = responseInts(paramParcel);
  597.       continue;
  598.       localObject2 = responseVoid(paramParcel);
  599.       continue;
  600.       localObject2 = responseInts(paramParcel);
  601.       continue;
  602.       localObject2 = responseVoid(paramParcel);
  603.       continue;
  604.       localObject2 = responseVoid(paramParcel);
  605.       continue;
  606.       localObject2 = responseOperatorInfos(paramParcel);
  607.       continue;
  608.       localObject2 = responseVoid(paramParcel);
  609.       continue;
  610.       localObject2 = responseVoid(paramParcel);
  611.       continue;
  612.       localObject2 = responseString(paramParcel);
  613.       continue;
  614.       localObject2 = responseVoid(paramParcel);
  615.       continue;
  616.       localObject2 = responseVoid(paramParcel);
  617.       continue;
  618.       localObject2 = responseInts(paramParcel);
  619.       continue;
  620.       localObject2 = responseInts(paramParcel);
  621.       continue;
  622.       localObject2 = responseInts(paramParcel);
  623.       continue;
  624.       localObject2 = responseDataCallList(paramParcel);
  625.       continue;
  626.       localObject2 = responseVoid(paramParcel);
  627.       continue;
  628.       localObject2 = responseRaw(paramParcel);
  629.       continue;
  630.       localObject2 = responseStrings(paramParcel);
  631.       continue;
  632.       localObject2 = responseVoid(paramParcel);
  633.       continue;
  634.       localObject2 = responseVoid(paramParcel);
  635.       continue;
  636.       localObject2 = responseInts(paramParcel);
  637.       continue;
  638.       localObject2 = responseVoid(paramParcel);
  639.       continue;
  640.       localObject2 = responseVoid(paramParcel);
  641.       continue;
  642.       localObject2 = responseInts(paramParcel);
  643.       continue;
  644.       localObject2 = responseString(paramParcel);
  645.       continue;
  646.       localObject2 = responseVoid(paramParcel);
  647.       continue;
  648.       localObject2 = responseString(paramParcel);
  649.       continue;
  650.       localObject2 = responseVoid(paramParcel);
  651.       continue;
  652.       localObject2 = responseInts(paramParcel);
  653.       continue;
  654.       localObject2 = responseVoid(paramParcel);
  655.       continue;
  656.       localObject2 = responseVoid(paramParcel);
  657.       continue;
  658.       localObject2 = responseGetPreferredNetworkType(paramParcel);
  659.       continue;
  660.       localObject2 = responseCellList(paramParcel);
  661.       continue;
  662.       localObject2 = responseVoid(paramParcel);
  663.       continue;
  664.       localObject2 = responseVoid(paramParcel);
  665.       continue;
  666.       localObject2 = responseVoid(paramParcel);
  667.       continue;
  668.       localObject2 = responseInts(paramParcel);
  669.       continue;
  670.       localObject2 = responseVoid(paramParcel);
  671.       continue;
  672.       localObject2 = responseInts(paramParcel);
  673.       continue;
  674.       localObject2 = responseVoid(paramParcel);
  675.       continue;
  676.       localObject2 = responseInts(paramParcel);
  677.       continue;
  678.       localObject2 = responseVoid(paramParcel);
  679.       continue;
  680.       localObject2 = responseVoid(paramParcel);
  681.       continue;
  682.       localObject2 = responseSMS(paramParcel);
  683.       continue;
  684.       localObject2 = responseVoid(paramParcel);
  685.       continue;
  686.       localObject2 = responseGmsBroadcastConfig(paramParcel);
  687.       continue;
  688.       localObject2 = responseVoid(paramParcel);
  689.       continue;
  690.       localObject2 = responseVoid(paramParcel);
  691.       continue;
  692.       localObject2 = responseCdmaBroadcastConfig(paramParcel);
  693.       continue;
  694.       localObject2 = responseVoid(paramParcel);
  695.       continue;
  696.       localObject2 = responseVoid(paramParcel);
  697.       continue;
  698.       localObject2 = responseVoid(paramParcel);
  699.       continue;
  700.       localObject2 = responseStrings(paramParcel);
  701.       continue;
  702.       localObject2 = responseInts(paramParcel);
  703.       continue;
  704.       localObject2 = responseVoid(paramParcel);
  705.       continue;
  706.       localObject2 = responseStrings(paramParcel);
  707.       continue;
  708.       localObject2 = responseString(paramParcel);
  709.       continue;
  710.       localObject2 = responseVoid(paramParcel);
  711.       continue;
  712.       localObject2 = responseVoid(paramParcel);
  713.       continue;
  714.       localObject2 = responseVoid(paramParcel);
  715.       continue;
  716.       localObject2 = responseVoid(paramParcel);
  717.       continue;
  718.       localObject2 = responseInts(paramParcel);
  719.       continue;
  720.       localObject2 = responseGetDataCallProfile(paramParcel);
  721.       continue;
  722.       localObject2 = responseString(paramParcel);
  723.       continue;
  724.       localObject2 = responseVoid(paramParcel);
  725.       continue;
  726.       localObject2 = responseICC_IO(paramParcel);
  727.       continue;
  728.       localObject2 = responseInts(paramParcel);
  729.       continue;
  730.       localObject2 = responseInts(paramParcel);
  731.       continue;
  732.       localObject2 = responseSMS(paramParcel);
  733.       continue;
  734.       localObject2 = responseVoid(paramParcel);
  735.       continue;
  736.       localObject2 = responseVoid(paramParcel);
  737.       continue;
  738.       localObject2 = responseUiccSubscription(paramParcel);
  739.       continue;
  740.       localObject2 = responseInts(paramParcel);
  741.       continue;
  742.       Object localObject1 = responseVoid(paramParcel);
  743.       localObject2 = localObject1;
  744.     }
  745.     riljLog(localRILRequest.serialString() + "< " + requestToString(mRequest) + " " + retToString(mRequest, localObject2));
  746.     if (mResult != null)
  747.     {
  748.       AsyncResult.forMessage(mResult, localObject2, null);
  749.       mResult.sendToTarget();
  750.     }
  751.     localRILRequest.release();
  752.   }
  753.  
  754.   private void processUnsolOemhookResponse(ByteBuffer paramByteBuffer)
  755.   {
  756.     int i = paramByteBuffer.getInt();
  757.     Log.d("RILJ", "Response ID in RIL_UNSOL_OEM_HOOK_RAW is " + i);
  758.     int j = paramByteBuffer.getInt();
  759.     if (j < 0)
  760.       Log.e("RILJ", "Response Size is Invalid " + j);
  761.     byte[] arrayOfByte1;
  762.     do
  763.     {
  764.       return;
  765.       arrayOfByte1 = new byte[j];
  766.       paramByteBuffer.get(arrayOfByte1, 0, j);
  767.       switch (i)
  768.       {
  769.       case 525292:
  770.       case 525293:
  771.       case 525294:
  772.       case 525295:
  773.       default:
  774.         Log.d("RILJ", "Response ID " + i + "is not served in this process.");
  775.         Log.d("RILJ", "To broadcast an Intent via the notifier to external apps");
  776.       }
  777.     } while (mUnsolOemHookExtAppRegistrant == null);
  778.     paramByteBuffer.rewind();
  779.     byte[] arrayOfByte2 = paramByteBuffer.array();
  780.     mUnsolOemHookExtAppRegistrant.notifyRegistrant(new AsyncResult(null, arrayOfByte2, null));
  781.     return;
  782.     notifyCdmaFwdBurstDtmf(arrayOfByte1);
  783.     return;
  784.     notifyCdmaFwdContDtmfStart(arrayOfByte1);
  785.     return;
  786.     notifyCdmaFwdContDtmfStop();
  787.     return;
  788.     broadcastWifiChannelsChangedIntent(arrayOfByte1);
  789.   }
  790.  
  791.   private void processUnsolicited(Parcel paramParcel)
  792.   {
  793.     int i = paramParcel.readInt();
  794.     switch (i)
  795.     {
  796.     }
  797.     Object localObject2;
  798.     do
  799.     {
  800.       do
  801.       {
  802.         do
  803.         {
  804.           do
  805.           {
  806.             do
  807.             {
  808.               do
  809.               {
  810.                 do
  811.                 {
  812.                   do
  813.                   {
  814.                     do
  815.                     {
  816.                       do
  817.                       {
  818.                         do
  819.                         {
  820.                           do
  821.                           {
  822.                             for (;;)
  823.                             {
  824.                               try
  825.                               {
  826.                                 throw new RuntimeException("Unrecognized unsol response: " + i);
  827.                               }
  828.                               catch (Throwable localThrowable)
  829.                               {
  830.                                 Log.e("RILJ", "Exception processing unsol response: " + i + "Exception:" + localThrowable.toString());
  831.                                 return;
  832.                               }
  833.                               Object localObject3 = responseVoid(paramParcel);
  834.                               localObject2 = localObject3;
  835.                               for (;;)
  836.                               {
  837.                                 switch (i)
  838.                                 {
  839.                                 case 1007:
  840.                                 default:
  841.                                   return;
  842.                                 case 1000:
  843.                                   CommandsInterface.RadioState localRadioState = getRadioStateFromInt(paramParcel.readInt());
  844.                                   unsljLogMore(i, localRadioState.toString());
  845.                                   switchToRadioState(localRadioState);
  846.                                   return;
  847.                                   localObject2 = responseVoid(paramParcel);
  848.                                   continue;
  849.                                   localObject2 = responseVoid(paramParcel);
  850.                                   continue;
  851.                                   localObject2 = responseString(paramParcel);
  852.                                   continue;
  853.                                   localObject2 = responseString(paramParcel);
  854.                                   continue;
  855.                                   localObject2 = responseInts(paramParcel);
  856.                                   continue;
  857.                                   localObject2 = responseStrings(paramParcel);
  858.                                   continue;
  859.                                   localObject2 = responseString(paramParcel);
  860.                                   continue;
  861.                                   localObject2 = responseSignalStrength(paramParcel);
  862.                                   continue;
  863.                                   localObject2 = responseDataCallList(paramParcel);
  864.                                   continue;
  865.                                   localObject2 = responseSuppServiceNotification(paramParcel);
  866.                                   continue;
  867.                                   localObject2 = responseVoid(paramParcel);
  868.                                   continue;
  869.                                   localObject2 = responseString(paramParcel);
  870.                                   continue;
  871.                                   localObject2 = responseString(paramParcel);
  872.                                   continue;
  873.                                   localObject2 = responseInts(paramParcel);
  874.                                   continue;
  875.                                   localObject2 = responseVoid(paramParcel);
  876.                                   continue;
  877.                                   localObject2 = responseSimRefresh(paramParcel);
  878.                                   continue;
  879.                                   localObject2 = responseCallRing(paramParcel);
  880.                                   continue;
  881.                                   localObject2 = responseInts(paramParcel);
  882.                                   continue;
  883.                                   localObject2 = responseVoid(paramParcel);
  884.                                   continue;
  885.                                   localObject2 = responseCdmaSms(paramParcel);
  886.                                   continue;
  887.                                   localObject2 = responseRaw(paramParcel);
  888.                                   continue;
  889.                                   localObject2 = responseVoid(paramParcel);
  890.                                   continue;
  891.                                   localObject2 = responseVoid(paramParcel);
  892.                                   continue;
  893.                                   localObject2 = responseCdmaCallWaiting(paramParcel);
  894.                                   continue;
  895.                                   localObject2 = responseInts(paramParcel);
  896.                                   continue;
  897.                                   localObject2 = responseCdmaInformationRecord(paramParcel);
  898.                                   continue;
  899.                                   localObject2 = responseRaw(paramParcel);
  900.                                   continue;
  901.                                   localObject2 = responseInts(paramParcel);
  902.                                   continue;
  903.                                   localObject2 = responseVoid(paramParcel);
  904.                                   continue;
  905.                                   localObject2 = responseInts(paramParcel);
  906.                                   continue;
  907.                                   localObject2 = responseInts(paramParcel);
  908.                                   continue;
  909.                                   localObject2 = responseVoid(paramParcel);
  910.                                   continue;
  911.                                   localObject2 = responseInts(paramParcel);
  912.                                   continue;
  913.                                   localObject2 = responseInts(paramParcel);
  914.                                   continue;
  915.                                   localObject2 = responseVoid(paramParcel);
  916.                                   continue;
  917.                                   localObject2 = responseInts(paramParcel);
  918.                                   continue;
  919.                                   localObject2 = responseStrings(paramParcel);
  920.                                   continue;
  921.                                   localObject2 = responseInts(paramParcel);
  922.                                   continue;
  923.                                   localObject2 = responseSSData(paramParcel);
  924.                                   continue;
  925.                                   Object localObject1 = responseString(paramParcel);
  926.                                   localObject2 = localObject1;
  927.                                 }
  928.                               }
  929.                               unsljLog(i);
  930.                               mImsNetworkStateChangedRegistrants.notifyRegistrants(new AsyncResult(null, null, null));
  931.                               return;
  932.                               unsljLog(i);
  933.                               mCallStateRegistrants.notifyRegistrants(new AsyncResult(null, null, null));
  934.                               return;
  935.                               unsljLog(i);
  936.                               mVoiceNetworkStateRegistrants.notifyRegistrants(new AsyncResult(null, null, null));
  937.                               return;
  938.                               unsljLog(i);
  939.                               String[] arrayOfString2 = new String[2];
  940.                               arrayOfString2[1] = ((String)localObject2);
  941.                               SmsMessage localSmsMessage2 = SmsMessage.newFromCMT(arrayOfString2);
  942.                               if (mGsmSmsRegistrant != null)
  943.                               {
  944.                                 Registrant localRegistrant18 = mGsmSmsRegistrant;
  945.                                 AsyncResult localAsyncResult29 = new AsyncResult(null, localSmsMessage2, null);
  946.                                 localRegistrant18.notifyRegistrant(localAsyncResult29);
  947.                                 return;
  948.                                 unsljLogRet(i, localObject2);
  949.                                 if (mSmsStatusRegistrant != null)
  950.                                 {
  951.                                   Registrant localRegistrant17 = mSmsStatusRegistrant;
  952.                                   AsyncResult localAsyncResult28 = new AsyncResult(null, localObject2, null);
  953.                                   localRegistrant17.notifyRegistrant(localAsyncResult28);
  954.                                   return;
  955.                                   unsljLogRet(i, localObject2);
  956.                                   int[] arrayOfInt = (int[])localObject2;
  957.                                   if (arrayOfInt.length == 1)
  958.                                   {
  959.                                     if (mSmsOnSimRegistrant != null)
  960.                                     {
  961.                                       Registrant localRegistrant16 = mSmsOnSimRegistrant;
  962.                                       AsyncResult localAsyncResult27 = new AsyncResult(null, arrayOfInt, null);
  963.                                       localRegistrant16.notifyRegistrant(localAsyncResult27);
  964.                                     }
  965.                                   }
  966.                                   else
  967.                                   {
  968.                                     riljLog(" NEW_SMS_ON_SIM ERROR with wrong length " + arrayOfInt.length);
  969.                                     return;
  970.                                     String[] arrayOfString1 = (String[])localObject2;
  971.                                     if (arrayOfString1.length < 2)
  972.                                     {
  973.                                       arrayOfString1 = new String[2];
  974.                                       arrayOfString1[0] = ((String[])(String[])localObject2)[0];
  975.                                       arrayOfString1[1] = null;
  976.                                     }
  977.                                     unsljLogMore(i, arrayOfString1[0]);
  978.                                     if (mUSSDRegistrant != null)
  979.                                     {
  980.                                       Registrant localRegistrant15 = mUSSDRegistrant;
  981.                                       AsyncResult localAsyncResult26 = new AsyncResult(null, arrayOfString1, null);
  982.                                       localRegistrant15.notifyRegistrant(localAsyncResult26);
  983.                                       return;
  984.                                       unsljLogRet(i, localObject2);
  985.                                       long l = paramParcel.readLong();
  986.                                       Object[] arrayOfObject = new Object[2];
  987.                                       arrayOfObject[0] = localObject2;
  988.                                       arrayOfObject[1] = Long.valueOf(l);
  989.                                       if (SystemProperties.getBoolean("telephony.test.ignore.nitz", false))
  990.                                       {
  991.                                         riljLog("ignoring UNSOL_NITZ_TIME_RECEIVED");
  992.                                         return;
  993.                                       }
  994.                                       if (mNITZTimeRegistrant != null)
  995.                                       {
  996.                                         Registrant localRegistrant14 = mNITZTimeRegistrant;
  997.                                         AsyncResult localAsyncResult25 = new AsyncResult(null, arrayOfObject, null);
  998.                                         localRegistrant14.notifyRegistrant(localAsyncResult25);
  999.                                         return;
  1000.                                       }
  1001.                                       mLastNITZTimeInfo = arrayOfObject;
  1002.                                       return;
  1003.                                       if (mSignalStrengthRegistrant != null)
  1004.                                       {
  1005.                                         Registrant localRegistrant13 = mSignalStrengthRegistrant;
  1006.                                         AsyncResult localAsyncResult24 = new AsyncResult(null, localObject2, null);
  1007.                                         localRegistrant13.notifyRegistrant(localAsyncResult24);
  1008.                                         return;
  1009.                                         unsljLogRet(i, localObject2);
  1010.                                         RegistrantList localRegistrantList11 = mDataNetworkStateRegistrants;
  1011.                                         AsyncResult localAsyncResult23 = new AsyncResult(null, localObject2, null);
  1012.                                         localRegistrantList11.notifyRegistrants(localAsyncResult23);
  1013.                                         return;
  1014.                                         unsljLogRet(i, localObject2);
  1015.                                         if (mSsnRegistrant != null)
  1016.                                         {
  1017.                                           Registrant localRegistrant12 = mSsnRegistrant;
  1018.                                           AsyncResult localAsyncResult22 = new AsyncResult(null, localObject2, null);
  1019.                                           localRegistrant12.notifyRegistrant(localAsyncResult22);
  1020.                                           return;
  1021.                                           unsljLog(i);
  1022.                                           if (mCatSessionEndRegistrant != null)
  1023.                                           {
  1024.                                             Registrant localRegistrant11 = mCatSessionEndRegistrant;
  1025.                                             AsyncResult localAsyncResult21 = new AsyncResult(null, localObject2, null);
  1026.                                             localRegistrant11.notifyRegistrant(localAsyncResult21);
  1027.                                             return;
  1028.                                             unsljLogRet(i, localObject2);
  1029.                                             if (mCatProCmdRegistrant != null)
  1030.                                             {
  1031.                                               Registrant localRegistrant10 = mCatProCmdRegistrant;
  1032.                                               AsyncResult localAsyncResult20 = new AsyncResult(null, localObject2, null);
  1033.                                               localRegistrant10.notifyRegistrant(localAsyncResult20);
  1034.                                               return;
  1035.                                               unsljLogRet(i, localObject2);
  1036.                                               if (mCatEventRegistrant != null)
  1037.                                               {
  1038.                                                 Registrant localRegistrant9 = mCatEventRegistrant;
  1039.                                                 AsyncResult localAsyncResult19 = new AsyncResult(null, localObject2, null);
  1040.                                                 localRegistrant9.notifyRegistrant(localAsyncResult19);
  1041.                                                 return;
  1042.                                                 unsljLogRet(i, localObject2);
  1043.                                                 if (mCatCallSetUpRegistrant != null)
  1044.                                                 {
  1045.                                                   Registrant localRegistrant8 = mCatCallSetUpRegistrant;
  1046.                                                   AsyncResult localAsyncResult18 = new AsyncResult(null, localObject2, null);
  1047.                                                   localRegistrant8.notifyRegistrant(localAsyncResult18);
  1048.                                                   return;
  1049.                                                   unsljLog(i);
  1050.                                                   if (mIccSmsFullRegistrant != null)
  1051.                                                   {
  1052.                                                     mIccSmsFullRegistrant.notifyRegistrant();
  1053.                                                     return;
  1054.                                                     unsljLogRet(i, localObject2);
  1055.                                                     if (mIccRefreshRegistrants != null)
  1056.                                                     {
  1057.                                                       RegistrantList localRegistrantList10 = mIccRefreshRegistrants;
  1058.                                                       AsyncResult localAsyncResult17 = new AsyncResult(null, localObject2, null);
  1059.                                                       localRegistrantList10.notifyRegistrants(localAsyncResult17);
  1060.                                                       return;
  1061.                                                       unsljLogRet(i, localObject2);
  1062.                                                       if (mRingRegistrant != null)
  1063.                                                       {
  1064.                                                         Registrant localRegistrant7 = mRingRegistrant;
  1065.                                                         AsyncResult localAsyncResult16 = new AsyncResult(null, localObject2, null);
  1066.                                                         localRegistrant7.notifyRegistrant(localAsyncResult16);
  1067.                                                         return;
  1068.                                                         unsljLogvRet(i, localObject2);
  1069.                                                         if (mRestrictedStateRegistrant != null)
  1070.                                                         {
  1071.                                                           Registrant localRegistrant6 = mRestrictedStateRegistrant;
  1072.                                                           AsyncResult localAsyncResult15 = new AsyncResult(null, localObject2, null);
  1073.                                                           localRegistrant6.notifyRegistrant(localAsyncResult15);
  1074.                                                           return;
  1075.                                                           unsljLog(i);
  1076.                                                           if (mIccStatusChangedRegistrants != null)
  1077.                                                           {
  1078.                                                             mIccStatusChangedRegistrants.notifyRegistrants();
  1079.                                                             return;
  1080.                                                             unsljLog(i);
  1081.                                                             SmsMessage localSmsMessage1 = (SmsMessage)localObject2;
  1082.                                                             if (mCdmaSmsRegistrant != null)
  1083.                                                             {
  1084.                                                               Registrant localRegistrant5 = mCdmaSmsRegistrant;
  1085.                                                               AsyncResult localAsyncResult14 = new AsyncResult(null, localSmsMessage1, null);
  1086.                                                               localRegistrant5.notifyRegistrant(localAsyncResult14);
  1087.                                                               return;
  1088.                                                               unsljLog(i);
  1089.                                                               if (mGsmBroadcastSmsRegistrant != null)
  1090.                                                               {
  1091.                                                                 Registrant localRegistrant4 = mGsmBroadcastSmsRegistrant;
  1092.                                                                 AsyncResult localAsyncResult13 = new AsyncResult(null, localObject2, null);
  1093.                                                                 localRegistrant4.notifyRegistrant(localAsyncResult13);
  1094.                                                                 return;
  1095.                                                                 unsljLog(i);
  1096.                                                                 if (mIccSmsFullRegistrant != null)
  1097.                                                                 {
  1098.                                                                   mIccSmsFullRegistrant.notifyRegistrant();
  1099.                                                                   return;
  1100.                                                                   unsljLog(i);
  1101.                                                                   if (mEmergencyCallbackModeRegistrant != null)
  1102.                                                                   {
  1103.                                                                     mEmergencyCallbackModeRegistrant.notifyRegistrant();
  1104.                                                                     return;
  1105.                                                                     unsljLogRet(i, localObject2);
  1106.                                                                     if (mCallWaitingInfoRegistrants != null)
  1107.                                                                     {
  1108.                                                                       RegistrantList localRegistrantList9 = mCallWaitingInfoRegistrants;
  1109.                                                                       AsyncResult localAsyncResult12 = new AsyncResult(null, localObject2, null);
  1110.                                                                       localRegistrantList9.notifyRegistrants(localAsyncResult12);
  1111.                                                                       return;
  1112.                                                                       unsljLogRet(i, localObject2);
  1113.                                                                       if (mOtaProvisionRegistrants != null)
  1114.                                                                       {
  1115.                                                                         RegistrantList localRegistrantList8 = mOtaProvisionRegistrants;
  1116.                                                                         AsyncResult localAsyncResult11 = new AsyncResult(null, localObject2, null);
  1117.                                                                         localRegistrantList8.notifyRegistrants(localAsyncResult11);
  1118.                                                                         return;
  1119.                                                                         try
  1120.                                                                         {
  1121.                                                                           ArrayList localArrayList = (ArrayList)localObject2;
  1122.                                                                           Iterator localIterator = localArrayList.iterator();
  1123.                                                                           while (localIterator.hasNext())
  1124.                                                                           {
  1125.                                                                             CdmaInformationRecords localCdmaInformationRecords = (CdmaInformationRecords)localIterator.next();
  1126.                                                                             unsljLogRet(i, localCdmaInformationRecords);
  1127.                                                                             notifyRegistrantsCdmaInfoRec(localCdmaInformationRecords);
  1128.                                                                           }
  1129.                                                                           unsljLogvRet(i, IccUtils.bytesToHexString((byte[])localObject2));
  1130.                                                                         }
  1131.                                                                         catch (ClassCastException localClassCastException)
  1132.                                                                         {
  1133.                                                                           Log.e("RILJ", "Unexpected exception casting to listInfoRecs", localClassCastException);
  1134.                                                                           return;
  1135.                                                                         }
  1136.                                                                       }
  1137.                                                                     }
  1138.                                                                   }
  1139.                                                                 }
  1140.                                                               }
  1141.                                                             }
  1142.                                                           }
  1143.                                                         }
  1144.                                                       }
  1145.                                                     }
  1146.                                                   }
  1147.                                                 }
  1148.                                               }
  1149.                                             }
  1150.                                           }
  1151.                                         }
  1152.                                       }
  1153.                                     }
  1154.                                   }
  1155.                                 }
  1156.                               }
  1157.                             }
  1158.                             ByteBuffer localByteBuffer = ByteBuffer.wrap((byte[])localObject2);
  1159.                             localByteBuffer.order(ByteOrder.nativeOrder());
  1160.                             if (isQcUnsolOemHookResp(localByteBuffer))
  1161.                             {
  1162.                               Log.d("RILJ", "OEM ID check Passed");
  1163.                               processUnsolOemhookResponse(localByteBuffer);
  1164.                               return;
  1165.                             }
  1166.                           } while (mUnsolOemHookRawRegistrant == null);
  1167.                           Log.d("RILJ", "External OEM message, to be notified");
  1168.                           Registrant localRegistrant3 = mUnsolOemHookRawRegistrant;
  1169.                           AsyncResult localAsyncResult10 = new AsyncResult(null, localObject2, null);
  1170.                           localRegistrant3.notifyRegistrant(localAsyncResult10);
  1171.                           return;
  1172.                           unsljLogvRet(i, localObject2);
  1173.                         } while (mRingbackToneRegistrants == null);
  1174.                         if (((int[])(int[])localObject2)[0] == 1) {}
  1175.                         for (boolean bool = true;; bool = false)
  1176.                         {
  1177.                           mRingbackToneRegistrants.notifyRegistrants(new AsyncResult(null, Boolean.valueOf(bool), null));
  1178.                           return;
  1179.                         }
  1180.                         unsljLogRet(i, localObject2);
  1181.                       } while (mResendIncallMuteRegistrants == null);
  1182.                       RegistrantList localRegistrantList7 = mResendIncallMuteRegistrants;
  1183.                       AsyncResult localAsyncResult9 = new AsyncResult(null, localObject2, null);
  1184.                       localRegistrantList7.notifyRegistrants(localAsyncResult9);
  1185.                       return;
  1186.                       unsljLogRet(i, localObject2);
  1187.                     } while (mVoiceRadioTechChangedRegistrants == null);
  1188.                     RegistrantList localRegistrantList6 = mVoiceRadioTechChangedRegistrants;
  1189.                     AsyncResult localAsyncResult8 = new AsyncResult(null, localObject2, null);
  1190.                     localRegistrantList6.notifyRegistrants(localAsyncResult8);
  1191.                     return;
  1192.                     unsljLogRet(i, localObject2);
  1193.                   } while (mCdmaSubscriptionChangedRegistrants == null);
  1194.                   RegistrantList localRegistrantList5 = mCdmaSubscriptionChangedRegistrants;
  1195.                   AsyncResult localAsyncResult7 = new AsyncResult(null, localObject2, null);
  1196.                   localRegistrantList5.notifyRegistrants(localAsyncResult7);
  1197.                   return;
  1198.                   unsljLogRet(i, localObject2);
  1199.                 } while (mSSRegistrant == null);
  1200.                 Registrant localRegistrant2 = mSSRegistrant;
  1201.                 AsyncResult localAsyncResult6 = new AsyncResult(null, localObject2, null);
  1202.                 localRegistrant2.notifyRegistrant(localAsyncResult6);
  1203.                 return;
  1204.                 unsljLogRet(i, localObject2);
  1205.               } while (mCatCcAlphaRegistrant == null);
  1206.               Registrant localRegistrant1 = mCatCcAlphaRegistrant;
  1207.               AsyncResult localAsyncResult5 = new AsyncResult(null, localObject2, null);
  1208.               localRegistrant1.notifyRegistrant(localAsyncResult5);
  1209.               return;
  1210.               unsljLogRet(i, localObject2);
  1211.             } while (mCdmaPrlChangedRegistrants == null);
  1212.             RegistrantList localRegistrantList4 = mCdmaPrlChangedRegistrants;
  1213.             AsyncResult localAsyncResult4 = new AsyncResult(null, localObject2, null);
  1214.             localRegistrantList4.notifyRegistrants(localAsyncResult4);
  1215.             return;
  1216.             unsljLogRet(i, localObject2);
  1217.           } while (mExitEmergencyCallbackModeRegistrants == null);
  1218.           mExitEmergencyCallbackModeRegistrants.notifyRegistrants(new AsyncResult(null, null, null));
  1219.           return;
  1220.           unsljLogRet(i, localObject2);
  1221.           notifyRegistrantsRilConnectionChanged(((int[])(int[])localObject2)[0]);
  1222.           return;
  1223.           unsljLogvRet(i, localObject2);
  1224.         } while (mTetheredModeStateRegistrants == null);
  1225.         if (localObject2 != null)
  1226.         {
  1227.           RegistrantList localRegistrantList3 = mTetheredModeStateRegistrants;
  1228.           AsyncResult localAsyncResult3 = new AsyncResult(null, localObject2, null);
  1229.           localRegistrantList3.notifyRegistrants(localAsyncResult3);
  1230.           return;
  1231.         }
  1232.         Log.e("RILJ", "null returned, expected non-null");
  1233.         return;
  1234.         unsljLogRet(i, localObject2);
  1235.       } while (mQosStateChangedIndRegistrants == null);
  1236.       RegistrantList localRegistrantList2 = mQosStateChangedIndRegistrants;
  1237.       AsyncResult localAsyncResult2 = new AsyncResult(null, localObject2, null);
  1238.       localRegistrantList2.notifyRegistrants(localAsyncResult2);
  1239.       return;
  1240.       unsljLogRet(i, localObject2);
  1241.     } while (mSubscriptionStatusRegistrants == null);
  1242.     RegistrantList localRegistrantList1 = mSubscriptionStatusRegistrants;
  1243.     AsyncResult localAsyncResult1 = new AsyncResult(null, localObject2, null);
  1244.     localRegistrantList1.notifyRegistrants(localAsyncResult1);
  1245.   }
  1246.  
  1247.   private static int readRilMessage(InputStream paramInputStream, byte[] paramArrayOfByte)
  1248.     throws IOException
  1249.   {
  1250.     int i = 0;
  1251.     int j = 4;
  1252.     do
  1253.     {
  1254.       int k = paramInputStream.read(paramArrayOfByte, i, j);
  1255.       if (k < 0)
  1256.       {
  1257.         Log.e("RILJ", "Hit EOS reading message length");
  1258.         return -1;
  1259.       }
  1260.       i += k;
  1261.       j -= k;
  1262.     } while (j > 0);
  1263.     int m = (0xFF & paramArrayOfByte[0]) << 24 | (0xFF & paramArrayOfByte[1]) << 16 | (0xFF & paramArrayOfByte[2]) << 8 | 0xFF & paramArrayOfByte[3];
  1264.     int n = 0;
  1265.     int i1 = m;
  1266.     do
  1267.     {
  1268.       int i2 = paramInputStream.read(paramArrayOfByte, n, i1);
  1269.       if (i2 < 0)
  1270.       {
  1271.         Log.e("RILJ", "Hit EOS reading message.  messageLength=" + m + " remaining=" + i1);
  1272.         return -1;
  1273.       }
  1274.       n += i2;
  1275.       i1 -= i2;
  1276.     } while (i1 > 0);
  1277.     return m;
  1278.   }
  1279.  
  1280.   private void releaseWakeLockIfDone()
  1281.   {
  1282.     synchronized (mWakeLock)
  1283.     {
  1284.       if ((mWakeLock.isHeld()) && (mRequestMessagesPending == 0) && (mRequestMessagesWaiting == 0))
  1285.       {
  1286.         mSender.removeMessages(2);
  1287.         mWakeLock.release();
  1288.       }
  1289.       return;
  1290.     }
  1291.   }
  1292.  
  1293.   static String requestToString(int paramInt)
  1294.   {
  1295.     switch (paramInt)
  1296.     {
  1297.     default:
  1298.       return "<unknown request>";
  1299.     case 1:
  1300.       return "GET_SIM_STATUS";
  1301.     case 2:
  1302.       return "ENTER_SIM_PIN";
  1303.     case 3:
  1304.       return "ENTER_SIM_PUK";
  1305.     case 4:
  1306.       return "ENTER_SIM_PIN2";
  1307.     case 5:
  1308.       return "ENTER_SIM_PUK2";
  1309.     case 6:
  1310.       return "CHANGE_SIM_PIN";
  1311.     case 7:
  1312.       return "CHANGE_SIM_PIN2";
  1313.     case 8:
  1314.       return "ENTER_DEPERSONALIZATION_CODE";
  1315.     case 9:
  1316.       return "GET_CURRENT_CALLS";
  1317.     case 10:
  1318.       return "DIAL";
  1319.     case 11:
  1320.       return "GET_IMSI";
  1321.     case 12:
  1322.       return "HANGUP";
  1323.     case 13:
  1324.       return "HANGUP_WAITING_OR_BACKGROUND";
  1325.     case 14:
  1326.       return "HANGUP_FOREGROUND_RESUME_BACKGROUND";
  1327.     case 15:
  1328.       return "REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE";
  1329.     case 16:
  1330.       return "CONFERENCE";
  1331.     case 17:
  1332.       return "UDUB";
  1333.     case 18:
  1334.       return "LAST_CALL_FAIL_CAUSE";
  1335.     case 19:
  1336.       return "SIGNAL_STRENGTH";
  1337.     case 20:
  1338.       return "VOICE_REGISTRATION_STATE";
  1339.     case 21:
  1340.       return "DATA_REGISTRATION_STATE";
  1341.     case 22:
  1342.       return "OPERATOR";
  1343.     case 23:
  1344.       return "RADIO_POWER";
  1345.     case 24:
  1346.       return "DTMF";
  1347.     case 25:
  1348.       return "SEND_SMS";
  1349.     case 112:
  1350.       return "SETUP_QOS";
  1351.     case 114:
  1352.       return "GET_QOS_STATUS";
  1353.     case 113:
  1354.       return "RELEASE_QOS";
  1355.     case 115:
  1356.       return "MODIFY_QOS";
  1357.     case 116:
  1358.       return "SUSPEND_QOS";
  1359.     case 117:
  1360.       return "RESUME_QOS";
  1361.     case 26:
  1362.       return "SEND_SMS_EXPECT_MORE";
  1363.     case 27:
  1364.       return "SETUP_DATA_CALL";
  1365.     case 28:
  1366.       return "SIM_IO";
  1367.     case 123:
  1368.       return "SIM_TRANSMIT_BASIC";
  1369.     case 124:
  1370.       return "SIM_OPEN_CHANNEL";
  1371.     case 125:
  1372.       return "SIM_CLOSE_CHANNEL";
  1373.     case 126:
  1374.       return "SIM_TRANSMIT_CHANNEL";
  1375.     case 127:
  1376.       return "SIM_GET_ATR";
  1377.     case 29:
  1378.       return "SEND_USSD";
  1379.     case 30:
  1380.       return "CANCEL_USSD";
  1381.     case 31:
  1382.       return "GET_CLIR";
  1383.     case 32:
  1384.       return "SET_CLIR";
  1385.     case 33:
  1386.       return "QUERY_CALL_FORWARD_STATUS";
  1387.     case 34:
  1388.       return "SET_CALL_FORWARD";
  1389.     case 35:
  1390.       return "QUERY_CALL_WAITING";
  1391.     case 36:
  1392.       return "SET_CALL_WAITING";
  1393.     case 37:
  1394.       return "SMS_ACKNOWLEDGE";
  1395.     case 38:
  1396.       return "GET_IMEI";
  1397.     case 39:
  1398.       return "GET_IMEISV";
  1399.     case 40:
  1400.       return "ANSWER";
  1401.     case 41:
  1402.       return "DEACTIVATE_DATA_CALL";
  1403.     case 42:
  1404.       return "QUERY_FACILITY_LOCK";
  1405.     case 43:
  1406.       return "SET_FACILITY_LOCK";
  1407.     case 44:
  1408.       return "CHANGE_BARRING_PASSWORD";
  1409.     case 45:
  1410.       return "QUERY_NETWORK_SELECTION_MODE";
  1411.     case 46:
  1412.       return "SET_NETWORK_SELECTION_AUTOMATIC";
  1413.     case 47:
  1414.       return "SET_NETWORK_SELECTION_MANUAL";
  1415.     case 48:
  1416.       return "QUERY_AVAILABLE_NETWORKS ";
  1417.     case 49:
  1418.       return "DTMF_START";
  1419.     case 50:
  1420.       return "DTMF_STOP";
  1421.     case 51:
  1422.       return "BASEBAND_VERSION";
  1423.     case 52:
  1424.       return "SEPARATE_CONNECTION";
  1425.     case 53:
  1426.       return "SET_MUTE";
  1427.     case 54:
  1428.       return "GET_MUTE";
  1429.     case 55:
  1430.       return "QUERY_CLIP";
  1431.     case 56:
  1432.       return "LAST_DATA_CALL_FAIL_CAUSE";
  1433.     case 57:
  1434.       return "DATA_CALL_LIST";
  1435.     case 58:
  1436.       return "RESET_RADIO";
  1437.     case 59:
  1438.       return "OEM_HOOK_RAW";
  1439.     case 60:
  1440.       return "OEM_HOOK_STRINGS";
  1441.     case 61:
  1442.       return "SCREEN_STATE";
  1443.     case 62:
  1444.       return "SET_SUPP_SVC_NOTIFICATION";
  1445.     case 63:
  1446.       return "WRITE_SMS_TO_SIM";
  1447.     case 64:
  1448.       return "DELETE_SMS_ON_SIM";
  1449.     case 65:
  1450.       return "SET_BAND_MODE";
  1451.     case 66:
  1452.       return "QUERY_AVAILABLE_BAND_MODE";
  1453.     case 67:
  1454.       return "REQUEST_STK_GET_PROFILE";
  1455.     case 68:
  1456.       return "REQUEST_STK_SET_PROFILE";
  1457.     case 69:
  1458.       return "REQUEST_STK_SEND_ENVELOPE_COMMAND";
  1459.     case 70:
  1460.       return "REQUEST_STK_SEND_TERMINAL_RESPONSE";
  1461.     case 71:
  1462.       return "REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM";
  1463.     case 72:
  1464.       return "REQUEST_EXPLICIT_CALL_TRANSFER";
  1465.     case 73:
  1466.       return "REQUEST_SET_PREFERRED_NETWORK_TYPE";
  1467.     case 74:
  1468.       return "REQUEST_GET_PREFERRED_NETWORK_TYPE";
  1469.     case 75:
  1470.       return "REQUEST_GET_NEIGHBORING_CELL_IDS";
  1471.     case 76:
  1472.       return "REQUEST_SET_LOCATION_UPDATES";
  1473.     case 77:
  1474.       return "RIL_REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE";
  1475.     case 78:
  1476.       return "RIL_REQUEST_CDMA_SET_ROAMING_PREFERENCE";
  1477.     case 79:
  1478.       return "RIL_REQUEST_CDMA_QUERY_ROAMING_PREFERENCE";
  1479.     case 80:
  1480.       return "RIL_REQUEST_SET_TTY_MODE";
  1481.     case 81:
  1482.       return "RIL_REQUEST_QUERY_TTY_MODE";
  1483.     case 82:
  1484.       return "RIL_REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE";
  1485.     case 83:
  1486.       return "RIL_REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE";
  1487.     case 84:
  1488.       return "RIL_REQUEST_CDMA_FLASH";
  1489.     case 85:
  1490.       return "RIL_REQUEST_CDMA_BURST_DTMF";
  1491.     case 87:
  1492.       return "RIL_REQUEST_CDMA_SEND_SMS";
  1493.     case 88:
  1494.       return "RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE";
  1495.     case 89:
  1496.       return "RIL_REQUEST_GSM_GET_BROADCAST_CONFIG";
  1497.     case 90:
  1498.       return "RIL_REQUEST_GSM_SET_BROADCAST_CONFIG";
  1499.     case 92:
  1500.       return "RIL_REQUEST_CDMA_GET_BROADCAST_CONFIG";
  1501.     case 93:
  1502.       return "RIL_REQUEST_CDMA_SET_BROADCAST_CONFIG";
  1503.     case 91:
  1504.       return "RIL_REQUEST_GSM_BROADCAST_ACTIVATION";
  1505.     case 86:
  1506.       return "RIL_REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY";
  1507.     case 94:
  1508.       return "RIL_REQUEST_CDMA_BROADCAST_ACTIVATION";
  1509.     case 95:
  1510.       return "RIL_REQUEST_CDMA_SUBSCRIPTION";
  1511.     case 96:
  1512.       return "RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM";
  1513.     case 97:
  1514.       return "RIL_REQUEST_CDMA_DELETE_SMS_ON_RUIM";
  1515.     case 98:
  1516.       return "RIL_REQUEST_DEVICE_IDENTITY";
  1517.     case 100:
  1518.       return "RIL_REQUEST_GET_SMSC_ADDRESS";
  1519.     case 101:
  1520.       return "RIL_REQUEST_SET_SMSC_ADDRESS";
  1521.     case 99:
  1522.       return "REQUEST_EXIT_EMERGENCY_CALLBACK_MODE";
  1523.     case 102:
  1524.       return "RIL_REQUEST_REPORT_SMS_MEMORY_STATUS";
  1525.     case 103:
  1526.       return "RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING";
  1527.     case 104:
  1528.       return "RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE";
  1529.     case 111:
  1530.       return "RIL_REQUEST_GET_DATA_CALL_PROFILE";
  1531.     case 105:
  1532.       return "RIL_REQUEST_ISIM_AUTHENTICATION";
  1533.     case 106:
  1534.       return "RIL_REQUEST_ACKNOWLEDGE_INCOMING_GSM_SMS_WITH_PDU";
  1535.     case 107:
  1536.       return "RIL_REQUEST_STK_SEND_ENVELOPE_WITH_STATUS";
  1537.     case 108:
  1538.       return "RIL_REQUEST_VOICE_RADIO_TECH";
  1539.     case 109:
  1540.       return "RIL_REQUEST_IMS_REGISTRATION_STATE";
  1541.     case 110:
  1542.       return "RIL_REQUEST_IMS_SEND_SMS";
  1543.     case 118:
  1544.       return "RIL_REQUEST_SET_UICC_SUBSCRIPTION";
  1545.     case 119:
  1546.       return "RIL_REQUEST_SET_DATA_SUBSCRIPTION";
  1547.     case 120:
  1548.       return "RIL_REQUEST_GET_UICC_SUBSCRIPTION";
  1549.     case 121:
  1550.       return "RIL_REQUEST_GET_DATA_SUBSCRIPTION";
  1551.     }
  1552.     return "RIL_REQUEST_SET_SUBSCRIPTION_MODE";
  1553.   }
  1554.  
  1555.   private Object responseCallForward(Parcel paramParcel)
  1556.   {
  1557.     int i = paramParcel.readInt();
  1558.     CallForwardInfo[] arrayOfCallForwardInfo = new CallForwardInfo[i];
  1559.     for (int j = 0; j < i; j++)
  1560.     {
  1561.       arrayOfCallForwardInfo[j] = new CallForwardInfo();
  1562.       status = paramParcel.readInt();
  1563.       reason = paramParcel.readInt();
  1564.       serviceClass = paramParcel.readInt();
  1565.       toa = paramParcel.readInt();
  1566.       number = paramParcel.readString();
  1567.       timeSeconds = paramParcel.readInt();
  1568.     }
  1569.     return arrayOfCallForwardInfo;
  1570.   }
  1571.  
  1572.   private Object responseCallList(Parcel paramParcel)
  1573.   {
  1574.     int i = paramParcel.readInt();
  1575.     ArrayList localArrayList = new ArrayList(i);
  1576.     int j = 0;
  1577.     if (j < i)
  1578.     {
  1579.       DriverCall localDriverCall = new DriverCall();
  1580.       state = DriverCall.stateFromCLCC(paramParcel.readInt());
  1581.       index = paramParcel.readInt();
  1582.       TOA = paramParcel.readInt();
  1583.       boolean bool1;
  1584.       label72:
  1585.       boolean bool2;
  1586.       label89:
  1587.       boolean bool3;
  1588.       label115:
  1589.       boolean bool4;
  1590.       if (paramParcel.readInt() != 0)
  1591.       {
  1592.         bool1 = true;
  1593.         isMpty = bool1;
  1594.         if (paramParcel.readInt() == 0) {
  1595.           break label492;
  1596.         }
  1597.         bool2 = true;
  1598.         isMT = bool2;
  1599.         als = paramParcel.readInt();
  1600.         if (paramParcel.readInt() != 0) {
  1601.           break label498;
  1602.         }
  1603.         bool3 = false;
  1604.         isVoice = bool3;
  1605.         if (paramParcel.readInt() == 0) {
  1606.           break label504;
  1607.         }
  1608.         bool4 = true;
  1609.         label132:
  1610.         isVoicePrivacy = bool4;
  1611.         number = paramParcel.readString();
  1612.         numberPresentation = DriverCall.presentationFromCLIP(paramParcel.readInt());
  1613.         if ((isHwClipOverrideEnabled) && (Connection.PRESENTATION_ALLOWED != numberPresentation))
  1614.         {
  1615.           riljLog("CLIP override feature set, change Presentation Indicator from " + numberPresentation + " to PRESENTATION_ALLOWED");
  1616.           numberPresentation = Connection.PRESENTATION_ALLOWED;
  1617.         }
  1618.         name = paramParcel.readString();
  1619.         namePresentation = paramParcel.readInt();
  1620.         if (paramParcel.readInt() != 1) {
  1621.           break label510;
  1622.         }
  1623.         uusInfo = new UUSInfo();
  1624.         uusInfo.setType(paramParcel.readInt());
  1625.         uusInfo.setDcs(paramParcel.readInt());
  1626.         byte[] arrayOfByte = paramParcel.createByteArray();
  1627.         uusInfo.setUserData(arrayOfByte);
  1628.         Object[] arrayOfObject = new Object[3];
  1629.         arrayOfObject[0] = Integer.valueOf(uusInfo.getType());
  1630.         arrayOfObject[1] = Integer.valueOf(uusInfo.getDcs());
  1631.         arrayOfObject[2] = Integer.valueOf(uusInfo.getUserData().length);
  1632.         riljLogv(String.format("Incoming UUS : type=%d, dcs=%d, length=%d", arrayOfObject));
  1633.         riljLogv("Incoming UUS : data (string)=" + new String(uusInfo.getUserData()));
  1634.         riljLogv("Incoming UUS : data (hex): " + IccUtils.bytesToHexString(uusInfo.getUserData()));
  1635.         label433:
  1636.         number = PhoneNumberUtils.stringFromStringAndTOA(number, TOA);
  1637.         localArrayList.add(localDriverCall);
  1638.         if (!isVoicePrivacy) {
  1639.           break label520;
  1640.         }
  1641.         mVoicePrivacyOnRegistrants.notifyRegistrants();
  1642.         riljLog("InCall VoicePrivacy is enabled");
  1643.       }
  1644.       for (;;)
  1645.       {
  1646.         j++;
  1647.         break;
  1648.         bool1 = false;
  1649.         break label72;
  1650.         label492:
  1651.         bool2 = false;
  1652.         break label89;
  1653.         label498:
  1654.         bool3 = true;
  1655.         break label115;
  1656.         label504:
  1657.         bool4 = false;
  1658.         break label132;
  1659.         label510:
  1660.         riljLogv("Incoming UUS : NOT present!");
  1661.         break label433;
  1662.         label520:
  1663.         mVoicePrivacyOffRegistrants.notifyRegistrants();
  1664.         riljLog("InCall VoicePrivacy is disabled");
  1665.       }
  1666.     }
  1667.     Collections.sort(localArrayList);
  1668.     if ((i == 0) && (mTestingEmergencyCall.getAndSet(false)) && (mEmergencyCallbackModeRegistrant != null))
  1669.     {
  1670.       riljLog("responseCallList: call ended, testing emergency call, notify ECM Registrants");
  1671.       mEmergencyCallbackModeRegistrant.notifyRegistrant();
  1672.     }
  1673.     return localArrayList;
  1674.   }
  1675.  
  1676.   private Object responseCallRing(Parcel paramParcel)
  1677.   {
  1678.     char[] arrayOfChar = new char[4];
  1679.     arrayOfChar[0] = ((char)paramParcel.readInt());
  1680.     arrayOfChar[1] = ((char)paramParcel.readInt());
  1681.     arrayOfChar[2] = ((char)paramParcel.readInt());
  1682.     arrayOfChar[3] = ((char)paramParcel.readInt());
  1683.     return arrayOfChar;
  1684.   }
  1685.  
  1686.   private Object responseCdmaBroadcastConfig(Parcel paramParcel)
  1687.   {
  1688.     int i = paramParcel.readInt();
  1689.     if (i == 0)
  1690.     {
  1691.       arrayOfInt = new int[94];
  1692.       arrayOfInt[0] = 31;
  1693.       for (int m = 1; m < 94; m += 3)
  1694.       {
  1695.         arrayOfInt[(m + 0)] = (m / 3);
  1696.         arrayOfInt[(m + 1)] = 1;
  1697.         arrayOfInt[(m + 2)] = 0;
  1698.       }
  1699.     }
  1700.     int j = 1 + i * 3;
  1701.     int[] arrayOfInt = new int[j];
  1702.     arrayOfInt[0] = i;
  1703.     for (int k = 1; k < j; k++)
  1704.       arrayOfInt[k] = paramParcel.readInt();
  1705.     return arrayOfInt;
  1706.   }
  1707.  
  1708.   private Object responseCdmaCallWaiting(Parcel paramParcel)
  1709.   {
  1710.     CdmaCallWaitingNotification localCdmaCallWaitingNotification = new CdmaCallWaitingNotification();
  1711.     number = paramParcel.readString();
  1712.     numberPresentation = CdmaCallWaitingNotification.presentationFromCLIP(paramParcel.readInt());
  1713.     name = paramParcel.readString();
  1714.     namePresentation = numberPresentation;
  1715.     isPresent = paramParcel.readInt();
  1716.     signalType = paramParcel.readInt();
  1717.     alertPitch = paramParcel.readInt();
  1718.     signal = paramParcel.readInt();
  1719.     numberType = paramParcel.readInt();
  1720.     numberPlan = paramParcel.readInt();
  1721.     return localCdmaCallWaitingNotification;
  1722.   }
  1723.  
  1724.   private ArrayList<CdmaInformationRecords> responseCdmaInformationRecord(Parcel paramParcel)
  1725.   {
  1726.     int i = paramParcel.readInt();
  1727.     ArrayList localArrayList = new ArrayList(i);
  1728.     for (int j = 0; j < i; j++)
  1729.       localArrayList.add(new CdmaInformationRecords(paramParcel));
  1730.     return localArrayList;
  1731.   }
  1732.  
  1733.   private Object responseCdmaSms(Parcel paramParcel)
  1734.   {
  1735.     return SmsMessage.newFromParcel(paramParcel);
  1736.   }
  1737.  
  1738.   private Object responseCellList(Parcel paramParcel)
  1739.   {
  1740.     int i = paramParcel.readInt();
  1741.     ArrayList localArrayList = new ArrayList();
  1742.     String str = SystemProperties.get("gsm.network.type", "unknown");
  1743.     int j;
  1744.     if (str.equals("GPRS"))
  1745.       j = 1;
  1746.     while (j != 0)
  1747.     {
  1748.       for (int k = 0; k < i; k++)
  1749.         localArrayList.add(new NeighboringCellInfo(paramParcel.readInt(), paramParcel.readString(), j));
  1750.       if (str.equals("EDGE"))
  1751.         j = 2; else if (str.equals("UMTS"))
  1752.         j = 3; else if (str.equals("HSDPA"))
  1753.         j = 8; else if (str.equals("HSUPA"))
  1754.         j = 9; else if (str.equals("HSPA"))
  1755.         j = 10; else if (str.equals("HSPA+"))
  1756.         j = 15; else
  1757.         j = 0;
  1758.     }
  1759.     return localArrayList;
  1760.   }
  1761.  
  1762.   private Object responseDataCallList(Parcel paramParcel)
  1763.   {
  1764.     int i = paramParcel.readInt();
  1765.     int j = paramParcel.readInt();
  1766.     riljLog("responseDataCallList ver=" + i + " num=" + j);
  1767.     ArrayList localArrayList = new ArrayList(j);
  1768.     for (int k = 0; k < j; k++)
  1769.       localArrayList.add(getDataCallState(paramParcel, i));
  1770.     return localArrayList;
  1771.   }
  1772.  
  1773.   private ArrayList<DataProfile> responseGetDataCallProfile(Parcel paramParcel)
  1774.   {
  1775.     int i = paramParcel.readInt();
  1776.     riljLog("# data call profiles:" + i);
  1777.     ArrayList localArrayList = new ArrayList(i);
  1778.     for (int j = 0; j < i; j++)
  1779.     {
  1780.       DataProfileOmh localDataProfileOmh = new DataProfileOmh(paramParcel.readInt(), paramParcel.readInt());
  1781.       riljLog("responseGetDataCallProfile()" + localDataProfileOmh.getProfileId() + ":" + localDataProfileOmh.getPriority());
  1782.       localArrayList.add(localDataProfileOmh);
  1783.     }
  1784.     return localArrayList;
  1785.   }
  1786.  
  1787.   private Object responseGetPreferredNetworkType(Parcel paramParcel)
  1788.   {
  1789.     int[] arrayOfInt = (int[])responseInts(paramParcel);
  1790.     if (arrayOfInt.length >= 1)
  1791.       mPreferredNetworkType = arrayOfInt[0];
  1792.     return arrayOfInt;
  1793.   }
  1794.  
  1795.   private Object responseGmsBroadcastConfig(Parcel paramParcel)
  1796.   {
  1797.     int i = paramParcel.readInt();
  1798.     ArrayList localArrayList = new ArrayList(i);
  1799.     int j = 0;
  1800.     if (j < i)
  1801.     {
  1802.       int k = paramParcel.readInt();
  1803.       int m = paramParcel.readInt();
  1804.       int n = paramParcel.readInt();
  1805.       int i1 = paramParcel.readInt();
  1806.       if (paramParcel.readInt() == 1) {}
  1807.       for (boolean bool = true;; bool = false)
  1808.       {
  1809.         localArrayList.add(new SmsBroadcastConfigInfo(k, m, n, i1, bool));
  1810.         j++;
  1811.         break;
  1812.       }
  1813.     }
  1814.     return localArrayList;
  1815.   }
  1816.  
  1817.   private Object responseICC_IO(Parcel paramParcel)
  1818.   {
  1819.     return new IccIoResult(paramParcel.readInt(), paramParcel.readInt(), paramParcel.readString());
  1820.   }
  1821.  
  1822.   private Object responseIccCardStatus(Parcel paramParcel)
  1823.   {
  1824.     IccCardStatus localIccCardStatus = new IccCardStatus();
  1825.     localIccCardStatus.setCardState(paramParcel.readInt());
  1826.     localIccCardStatus.setUniversalPinState(paramParcel.readInt());
  1827.     mGsmUmtsSubscriptionAppIndex = paramParcel.readInt();
  1828.     mCdmaSubscriptionAppIndex = paramParcel.readInt();
  1829.     mImsSubscriptionAppIndex = paramParcel.readInt();
  1830.     int i = paramParcel.readInt();
  1831.     if (i > 8)
  1832.       i = 8;
  1833.     mApplications = new IccCardApplicationStatus[i];
  1834.     for (int j = 0; j < i; j++)
  1835.     {
  1836.       IccCardApplicationStatus localIccCardApplicationStatus = new IccCardApplicationStatus();
  1837.       app_type = IccCardApplicationStatus.AppTypeFromRILInt(paramParcel.readInt());
  1838.       app_state = IccCardApplicationStatus.AppStateFromRILInt(paramParcel.readInt());
  1839.       perso_substate = IccCardApplicationStatus.PersoSubstateFromRILInt(paramParcel.readInt());
  1840.       aid = paramParcel.readString();
  1841.       app_label = paramParcel.readString();
  1842.       pin1_replaced = paramParcel.readInt();
  1843.       pin1 = IccCardApplicationStatus.PinStateFromRILInt(paramParcel.readInt());
  1844.       pin2 = IccCardApplicationStatus.PinStateFromRILInt(paramParcel.readInt());
  1845.       mApplications[j] = localIccCardApplicationStatus;
  1846.     }
  1847.     return localIccCardStatus;
  1848.   }
  1849.  
  1850.   private Object responseInts(Parcel paramParcel)
  1851.   {
  1852.     int i = paramParcel.readInt();
  1853.     int[] arrayOfInt = new int[i];
  1854.     for (int j = 0; j < i; j++)
  1855.       arrayOfInt[j] = paramParcel.readInt();
  1856.     return arrayOfInt;
  1857.   }
  1858.  
  1859.   private Object responseOperatorInfos(Parcel paramParcel)
  1860.   {
  1861.     String[] arrayOfString = (String[])responseStrings(paramParcel);
  1862.     if (arrayOfString.length % 4 != 0)
  1863.       throw new RuntimeException("RIL_REQUEST_QUERY_AVAILABLE_NETWORKS: invalid response. Got " + arrayOfString.length + " strings, expected multible of 4");
  1864.     ArrayList localArrayList = new ArrayList(arrayOfString.length / 4);
  1865.     for (int i = 0; i < arrayOfString.length; i += 4)
  1866.       localArrayList.add(new OperatorInfo(arrayOfString[(i + 0)], arrayOfString[(i + 1)], arrayOfString[(i + 2)], arrayOfString[(i + 3)]));
  1867.     return localArrayList;
  1868.   }
  1869.  
  1870.   private Object responseRaw(Parcel paramParcel)
  1871.   {
  1872.     return paramParcel.createByteArray();
  1873.   }
  1874.  
  1875.   private Object responseSMS(Parcel paramParcel)
  1876.   {
  1877.     return new SmsResponse(paramParcel.readInt(), paramParcel.readString(), paramParcel.readInt());
  1878.   }
  1879.  
  1880.   private Object responseSSData(Parcel paramParcel)
  1881.   {
  1882.     SsData localSsData = new SsData();
  1883.     serviceType = localSsData.ServiceTypeFromRILInt(paramParcel.readInt());
  1884.     requestType = localSsData.RequestTypeFromRILInt(paramParcel.readInt());
  1885.     teleserviceType = localSsData.TeleserviceTypeFromRILInt(paramParcel.readInt());
  1886.     serviceClass = paramParcel.readInt();
  1887.     result = paramParcel.readInt();
  1888.     int i = paramParcel.readInt();
  1889.     int k;
  1890.     if ((serviceType.isTypeCF()) && (requestType.isTypeInterrogation()))
  1891.     {
  1892.       cfInfo = new CallForwardInfo[i];
  1893.       k = 0;
  1894.     }
  1895.     while (k < i)
  1896.     {
  1897.       cfInfo[k] = new CallForwardInfo();
  1898.       status = paramParcel.readInt();
  1899.       reason = paramParcel.readInt();
  1900.       serviceClass = paramParcel.readInt();
  1901.       toa = paramParcel.readInt();
  1902.       number = paramParcel.readString();
  1903.       timeSeconds = paramParcel.readInt();
  1904.       riljLog("[SS Data] CF Info " + k + " : " + cfInfo[k]);
  1905.       k++;
  1906.       continue;
  1907.       ssInfo = new int[i];
  1908.       for (int j = 0; j < i; j++)
  1909.       {
  1910.         ssInfo[j] = paramParcel.readInt();
  1911.         riljLog("[SS Data] SS Info " + j + " : " + ssInfo[j]);
  1912.       }
  1913.     }
  1914.     return localSsData;
  1915.   }
  1916.  
  1917.   private Object responseSetupDataCall(Parcel paramParcel)
  1918.   {
  1919.     int i = paramParcel.readInt();
  1920.     int j = paramParcel.readInt();
  1921.     if (i < 5)
  1922.     {
  1923.       DataCallState localDataCallState = new DataCallState();
  1924.       version = i;
  1925.       cid = Integer.parseInt(paramParcel.readString());
  1926.       ifname = paramParcel.readString();
  1927.       if (TextUtils.isEmpty(ifname))
  1928.         throw new RuntimeException("RIL_REQUEST_SETUP_DATA_CALL response, no ifname");
  1929.       String str1 = paramParcel.readString();
  1930.       if (!TextUtils.isEmpty(str1))
  1931.         addresses = str1.split(" ");
  1932.       if (j >= 4)
  1933.       {
  1934.         String str3 = paramParcel.readString();
  1935.         riljLog("responseSetupDataCall got dnses=" + str3);
  1936.         if (!TextUtils.isEmpty(str3))
  1937.           dnses = str3.split(" ");
  1938.       }
  1939.       if (j >= 5)
  1940.       {
  1941.         String str2 = paramParcel.readString();
  1942.         riljLog("responseSetupDataCall got gateways=" + str2);
  1943.         if (!TextUtils.isEmpty(str2))
  1944.           gateways = str2.split(" ");
  1945.       }
  1946.       return localDataCallState;
  1947.     }
  1948.     if (j != 1)
  1949.       throw new RuntimeException("RIL_REQUEST_SETUP_DATA_CALL response expecting 1 RIL_Data_Call_response_v5 got " + j);
  1950.     return getDataCallState(paramParcel, i);
  1951.   }
  1952.  
  1953.   private Object responseSignalStrength(Parcel paramParcel)
  1954.   {
  1955.     return new SignalStrength(paramParcel);
  1956.   }
  1957.  
  1958.   private Object responseSimRefresh(Parcel paramParcel)
  1959.   {
  1960.     IccRefreshResponse localIccRefreshResponse = new IccRefreshResponse();
  1961.     refreshResult = paramParcel.readInt();
  1962.     efId = paramParcel.readInt();
  1963.     aid = paramParcel.readString();
  1964.     return localIccRefreshResponse;
  1965.   }
  1966.  
  1967.   private Object responseString(Parcel paramParcel)
  1968.   {
  1969.     return paramParcel.readString();
  1970.   }
  1971.  
  1972.   private Object responseStrings(Parcel paramParcel)
  1973.   {
  1974.     return paramParcel.readStringArray();
  1975.   }
  1976.  
  1977.   private Object responseSuppServiceNotification(Parcel paramParcel)
  1978.   {
  1979.     SuppServiceNotification localSuppServiceNotification = new SuppServiceNotification();
  1980.     notificationType = paramParcel.readInt();
  1981.     code = paramParcel.readInt();
  1982.     index = paramParcel.readInt();
  1983.     type = paramParcel.readInt();
  1984.     number = paramParcel.readString();
  1985.     return localSuppServiceNotification;
  1986.   }
  1987.  
  1988.   static String responseToString(int paramInt)
  1989.   {
  1990.     switch (paramInt)
  1991.     {
  1992.     default:
  1993.       return "<unknown response>";
  1994.     case 1000:
  1995.       return "UNSOL_RESPONSE_RADIO_STATE_CHANGED";
  1996.     case 1001:
  1997.       return "UNSOL_RESPONSE_CALL_STATE_CHANGED";
  1998.     case 1002:
  1999.       return "UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED";
  2000.     case 1003:
  2001.       return "UNSOL_RESPONSE_NEW_SMS";
  2002.     case 1004:
  2003.       return "UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT";
  2004.     case 1005:
  2005.       return "UNSOL_RESPONSE_NEW_SMS_ON_SIM";
  2006.     case 1006:
  2007.       return "UNSOL_ON_USSD";
  2008.     case 1007:
  2009.       return "UNSOL_ON_USSD_REQUEST";
  2010.     case 1008:
  2011.       return "UNSOL_NITZ_TIME_RECEIVED";
  2012.     case 1009:
  2013.       return "UNSOL_SIGNAL_STRENGTH";
  2014.     case 1010:
  2015.       return "UNSOL_DATA_CALL_LIST_CHANGED";
  2016.     case 1011:
  2017.       return "UNSOL_SUPP_SVC_NOTIFICATION";
  2018.     case 1012:
  2019.       return "UNSOL_STK_SESSION_END";
  2020.     case 1013:
  2021.       return "UNSOL_STK_PROACTIVE_COMMAND";
  2022.     case 1014:
  2023.       return "UNSOL_STK_EVENT_NOTIFY";
  2024.     case 1015:
  2025.       return "UNSOL_STK_CALL_SETUP";
  2026.     case 1016:
  2027.       return "UNSOL_SIM_SMS_STORAGE_FULL";
  2028.     case 1017:
  2029.       return "UNSOL_SIM_REFRESH";
  2030.     case 1018:
  2031.       return "UNSOL_CALL_RING";
  2032.     case 1019:
  2033.       return "UNSOL_RESPONSE_SIM_STATUS_CHANGED";
  2034.     case 1020:
  2035.       return "UNSOL_RESPONSE_CDMA_NEW_SMS";
  2036.     case 1021:
  2037.       return "UNSOL_RESPONSE_NEW_BROADCAST_SMS";
  2038.     case 1022:
  2039.       return "UNSOL_CDMA_RUIM_SMS_STORAGE_FULL";
  2040.     case 1023:
  2041.       return "UNSOL_RESTRICTED_STATE_CHANGED";
  2042.     case 1024:
  2043.       return "UNSOL_ENTER_EMERGENCY_CALLBACK_MODE";
  2044.     case 1025:
  2045.       return "UNSOL_CDMA_CALL_WAITING";
  2046.     case 1026:
  2047.       return "UNSOL_CDMA_OTA_PROVISION_STATUS";
  2048.     case 1027:
  2049.       return "UNSOL_CDMA_INFO_REC";
  2050.     case 1028:
  2051.       return "UNSOL_OEM_HOOK_RAW";
  2052.     case 1029:
  2053.       return "UNSOL_RINGBACK_TONE";
  2054.     case 1030:
  2055.       return "UNSOL_RESEND_INCALL_MUTE";
  2056.     case 1031:
  2057.       return "CDMA_SUBSCRIPTION_SOURCE_CHANGED";
  2058.     case 1032:
  2059.       return "UNSOL_CDMA_PRL_CHANGED";
  2060.     case 1033:
  2061.       return "UNSOL_EXIT_EMERGENCY_CALLBACK_MODE";
  2062.     case 1034:
  2063.       return "UNSOL_RIL_CONNECTED";
  2064.     case 1035:
  2065.       return "UNSOL_VOICE_RADIO_TECH_CHANGED";
  2066.     case 1036:
  2067.       return "UNSOL_RESPONSE_IMS_NETWORK_STATE_CHANGED";
  2068.     case 1037:
  2069.       return "RIL_UNSOL_TETHERED_MODE_STATE_CHANGED";
  2070.     case 1038:
  2071.       return "RIL_UNSOL_QOS_STATE_CHANGED";
  2072.     case 1041:
  2073.       return "RIL_UNSOL_UICC_SUBSCRIPTION_STATUS_CHANGED";
  2074.     case 1039:
  2075.       return "UNSOL_ON_SS";
  2076.     }
  2077.     return "UNSOL_STK_CC_ALPHA_NOTIFY";
  2078.   }
  2079.  
  2080.   private Object responseUiccSubscription(Parcel paramParcel)
  2081.   {
  2082.     return null;
  2083.   }
  2084.  
  2085.   private Object responseVoid(Parcel paramParcel)
  2086.   {
  2087.     return null;
  2088.   }
  2089.  
  2090.   private String retToString(int paramInt, Object paramObject)
  2091.   {
  2092.     if (paramObject == null)
  2093.       return "";
  2094.     int[] arrayOfInt;
  2095.     int m;
  2096.     StringBuilder localStringBuilder5;
  2097.     int n;
  2098.     switch (paramInt)
  2099.     {
  2100.     default:
  2101.       if (!(paramObject instanceof int[])) {
  2102.         break label156;
  2103.       }
  2104.       arrayOfInt = (int[])paramObject;
  2105.       m = arrayOfInt.length;
  2106.       localStringBuilder5 = new StringBuilder("{");
  2107.       if (m > 0)
  2108.       {
  2109.         n = 0 + 1;
  2110.         localStringBuilder5.append(arrayOfInt[0]);
  2111.       }
  2112.       break;
  2113.     case 11:
  2114.     case 38:
  2115.     case 39:
  2116.       while (n < m)
  2117.       {
  2118.         StringBuilder localStringBuilder6 = localStringBuilder5.append(", ");
  2119.         int i1 = n + 1;
  2120.         localStringBuilder6.append(arrayOfInt[n]);
  2121.         n = i1;
  2122.         continue;
  2123.         return "";
  2124.       }
  2125.     }
  2126.     localStringBuilder5.append("}");
  2127.     return localStringBuilder5.toString();
  2128.     label156:
  2129.     if ((paramObject instanceof String[]))
  2130.     {
  2131.       String[] arrayOfString = (String[])paramObject;
  2132.       int i = arrayOfString.length;
  2133.       StringBuilder localStringBuilder3 = new StringBuilder("{");
  2134.       if (i > 0)
  2135.       {
  2136.         int j = 0 + 1;
  2137.         localStringBuilder3.append(arrayOfString[0]);
  2138.         while (j < i)
  2139.         {
  2140.           StringBuilder localStringBuilder4 = localStringBuilder3.append(", ");
  2141.           int k = j + 1;
  2142.           localStringBuilder4.append(arrayOfString[j]);
  2143.           j = k;
  2144.         }
  2145.       }
  2146.       localStringBuilder3.append("}");
  2147.       return localStringBuilder3.toString();
  2148.     }
  2149.     if (paramInt == 9)
  2150.     {
  2151.       ArrayList localArrayList2 = (ArrayList)paramObject;
  2152.       StringBuilder localStringBuilder2 = new StringBuilder(" ");
  2153.       Iterator localIterator2 = localArrayList2.iterator();
  2154.       while (localIterator2.hasNext())
  2155.       {
  2156.         DriverCall localDriverCall = (DriverCall)localIterator2.next();
  2157.         localStringBuilder2.append("[").append(localDriverCall).append("] ");
  2158.       }
  2159.       return localStringBuilder2.toString();
  2160.     }
  2161.     if (paramInt == 75)
  2162.     {
  2163.       ArrayList localArrayList1 = (ArrayList)paramObject;
  2164.       StringBuilder localStringBuilder1 = new StringBuilder(" ");
  2165.       Iterator localIterator1 = localArrayList1.iterator();
  2166.       while (localIterator1.hasNext())
  2167.         localStringBuilder1.append((NeighboringCellInfo)localIterator1.next()).append(" ");
  2168.       return localStringBuilder1.toString();
  2169.     }
  2170.     return paramObject.toString();
  2171.   }
  2172.  
  2173.   private void riljLog(String paramString)
  2174.   {
  2175.     StringBuilder localStringBuilder = new StringBuilder().append(paramString);
  2176.     if (mInstanceId != null) {}
  2177.     for (String str = " [SUB" + mInstanceId + "]";; str = "")
  2178.     {
  2179.       Log.d("RILJ", str);
  2180.       return;
  2181.     }
  2182.   }
  2183.  
  2184.   private void riljLogv(String paramString)
  2185.   {
  2186.     StringBuilder localStringBuilder = new StringBuilder().append(paramString);
  2187.     if (mInstanceId != null) {}
  2188.     for (String str = " [SUB" + mInstanceId + "]";; str = "")
  2189.     {
  2190.       Log.v("RILJ", str);
  2191.       return;
  2192.     }
  2193.   }
  2194.  
  2195.   private void send(RILRequest paramRILRequest)
  2196.   {
  2197.     if (mSocket == null)
  2198.     {
  2199.       paramRILRequest.onError(1, null);
  2200.       paramRILRequest.release();
  2201.       return;
  2202.     }
  2203.     Message localMessage = mSender.obtainMessage(1, paramRILRequest);
  2204.     acquireWakeLock();
  2205.     localMessage.sendToTarget();
  2206.   }
  2207.  
  2208.   private void sendScreenState(boolean paramBoolean)
  2209.   {
  2210.     int i = 1;
  2211.     RILRequest localRILRequest = RILRequest.obtain(61, null);
  2212.     mp.writeInt(i);
  2213.     Parcel localParcel = mp;
  2214.     if (paramBoolean) {}
  2215.     for (;;)
  2216.     {
  2217.       localParcel.writeInt(i);
  2218.       riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + ": " + paramBoolean);
  2219.       send(localRILRequest);
  2220.       return;
  2221.       i = 0;
  2222.     }
  2223.   }
  2224.  
  2225.   private void switchToRadioState(CommandsInterface.RadioState paramRadioState)
  2226.   {
  2227.     setRadioState(paramRadioState);
  2228.   }
  2229.  
  2230.   private int translateStatus(int paramInt)
  2231.   {
  2232.     switch (paramInt & 0x7)
  2233.     {
  2234.     case 1:
  2235.     case 2:
  2236.     case 4:
  2237.     case 6:
  2238.     default:
  2239.       return 1;
  2240.     case 3:
  2241.       return 0;
  2242.     case 5:
  2243.       return 3;
  2244.     }
  2245.     return 2;
  2246.   }
  2247.  
  2248.   private void unsljLog(int paramInt)
  2249.   {
  2250.     riljLog("[UNSL]< " + responseToString(paramInt));
  2251.   }
  2252.  
  2253.   private void unsljLogMore(int paramInt, String paramString)
  2254.   {
  2255.     riljLog("[UNSL]< " + responseToString(paramInt) + " " + paramString);
  2256.   }
  2257.  
  2258.   private void unsljLogRet(int paramInt, Object paramObject)
  2259.   {
  2260.     riljLog("[UNSL]< " + responseToString(paramInt) + " " + retToString(paramInt, paramObject));
  2261.   }
  2262.  
  2263.   private void unsljLogvRet(int paramInt, Object paramObject)
  2264.   {
  2265.     riljLogv("[UNSL]< " + responseToString(paramInt) + " " + retToString(paramInt, paramObject));
  2266.   }
  2267.  
  2268.   public void acceptCall(Message paramMessage)
  2269.   {
  2270.     RILRequest localRILRequest = RILRequest.obtain(40, paramMessage);
  2271.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2272.     send(localRILRequest);
  2273.   }
  2274.  
  2275.   public void acknowledgeIncomingGsmSmsWithPdu(boolean paramBoolean, String paramString, Message paramMessage)
  2276.   {
  2277.     RILRequest localRILRequest = RILRequest.obtain(106, paramMessage);
  2278.     mp.writeInt(2);
  2279.     Parcel localParcel = mp;
  2280.     if (paramBoolean) {}
  2281.     for (String str = "1";; str = "0")
  2282.     {
  2283.       localParcel.writeString(str);
  2284.       mp.writeString(paramString);
  2285.       riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + ' ' + paramBoolean + " [" + paramString + ']');
  2286.       send(localRILRequest);
  2287.       return;
  2288.     }
  2289.   }
  2290.  
  2291.   public void acknowledgeLastIncomingCdmaSms(boolean paramBoolean, int paramInt, Message paramMessage)
  2292.   {
  2293.     RILRequest localRILRequest = RILRequest.obtain(88, paramMessage);
  2294.     Parcel localParcel = mp;
  2295.     if (paramBoolean) {}
  2296.     for (int i = 0;; i = 1)
  2297.     {
  2298.       localParcel.writeInt(i);
  2299.       mp.writeInt(paramInt);
  2300.       riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " " + paramBoolean + " " + paramInt);
  2301.       send(localRILRequest);
  2302.       return;
  2303.     }
  2304.   }
  2305.  
  2306.   public void acknowledgeLastIncomingGsmSms(boolean paramBoolean, int paramInt, Message paramMessage)
  2307.   {
  2308.     RILRequest localRILRequest = RILRequest.obtain(37, paramMessage);
  2309.     mp.writeInt(2);
  2310.     Parcel localParcel = mp;
  2311.     if (paramBoolean) {}
  2312.     for (int i = 1;; i = 0)
  2313.     {
  2314.       localParcel.writeInt(i);
  2315.       mp.writeInt(paramInt);
  2316.       riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " " + paramBoolean + " " + paramInt);
  2317.       send(localRILRequest);
  2318.       return;
  2319.     }
  2320.   }
  2321.  
  2322.   public void cancelPendingUssd(Message paramMessage)
  2323.   {
  2324.     RILRequest localRILRequest = RILRequest.obtain(30, paramMessage);
  2325.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2326.     send(localRILRequest);
  2327.   }
  2328.  
  2329.   public void changeBarringPassword(String paramString1, String paramString2, String paramString3, Message paramMessage)
  2330.   {
  2331.     RILRequest localRILRequest = RILRequest.obtain(44, paramMessage);
  2332.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2333.     mp.writeInt(3);
  2334.     mp.writeString(paramString1);
  2335.     mp.writeString(paramString2);
  2336.     mp.writeString(paramString3);
  2337.     send(localRILRequest);
  2338.   }
  2339.  
  2340.   public void changeIccPin(String paramString1, String paramString2, Message paramMessage)
  2341.   {
  2342.     changeIccPinForApp(paramString1, paramString2, null, paramMessage);
  2343.   }
  2344.  
  2345.   public void changeIccPin2(String paramString1, String paramString2, Message paramMessage)
  2346.   {
  2347.     changeIccPin2ForApp(paramString1, paramString2, null, paramMessage);
  2348.   }
  2349.  
  2350.   public void changeIccPin2ForApp(String paramString1, String paramString2, String paramString3, Message paramMessage)
  2351.   {
  2352.     RILRequest localRILRequest = RILRequest.obtain(7, paramMessage);
  2353.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2354.     mp.writeInt(3);
  2355.     mp.writeString(paramString1);
  2356.     mp.writeString(paramString2);
  2357.     mp.writeString(paramString3);
  2358.     send(localRILRequest);
  2359.   }
  2360.  
  2361.   public void changeIccPinForApp(String paramString1, String paramString2, String paramString3, Message paramMessage)
  2362.   {
  2363.     RILRequest localRILRequest = RILRequest.obtain(6, paramMessage);
  2364.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2365.     mp.writeInt(3);
  2366.     mp.writeString(paramString1);
  2367.     mp.writeString(paramString2);
  2368.     mp.writeString(paramString3);
  2369.     send(localRILRequest);
  2370.   }
  2371.  
  2372.   public void conference(Message paramMessage)
  2373.   {
  2374.     RILRequest localRILRequest = RILRequest.obtain(16, paramMessage);
  2375.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2376.     send(localRILRequest);
  2377.   }
  2378.  
  2379.   public void deactivateDataCall(int paramInt1, int paramInt2, Message paramMessage)
  2380.   {
  2381.     RILRequest localRILRequest = RILRequest.obtain(41, paramMessage);
  2382.     mp.writeInt(2);
  2383.     mp.writeString(Integer.toString(paramInt1));
  2384.     mp.writeString(Integer.toString(paramInt2));
  2385.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " " + paramInt1 + " " + paramInt2);
  2386.     send(localRILRequest);
  2387.   }
  2388.  
  2389.   public void deleteSmsOnRuim(int paramInt, Message paramMessage)
  2390.   {
  2391.     RILRequest localRILRequest = RILRequest.obtain(97, paramMessage);
  2392.     mp.writeInt(1);
  2393.     mp.writeInt(paramInt);
  2394.     send(localRILRequest);
  2395.   }
  2396.  
  2397.   public void deleteSmsOnSim(int paramInt, Message paramMessage)
  2398.   {
  2399.     RILRequest localRILRequest = RILRequest.obtain(64, paramMessage);
  2400.     mp.writeInt(1);
  2401.     mp.writeInt(paramInt);
  2402.     send(localRILRequest);
  2403.   }
  2404.  
  2405.   public void dial(String paramString, int paramInt, Message paramMessage)
  2406.   {
  2407.     dial(paramString, paramInt, null, paramMessage);
  2408.   }
  2409.  
  2410.   public void dial(String paramString, int paramInt, UUSInfo paramUUSInfo, Message paramMessage)
  2411.   {
  2412.     RILRequest localRILRequest = RILRequest.obtain(10, paramMessage);
  2413.     mp.writeString(paramString);
  2414.     mp.writeInt(paramInt);
  2415.     mp.writeInt(0);
  2416.     if (paramUUSInfo == null)
  2417.       mp.writeInt(0);
  2418.     for (;;)
  2419.     {
  2420.       riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2421.       send(localRILRequest);
  2422.       return;
  2423.       mp.writeInt(1);
  2424.       mp.writeInt(paramUUSInfo.getType());
  2425.       mp.writeInt(paramUUSInfo.getDcs());
  2426.       mp.writeByteArray(paramUUSInfo.getUserData());
  2427.     }
  2428.   }
  2429.  
  2430.   public void dump(FileDescriptor paramFileDescriptor, PrintWriter paramPrintWriter, String[] paramArrayOfString)
  2431.   {
  2432.     paramPrintWriter.println("RIL:");
  2433.     paramPrintWriter.println(" mSocket=" + mSocket);
  2434.     paramPrintWriter.println(" mSenderThread=" + mSenderThread);
  2435.     paramPrintWriter.println(" mSender=" + mSender);
  2436.     paramPrintWriter.println(" mReceiverThread=" + mReceiverThread);
  2437.     paramPrintWriter.println(" mReceiver=" + mReceiver);
  2438.     paramPrintWriter.println(" mWakeLock=" + mWakeLock);
  2439.     paramPrintWriter.println(" mWakeLockTimeout=" + mWakeLockTimeout);
  2440.     synchronized (mRequestsList)
  2441.     {
  2442.       paramPrintWriter.println(" mRequestMessagesPending=" + mRequestMessagesPending);
  2443.       paramPrintWriter.println(" mRequestMessagesWaiting=" + mRequestMessagesWaiting);
  2444.       int i = mRequestsList.size();
  2445.       paramPrintWriter.println(" mRequestList count=" + i);
  2446.       for (int j = 0; j < i; j++)
  2447.       {
  2448.         RILRequest localRILRequest = (RILRequest)mRequestsList.get(j);
  2449.         paramPrintWriter.println("  [" + mSerial + "] " + requestToString(mRequest));
  2450.       }
  2451.       paramPrintWriter.println(" mLastNITZTimeInfo=" + mLastNITZTimeInfo);
  2452.       paramPrintWriter.println(" mTestingEmergencyCall=" + mTestingEmergencyCall.get());
  2453.       return;
  2454.     }
  2455.   }
  2456.  
  2457.   public void exitEmergencyCallbackMode(Message paramMessage)
  2458.   {
  2459.     RILRequest localRILRequest = RILRequest.obtain(99, paramMessage);
  2460.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2461.     send(localRILRequest);
  2462.   }
  2463.  
  2464.   public void explicitCallTransfer(Message paramMessage)
  2465.   {
  2466.     RILRequest localRILRequest = RILRequest.obtain(72, paramMessage);
  2467.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2468.     send(localRILRequest);
  2469.   }
  2470.  
  2471.   public void getAvailableNetworks(Message paramMessage)
  2472.   {
  2473.     RILRequest localRILRequest = RILRequest.obtain(48, paramMessage);
  2474.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2475.     send(localRILRequest);
  2476.   }
  2477.  
  2478.   public void getBasebandVersion(Message paramMessage)
  2479.   {
  2480.     RILRequest localRILRequest = RILRequest.obtain(51, paramMessage);
  2481.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2482.     send(localRILRequest);
  2483.   }
  2484.  
  2485.   public void getCDMASubscription(Message paramMessage)
  2486.   {
  2487.     RILRequest localRILRequest = RILRequest.obtain(95, paramMessage);
  2488.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2489.     send(localRILRequest);
  2490.   }
  2491.  
  2492.   public void getCLIR(Message paramMessage)
  2493.   {
  2494.     RILRequest localRILRequest = RILRequest.obtain(31, paramMessage);
  2495.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2496.     send(localRILRequest);
  2497.   }
  2498.  
  2499.   public void getCdmaBroadcastConfig(Message paramMessage)
  2500.   {
  2501.     send(RILRequest.obtain(92, paramMessage));
  2502.   }
  2503.  
  2504.   public void getCdmaSubscriptionSource(Message paramMessage)
  2505.   {
  2506.     RILRequest localRILRequest = RILRequest.obtain(104, paramMessage);
  2507.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2508.     send(localRILRequest);
  2509.   }
  2510.  
  2511.   public void getCurrentCalls(Message paramMessage)
  2512.   {
  2513.     RILRequest localRILRequest = RILRequest.obtain(9, paramMessage);
  2514.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2515.     send(localRILRequest);
  2516.   }
  2517.  
  2518.   public void getDataCallList(Message paramMessage)
  2519.   {
  2520.     RILRequest localRILRequest = RILRequest.obtain(57, paramMessage);
  2521.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2522.     send(localRILRequest);
  2523.   }
  2524.  
  2525.   public void getDataCallProfile(int paramInt, Message paramMessage)
  2526.   {
  2527.     RILRequest localRILRequest = RILRequest.obtain(111, paramMessage);
  2528.     mp.writeInt(1);
  2529.     mp.writeInt(paramInt);
  2530.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " : " + paramInt);
  2531.     send(localRILRequest);
  2532.   }
  2533.  
  2534.   public void getDataRegistrationState(Message paramMessage)
  2535.   {
  2536.     RILRequest localRILRequest = RILRequest.obtain(21, paramMessage);
  2537.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2538.     send(localRILRequest);
  2539.   }
  2540.  
  2541.   public void getDeviceIdentity(Message paramMessage)
  2542.   {
  2543.     RILRequest localRILRequest = RILRequest.obtain(98, paramMessage);
  2544.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2545.     send(localRILRequest);
  2546.   }
  2547.  
  2548.   public void getGsmBroadcastConfig(Message paramMessage)
  2549.   {
  2550.     RILRequest localRILRequest = RILRequest.obtain(89, paramMessage);
  2551.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2552.     send(localRILRequest);
  2553.   }
  2554.  
  2555.   public void getIMEI(Message paramMessage)
  2556.   {
  2557.     RILRequest localRILRequest = RILRequest.obtain(38, paramMessage);
  2558.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2559.     send(localRILRequest);
  2560.   }
  2561.  
  2562.   public void getIMEISV(Message paramMessage)
  2563.   {
  2564.     RILRequest localRILRequest = RILRequest.obtain(39, paramMessage);
  2565.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2566.     send(localRILRequest);
  2567.   }
  2568.  
  2569.   public void getIMSI(Message paramMessage)
  2570.   {
  2571.     getIMSIForApp(null, paramMessage);
  2572.   }
  2573.  
  2574.   public void getIMSIForApp(String paramString, Message paramMessage)
  2575.   {
  2576.     RILRequest localRILRequest = RILRequest.obtain(11, paramMessage);
  2577.     mp.writeInt(1);
  2578.     mp.writeString(paramString);
  2579.     riljLog(localRILRequest.serialString() + "> getIMSI: " + requestToString(mRequest) + " aid: " + paramString);
  2580.     send(localRILRequest);
  2581.   }
  2582.  
  2583.   public void getIccCardStatus(Message paramMessage)
  2584.   {
  2585.     RILRequest localRILRequest = RILRequest.obtain(1, paramMessage);
  2586.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2587.     send(localRILRequest);
  2588.   }
  2589.  
  2590.   public void getImsRegistrationState(Message paramMessage)
  2591.   {
  2592.     RILRequest localRILRequest = RILRequest.obtain(109, paramMessage);
  2593.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2594.     send(localRILRequest);
  2595.   }
  2596.  
  2597.   public void getLastCallFailCause(Message paramMessage)
  2598.   {
  2599.     RILRequest localRILRequest = RILRequest.obtain(18, paramMessage);
  2600.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2601.     send(localRILRequest);
  2602.   }
  2603.  
  2604.   public void getLastDataCallFailCause(Message paramMessage)
  2605.   {
  2606.     RILRequest localRILRequest = RILRequest.obtain(56, paramMessage);
  2607.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2608.     send(localRILRequest);
  2609.   }
  2610.  
  2611.   public void getLastPdpFailCause(Message paramMessage)
  2612.   {
  2613.     getLastDataCallFailCause(paramMessage);
  2614.   }
  2615.  
  2616.   public void getMute(Message paramMessage)
  2617.   {
  2618.     RILRequest localRILRequest = RILRequest.obtain(54, paramMessage);
  2619.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2620.     send(localRILRequest);
  2621.   }
  2622.  
  2623.   public void getNeighboringCids(Message paramMessage)
  2624.   {
  2625.     RILRequest localRILRequest = RILRequest.obtain(75, paramMessage);
  2626.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2627.     send(localRILRequest);
  2628.   }
  2629.  
  2630.   public void getNetworkSelectionMode(Message paramMessage)
  2631.   {
  2632.     RILRequest localRILRequest = RILRequest.obtain(45, paramMessage);
  2633.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2634.     send(localRILRequest);
  2635.   }
  2636.  
  2637.   public void getOperator(Message paramMessage)
  2638.   {
  2639.     RILRequest localRILRequest = RILRequest.obtain(22, paramMessage);
  2640.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2641.     send(localRILRequest);
  2642.   }
  2643.  
  2644.   @Deprecated
  2645.   public void getPDPContextList(Message paramMessage)
  2646.   {
  2647.     getDataCallList(paramMessage);
  2648.   }
  2649.  
  2650.   public void getPreferredNetworkType(Message paramMessage)
  2651.   {
  2652.     RILRequest localRILRequest = RILRequest.obtain(74, paramMessage);
  2653.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2654.     send(localRILRequest);
  2655.   }
  2656.  
  2657.   public void getPreferredVoicePrivacy(Message paramMessage)
  2658.   {
  2659.     send(RILRequest.obtain(83, paramMessage));
  2660.   }
  2661.  
  2662.   public void getQosStatus(int paramInt, Message paramMessage)
  2663.   {
  2664.     RILRequest localRILRequest = RILRequest.obtain(114, paramMessage);
  2665.     mp.writeInt(1);
  2666.     mp.writeString(Integer.toString(paramInt));
  2667.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " qosId:" + paramInt + " (0x" + Integer.toHexString(paramInt) + ")");
  2668.     send(localRILRequest);
  2669.   }
  2670.  
  2671.   public void getSignalStrength(Message paramMessage)
  2672.   {
  2673.     RILRequest localRILRequest = RILRequest.obtain(19, paramMessage);
  2674.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2675.     send(localRILRequest);
  2676.   }
  2677.  
  2678.   public void getSmscAddress(Message paramMessage)
  2679.   {
  2680.     RILRequest localRILRequest = RILRequest.obtain(100, paramMessage);
  2681.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2682.     send(localRILRequest);
  2683.   }
  2684.  
  2685.   public void getVoiceRadioTechnology(Message paramMessage)
  2686.   {
  2687.     RILRequest localRILRequest = RILRequest.obtain(108, paramMessage);
  2688.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2689.     send(localRILRequest);
  2690.   }
  2691.  
  2692.   public void getVoiceRegistrationState(Message paramMessage)
  2693.   {
  2694.     RILRequest localRILRequest = RILRequest.obtain(20, paramMessage);
  2695.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2696.     send(localRILRequest);
  2697.   }
  2698.  
  2699.   public void handleCallSetupRequestFromSim(boolean paramBoolean, Message paramMessage)
  2700.   {
  2701.     int i = 1;
  2702.     RILRequest localRILRequest = RILRequest.obtain(71, paramMessage);
  2703.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2704.     int[] arrayOfInt = new int[i];
  2705.     if (paramBoolean) {}
  2706.     for (;;)
  2707.     {
  2708.       arrayOfInt[0] = i;
  2709.       mp.writeIntArray(arrayOfInt);
  2710.       send(localRILRequest);
  2711.       return;
  2712.       i = 0;
  2713.     }
  2714.   }
  2715.  
  2716.   public void hangupConnection(int paramInt, Message paramMessage)
  2717.   {
  2718.     riljLog("hangupConnection: gsmIndex=" + paramInt);
  2719.     RILRequest localRILRequest = RILRequest.obtain(12, paramMessage);
  2720.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " " + paramInt);
  2721.     mp.writeInt(1);
  2722.     mp.writeInt(paramInt);
  2723.     send(localRILRequest);
  2724.   }
  2725.  
  2726.   public void hangupForegroundResumeBackground(Message paramMessage)
  2727.   {
  2728.     RILRequest localRILRequest = RILRequest.obtain(14, paramMessage);
  2729.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2730.     send(localRILRequest);
  2731.   }
  2732.  
  2733.   public void hangupWaitingOrBackground(Message paramMessage)
  2734.   {
  2735.     RILRequest localRILRequest = RILRequest.obtain(13, paramMessage);
  2736.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2737.     send(localRILRequest);
  2738.   }
  2739.  
  2740.   public void iccCloseChannel(int paramInt, Message paramMessage)
  2741.   {
  2742.     RILRequest localRILRequest = RILRequest.obtain(125, paramMessage);
  2743.     mp.writeInt(1);
  2744.     mp.writeInt(paramInt);
  2745.     riljLog(localRILRequest.serialString() + "> iccCloseChannel: " + requestToString(mRequest) + " " + paramInt);
  2746.     send(localRILRequest);
  2747.   }
  2748.  
  2749.   public void iccExchangeAPDU(int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5, int paramInt6, String paramString, Message paramMessage)
  2750.   {
  2751.     if (paramInt3 == 0) {}
  2752.     for (RILRequest localRILRequest = RILRequest.obtain(123, paramMessage);; localRILRequest = RILRequest.obtain(126, paramMessage))
  2753.     {
  2754.       mp.writeInt(paramInt1);
  2755.       mp.writeInt(paramInt2);
  2756.       mp.writeInt(paramInt3);
  2757.       mp.writeString(null);
  2758.       mp.writeInt(paramInt4);
  2759.       mp.writeInt(paramInt5);
  2760.       mp.writeInt(paramInt6);
  2761.       mp.writeString(paramString);
  2762.       mp.writeString(null);
  2763.       riljLog(localRILRequest.serialString() + "> iccExchangeAPDU: " + requestToString(mRequest) + " 0x" + Integer.toHexString(paramInt1) + " 0x" + Integer.toHexString(paramInt2) + " 0x" + Integer.toHexString(paramInt3) + " " + paramInt4 + "," + paramInt5 + "," + paramInt6);
  2764.       send(localRILRequest);
  2765.       return;
  2766.     }
  2767.   }
  2768.  
  2769.   public void iccGetATR(Message paramMessage)
  2770.   {
  2771.     RILRequest localRILRequest = RILRequest.obtain(127, paramMessage);
  2772.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2773.     send(localRILRequest);
  2774.   }
  2775.  
  2776.   public void iccIO(int paramInt1, int paramInt2, String paramString1, int paramInt3, int paramInt4, int paramInt5, String paramString2, String paramString3, Message paramMessage)
  2777.   {
  2778.     iccIOForApp(paramInt1, paramInt2, paramString1, paramInt3, paramInt4, paramInt5, paramString2, paramString3, null, paramMessage);
  2779.   }
  2780.  
  2781.   public void iccIOForApp(int paramInt1, int paramInt2, String paramString1, int paramInt3, int paramInt4, int paramInt5, String paramString2, String paramString3, String paramString4, Message paramMessage)
  2782.   {
  2783.     RILRequest localRILRequest = RILRequest.obtain(28, paramMessage);
  2784.     mp.writeInt(paramInt1);
  2785.     mp.writeInt(paramInt2);
  2786.     mp.writeString(paramString1);
  2787.     mp.writeInt(paramInt3);
  2788.     mp.writeInt(paramInt4);
  2789.     mp.writeInt(paramInt5);
  2790.     mp.writeString(paramString2);
  2791.     mp.writeString(paramString3);
  2792.     mp.writeString(paramString4);
  2793.     riljLog(localRILRequest.serialString() + "> iccIO: " + requestToString(mRequest) + " 0x" + Integer.toHexString(paramInt1) + " 0x" + Integer.toHexString(paramInt2) + " " + " path: " + paramString1 + "," + paramInt3 + "," + paramInt4 + "," + paramInt5 + " aid: " + paramString4);
  2794.     send(localRILRequest);
  2795.   }
  2796.  
  2797.   public void iccOpenChannel(String paramString, Message paramMessage)
  2798.   {
  2799.     RILRequest localRILRequest = RILRequest.obtain(124, paramMessage);
  2800.     mp.writeString(paramString);
  2801.     riljLog(localRILRequest.serialString() + "> iccOpenChannel: " + requestToString(mRequest) + " " + paramString);
  2802.     send(localRILRequest);
  2803.   }
  2804.  
  2805.   public void invokeOemRilRequestRaw(byte[] paramArrayOfByte, Message paramMessage)
  2806.   {
  2807.     RILRequest localRILRequest = RILRequest.obtain(59, paramMessage);
  2808.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + "[" + IccUtils.bytesToHexString(paramArrayOfByte) + "]");
  2809.     mp.writeByteArray(paramArrayOfByte);
  2810.     send(localRILRequest);
  2811.   }
  2812.  
  2813.   public void invokeOemRilRequestStrings(String[] paramArrayOfString, Message paramMessage)
  2814.   {
  2815.     RILRequest localRILRequest = RILRequest.obtain(60, paramMessage);
  2816.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2817.     mp.writeStringArray(paramArrayOfString);
  2818.     send(localRILRequest);
  2819.   }
  2820.  
  2821.   public void modifyQos(int paramInt, ArrayList<String> paramArrayList, Message paramMessage)
  2822.   {
  2823.     RILRequest localRILRequest = RILRequest.obtain(115, paramMessage);
  2824.     int i = paramArrayList.size();
  2825.     mp.writeInt(i + 1);
  2826.     mp.writeString(Integer.toString(paramInt));
  2827.     for (String str : (String[])paramArrayList.toArray(new String[0]))
  2828.       mp.writeString(str);
  2829.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " qosId:" + paramInt + " (0x" + Integer.toHexString(paramInt) + "), " + paramArrayList);
  2830.     send(localRILRequest);
  2831.   }
  2832.  
  2833.   protected void notifyCdmaFwdBurstDtmf(byte[] paramArrayOfByte)
  2834.   {
  2835.     AsyncResult localAsyncResult = new AsyncResult(null, paramArrayOfByte, null);
  2836.     mCdmaFwdBurstDtmfRegistrants.notifyRegistrants(localAsyncResult);
  2837.   }
  2838.  
  2839.   protected void notifyCdmaFwdContDtmfStart(byte[] paramArrayOfByte)
  2840.   {
  2841.     AsyncResult localAsyncResult = new AsyncResult(null, paramArrayOfByte, null);
  2842.     mCdmaFwdContDtmfStartRegistrants.notifyRegistrants(localAsyncResult);
  2843.   }
  2844.  
  2845.   protected void notifyCdmaFwdContDtmfStop()
  2846.   {
  2847.     AsyncResult localAsyncResult = new AsyncResult(null, null, null);
  2848.     mCdmaFwdContDtmfStopRegistrants.notifyRegistrants(localAsyncResult);
  2849.   }
  2850.  
  2851.   protected void onRadioAvailable()
  2852.   {
  2853.     sendScreenState(true);
  2854.   }
  2855.  
  2856.   public void queryAvailableBandMode(Message paramMessage)
  2857.   {
  2858.     RILRequest localRILRequest = RILRequest.obtain(66, paramMessage);
  2859.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2860.     send(localRILRequest);
  2861.   }
  2862.  
  2863.   public void queryCLIP(Message paramMessage)
  2864.   {
  2865.     RILRequest localRILRequest = RILRequest.obtain(55, paramMessage);
  2866.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2867.     send(localRILRequest);
  2868.   }
  2869.  
  2870.   public void queryCallForwardStatus(int paramInt1, int paramInt2, String paramString, Message paramMessage)
  2871.   {
  2872.     RILRequest localRILRequest = RILRequest.obtain(33, paramMessage);
  2873.     mp.writeInt(2);
  2874.     mp.writeInt(paramInt1);
  2875.     mp.writeInt(paramInt2);
  2876.     mp.writeInt(PhoneNumberUtils.toaFromString(paramString));
  2877.     mp.writeString(paramString);
  2878.     mp.writeInt(0);
  2879.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " " + paramInt1 + " " + paramInt2);
  2880.     send(localRILRequest);
  2881.   }
  2882.  
  2883.   public void queryCallWaiting(int paramInt, Message paramMessage)
  2884.   {
  2885.     RILRequest localRILRequest = RILRequest.obtain(35, paramMessage);
  2886.     mp.writeInt(1);
  2887.     mp.writeInt(paramInt);
  2888.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " " + paramInt);
  2889.     send(localRILRequest);
  2890.   }
  2891.  
  2892.   public void queryCdmaRoamingPreference(Message paramMessage)
  2893.   {
  2894.     RILRequest localRILRequest = RILRequest.obtain(79, paramMessage);
  2895.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2896.     send(localRILRequest);
  2897.   }
  2898.  
  2899.   public void queryFacilityLock(String paramString1, String paramString2, int paramInt, Message paramMessage)
  2900.   {
  2901.     queryFacilityLockForApp(paramString1, paramString2, paramInt, null, paramMessage);
  2902.   }
  2903.  
  2904.   public void queryFacilityLockForApp(String paramString1, String paramString2, int paramInt, String paramString3, Message paramMessage)
  2905.   {
  2906.     RILRequest localRILRequest = RILRequest.obtain(42, paramMessage);
  2907.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2908.     mp.writeInt(4);
  2909.     mp.writeString(paramString1);
  2910.     mp.writeString(paramString2);
  2911.     mp.writeString(Integer.toString(paramInt));
  2912.     mp.writeString(paramString3);
  2913.     send(localRILRequest);
  2914.   }
  2915.  
  2916.   public void queryTTYMode(Message paramMessage)
  2917.   {
  2918.     RILRequest localRILRequest = RILRequest.obtain(81, paramMessage);
  2919.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2920.     send(localRILRequest);
  2921.   }
  2922.  
  2923.   public void rejectCall(Message paramMessage)
  2924.   {
  2925.     RILRequest localRILRequest = RILRequest.obtain(17, paramMessage);
  2926.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2927.     send(localRILRequest);
  2928.   }
  2929.  
  2930.   public void releaseQos(int paramInt, Message paramMessage)
  2931.   {
  2932.     RILRequest localRILRequest = RILRequest.obtain(113, paramMessage);
  2933.     mp.writeInt(1);
  2934.     mp.writeString(Integer.toString(paramInt));
  2935.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " qosId:" + paramInt + " (0x" + Integer.toHexString(paramInt) + ")");
  2936.     send(localRILRequest);
  2937.   }
  2938.  
  2939.   public void reportSmsMemoryStatus(boolean paramBoolean, Message paramMessage)
  2940.   {
  2941.     int i = 1;
  2942.     RILRequest localRILRequest = RILRequest.obtain(102, paramMessage);
  2943.     mp.writeInt(i);
  2944.     Parcel localParcel = mp;
  2945.     if (paramBoolean) {}
  2946.     for (;;)
  2947.     {
  2948.       localParcel.writeInt(i);
  2949.       riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + ": " + paramBoolean);
  2950.       send(localRILRequest);
  2951.       return;
  2952.       i = 0;
  2953.     }
  2954.   }
  2955.  
  2956.   public void reportStkServiceIsRunning(Message paramMessage)
  2957.   {
  2958.     RILRequest localRILRequest = RILRequest.obtain(103, paramMessage);
  2959.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2960.     send(localRILRequest);
  2961.   }
  2962.  
  2963.   public void requestIsimAuthentication(String paramString, Message paramMessage)
  2964.   {
  2965.     RILRequest localRILRequest = RILRequest.obtain(105, paramMessage);
  2966.     mp.writeString(paramString);
  2967.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2968.     send(localRILRequest);
  2969.   }
  2970.  
  2971.   public void resetRadio(Message paramMessage)
  2972.   {
  2973.     RILRequest localRILRequest = RILRequest.obtain(58, paramMessage);
  2974.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  2975.     send(localRILRequest);
  2976.   }
  2977.  
  2978.   public void resumeQos(int paramInt, Message paramMessage)
  2979.   {
  2980.     RILRequest localRILRequest = RILRequest.obtain(117, paramMessage);
  2981.     mp.writeInt(1);
  2982.     mp.writeString(Integer.toString(paramInt));
  2983.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " qosId:" + paramInt + " (0x" + Integer.toHexString(paramInt) + ")");
  2984.     send(localRILRequest);
  2985.   }
  2986.  
  2987.   public void sendBurstDtmf(String paramString, int paramInt1, int paramInt2, Message paramMessage)
  2988.   {
  2989.     RILRequest localRILRequest = RILRequest.obtain(85, paramMessage);
  2990.     mp.writeInt(3);
  2991.     mp.writeString(paramString);
  2992.     mp.writeString(Integer.toString(paramInt1));
  2993.     mp.writeString(Integer.toString(paramInt2));
  2994.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " : " + paramString);
  2995.     send(localRILRequest);
  2996.   }
  2997.  
  2998.   public void sendCDMAFeatureCode(String paramString, Message paramMessage)
  2999.   {
  3000.     RILRequest localRILRequest = RILRequest.obtain(84, paramMessage);
  3001.     mp.writeString(paramString);
  3002.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " : " + paramString);
  3003.     send(localRILRequest);
  3004.   }
  3005.  
  3006.   public void sendCdmaSms(byte[] paramArrayOfByte, Message paramMessage)
  3007.   {
  3008.     RILRequest localRILRequest = RILRequest.obtain(87, paramMessage);
  3009.     constructCdmaSendSmsRilRequest(localRILRequest, paramArrayOfByte);
  3010.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3011.     send(localRILRequest);
  3012.   }
  3013.  
  3014.   public void sendDtmf(char paramChar, Message paramMessage)
  3015.   {
  3016.     RILRequest localRILRequest = RILRequest.obtain(24, paramMessage);
  3017.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3018.     mp.writeString(Character.toString(paramChar));
  3019.     send(localRILRequest);
  3020.   }
  3021.  
  3022.   public void sendEnvelope(String paramString, Message paramMessage)
  3023.   {
  3024.     RILRequest localRILRequest = RILRequest.obtain(69, paramMessage);
  3025.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3026.     mp.writeString(paramString);
  3027.     send(localRILRequest);
  3028.   }
  3029.  
  3030.   public void sendEnvelopeWithStatus(String paramString, Message paramMessage)
  3031.   {
  3032.     RILRequest localRILRequest = RILRequest.obtain(107, paramMessage);
  3033.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + '[' + paramString + ']');
  3034.     mp.writeString(paramString);
  3035.     send(localRILRequest);
  3036.   }
  3037.  
  3038.   public void sendImsCdmaSms(byte[] paramArrayOfByte, int paramInt1, int paramInt2, Message paramMessage)
  3039.   {
  3040.     RILRequest localRILRequest = RILRequest.obtain(110, paramMessage);
  3041.     mp.writeInt(2);
  3042.     mp.writeByte((byte)paramInt1);
  3043.     mp.writeInt(paramInt2);
  3044.     constructCdmaSendSmsRilRequest(localRILRequest, paramArrayOfByte);
  3045.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3046.     send(localRILRequest);
  3047.   }
  3048.  
  3049.   public void sendImsGsmSms(String paramString1, String paramString2, int paramInt1, int paramInt2, Message paramMessage)
  3050.   {
  3051.     RILRequest localRILRequest = RILRequest.obtain(110, paramMessage);
  3052.     mp.writeInt(1);
  3053.     mp.writeByte((byte)paramInt1);
  3054.     mp.writeInt(paramInt2);
  3055.     constructGsmSendSmsRilRequest(localRILRequest, paramString1, paramString2);
  3056.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3057.     send(localRILRequest);
  3058.   }
  3059.  
  3060.   public void sendSMS(String paramString1, String paramString2, Message paramMessage)
  3061.   {
  3062.     RILRequest localRILRequest = RILRequest.obtain(25, paramMessage);
  3063.     constructGsmSendSmsRilRequest(localRILRequest, paramString1, paramString2);
  3064.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3065.     send(localRILRequest);
  3066.   }
  3067.  
  3068.   public void sendTerminalResponse(String paramString, Message paramMessage)
  3069.   {
  3070.     RILRequest localRILRequest = RILRequest.obtain(70, paramMessage);
  3071.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3072.     mp.writeString(paramString);
  3073.     send(localRILRequest);
  3074.   }
  3075.  
  3076.   public void sendUSSD(String paramString, Message paramMessage)
  3077.   {
  3078.     RILRequest localRILRequest = RILRequest.obtain(29, paramMessage);
  3079.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " " + paramString);
  3080.     mp.writeString(paramString);
  3081.     send(localRILRequest);
  3082.   }
  3083.  
  3084.   public void separateConnection(int paramInt, Message paramMessage)
  3085.   {
  3086.     RILRequest localRILRequest = RILRequest.obtain(52, paramMessage);
  3087.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " " + paramInt);
  3088.     mp.writeInt(1);
  3089.     mp.writeInt(paramInt);
  3090.     send(localRILRequest);
  3091.   }
  3092.  
  3093.   public void setBandMode(int paramInt, Message paramMessage)
  3094.   {
  3095.     RILRequest localRILRequest = RILRequest.obtain(65, paramMessage);
  3096.     mp.writeInt(1);
  3097.     mp.writeInt(paramInt);
  3098.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " " + paramInt);
  3099.     send(localRILRequest);
  3100.   }
  3101.  
  3102.   public void setCLIR(int paramInt, Message paramMessage)
  3103.   {
  3104.     RILRequest localRILRequest = RILRequest.obtain(32, paramMessage);
  3105.     mp.writeInt(1);
  3106.     mp.writeInt(paramInt);
  3107.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " " + paramInt);
  3108.     send(localRILRequest);
  3109.   }
  3110.  
  3111.   public void setCallForward(int paramInt1, int paramInt2, int paramInt3, String paramString, int paramInt4, Message paramMessage)
  3112.   {
  3113.     RILRequest localRILRequest = RILRequest.obtain(34, paramMessage);
  3114.     mp.writeInt(paramInt1);
  3115.     mp.writeInt(paramInt2);
  3116.     mp.writeInt(paramInt3);
  3117.     mp.writeInt(PhoneNumberUtils.toaFromString(paramString));
  3118.     mp.writeString(paramString);
  3119.     mp.writeInt(paramInt4);
  3120.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " " + paramInt1 + " " + paramInt2 + " " + paramInt3 + paramInt4);
  3121.     send(localRILRequest);
  3122.   }
  3123.  
  3124.   public void setCallWaiting(boolean paramBoolean, int paramInt, Message paramMessage)
  3125.   {
  3126.     RILRequest localRILRequest = RILRequest.obtain(36, paramMessage);
  3127.     mp.writeInt(2);
  3128.     Parcel localParcel = mp;
  3129.     if (paramBoolean) {}
  3130.     for (int i = 1;; i = 0)
  3131.     {
  3132.       localParcel.writeInt(i);
  3133.       mp.writeInt(paramInt);
  3134.       riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " " + paramBoolean + ", " + paramInt);
  3135.       send(localRILRequest);
  3136.       return;
  3137.     }
  3138.   }
  3139.  
  3140.   public void setCdmaBroadcastActivation(boolean paramBoolean, Message paramMessage)
  3141.   {
  3142.     int i = 1;
  3143.     RILRequest localRILRequest = RILRequest.obtain(94, paramMessage);
  3144.     mp.writeInt(i);
  3145.     Parcel localParcel = mp;
  3146.     if (paramBoolean)
  3147.       i = 0;
  3148.     localParcel.writeInt(i);
  3149.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3150.     send(localRILRequest);
  3151.   }
  3152.  
  3153.   public void setCdmaBroadcastConfig(int[] paramArrayOfInt, Message paramMessage)
  3154.   {
  3155.     RILRequest localRILRequest = RILRequest.obtain(93, paramMessage);
  3156.     for (int i = 0; i < paramArrayOfInt.length; i++)
  3157.       mp.writeInt(paramArrayOfInt[i]);
  3158.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3159.     send(localRILRequest);
  3160.   }
  3161.  
  3162.   public void setCdmaBroadcastConfig(CdmaSmsBroadcastConfigInfo[] paramArrayOfCdmaSmsBroadcastConfigInfo, Message paramMessage)
  3163.   {
  3164.     RILRequest localRILRequest = RILRequest.obtain(93, paramMessage);
  3165.     ArrayList localArrayList = new ArrayList();
  3166.     int i = paramArrayOfCdmaSmsBroadcastConfigInfo.length;
  3167.     for (int j = 0; j < i; j++)
  3168.     {
  3169.       CdmaSmsBroadcastConfigInfo localCdmaSmsBroadcastConfigInfo = paramArrayOfCdmaSmsBroadcastConfigInfo[j];
  3170.       for (int i1 = localCdmaSmsBroadcastConfigInfo.getFromServiceCategory(); i1 <= localCdmaSmsBroadcastConfigInfo.getToServiceCategory(); i1++)
  3171.         localArrayList.add(new CdmaSmsBroadcastConfigInfo(i1, i1, localCdmaSmsBroadcastConfigInfo.getLanguage(), localCdmaSmsBroadcastConfigInfo.isSelected()));
  3172.     }
  3173.     CdmaSmsBroadcastConfigInfo[] arrayOfCdmaSmsBroadcastConfigInfo = (CdmaSmsBroadcastConfigInfo[])localArrayList.toArray(paramArrayOfCdmaSmsBroadcastConfigInfo);
  3174.     mp.writeInt(arrayOfCdmaSmsBroadcastConfigInfo.length);
  3175.     int k = 0;
  3176.     if (k < arrayOfCdmaSmsBroadcastConfigInfo.length)
  3177.     {
  3178.       mp.writeInt(arrayOfCdmaSmsBroadcastConfigInfo[k].getFromServiceCategory());
  3179.       mp.writeInt(arrayOfCdmaSmsBroadcastConfigInfo[k].getLanguage());
  3180.       Parcel localParcel = mp;
  3181.       if (arrayOfCdmaSmsBroadcastConfigInfo[k].isSelected()) {}
  3182.       for (int n = 1;; n = 0)
  3183.       {
  3184.         localParcel.writeInt(n);
  3185.         k++;
  3186.         break;
  3187.       }
  3188.     }
  3189.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " with " + arrayOfCdmaSmsBroadcastConfigInfo.length + "configs : ");
  3190.     for (int m = 0; m < arrayOfCdmaSmsBroadcastConfigInfo.length; m++)
  3191.       riljLog(arrayOfCdmaSmsBroadcastConfigInfo[m].toString());
  3192.     send(localRILRequest);
  3193.   }
  3194.  
  3195.   public void setCdmaRoamingPreference(int paramInt, Message paramMessage)
  3196.   {
  3197.     RILRequest localRILRequest = RILRequest.obtain(78, paramMessage);
  3198.     mp.writeInt(1);
  3199.     mp.writeInt(paramInt);
  3200.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " : " + paramInt);
  3201.     send(localRILRequest);
  3202.   }
  3203.  
  3204.   public void setCdmaSubscriptionSource(int paramInt, Message paramMessage)
  3205.   {
  3206.     RILRequest localRILRequest = RILRequest.obtain(77, paramMessage);
  3207.     mp.writeInt(1);
  3208.     mp.writeInt(paramInt);
  3209.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " : " + paramInt);
  3210.     send(localRILRequest);
  3211.   }
  3212.  
  3213.   public void setCurrentPreferredNetworkType()
  3214.   {
  3215.     riljLog("setCurrentPreferredNetworkType: " + mSetPreferredNetworkType);
  3216.     setPreferredNetworkType(mSetPreferredNetworkType, null);
  3217.   }
  3218.  
  3219.   public void setDataSubscription(Message paramMessage)
  3220.   {
  3221.     RILRequest localRILRequest = RILRequest.obtain(119, paramMessage);
  3222.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3223.     send(localRILRequest);
  3224.   }
  3225.  
  3226.   public void setFacilityLock(String paramString1, boolean paramBoolean, String paramString2, int paramInt, Message paramMessage)
  3227.   {
  3228.     setFacilityLockForApp(paramString1, paramBoolean, paramString2, paramInt, null, paramMessage);
  3229.   }
  3230.  
  3231.   public void setFacilityLockForApp(String paramString1, boolean paramBoolean, String paramString2, int paramInt, String paramString3, Message paramMessage)
  3232.   {
  3233.     RILRequest localRILRequest = RILRequest.obtain(43, paramMessage);
  3234.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3235.     mp.writeInt(5);
  3236.     mp.writeString(paramString1);
  3237.     if (paramBoolean) {}
  3238.     for (String str = "1";; str = "0")
  3239.     {
  3240.       mp.writeString(str);
  3241.       mp.writeString(paramString2);
  3242.       mp.writeString(Integer.toString(paramInt));
  3243.       mp.writeString(paramString3);
  3244.       send(localRILRequest);
  3245.       return;
  3246.     }
  3247.   }
  3248.  
  3249.   public void setGsmBroadcastActivation(boolean paramBoolean, Message paramMessage)
  3250.   {
  3251.     int i = 1;
  3252.     RILRequest localRILRequest = RILRequest.obtain(91, paramMessage);
  3253.     mp.writeInt(i);
  3254.     Parcel localParcel = mp;
  3255.     if (paramBoolean)
  3256.       i = 0;
  3257.     localParcel.writeInt(i);
  3258.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3259.     send(localRILRequest);
  3260.   }
  3261.  
  3262.   public void setGsmBroadcastConfig(SmsBroadcastConfigInfo[] paramArrayOfSmsBroadcastConfigInfo, Message paramMessage)
  3263.   {
  3264.     RILRequest localRILRequest = RILRequest.obtain(90, paramMessage);
  3265.     int i = paramArrayOfSmsBroadcastConfigInfo.length;
  3266.     mp.writeInt(i);
  3267.     int j = 0;
  3268.     if (j < i)
  3269.     {
  3270.       mp.writeInt(paramArrayOfSmsBroadcastConfigInfo[j].getFromServiceId());
  3271.       mp.writeInt(paramArrayOfSmsBroadcastConfigInfo[j].getToServiceId());
  3272.       mp.writeInt(paramArrayOfSmsBroadcastConfigInfo[j].getFromCodeScheme());
  3273.       mp.writeInt(paramArrayOfSmsBroadcastConfigInfo[j].getToCodeScheme());
  3274.       Parcel localParcel = mp;
  3275.       if (paramArrayOfSmsBroadcastConfigInfo[j].isSelected()) {}
  3276.       for (int m = 1;; m = 0)
  3277.       {
  3278.         localParcel.writeInt(m);
  3279.         j++;
  3280.         break;
  3281.       }
  3282.     }
  3283.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " with " + i + " configs : ");
  3284.     for (int k = 0; k < i; k++)
  3285.       riljLog(paramArrayOfSmsBroadcastConfigInfo[k].toString());
  3286.     send(localRILRequest);
  3287.   }
  3288.  
  3289.   public void setLocationUpdates(boolean paramBoolean, Message paramMessage)
  3290.   {
  3291.     int i = 1;
  3292.     RILRequest localRILRequest = RILRequest.obtain(76, paramMessage);
  3293.     mp.writeInt(i);
  3294.     Parcel localParcel = mp;
  3295.     if (paramBoolean) {}
  3296.     for (;;)
  3297.     {
  3298.       localParcel.writeInt(i);
  3299.       riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + ": " + paramBoolean);
  3300.       send(localRILRequest);
  3301.       return;
  3302.       i = 0;
  3303.     }
  3304.   }
  3305.  
  3306.   public void setMute(boolean paramBoolean, Message paramMessage)
  3307.   {
  3308.     int i = 1;
  3309.     RILRequest localRILRequest = RILRequest.obtain(53, paramMessage);
  3310.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " " + paramBoolean);
  3311.     mp.writeInt(i);
  3312.     Parcel localParcel = mp;
  3313.     if (paramBoolean) {}
  3314.     for (;;)
  3315.     {
  3316.       localParcel.writeInt(i);
  3317.       send(localRILRequest);
  3318.       return;
  3319.       i = 0;
  3320.     }
  3321.   }
  3322.  
  3323.   public void setNetworkSelectionModeAutomatic(Message paramMessage)
  3324.   {
  3325.     RILRequest localRILRequest = RILRequest.obtain(46, paramMessage);
  3326.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3327.     send(localRILRequest);
  3328.   }
  3329.  
  3330.   public void setNetworkSelectionModeManual(String paramString, Message paramMessage)
  3331.   {
  3332.     RILRequest localRILRequest = RILRequest.obtain(47, paramMessage);
  3333.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " " + paramString);
  3334.     mp.writeString(paramString);
  3335.     send(localRILRequest);
  3336.   }
  3337.  
  3338.   public void setOnNITZTime(Handler paramHandler, int paramInt, Object paramObject)
  3339.   {
  3340.     super.setOnNITZTime(paramHandler, paramInt, paramObject);
  3341.     if (mLastNITZTimeInfo != null)
  3342.     {
  3343.       mNITZTimeRegistrant.notifyRegistrant(new AsyncResult(null, mLastNITZTimeInfo, null));
  3344.       mLastNITZTimeInfo = null;
  3345.     }
  3346.   }
  3347.  
  3348.   public void setPhoneType(int paramInt)
  3349.   {
  3350.     riljLog("setPhoneType=" + paramInt + " old value=" + mPhoneType);
  3351.     mPhoneType = paramInt;
  3352.   }
  3353.  
  3354.   public void setPreferredNetworkType(int paramInt, Message paramMessage)
  3355.   {
  3356.     RILRequest localRILRequest = RILRequest.obtain(73, paramMessage);
  3357.     mp.writeInt(1);
  3358.     mp.writeInt(paramInt);
  3359.     mSetPreferredNetworkType = paramInt;
  3360.     mPreferredNetworkType = paramInt;
  3361.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " : " + paramInt);
  3362.     send(localRILRequest);
  3363.   }
  3364.  
  3365.   public void setPreferredVoicePrivacy(boolean paramBoolean, Message paramMessage)
  3366.   {
  3367.     int i = 1;
  3368.     RILRequest localRILRequest = RILRequest.obtain(82, paramMessage);
  3369.     mp.writeInt(i);
  3370.     Parcel localParcel = mp;
  3371.     if (paramBoolean) {}
  3372.     for (;;)
  3373.     {
  3374.       localParcel.writeInt(i);
  3375.       send(localRILRequest);
  3376.       return;
  3377.       i = 0;
  3378.     }
  3379.   }
  3380.  
  3381.   public void setRadioPower(boolean paramBoolean, Message paramMessage)
  3382.   {
  3383.     int i = 1;
  3384.     RILRequest localRILRequest = RILRequest.obtain(23, paramMessage);
  3385.     mp.writeInt(i);
  3386.     Parcel localParcel = mp;
  3387.     StringBuilder localStringBuilder;
  3388.     if (paramBoolean)
  3389.     {
  3390.       localParcel.writeInt(i);
  3391.       localStringBuilder = new StringBuilder().append(localRILRequest.serialString()).append("> ").append(requestToString(mRequest));
  3392.       if (!paramBoolean) {
  3393.         break label105;
  3394.       }
  3395.     }
  3396.     label105:
  3397.     for (String str = " on";; str = " off")
  3398.     {
  3399.       riljLog(str);
  3400.       send(localRILRequest);
  3401.       return;
  3402.       i = 0;
  3403.       break;
  3404.     }
  3405.   }
  3406.  
  3407.   public void setSmscAddress(String paramString, Message paramMessage)
  3408.   {
  3409.     RILRequest localRILRequest = RILRequest.obtain(101, paramMessage);
  3410.     mp.writeString(paramString);
  3411.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " : " + paramString);
  3412.     send(localRILRequest);
  3413.   }
  3414.  
  3415.   public void setSubscriptionMode(int paramInt, Message paramMessage)
  3416.   {
  3417.     RILRequest localRILRequest = RILRequest.obtain(122, paramMessage);
  3418.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " subscriptionMode: " + paramInt);
  3419.     mp.writeInt(1);
  3420.     mp.writeInt(paramInt);
  3421.     send(localRILRequest);
  3422.   }
  3423.  
  3424.   public void setSuppServiceNotifications(boolean paramBoolean, Message paramMessage)
  3425.   {
  3426.     int i = 1;
  3427.     RILRequest localRILRequest = RILRequest.obtain(62, paramMessage);
  3428.     mp.writeInt(i);
  3429.     Parcel localParcel = mp;
  3430.     if (paramBoolean) {}
  3431.     for (;;)
  3432.     {
  3433.       localParcel.writeInt(i);
  3434.       riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3435.       send(localRILRequest);
  3436.       return;
  3437.       i = 0;
  3438.     }
  3439.   }
  3440.  
  3441.   public void setTTYMode(int paramInt, Message paramMessage)
  3442.   {
  3443.     RILRequest localRILRequest = RILRequest.obtain(80, paramMessage);
  3444.     mp.writeInt(1);
  3445.     mp.writeInt(paramInt);
  3446.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " : " + paramInt);
  3447.     send(localRILRequest);
  3448.   }
  3449.  
  3450.   public void setUiccSubscription(int paramInt1, int paramInt2, int paramInt3, int paramInt4, Message paramMessage)
  3451.   {
  3452.     RILRequest localRILRequest = RILRequest.obtain(118, paramMessage);
  3453.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " slot: " + paramInt1 + " appIndex: " + paramInt2 + " subId: " + paramInt3 + " subStatus: " + paramInt4);
  3454.     mp.writeInt(paramInt1);
  3455.     mp.writeInt(paramInt2);
  3456.     mp.writeInt(paramInt3);
  3457.     mp.writeInt(paramInt4);
  3458.     send(localRILRequest);
  3459.   }
  3460.  
  3461.   public void setupDataCall(String paramString1, String paramString2, String paramString3, String paramString4, String paramString5, String paramString6, String paramString7, Message paramMessage)
  3462.   {
  3463.     RILRequest localRILRequest = RILRequest.obtain(27, paramMessage);
  3464.     mp.writeInt(7);
  3465.     mp.writeString(paramString1);
  3466.     mp.writeString(paramString2);
  3467.     mp.writeString(paramString3);
  3468.     mp.writeString(paramString4);
  3469.     mp.writeString(paramString5);
  3470.     mp.writeString(paramString6);
  3471.     mp.writeString(paramString7);
  3472.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " " + paramString1 + " " + paramString2 + " " + paramString3 + " " + paramString4 + " " + paramString5 + " " + paramString6 + " " + paramString7);
  3473.     send(localRILRequest);
  3474.   }
  3475.  
  3476.   public void setupQosReq(int paramInt, ArrayList<String> paramArrayList, Message paramMessage)
  3477.   {
  3478.     RILRequest localRILRequest = RILRequest.obtain(112, paramMessage);
  3479.     int i = paramArrayList.size();
  3480.     mp.writeInt(i + 1);
  3481.     mp.writeString(Integer.toString(paramInt));
  3482.     for (String str : (String[])paramArrayList.toArray(new String[0]))
  3483.       mp.writeString(str);
  3484.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " callId:" + paramInt + ", " + paramArrayList);
  3485.     send(localRILRequest);
  3486.   }
  3487.  
  3488.   public void startDtmf(char paramChar, Message paramMessage)
  3489.   {
  3490.     RILRequest localRILRequest = RILRequest.obtain(49, paramMessage);
  3491.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3492.     mp.writeString(Character.toString(paramChar));
  3493.     send(localRILRequest);
  3494.   }
  3495.  
  3496.   public void stopDtmf(Message paramMessage)
  3497.   {
  3498.     RILRequest localRILRequest = RILRequest.obtain(50, paramMessage);
  3499.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3500.     send(localRILRequest);
  3501.   }
  3502.  
  3503.   public void supplyDepersonalization(String paramString, int paramInt, Message paramMessage)
  3504.   {
  3505.     RILRequest localRILRequest = RILRequest.obtain(8, paramMessage);
  3506.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " Type:" + paramInt);
  3507.     mp.writeInt(paramInt);
  3508.     mp.writeString(paramString);
  3509.     send(localRILRequest);
  3510.   }
  3511.  
  3512.   public void supplyIccPin(String paramString, Message paramMessage)
  3513.   {
  3514.     supplyIccPinForApp(paramString, null, paramMessage);
  3515.   }
  3516.  
  3517.   public void supplyIccPin2(String paramString, Message paramMessage)
  3518.   {
  3519.     supplyIccPin2ForApp(paramString, null, paramMessage);
  3520.   }
  3521.  
  3522.   public void supplyIccPin2ForApp(String paramString1, String paramString2, Message paramMessage)
  3523.   {
  3524.     RILRequest localRILRequest = RILRequest.obtain(4, paramMessage);
  3525.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3526.     mp.writeInt(2);
  3527.     mp.writeString(paramString1);
  3528.     mp.writeString(paramString2);
  3529.     send(localRILRequest);
  3530.   }
  3531.  
  3532.   public void supplyIccPinForApp(String paramString1, String paramString2, Message paramMessage)
  3533.   {
  3534.     RILRequest localRILRequest = RILRequest.obtain(2, paramMessage);
  3535.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3536.     mp.writeInt(2);
  3537.     mp.writeString(paramString1);
  3538.     mp.writeString(paramString2);
  3539.     send(localRILRequest);
  3540.   }
  3541.  
  3542.   public void supplyIccPuk(String paramString1, String paramString2, Message paramMessage)
  3543.   {
  3544.     supplyIccPukForApp(paramString1, paramString2, null, paramMessage);
  3545.   }
  3546.  
  3547.   public void supplyIccPuk2(String paramString1, String paramString2, Message paramMessage)
  3548.   {
  3549.     supplyIccPuk2ForApp(paramString1, paramString2, null, paramMessage);
  3550.   }
  3551.  
  3552.   public void supplyIccPuk2ForApp(String paramString1, String paramString2, String paramString3, Message paramMessage)
  3553.   {
  3554.     RILRequest localRILRequest = RILRequest.obtain(5, paramMessage);
  3555.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3556.     mp.writeInt(3);
  3557.     mp.writeString(paramString1);
  3558.     mp.writeString(paramString2);
  3559.     mp.writeString(paramString3);
  3560.     send(localRILRequest);
  3561.   }
  3562.  
  3563.   public void supplyIccPukForApp(String paramString1, String paramString2, String paramString3, Message paramMessage)
  3564.   {
  3565.     RILRequest localRILRequest = RILRequest.obtain(3, paramMessage);
  3566.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3567.     mp.writeInt(3);
  3568.     mp.writeString(paramString1);
  3569.     mp.writeString(paramString2);
  3570.     mp.writeString(paramString3);
  3571.     send(localRILRequest);
  3572.   }
  3573.  
  3574.   public void suspendQos(int paramInt, Message paramMessage)
  3575.   {
  3576.     RILRequest localRILRequest = RILRequest.obtain(116, paramMessage);
  3577.     mp.writeInt(1);
  3578.     mp.writeString(Integer.toString(paramInt));
  3579.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest) + " qosId:" + paramInt + " (0x" + Integer.toHexString(paramInt) + ")");
  3580.     send(localRILRequest);
  3581.   }
  3582.  
  3583.   public void switchWaitingOrHoldingAndActive(Message paramMessage)
  3584.   {
  3585.     RILRequest localRILRequest = RILRequest.obtain(15, paramMessage);
  3586.     riljLog(localRILRequest.serialString() + "> " + requestToString(mRequest));
  3587.     send(localRILRequest);
  3588.   }
  3589.  
  3590.   public void testingEmergencyCall()
  3591.   {
  3592.     riljLog("testingEmergencyCall");
  3593.     mTestingEmergencyCall.set(true);
  3594.   }
  3595.  
  3596.   public void writeSmsToRuim(int paramInt, String paramString, Message paramMessage)
  3597.   {
  3598.     int i = translateStatus(paramInt);
  3599.     RILRequest localRILRequest = RILRequest.obtain(96, paramMessage);
  3600.     mp.writeInt(i);
  3601.     mRILEx.writeContent(localRILRequest, paramString);
  3602.     send(localRILRequest);
  3603.   }
  3604.  
  3605.   public void writeSmsToSim(int paramInt, String paramString1, String paramString2, Message paramMessage)
  3606.   {
  3607.     int i = translateStatus(paramInt);
  3608.     RILRequest localRILRequest = RILRequest.obtain(63, paramMessage);
  3609.     mp.writeInt(i);
  3610.     mp.writeString(paramString2);
  3611.     mp.writeString(paramString1);
  3612.     send(localRILRequest);
  3613.   }
  3614.  
  3615.   private class RILEx
  3616.   {
  3617.     private RILEx() {}
  3618.    
  3619.     private void writeContent(RILRequest paramRILRequest, String paramString)
  3620.     {
  3621.       try
  3622.       {
  3623.         for (int k : paramString.getBytes("ISO-8859-1"))
  3624.           Log.e("RILJ", "writeSmsToRuim pdu is" + k);
  3625.         DataInputStream localDataInputStream = new DataInputStream(new ByteArrayInputStream(paramString.getBytes("ISO-8859-1")));
  3626.         mp.writeInt(localDataInputStream.readInt());
  3627.         mp.writeByte((byte)localDataInputStream.read());
  3628.         mp.writeInt(localDataInputStream.readInt());
  3629.         mp.writeInt(localDataInputStream.readInt());
  3630.         mp.writeInt(localDataInputStream.readInt());
  3631.         mp.writeInt(localDataInputStream.readInt());
  3632.         mp.writeInt(localDataInputStream.readInt());
  3633.         mp.writeByte((byte)localDataInputStream.read());
  3634.         for (int m = 0; m < 36; m++)
  3635.           mp.writeByte((byte)localDataInputStream.read());
  3636.         mp.writeInt(localDataInputStream.readInt());
  3637.         mp.writeByte((byte)localDataInputStream.read());
  3638.         mp.writeByte((byte)localDataInputStream.read());
  3639.         for (int n = 0; n < 36; n++)
  3640.           mp.writeByte((byte)localDataInputStream.read());
  3641.         mp.writeInt(localDataInputStream.readInt());
  3642.         for (int i1 = 0; i1 < 255; i1++)
  3643.           mp.writeByte((byte)localDataInputStream.read());
  3644.         return;
  3645.       }
  3646.       catch (UnsupportedEncodingException localUnsupportedEncodingException)
  3647.       {
  3648.         RIL.this.riljLog("writeSmsToRuim: UnsupportedEncodingException: " + localUnsupportedEncodingException);
  3649.         return;
  3650.       }
  3651.       catch (IOException localIOException)
  3652.       {
  3653.         RIL.this.riljLog("writeSmsToRuim: conversion from input stream to object failed: " + localIOException);
  3654.       }
  3655.     }
  3656.   }
  3657.  
  3658.   class RILReceiver
  3659.     implements Runnable
  3660.   {
  3661.     byte[] buffer = new byte[' '];
  3662.    
  3663.     RILReceiver() {}
  3664.    
  3665.     /* Error */
  3666.     public void run()
  3667.     {
  3668.       // Byte code:
  3669.       //   0: iconst_0
  3670.       //   1: istore_1
  3671.       //   2: aconst_null
  3672.       //   3: astore_2
  3673.       //   4: ldc 30
  3674.       //   6: iconst_0
  3675.       //   7: invokestatic 36   android/os/SystemProperties:getBoolean  (Ljava/lang/String;Z)Z
  3676.       //   10: istore 5
  3677.       //   12: aload_0
  3678.       //   13: getfield 14      com/android/internal/telephony/RIL$RILReceiver:this$0   Lcom/android/internal/telephony/RIL;
  3679.       //   16: invokestatic 42  com/android/internal/telephony/RIL:access$300   (Lcom/android/internal/telephony/RIL;)Ljava/lang/Integer;
  3680.       //   19: ifnull +21 -> 40
  3681.       //   22: aload_0
  3682.       //   23: getfield 14      com/android/internal/telephony/RIL$RILReceiver:this$0   Lcom/android/internal/telephony/RIL;
  3683.       //   26: invokestatic 42  com/android/internal/telephony/RIL:access$300   (Lcom/android/internal/telephony/RIL;)Ljava/lang/Integer;
  3684.       //   29: invokevirtual 48 java/lang/Integer:intValue      ()I
  3685.       //   32: ifeq +8 -> 40
  3686.       //   35: iload 5
  3687.       //   37: ifne +325 -> 362
  3688.       //   40: ldc 50
  3689.       //   42: invokestatic 54  com/android/internal/telephony/RIL:access$400   ()Ljava/lang/String;
  3690.       //   45: invokevirtual 60 java/lang/String:equals (Ljava/lang/Object;)Z
  3691.       //   48: ifeq +307 -> 355
  3692.       //   51: invokestatic 64  com/android/internal/telephony/RIL:access$500   ()Z
  3693.       //   54: ifeq +301 -> 355
  3694.       //   57: invokestatic 70  com/huawei/telephony/HuaweiTelephonyManager:getDefault  ()Lcom/huawei/telephony/HuaweiTelephonyManager;
  3695.       //   60: invokevirtual 73 com/huawei/telephony/HuaweiTelephonyManager:getDualCardMode     ()I
  3696.       //   63: iconst_1
  3697.       //   64: if_icmpne +291 -> 355
  3698.       //   67: ldc 75
  3699.       //   69: astore 6
  3700.       //   71: new 77   android/net/LocalSocket
  3701.       //   74: dup
  3702.       //   75: invokespecial 78 android/net/LocalSocket:        ()V
  3703.       //   78: astore 7
  3704.       //   80: aload 7
  3705.       //   82: new 80   android/net/LocalSocketAddress
  3706.       //   85: dup
  3707.       //   86: aload 6
  3708.       //   88: getstatic 86     android/net/LocalSocketAddress$Namespace:RESERVED       Landroid/net/LocalSocketAddress$Namespace;
  3709.       //   91: invokespecial 89 android/net/LocalSocketAddress: (Ljava/lang/String;Landroid/net/LocalSocketAddress$Namespace;)V
  3710.       //   94: invokevirtual 93 android/net/LocalSocket:connect (Landroid/net/LocalSocketAddress;)V
  3711.       //   97: aload_0
  3712.       //   98: getfield 14      com/android/internal/telephony/RIL$RILReceiver:this$0   Lcom/android/internal/telephony/RIL;
  3713.       //   101: aload 7
  3714.       //   103: putfield 97     com/android/internal/telephony/RIL:mSocket      Landroid/net/LocalSocket;
  3715.       //   106: ldc 99
  3716.       //   108: new 101 java/lang/StringBuilder
  3717.       //   111: dup
  3718.       //   112: invokespecial 102       java/lang/StringBuilder:        ()V
  3719.       //   115: ldc 104
  3720.       //   117: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3721.       //   120: aload 6
  3722.       //   122: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3723.       //   125: ldc 110
  3724.       //   127: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3725.       //   130: invokevirtual 113       java/lang/StringBuilder:toString        ()Ljava/lang/String;
  3726.       //   133: invokestatic 119        android/util/Log:i      (Ljava/lang/String;Ljava/lang/String;)I
  3727.       //   136: pop
  3728.       //   137: aload_0
  3729.       //   138: getfield 14     com/android/internal/telephony/RIL$RILReceiver:this$0   Lcom/android/internal/telephony/RIL;
  3730.       //   141: invokestatic 42 com/android/internal/telephony/RIL:access$300   (Lcom/android/internal/telephony/RIL;)Ljava/lang/Integer;
  3731.       //   144: ifnull +557 -> 701
  3732.       //   147: aload_0
  3733.       //   148: getfield 14     com/android/internal/telephony/RIL$RILReceiver:this$0   Lcom/android/internal/telephony/RIL;
  3734.       //   151: invokestatic 42 com/android/internal/telephony/RIL:access$300   (Lcom/android/internal/telephony/RIL;)Ljava/lang/Integer;
  3735.       //   154: invokevirtual 48        java/lang/Integer:intValue      ()I
  3736.       //   157: ifeq +544 -> 701
  3737.       //   160: iload 5
  3738.       //   162: iconst_1
  3739.       //   163: if_icmpne +356 -> 519
  3740.       //   166: goto +535 -> 701
  3741.       //   169: ldc 99
  3742.       //   171: new 101 java/lang/StringBuilder
  3743.       //   174: dup
  3744.       //   175: invokespecial 102       java/lang/StringBuilder:        ()V
  3745.       //   178: ldc 121
  3746.       //   180: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3747.       //   183: aload 14
  3748.       //   185: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3749.       //   188: invokevirtual 113       java/lang/StringBuilder:toString        ()Ljava/lang/String;
  3750.       //   191: invokestatic 119        android/util/Log:i      (Ljava/lang/String;Ljava/lang/String;)I
  3751.       //   194: pop
  3752.       //   195: aload 14
  3753.       //   197: invokevirtual 125       java/lang/String:getBytes       ()[B
  3754.       //   200: astore 16
  3755.       //   202: aload_0
  3756.       //   203: getfield 14     com/android/internal/telephony/RIL$RILReceiver:this$0   Lcom/android/internal/telephony/RIL;
  3757.       //   206: getfield 97     com/android/internal/telephony/RIL:mSocket      Landroid/net/LocalSocket;
  3758.       //   209: invokevirtual 129       android/net/LocalSocket:getOutputStream ()Ljava/io/OutputStream;
  3759.       //   212: aload 16
  3760.       //   214: invokevirtual 135       java/io/OutputStream:write      ([B)V
  3761.       //   217: ldc 99
  3762.       //   219: ldc -119
  3763.       //   221: invokestatic 119        android/util/Log:i      (Ljava/lang/String;Ljava/lang/String;)I
  3764.       //   224: pop
  3765.       //   225: iconst_0
  3766.       //   226: istore 19
  3767.       //   228: aload_0
  3768.       //   229: getfield 14     com/android/internal/telephony/RIL$RILReceiver:this$0   Lcom/android/internal/telephony/RIL;
  3769.       //   232: getfield 97     com/android/internal/telephony/RIL:mSocket      Landroid/net/LocalSocket;
  3770.       //   235: invokevirtual 141       android/net/LocalSocket:getInputStream  ()Ljava/io/InputStream;
  3771.       //   238: astore 26
  3772.       //   240: aload 26
  3773.       //   242: aload_0
  3774.       //   243: getfield 19     com/android/internal/telephony/RIL$RILReceiver:buffer   [B
  3775.       //   246: invokestatic 145        com/android/internal/telephony/RIL:access$600   (Ljava/io/InputStream;[B)I
  3776.       //   249: istore 27
  3777.       //   251: iload 27
  3778.       //   253: istore 19
  3779.       //   255: iload 19
  3780.       //   257: ifge +299 -> 556
  3781.       //   260: ldc 99
  3782.       //   262: new 101 java/lang/StringBuilder
  3783.       //   265: dup
  3784.       //   266: invokespecial 102       java/lang/StringBuilder:        ()V
  3785.       //   269: ldc -109
  3786.       //   271: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3787.       //   274: aload 6
  3788.       //   276: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3789.       //   279: ldc 110
  3790.       //   281: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3791.       //   284: invokevirtual 113       java/lang/StringBuilder:toString        ()Ljava/lang/String;
  3792.       //   287: invokestatic 119        android/util/Log:i      (Ljava/lang/String;Ljava/lang/String;)I
  3793.       //   290: pop
  3794.       //   291: aload_0
  3795.       //   292: getfield 14     com/android/internal/telephony/RIL$RILReceiver:this$0   Lcom/android/internal/telephony/RIL;
  3796.       //   295: getstatic 153   com/android/internal/telephony/CommandsInterface$RadioState:RADIO_UNAVAILABLE   Lcom/android/internal/telephony/CommandsInterface$RadioState;
  3797.       //   298: invokevirtual 157       com/android/internal/telephony/RIL:setRadioState        (Lcom/android/internal/telephony/CommandsInterface$RadioState;)V
  3798.       //   301: aload_0
  3799.       //   302: getfield 14     com/android/internal/telephony/RIL$RILReceiver:this$0   Lcom/android/internal/telephony/RIL;
  3800.       //   305: getfield 97     com/android/internal/telephony/RIL:mSocket      Landroid/net/LocalSocket;
  3801.       //   308: invokevirtual 160       android/net/LocalSocket:close   ()V
  3802.       //   311: aload_0
  3803.       //   312: getfield 14     com/android/internal/telephony/RIL$RILReceiver:this$0   Lcom/android/internal/telephony/RIL;
  3804.       //   315: aconst_null
  3805.       //   316: putfield 97     com/android/internal/telephony/RIL:mSocket      Landroid/net/LocalSocket;
  3806.       //   319: invokestatic 165        com/android/internal/telephony/RILRequest:resetSerial   ()V
  3807.       //   322: aload_0
  3808.       //   323: getfield 14     com/android/internal/telephony/RIL$RILReceiver:this$0   Lcom/android/internal/telephony/RIL;
  3809.       //   326: iconst_1
  3810.       //   327: iconst_0
  3811.       //   328: invokestatic 169        com/android/internal/telephony/RIL:access$800   (Lcom/android/internal/telephony/RIL;IZ)V
  3812.       //   331: iconst_0
  3813.       //   332: istore_1
  3814.       //   333: goto -331 -> 2
  3815.       //   336: astore_3
  3816.       //   337: ldc 99
  3817.       //   339: ldc -85
  3818.       //   341: aload_3
  3819.       //   342: invokestatic 175        android/util/Log:e      (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
  3820.       //   345: pop
  3821.       //   346: aload_0
  3822.       //   347: getfield 14     com/android/internal/telephony/RIL$RILReceiver:this$0   Lcom/android/internal/telephony/RIL;
  3823.       //   350: iconst_m1
  3824.       //   351: invokestatic 179        com/android/internal/telephony/RIL:access$900   (Lcom/android/internal/telephony/RIL;I)V
  3825.       //   354: return
  3826.       //   355: ldc -75
  3827.       //   357: astore 6
  3828.       //   359: goto -288 -> 71
  3829.       //   362: ldc 50
  3830.       //   364: invokestatic 54 com/android/internal/telephony/RIL:access$400   ()Ljava/lang/String;
  3831.       //   367: invokevirtual 60        java/lang/String:equals (Ljava/lang/Object;)Z
  3832.       //   370: ifeq +26 -> 396
  3833.       //   373: invokestatic 64 com/android/internal/telephony/RIL:access$500   ()Z
  3834.       //   376: ifeq +20 -> 396
  3835.       //   379: invokestatic 70 com/huawei/telephony/HuaweiTelephonyManager:getDefault  ()Lcom/huawei/telephony/HuaweiTelephonyManager;
  3836.       //   382: invokevirtual 73        com/huawei/telephony/HuaweiTelephonyManager:getDualCardMode     ()I
  3837.       //   385: iconst_1
  3838.       //   386: if_icmpne +10 -> 396
  3839.       //   389: ldc -75
  3840.       //   391: astore 6
  3841.       //   393: goto -322 -> 71
  3842.       //   396: ldc 75
  3843.       //   398: astore 6
  3844.       //   400: goto -329 -> 71
  3845.       //   403: astore 32
  3846.       //   405: aload_2
  3847.       //   406: ifnull +7 -> 413
  3848.       //   409: aload_2
  3849.       //   410: invokevirtual 160       android/net/LocalSocket:close   ()V
  3850.       //   413: iload_1
  3851.       //   414: bipush 8
  3852.       //   416: if_icmpne +55 -> 471
  3853.       //   419: ldc 99
  3854.       //   421: new 101 java/lang/StringBuilder
  3855.       //   424: dup
  3856.       //   425: invokespecial 102       java/lang/StringBuilder:        ()V
  3857.       //   428: ldc -73
  3858.       //   430: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3859.       //   433: aload 6
  3860.       //   435: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3861.       //   438: ldc -71
  3862.       //   440: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3863.       //   443: iload_1
  3864.       //   444: invokevirtual 188       java/lang/StringBuilder:append  (I)Ljava/lang/StringBuilder;
  3865.       //   447: ldc -66
  3866.       //   449: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3867.       //   452: invokevirtual 113       java/lang/StringBuilder:toString        ()Ljava/lang/String;
  3868.       //   455: invokestatic 192        android/util/Log:e      (Ljava/lang/String;Ljava/lang/String;)I
  3869.       //   458: pop
  3870.       //   459: ldc2_w 193
  3871.       //   462: invokestatic 200        java/lang/Thread:sleep  (J)V
  3872.       //   465: iinc 1 1
  3873.       //   468: goto -466 -> 2
  3874.       //   471: iload_1
  3875.       //   472: ifle -13 -> 459
  3876.       //   475: iload_1
  3877.       //   476: bipush 8
  3878.       //   478: if_icmpge -19 -> 459
  3879.       //   481: ldc 99
  3880.       //   483: new 101 java/lang/StringBuilder
  3881.       //   486: dup
  3882.       //   487: invokespecial 102       java/lang/StringBuilder:        ()V
  3883.       //   490: ldc -73
  3884.       //   492: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3885.       //   495: aload 6
  3886.       //   497: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3887.       //   500: ldc -54
  3888.       //   502: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3889.       //   505: invokevirtual 113       java/lang/StringBuilder:toString        ()Ljava/lang/String;
  3890.       //   508: invokestatic 119        android/util/Log:i      (Ljava/lang/String;Ljava/lang/String;)I
  3891.       //   511: pop
  3892.       //   512: goto -53 -> 459
  3893.       //   515: astore_3
  3894.       //   516: goto -179 -> 337
  3895.       //   519: ldc -52
  3896.       //   521: astore 14
  3897.       //   523: goto -354 -> 169
  3898.       //   526: astore 29
  3899.       //   528: ldc 99
  3900.       //   530: ldc -50
  3901.       //   532: aload 29
  3902.       //   534: invokestatic 175        android/util/Log:e      (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
  3903.       //   537: pop
  3904.       //   538: goto -313 -> 225
  3905.       //   541: astore 17
  3906.       //   543: ldc 99
  3907.       //   545: ldc -48
  3908.       //   547: aload 17
  3909.       //   549: invokestatic 175        android/util/Log:e      (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
  3910.       //   552: pop
  3911.       //   553: goto -328 -> 225
  3912.       //   556: invokestatic 214        android/os/Parcel:obtain        ()Landroid/os/Parcel;
  3913.       //   559: astore 28
  3914.       //   561: aload 28
  3915.       //   563: aload_0
  3916.       //   564: getfield 19     com/android/internal/telephony/RIL$RILReceiver:buffer   [B
  3917.       //   567: iconst_0
  3918.       //   568: iload 19
  3919.       //   570: invokevirtual 218       android/os/Parcel:unmarshall    ([BII)V
  3920.       //   573: aload 28
  3921.       //   575: iconst_0
  3922.       //   576: invokevirtual 222       android/os/Parcel:setDataPosition       (I)V
  3923.       //   579: aload_0
  3924.       //   580: getfield 14     com/android/internal/telephony/RIL$RILReceiver:this$0   Lcom/android/internal/telephony/RIL;
  3925.       //   583: aload 28
  3926.       //   585: invokestatic 226        com/android/internal/telephony/RIL:access$700   (Lcom/android/internal/telephony/RIL;Landroid/os/Parcel;)V
  3927.       //   588: aload 28
  3928.       //   590: invokevirtual 229       android/os/Parcel:recycle       ()V
  3929.       //   593: goto -353 -> 240
  3930.       //   596: astore 24
  3931.       //   598: ldc 99
  3932.       //   600: new 101 java/lang/StringBuilder
  3933.       //   603: dup
  3934.       //   604: invokespecial 102       java/lang/StringBuilder:        ()V
  3935.       //   607: ldc -25
  3936.       //   609: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3937.       //   612: aload 6
  3938.       //   614: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3939.       //   617: ldc -23
  3940.       //   619: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3941.       //   622: invokevirtual 113       java/lang/StringBuilder:toString        ()Ljava/lang/String;
  3942.       //   625: aload 24
  3943.       //   627: invokestatic 235        android/util/Log:i      (Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
  3944.       //   630: pop
  3945.       //   631: goto -371 -> 260
  3946.       //   634: astore 20
  3947.       //   636: ldc 99
  3948.       //   638: new 101 java/lang/StringBuilder
  3949.       //   641: dup
  3950.       //   642: invokespecial 102       java/lang/StringBuilder:        ()V
  3951.       //   645: ldc -19
  3952.       //   647: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3953.       //   650: iload 19
  3954.       //   652: invokevirtual 188       java/lang/StringBuilder:append  (I)Ljava/lang/StringBuilder;
  3955.       //   655: ldc -17
  3956.       //   657: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3957.       //   660: aload 20
  3958.       //   662: invokevirtual 240       java/lang/Throwable:toString    ()Ljava/lang/String;
  3959.       //   665: invokevirtual 108       java/lang/StringBuilder:append  (Ljava/lang/String;)Ljava/lang/StringBuilder;
  3960.       //   668: invokevirtual 113       java/lang/StringBuilder:toString        ()Ljava/lang/String;
  3961.       //   671: invokestatic 192        android/util/Log:e      (Ljava/lang/String;Ljava/lang/String;)I
  3962.       //   674: pop
  3963.       //   675: goto -415 -> 260
  3964.       //   678: astore 12
  3965.       //   680: goto -267 -> 413
  3966.       //   683: astore 10
  3967.       //   685: goto -220 -> 465
  3968.       //   688: astore 23
  3969.       //   690: goto -379 -> 311
  3970.       //   693: astore 8
  3971.       //   695: aload 7
  3972.       //   697: astore_2
  3973.       //   698: goto -293 -> 405
  3974.       //   701: ldc -14
  3975.       //   703: astore 14
  3976.       //   705: goto -536 -> 169
  3977.       // Local variable table:
  3978.       //   start        length  slot    name    signature
  3979.       //   0    708     0       this    RILReceiver
  3980.       //   1    478     1       i       int
  3981.       //   3    695     2       localObject     Object
  3982.       //   336  6       3       localThrowable1 Throwable
  3983.       //   515  1       3       localThrowable2 Throwable
  3984.       //   10   154     5       bool    boolean
  3985.       //   69   544     6       str1    String
  3986.       //   78   618     7       localLocalSocket        LocalSocket
  3987.       //   693  1       8       localIOException1       IOException
  3988.       //   683  1       10      localInterruptedException       java.lang.InterruptedException
  3989.       //   678  1       12      localIOException2       IOException
  3990.       //   183  521     14      str2    String
  3991.       //   200  13      16      arrayOfByte     byte[]
  3992.       //   541  7       17      localRuntimeException   RuntimeException
  3993.       //   226  425     19      j       int
  3994.       //   634  27      20      localThrowable3 Throwable
  3995.       //   688  1       23      localIOException3       IOException
  3996.       //   596  30      24      localIOException4       IOException
  3997.       //   238  3       26      localInputStream        InputStream
  3998.       //   249  3       27      k       int
  3999.       //   559  30      28      localParcel     Parcel
  4000.       //   526  7       29      localIOException5       IOException
  4001.       //   403  1       32      localIOException6       IOException
  4002.       // Exception table:
  4003.       //   from to      target  type
  4004.       //   80   97      336     java/lang/Throwable
  4005.       //   97   160     336     java/lang/Throwable
  4006.       //   169  202     336     java/lang/Throwable
  4007.       //   202  225     336     java/lang/Throwable
  4008.       //   260  301     336     java/lang/Throwable
  4009.       //   301  311     336     java/lang/Throwable
  4010.       //   311  331     336     java/lang/Throwable
  4011.       //   528  538     336     java/lang/Throwable
  4012.       //   543  553     336     java/lang/Throwable
  4013.       //   598  631     336     java/lang/Throwable
  4014.       //   636  675     336     java/lang/Throwable
  4015.       //   71   80      403     java/io/IOException
  4016.       //   4    35      515     java/lang/Throwable
  4017.       //   40   67      515     java/lang/Throwable
  4018.       //   71   80      515     java/lang/Throwable
  4019.       //   362  389     515     java/lang/Throwable
  4020.       //   409  413     515     java/lang/Throwable
  4021.       //   419  459     515     java/lang/Throwable
  4022.       //   459  465     515     java/lang/Throwable
  4023.       //   481  512     515     java/lang/Throwable
  4024.       //   202  225     526     java/io/IOException
  4025.       //   202  225     541     java/lang/RuntimeException
  4026.       //   228  240     596     java/io/IOException
  4027.       //   240  251     596     java/io/IOException
  4028.       //   556  593     596     java/io/IOException
  4029.       //   228  240     634     java/lang/Throwable
  4030.       //   240  251     634     java/lang/Throwable
  4031.       //   556  593     634     java/lang/Throwable
  4032.       //   409  413     678     java/io/IOException
  4033.       //   459  465     683     java/lang/InterruptedException
  4034.       //   301  311     688     java/io/IOException
  4035.       //   80   97      693     java/io/IOException
  4036.     }
  4037.   }
  4038.  
  4039.   class RILSender
  4040.     extends Handler
  4041.     implements Runnable
  4042.   {
  4043.     byte[] dataLength = new byte[4];
  4044.    
  4045.     public RILSender(Looper paramLooper)
  4046.     {
  4047.       super();
  4048.     }
  4049.    
  4050.     public void handleMessage(Message paramMessage)
  4051.     {
  4052.       RILRequest localRILRequest1 = (RILRequest)obj;
  4053.       switch (what)
  4054.       {
  4055.       default:
  4056.       case 1:
  4057.         for (;;)
  4058.         {
  4059.           return;
  4060.           int k = 0;
  4061.           try
  4062.           {
  4063.             LocalSocket localLocalSocket = mSocket;
  4064.             if (localLocalSocket == null)
  4065.             {
  4066.               localRILRequest1.onError(1, null);
  4067.               localRILRequest1.release();
  4068.               int m = mRequestMessagesPending;
  4069.               k = 0;
  4070.               if (m > 0)
  4071.               {
  4072.                 RIL localRIL3 = RIL.this;
  4073.                 mRequestMessagesPending = (-1 + mRequestMessagesPending);
  4074.               }
  4075.               return;
  4076.             }
  4077.             synchronized (mWakeLock)
  4078.             {
  4079.               RIL localRIL4;
  4080.               int n;
  4081.               RIL localRIL5;
  4082.               byte[] arrayOfByte1;
  4083.               RIL localRIL1;
  4084.               RIL localRIL2;
  4085.               byte[] arrayOfByte2;
  4086.               if (mWakeLock.isHeld())
  4087.                 if (mRequestMessagesWaiting != 0)
  4088.                 {
  4089.                   Log.d("RILJ", "NOTE: mReqWaiting is NOT 0 but" + mRequestMessagesWaiting + " at TIMEOUT, reset!" + " There still msg waitng for response");
  4090.                   mRequestMessagesWaiting = 0;
  4091.                 }
  4092.             }
  4093.           }
  4094.           catch (IOException localIOException) {}catch (RuntimeException localRuntimeException)
  4095.           {
  4096.             for (;;)
  4097.             {
  4098.               Log.e("RILJ", "Uncaught exception ", localRuntimeException);
  4099.               if ((RIL.this.findAndRemoveRequestFromList(mSerial) != null) || (k == 0))
  4100.               {
  4101.                 localRILRequest1.onError(2, null);
  4102.                 localRILRequest1.release();
  4103.               }
  4104.               localRIL1 = RIL.this;
  4105.               continue;
  4106.               arrayOfByte2 = dataLength;
  4107.               dataLength[1] = 0;
  4108.               arrayOfByte2[0] = 0;
  4109.               dataLength[2] = ((byte)(0xFF & arrayOfByte1.length >> 8));
  4110.               dataLength[3] = ((byte)(0xFF & arrayOfByte1.length));
  4111.               localLocalSocket.getOutputStream().write(dataLength);
  4112.               localLocalSocket.getOutputStream().write(arrayOfByte1);
  4113.               localRIL1 = RIL.this;
  4114.             }
  4115.           }
  4116.           finally
  4117.           {
  4118.             RIL.this.releaseWakeLockIfDone();
  4119.           }
  4120.         }
  4121.       }
  4122.       synchronized (mRequestsList)
  4123.       {
  4124.         int i = mRequestsList.size();
  4125.         Log.d("RILJ", "WAKE_LOCK_TIMEOUT  mRequestList=" + i);
  4126.         for (int j = 0; j < i; j++)
  4127.         {
  4128.           RILRequest localRILRequest2 = (RILRequest)mRequestsList.get(j);
  4129.           Log.d("RILJ", j + ": [" + mSerial + "] " + RIL.requestToString(mRequest));
  4130.         }
  4131.         if (mRequestMessagesPending != 0)
  4132.         {
  4133.           Log.e("RILJ", "ERROR: mReqPending is NOT 0 but" + mRequestMessagesPending + " at TIMEOUT, reset!");
  4134.           mRequestMessagesPending = 0;
  4135.         }
  4136.         mWakeLock.release();
  4137.         return;
  4138.         localObject1 = finally;
  4139.         throw localObject1;
  4140.       }
  4141.     }
  4142.    
  4143.     public void run() {}
  4144.   }
  4145. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top