12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160 |
- .class public final Landroid/support/v4/content/LocalBroadcastManager;
- .super Ljava/lang/Object;
- .source "LocalBroadcastManager.java"
- # annotations
- .annotation system Ldalvik/annotation/MemberClasses;
- value = {
- Landroid/support/v4/content/LocalBroadcastManager$BroadcastRecord;,
- Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;
- }
- .end annotation
- # static fields
- .field private static final DEBUG:Z = false
- .field static final MSG_EXEC_PENDING_BROADCASTS:I = 0x1
- .field private static final TAG:Ljava/lang/String; = "LocalBroadcastManager"
- .field private static mInstance:Landroid/support/v4/content/LocalBroadcastManager;
- .field private static final mLock:Ljava/lang/Object;
- # instance fields
- .field private final mActions:Ljava/util/HashMap;
- .annotation system Ldalvik/annotation/Signature;
- value = {
- "Ljava/util/HashMap",
- "<",
- "Ljava/lang/String;",
- "Ljava/util/ArrayList",
- "<",
- "Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;",
- ">;>;"
- }
- .end annotation
- .end field
- .field private final mAppContext:Landroid/content/Context;
- .field private final mHandler:Landroid/os/Handler;
- .field private final mPendingBroadcasts:Ljava/util/ArrayList;
- .annotation system Ldalvik/annotation/Signature;
- value = {
- "Ljava/util/ArrayList",
- "<",
- "Landroid/support/v4/content/LocalBroadcastManager$BroadcastRecord;",
- ">;"
- }
- .end annotation
- .end field
- .field private final mReceivers:Ljava/util/HashMap;
- .annotation system Ldalvik/annotation/Signature;
- value = {
- "Ljava/util/HashMap",
- "<",
- "Landroid/content/BroadcastReceiver;",
- "Ljava/util/ArrayList",
- "<",
- "Landroid/content/IntentFilter;",
- ">;>;"
- }
- .end annotation
- .end field
- # direct methods
- .method static constructor <clinit>()V
- .locals 1
- .prologue
- .line 96
- new-instance v0, Ljava/lang/Object;
- invoke-direct {v0}, Ljava/lang/Object;-><init>()V
- sput-object v0, Landroid/support/v4/content/LocalBroadcastManager;->mLock:Ljava/lang/Object;
- return-void
- .end method
- .method private constructor <init>(Landroid/content/Context;)V
- .locals 2
- .param p1, "context" # Landroid/content/Context;
- .prologue
- .line 108
- invoke-direct {p0}, Ljava/lang/Object;-><init>()V
- .line 84
- new-instance v0, Ljava/util/HashMap;
- invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
- iput-object v0, p0, Landroid/support/v4/content/LocalBroadcastManager;->mReceivers:Ljava/util/HashMap;
- .line 86
- new-instance v0, Ljava/util/HashMap;
- invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
- iput-object v0, p0, Landroid/support/v4/content/LocalBroadcastManager;->mActions:Ljava/util/HashMap;
- .line 89
- new-instance v0, Ljava/util/ArrayList;
- invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
- iput-object v0, p0, Landroid/support/v4/content/LocalBroadcastManager;->mPendingBroadcasts:Ljava/util/ArrayList;
- .line 109
- iput-object p1, p0, Landroid/support/v4/content/LocalBroadcastManager;->mAppContext:Landroid/content/Context;
- .line 110
- new-instance v0, Landroid/support/v4/content/LocalBroadcastManager$1;
- invoke-virtual {p1}, Landroid/content/Context;->getMainLooper()Landroid/os/Looper;
- move-result-object v1
- invoke-direct {v0, p0, v1}, Landroid/support/v4/content/LocalBroadcastManager$1;-><init>(Landroid/support/v4/content/LocalBroadcastManager;Landroid/os/Looper;)V
- iput-object v0, p0, Landroid/support/v4/content/LocalBroadcastManager;->mHandler:Landroid/os/Handler;
- .line 123
- return-void
- .end method
- .method static synthetic access$000(Landroid/support/v4/content/LocalBroadcastManager;)V
- .locals 0
- .param p0, "x0" # Landroid/support/v4/content/LocalBroadcastManager;
- .prologue
- .line 46
- invoke-direct {p0}, Landroid/support/v4/content/LocalBroadcastManager;->executePendingBroadcasts()V
- return-void
- .end method
- .method private executePendingBroadcasts()V
- .locals 8
- .prologue
- .line 284
- :cond_0
- const/4 v2, 0x0
- .line 285
- .local v2, "brs":[Landroid/support/v4/content/LocalBroadcastManager$BroadcastRecord;
- iget-object v6, p0, Landroid/support/v4/content/LocalBroadcastManager;->mReceivers:Ljava/util/HashMap;
- monitor-enter v6
- .line 286
- :try_start_0
- iget-object v5, p0, Landroid/support/v4/content/LocalBroadcastManager;->mPendingBroadcasts:Ljava/util/ArrayList;
- invoke-virtual {v5}, Ljava/util/ArrayList;->size()I
- move-result v0
- .line 287
- .local v0, "N":I
- if-gtz v0, :cond_1
- .line 288
- monitor-exit v6
- return-void
- .line 290
- :cond_1
- new-array v2, v0, [Landroid/support/v4/content/LocalBroadcastManager$BroadcastRecord;
- .line 291
- iget-object v5, p0, Landroid/support/v4/content/LocalBroadcastManager;->mPendingBroadcasts:Ljava/util/ArrayList;
- invoke-virtual {v5, v2}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
- .line 292
- iget-object v5, p0, Landroid/support/v4/content/LocalBroadcastManager;->mPendingBroadcasts:Ljava/util/ArrayList;
- invoke-virtual {v5}, Ljava/util/ArrayList;->clear()V
- .line 293
- monitor-exit v6
- :try_end_0
- .catchall {:try_start_0 .. :try_end_0} :catchall_0
- .line 294
- const/4 v3, 0x0
- .local v3, "i":I
- :goto_0
- array-length v5, v2
- if-ge v3, v5, :cond_0
- .line 295
- aget-object v1, v2, v3
- .line 296
- .local v1, "br":Landroid/support/v4/content/LocalBroadcastManager$BroadcastRecord;
- const/4 v4, 0x0
- .local v4, "j":I
- :goto_1
- iget-object v5, v1, Landroid/support/v4/content/LocalBroadcastManager$BroadcastRecord;->receivers:Ljava/util/ArrayList;
- invoke-virtual {v5}, Ljava/util/ArrayList;->size()I
- move-result v5
- if-ge v4, v5, :cond_2
- .line 297
- iget-object v5, v1, Landroid/support/v4/content/LocalBroadcastManager$BroadcastRecord;->receivers:Ljava/util/ArrayList;
- invoke-virtual {v5, v4}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
- move-result-object v5
- check-cast v5, Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;
- iget-object v5, v5, Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;->receiver:Landroid/content/BroadcastReceiver;
- iget-object v6, p0, Landroid/support/v4/content/LocalBroadcastManager;->mAppContext:Landroid/content/Context;
- iget-object v7, v1, Landroid/support/v4/content/LocalBroadcastManager$BroadcastRecord;->intent:Landroid/content/Intent;
- invoke-virtual {v5, v6, v7}, Landroid/content/BroadcastReceiver;->onReceive(Landroid/content/Context;Landroid/content/Intent;)V
- .line 296
- add-int/lit8 v4, v4, 0x1
- goto :goto_1
- .line 293
- .end local v0 # "N":I
- .end local v1 # "br":Landroid/support/v4/content/LocalBroadcastManager$BroadcastRecord;
- .end local v3 # "i":I
- .end local v4 # "j":I
- :catchall_0
- move-exception v5
- :try_start_1
- monitor-exit v6
- :try_end_1
- .catchall {:try_start_1 .. :try_end_1} :catchall_0
- throw v5
- .line 294
- .restart local v0 # "N":I
- .restart local v1 # "br":Landroid/support/v4/content/LocalBroadcastManager$BroadcastRecord;
- .restart local v3 # "i":I
- .restart local v4 # "j":I
- :cond_2
- add-int/lit8 v3, v3, 0x1
- goto :goto_0
- .end method
- .method public static getInstance(Landroid/content/Context;)Landroid/support/v4/content/LocalBroadcastManager;
- .locals 3
- .param p0, "context" # Landroid/content/Context;
- .prologue
- .line 100
- sget-object v1, Landroid/support/v4/content/LocalBroadcastManager;->mLock:Ljava/lang/Object;
- monitor-enter v1
- .line 101
- :try_start_0
- sget-object v0, Landroid/support/v4/content/LocalBroadcastManager;->mInstance:Landroid/support/v4/content/LocalBroadcastManager;
- if-nez v0, :cond_0
- .line 102
- new-instance v0, Landroid/support/v4/content/LocalBroadcastManager;
- invoke-virtual {p0}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
- move-result-object v2
- invoke-direct {v0, v2}, Landroid/support/v4/content/LocalBroadcastManager;-><init>(Landroid/content/Context;)V
- sput-object v0, Landroid/support/v4/content/LocalBroadcastManager;->mInstance:Landroid/support/v4/content/LocalBroadcastManager;
- .line 104
- :cond_0
- sget-object v0, Landroid/support/v4/content/LocalBroadcastManager;->mInstance:Landroid/support/v4/content/LocalBroadcastManager;
- monitor-exit v1
- return-object v0
- .line 105
- :catchall_0
- move-exception v0
- monitor-exit v1
- :try_end_0
- .catchall {:try_start_0 .. :try_end_0} :catchall_0
- throw v0
- .end method
- # virtual methods
- .method public registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)V
- .locals 7
- .param p1, "receiver" # Landroid/content/BroadcastReceiver;
- .param p2, "filter" # Landroid/content/IntentFilter;
- .prologue
- .line 134
- iget-object v6, p0, Landroid/support/v4/content/LocalBroadcastManager;->mReceivers:Ljava/util/HashMap;
- monitor-enter v6
- .line 135
- :try_start_0
- new-instance v2, Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;
- invoke-direct {v2, p2, p1}, Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;-><init>(Landroid/content/IntentFilter;Landroid/content/BroadcastReceiver;)V
- .line 136
- .local v2, "entry":Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;
- iget-object v5, p0, Landroid/support/v4/content/LocalBroadcastManager;->mReceivers:Ljava/util/HashMap;
- invoke-virtual {v5, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
- move-result-object v3
- check-cast v3, Ljava/util/ArrayList;
- .line 137
- .local v3, "filters":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/content/IntentFilter;>;"
- if-nez v3, :cond_0
- .line 138
- new-instance v3, Ljava/util/ArrayList;
- .end local v3 # "filters":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/content/IntentFilter;>;"
- const/4 v5, 0x1
- invoke-direct {v3, v5}, Ljava/util/ArrayList;-><init>(I)V
- .line 139
- .restart local v3 # "filters":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/content/IntentFilter;>;"
- iget-object v5, p0, Landroid/support/v4/content/LocalBroadcastManager;->mReceivers:Ljava/util/HashMap;
- invoke-virtual {v5, p1, v3}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
- .line 141
- :cond_0
- invoke-virtual {v3, p2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
- .line 142
- const/4 v4, 0x0
- .local v4, "i":I
- :goto_0
- invoke-virtual {p2}, Landroid/content/IntentFilter;->countActions()I
- move-result v5
- if-ge v4, v5, :cond_2
- .line 143
- invoke-virtual {p2, v4}, Landroid/content/IntentFilter;->getAction(I)Ljava/lang/String;
- move-result-object v0
- .line 144
- .local v0, "action":Ljava/lang/String;
- iget-object v5, p0, Landroid/support/v4/content/LocalBroadcastManager;->mActions:Ljava/util/HashMap;
- invoke-virtual {v5, v0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
- move-result-object v1
- check-cast v1, Ljava/util/ArrayList;
- .line 145
- .local v1, "entries":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- if-nez v1, :cond_1
- .line 146
- new-instance v1, Ljava/util/ArrayList;
- .end local v1 # "entries":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- const/4 v5, 0x1
- invoke-direct {v1, v5}, Ljava/util/ArrayList;-><init>(I)V
- .line 147
- .restart local v1 # "entries":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- iget-object v5, p0, Landroid/support/v4/content/LocalBroadcastManager;->mActions:Ljava/util/HashMap;
- invoke-virtual {v5, v0, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
- .line 149
- :cond_1
- invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
- .line 142
- add-int/lit8 v4, v4, 0x1
- goto :goto_0
- .line 151
- .end local v0 # "action":Ljava/lang/String;
- .end local v1 # "entries":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- :cond_2
- monitor-exit v6
- .line 152
- return-void
- .line 151
- .end local v2 # "entry":Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;
- .end local v3 # "filters":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/content/IntentFilter;>;"
- .end local v4 # "i":I
- :catchall_0
- move-exception v5
- monitor-exit v6
- :try_end_0
- .catchall {:try_start_0 .. :try_end_0} :catchall_0
- throw v5
- .end method
- .method public sendBroadcast(Landroid/content/Intent;)Z
- .locals 17
- .param p1, "intent" # Landroid/content/Intent;
- .prologue
- .line 201
- move-object/from16 v0, p0
- iget-object v15, v0, Landroid/support/v4/content/LocalBroadcastManager;->mReceivers:Ljava/util/HashMap;
- monitor-enter v15
- .line 202
- :try_start_0
- invoke-virtual/range {p1 .. p1}, Landroid/content/Intent;->getAction()Ljava/lang/String;
- move-result-object v2
- .line 203
- .local v2, "action":Ljava/lang/String;
- move-object/from16 v0, p0
- iget-object v1, v0, Landroid/support/v4/content/LocalBroadcastManager;->mAppContext:Landroid/content/Context;
- invoke-virtual {v1}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
- move-result-object v1
- move-object/from16 v0, p1
- invoke-virtual {v0, v1}, Landroid/content/Intent;->resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;
- move-result-object v3
- .line 205
- .local v3, "type":Ljava/lang/String;
- invoke-virtual/range {p1 .. p1}, Landroid/content/Intent;->getData()Landroid/net/Uri;
- move-result-object v5
- .line 206
- .local v5, "data":Landroid/net/Uri;
- invoke-virtual/range {p1 .. p1}, Landroid/content/Intent;->getScheme()Ljava/lang/String;
- move-result-object v4
- .line 207
- .local v4, "scheme":Ljava/lang/String;
- invoke-virtual/range {p1 .. p1}, Landroid/content/Intent;->getCategories()Ljava/util/Set;
- move-result-object v6
- .line 209
- .local v6, "categories":Ljava/util/Set;, "Ljava/util/Set<Ljava/lang/String;>;"
- invoke-virtual/range {p1 .. p1}, Landroid/content/Intent;->getFlags()I
- move-result v1
- and-int/lit8 v1, v1, 0x8
- if-eqz v1, :cond_4
- const/4 v8, 0x1
- .line 211
- .local v8, "debug":Z
- :goto_0
- if-eqz v8, :cond_0
- const-string v1, "LocalBroadcastManager"
- new-instance v7, Ljava/lang/StringBuilder;
- invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
- const-string v16, "Resolving type "
- move-object/from16 v0, v16
- invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v7
- invoke-virtual {v7, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v7
- const-string v16, " scheme "
- move-object/from16 v0, v16
- invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v7
- invoke-virtual {v7, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v7
- const-string v16, " of intent "
- move-object/from16 v0, v16
- invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v7
- move-object/from16 v0, p1
- invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
- move-result-object v7
- invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
- move-result-object v7
- invoke-static {v1, v7}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
- .line 215
- :cond_0
- move-object/from16 v0, p0
- iget-object v1, v0, Landroid/support/v4/content/LocalBroadcastManager;->mActions:Ljava/util/HashMap;
- invoke-virtual/range {p1 .. p1}, Landroid/content/Intent;->getAction()Ljava/lang/String;
- move-result-object v7
- invoke-virtual {v1, v7}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
- move-result-object v9
- check-cast v9, Ljava/util/ArrayList;
- .line 216
- .local v9, "entries":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- if-eqz v9, :cond_c
- .line 217
- if-eqz v8, :cond_1
- const-string v1, "LocalBroadcastManager"
- new-instance v7, Ljava/lang/StringBuilder;
- invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
- const-string v16, "Action list: "
- move-object/from16 v0, v16
- invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v7
- invoke-virtual {v7, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
- move-result-object v7
- invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
- move-result-object v7
- invoke-static {v1, v7}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
- .line 219
- :cond_1
- const/4 v14, 0x0
- .line 220
- .local v14, "receivers":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- const/4 v10, 0x0
- .local v10, "i":I
- :goto_1
- invoke-virtual {v9}, Ljava/util/ArrayList;->size()I
- move-result v1
- if-ge v10, v1, :cond_9
- .line 221
- invoke-virtual {v9, v10}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
- move-result-object v13
- check-cast v13, Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;
- .line 222
- .local v13, "receiver":Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;
- if-eqz v8, :cond_2
- const-string v1, "LocalBroadcastManager"
- new-instance v7, Ljava/lang/StringBuilder;
- invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
- const-string v16, "Matching against filter "
- move-object/from16 v0, v16
- invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v7
- iget-object v0, v13, Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;->filter:Landroid/content/IntentFilter;
- move-object/from16 v16, v0
- move-object/from16 v0, v16
- invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
- move-result-object v7
- invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
- move-result-object v7
- invoke-static {v1, v7}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
- .line 224
- :cond_2
- iget-boolean v1, v13, Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;->broadcasting:Z
- if-eqz v1, :cond_5
- .line 225
- if-eqz v8, :cond_3
- .line 226
- const-string v1, "LocalBroadcastManager"
- const-string v7, " Filter\'s target already added"
- invoke-static {v1, v7}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
- .line 220
- :cond_3
- :goto_2
- add-int/lit8 v10, v10, 0x1
- goto :goto_1
- .line 209
- .end local v8 # "debug":Z
- .end local v9 # "entries":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- .end local v10 # "i":I
- .end local v13 # "receiver":Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;
- .end local v14 # "receivers":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- :cond_4
- const/4 v8, 0x0
- goto/16 :goto_0
- .line 231
- .restart local v8 # "debug":Z
- .restart local v9 # "entries":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- .restart local v10 # "i":I
- .restart local v13 # "receiver":Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;
- .restart local v14 # "receivers":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- :cond_5
- iget-object v1, v13, Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;->filter:Landroid/content/IntentFilter;
- const-string v7, "LocalBroadcastManager"
- invoke-virtual/range {v1 .. v7}, Landroid/content/IntentFilter;->match(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/util/Set;Ljava/lang/String;)I
- move-result v11
- .line 233
- .local v11, "match":I
- if-ltz v11, :cond_8
- .line 234
- if-eqz v8, :cond_6
- const-string v1, "LocalBroadcastManager"
- new-instance v7, Ljava/lang/StringBuilder;
- invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
- const-string v16, " Filter matched! match=0x"
- move-object/from16 v0, v16
- invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v7
- invoke-static {v11}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
- move-result-object v16
- move-object/from16 v0, v16
- invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v7
- invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
- move-result-object v7
- invoke-static {v1, v7}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
- .line 236
- :cond_6
- if-nez v14, :cond_7
- .line 237
- new-instance v14, Ljava/util/ArrayList;
- .end local v14 # "receivers":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- invoke-direct {v14}, Ljava/util/ArrayList;-><init>()V
- .line 239
- .restart local v14 # "receivers":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- :cond_7
- invoke-virtual {v14, v13}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
- .line 240
- const/4 v1, 0x1
- iput-boolean v1, v13, Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;->broadcasting:Z
- goto :goto_2
- .line 267
- .end local v2 # "action":Ljava/lang/String;
- .end local v3 # "type":Ljava/lang/String;
- .end local v4 # "scheme":Ljava/lang/String;
- .end local v5 # "data":Landroid/net/Uri;
- .end local v6 # "categories":Ljava/util/Set;, "Ljava/util/Set<Ljava/lang/String;>;"
- .end local v8 # "debug":Z
- .end local v9 # "entries":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- .end local v10 # "i":I
- .end local v11 # "match":I
- .end local v13 # "receiver":Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;
- .end local v14 # "receivers":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- :catchall_0
- move-exception v1
- monitor-exit v15
- :try_end_0
- .catchall {:try_start_0 .. :try_end_0} :catchall_0
- throw v1
- .line 242
- .restart local v2 # "action":Ljava/lang/String;
- .restart local v3 # "type":Ljava/lang/String;
- .restart local v4 # "scheme":Ljava/lang/String;
- .restart local v5 # "data":Landroid/net/Uri;
- .restart local v6 # "categories":Ljava/util/Set;, "Ljava/util/Set<Ljava/lang/String;>;"
- .restart local v8 # "debug":Z
- .restart local v9 # "entries":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- .restart local v10 # "i":I
- .restart local v11 # "match":I
- .restart local v13 # "receiver":Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;
- .restart local v14 # "receivers":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- :cond_8
- if-eqz v8, :cond_3
- .line 244
- packed-switch v11, :pswitch_data_0
- .line 249
- :try_start_1
- const-string v12, "unknown reason"
- .line 251
- .local v12, "reason":Ljava/lang/String;
- :goto_3
- const-string v1, "LocalBroadcastManager"
- new-instance v7, Ljava/lang/StringBuilder;
- invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
- const-string v16, " Filter did not match: "
- move-object/from16 v0, v16
- invoke-virtual {v7, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v7
- invoke-virtual {v7, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v7
- invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
- move-result-object v7
- invoke-static {v1, v7}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
- goto :goto_2
- .line 245
- .end local v12 # "reason":Ljava/lang/String;
- :pswitch_0
- const-string v12, "action"
- .restart local v12 # "reason":Ljava/lang/String;
- goto :goto_3
- .line 246
- .end local v12 # "reason":Ljava/lang/String;
- :pswitch_1
- const-string v12, "category"
- .restart local v12 # "reason":Ljava/lang/String;
- goto :goto_3
- .line 247
- .end local v12 # "reason":Ljava/lang/String;
- :pswitch_2
- const-string v12, "data"
- .restart local v12 # "reason":Ljava/lang/String;
- goto :goto_3
- .line 248
- .end local v12 # "reason":Ljava/lang/String;
- :pswitch_3
- const-string v12, "type"
- .restart local v12 # "reason":Ljava/lang/String;
- goto :goto_3
- .line 256
- .end local v11 # "match":I
- .end local v12 # "reason":Ljava/lang/String;
- .end local v13 # "receiver":Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;
- :cond_9
- if-eqz v14, :cond_c
- .line 257
- const/4 v10, 0x0
- :goto_4
- invoke-virtual {v14}, Ljava/util/ArrayList;->size()I
- move-result v1
- if-ge v10, v1, :cond_a
- .line 258
- invoke-virtual {v14, v10}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
- move-result-object v1
- check-cast v1, Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;
- const/4 v7, 0x0
- iput-boolean v7, v1, Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;->broadcasting:Z
- .line 257
- add-int/lit8 v10, v10, 0x1
- goto :goto_4
- .line 260
- :cond_a
- move-object/from16 v0, p0
- iget-object v1, v0, Landroid/support/v4/content/LocalBroadcastManager;->mPendingBroadcasts:Ljava/util/ArrayList;
- new-instance v7, Landroid/support/v4/content/LocalBroadcastManager$BroadcastRecord;
- move-object/from16 v0, p1
- invoke-direct {v7, v0, v14}, Landroid/support/v4/content/LocalBroadcastManager$BroadcastRecord;-><init>(Landroid/content/Intent;Ljava/util/ArrayList;)V
- invoke-virtual {v1, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
- .line 261
- move-object/from16 v0, p0
- iget-object v1, v0, Landroid/support/v4/content/LocalBroadcastManager;->mHandler:Landroid/os/Handler;
- const/4 v7, 0x1
- invoke-virtual {v1, v7}, Landroid/os/Handler;->hasMessages(I)Z
- move-result v1
- if-nez v1, :cond_b
- .line 262
- move-object/from16 v0, p0
- iget-object v1, v0, Landroid/support/v4/content/LocalBroadcastManager;->mHandler:Landroid/os/Handler;
- const/4 v7, 0x1
- invoke-virtual {v1, v7}, Landroid/os/Handler;->sendEmptyMessage(I)Z
- .line 264
- :cond_b
- const/4 v1, 0x1
- monitor-exit v15
- .line 268
- .end local v10 # "i":I
- .end local v14 # "receivers":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- :goto_5
- return v1
- .line 267
- :cond_c
- monitor-exit v15
- :try_end_1
- .catchall {:try_start_1 .. :try_end_1} :catchall_0
- .line 268
- const/4 v1, 0x0
- goto :goto_5
- .line 244
- :pswitch_data_0
- .packed-switch -0x4
- :pswitch_1
- :pswitch_0
- :pswitch_2
- :pswitch_3
- .end packed-switch
- .end method
- .method public sendBroadcastSync(Landroid/content/Intent;)V
- .locals 1
- .param p1, "intent" # Landroid/content/Intent;
- .prologue
- .line 277
- invoke-virtual {p0, p1}, Landroid/support/v4/content/LocalBroadcastManager;->sendBroadcast(Landroid/content/Intent;)Z
- move-result v0
- if-eqz v0, :cond_0
- .line 278
- invoke-direct {p0}, Landroid/support/v4/content/LocalBroadcastManager;->executePendingBroadcasts()V
- .line 280
- :cond_0
- return-void
- .end method
- .method public unregisterReceiver(Landroid/content/BroadcastReceiver;)V
- .locals 9
- .param p1, "receiver" # Landroid/content/BroadcastReceiver;
- .prologue
- .line 164
- iget-object v8, p0, Landroid/support/v4/content/LocalBroadcastManager;->mReceivers:Ljava/util/HashMap;
- monitor-enter v8
- .line 165
- :try_start_0
- iget-object v7, p0, Landroid/support/v4/content/LocalBroadcastManager;->mReceivers:Ljava/util/HashMap;
- invoke-virtual {v7, p1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
- move-result-object v2
- check-cast v2, Ljava/util/ArrayList;
- .line 166
- .local v2, "filters":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/content/IntentFilter;>;"
- if-nez v2, :cond_0
- .line 167
- monitor-exit v8
- .line 188
- :goto_0
- return-void
- .line 169
- :cond_0
- const/4 v3, 0x0
- .local v3, "i":I
- :goto_1
- invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
- move-result v7
- if-ge v3, v7, :cond_5
- .line 170
- invoke-virtual {v2, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
- move-result-object v1
- check-cast v1, Landroid/content/IntentFilter;
- .line 171
- .local v1, "filter":Landroid/content/IntentFilter;
- const/4 v4, 0x0
- .local v4, "j":I
- :goto_2
- invoke-virtual {v1}, Landroid/content/IntentFilter;->countActions()I
- move-result v7
- if-ge v4, v7, :cond_4
- .line 172
- invoke-virtual {v1, v4}, Landroid/content/IntentFilter;->getAction(I)Ljava/lang/String;
- move-result-object v0
- .line 173
- .local v0, "action":Ljava/lang/String;
- iget-object v7, p0, Landroid/support/v4/content/LocalBroadcastManager;->mActions:Ljava/util/HashMap;
- invoke-virtual {v7, v0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
- move-result-object v6
- check-cast v6, Ljava/util/ArrayList;
- .line 174
- .local v6, "receivers":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- if-eqz v6, :cond_3
- .line 175
- const/4 v5, 0x0
- .local v5, "k":I
- :goto_3
- invoke-virtual {v6}, Ljava/util/ArrayList;->size()I
- move-result v7
- if-ge v5, v7, :cond_2
- .line 176
- invoke-virtual {v6, v5}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
- move-result-object v7
- check-cast v7, Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;
- iget-object v7, v7, Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;->receiver:Landroid/content/BroadcastReceiver;
- if-ne v7, p1, :cond_1
- .line 177
- invoke-virtual {v6, v5}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;
- .line 178
- add-int/lit8 v5, v5, -0x1
- .line 175
- :cond_1
- add-int/lit8 v5, v5, 0x1
- goto :goto_3
- .line 181
- :cond_2
- invoke-virtual {v6}, Ljava/util/ArrayList;->size()I
- move-result v7
- if-gtz v7, :cond_3
- .line 182
- iget-object v7, p0, Landroid/support/v4/content/LocalBroadcastManager;->mActions:Ljava/util/HashMap;
- invoke-virtual {v7, v0}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
- .line 171
- .end local v5 # "k":I
- :cond_3
- add-int/lit8 v4, v4, 0x1
- goto :goto_2
- .line 169
- .end local v0 # "action":Ljava/lang/String;
- .end local v6 # "receivers":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/support/v4/content/LocalBroadcastManager$ReceiverRecord;>;"
- :cond_4
- add-int/lit8 v3, v3, 0x1
- goto :goto_1
- .line 187
- .end local v1 # "filter":Landroid/content/IntentFilter;
- .end local v4 # "j":I
- :cond_5
- monitor-exit v8
- goto :goto_0
- .end local v2 # "filters":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroid/content/IntentFilter;>;"
- .end local v3 # "i":I
- :catchall_0
- move-exception v7
- monitor-exit v8
- :try_end_0
- .catchall {:try_start_0 .. :try_end_0} :catchall_0
- throw v7
- .end method
|