ModernAsyncTask.smali 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723
  1. .class abstract Landroid/support/v4/content/ModernAsyncTask;
  2. .super Ljava/lang/Object;
  3. .source "ModernAsyncTask.java"
  4. # annotations
  5. .annotation system Ldalvik/annotation/MemberClasses;
  6. value = {
  7. Landroid/support/v4/content/ModernAsyncTask$4;,
  8. Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult;,
  9. Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable;,
  10. Landroid/support/v4/content/ModernAsyncTask$InternalHandler;,
  11. Landroid/support/v4/content/ModernAsyncTask$Status;
  12. }
  13. .end annotation
  14. .annotation system Ldalvik/annotation/Signature;
  15. value = {
  16. "<Params:",
  17. "Ljava/lang/Object;",
  18. "Progress:",
  19. "Ljava/lang/Object;",
  20. "Result:",
  21. "Ljava/lang/Object;",
  22. ">",
  23. "Ljava/lang/Object;"
  24. }
  25. .end annotation
  26. # static fields
  27. .field private static final CORE_POOL_SIZE:I = 0x5
  28. .field private static final KEEP_ALIVE:I = 0x1
  29. .field private static final LOG_TAG:Ljava/lang/String; = "AsyncTask"
  30. .field private static final MAXIMUM_POOL_SIZE:I = 0x80
  31. .field private static final MESSAGE_POST_PROGRESS:I = 0x2
  32. .field private static final MESSAGE_POST_RESULT:I = 0x1
  33. .field public static final THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor;
  34. .field private static volatile sDefaultExecutor:Ljava/util/concurrent/Executor;
  35. .field private static sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler;
  36. .field private static final sPoolWorkQueue:Ljava/util/concurrent/BlockingQueue;
  37. .annotation system Ldalvik/annotation/Signature;
  38. value = {
  39. "Ljava/util/concurrent/BlockingQueue",
  40. "<",
  41. "Ljava/lang/Runnable;",
  42. ">;"
  43. }
  44. .end annotation
  45. .end field
  46. .field private static final sThreadFactory:Ljava/util/concurrent/ThreadFactory;
  47. # instance fields
  48. .field private final mFuture:Ljava/util/concurrent/FutureTask;
  49. .annotation system Ldalvik/annotation/Signature;
  50. value = {
  51. "Ljava/util/concurrent/FutureTask",
  52. "<TResult;>;"
  53. }
  54. .end annotation
  55. .end field
  56. .field private volatile mStatus:Landroid/support/v4/content/ModernAsyncTask$Status;
  57. .field private final mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean;
  58. .field private final mWorker:Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable;
  59. .annotation system Ldalvik/annotation/Signature;
  60. value = {
  61. "Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable",
  62. "<TParams;TResult;>;"
  63. }
  64. .end annotation
  65. .end field
  66. # direct methods
  67. .method static constructor <clinit>()V
  68. .locals 8
  69. .prologue
  70. .line 55
  71. new-instance v0, Landroid/support/v4/content/ModernAsyncTask$1;
  72. invoke-direct {v0}, Landroid/support/v4/content/ModernAsyncTask$1;-><init>()V
  73. sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->sThreadFactory:Ljava/util/concurrent/ThreadFactory;
  74. .line 63
  75. new-instance v0, Ljava/util/concurrent/LinkedBlockingQueue;
  76. const/16 v1, 0xa
  77. invoke-direct {v0, v1}, Ljava/util/concurrent/LinkedBlockingQueue;-><init>(I)V
  78. sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->sPoolWorkQueue:Ljava/util/concurrent/BlockingQueue;
  79. .line 69
  80. new-instance v0, Ljava/util/concurrent/ThreadPoolExecutor;
  81. const/4 v1, 0x5
  82. const/16 v2, 0x80
  83. const-wide/16 v3, 0x1
  84. sget-object v5, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;
  85. sget-object v6, Landroid/support/v4/content/ModernAsyncTask;->sPoolWorkQueue:Ljava/util/concurrent/BlockingQueue;
  86. sget-object v7, Landroid/support/v4/content/ModernAsyncTask;->sThreadFactory:Ljava/util/concurrent/ThreadFactory;
  87. invoke-direct/range {v0 .. v7}, Ljava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
  88. sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor;
  89. .line 78
  90. sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor;
  91. sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor;
  92. return-void
  93. .end method
  94. .method public constructor <init>()V
  95. .locals 2
  96. .prologue
  97. .line 122
  98. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  99. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  100. .line 82
  101. sget-object v0, Landroid/support/v4/content/ModernAsyncTask$Status;->PENDING:Landroid/support/v4/content/ModernAsyncTask$Status;
  102. iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status;
  103. .line 84
  104. new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean;
  105. invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>()V
  106. iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean;
  107. .line 123
  108. new-instance v0, Landroid/support/v4/content/ModernAsyncTask$2;
  109. invoke-direct {v0, p0}, Landroid/support/v4/content/ModernAsyncTask$2;-><init>(Landroid/support/v4/content/ModernAsyncTask;)V
  110. iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mWorker:Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable;
  111. .line 132
  112. new-instance v0, Landroid/support/v4/content/ModernAsyncTask$3;
  113. iget-object v1, p0, Landroid/support/v4/content/ModernAsyncTask;->mWorker:Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable;
  114. invoke-direct {v0, p0, v1}, Landroid/support/v4/content/ModernAsyncTask$3;-><init>(Landroid/support/v4/content/ModernAsyncTask;Ljava/util/concurrent/Callable;)V
  115. iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask;
  116. .line 152
  117. return-void
  118. .end method
  119. .method static synthetic access$100(Landroid/support/v4/content/ModernAsyncTask;)Ljava/util/concurrent/atomic/AtomicBoolean;
  120. .locals 1
  121. .param p0, "x0" # Landroid/support/v4/content/ModernAsyncTask;
  122. .prologue
  123. .line 48
  124. iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean;
  125. return-object v0
  126. .end method
  127. .method static synthetic access$200(Landroid/support/v4/content/ModernAsyncTask;Ljava/lang/Object;)Ljava/lang/Object;
  128. .locals 1
  129. .param p0, "x0" # Landroid/support/v4/content/ModernAsyncTask;
  130. .param p1, "x1" # Ljava/lang/Object;
  131. .prologue
  132. .line 48
  133. invoke-direct {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->postResult(Ljava/lang/Object;)Ljava/lang/Object;
  134. move-result-object v0
  135. return-object v0
  136. .end method
  137. .method static synthetic access$300(Landroid/support/v4/content/ModernAsyncTask;Ljava/lang/Object;)V
  138. .locals 0
  139. .param p0, "x0" # Landroid/support/v4/content/ModernAsyncTask;
  140. .param p1, "x1" # Ljava/lang/Object;
  141. .prologue
  142. .line 48
  143. invoke-direct {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->postResultIfNotInvoked(Ljava/lang/Object;)V
  144. return-void
  145. .end method
  146. .method static synthetic access$400(Landroid/support/v4/content/ModernAsyncTask;Ljava/lang/Object;)V
  147. .locals 0
  148. .param p0, "x0" # Landroid/support/v4/content/ModernAsyncTask;
  149. .param p1, "x1" # Ljava/lang/Object;
  150. .prologue
  151. .line 48
  152. invoke-direct {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->finish(Ljava/lang/Object;)V
  153. return-void
  154. .end method
  155. .method public static execute(Ljava/lang/Runnable;)V
  156. .locals 1
  157. .param p0, "runnable" # Ljava/lang/Runnable;
  158. .prologue
  159. .line 438
  160. sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor;
  161. invoke-interface {v0, p0}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
  162. .line 439
  163. return-void
  164. .end method
  165. .method private finish(Ljava/lang/Object;)V
  166. .locals 1
  167. .annotation system Ldalvik/annotation/Signature;
  168. value = {
  169. "(TResult;)V"
  170. }
  171. .end annotation
  172. .prologue
  173. .line 463
  174. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  175. .local p1, "result":Ljava/lang/Object;, "TResult;"
  176. invoke-virtual {p0}, Landroid/support/v4/content/ModernAsyncTask;->isCancelled()Z
  177. move-result v0
  178. if-eqz v0, :cond_0
  179. .line 464
  180. invoke-virtual {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->onCancelled(Ljava/lang/Object;)V
  181. .line 468
  182. :goto_0
  183. sget-object v0, Landroid/support/v4/content/ModernAsyncTask$Status;->FINISHED:Landroid/support/v4/content/ModernAsyncTask$Status;
  184. iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status;
  185. .line 469
  186. return-void
  187. .line 466
  188. :cond_0
  189. invoke-virtual {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->onPostExecute(Ljava/lang/Object;)V
  190. goto :goto_0
  191. .end method
  192. .method private static getHandler()Landroid/os/Handler;
  193. .locals 2
  194. .prologue
  195. .line 106
  196. const-class v1, Landroid/support/v4/content/ModernAsyncTask;
  197. monitor-enter v1
  198. .line 107
  199. :try_start_0
  200. sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler;
  201. if-nez v0, :cond_0
  202. .line 108
  203. new-instance v0, Landroid/support/v4/content/ModernAsyncTask$InternalHandler;
  204. invoke-direct {v0}, Landroid/support/v4/content/ModernAsyncTask$InternalHandler;-><init>()V
  205. sput-object v0, Landroid/support/v4/content/ModernAsyncTask;->sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler;
  206. .line 110
  207. :cond_0
  208. sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->sHandler:Landroid/support/v4/content/ModernAsyncTask$InternalHandler;
  209. monitor-exit v1
  210. return-object v0
  211. .line 111
  212. :catchall_0
  213. move-exception v0
  214. monitor-exit v1
  215. :try_end_0
  216. .catchall {:try_start_0 .. :try_end_0} :catchall_0
  217. throw v0
  218. .end method
  219. .method private postResult(Ljava/lang/Object;)Ljava/lang/Object;
  220. .locals 6
  221. .annotation system Ldalvik/annotation/Signature;
  222. value = {
  223. "(TResult;)TResult;"
  224. }
  225. .end annotation
  226. .prologue
  227. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  228. .local p1, "result":Ljava/lang/Object;, "TResult;"
  229. const/4 v5, 0x1
  230. .line 162
  231. invoke-static {}, Landroid/support/v4/content/ModernAsyncTask;->getHandler()Landroid/os/Handler;
  232. move-result-object v1
  233. new-instance v2, Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult;
  234. new-array v3, v5, [Ljava/lang/Object;
  235. const/4 v4, 0x0
  236. aput-object p1, v3, v4
  237. invoke-direct {v2, p0, v3}, Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult;-><init>(Landroid/support/v4/content/ModernAsyncTask;[Ljava/lang/Object;)V
  238. invoke-virtual {v1, v5, v2}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
  239. move-result-object v0
  240. .line 164
  241. .local v0, "message":Landroid/os/Message;
  242. invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V
  243. .line 165
  244. return-object p1
  245. .end method
  246. .method private postResultIfNotInvoked(Ljava/lang/Object;)V
  247. .locals 2
  248. .annotation system Ldalvik/annotation/Signature;
  249. value = {
  250. "(TResult;)V"
  251. }
  252. .end annotation
  253. .prologue
  254. .line 155
  255. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  256. .local p1, "result":Ljava/lang/Object;, "TResult;"
  257. iget-object v1, p0, Landroid/support/v4/content/ModernAsyncTask;->mTaskInvoked:Ljava/util/concurrent/atomic/AtomicBoolean;
  258. invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
  259. move-result v0
  260. .line 156
  261. .local v0, "wasTaskInvoked":Z
  262. if-nez v0, :cond_0
  263. .line 157
  264. invoke-direct {p0, p1}, Landroid/support/v4/content/ModernAsyncTask;->postResult(Ljava/lang/Object;)Ljava/lang/Object;
  265. .line 159
  266. :cond_0
  267. return-void
  268. .end method
  269. .method public static setDefaultExecutor(Ljava/util/concurrent/Executor;)V
  270. .locals 0
  271. .param p0, "exec" # Ljava/util/concurrent/Executor;
  272. .prologue
  273. .line 116
  274. sput-object p0, Landroid/support/v4/content/ModernAsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor;
  275. .line 117
  276. return-void
  277. .end method
  278. # virtual methods
  279. .method public final cancel(Z)Z
  280. .locals 1
  281. .param p1, "mayInterruptIfRunning" # Z
  282. .prologue
  283. .line 311
  284. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  285. iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask;
  286. invoke-virtual {v0, p1}, Ljava/util/concurrent/FutureTask;->cancel(Z)Z
  287. move-result v0
  288. return v0
  289. .end method
  290. .method protected varargs abstract doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
  291. .annotation system Ldalvik/annotation/Signature;
  292. value = {
  293. "([TParams;)TResult;"
  294. }
  295. .end annotation
  296. .end method
  297. .method public final varargs execute([Ljava/lang/Object;)Landroid/support/v4/content/ModernAsyncTask;
  298. .locals 1
  299. .annotation system Ldalvik/annotation/Signature;
  300. value = {
  301. "([TParams;)",
  302. "Landroid/support/v4/content/ModernAsyncTask",
  303. "<TParams;TProgress;TResult;>;"
  304. }
  305. .end annotation
  306. .prologue
  307. .line 376
  308. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  309. .local p1, "params":[Ljava/lang/Object;, "[TParams;"
  310. sget-object v0, Landroid/support/v4/content/ModernAsyncTask;->sDefaultExecutor:Ljava/util/concurrent/Executor;
  311. invoke-virtual {p0, v0, p1}, Landroid/support/v4/content/ModernAsyncTask;->executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/support/v4/content/ModernAsyncTask;
  312. move-result-object v0
  313. return-object v0
  314. .end method
  315. .method public final varargs executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/support/v4/content/ModernAsyncTask;
  316. .locals 2
  317. .param p1, "exec" # Ljava/util/concurrent/Executor;
  318. .annotation system Ldalvik/annotation/Signature;
  319. value = {
  320. "(",
  321. "Ljava/util/concurrent/Executor;",
  322. "[TParams;)",
  323. "Landroid/support/v4/content/ModernAsyncTask",
  324. "<TParams;TProgress;TResult;>;"
  325. }
  326. .end annotation
  327. .prologue
  328. .line 411
  329. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  330. .local p2, "params":[Ljava/lang/Object;, "[TParams;"
  331. iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status;
  332. sget-object v1, Landroid/support/v4/content/ModernAsyncTask$Status;->PENDING:Landroid/support/v4/content/ModernAsyncTask$Status;
  333. if-eq v0, v1, :cond_0
  334. .line 412
  335. sget-object v0, Landroid/support/v4/content/ModernAsyncTask$4;->$SwitchMap$android$support$v4$content$ModernAsyncTask$Status:[I
  336. iget-object v1, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status;
  337. invoke-virtual {v1}, Landroid/support/v4/content/ModernAsyncTask$Status;->ordinal()I
  338. move-result v1
  339. aget v0, v0, v1
  340. packed-switch v0, :pswitch_data_0
  341. .line 423
  342. :cond_0
  343. sget-object v0, Landroid/support/v4/content/ModernAsyncTask$Status;->RUNNING:Landroid/support/v4/content/ModernAsyncTask$Status;
  344. iput-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status;
  345. .line 425
  346. invoke-virtual {p0}, Landroid/support/v4/content/ModernAsyncTask;->onPreExecute()V
  347. .line 427
  348. iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mWorker:Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable;
  349. iput-object p2, v0, Landroid/support/v4/content/ModernAsyncTask$WorkerRunnable;->mParams:[Ljava/lang/Object;
  350. .line 428
  351. iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask;
  352. invoke-interface {p1, v0}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
  353. .line 430
  354. return-object p0
  355. .line 414
  356. :pswitch_0
  357. new-instance v0, Ljava/lang/IllegalStateException;
  358. const-string v1, "Cannot execute task: the task is already running."
  359. invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  360. throw v0
  361. .line 417
  362. :pswitch_1
  363. new-instance v0, Ljava/lang/IllegalStateException;
  364. const-string v1, "Cannot execute task: the task has already been executed (a task can be executed only once)"
  365. invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
  366. throw v0
  367. .line 412
  368. :pswitch_data_0
  369. .packed-switch 0x1
  370. :pswitch_0
  371. :pswitch_1
  372. .end packed-switch
  373. .end method
  374. .method public final get()Ljava/lang/Object;
  375. .locals 1
  376. .annotation system Ldalvik/annotation/Signature;
  377. value = {
  378. "()TResult;"
  379. }
  380. .end annotation
  381. .annotation system Ldalvik/annotation/Throws;
  382. value = {
  383. Ljava/lang/InterruptedException;,
  384. Ljava/util/concurrent/ExecutionException;
  385. }
  386. .end annotation
  387. .prologue
  388. .line 326
  389. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  390. iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask;
  391. invoke-virtual {v0}, Ljava/util/concurrent/FutureTask;->get()Ljava/lang/Object;
  392. move-result-object v0
  393. return-object v0
  394. .end method
  395. .method public final get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
  396. .locals 1
  397. .param p1, "timeout" # J
  398. .param p3, "unit" # Ljava/util/concurrent/TimeUnit;
  399. .annotation system Ldalvik/annotation/Signature;
  400. value = {
  401. "(J",
  402. "Ljava/util/concurrent/TimeUnit;",
  403. ")TResult;"
  404. }
  405. .end annotation
  406. .annotation system Ldalvik/annotation/Throws;
  407. value = {
  408. Ljava/lang/InterruptedException;,
  409. Ljava/util/concurrent/ExecutionException;,
  410. Ljava/util/concurrent/TimeoutException;
  411. }
  412. .end annotation
  413. .prologue
  414. .line 346
  415. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  416. iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask;
  417. invoke-virtual {v0, p1, p2, p3}, Ljava/util/concurrent/FutureTask;->get(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;
  418. move-result-object v0
  419. return-object v0
  420. .end method
  421. .method public final getStatus()Landroid/support/v4/content/ModernAsyncTask$Status;
  422. .locals 1
  423. .prologue
  424. .line 174
  425. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  426. iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mStatus:Landroid/support/v4/content/ModernAsyncTask$Status;
  427. return-object v0
  428. .end method
  429. .method public final isCancelled()Z
  430. .locals 1
  431. .prologue
  432. .line 278
  433. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  434. iget-object v0, p0, Landroid/support/v4/content/ModernAsyncTask;->mFuture:Ljava/util/concurrent/FutureTask;
  435. invoke-virtual {v0}, Ljava/util/concurrent/FutureTask;->isCancelled()Z
  436. move-result v0
  437. return v0
  438. .end method
  439. .method protected onCancelled()V
  440. .locals 0
  441. .prologue
  442. .line 265
  443. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  444. return-void
  445. .end method
  446. .method protected onCancelled(Ljava/lang/Object;)V
  447. .locals 0
  448. .annotation system Ldalvik/annotation/Signature;
  449. value = {
  450. "(TResult;)V"
  451. }
  452. .end annotation
  453. .prologue
  454. .line 249
  455. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  456. .local p1, "result":Ljava/lang/Object;, "TResult;"
  457. invoke-virtual {p0}, Landroid/support/v4/content/ModernAsyncTask;->onCancelled()V
  458. .line 250
  459. return-void
  460. .end method
  461. .method protected onPostExecute(Ljava/lang/Object;)V
  462. .locals 0
  463. .annotation system Ldalvik/annotation/Signature;
  464. value = {
  465. "(TResult;)V"
  466. }
  467. .end annotation
  468. .prologue
  469. .line 218
  470. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  471. .local p1, "result":Ljava/lang/Object;, "TResult;"
  472. return-void
  473. .end method
  474. .method protected onPreExecute()V
  475. .locals 0
  476. .prologue
  477. .line 202
  478. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  479. return-void
  480. .end method
  481. .method protected varargs onProgressUpdate([Ljava/lang/Object;)V
  482. .locals 0
  483. .annotation system Ldalvik/annotation/Signature;
  484. value = {
  485. "([TProgress;)V"
  486. }
  487. .end annotation
  488. .prologue
  489. .line 231
  490. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  491. .local p1, "values":[Ljava/lang/Object;, "[TProgress;"
  492. return-void
  493. .end method
  494. .method protected final varargs publishProgress([Ljava/lang/Object;)V
  495. .locals 3
  496. .annotation system Ldalvik/annotation/Signature;
  497. value = {
  498. "([TProgress;)V"
  499. }
  500. .end annotation
  501. .prologue
  502. .line 456
  503. .local p0, "this":Landroid/support/v4/content/ModernAsyncTask;, "Landroid/support/v4/content/ModernAsyncTask<TParams;TProgress;TResult;>;"
  504. .local p1, "values":[Ljava/lang/Object;, "[TProgress;"
  505. invoke-virtual {p0}, Landroid/support/v4/content/ModernAsyncTask;->isCancelled()Z
  506. move-result v0
  507. if-nez v0, :cond_0
  508. .line 457
  509. invoke-static {}, Landroid/support/v4/content/ModernAsyncTask;->getHandler()Landroid/os/Handler;
  510. move-result-object v0
  511. const/4 v1, 0x2
  512. new-instance v2, Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult;
  513. invoke-direct {v2, p0, p1}, Landroid/support/v4/content/ModernAsyncTask$AsyncTaskResult;-><init>(Landroid/support/v4/content/ModernAsyncTask;[Ljava/lang/Object;)V
  514. invoke-virtual {v0, v1, v2}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
  515. move-result-object v0
  516. invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V
  517. .line 460
  518. :cond_0
  519. return-void
  520. .end method