Merge branch 'master' of https://github.com/mateor/auto-patcher
[auto-patcher.git] / patches / openpdroid / 4.2 / provisionals / system / framework / telephony-common.jar.out / smali / com / android / internal / telephony / gsm / SimSmsInterfaceManager.smali
blob0a3a87565fec83829c2c443a287a58582c1116f8
1 .class public Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;
2 .super Lcom/android/internal/telephony/IccSmsInterfaceManager;
3 .source "SimSmsInterfaceManager.java"
6 # annotations
7 .annotation system Ldalvik/annotation/MemberClasses;
8     value = {
9         Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager$CellBroadcastRangeManager;
10     }
11 .end annotation
14 # static fields
15 .field static final DBG:Z = true
17 .field private static final EVENT_LOAD_DONE:I = 0x1
19 .field private static final EVENT_SET_BROADCAST_ACTIVATION_DONE:I = 0x3
21 .field private static final EVENT_SET_BROADCAST_CONFIG_DONE:I = 0x4
23 .field private static final EVENT_UPDATE_DONE:I = 0x2
25 .field static final LOG_TAG:Ljava/lang/String; = "GSM"
27 .field private static final SMS_CB_CODE_SCHEME_MAX:I = 0xff
29 .field private static final SMS_CB_CODE_SCHEME_MIN:I
32 # instance fields
33 .field private mCellBroadcastRangeManager:Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager$CellBroadcastRangeManager;
35 .field private mCellBroadcastSubscriptions:Ljava/util/HashMap;
36     .annotation system Ldalvik/annotation/Signature;
37         value = {
38             "Ljava/util/HashMap",
39             "<",
40             "Ljava/lang/Integer;",
41             "Ljava/util/HashSet",
42             "<",
43             "Ljava/lang/String;",
44             ">;>;"
45         }
46     .end annotation
47 .end field
49 .field mHandler:Landroid/os/Handler;
51 .field private final mLock:Ljava/lang/Object;
53 .field private mSms:Ljava/util/List;
54     .annotation system Ldalvik/annotation/Signature;
55         value = {
56             "Ljava/util/List",
57             "<",
58             "Lcom/android/internal/telephony/SmsRawData;",
59             ">;"
60         }
61     .end annotation
62 .end field
64 .field private mSuccess:Z
67 # direct methods
68 .method public constructor <init>(Lcom/android/internal/telephony/gsm/GSMPhone;Lcom/android/internal/telephony/SMSDispatcher;)V
69     .registers 4
71     invoke-direct {p0, p1}, Lcom/android/internal/telephony/IccSmsInterfaceManager;-><init>(Lcom/android/internal/telephony/PhoneBase;)V
73     new-instance v0, Ljava/lang/Object;
75     invoke-direct {v0}, Ljava/lang/Object;-><init>()V
77     iput-object v0, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mLock:Ljava/lang/Object;
79     new-instance v0, Ljava/util/HashMap;
81     invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
83     iput-object v0, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mCellBroadcastSubscriptions:Ljava/util/HashMap;
85     new-instance v0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager$CellBroadcastRangeManager;
87     invoke-direct {v0, p0}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager$CellBroadcastRangeManager;-><init>(Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;)V
89     iput-object v0, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mCellBroadcastRangeManager:Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager$CellBroadcastRangeManager;
91     new-instance v0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager$1;
93     invoke-direct {v0, p0}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager$1;-><init>(Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;)V
95     iput-object v0, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mHandler:Landroid/os/Handler;
97     iput-object p2, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mDispatcher:Lcom/android/internal/telephony/SMSDispatcher;
99     return-void
100 .end method
102 .method static synthetic access$000(Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;)Ljava/lang/Object;
103     .registers 2
105     iget-object v0, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mLock:Ljava/lang/Object;
107     return-object v0
108 .end method
110 .method static synthetic access$102(Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;Z)Z
111     .registers 2
113     iput-boolean p1, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mSuccess:Z
115     return p1
116 .end method
118 .method static synthetic access$200(Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;)Ljava/util/List;
119     .registers 2
121     iget-object v0, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mSms:Ljava/util/List;
123     return-object v0
124 .end method
126 .method static synthetic access$202(Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;Ljava/util/List;)Ljava/util/List;
127     .registers 2
129     iput-object p1, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mSms:Ljava/util/List;
131     return-object p1
132 .end method
134 .method static synthetic access$300(Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;Ljava/util/ArrayList;)Ljava/util/ArrayList;
135     .registers 3
137     invoke-virtual {p0, p1}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->buildValidRawData(Ljava/util/ArrayList;)Ljava/util/ArrayList;
139     move-result-object v0
141     return-object v0
142 .end method
144 .method static synthetic access$400(Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;[Lcom/android/internal/telephony/gsm/SmsBroadcastConfigInfo;)Z
145     .registers 3
147     invoke-direct {p0, p1}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->setCellBroadcastConfig([Lcom/android/internal/telephony/gsm/SmsBroadcastConfigInfo;)Z
149     move-result v0
151     return v0
152 .end method
154 .method private setCellBroadcastActivation(Z)Z
155     .registers 7
157     new-instance v2, Ljava/lang/StringBuilder;
159     invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
161     const-string v3, "Calling setCellBroadcastActivation("
163     invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
165     move-result-object v2
167     invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
169     move-result-object v2
171     const/16 v3, 0x29
173     invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
175     move-result-object v2
177     invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
179     move-result-object v2
181     invoke-virtual {p0, v2}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->log(Ljava/lang/String;)V
183     iget-object v3, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mLock:Ljava/lang/Object;
185     monitor-enter v3
187     :try_start_1f
188     iget-object v2, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mHandler:Landroid/os/Handler;
190     const/4 v4, 0x3
192     invoke-virtual {v2, v4}, Landroid/os/Handler;->obtainMessage(I)Landroid/os/Message;
194     move-result-object v1
196     const/4 v2, 0x0
198     iput-boolean v2, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mSuccess:Z
200     iget-object v2, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mPhone:Lcom/android/internal/telephony/PhoneBase;
202     iget-object v2, v2, Lcom/android/internal/telephony/PhoneBase;->mCM:Lcom/android/internal/telephony/CommandsInterface;
204     invoke-interface {v2, p1, v1}, Lcom/android/internal/telephony/CommandsInterface;->setGsmBroadcastActivation(ZLandroid/os/Message;)V
205     :try_end_30
206     .catchall {:try_start_1f .. :try_end_30} :catchall_40
208     :try_start_30
209     iget-object v2, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mLock:Ljava/lang/Object;
211     invoke-virtual {v2}, Ljava/lang/Object;->wait()V
212     :try_end_35
213     .catchall {:try_start_30 .. :try_end_35} :catchall_40
214     .catch Ljava/lang/InterruptedException; {:try_start_30 .. :try_end_35} :catch_39
216     :goto_35
217     :try_start_35
218     monitor-exit v3
219     :try_end_36
220     .catchall {:try_start_35 .. :try_end_36} :catchall_40
222     iget-boolean v2, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mSuccess:Z
224     return v2
226     :catch_39
227     move-exception v0
229     :try_start_3a
230     const-string v2, "interrupted while trying to set cell broadcast activation"
232     invoke-virtual {p0, v2}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->log(Ljava/lang/String;)V
234     goto :goto_35
236     :catchall_40
237     move-exception v2
239     monitor-exit v3
240     :try_end_42
241     .catchall {:try_start_3a .. :try_end_42} :catchall_40
243     throw v2
244 .end method
246 .method private setCellBroadcastConfig([Lcom/android/internal/telephony/gsm/SmsBroadcastConfigInfo;)Z
247     .registers 7
249     new-instance v2, Ljava/lang/StringBuilder;
251     invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
253     const-string v3, "Calling setGsmBroadcastConfig with "
255     invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
257     move-result-object v2
259     array-length v3, p1
261     invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
263     move-result-object v2
265     const-string v3, " configurations"
267     invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
269     move-result-object v2
271     invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
273     move-result-object v2
275     invoke-virtual {p0, v2}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->log(Ljava/lang/String;)V
277     iget-object v3, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mLock:Ljava/lang/Object;
279     monitor-enter v3
281     :try_start_20
282     iget-object v2, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mHandler:Landroid/os/Handler;
284     const/4 v4, 0x4
286     invoke-virtual {v2, v4}, Landroid/os/Handler;->obtainMessage(I)Landroid/os/Message;
288     move-result-object v1
290     const/4 v2, 0x0
292     iput-boolean v2, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mSuccess:Z
294     iget-object v2, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mPhone:Lcom/android/internal/telephony/PhoneBase;
296     iget-object v2, v2, Lcom/android/internal/telephony/PhoneBase;->mCM:Lcom/android/internal/telephony/CommandsInterface;
298     invoke-interface {v2, p1, v1}, Lcom/android/internal/telephony/CommandsInterface;->setGsmBroadcastConfig([Lcom/android/internal/telephony/gsm/SmsBroadcastConfigInfo;Landroid/os/Message;)V
299     :try_end_31
300     .catchall {:try_start_20 .. :try_end_31} :catchall_41
302     :try_start_31
303     iget-object v2, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mLock:Ljava/lang/Object;
305     invoke-virtual {v2}, Ljava/lang/Object;->wait()V
306     :try_end_36
307     .catchall {:try_start_31 .. :try_end_36} :catchall_41
308     .catch Ljava/lang/InterruptedException; {:try_start_31 .. :try_end_36} :catch_3a
310     :goto_36
311     :try_start_36
312     monitor-exit v3
313     :try_end_37
314     .catchall {:try_start_36 .. :try_end_37} :catchall_41
316     iget-boolean v2, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mSuccess:Z
318     return v2
320     :catch_3a
321     move-exception v0
323     :try_start_3b
324     const-string v2, "interrupted while trying to set cell broadcast config"
326     invoke-virtual {p0, v2}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->log(Ljava/lang/String;)V
328     goto :goto_36
330     :catchall_41
331     move-exception v2
333     monitor-exit v3
334     :try_end_43
335     .catchall {:try_start_3b .. :try_end_43} :catchall_41
337     throw v2
338 .end method
341 # virtual methods
342 .method public copyMessageToIccEf(I[B[B)Z
343     .registers 10
345     new-instance v2, Ljava/lang/StringBuilder;
347     invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
349     const-string v3, "copyMessageToIccEf: status="
351     invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
353     move-result-object v2
355     invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
357     move-result-object v2
359     const-string v3, " ==> "
361     invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
363     move-result-object v2
365     const-string v3, "pdu=("
367     invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
369     move-result-object v2
371     invoke-static {p2}, Ljava/util/Arrays;->toString([B)Ljava/lang/String;
373     move-result-object v3
375     invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
377     move-result-object v2
379     const-string v3, "), smsm=("
381     invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
383     move-result-object v2
385     invoke-static {p3}, Ljava/util/Arrays;->toString([B)Ljava/lang/String;
387     move-result-object v3
389     invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
391     move-result-object v2
393     const-string v3, ")"
395     invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
397     move-result-object v2
399     invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
401     move-result-object v2
403     invoke-virtual {p0, v2}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->log(Ljava/lang/String;)V
405     const-string v2, "Copying message to SIM"
407     invoke-virtual {p0, v2}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->enforceReceiveAndSend(Ljava/lang/String;)V
409     iget-object v3, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mLock:Ljava/lang/Object;
411     monitor-enter v3
413     const/4 v2, 0x0
415     :try_start_47
416     iput-boolean v2, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mSuccess:Z
418     iget-object v2, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mHandler:Landroid/os/Handler;
420     const/4 v4, 0x2
422     invoke-virtual {v2, v4}, Landroid/os/Handler;->obtainMessage(I)Landroid/os/Message;
424     move-result-object v1
426     iget-object v2, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mPhone:Lcom/android/internal/telephony/PhoneBase;
428     iget-object v2, v2, Lcom/android/internal/telephony/PhoneBase;->mCM:Lcom/android/internal/telephony/CommandsInterface;
430     invoke-static {p3}, Lcom/android/internal/telephony/IccUtils;->bytesToHexString([B)Ljava/lang/String;
432     move-result-object v4
434     invoke-static {p2}, Lcom/android/internal/telephony/IccUtils;->bytesToHexString([B)Ljava/lang/String;
436     move-result-object v5
438     invoke-interface {v2, p1, v4, v5, v1}, Lcom/android/internal/telephony/CommandsInterface;->writeSmsToSim(ILjava/lang/String;Ljava/lang/String;Landroid/os/Message;)V
439     :try_end_5f
440     .catchall {:try_start_47 .. :try_end_5f} :catchall_6f
442     :try_start_5f
443     iget-object v2, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mLock:Ljava/lang/Object;
445     invoke-virtual {v2}, Ljava/lang/Object;->wait()V
446     :try_end_64
447     .catchall {:try_start_5f .. :try_end_64} :catchall_6f
448     .catch Ljava/lang/InterruptedException; {:try_start_5f .. :try_end_64} :catch_68
450     :goto_64
451     :try_start_64
452     monitor-exit v3
453     :try_end_65
454     .catchall {:try_start_64 .. :try_end_65} :catchall_6f
456     iget-boolean v2, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mSuccess:Z
458     return v2
460     :catch_68
461     move-exception v0
463     :try_start_69
464     const-string v2, "interrupted while trying to update by index"
466     invoke-virtual {p0, v2}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->log(Ljava/lang/String;)V
468     goto :goto_64
470     :catchall_6f
471     move-exception v2
473     monitor-exit v3
474     :try_end_71
475     .catchall {:try_start_69 .. :try_end_71} :catchall_6f
477     throw v2
478 .end method
480 .method public disableCellBroadcast(I)Z
481     .registers 3
483     invoke-virtual {p0, p1, p1}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->disableCellBroadcastRange(II)Z
485     move-result v0
487     return v0
488 .end method
490 .method public disableCellBroadcastRange(II)Z
491     .registers 9
493     const/4 v3, 0x1
495     const/4 v2, 0x0
497     const-string v4, "disableCellBroadcastRange"
499     invoke-virtual {p0, v4}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->log(Ljava/lang/String;)V
501     iget-object v4, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mPhone:Lcom/android/internal/telephony/PhoneBase;
503     invoke-virtual {v4}, Lcom/android/internal/telephony/PhoneBase;->getContext()Landroid/content/Context;
505     move-result-object v1
507     const-string v4, "android.permission.RECEIVE_SMS"
509     const-string v5, "Disabling cell broadcast SMS"
511     invoke-virtual {v1, v4, v5}, Landroid/content/Context;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
513     invoke-virtual {v1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
515     move-result-object v4
517     invoke-static {}, Landroid/os/Binder;->getCallingUid()I
519     move-result v5
521     invoke-virtual {v4, v5}, Landroid/content/pm/PackageManager;->getNameForUid(I)Ljava/lang/String;
523     move-result-object v0
525     iget-object v4, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mCellBroadcastRangeManager:Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager$CellBroadcastRangeManager;
527     invoke-virtual {v4, p1, p2, v0}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager$CellBroadcastRangeManager;->disableRange(IILjava/lang/String;)Z
529     move-result v4
531     if-nez v4, :cond_53
533     new-instance v3, Ljava/lang/StringBuilder;
535     invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
537     const-string v4, "Failed to remove cell broadcast subscription for MID range "
539     invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
541     move-result-object v3
543     invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
545     move-result-object v3
547     const-string v4, " to "
549     invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
551     move-result-object v3
553     invoke-virtual {v3, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
555     move-result-object v3
557     const-string v4, " from client "
559     invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
561     move-result-object v3
563     invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
565     move-result-object v3
567     invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
569     move-result-object v3
571     invoke-virtual {p0, v3}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->log(Ljava/lang/String;)V
573     :goto_52
574     return v2
576     :cond_53
577     new-instance v4, Ljava/lang/StringBuilder;
579     invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
581     const-string v5, "Removed cell broadcast subscription for MID range "
583     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
585     move-result-object v4
587     invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
589     move-result-object v4
591     const-string v5, " to "
593     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
595     move-result-object v4
597     invoke-virtual {v4, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
599     move-result-object v4
601     const-string v5, " from client "
603     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
605     move-result-object v4
607     invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
609     move-result-object v4
611     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
613     move-result-object v4
615     invoke-virtual {p0, v4}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->log(Ljava/lang/String;)V
617     iget-object v4, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mCellBroadcastRangeManager:Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager$CellBroadcastRangeManager;
619     invoke-virtual {v4}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager$CellBroadcastRangeManager;->isEmpty()Z
621     move-result v4
623     if-nez v4, :cond_86
625     move v2, v3
627     :cond_86
628     invoke-direct {p0, v2}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->setCellBroadcastActivation(Z)Z
630     move v2, v3
632     goto :goto_52
633 .end method
635 .method public dispose()V
636     .registers 1
638     return-void
639 .end method
641 .method public enableCellBroadcast(I)Z
642     .registers 3
644     invoke-virtual {p0, p1, p1}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->enableCellBroadcastRange(II)Z
646     move-result v0
648     return v0
649 .end method
651 .method public enableCellBroadcastRange(II)Z
652     .registers 9
654     const/4 v3, 0x1
656     const/4 v2, 0x0
658     const-string v4, "enableCellBroadcastRange"
660     invoke-virtual {p0, v4}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->log(Ljava/lang/String;)V
662     iget-object v4, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mPhone:Lcom/android/internal/telephony/PhoneBase;
664     invoke-virtual {v4}, Lcom/android/internal/telephony/PhoneBase;->getContext()Landroid/content/Context;
666     move-result-object v1
668     const-string v4, "android.permission.RECEIVE_SMS"
670     const-string v5, "Enabling cell broadcast SMS"
672     invoke-virtual {v1, v4, v5}, Landroid/content/Context;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
674     invoke-virtual {v1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
676     move-result-object v4
678     invoke-static {}, Landroid/os/Binder;->getCallingUid()I
680     move-result v5
682     invoke-virtual {v4, v5}, Landroid/content/pm/PackageManager;->getNameForUid(I)Ljava/lang/String;
684     move-result-object v0
686     iget-object v4, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mCellBroadcastRangeManager:Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager$CellBroadcastRangeManager;
688     invoke-virtual {v4, p1, p2, v0}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager$CellBroadcastRangeManager;->enableRange(IILjava/lang/String;)Z
690     move-result v4
692     if-nez v4, :cond_53
694     new-instance v3, Ljava/lang/StringBuilder;
696     invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
698     const-string v4, "Failed to add cell broadcast subscription for MID range "
700     invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
702     move-result-object v3
704     invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
706     move-result-object v3
708     const-string v4, " to "
710     invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
712     move-result-object v3
714     invoke-virtual {v3, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
716     move-result-object v3
718     const-string v4, " from client "
720     invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
722     move-result-object v3
724     invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
726     move-result-object v3
728     invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
730     move-result-object v3
732     invoke-virtual {p0, v3}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->log(Ljava/lang/String;)V
734     :goto_52
735     return v2
737     :cond_53
738     new-instance v4, Ljava/lang/StringBuilder;
740     invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
742     const-string v5, "Added cell broadcast subscription for MID range "
744     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
746     move-result-object v4
748     invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
750     move-result-object v4
752     const-string v5, " to "
754     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
756     move-result-object v4
758     invoke-virtual {v4, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
760     move-result-object v4
762     const-string v5, " from client "
764     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
766     move-result-object v4
768     invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
770     move-result-object v4
772     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
774     move-result-object v4
776     invoke-virtual {p0, v4}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->log(Ljava/lang/String;)V
778     iget-object v4, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mCellBroadcastRangeManager:Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager$CellBroadcastRangeManager;
780     invoke-virtual {v4}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager$CellBroadcastRangeManager;->isEmpty()Z
782     move-result v4
784     if-nez v4, :cond_86
786     move v2, v3
788     :cond_86
789     invoke-direct {p0, v2}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->setCellBroadcastActivation(Z)Z
791     move v2, v3
793     goto :goto_52
794 .end method
796 .method protected finalize()V
797     .registers 4
799     :try_start_0
800     invoke-super {p0}, Lcom/android/internal/telephony/IccSmsInterfaceManager;->finalize()V
801     :try_end_3
802     .catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_3} :catch_b
804     :goto_3
805     const-string v1, "GSM"
807     const-string v2, "SimSmsInterfaceManager finalized"
809     invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
811     return-void
813     :catch_b
814     move-exception v0
816     const-string v1, "GSM"
818     const-string v2, "Error while finalizing:"
820     invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
822     goto :goto_3
823 .end method
825 .method public getAllMessagesFromIccEf()Ljava/util/List;
826     .registers 7
827     .annotation system Ldalvik/annotation/Signature;
828         value = {
829             "()",
830             "Ljava/util/List",
831             "<",
832             "Lcom/android/internal/telephony/SmsRawData;",
833             ">;"
834         }
835     .end annotation
837     const-string v3, "getAllMessagesFromEF"
839     invoke-virtual {p0, v3}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->log(Ljava/lang/String;)V
841     iget-object v3, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mPhone:Lcom/android/internal/telephony/PhoneBase;
843     invoke-virtual {v3}, Lcom/android/internal/telephony/PhoneBase;->getContext()Landroid/content/Context;
845     move-result-object v0
847     const-string v3, "android.permission.RECEIVE_SMS"
849     const-string v4, "Reading messages from SIM"
851     invoke-virtual {v0, v3, v4}, Landroid/content/Context;->enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V
853     iget-object v4, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mLock:Ljava/lang/Object;
855     monitor-enter v4
857     :try_start_15
858     iget-object v3, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mHandler:Landroid/os/Handler;
860     const/4 v5, 0x1
862     invoke-virtual {v3, v5}, Landroid/os/Handler;->obtainMessage(I)Landroid/os/Message;
864     move-result-object v2
866     iget-object v3, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mPhone:Lcom/android/internal/telephony/PhoneBase;
868     invoke-virtual {v3}, Lcom/android/internal/telephony/PhoneBase;->getIccFileHandler()Lcom/android/internal/telephony/IccFileHandler;
870     move-result-object v3
872     const/16 v5, 0x6f3c
874     invoke-virtual {v3, v5, v2}, Lcom/android/internal/telephony/IccFileHandler;->loadEFLinearFixedAll(ILandroid/os/Message;)V
875     :try_end_27
876     .catchall {:try_start_15 .. :try_end_27} :catchall_37
878     :try_start_27
879     iget-object v3, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mLock:Ljava/lang/Object;
881     invoke-virtual {v3}, Ljava/lang/Object;->wait()V
882     :try_end_2c
883     .catchall {:try_start_27 .. :try_end_2c} :catchall_37
884     .catch Ljava/lang/InterruptedException; {:try_start_27 .. :try_end_2c} :catch_30
886     :goto_2c
887     :try_start_2c
888     monitor-exit v4
889     :try_end_2d
890     .catchall {:try_start_2c .. :try_end_2d} :catchall_37
892     iget-object v3, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mSms:Ljava/util/List;
894     return-object v3
896     :catch_30
897     move-exception v1
899     :try_start_31
900     const-string v3, "interrupted while trying to load from the SIM"
902     invoke-virtual {p0, v3}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->log(Ljava/lang/String;)V
904     goto :goto_2c
906     :catchall_37
907     move-exception v3
909     monitor-exit v4
910     :try_end_39
911     .catchall {:try_start_31 .. :try_end_39} :catchall_37
913     throw v3
914 .end method
916 .method protected log(Ljava/lang/String;)V
917     .registers 5
919     const-string v0, "GSM"
921     new-instance v1, Ljava/lang/StringBuilder;
923     invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
925     const-string v2, "[SimSmsInterfaceManager] "
927     invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
929     move-result-object v1
931     invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
933     move-result-object v1
935     invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
937     move-result-object v1
939     invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
941     return-void
942 .end method
944 .method public updateMessageOnIccEf(II[B)Z
945     .registers 12
947     new-instance v0, Ljava/lang/StringBuilder;
949     invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
951     const-string v1, "updateMessageOnIccEf: index="
953     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
955     move-result-object v0
957     invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
959     move-result-object v0
961     const-string v1, " status="
963     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
965     move-result-object v0
967     invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
969     move-result-object v0
971     const-string v1, " ==> "
973     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
975     move-result-object v0
977     const-string v1, "("
979     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
981     move-result-object v0
983     invoke-static {p3}, Ljava/util/Arrays;->toString([B)Ljava/lang/String;
985     move-result-object v1
987     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
989     move-result-object v0
991     const-string v1, ")"
993     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
995     move-result-object v0
997     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
999     move-result-object v0
1001     invoke-virtual {p0, v0}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->log(Ljava/lang/String;)V
1003     const-string v0, "Updating message on SIM"
1005     invoke-virtual {p0, v0}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->enforceReceiveAndSend(Ljava/lang/String;)V
1007     iget-object v7, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mLock:Ljava/lang/Object;
1009     monitor-enter v7
1011     const/4 v0, 0x0
1013     :try_start_43
1014     iput-boolean v0, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mSuccess:Z
1016     iget-object v0, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mHandler:Landroid/os/Handler;
1018     const/4 v1, 0x2
1020     invoke-virtual {v0, v1}, Landroid/os/Handler;->obtainMessage(I)Landroid/os/Message;
1022     move-result-object v5
1024     if-nez p2, :cond_5e
1026     iget-object v0, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mPhone:Lcom/android/internal/telephony/PhoneBase;
1028     iget-object v0, v0, Lcom/android/internal/telephony/PhoneBase;->mCM:Lcom/android/internal/telephony/CommandsInterface;
1030     invoke-interface {v0, p1, v5}, Lcom/android/internal/telephony/CommandsInterface;->deleteSmsOnSim(ILandroid/os/Message;)V
1031     :try_end_55
1032     .catchall {:try_start_43 .. :try_end_55} :catchall_70
1034     :goto_55
1035     :try_start_55
1036     iget-object v0, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mLock:Ljava/lang/Object;
1038     invoke-virtual {v0}, Ljava/lang/Object;->wait()V
1039     :try_end_5a
1040     .catchall {:try_start_55 .. :try_end_5a} :catchall_70
1041     .catch Ljava/lang/InterruptedException; {:try_start_55 .. :try_end_5a} :catch_73
1043     :goto_5a
1044     :try_start_5a
1045     monitor-exit v7
1046     :try_end_5b
1047     .catchall {:try_start_5a .. :try_end_5b} :catchall_70
1049     iget-boolean v0, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mSuccess:Z
1051     return v0
1053     :cond_5e
1054     :try_start_5e
1055     invoke-virtual {p0, p2, p3}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->makeSmsRecordData(I[B)[B
1057     move-result-object v3
1059     iget-object v0, p0, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->mPhone:Lcom/android/internal/telephony/PhoneBase;
1061     invoke-virtual {v0}, Lcom/android/internal/telephony/PhoneBase;->getIccFileHandler()Lcom/android/internal/telephony/IccFileHandler;
1063     move-result-object v0
1065     const/16 v1, 0x6f3c
1067     const/4 v4, 0x0
1069     move v2, p1
1071     invoke-virtual/range {v0 .. v5}, Lcom/android/internal/telephony/IccFileHandler;->updateEFLinearFixed(II[BLjava/lang/String;Landroid/os/Message;)V
1073     goto :goto_55
1075     :catchall_70
1076     move-exception v0
1078     monitor-exit v7
1079     :try_end_72
1080     .catchall {:try_start_5e .. :try_end_72} :catchall_70
1082     throw v0
1084     :catch_73
1085     move-exception v6
1087     :try_start_74
1088     const-string v0, "interrupted while trying to update by index"
1090     invoke-virtual {p0, v0}, Lcom/android/internal/telephony/gsm/SimSmsInterfaceManager;->log(Ljava/lang/String;)V
1091     :try_end_79
1092     .catchall {:try_start_74 .. :try_end_79} :catchall_70
1094     goto :goto_5a
1095 .end method