Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 21st, 2012  |  syntax: None  |  size: 67.63 KB  |  hits: 29  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. .class Lcom/android/server/WiredAccessoryObserver;
  2. .super Landroid/os/UEventObserver;
  3. .source "WiredAccessoryObserver.java"
  4.  
  5.  
  6. # annotations
  7. .annotation system Ldalvik/annotation/MemberClasses;
  8.     value = {
  9.         Lcom/android/server/WiredAccessoryObserver$BootCompletedReceiver;,
  10.         Lcom/android/server/WiredAccessoryObserver$UsbAudioData;
  11.     }
  12. .end annotation
  13.  
  14.  
  15. # static fields
  16. .field private static final BIT_HDMI_2:I = 0x2
  17.  
  18. .field private static final BIT_HDMI_6:I = 0x20
  19.  
  20. .field private static final BIT_HDMI_AUDIO:I = 0x10
  21.  
  22. .field private static final BIT_HEADSET:I = 0x1
  23.  
  24. .field private static final BIT_HEADSET_NO_MIC:I = 0x2
  25.  
  26. .field private static final BIT_USB_HEADSET_ANLG:I = 0x4
  27.  
  28. .field private static final BIT_USB_HEADSET_DGTL:I = 0x8
  29.  
  30. .field private static final HEADSETS_WITH_MIC:I = 0x1
  31.  
  32. .field private static final LOG:Z = true
  33.  
  34. .field private static final MAX_AUDIO_PORTS:I = 0x3
  35.  
  36. .field private static final SUPPORTED_HEADSETS:I = 0x1f
  37.  
  38. .field private static final TAG:Ljava/lang/String; = null
  39.  
  40. .field private static final USB_AUDIO_DEVICE_UEVENT:Ljava/lang/String; = "MAJOR=116"
  41.  
  42. .field private static final uEventInfo:[[Ljava/lang/String;
  43.  
  44.  
  45. # instance fields
  46. .field private mAudioManager:Landroid/media/AudioManager;
  47.  
  48. .field private final mContext:Landroid/content/Context;
  49.  
  50. .field private final mHandler:Landroid/os/Handler;
  51.  
  52. .field private final mHandler_hdmi:Landroid/os/Handler;
  53.  
  54. .field private final mHandler_usbAudio:Landroid/os/Handler;
  55.  
  56. .field private mHeadsetName:Ljava/lang/String;
  57.  
  58. .field private mHeadsetState:I
  59.  
  60. .field private mPrevHeadsetState:I
  61.  
  62. .field private final mUEventUsbAudioObserver:Landroid/os/UEventObserver;
  63.  
  64. .field private final mWakeLock:Landroid/os/PowerManager$WakeLock;
  65.  
  66. .field private switchState:I
  67.  
  68.  
  69. # direct methods
  70. .method static constructor <clinit>()V
  71.     .locals 7
  72.  
  73.     .prologue
  74.     const/4 v6, 0x3
  75.  
  76.     const/4 v5, 0x2
  77.  
  78.     const/4 v4, 0x1
  79.  
  80.     const/4 v3, 0x0
  81.  
  82.     .line 47
  83.     const-class v0, Lcom/android/server/WiredAccessoryObserver;
  84.  
  85.     invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
  86.  
  87.     move-result-object v0
  88.  
  89.     sput-object v0, Lcom/android/server/WiredAccessoryObserver;->TAG:Ljava/lang/String;
  90.  
  91.     .line 50
  92.     new-array v0, v6, [[Ljava/lang/String;
  93.  
  94.     new-array v1, v6, [Ljava/lang/String;
  95.  
  96.     const-string v2, "DEVPATH=/devices/virtual/switch/h2w"
  97.  
  98.     aput-object v2, v1, v3
  99.  
  100.     const-string v2, "/sys/class/switch/h2w/state"
  101.  
  102.     aput-object v2, v1, v4
  103.  
  104.     const-string v2, "/sys/class/switch/h2w/name"
  105.  
  106.     aput-object v2, v1, v5
  107.  
  108.     aput-object v1, v0, v3
  109.  
  110.     new-array v1, v6, [Ljava/lang/String;
  111.  
  112.     const-string v2, "DEVPATH=/devices/virtual/switch/usb_audio"
  113.  
  114.     aput-object v2, v1, v3
  115.  
  116.     const-string v2, "/sys/class/switch/usb_audio/state"
  117.  
  118.     aput-object v2, v1, v4
  119.  
  120.     const-string v2, "/sys/class/switch/usb_audio/name"
  121.  
  122.     aput-object v2, v1, v5
  123.  
  124.     aput-object v1, v0, v4
  125.  
  126.     new-array v1, v6, [Ljava/lang/String;
  127.  
  128.     const-string v2, "DEVPATH=/devices/virtual/switch/ch_hdmi_audio"
  129.  
  130.     aput-object v2, v1, v3
  131.  
  132.     const-string v2, "/sys/class/switch/ch_hdmi_audio/state"
  133.  
  134.     aput-object v2, v1, v4
  135.  
  136.     const-string v2, "/sys/class/switch/ch_hdmi_audio/name"
  137.  
  138.     aput-object v2, v1, v5
  139.  
  140.     aput-object v1, v0, v5
  141.  
  142.     sput-object v0, Lcom/android/server/WiredAccessoryObserver;->uEventInfo:[[Ljava/lang/String;
  143.  
  144.     return-void
  145. .end method
  146.  
  147. .method public constructor <init>(Landroid/content/Context;)V
  148.     .locals 5
  149.     .parameter "context"
  150.  
  151.     .prologue
  152.     const/4 v4, 0x0
  153.  
  154.     .line 110
  155.     invoke-direct {p0}, Landroid/os/UEventObserver;-><init>()V
  156.  
  157.     .line 138
  158.     new-instance v1, Lcom/android/server/WiredAccessoryObserver$1;
  159.  
  160.     invoke-direct {v1, p0}, Lcom/android/server/WiredAccessoryObserver$1;-><init>(Lcom/android/server/WiredAccessoryObserver;)V
  161.  
  162.     iput-object v1, p0, Lcom/android/server/WiredAccessoryObserver;->mUEventUsbAudioObserver:Landroid/os/UEventObserver;
  163.  
  164.     .line 575
  165.     new-instance v1, Lcom/android/server/WiredAccessoryObserver$2;
  166.  
  167.     invoke-direct {v1, p0}, Lcom/android/server/WiredAccessoryObserver$2;-><init>(Lcom/android/server/WiredAccessoryObserver;)V
  168.  
  169.     iput-object v1, p0, Lcom/android/server/WiredAccessoryObserver;->mHandler:Landroid/os/Handler;
  170.  
  171.     .line 582
  172.     new-instance v1, Lcom/android/server/WiredAccessoryObserver$3;
  173.  
  174.     invoke-direct {v1, p0}, Lcom/android/server/WiredAccessoryObserver$3;-><init>(Lcom/android/server/WiredAccessoryObserver;)V
  175.  
  176.     iput-object v1, p0, Lcom/android/server/WiredAccessoryObserver;->mHandler_hdmi:Landroid/os/Handler;
  177.  
  178.     .line 589
  179.     new-instance v1, Lcom/android/server/WiredAccessoryObserver$4;
  180.  
  181.     invoke-direct {v1, p0}, Lcom/android/server/WiredAccessoryObserver$4;-><init>(Lcom/android/server/WiredAccessoryObserver;)V
  182.  
  183.     iput-object v1, p0, Lcom/android/server/WiredAccessoryObserver;->mHandler_usbAudio:Landroid/os/Handler;
  184.  
  185.     .line 111
  186.     iput-object p1, p0, Lcom/android/server/WiredAccessoryObserver;->mContext:Landroid/content/Context;
  187.  
  188.     .line 112
  189.     const-string v1, "power"
  190.  
  191.     invoke-virtual {p1, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
  192.  
  193.     move-result-object v0
  194.  
  195.     check-cast v0, Landroid/os/PowerManager;
  196.  
  197.     .line 113
  198.     .local v0, pm:Landroid/os/PowerManager;
  199.     const/4 v1, 0x1
  200.  
  201.     const-string v2, "WiredAccessoryObserver"
  202.  
  203.     invoke-virtual {v0, v1, v2}, Landroid/os/PowerManager;->newWakeLock(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock;
  204.  
  205.     move-result-object v1
  206.  
  207.     iput-object v1, p0, Lcom/android/server/WiredAccessoryObserver;->mWakeLock:Landroid/os/PowerManager$WakeLock;
  208.  
  209.     .line 114
  210.     iget-object v1, p0, Lcom/android/server/WiredAccessoryObserver;->mWakeLock:Landroid/os/PowerManager$WakeLock;
  211.  
  212.     const/4 v2, 0x0
  213.  
  214.     invoke-virtual {v1, v2}, Landroid/os/PowerManager$WakeLock;->setReferenceCounted(Z)V
  215.  
  216.     .line 115
  217.     iget-object v1, p0, Lcom/android/server/WiredAccessoryObserver;->mContext:Landroid/content/Context;
  218.  
  219.     const-string v2, "audio"
  220.  
  221.     invoke-virtual {v1, v2}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
  222.  
  223.     move-result-object v1
  224.  
  225.     check-cast v1, Landroid/media/AudioManager;
  226.  
  227.     iput-object v1, p0, Lcom/android/server/WiredAccessoryObserver;->mAudioManager:Landroid/media/AudioManager;
  228.  
  229.     .line 117
  230.     new-instance v1, Lcom/android/server/WiredAccessoryObserver$BootCompletedReceiver;
  231.  
  232.     invoke-direct {v1, p0, v4}, Lcom/android/server/WiredAccessoryObserver$BootCompletedReceiver;-><init>(Lcom/android/server/WiredAccessoryObserver;Lcom/android/server/WiredAccessoryObserver$1;)V
  233.  
  234.     new-instance v2, Landroid/content/IntentFilter;
  235.  
  236.     const-string v3, "android.intent.action.BOOT_COMPLETED"
  237.  
  238.     invoke-direct {v2, v3}, Landroid/content/IntentFilter;-><init>(Ljava/lang/String;)V
  239.  
  240.     invoke-virtual {p1, v1, v2, v4, v4}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;
  241.  
  242.     .line 120
  243.     iget-object v1, p0, Lcom/android/server/WiredAccessoryObserver;->mUEventUsbAudioObserver:Landroid/os/UEventObserver;
  244.  
  245.     const-string v2, "MAJOR=116"
  246.  
  247.     invoke-virtual {v1, v2}, Landroid/os/UEventObserver;->startObserving(Ljava/lang/String;)V
  248.  
  249.     .line 122
  250.     return-void
  251. .end method
  252.  
  253. .method static synthetic access$100(Lcom/android/server/WiredAccessoryObserver;)V
  254.     .locals 0
  255.     .parameter "x0"
  256.  
  257.     .prologue
  258.     .line 46
  259.     invoke-direct {p0}, Lcom/android/server/WiredAccessoryObserver;->init()V
  260.  
  261.     return-void
  262. .end method
  263.  
  264. .method static synthetic access$1000(Lcom/android/server/WiredAccessoryObserver;Lcom/android/server/WiredAccessoryObserver$UsbAudioData;)V
  265.     .locals 0
  266.     .parameter "x0"
  267.     .parameter "x1"
  268.  
  269.     .prologue
  270.     .line 46
  271.     invoke-direct {p0, p1}, Lcom/android/server/WiredAccessoryObserver;->sendUSBAudioIntent(Lcom/android/server/WiredAccessoryObserver$UsbAudioData;)V
  272.  
  273.     return-void
  274. .end method
  275.  
  276. .method static synthetic access$200()[[Ljava/lang/String;
  277.     .locals 1
  278.  
  279.     .prologue
  280.     .line 46
  281.     sget-object v0, Lcom/android/server/WiredAccessoryObserver;->uEventInfo:[[Ljava/lang/String;
  282.  
  283.     return-object v0
  284. .end method
  285.  
  286. .method static synthetic access$300()Ljava/lang/String;
  287.     .locals 1
  288.  
  289.     .prologue
  290.     .line 46
  291.     sget-object v0, Lcom/android/server/WiredAccessoryObserver;->TAG:Ljava/lang/String;
  292.  
  293.     return-object v0
  294. .end method
  295.  
  296. .method static synthetic access$400(Lcom/android/server/WiredAccessoryObserver;Ljava/lang/String;)I
  297.     .locals 1
  298.     .parameter "x0"
  299.     .parameter "x1"
  300.  
  301.     .prologue
  302.     .line 46
  303.     invoke-direct {p0, p1}, Lcom/android/server/WiredAccessoryObserver;->getChannel(Ljava/lang/String;)I
  304.  
  305.     move-result v0
  306.  
  307.     return v0
  308. .end method
  309.  
  310. .method static synthetic access$500(Lcom/android/server/WiredAccessoryObserver;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
  311.     .locals 0
  312.     .parameter "x0"
  313.     .parameter "x1"
  314.     .parameter "x2"
  315.     .parameter "x3"
  316.     .parameter "x4"
  317.  
  318.     .prologue
  319.     .line 46
  320.     invoke-direct {p0, p1, p2, p3, p4}, Lcom/android/server/WiredAccessoryObserver;->update_usbaudio(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
  321.  
  322.     return-void
  323. .end method
  324.  
  325. .method static synthetic access$700(Lcom/android/server/WiredAccessoryObserver;IILjava/lang/String;)V
  326.     .locals 0
  327.     .parameter "x0"
  328.     .parameter "x1"
  329.     .parameter "x2"
  330.     .parameter "x3"
  331.  
  332.     .prologue
  333.     .line 46
  334.     invoke-direct {p0, p1, p2, p3}, Lcom/android/server/WiredAccessoryObserver;->sendIntents(IILjava/lang/String;)V
  335.  
  336.     return-void
  337. .end method
  338.  
  339. .method static synthetic access$800(Lcom/android/server/WiredAccessoryObserver;)Landroid/os/PowerManager$WakeLock;
  340.     .locals 1
  341.     .parameter "x0"
  342.  
  343.     .prologue
  344.     .line 46
  345.     iget-object v0, p0, Lcom/android/server/WiredAccessoryObserver;->mWakeLock:Landroid/os/PowerManager$WakeLock;
  346.  
  347.     return-object v0
  348. .end method
  349.  
  350. .method static synthetic access$900(Lcom/android/server/WiredAccessoryObserver;II)V
  351.     .locals 0
  352.     .parameter "x0"
  353.     .parameter "x1"
  354.     .parameter "x2"
  355.  
  356.     .prologue
  357.     .line 46
  358.     invoke-direct {p0, p1, p2}, Lcom/android/server/WiredAccessoryObserver;->sendHDMIIntent(II)V
  359.  
  360.     return-void
  361. .end method
  362.  
  363. .method private getChannel(Ljava/lang/String;)I
  364.     .locals 20
  365.     .parameter "cardNumber"
  366.  
  367.     .prologue
  368.     .line 179
  369.     const/4 v4, 0x0
  370.  
  371.     .line 180
  372.     .local v4, f:Ljava/io/File;
  373.     const/4 v8, 0x0
  374.  
  375.     .line 181
  376.     .local v8, in:Ljava/io/BufferedReader;
  377.     const/4 v2, 0x0
  378.  
  379.     .line 182
  380.     .local v2, Channels:I
  381.     new-instance v17, Ljava/lang/StringBuilder;
  382.  
  383.     invoke-direct/range {v17 .. v17}, Ljava/lang/StringBuilder;-><init>()V
  384.  
  385.     const-string v18, "/proc/asound/card"
  386.  
  387.     invoke-virtual/range {v17 .. v18}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  388.  
  389.     move-result-object v17
  390.  
  391.     move-object/from16 v0, v17
  392.  
  393.     move-object/from16 v1, p1
  394.  
  395.     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  396.  
  397.     move-result-object v17
  398.  
  399.     const-string v18, "/stream0"
  400.  
  401.     invoke-virtual/range {v17 .. v18}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  402.  
  403.     move-result-object v17
  404.  
  405.     invoke-virtual/range {v17 .. v17}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  406.  
  407.     move-result-object v15
  408.  
  409.     .line 186
  410.     .local v15, streamPath:Ljava/lang/String;
  411.     :try_start_0
  412.     new-instance v5, Ljava/io/File;
  413.  
  414.     invoke-direct {v5, v15}, Ljava/io/File;-><init>(Ljava/lang/String;)V
  415.     :try_end_0
  416.     .catchall {:try_start_0 .. :try_end_0} :catchall_0
  417.     .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
  418.  
  419.     .line 187
  420.     .end local v4           #f:Ljava/io/File;
  421.     .local v5, f:Ljava/io/File;
  422.     :try_start_1
  423.     invoke-virtual {v5}, Ljava/io/File;->exists()Z
  424.  
  425.     move-result v17
  426.  
  427.     if-nez v17, :cond_1
  428.  
  429.     .line 189
  430.     sget-object v17, Lcom/android/server/WiredAccessoryObserver;->TAG:Ljava/lang/String;
  431.  
  432.     new-instance v18, Ljava/lang/StringBuilder;
  433.  
  434.     invoke-direct/range {v18 .. v18}, Ljava/lang/StringBuilder;-><init>()V
  435.  
  436.     const-string v19, "the "
  437.  
  438.     invoke-virtual/range {v18 .. v19}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  439.  
  440.     move-result-object v18
  441.  
  442.     move-object/from16 v0, v18
  443.  
  444.     invoke-virtual {v0, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  445.  
  446.     move-result-object v18
  447.  
  448.     const-string v19, " is not exist"
  449.  
  450.     invoke-virtual/range {v18 .. v19}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  451.  
  452.     move-result-object v18
  453.  
  454.     invoke-virtual/range {v18 .. v18}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  455.  
  456.     move-result-object v18
  457.  
  458.     invoke-static/range {v17 .. v18}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
  459.     :try_end_1
  460.     .catchall {:try_start_1 .. :try_end_1} :catchall_1
  461.     .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_5
  462.  
  463.     .line 190
  464.     const/16 v17, 0x0
  465.  
  466.     .line 228
  467.     if-eqz v5, :cond_c
  468.  
  469.     const/4 v4, 0x0
  470.  
  471.     .line 229
  472.     .end local v5           #f:Ljava/io/File;
  473.     .restart local v4       #f:Ljava/io/File;
  474.     :goto_0
  475.     if-eqz v8, :cond_0
  476.  
  477.     :try_start_2
  478.     throw v8
  479.     :try_end_2
  480.     .catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_3
  481.  
  482.     .line 234
  483.     :cond_0
  484.     :goto_1
  485.     return v17
  486.  
  487.     .line 192
  488.     .end local v4           #f:Ljava/io/File;
  489.     .restart local v5       #f:Ljava/io/File;
  490.     :cond_1
  491.     :try_start_3
  492.     new-instance v9, Ljava/io/BufferedReader;
  493.  
  494.     new-instance v17, Ljava/io/FileReader;
  495.  
  496.     move-object/from16 v0, v17
  497.  
  498.     invoke-direct {v0, v5}, Ljava/io/FileReader;-><init>(Ljava/io/File;)V
  499.  
  500.     move-object/from16 v0, v17
  501.  
  502.     invoke-direct {v9, v0}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
  503.     :try_end_3
  504.     .catchall {:try_start_3 .. :try_end_3} :catchall_1
  505.     .catch Ljava/io/IOException; {:try_start_3 .. :try_end_3} :catch_5
  506.  
  507.     .line 194
  508.     .end local v8           #in:Ljava/io/BufferedReader;
  509.     .local v9, in:Ljava/io/BufferedReader;
  510.     :cond_2
  511.     :goto_2
  512.     :try_start_4
  513.     invoke-virtual {v9}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
  514.  
  515.     move-result-object v14
  516.  
  517.     .local v14, str:Ljava/lang/String;
  518.     if-eqz v14, :cond_5
  519.  
  520.     .line 196
  521.     new-instance v12, Ljava/util/StringTokenizer;
  522.  
  523.     const-string v17, ":"
  524.  
  525.     move-object/from16 v0, v17
  526.  
  527.     invoke-direct {v12, v14, v0}, Ljava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V
  528.  
  529.     .line 198
  530.     .local v12, st:Ljava/util/StringTokenizer;
  531.     invoke-virtual {v12}, Ljava/util/StringTokenizer;->hasMoreElements()Z
  532.  
  533.     move-result v17
  534.  
  535.     if-eqz v17, :cond_2
  536.  
  537.     .line 200
  538.     invoke-virtual {v12}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
  539.  
  540.     move-result-object v17
  541.  
  542.     invoke-virtual/range {v17 .. v17}, Ljava/lang/String;->trim()Ljava/lang/String;
  543.  
  544.     move-result-object v6
  545.  
  546.     .line 201
  547.     .local v6, flag:Ljava/lang/String;
  548.     const-string v17, "Format"
  549.  
  550.     move-object/from16 v0, v17
  551.  
  552.     invoke-virtual {v6, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  553.  
  554.     move-result v17
  555.  
  556.     if-eqz v17, :cond_4
  557.  
  558.     .line 203
  559.     invoke-virtual {v12}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
  560.  
  561.     move-result-object v17
  562.  
  563.     invoke-virtual/range {v17 .. v17}, Ljava/lang/String;->trim()Ljava/lang/String;
  564.  
  565.     move-result-object v11
  566.  
  567.     .line 204
  568.     .local v11, pcmFormat:Ljava/lang/String;
  569.     const-string v17, "S16_LE"
  570.  
  571.     move-object/from16 v0, v17
  572.  
  573.     invoke-virtual {v11, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  574.  
  575.     move-result v17
  576.  
  577.     if-eqz v17, :cond_2
  578.  
  579.     .line 205
  580.     invoke-virtual {v9}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
  581.  
  582.     move-result-object v14
  583.  
  584.     if-eqz v14, :cond_2
  585.  
  586.     .line 206
  587.     new-instance v13, Ljava/util/StringTokenizer;
  588.  
  589.     const-string v17, ":"
  590.  
  591.     move-object/from16 v0, v17
  592.  
  593.     invoke-direct {v13, v14, v0}, Ljava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V
  594.  
  595.     .line 207
  596.     .local v13, stChannel:Ljava/util/StringTokenizer;
  597.     invoke-virtual {v13}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
  598.  
  599.     move-result-object v17
  600.  
  601.     invoke-virtual/range {v17 .. v17}, Ljava/lang/String;->trim()Ljava/lang/String;
  602.  
  603.     move-result-object v7
  604.  
  605.     .line 208
  606.     .local v7, flagChannel:Ljava/lang/String;
  607.     const-string v17, "Channels"
  608.  
  609.     move-object/from16 v0, v17
  610.  
  611.     invoke-virtual {v7, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  612.  
  613.     move-result v17
  614.  
  615.     if-eqz v17, :cond_2
  616.  
  617.     .line 209
  618.     invoke-virtual {v13}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;
  619.  
  620.     move-result-object v17
  621.  
  622.     invoke-virtual/range {v17 .. v17}, Ljava/lang/String;->trim()Ljava/lang/String;
  623.  
  624.     move-result-object v16
  625.  
  626.     .line 210
  627.     .local v16, supportingChannel:Ljava/lang/String;
  628.     const-string v17, "2"
  629.  
  630.     invoke-virtual/range {v16 .. v17}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  631.  
  632.     move-result v17
  633.  
  634.     if-eqz v17, :cond_3
  635.  
  636.     .line 211
  637.     or-int/lit8 v2, v2, 0x2
  638.  
  639.     goto :goto_2
  640.  
  641.     .line 212
  642.     :cond_3
  643.     const-string v17, "6"
  644.  
  645.     invoke-virtual/range {v16 .. v17}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  646.  
  647.     move-result v17
  648.  
  649.     if-eqz v17, :cond_2
  650.  
  651.     .line 213
  652.     or-int/lit8 v2, v2, 0x20
  653.  
  654.     goto :goto_2
  655.  
  656.     .line 217
  657.     .end local v7           #flagChannel:Ljava/lang/String;
  658.     .end local v11           #pcmFormat:Ljava/lang/String;
  659.     .end local v13           #stChannel:Ljava/util/StringTokenizer;
  660.     .end local v16           #supportingChannel:Ljava/lang/String;
  661.     :cond_4
  662.     const-string v17, "Capture"
  663.  
  664.     move-object/from16 v0, v17
  665.  
  666.     invoke-virtual {v6, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  667.     :try_end_4
  668.     .catchall {:try_start_4 .. :try_end_4} :catchall_2
  669.     .catch Ljava/io/IOException; {:try_start_4 .. :try_end_4} :catch_6
  670.  
  671.     move-result v17
  672.  
  673.     if-eqz v17, :cond_2
  674.  
  675.     .line 228
  676.     .end local v6           #flag:Ljava/lang/String;
  677.     .end local v12           #st:Ljava/util/StringTokenizer;
  678.     :cond_5
  679.     if-eqz v5, :cond_b
  680.  
  681.     const/4 v4, 0x0
  682.  
  683.     .line 229
  684.     .end local v5           #f:Ljava/io/File;
  685.     .restart local v4       #f:Ljava/io/File;
  686.     :goto_3
  687.     if-eqz v9, :cond_6
  688.  
  689.     :try_start_5
  690.     invoke-virtual {v9}, Ljava/io/BufferedReader;->close()V
  691.     :try_end_5
  692.     .catch Ljava/io/IOException; {:try_start_5 .. :try_end_5} :catch_4
  693.  
  694.     :cond_6
  695.     :goto_4
  696.     move-object v8, v9
  697.  
  698.     .end local v9           #in:Ljava/io/BufferedReader;
  699.     .end local v14           #str:Ljava/lang/String;
  700.     .restart local v8       #in:Ljava/io/BufferedReader;
  701.     :cond_7
  702.     :goto_5
  703.     move/from16 v17, v2
  704.  
  705.     .line 234
  706.     goto/16 :goto_1
  707.  
  708.     .line 223
  709.     :catch_0
  710.     move-exception v10
  711.  
  712.     .line 225
  713.     .local v10, io:Ljava/io/IOException;
  714.     :goto_6
  715.     :try_start_6
  716.     sget-object v17, Lcom/android/server/WiredAccessoryObserver;->TAG:Ljava/lang/String;
  717.  
  718.     new-instance v18, Ljava/lang/StringBuilder;
  719.  
  720.     invoke-direct/range {v18 .. v18}, Ljava/lang/StringBuilder;-><init>()V
  721.  
  722.     const-string v19, "cannot create file : "
  723.  
  724.     invoke-virtual/range {v18 .. v19}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  725.  
  726.     move-result-object v18
  727.  
  728.     move-object/from16 v0, v18
  729.  
  730.     invoke-virtual {v0, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  731.  
  732.     move-result-object v18
  733.  
  734.     invoke-virtual/range {v18 .. v18}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  735.  
  736.     move-result-object v18
  737.  
  738.     invoke-static/range {v17 .. v18}, Landroid/util/Slog;->d(Ljava/lang/String;Ljava/lang/String;)I
  739.     :try_end_6
  740.     .catchall {:try_start_6 .. :try_end_6} :catchall_0
  741.  
  742.     .line 228
  743.     if-eqz v4, :cond_8
  744.  
  745.     const/4 v4, 0x0
  746.  
  747.     .line 229
  748.     :cond_8
  749.     if-eqz v8, :cond_7
  750.  
  751.     :try_start_7
  752.     invoke-virtual {v8}, Ljava/io/BufferedReader;->close()V
  753.     :try_end_7
  754.     .catch Ljava/io/IOException; {:try_start_7 .. :try_end_7} :catch_1
  755.  
  756.     goto :goto_5
  757.  
  758.     .line 230
  759.     :catch_1
  760.     move-exception v3
  761.  
  762.     .line 231
  763.     .local v3, ex:Ljava/io/IOException;
  764.     invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V
  765.  
  766.     goto :goto_5
  767.  
  768.     .line 227
  769.     .end local v3           #ex:Ljava/io/IOException;
  770.     .end local v10           #io:Ljava/io/IOException;
  771.     :catchall_0
  772.     move-exception v17
  773.  
  774.     .line 228
  775.     :goto_7
  776.     if-eqz v4, :cond_9
  777.  
  778.     const/4 v4, 0x0
  779.  
  780.     .line 229
  781.     :cond_9
  782.     if-eqz v8, :cond_a
  783.  
  784.     :try_start_8
  785.     invoke-virtual {v8}, Ljava/io/BufferedReader;->close()V
  786.     :try_end_8
  787.     .catch Ljava/io/IOException; {:try_start_8 .. :try_end_8} :catch_2
  788.  
  789.     .line 227
  790.     :cond_a
  791.     :goto_8
  792.     throw v17
  793.  
  794.     .line 230
  795.     :catch_2
  796.     move-exception v3
  797.  
  798.     .line 231
  799.     .restart local v3       #ex:Ljava/io/IOException;
  800.     invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V
  801.  
  802.     goto :goto_8
  803.  
  804.     .line 230
  805.     .end local v3           #ex:Ljava/io/IOException;
  806.     :catch_3
  807.     move-exception v3
  808.  
  809.     .line 231
  810.     .restart local v3       #ex:Ljava/io/IOException;
  811.     invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V
  812.  
  813.     goto/16 :goto_1
  814.  
  815.     .line 230
  816.     .end local v3           #ex:Ljava/io/IOException;
  817.     .end local v8           #in:Ljava/io/BufferedReader;
  818.     .restart local v9       #in:Ljava/io/BufferedReader;
  819.     .restart local v14       #str:Ljava/lang/String;
  820.     :catch_4
  821.     move-exception v3
  822.  
  823.     .line 231
  824.     .restart local v3       #ex:Ljava/io/IOException;
  825.     invoke-virtual {v3}, Ljava/io/IOException;->printStackTrace()V
  826.  
  827.     goto :goto_4
  828.  
  829.     .line 227
  830.     .end local v3           #ex:Ljava/io/IOException;
  831.     .end local v4           #f:Ljava/io/File;
  832.     .end local v9           #in:Ljava/io/BufferedReader;
  833.     .end local v14           #str:Ljava/lang/String;
  834.     .restart local v5       #f:Ljava/io/File;
  835.     .restart local v8       #in:Ljava/io/BufferedReader;
  836.     :catchall_1
  837.     move-exception v17
  838.  
  839.     move-object v4, v5
  840.  
  841.     .end local v5           #f:Ljava/io/File;
  842.     .restart local v4       #f:Ljava/io/File;
  843.     goto :goto_7
  844.  
  845.     .end local v4           #f:Ljava/io/File;
  846.     .end local v8           #in:Ljava/io/BufferedReader;
  847.     .restart local v5       #f:Ljava/io/File;
  848.     .restart local v9       #in:Ljava/io/BufferedReader;
  849.     :catchall_2
  850.     move-exception v17
  851.  
  852.     move-object v8, v9
  853.  
  854.     .end local v9           #in:Ljava/io/BufferedReader;
  855.     .restart local v8       #in:Ljava/io/BufferedReader;
  856.     move-object v4, v5
  857.  
  858.     .end local v5           #f:Ljava/io/File;
  859.     .restart local v4       #f:Ljava/io/File;
  860.     goto :goto_7
  861.  
  862.     .line 223
  863.     .end local v4           #f:Ljava/io/File;
  864.     .restart local v5       #f:Ljava/io/File;
  865.     :catch_5
  866.     move-exception v10
  867.  
  868.     move-object v4, v5
  869.  
  870.     .end local v5           #f:Ljava/io/File;
  871.     .restart local v4       #f:Ljava/io/File;
  872.     goto :goto_6
  873.  
  874.     .end local v4           #f:Ljava/io/File;
  875.     .end local v8           #in:Ljava/io/BufferedReader;
  876.     .restart local v5       #f:Ljava/io/File;
  877.     .restart local v9       #in:Ljava/io/BufferedReader;
  878.     :catch_6
  879.     move-exception v10
  880.  
  881.     move-object v8, v9
  882.  
  883.     .end local v9           #in:Ljava/io/BufferedReader;
  884.     .restart local v8       #in:Ljava/io/BufferedReader;
  885.     move-object v4, v5
  886.  
  887.     .end local v5           #f:Ljava/io/File;
  888.     .restart local v4       #f:Ljava/io/File;
  889.     goto :goto_6
  890.  
  891.     .end local v4           #f:Ljava/io/File;
  892.     .end local v8           #in:Ljava/io/BufferedReader;
  893.     .restart local v5       #f:Ljava/io/File;
  894.     .restart local v9       #in:Ljava/io/BufferedReader;
  895.     .restart local v14       #str:Ljava/lang/String;
  896.     :cond_b
  897.     move-object v4, v5
  898.  
  899.     .end local v5           #f:Ljava/io/File;
  900.     .restart local v4       #f:Ljava/io/File;
  901.     goto :goto_3
  902.  
  903.     .end local v4           #f:Ljava/io/File;
  904.     .end local v9           #in:Ljava/io/BufferedReader;
  905.     .end local v14           #str:Ljava/lang/String;
  906.     .restart local v5       #f:Ljava/io/File;
  907.     .restart local v8       #in:Ljava/io/BufferedReader;
  908.     :cond_c
  909.     move-object v4, v5
  910.  
  911.     .end local v5           #f:Ljava/io/File;
  912.     .restart local v4       #f:Ljava/io/File;
  913.     goto/16 :goto_0
  914. .end method
  915.  
  916. .method private static getFactoryMode()Z
  917.     .locals 5
  918.  
  919.     .prologue
  920.     .line 511
  921.     const/4 v1, 0x0
  922.  
  923.     .line 513
  924.     .local v1, userMode:Ljava/lang/String;
  925.     :try_start_0
  926.     new-instance v2, Ljava/io/File;
  927.  
  928.     const-string v3, "/efs/FactoryApp/factorymode"
  929.  
  930.     invoke-direct {v2, v3}, Ljava/io/File;-><init>(Ljava/lang/String;)V
  931.  
  932.     const/16 v3, 0x20
  933.  
  934.     const/4 v4, 0x0
  935.  
  936.     invoke-static {v2, v3, v4}, Landroid/os/FileUtils;->readTextFile(Ljava/io/File;ILjava/lang/String;)Ljava/lang/String;
  937.     :try_end_0
  938.     .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0
  939.  
  940.     move-result-object v1
  941.  
  942.     .line 518
  943.     :goto_0
  944.     if-eqz v1, :cond_0
  945.  
  946.     const-string v2, "ON"
  947.  
  948.     invoke-virtual {v1, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
  949.  
  950.     move-result v2
  951.  
  952.     if-eqz v2, :cond_0
  953.  
  954.     .line 519
  955.     const/4 v2, 0x0
  956.  
  957.     .line 521
  958.     :goto_1
  959.     return v2
  960.  
  961.     .line 514
  962.     :catch_0
  963.     move-exception v0
  964.  
  965.     .line 515
  966.     .local v0, e1:Ljava/io/IOException;
  967.     const-string v1, "OFF"
  968.  
  969.     .line 516
  970.     sget-object v2, Lcom/android/server/WiredAccessoryObserver;->TAG:Ljava/lang/String;
  971.  
  972.     const-string v3, "cannot open file : /efs/FactoryApp/factorymode "
  973.  
  974.     invoke-static {v2, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
  975.  
  976.     goto :goto_0
  977.  
  978.     .line 521
  979.     .end local v0           #e1:Ljava/io/IOException;
  980.     :cond_0
  981.     const/4 v2, 0x1
  982.  
  983.     goto :goto_1
  984. .end method
  985.  
  986. .method private final declared-synchronized init()V
  987.     .locals 9
  988.  
  989.     .prologue
  990.     .line 275
  991.     monitor-enter p0
  992.  
  993.     const/16 v7, 0x400
  994.  
  995.     :try_start_0
  996.     new-array v0, v7, [C
  997.  
  998.     .line 277
  999.     .local v0, buffer:[C
  1000.     iget-object v5, p0, Lcom/android/server/WiredAccessoryObserver;->mHeadsetName:Ljava/lang/String;
  1001.  
  1002.     .line 278
  1003.     .local v5, newName:Ljava/lang/String;
  1004.     iget v6, p0, Lcom/android/server/WiredAccessoryObserver;->mHeadsetState:I
  1005.  
  1006.     .line 279
  1007.     .local v6, newState:I
  1008.     iget v7, p0, Lcom/android/server/WiredAccessoryObserver;->mHeadsetState:I
  1009.  
  1010.     iput v7, p0, Lcom/android/server/WiredAccessoryObserver;->mPrevHeadsetState:I
  1011.  
  1012.     .line 281
  1013.     sget-object v7, Lcom/android/server/WiredAccessoryObserver;->TAG:Ljava/lang/String;
  1014.  
  1015.     const-string v8, "init()"
  1016.  
  1017.     invoke-static {v7, v8}, Landroid/util/Slog;->v(Ljava/lang/String;Ljava/lang/String;)I
  1018.     :try_end_0
  1019.     .catchall {:try_start_0 .. :try_end_0} :catchall_0
  1020.  
  1021.     .line 283
  1022.     const/4 v3, 0x0
  1023.  
  1024.     .local v3, i:I
  1025.     :goto_0
  1026.     const/4 v7, 0x3
  1027.  
  1028.     if-ge v3, v7, :cond_1
  1029.  
  1030.     .line 285
  1031.     :try_start_1
  1032.     new-instance v2, Ljava/io/FileReader;
  1033.  
  1034.     sget-object v7, Lcom/android/server/WiredAccessoryObserver;->uEventInfo:[[Ljava/lang/String;
  1035.  
  1036.     aget-object v7, v7, v3
  1037.  
  1038.     const/4 v8, 0x1
  1039.  
  1040.     aget-object v7, v7, v8
  1041.  
  1042.     invoke-direct {v2, v7}, Ljava/io/FileReader;-><init>(Ljava/lang/String;)V
  1043.  
  1044.     .line 286
  1045.     .local v2, file:Ljava/io/FileReader;
  1046.     const/4 v7, 0x0
  1047.  
  1048.     const/16 v8, 0x400
  1049.  
  1050.     invoke-virtual {v2, v0, v7, v8}, Ljava/io/FileReader;->read([CII)I
  1051.  
  1052.     move-result v4
  1053.  
  1054.     .line 287
  1055.     .local v4, len:I
  1056.     invoke-virtual {v2}, Ljava/io/FileReader;->close()V
  1057.  
  1058.     .line 288
  1059.     new-instance v7, Ljava/lang/String;
  1060.  
  1061.     const/4 v8, 0x0
  1062.  
  1063.     invoke-direct {v7, v0, v8, v4}, Ljava/lang/String;-><init>([CII)V
  1064.  
  1065.     invoke-virtual {v7}, Ljava/lang/String;->trim()Ljava/lang/String;
  1066.  
  1067.     move-result-object v7
  1068.  
  1069.     invoke-static {v7}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
  1070.  
  1071.     move-result-object v7
  1072.  
  1073.     invoke-virtual {v7}, Ljava/lang/Integer;->intValue()I
  1074.  
  1075.     move-result v6
  1076.  
  1077.     .line 290
  1078.     new-instance v2, Ljava/io/FileReader;
  1079.  
  1080.     .end local v2           #file:Ljava/io/FileReader;
  1081.     sget-object v7, Lcom/android/server/WiredAccessoryObserver;->uEventInfo:[[Ljava/lang/String;
  1082.  
  1083.     aget-object v7, v7, v3
  1084.  
  1085.     const/4 v8, 0x2
  1086.  
  1087.     aget-object v7, v7, v8
  1088.  
  1089.     invoke-direct {v2, v7}, Ljava/io/FileReader;-><init>(Ljava/lang/String;)V
  1090.  
  1091.     .line 291
  1092.     .restart local v2       #file:Ljava/io/FileReader;
  1093.     const/4 v7, 0x0
  1094.  
  1095.     const/16 v8, 0x400
  1096.  
  1097.     invoke-virtual {v2, v0, v7, v8}, Ljava/io/FileReader;->read([CII)I
  1098.  
  1099.     move-result v4
  1100.  
  1101.     .line 292
  1102.     invoke-virtual {v2}, Ljava/io/FileReader;->close()V
  1103.  
  1104.     .line 293
  1105.     new-instance v7, Ljava/lang/String;
  1106.  
  1107.     const/4 v8, 0x0
  1108.  
  1109.     invoke-direct {v7, v0, v8, v4}, Ljava/lang/String;-><init>([CII)V
  1110.  
  1111.     invoke-virtual {v7}, Ljava/lang/String;->trim()Ljava/lang/String;
  1112.  
  1113.     move-result-object v5
  1114.  
  1115.     .line 295
  1116.     if-lez v6, :cond_0
  1117.  
  1118.     .line 296
  1119.     invoke-direct {p0, v5, v6}, Lcom/android/server/WiredAccessoryObserver;->updateState(Ljava/lang/String;I)V
  1120.     :try_end_1
  1121.     .catchall {:try_start_1 .. :try_end_1} :catchall_0
  1122.     .catch Ljava/io/FileNotFoundException; {:try_start_1 .. :try_end_1} :catch_0
  1123.     .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1
  1124.  
  1125.     .line 283
  1126.     .end local v2           #file:Ljava/io/FileReader;
  1127.     .end local v4           #len:I
  1128.     :cond_0
  1129.     :goto_1
  1130.     add-int/lit8 v3, v3, 0x1
  1131.  
  1132.     goto :goto_0
  1133.  
  1134.     .line 299
  1135.     :catch_0
  1136.     move-exception v1
  1137.  
  1138.     .line 300
  1139.     .local v1, e:Ljava/io/FileNotFoundException;
  1140.     :try_start_2
  1141.     sget-object v7, Lcom/android/server/WiredAccessoryObserver;->TAG:Ljava/lang/String;
  1142.  
  1143.     const-string v8, "This kernel does not have wired headset support"
  1144.  
  1145.     invoke-static {v7, v8}, Landroid/util/Slog;->w(Ljava/lang/String;Ljava/lang/String;)I
  1146.     :try_end_2
  1147.     .catchall {:try_start_2 .. :try_end_2} :catchall_0
  1148.  
  1149.     goto :goto_1
  1150.  
  1151.     .line 275
  1152.     .end local v0           #buffer:[C
  1153.     .end local v1           #e:Ljava/io/FileNotFoundException;
  1154.     .end local v3           #i:I
  1155.     .end local v5           #newName:Ljava/lang/String;
  1156.     .end local v6           #newState:I
  1157.     :catchall_0
  1158.     move-exception v7
  1159.  
  1160.     monitor-exit p0
  1161.  
  1162.     throw v7
  1163.  
  1164.     .line 301
  1165.     .restart local v0       #buffer:[C
  1166.     .restart local v3       #i:I
  1167.     .restart local v5       #newName:Ljava/lang/String;
  1168.     .restart local v6       #newState:I
  1169.     :catch_1
  1170.     move-exception v1
  1171.  
  1172.     .line 302
  1173.     .local v1, e:Ljava/lang/Exception;
  1174.     :try_start_3
  1175.     sget-object v7, Lcom/android/server/WiredAccessoryObserver;->TAG:Ljava/lang/String;
  1176.  
  1177.     const-string v8, ""
  1178.  
  1179.     invoke-static {v7, v8, v1}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
  1180.     :try_end_3
  1181.     .catchall {:try_start_3 .. :try_end_3} :catchall_0
  1182.  
  1183.     goto :goto_1
  1184.  
  1185.     .line 305
  1186.     .end local v1           #e:Ljava/lang/Exception;
  1187.     :cond_1
  1188.     monitor-exit p0
  1189.  
  1190.     return-void
  1191. .end method
  1192.  
  1193. .method private isFactorySim()Z
  1194.     .locals 5
  1195.  
  1196.     .prologue
  1197.     .line 525
  1198.     iget-object v3, p0, Lcom/android/server/WiredAccessoryObserver;->mContext:Landroid/content/Context;
  1199.  
  1200.     const-string v4, "phone"
  1201.  
  1202.     invoke-virtual {v3, v4}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
  1203.  
  1204.     move-result-object v2
  1205.  
  1206.     check-cast v2, Landroid/telephony/TelephonyManager;
  1207.  
  1208.     .line 526
  1209.     .local v2, tm:Landroid/telephony/TelephonyManager;
  1210.     const-string v0, "999999999999999"
  1211.  
  1212.     .line 527
  1213.     .local v0, IMSI:Ljava/lang/String;
  1214.     invoke-virtual {v2}, Landroid/telephony/TelephonyManager;->getSubscriberId()Ljava/lang/String;
  1215.  
  1216.     move-result-object v1
  1217.  
  1218.     .line 528
  1219.     .local v1, imsi:Ljava/lang/String;
  1220.     if-eqz v1, :cond_0
  1221.  
  1222.     const-string v3, "999999999999999"
  1223.  
  1224.     invoke-virtual {v1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  1225.  
  1226.     move-result v3
  1227.  
  1228.     if-eqz v3, :cond_0
  1229.  
  1230.     .line 529
  1231.     const/4 v3, 0x1
  1232.  
  1233.     .line 531
  1234.     :goto_0
  1235.     return v3
  1236.  
  1237.     :cond_0
  1238.     const/4 v3, 0x0
  1239.  
  1240.     goto :goto_0
  1241. .end method
  1242.  
  1243. .method private final sendHDMIIntent(II)V
  1244.     .locals 7
  1245.     .parameter "hdmiState"
  1246.     .parameter "ch_info"
  1247.  
  1248.     .prologue
  1249.     const/high16 v6, 0x4000
  1250.  
  1251.     const/4 v5, 0x0
  1252.  
  1253.     .line 536
  1254.     const/4 v3, 0x2
  1255.  
  1256.     if-eq p2, v3, :cond_1
  1257.  
  1258.     invoke-static {}, Lcom/android/server/WiredAccessoryObserver;->getFactoryMode()Z
  1259.  
  1260.     move-result v3
  1261.  
  1262.     if-nez v3, :cond_1
  1263.  
  1264.     invoke-direct {p0}, Lcom/android/server/WiredAccessoryObserver;->isFactorySim()Z
  1265.  
  1266.     move-result v3
  1267.  
  1268.     if-nez v3, :cond_1
  1269.  
  1270.     .line 538
  1271.     iget-object v3, p0, Lcom/android/server/WiredAccessoryObserver;->mAudioManager:Landroid/media/AudioManager;
  1272.  
  1273.     const-string v4, "audioParam;factoryteststate=0"
  1274.  
  1275.     invoke-virtual {v3, v4}, Landroid/media/AudioManager;->setParameters(Ljava/lang/String;)V
  1276.  
  1277.     .line 540
  1278.     new-instance v2, Landroid/content/Intent;
  1279.  
  1280.     const-string v3, "android.intent.action.ACTION_HDMI_AUDIO_CH_POPUP"
  1281.  
  1282.     invoke-direct {v2, v3}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
  1283.  
  1284.     .line 541
  1285.     .local v2, intentToPopup:Landroid/content/Intent;
  1286.     const-string v3, "state"
  1287.  
  1288.     invoke-virtual {v2, v3, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
  1289.  
  1290.     .line 542
  1291.     const-string v3, "channels"
  1292.  
  1293.     invoke-virtual {v2, v3, p2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
  1294.  
  1295.     .line 543
  1296.     invoke-static {v2, v5}, Landroid/app/ActivityManagerNative;->broadcastStickyIntent(Landroid/content/Intent;Ljava/lang/String;)V
  1297.  
  1298.     .line 545
  1299.     if-nez p1, :cond_0
  1300.  
  1301.     .line 547
  1302.     new-instance v0, Landroid/content/Intent;
  1303.  
  1304.     const-string v3, "android.intent.action.HDMI_AUDIO_PLUG"
  1305.  
  1306.     invoke-direct {v0, v3}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
  1307.  
  1308.     .line 548
  1309.     .local v0, intentToAudioSerivce:Landroid/content/Intent;
  1310.     invoke-virtual {v0, v6}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
  1311.  
  1312.     .line 549
  1313.     const-string v3, "state"
  1314.  
  1315.     invoke-virtual {v0, v3, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
  1316.  
  1317.     .line 550
  1318.     const-string v3, "channels"
  1319.  
  1320.     invoke-virtual {v0, v3, p2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
  1321.  
  1322.     .line 551
  1323.     invoke-static {v0, v5}, Landroid/app/ActivityManagerNative;->broadcastStickyIntent(Landroid/content/Intent;Ljava/lang/String;)V
  1324.  
  1325.     .line 563
  1326.     .end local v0           #intentToAudioSerivce:Landroid/content/Intent;
  1327.     .end local v2           #intentToPopup:Landroid/content/Intent;
  1328.     :cond_0
  1329.     :goto_0
  1330.     return-void
  1331.  
  1332.     .line 554
  1333.     :cond_1
  1334.     iget-object v3, p0, Lcom/android/server/WiredAccessoryObserver;->mAudioManager:Landroid/media/AudioManager;
  1335.  
  1336.     const-string v4, "audioParam;factoryteststate=1"
  1337.  
  1338.     invoke-virtual {v3, v4}, Landroid/media/AudioManager;->setParameters(Ljava/lang/String;)V
  1339.  
  1340.     .line 556
  1341.     new-instance v1, Landroid/content/Intent;
  1342.  
  1343.     const-string v3, "android.intent.action.HDMI_AUDIO_PLUG"
  1344.  
  1345.     invoke-direct {v1, v3}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
  1346.  
  1347.     .line 557
  1348.     .local v1, intentToAudioSerivce2:Landroid/content/Intent;
  1349.     invoke-virtual {v1, v6}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
  1350.  
  1351.     .line 558
  1352.     const-string v3, "state"
  1353.  
  1354.     invoke-virtual {v1, v3, p1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
  1355.  
  1356.     .line 559
  1357.     const-string v3, "channels"
  1358.  
  1359.     invoke-virtual {v1, v3, p2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
  1360.  
  1361.     .line 560
  1362.     invoke-static {v1, v5}, Landroid/app/ActivityManagerNative;->broadcastStickyIntent(Landroid/content/Intent;Ljava/lang/String;)V
  1363.  
  1364.     goto :goto_0
  1365. .end method
  1366.  
  1367. .method private final sendIntent(IIILjava/lang/String;)V
  1368.     .locals 10
  1369.     .parameter "headset"
  1370.     .parameter "headsetState"
  1371.     .parameter "prevHeadsetState"
  1372.     .parameter "headsetName"
  1373.  
  1374.     .prologue
  1375.     const/16 v9, 0x10
  1376.  
  1377.     const/16 v8, 0x8
  1378.  
  1379.     const/4 v5, 0x4
  1380.  
  1381.     const/4 v7, 0x0
  1382.  
  1383.     const/high16 v6, 0x4000
  1384.  
  1385.     .line 393
  1386.     and-int v3, p2, p1
  1387.  
  1388.     and-int v4, p3, p1
  1389.  
  1390.     if-eq v3, v4, :cond_6
  1391.  
  1392.     .line 395
  1393.     const/4 v2, 0x0
  1394.  
  1395.     .line 396
  1396.     .local v2, state:I
  1397.     and-int v3, p2, p1
  1398.  
  1399.     if-eqz v3, :cond_0
  1400.  
  1401.     .line 397
  1402.     const/4 v2, 0x1
  1403.  
  1404.     .line 399
  1405.     :cond_0
  1406.     if-eq p1, v5, :cond_1
  1407.  
  1408.     if-eq p1, v8, :cond_1
  1409.  
  1410.     if-ne p1, v9, :cond_3
  1411.  
  1412.     .line 404
  1413.     :cond_1
  1414.     if-ne p1, v5, :cond_7
  1415.  
  1416.     .line 405
  1417.     new-instance v0, Landroid/content/Intent;
  1418.  
  1419.     const-string v3, "android.intent.action.USB_ANLG_HEADSET_PLUG"
  1420.  
  1421.     invoke-direct {v0, v3}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
  1422.  
  1423.     .line 406
  1424.     .local v0, intent:Landroid/content/Intent;
  1425.     invoke-virtual {v0, v6}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
  1426.  
  1427.     .line 407
  1428.     const-string v3, "state"
  1429.  
  1430.     invoke-virtual {v0, v3, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
  1431.  
  1432.     .line 408
  1433.     const-string v3, "name"
  1434.  
  1435.     invoke-virtual {v0, v3, p4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
  1436.  
  1437.     .line 409
  1438.     invoke-static {v0, v7}, Landroid/app/ActivityManagerNative;->broadcastStickyIntent(Landroid/content/Intent;Ljava/lang/String;)V
  1439.  
  1440.     .line 424
  1441.     .end local v0           #intent:Landroid/content/Intent;
  1442.     :cond_2
  1443.     :goto_0
  1444.     sget-object v3, Lcom/android/server/WiredAccessoryObserver;->TAG:Ljava/lang/String;
  1445.  
  1446.     new-instance v4, Ljava/lang/StringBuilder;
  1447.  
  1448.     invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
  1449.  
  1450.     const-string v5, "Intent.ACTION_USB_HEADSET_PLUG: state: "
  1451.  
  1452.     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1453.  
  1454.     move-result-object v4
  1455.  
  1456.     invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  1457.  
  1458.     move-result-object v4
  1459.  
  1460.     const-string v5, " name: "
  1461.  
  1462.     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1463.  
  1464.     move-result-object v4
  1465.  
  1466.     invoke-virtual {v4, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1467.  
  1468.     move-result-object v4
  1469.  
  1470.     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  1471.  
  1472.     move-result-object v4
  1473.  
  1474.     invoke-static {v3, v4}, Landroid/util/Slog;->v(Ljava/lang/String;Ljava/lang/String;)I
  1475.  
  1476.     .line 427
  1477.     :cond_3
  1478.     const/4 v3, 0x1
  1479.  
  1480.     if-eq p1, v3, :cond_4
  1481.  
  1482.     const/4 v3, 0x2
  1483.  
  1484.     if-ne p1, v3, :cond_6
  1485.  
  1486.     .line 430
  1487.     :cond_4
  1488.     new-instance v0, Landroid/content/Intent;
  1489.  
  1490.     const-string v3, "android.intent.action.HEADSET_PLUG"
  1491.  
  1492.     invoke-direct {v0, v3}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
  1493.  
  1494.     .line 431
  1495.     .restart local v0       #intent:Landroid/content/Intent;
  1496.     invoke-virtual {v0, v6}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
  1497.  
  1498.     .line 433
  1499.     const/4 v1, 0x0
  1500.  
  1501.     .line 435
  1502.     .local v1, microphone:I
  1503.     and-int/lit8 v3, p1, 0x1
  1504.  
  1505.     if-eqz v3, :cond_5
  1506.  
  1507.     .line 436
  1508.     const/4 v1, 0x1
  1509.  
  1510.     .line 439
  1511.     :cond_5
  1512.     const-string v3, "state"
  1513.  
  1514.     invoke-virtual {v0, v3, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
  1515.  
  1516.     .line 440
  1517.     const-string v3, "name"
  1518.  
  1519.     invoke-virtual {v0, v3, p4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
  1520.  
  1521.     .line 441
  1522.     const-string v3, "microphone"
  1523.  
  1524.     invoke-virtual {v0, v3, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
  1525.  
  1526.     .line 443
  1527.     sget-object v3, Lcom/android/server/WiredAccessoryObserver;->TAG:Ljava/lang/String;
  1528.  
  1529.     new-instance v4, Ljava/lang/StringBuilder;
  1530.  
  1531.     invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
  1532.  
  1533.     const-string v5, "Intent.ACTION_HEADSET_PLUG: state: "
  1534.  
  1535.     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1536.  
  1537.     move-result-object v4
  1538.  
  1539.     invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  1540.  
  1541.     move-result-object v4
  1542.  
  1543.     const-string v5, " name: "
  1544.  
  1545.     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1546.  
  1547.     move-result-object v4
  1548.  
  1549.     invoke-virtual {v4, p4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1550.  
  1551.     move-result-object v4
  1552.  
  1553.     const-string v5, " mic: "
  1554.  
  1555.     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1556.  
  1557.     move-result-object v4
  1558.  
  1559.     invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  1560.  
  1561.     move-result-object v4
  1562.  
  1563.     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  1564.  
  1565.     move-result-object v4
  1566.  
  1567.     invoke-static {v3, v4}, Landroid/util/Slog;->v(Ljava/lang/String;Ljava/lang/String;)I
  1568.  
  1569.     .line 445
  1570.     invoke-static {v0, v7}, Landroid/app/ActivityManagerNative;->broadcastStickyIntent(Landroid/content/Intent;Ljava/lang/String;)V
  1571.  
  1572.     .line 448
  1573.     .end local v0           #intent:Landroid/content/Intent;
  1574.     .end local v1           #microphone:I
  1575.     .end local v2           #state:I
  1576.     :cond_6
  1577.     return-void
  1578.  
  1579.     .line 410
  1580.     .restart local v2       #state:I
  1581.     :cond_7
  1582.     if-ne p1, v8, :cond_8
  1583.  
  1584.     .line 411
  1585.     new-instance v0, Landroid/content/Intent;
  1586.  
  1587.     const-string v3, "android.intent.action.USB_DGTL_HEADSET_PLUG"
  1588.  
  1589.     invoke-direct {v0, v3}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
  1590.  
  1591.     .line 412
  1592.     .restart local v0       #intent:Landroid/content/Intent;
  1593.     invoke-virtual {v0, v6}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
  1594.  
  1595.     .line 413
  1596.     const-string v3, "state"
  1597.  
  1598.     invoke-virtual {v0, v3, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
  1599.  
  1600.     .line 414
  1601.     const-string v3, "name"
  1602.  
  1603.     invoke-virtual {v0, v3, p4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
  1604.  
  1605.     .line 415
  1606.     invoke-static {v0, v7}, Landroid/app/ActivityManagerNative;->broadcastStickyIntent(Landroid/content/Intent;Ljava/lang/String;)V
  1607.  
  1608.     goto/16 :goto_0
  1609.  
  1610.     .line 416
  1611.     .end local v0           #intent:Landroid/content/Intent;
  1612.     :cond_8
  1613.     if-ne p1, v9, :cond_2
  1614.  
  1615.     .line 417
  1616.     new-instance v0, Landroid/content/Intent;
  1617.  
  1618.     const-string v3, "android.intent.action.HDMI_AUDIO_PLUG"
  1619.  
  1620.     invoke-direct {v0, v3}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
  1621.  
  1622.     .line 418
  1623.     .restart local v0       #intent:Landroid/content/Intent;
  1624.     invoke-virtual {v0, v6}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
  1625.  
  1626.     .line 419
  1627.     const-string v3, "state"
  1628.  
  1629.     invoke-virtual {v0, v3, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
  1630.  
  1631.     .line 420
  1632.     const-string v3, "name"
  1633.  
  1634.     invoke-virtual {v0, v3, p4}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
  1635.  
  1636.     .line 421
  1637.     invoke-static {v0, v7}, Landroid/app/ActivityManagerNative;->broadcastStickyIntent(Landroid/content/Intent;Ljava/lang/String;)V
  1638.  
  1639.     goto/16 :goto_0
  1640. .end method
  1641.  
  1642. .method private final declared-synchronized sendIntents(IILjava/lang/String;)V
  1643.     .locals 6
  1644.     .parameter "headsetState"
  1645.     .parameter "prevHeadsetState"
  1646.     .parameter "headsetName"
  1647.  
  1648.     .prologue
  1649.     const/4 v5, 0x2
  1650.  
  1651.     const/4 v4, 0x1
  1652.  
  1653.     .line 373
  1654.     monitor-enter p0
  1655.  
  1656.     const/16 v0, 0x1f
  1657.  
  1658.     .line 374
  1659.     .local v0, allHeadsets:I
  1660.     const/4 v1, 0x1
  1661.  
  1662.     .local v1, curHeadset:I
  1663.     :goto_0
  1664.     if-eqz v0, :cond_3
  1665.  
  1666.     .line 375
  1667.     and-int v2, v1, v0
  1668.  
  1669.     if-eqz v2, :cond_0
  1670.  
  1671.     .line 376
  1672.     if-ne p2, v5, :cond_2
  1673.  
  1674.     if-ne p1, v4, :cond_2
  1675.  
  1676.     .line 378
  1677.     if-ne v1, v5, :cond_1
  1678.  
  1679.     .line 374
  1680.     :cond_0
  1681.     :goto_1
  1682.     shl-int/lit8 v1, v1, 0x1
  1683.  
  1684.     goto :goto_0
  1685.  
  1686.     .line 380
  1687.     :cond_1
  1688.     if-ne v1, v4, :cond_2
  1689.  
  1690.     .line 382
  1691.     const/4 v2, 0x2
  1692.  
  1693.     const/4 v3, 0x1
  1694.  
  1695.     :try_start_0
  1696.     invoke-direct {p0, v2, v3, p2, p3}, Lcom/android/server/WiredAccessoryObserver;->sendIntent(IIILjava/lang/String;)V
  1697.  
  1698.     .line 383
  1699.     and-int/lit8 v0, v0, -0x3
  1700.  
  1701.     .line 386
  1702.     :cond_2
  1703.     invoke-direct {p0, v1, p1, p2, p3}, Lcom/android/server/WiredAccessoryObserver;->sendIntent(IIILjava/lang/String;)V
  1704.     :try_end_0
  1705.     .catchall {:try_start_0 .. :try_end_0} :catchall_0
  1706.  
  1707.     .line 387
  1708.     xor-int/lit8 v2, v1, -0x1
  1709.  
  1710.     and-int/2addr v0, v2
  1711.  
  1712.     goto :goto_1
  1713.  
  1714.     .line 390
  1715.     :cond_3
  1716.     monitor-exit p0
  1717.  
  1718.     return-void
  1719.  
  1720.     .line 373
  1721.     :catchall_0
  1722.     move-exception v2
  1723.  
  1724.     monitor-exit p0
  1725.  
  1726.     throw v2
  1727. .end method
  1728.  
  1729. .method private final sendUSBAudioIntent(Lcom/android/server/WiredAccessoryObserver$UsbAudioData;)V
  1730.     .locals 3
  1731.     .parameter "usbAudioData"
  1732.  
  1733.     .prologue
  1734.     .line 566
  1735.     new-instance v0, Landroid/content/Intent;
  1736.  
  1737.     const-string v1, "android.intent.action.EXTERNAL_USB_HEADSET_PLUG"
  1738.  
  1739.     invoke-direct {v0, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
  1740.  
  1741.     .line 567
  1742.     .local v0, intent:Landroid/content/Intent;
  1743.     const/high16 v1, 0x4000
  1744.  
  1745.     invoke-virtual {v0, v1}, Landroid/content/Intent;->addFlags(I)Landroid/content/Intent;
  1746.  
  1747.     .line 568
  1748.     const-string v1, "state"
  1749.  
  1750.     invoke-virtual {p1}, Lcom/android/server/WiredAccessoryObserver$UsbAudioData;->getState()I
  1751.  
  1752.     move-result v2
  1753.  
  1754.     invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
  1755.  
  1756.     .line 569
  1757.     const-string v1, "channels"
  1758.  
  1759.     invoke-virtual {p1}, Lcom/android/server/WiredAccessoryObserver$UsbAudioData;->getChannels()Ljava/lang/String;
  1760.  
  1761.     move-result-object v2
  1762.  
  1763.     invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
  1764.  
  1765.     .line 570
  1766.     const-string v1, "cardnumber"
  1767.  
  1768.     invoke-virtual {p1}, Lcom/android/server/WiredAccessoryObserver$UsbAudioData;->getCardNumber()Ljava/lang/String;
  1769.  
  1770.     move-result-object v2
  1771.  
  1772.     invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
  1773.  
  1774.     .line 571
  1775.     const-string v1, "devicenumber"
  1776.  
  1777.     invoke-virtual {p1}, Lcom/android/server/WiredAccessoryObserver$UsbAudioData;->getDeviceNumber()Ljava/lang/String;
  1778.  
  1779.     move-result-object v2
  1780.  
  1781.     invoke-virtual {v0, v1, v2}, Landroid/content/Intent;->putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;
  1782.  
  1783.     .line 572
  1784.     const/4 v1, 0x0
  1785.  
  1786.     invoke-static {v0, v1}, Landroid/app/ActivityManagerNative;->broadcastStickyIntent(Landroid/content/Intent;Ljava/lang/String;)V
  1787.  
  1788.     .line 573
  1789.     return-void
  1790. .end method
  1791.  
  1792. .method private final declared-synchronized update(Ljava/lang/String;II)V
  1793.     .locals 17
  1794.     .parameter "newName"
  1795.     .parameter "newState"
  1796.     .parameter "originalState"
  1797.  
  1798.     .prologue
  1799.     .line 309
  1800.     monitor-enter p0
  1801.  
  1802.     and-int/lit8 v5, p2, 0x1f
  1803.  
  1804.     .line 310
  1805.     .local v5, headsetState:I
  1806.     :try_start_0
  1807.     move-object/from16 v0, p0
  1808.  
  1809.     iget v11, v0, Lcom/android/server/WiredAccessoryObserver;->mHeadsetState:I
  1810.  
  1811.     or-int v7, v5, v11
  1812.  
  1813.     .line 311
  1814.     .local v7, newOrOld:I
  1815.     const/4 v2, 0x0
  1816.  
  1817.     .line 312
  1818.     .local v2, delay:I
  1819.     and-int/lit8 v9, v5, 0x4
  1820.  
  1821.     .line 313
  1822.     .local v9, usb_headset_anlg:I
  1823.     and-int/lit8 v10, v5, 0x8
  1824.  
  1825.     .line 314
  1826.     .local v10, usb_headset_dgtl:I
  1827.     and-int/lit8 v4, v5, 0x3
  1828.  
  1829.     .line 315
  1830.     .local v4, h2w_headset:I
  1831.     const/4 v3, 0x1
  1832.  
  1833.     .line 316
  1834.     .local v3, h2wStateChange:Z
  1835.     const/4 v8, 0x1
  1836.  
  1837.     .line 320
  1838.     .local v8, usbStateChange:Z
  1839.     sget-object v11, Lcom/android/server/WiredAccessoryObserver;->TAG:Ljava/lang/String;
  1840.  
  1841.     new-instance v12, Ljava/lang/StringBuilder;
  1842.  
  1843.     invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
  1844.  
  1845.     const-string v13, "newState = "
  1846.  
  1847.     invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1848.  
  1849.     move-result-object v12
  1850.  
  1851.     move/from16 v0, p2
  1852.  
  1853.     invoke-virtual {v12, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  1854.  
  1855.     move-result-object v12
  1856.  
  1857.     const-string v13, ", headsetState = "
  1858.  
  1859.     invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1860.  
  1861.     move-result-object v12
  1862.  
  1863.     invoke-virtual {v12, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  1864.  
  1865.     move-result-object v12
  1866.  
  1867.     const-string v13, ","
  1868.  
  1869.     invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1870.  
  1871.     move-result-object v12
  1872.  
  1873.     const-string v13, "mHeadsetState = "
  1874.  
  1875.     invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1876.  
  1877.     move-result-object v12
  1878.  
  1879.     move-object/from16 v0, p0
  1880.  
  1881.     iget v13, v0, Lcom/android/server/WiredAccessoryObserver;->mHeadsetState:I
  1882.  
  1883.     invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  1884.  
  1885.     move-result-object v12
  1886.  
  1887.     invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  1888.  
  1889.     move-result-object v12
  1890.  
  1891.     invoke-static {v11, v12}, Landroid/util/Slog;->v(Ljava/lang/String;Ljava/lang/String;)I
  1892.  
  1893.     .line 322
  1894.     move-object/from16 v0, p0
  1895.  
  1896.     iget v11, v0, Lcom/android/server/WiredAccessoryObserver;->mHeadsetState:I
  1897.  
  1898.     if-eq v11, v5, :cond_0
  1899.  
  1900.     add-int/lit8 v11, v4, -0x1
  1901.  
  1902.     and-int/2addr v11, v4
  1903.  
  1904.     if-eqz v11, :cond_1
  1905.  
  1906.     .line 323
  1907.     :cond_0
  1908.     sget-object v11, Lcom/android/server/WiredAccessoryObserver;->TAG:Ljava/lang/String;
  1909.  
  1910.     const-string v12, "unsetting h2w flag"
  1911.  
  1912.     invoke-static {v11, v12}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
  1913.  
  1914.     .line 324
  1915.     const/4 v3, 0x0
  1916.  
  1917.     .line 328
  1918.     :cond_1
  1919.     shr-int/lit8 v11, v9, 0x2
  1920.  
  1921.     const/4 v12, 0x1
  1922.  
  1923.     if-ne v11, v12, :cond_2
  1924.  
  1925.     shr-int/lit8 v11, v10, 0x3
  1926.  
  1927.     const/4 v12, 0x1
  1928.  
  1929.     if-ne v11, v12, :cond_2
  1930.  
  1931.     .line 329
  1932.     sget-object v11, Lcom/android/server/WiredAccessoryObserver;->TAG:Ljava/lang/String;
  1933.  
  1934.     const-string v12, "unsetting usb flag"
  1935.  
  1936.     invoke-static {v11, v12}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
  1937.  
  1938.     .line 330
  1939.     const/4 v8, 0x0
  1940.  
  1941.     .line 332
  1942.     :cond_2
  1943.     if-nez v3, :cond_3
  1944.  
  1945.     if-nez v8, :cond_3
  1946.  
  1947.     .line 333
  1948.     sget-object v11, Lcom/android/server/WiredAccessoryObserver;->TAG:Ljava/lang/String;
  1949.  
  1950.     const-string v12, "invalid transition, returning ..."
  1951.  
  1952.     invoke-static {v11, v12}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
  1953.     :try_end_0
  1954.     .catchall {:try_start_0 .. :try_end_0} :catchall_0
  1955.  
  1956.     .line 370
  1957.     :goto_0
  1958.     monitor-exit p0
  1959.  
  1960.     return-void
  1961.  
  1962.     .line 337
  1963.     :cond_3
  1964.     :try_start_1
  1965.     move-object/from16 v0, p1
  1966.  
  1967.     move-object/from16 v1, p0
  1968.  
  1969.     iput-object v0, v1, Lcom/android/server/WiredAccessoryObserver;->mHeadsetName:Ljava/lang/String;
  1970.  
  1971.     .line 338
  1972.     move-object/from16 v0, p0
  1973.  
  1974.     iget v11, v0, Lcom/android/server/WiredAccessoryObserver;->mHeadsetState:I
  1975.  
  1976.     move-object/from16 v0, p0
  1977.  
  1978.     iput v11, v0, Lcom/android/server/WiredAccessoryObserver;->mPrevHeadsetState:I
  1979.  
  1980.     .line 339
  1981.     move-object/from16 v0, p0
  1982.  
  1983.     iput v5, v0, Lcom/android/server/WiredAccessoryObserver;->mHeadsetState:I
  1984.  
  1985.     .line 341
  1986.     if-eqz v5, :cond_4
  1987.  
  1988.     if-nez p3, :cond_7
  1989.  
  1990.     .line 342
  1991.     :cond_4
  1992.     new-instance v6, Landroid/content/Intent;
  1993.  
  1994.     const-string v11, "android.media.AUDIO_BECOMING_NOISY"
  1995.  
  1996.     invoke-direct {v6, v11}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
  1997.  
  1998.     .line 343
  1999.     .local v6, intent:Landroid/content/Intent;
  2000.     move-object/from16 v0, p0
  2001.  
  2002.     iget-object v11, v0, Lcom/android/server/WiredAccessoryObserver;->mContext:Landroid/content/Context;
  2003.  
  2004.     invoke-virtual {v11, v6}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
  2005.  
  2006.     .line 349
  2007.     const-string v11, "USA"
  2008.  
  2009.     const-string v12, "KOR"
  2010.  
  2011.     invoke-virtual {v11, v12}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  2012.  
  2013.     move-result v11
  2014.  
  2015.     if-eqz v11, :cond_6
  2016.  
  2017.     move-object/from16 v0, p0
  2018.  
  2019.     iget-object v11, v0, Lcom/android/server/WiredAccessoryObserver;->mAudioManager:Landroid/media/AudioManager;
  2020.  
  2021.     invoke-virtual {v11}, Landroid/media/AudioManager;->isMusicActive()Z
  2022.  
  2023.     move-result v11
  2024.  
  2025.     if-nez v11, :cond_6
  2026.  
  2027.     .line 350
  2028.     const/16 v2, 0xc8
  2029.  
  2030.     .line 364
  2031.     .end local v6           #intent:Landroid/content/Intent;
  2032.     :cond_5
  2033.     :goto_1
  2034.     move-object/from16 v0, p0
  2035.  
  2036.     iget-object v11, v0, Lcom/android/server/WiredAccessoryObserver;->mWakeLock:Landroid/os/PowerManager$WakeLock;
  2037.  
  2038.     invoke-virtual {v11}, Landroid/os/PowerManager$WakeLock;->acquire()V
  2039.  
  2040.     .line 365
  2041.     move-object/from16 v0, p0
  2042.  
  2043.     iget-object v11, v0, Lcom/android/server/WiredAccessoryObserver;->mHandler:Landroid/os/Handler;
  2044.  
  2045.     move-object/from16 v0, p0
  2046.  
  2047.     iget-object v12, v0, Lcom/android/server/WiredAccessoryObserver;->mHandler:Landroid/os/Handler;
  2048.  
  2049.     const/4 v13, 0x0
  2050.  
  2051.     move-object/from16 v0, p0
  2052.  
  2053.     iget v14, v0, Lcom/android/server/WiredAccessoryObserver;->mHeadsetState:I
  2054.  
  2055.     move-object/from16 v0, p0
  2056.  
  2057.     iget v15, v0, Lcom/android/server/WiredAccessoryObserver;->mPrevHeadsetState:I
  2058.  
  2059.     move-object/from16 v0, p0
  2060.  
  2061.     iget-object v0, v0, Lcom/android/server/WiredAccessoryObserver;->mHeadsetName:Ljava/lang/String;
  2062.  
  2063.     move-object/from16 v16, v0
  2064.  
  2065.     invoke-virtual/range {v12 .. v16}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;
  2066.  
  2067.     move-result-object v12
  2068.  
  2069.     int-to-long v13, v2
  2070.  
  2071.     invoke-virtual {v11, v12, v13, v14}, Landroid/os/Handler;->sendMessageDelayed(Landroid/os/Message;J)Z
  2072.     :try_end_1
  2073.     .catchall {:try_start_1 .. :try_end_1} :catchall_0
  2074.  
  2075.     goto :goto_0
  2076.  
  2077.     .line 309
  2078.     .end local v2           #delay:I
  2079.     .end local v3           #h2wStateChange:Z
  2080.     .end local v4           #h2w_headset:I
  2081.     .end local v7           #newOrOld:I
  2082.     .end local v8           #usbStateChange:Z
  2083.     .end local v9           #usb_headset_anlg:I
  2084.     .end local v10           #usb_headset_dgtl:I
  2085.     :catchall_0
  2086.     move-exception v11
  2087.  
  2088.     monitor-exit p0
  2089.  
  2090.     throw v11
  2091.  
  2092.     .line 352
  2093.     .restart local v2       #delay:I
  2094.     .restart local v3       #h2wStateChange:Z
  2095.     .restart local v4       #h2w_headset:I
  2096.     .restart local v6       #intent:Landroid/content/Intent;
  2097.     .restart local v7       #newOrOld:I
  2098.     .restart local v8       #usbStateChange:Z
  2099.     .restart local v9       #usb_headset_anlg:I
  2100.     .restart local v10       #usb_headset_dgtl:I
  2101.     :cond_6
  2102.     const/16 v2, 0x1f4
  2103.  
  2104.     goto :goto_1
  2105.  
  2106.     .line 357
  2107.     .end local v6           #intent:Landroid/content/Intent;
  2108.     :cond_7
  2109.     :try_start_2
  2110.     move-object/from16 v0, p0
  2111.  
  2112.     iget-object v11, v0, Lcom/android/server/WiredAccessoryObserver;->mHandler:Landroid/os/Handler;
  2113.  
  2114.     const/4 v12, 0x0
  2115.  
  2116.     invoke-virtual {v11, v12}, Landroid/os/Handler;->hasMessages(I)Z
  2117.  
  2118.     move-result v11
  2119.  
  2120.     if-eqz v11, :cond_5
  2121.  
  2122.     .line 358
  2123.     const-string v11, "USA"
  2124.  
  2125.     const-string v12, "KOR"
  2126.  
  2127.     invoke-virtual {v11, v12}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  2128.     :try_end_2
  2129.     .catchall {:try_start_2 .. :try_end_2} :catchall_0
  2130.  
  2131.     move-result v11
  2132.  
  2133.     if-eqz v11, :cond_8
  2134.  
  2135.     .line 359
  2136.     const/16 v2, 0x1f4
  2137.  
  2138.     goto :goto_1
  2139.  
  2140.     .line 361
  2141.     :cond_8
  2142.     const/16 v2, 0x1f4
  2143.  
  2144.     goto :goto_1
  2145. .end method
  2146.  
  2147. .method private final declared-synchronized updateState(Ljava/lang/String;I)V
  2148.     .locals 4
  2149.     .parameter "name"
  2150.     .parameter "state"
  2151.  
  2152.     .prologue
  2153.     const/4 v1, 0x2
  2154.  
  2155.     const/4 v2, 0x0
  2156.  
  2157.     const/4 v0, 0x1
  2158.  
  2159.     .line 252
  2160.     monitor-enter p0
  2161.  
  2162.     :try_start_0
  2163.     const-string v3, "usb_audio"
  2164.  
  2165.     invoke-virtual {p1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  2166.  
  2167.     move-result v3
  2168.  
  2169.     if-eqz v3, :cond_2
  2170.  
  2171.     .line 253
  2172.     iget v3, p0, Lcom/android/server/WiredAccessoryObserver;->mHeadsetState:I
  2173.  
  2174.     and-int/lit8 v3, v3, 0x13
  2175.  
  2176.     if-ne p2, v0, :cond_1
  2177.  
  2178.     const/4 v2, 0x4
  2179.  
  2180.     :cond_0
  2181.     :goto_0
  2182.     or-int v0, v3, v2
  2183.  
  2184.     iput v0, p0, Lcom/android/server/WiredAccessoryObserver;->switchState:I
  2185.  
  2186.     .line 271
  2187.     :goto_1
  2188.     iget v0, p0, Lcom/android/server/WiredAccessoryObserver;->switchState:I
  2189.  
  2190.     invoke-direct {p0, p1, v0, p2}, Lcom/android/server/WiredAccessoryObserver;->update(Ljava/lang/String;II)V
  2191.     :try_end_0
  2192.     .catchall {:try_start_0 .. :try_end_0} :catchall_0
  2193.  
  2194.     .line 272
  2195.     :goto_2
  2196.     monitor-exit p0
  2197.  
  2198.     return-void
  2199.  
  2200.     .line 253
  2201.     :cond_1
  2202.     if-ne p2, v1, :cond_0
  2203.  
  2204.     const/16 v2, 0x8
  2205.  
  2206.     goto :goto_0
  2207.  
  2208.     .line 256
  2209.     :cond_2
  2210.     :try_start_1
  2211.     const-string v3, "hdmi"
  2212.  
  2213.     invoke-virtual {p1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  2214.  
  2215.     move-result v3
  2216.  
  2217.     if-eqz v3, :cond_4
  2218.  
  2219.     .line 257
  2220.     iget v1, p0, Lcom/android/server/WiredAccessoryObserver;->mHeadsetState:I
  2221.  
  2222.     and-int/lit8 v1, v1, 0xf
  2223.  
  2224.     if-ne p2, v0, :cond_3
  2225.  
  2226.     const/16 v2, 0x10
  2227.  
  2228.     :cond_3
  2229.     or-int v0, v1, v2
  2230.  
  2231.     iput v0, p0, Lcom/android/server/WiredAccessoryObserver;->switchState:I
  2232.     :try_end_1
  2233.     .catchall {:try_start_1 .. :try_end_1} :catchall_0
  2234.  
  2235.     goto :goto_1
  2236.  
  2237.     .line 252
  2238.     :catchall_0
  2239.     move-exception v0
  2240.  
  2241.     monitor-exit p0
  2242.  
  2243.     throw v0
  2244.  
  2245.     .line 261
  2246.     :cond_4
  2247.     :try_start_2
  2248.     const-string v3, "ch_hdmi_audio"
  2249.  
  2250.     invoke-virtual {p1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
  2251.  
  2252.     move-result v3
  2253.  
  2254.     if-eqz v3, :cond_5
  2255.  
  2256.     .line 262
  2257.     invoke-direct {p0, p2}, Lcom/android/server/WiredAccessoryObserver;->update_hdmi(I)V
  2258.  
  2259.     goto :goto_2
  2260.  
  2261.     .line 266
  2262.     :cond_5
  2263.     iget v3, p0, Lcom/android/server/WiredAccessoryObserver;->mHeadsetState:I
  2264.  
  2265.     and-int/lit8 v3, v3, 0x1c
  2266.  
  2267.     if-ne p2, v0, :cond_6
  2268.  
  2269.     :goto_3
  2270.     or-int/2addr v0, v3
  2271.  
  2272.     iput v0, p0, Lcom/android/server/WiredAccessoryObserver;->switchState:I
  2273.     :try_end_2
  2274.     .catchall {:try_start_2 .. :try_end_2} :catchall_0
  2275.  
  2276.     goto :goto_1
  2277.  
  2278.     :cond_6
  2279.     if-ne p2, v1, :cond_7
  2280.  
  2281.     move v0, v1
  2282.  
  2283.     goto :goto_3
  2284.  
  2285.     :cond_7
  2286.     move v0, v2
  2287.  
  2288.     goto :goto_3
  2289. .end method
  2290.  
  2291. .method private final declared-synchronized update_hdmi(I)V
  2292.     .locals 11
  2293.     .parameter "state"
  2294.  
  2295.     .prologue
  2296.     .line 476
  2297.     monitor-enter p0
  2298.  
  2299.     and-int/lit16 v1, p1, 0xff
  2300.  
  2301.     .line 477
  2302.     .local v1, ch_info:I
  2303.     const v7, 0xff00
  2304.  
  2305.     and-int v6, p1, v7
  2306.  
  2307.     .line 478
  2308.     .local v6, spk_info:I
  2309.     const/4 v4, 0x0
  2310.  
  2311.     .line 479
  2312.     .local v4, hdmiState:I
  2313.     :try_start_0
  2314.     const-string v0, "1"
  2315.  
  2316.     .line 480
  2317.     .local v0, cardNumber:Ljava/lang/String;
  2318.     const-string v3, "0"
  2319.  
  2320.     .line 481
  2321.     .local v3, deviceNumber:Ljava/lang/String;
  2322.     const/4 v2, 0x0
  2323.  
  2324.     .line 482
  2325.     .local v2, delay:I
  2326.     const/4 v7, -0x1
  2327.  
  2328.     if-ne p1, v7, :cond_1
  2329.  
  2330.     .line 483
  2331.     const/4 v4, 0x0
  2332.  
  2333.     .line 487
  2334.     :goto_0
  2335.     if-nez v4, :cond_2
  2336.  
  2337.     .line 488
  2338.     new-instance v5, Landroid/content/Intent;
  2339.  
  2340.     const-string v7, "android.media.AUDIO_BECOMING_NOISY"
  2341.  
  2342.     invoke-direct {v5, v7}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
  2343.  
  2344.     .line 489
  2345.     .local v5, intent:Landroid/content/Intent;
  2346.     iget-object v7, p0, Lcom/android/server/WiredAccessoryObserver;->mContext:Landroid/content/Context;
  2347.  
  2348.     invoke-virtual {v7, v5}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
  2349.  
  2350.     .line 495
  2351.     const/16 v2, 0x1f4
  2352.  
  2353.     .line 503
  2354.     .end local v5           #intent:Landroid/content/Intent;
  2355.     :cond_0
  2356.     :goto_1
  2357.     iget-object v7, p0, Lcom/android/server/WiredAccessoryObserver;->mWakeLock:Landroid/os/PowerManager$WakeLock;
  2358.  
  2359.     invoke-virtual {v7}, Landroid/os/PowerManager$WakeLock;->acquire()V
  2360.  
  2361.     .line 504
  2362.     iget-object v7, p0, Lcom/android/server/WiredAccessoryObserver;->mHandler_hdmi:Landroid/os/Handler;
  2363.  
  2364.     iget-object v8, p0, Lcom/android/server/WiredAccessoryObserver;->mHandler_hdmi:Landroid/os/Handler;
  2365.  
  2366.     const/4 v9, 0x0
  2367.  
  2368.     invoke-virtual {v8, v9, v4, v1}, Landroid/os/Handler;->obtainMessage(III)Landroid/os/Message;
  2369.  
  2370.     move-result-object v8
  2371.  
  2372.     int-to-long v9, v2
  2373.  
  2374.     invoke-virtual {v7, v8, v9, v10}, Landroid/os/Handler;->sendMessageDelayed(Landroid/os/Message;J)Z
  2375.     :try_end_0
  2376.     .catchall {:try_start_0 .. :try_end_0} :catchall_0
  2377.  
  2378.     .line 508
  2379.     monitor-exit p0
  2380.  
  2381.     return-void
  2382.  
  2383.     .line 485
  2384.     :cond_1
  2385.     const/4 v4, 0x1
  2386.  
  2387.     goto :goto_0
  2388.  
  2389.     .line 499
  2390.     :cond_2
  2391.     :try_start_1
  2392.     iget-object v7, p0, Lcom/android/server/WiredAccessoryObserver;->mHandler_hdmi:Landroid/os/Handler;
  2393.  
  2394.     const/4 v8, 0x0
  2395.  
  2396.     invoke-virtual {v7, v8}, Landroid/os/Handler;->hasMessages(I)Z
  2397.     :try_end_1
  2398.     .catchall {:try_start_1 .. :try_end_1} :catchall_0
  2399.  
  2400.     move-result v7
  2401.  
  2402.     if-eqz v7, :cond_0
  2403.  
  2404.     .line 500
  2405.     const/16 v2, 0x1f4
  2406.  
  2407.     goto :goto_1
  2408.  
  2409.     .line 476
  2410.     .end local v0           #cardNumber:Ljava/lang/String;
  2411.     .end local v2           #delay:I
  2412.     .end local v3           #deviceNumber:Ljava/lang/String;
  2413.     :catchall_0
  2414.     move-exception v7
  2415.  
  2416.     monitor-exit p0
  2417.  
  2418.     throw v7
  2419. .end method
  2420.  
  2421. .method private final declared-synchronized update_usbaudio(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
  2422.     .locals 7
  2423.     .parameter "state"
  2424.     .parameter "channels"
  2425.     .parameter "cardNumber"
  2426.     .parameter "deviceNumber"
  2427.  
  2428.     .prologue
  2429.     .line 451
  2430.     monitor-enter p0
  2431.  
  2432.     const/4 v0, 0x0
  2433.  
  2434.     .line 452
  2435.     .local v0, delay:I
  2436.     if-nez p1, :cond_1
  2437.  
  2438.     .line 453
  2439.     :try_start_0
  2440.     new-instance v1, Landroid/content/Intent;
  2441.  
  2442.     const-string v3, "android.media.AUDIO_BECOMING_NOISY"
  2443.  
  2444.     invoke-direct {v1, v3}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
  2445.  
  2446.     .line 454
  2447.     .local v1, intent:Landroid/content/Intent;
  2448.     iget-object v3, p0, Lcom/android/server/WiredAccessoryObserver;->mContext:Landroid/content/Context;
  2449.  
  2450.     invoke-virtual {v3, v1}, Landroid/content/Context;->sendBroadcast(Landroid/content/Intent;)V
  2451.  
  2452.     .line 460
  2453.     const/16 v0, 0x1f4
  2454.  
  2455.     .line 468
  2456.     .end local v1           #intent:Landroid/content/Intent;
  2457.     :cond_0
  2458.     :goto_0
  2459.     new-instance v2, Lcom/android/server/WiredAccessoryObserver$UsbAudioData;
  2460.  
  2461.     const/4 v3, 0x0
  2462.  
  2463.     invoke-direct {v2, p0, v3}, Lcom/android/server/WiredAccessoryObserver$UsbAudioData;-><init>(Lcom/android/server/WiredAccessoryObserver;Lcom/android/server/WiredAccessoryObserver$1;)V
  2464.  
  2465.     .line 469
  2466.     .local v2, usbAudioData:Lcom/android/server/WiredAccessoryObserver$UsbAudioData;
  2467.     invoke-virtual {v2, p1, p2, p3, p4}, Lcom/android/server/WiredAccessoryObserver$UsbAudioData;->setUsbAudioData(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
  2468.  
  2469.     .line 470
  2470.     iget-object v3, p0, Lcom/android/server/WiredAccessoryObserver;->mWakeLock:Landroid/os/PowerManager$WakeLock;
  2471.  
  2472.     invoke-virtual {v3}, Landroid/os/PowerManager$WakeLock;->acquire()V
  2473.  
  2474.     .line 471
  2475.     iget-object v3, p0, Lcom/android/server/WiredAccessoryObserver;->mHandler_usbAudio:Landroid/os/Handler;
  2476.  
  2477.     iget-object v4, p0, Lcom/android/server/WiredAccessoryObserver;->mHandler_usbAudio:Landroid/os/Handler;
  2478.  
  2479.     const/4 v5, 0x0
  2480.  
  2481.     invoke-virtual {v4, v5, v2}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
  2482.  
  2483.     move-result-object v4
  2484.  
  2485.     int-to-long v5, v0
  2486.  
  2487.     invoke-virtual {v3, v4, v5, v6}, Landroid/os/Handler;->sendMessageDelayed(Landroid/os/Message;J)Z
  2488.     :try_end_0
  2489.     .catchall {:try_start_0 .. :try_end_0} :catchall_0
  2490.  
  2491.     .line 474
  2492.     monitor-exit p0
  2493.  
  2494.     return-void
  2495.  
  2496.     .line 464
  2497.     .end local v2           #usbAudioData:Lcom/android/server/WiredAccessoryObserver$UsbAudioData;
  2498.     :cond_1
  2499.     :try_start_1
  2500.     iget-object v3, p0, Lcom/android/server/WiredAccessoryObserver;->mHandler_usbAudio:Landroid/os/Handler;
  2501.  
  2502.     const/4 v4, 0x0
  2503.  
  2504.     invoke-virtual {v3, v4}, Landroid/os/Handler;->hasMessages(I)Z
  2505.     :try_end_1
  2506.     .catchall {:try_start_1 .. :try_end_1} :catchall_0
  2507.  
  2508.     move-result v3
  2509.  
  2510.     if-eqz v3, :cond_0
  2511.  
  2512.     .line 465
  2513.     const/16 v0, 0x1f4
  2514.  
  2515.     goto :goto_0
  2516.  
  2517.     .line 451
  2518.     :catchall_0
  2519.     move-exception v3
  2520.  
  2521.     monitor-exit p0
  2522.  
  2523.     throw v3
  2524. .end method
  2525.  
  2526.  
  2527. # virtual methods
  2528. .method public onUEvent(Landroid/os/UEventObserver$UEvent;)V
  2529.     .locals 6
  2530.     .parameter "event"
  2531.  
  2532.     .prologue
  2533.     .line 239
  2534.     sget-object v3, Lcom/android/server/WiredAccessoryObserver;->TAG:Ljava/lang/String;
  2535.  
  2536.     new-instance v4, Ljava/lang/StringBuilder;
  2537.  
  2538.     invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
  2539.  
  2540.     const-string v5, "Headset UEVENT: "
  2541.  
  2542.     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  2543.  
  2544.     move-result-object v4
  2545.  
  2546.     invoke-virtual {p1}, Landroid/os/UEventObserver$UEvent;->toString()Ljava/lang/String;
  2547.  
  2548.     move-result-object v5
  2549.  
  2550.     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  2551.  
  2552.     move-result-object v4
  2553.  
  2554.     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  2555.  
  2556.     move-result-object v4
  2557.  
  2558.     invoke-static {v3, v4}, Landroid/util/Slog;->v(Ljava/lang/String;Ljava/lang/String;)I
  2559.  
  2560.     .line 242
  2561.     :try_start_0
  2562.     const-string v3, "SWITCH_NAME"
  2563.  
  2564.     invoke-virtual {p1, v3}, Landroid/os/UEventObserver$UEvent;->get(Ljava/lang/String;)Ljava/lang/String;
  2565.  
  2566.     move-result-object v1
  2567.  
  2568.     .line 243
  2569.     .local v1, name:Ljava/lang/String;
  2570.     const-string v3, "SWITCH_STATE"
  2571.  
  2572.     invoke-virtual {p1, v3}, Landroid/os/UEventObserver$UEvent;->get(Ljava/lang/String;)Ljava/lang/String;
  2573.  
  2574.     move-result-object v3
  2575.  
  2576.     invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
  2577.  
  2578.     move-result v2
  2579.  
  2580.     .line 244
  2581.     .local v2, state:I
  2582.     invoke-direct {p0, v1, v2}, Lcom/android/server/WiredAccessoryObserver;->updateState(Ljava/lang/String;I)V
  2583.     :try_end_0
  2584.     .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0
  2585.  
  2586.     .line 248
  2587.     .end local v1           #name:Ljava/lang/String;
  2588.     .end local v2           #state:I
  2589.     :goto_0
  2590.     return-void
  2591.  
  2592.     .line 245
  2593.     :catch_0
  2594.     move-exception v0
  2595.  
  2596.     .line 246
  2597.     .local v0, e:Ljava/lang/NumberFormatException;
  2598.     sget-object v3, Lcom/android/server/WiredAccessoryObserver;->TAG:Ljava/lang/String;
  2599.  
  2600.     new-instance v4, Ljava/lang/StringBuilder;
  2601.  
  2602.     invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
  2603.  
  2604.     const-string v5, "Could not parse switch state from event "
  2605.  
  2606.     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  2607.  
  2608.     move-result-object v4
  2609.  
  2610.     invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  2611.  
  2612.     move-result-object v4
  2613.  
  2614.     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  2615.  
  2616.     move-result-object v4
  2617.  
  2618.     invoke-static {v3, v4}, Landroid/util/Slog;->e(Ljava/lang/String;Ljava/lang/String;)I
  2619.  
  2620.     goto :goto_0
  2621. .end method