PageRenderTime 75ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/system/app/smali/MusicPlayer.apk/com/google/android/music/utils/AlbumArtUtils.smali

https://bitbucket.org/rujelus22/the-blu-kuban-rom
Unknown | 6517 lines | 4315 code | 2202 blank | 0 comment | 0 complexity | 4b0eb92d1bc102a7530957190d7598d9 MD5 | raw file
  1. .class public Lcom/google/android/music/utils/AlbumArtUtils;
  2. .super Ljava/lang/Object;
  3. .source "AlbumArtUtils.java"
  4. # annotations
  5. .annotation system Ldalvik/annotation/MemberClasses;
  6. value = {
  7. Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;,
  8. Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;,
  9. Lcom/google/android/music/utils/AlbumArtUtils$FastBitmapDrawable;,
  10. Lcom/google/android/music/utils/AlbumArtUtils$ExtractableByteArrayOutputStream;,
  11. Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;,
  12. Lcom/google/android/music/utils/AlbumArtUtils$PlaylistMemberCursorIterator;,
  13. Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIterator;
  14. }
  15. .end annotation
  16. # static fields
  17. .field private static CACHE_REQUESTS_TO_RESIZE:I
  18. .field private static final CACHE_SIZES:[I
  19. .field private static final LOGV:Z
  20. .field private static MAX_IMAGE_SIZE_TO_CACHE:I
  21. .field private static mAlbumLoadingBitmap:Landroid/graphics/Bitmap;
  22. .field private static mCacheDir:Ljava/io/File;
  23. .field private static mShuffleBadge:Landroid/graphics/Bitmap;
  24. .field private static final sBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  25. .field private static final sCachedBitmapLock:Ljava/lang/Object;
  26. .field private static sCachedRezinBitmap:Ljava/util/HashMap;
  27. .annotation system Ldalvik/annotation/Signature;
  28. value = {
  29. "Ljava/util/HashMap",
  30. "<",
  31. "Landroid/graphics/Point;",
  32. "Landroid/graphics/Bitmap;",
  33. ">;"
  34. }
  35. .end annotation
  36. .end field
  37. .field private static final sExternalBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  38. .field private static final sFauxGradientPalette:[I
  39. .field private static final sFauxPalette:[I
  40. .field private static final sFauxStyleToPalette:Lcom/google/common/collect/ImmutableMap;
  41. .annotation system Ldalvik/annotation/Signature;
  42. value = {
  43. "Lcom/google/common/collect/ImmutableMap",
  44. "<",
  45. "Ljava/lang/Integer;",
  46. "Ljava/lang/Integer;",
  47. ">;"
  48. }
  49. .end annotation
  50. .end field
  51. .field private static sHprofDumped:Z
  52. .field private static final sPlaylistCols:[Ljava/lang/String;
  53. .field private static final sSizeCache:Ljava/util/HashMap;
  54. .annotation system Ldalvik/annotation/Signature;
  55. value = {
  56. "Ljava/util/HashMap",
  57. "<",
  58. "Ljava/lang/String;",
  59. "Lcom/google/android/music/utils/LruCache",
  60. "<",
  61. "Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;",
  62. "Landroid/graphics/Bitmap;",
  63. ">;>;"
  64. }
  65. .end annotation
  66. .end field
  67. .field private static final sSizeCacheRequests:Ljava/util/HashMap;
  68. .annotation system Ldalvik/annotation/Signature;
  69. value = {
  70. "Ljava/util/HashMap",
  71. "<",
  72. "Ljava/lang/String;",
  73. "Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;",
  74. ">;"
  75. }
  76. .end annotation
  77. .end field
  78. .field private static sTotalSizeCacheRequests:I
  79. # direct methods
  80. .method static constructor <clinit>()V
  81. .registers 8
  82. .prologue
  83. const/4 v7, 0x3
  84. const/4 v6, 0x4
  85. const/4 v5, 0x2
  86. const/4 v4, 0x0
  87. const/4 v3, 0x1
  88. .line 95
  89. const-string v0, "AlbumArtUtils"
  90. invoke-static {v0}, Lcom/google/android/music/DebugUtils;->isLoggable(Ljava/lang/String;)Z
  91. move-result v0
  92. sput-boolean v0, Lcom/google/android/music/utils/AlbumArtUtils;->LOGV:Z
  93. .line 114
  94. const/16 v0, 0x64
  95. sput v0, Lcom/google/android/music/utils/AlbumArtUtils;->CACHE_REQUESTS_TO_RESIZE:I
  96. .line 126
  97. new-array v0, v7, [I
  98. fill-array-data v0, :array_ca
  99. sput-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->CACHE_SIZES:[I
  100. .line 133
  101. new-instance v0, Landroid/graphics/BitmapFactory$Options;
  102. invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V
  103. sput-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  104. .line 134
  105. new-instance v0, Landroid/graphics/BitmapFactory$Options;
  106. invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V
  107. sput-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sExternalBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  108. .line 135
  109. new-instance v0, Ljava/lang/Object;
  110. invoke-direct {v0}, Ljava/lang/Object;-><init>()V
  111. sput-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sCachedBitmapLock:Ljava/lang/Object;
  112. .line 142
  113. new-instance v0, Ljava/util/HashMap;
  114. invoke-direct {v0, v6}, Ljava/util/HashMap;-><init>(I)V
  115. sput-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sSizeCache:Ljava/util/HashMap;
  116. .line 145
  117. sput v4, Lcom/google/android/music/utils/AlbumArtUtils;->sTotalSizeCacheRequests:I
  118. .line 150
  119. new-instance v0, Ljava/util/HashMap;
  120. invoke-direct {v0, v6}, Ljava/util/HashMap;-><init>(I)V
  121. sput-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sSizeCacheRequests:Ljava/util/HashMap;
  122. .line 157
  123. new-instance v0, Ljava/util/HashMap;
  124. invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
  125. sput-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sCachedRezinBitmap:Ljava/util/HashMap;
  126. .line 167
  127. const/16 v0, 0x12
  128. new-array v0, v0, [I
  129. fill-array-data v0, :array_d4
  130. sput-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sFauxPalette:[I
  131. .line 172
  132. new-array v0, v3, [Ljava/lang/String;
  133. const-string v1, "album_id"
  134. aput-object v1, v0, v4
  135. sput-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sPlaylistCols:[Ljava/lang/String;
  136. .line 182
  137. const/4 v0, 0x6
  138. new-array v0, v0, [I
  139. fill-array-data v0, :array_fc
  140. sput-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sFauxGradientPalette:[I
  141. .line 188
  142. new-instance v0, Lcom/google/common/collect/ImmutableMap$Builder;
  143. invoke-direct {v0}, Lcom/google/common/collect/ImmutableMap$Builder;-><init>()V
  144. invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
  145. move-result-object v1
  146. invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
  147. move-result-object v2
  148. invoke-virtual {v0, v1, v2}, Lcom/google/common/collect/ImmutableMap$Builder;->put(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
  149. move-result-object v0
  150. invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
  151. move-result-object v1
  152. invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
  153. move-result-object v2
  154. invoke-virtual {v0, v1, v2}, Lcom/google/common/collect/ImmutableMap$Builder;->put(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
  155. move-result-object v0
  156. invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
  157. move-result-object v1
  158. invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
  159. move-result-object v2
  160. invoke-virtual {v0, v1, v2}, Lcom/google/common/collect/ImmutableMap$Builder;->put(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
  161. move-result-object v0
  162. invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
  163. move-result-object v1
  164. invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
  165. move-result-object v2
  166. invoke-virtual {v0, v1, v2}, Lcom/google/common/collect/ImmutableMap$Builder;->put(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
  167. move-result-object v0
  168. invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
  169. move-result-object v1
  170. invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
  171. move-result-object v2
  172. invoke-virtual {v0, v1, v2}, Lcom/google/common/collect/ImmutableMap$Builder;->put(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
  173. move-result-object v0
  174. const/4 v1, 0x5
  175. invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
  176. move-result-object v1
  177. invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
  178. move-result-object v2
  179. invoke-virtual {v0, v1, v2}, Lcom/google/common/collect/ImmutableMap$Builder;->put(Ljava/lang/Object;Ljava/lang/Object;)Lcom/google/common/collect/ImmutableMap$Builder;
  180. move-result-object v0
  181. invoke-virtual {v0}, Lcom/google/common/collect/ImmutableMap$Builder;->build()Lcom/google/common/collect/ImmutableMap;
  182. move-result-object v0
  183. sput-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sFauxStyleToPalette:Lcom/google/common/collect/ImmutableMap;
  184. .line 201
  185. sget-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  186. iput-boolean v4, v0, Landroid/graphics/BitmapFactory$Options;->inDither:Z
  187. .line 202
  188. sget-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  189. iput-boolean v3, v0, Landroid/graphics/BitmapFactory$Options;->inPurgeable:Z
  190. .line 203
  191. sget-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  192. iput-boolean v3, v0, Landroid/graphics/BitmapFactory$Options;->inInputShareable:Z
  193. .line 205
  194. sget-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sExternalBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  195. iput-boolean v4, v0, Landroid/graphics/BitmapFactory$Options;->inDither:Z
  196. .line 206
  197. sget-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sExternalBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  198. iput-boolean v3, v0, Landroid/graphics/BitmapFactory$Options;->inPurgeable:Z
  199. .line 207
  200. sget-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sExternalBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  201. iput-boolean v3, v0, Landroid/graphics/BitmapFactory$Options;->inInputShareable:Z
  202. .line 208
  203. return-void
  204. .line 126
  205. :array_ca
  206. .array-data 0x4
  207. 0x64t 0x0t 0x0t 0x0t
  208. 0xat 0x0t 0x0t 0x0t
  209. 0x0t 0x0t 0x0t 0x0t
  210. .end array-data
  211. .line 167
  212. :array_d4
  213. .array-data 0x4
  214. 0x68t 0x68t 0x68t 0xfft
  215. 0x2ct 0x6dt 0xa9t 0xfft
  216. 0x4at 0x47t 0xaet 0xfft
  217. 0x93t 0x5dt 0x88t 0xfft
  218. 0xa7t 0x6at 0x6at 0xfft
  219. 0x8ft 0x5bt 0x30t 0xfft
  220. 0x7et 0x7dt 0x3ct 0xfft
  221. 0x2at 0x9ft 0x75t 0xfft
  222. 0x3ct 0x97t 0xb6t 0xfft
  223. 0xb6t 0xb6t 0xb6t 0xfft
  224. 0x7at 0xa9t 0xd9t 0xfft
  225. 0xaat 0xa7t 0xd9t 0xfft
  226. 0xcft 0xa4t 0xc7t 0xfft
  227. 0xe3t 0xa4t 0xa6t 0xfft
  228. 0xddt 0xb7t 0x9at 0xfft
  229. 0xcbt 0xc7t 0x8ft 0xfft
  230. 0x78t 0xcdt 0xaft 0xfft
  231. 0x8ct 0xc5t 0xdbt 0xfft
  232. .end array-data
  233. .line 182
  234. :array_fc
  235. .array-data 0x4
  236. 0x6ct 0x92t 0xb3t 0xfft
  237. 0x38t 0x4et 0x87t 0xfft
  238. 0xb8t 0xa9t 0x9et 0xfft
  239. 0x6bt 0x62t 0x54t 0xfft
  240. 0x72t 0xc5t 0xd8t 0xfft
  241. 0x2dt 0x6bt 0x93t 0xfft
  242. .end array-data
  243. .end method
  244. .method public constructor <init>()V
  245. .registers 1
  246. .prologue
  247. .line 63
  248. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  249. .line 1718
  250. return-void
  251. .end method
  252. .method static synthetic access$000()[Ljava/lang/String;
  253. .registers 1
  254. .prologue
  255. .line 63
  256. sget-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sPlaylistCols:[Ljava/lang/String;
  257. return-object v0
  258. .end method
  259. .method static synthetic access$400()V
  260. .registers 0
  261. .prologue
  262. .line 63
  263. invoke-static {}, Lcom/google/android/music/utils/AlbumArtUtils;->resizeCaches()V
  264. return-void
  265. .end method
  266. .method private static appendSizeToExternalUrl(Ljava/lang/String;II)Ljava/lang/String;
  267. .registers 11
  268. .parameter "albumArtUrl"
  269. .parameter "width"
  270. .parameter "height"
  271. .prologue
  272. const/4 v7, 0x0
  273. .line 396
  274. const/16 v3, 0x2f
  275. invoke-virtual {p0, v3}, Ljava/lang/String;->lastIndexOf(I)I
  276. move-result v1
  277. .line 397
  278. .local v1, indexOfLastSlash:I
  279. invoke-virtual {p0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String;
  280. move-result-object v0
  281. .line 398
  282. .local v0, fileName:Ljava/lang/String;
  283. invoke-virtual {p0, v7, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
  284. move-result-object v2
  285. .line 399
  286. .local v2, url:Ljava/lang/String;
  287. if-eqz v0, :cond_3e
  288. if-eqz v2, :cond_3e
  289. .line 400
  290. new-instance v3, Ljava/lang/StringBuilder;
  291. invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
  292. invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  293. move-result-object v3
  294. const-string v4, "/w%d-h%d"
  295. const/4 v5, 0x2
  296. new-array v5, v5, [Ljava/lang/Object;
  297. invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
  298. move-result-object v6
  299. aput-object v6, v5, v7
  300. const/4 v6, 0x1
  301. invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
  302. move-result-object v7
  303. aput-object v7, v5, v6
  304. invoke-static {v4, v5}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
  305. move-result-object v4
  306. invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  307. move-result-object v3
  308. invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  309. move-result-object v3
  310. invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  311. move-result-object p0
  312. .line 402
  313. :cond_3e
  314. return-object p0
  315. .end method
  316. .method public static createAlbumIdIteratorFactoryForContentUri(Landroid/content/Context;Landroid/net/Uri;)Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;
  317. .registers 3
  318. .parameter "context"
  319. .parameter "contentUri"
  320. .prologue
  321. .line 303
  322. if-nez p1, :cond_4
  323. .line 304
  324. const/4 v0, 0x0
  325. .line 306
  326. :goto_3
  327. return-object v0
  328. :cond_4
  329. new-instance v0, Lcom/google/android/music/utils/AlbumArtUtils$1;
  330. invoke-direct {v0, p0, p1}, Lcom/google/android/music/utils/AlbumArtUtils$1;-><init>(Landroid/content/Context;Landroid/net/Uri;)V
  331. goto :goto_3
  332. .end method
  333. .method private static createArtCacheKey(IJ)Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  334. .registers 7
  335. .parameter "style"
  336. .parameter "artwork_id"
  337. .prologue
  338. .line 1054
  339. and-int/lit8 p0, p0, 0x7
  340. .line 1057
  341. packed-switch p0, :pswitch_data_48
  342. .line 1083
  343. new-instance v1, Ljava/lang/IllegalArgumentException;
  344. new-instance v2, Ljava/lang/StringBuilder;
  345. invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
  346. const-string v3, "Unsupported faux albumart style: "
  347. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  348. move-result-object v2
  349. invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  350. move-result-object v2
  351. invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  352. move-result-object v2
  353. invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
  354. throw v1
  355. .line 1059
  356. :pswitch_1e
  357. new-instance v0, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  358. const/4 v1, 0x2
  359. invoke-direct {v0, v1, p1, p2}, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;-><init>(IJ)V
  360. .line 1085
  361. .local v0, key:Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  362. :goto_24
  363. return-object v0
  364. .line 1063
  365. .end local v0 #key:Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  366. :pswitch_25
  367. new-instance v0, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  368. const/4 v1, 0x3
  369. invoke-direct {v0, v1, p1, p2}, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;-><init>(IJ)V
  370. .line 1064
  371. .restart local v0 #key:Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  372. goto :goto_24
  373. .line 1067
  374. .end local v0 #key:Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  375. :pswitch_2c
  376. new-instance v0, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  377. const/4 v1, 0x4
  378. invoke-direct {v0, v1, p1, p2}, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;-><init>(IJ)V
  379. .line 1068
  380. .restart local v0 #key:Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  381. goto :goto_24
  382. .line 1071
  383. .end local v0 #key:Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  384. :pswitch_33
  385. new-instance v0, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  386. const/4 v1, 0x5
  387. invoke-direct {v0, v1, p1, p2}, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;-><init>(IJ)V
  388. .line 1072
  389. .restart local v0 #key:Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  390. goto :goto_24
  391. .line 1075
  392. .end local v0 #key:Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  393. :pswitch_3a
  394. new-instance v0, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  395. const/4 v1, 0x6
  396. invoke-direct {v0, v1, p1, p2}, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;-><init>(IJ)V
  397. .line 1076
  398. .restart local v0 #key:Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  399. goto :goto_24
  400. .line 1079
  401. .end local v0 #key:Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  402. :pswitch_41
  403. new-instance v0, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  404. const/4 v1, 0x7
  405. invoke-direct {v0, v1, p1, p2}, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;-><init>(IJ)V
  406. .line 1080
  407. .restart local v0 #key:Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  408. goto :goto_24
  409. .line 1057
  410. :pswitch_data_48
  411. .packed-switch 0x0
  412. :pswitch_1e
  413. :pswitch_25
  414. :pswitch_2c
  415. :pswitch_33
  416. :pswitch_3a
  417. :pswitch_41
  418. .end packed-switch
  419. .end method
  420. .method private static createFauxAlbumArt(Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)Landroid/graphics/Bitmap;
  421. .registers 23
  422. .parameter "context"
  423. .parameter "style"
  424. .parameter "drawLabels"
  425. .parameter "seed"
  426. .parameter "w"
  427. .parameter "h"
  428. .parameter "mainLabel"
  429. .parameter "subLabel"
  430. .parameter "childAlbums"
  431. .prologue
  432. .line 1192
  433. const/16 v2, 0x80
  434. move/from16 v0, p5
  435. if-lt v0, v2, :cond_c
  436. const/16 v2, 0x80
  437. move/from16 v0, p6
  438. if-ge v0, v2, :cond_28
  439. .line 1193
  440. :cond_c
  441. const/16 v7, 0x80
  442. const/16 v8, 0x80
  443. move-object v2, p0
  444. move v3, p1
  445. move v4, p2
  446. move-wide/from16 v5, p3
  447. move-object/from16 v9, p7
  448. move-object/from16 v10, p8
  449. move-object/from16 v11, p9
  450. invoke-static/range {v2 .. v11}, Lcom/google/android/music/utils/AlbumArtUtils;->createFauxAlbumArt2(Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)Landroid/graphics/Bitmap;
  451. move-result-object v12
  452. .line 1195
  453. .local v12, bm:Landroid/graphics/Bitmap;
  454. move/from16 v0, p5
  455. move/from16 v1, p6
  456. invoke-static {v12, v0, v1}, Lcom/google/android/music/utils/AlbumArtUtils;->scaleToFit(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
  457. move-result-object v2
  458. .line 1197
  459. .end local v12 #bm:Landroid/graphics/Bitmap;
  460. :goto_27
  461. return-object v2
  462. :cond_28
  463. invoke-static/range {p0 .. p9}, Lcom/google/android/music/utils/AlbumArtUtils;->createFauxAlbumArt2(Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)Landroid/graphics/Bitmap;
  464. move-result-object v2
  465. goto :goto_27
  466. .end method
  467. .method private static createFauxAlbumArt2(Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)Landroid/graphics/Bitmap;
  468. .registers 25
  469. .parameter "context"
  470. .parameter "style"
  471. .parameter "drawLabels"
  472. .parameter "seed"
  473. .parameter "w"
  474. .parameter "h"
  475. .parameter "mainLabel"
  476. .parameter "subLabel"
  477. .parameter "childAlbums"
  478. .prologue
  479. .line 1204
  480. const/4 v13, 0x0
  481. .line 1206
  482. .local v13, bm:Landroid/graphics/Bitmap;
  483. :try_start_1
  484. sget-object v3, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
  485. move/from16 v0, p5
  486. move/from16 v1, p6
  487. invoke-static {v0, v1, v3}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
  488. :try_end_a
  489. .catch Ljava/lang/OutOfMemoryError; {:try_start_1 .. :try_end_a} :catch_25
  490. move-result-object v13
  491. .line 1211
  492. :goto_b
  493. new-instance v2, Landroid/graphics/Canvas;
  494. invoke-direct {v2, v13}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V
  495. .local v2, canvas:Landroid/graphics/Canvas;
  496. move-object v3, p0
  497. move/from16 v4, p1
  498. move/from16 v5, p2
  499. move-wide/from16 v6, p3
  500. move/from16 v8, p5
  501. move/from16 v9, p6
  502. move-object/from16 v10, p7
  503. move-object/from16 v11, p8
  504. move-object/from16 v12, p9
  505. .line 1212
  506. invoke-static/range {v2 .. v12}, Lcom/google/android/music/utils/AlbumArtUtils;->drawFauxAlbumArt(Landroid/graphics/Canvas;Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)V
  507. .line 1214
  508. return-object v13
  509. .line 1208
  510. .end local v2 #canvas:Landroid/graphics/Canvas;
  511. :catch_25
  512. move-exception v14
  513. .line 1209
  514. .local v14, e:Ljava/lang/OutOfMemoryError;
  515. move/from16 v0, p5
  516. move/from16 v1, p6
  517. invoke-static {v14, v0, v1}, Lcom/google/android/music/utils/AlbumArtUtils;->reportAndRethrow(Ljava/lang/OutOfMemoryError;II)V
  518. goto :goto_b
  519. .end method
  520. .method public static draw(Landroid/graphics/Canvas;Landroid/content/Context;JIILjava/lang/String;Ljava/lang/String;)V
  521. .registers 18
  522. .parameter "canvas"
  523. .parameter "context"
  524. .parameter "album_id"
  525. .parameter "w"
  526. .parameter "h"
  527. .parameter "album"
  528. .parameter "artist"
  529. .prologue
  530. .line 476
  531. invoke-static/range {p0 .. p5}, Lcom/google/android/music/utils/AlbumArtUtils;->drawArtwork(Landroid/graphics/Canvas;Landroid/content/Context;JII)Z
  532. move-result v0
  533. if-eqz v0, :cond_7
  534. .line 481
  535. :goto_6
  536. return-void
  537. .line 480
  538. :cond_7
  539. const/4 v2, 0x0
  540. const/4 v3, 0x1
  541. move-object v0, p0
  542. move-object v1, p1
  543. move-wide v4, p2
  544. move v6, p4
  545. move v7, p5
  546. move-object/from16 v8, p6
  547. move-object/from16 v9, p7
  548. invoke-static/range {v0 .. v9}, Lcom/google/android/music/utils/AlbumArtUtils;->drawFauxAlbumArt(Landroid/graphics/Canvas;Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;)V
  549. goto :goto_6
  550. .end method
  551. .method private static drawArtwork(Landroid/graphics/Canvas;Landroid/content/Context;JII)Z
  552. .registers 26
  553. .parameter "canvas"
  554. .parameter "context"
  555. .parameter "album_id"
  556. .parameter "w"
  557. .parameter "h"
  558. .prologue
  559. .line 770
  560. const/4 v3, 0x2
  561. new-array v8, v3, [I
  562. .local v8, originalBounds:[I
  563. move-object/from16 v3, p1
  564. move-wide/from16 v4, p2
  565. move/from16 v6, p4
  566. move/from16 v7, p5
  567. .line 771
  568. invoke-static/range {v3 .. v8}, Lcom/google/android/music/utils/AlbumArtUtils;->resolveArtworkRaw(Landroid/content/Context;JII[I)Landroid/graphics/Bitmap;
  569. move-result-object v11
  570. .line 772
  571. .local v11, b:Landroid/graphics/Bitmap;
  572. if-nez v11, :cond_13
  573. .line 773
  574. const/4 v3, 0x0
  575. .line 803
  576. :goto_12
  577. return v3
  578. .line 778
  579. :cond_13
  580. invoke-virtual {v11}, Landroid/graphics/Bitmap;->getWidth()I
  581. move-result v13
  582. .line 779
  583. .local v13, bitmapWidth:I
  584. invoke-virtual {v11}, Landroid/graphics/Bitmap;->getHeight()I
  585. move-result v12
  586. .line 781
  587. .local v12, bitmapHeight:I
  588. new-instance v19, Landroid/graphics/Rect;
  589. const/4 v3, 0x0
  590. const/4 v4, 0x0
  591. move-object/from16 v0, v19
  592. invoke-direct {v0, v3, v4, v13, v12}, Landroid/graphics/Rect;-><init>(IIII)V
  593. .line 782
  594. .local v19, src:Landroid/graphics/Rect;
  595. const/16 v18, 0x0
  596. .line 783
  597. .local v18, paint:Landroid/graphics/Paint;
  598. new-instance v15, Landroid/graphics/RectF;
  599. const/4 v3, 0x0
  600. const/4 v4, 0x0
  601. move/from16 v0, p4
  602. int-to-float v5, v0
  603. move/from16 v0, p5
  604. int-to-float v6, v0
  605. invoke-direct {v15, v3, v4, v5, v6}, Landroid/graphics/RectF;-><init>(FFFF)V
  606. .line 787
  607. .local v15, dst:Landroid/graphics/RectF;
  608. invoke-static {v13, v12}, Ljava/lang/Math;->min(II)I
  609. move-result v17
  610. .line 788
  611. .local v17, minSize:I
  612. const/4 v14, 0x0
  613. .line 789
  614. .local v14, crop:I
  615. const/16 v10, 0xc8
  616. .line 790
  617. .local v10, CROP_SIZE_THRESHOLD:I
  618. const/4 v9, 0x3
  619. .line 791
  620. .local v9, CROP_PIXEL_AMOUNT:I
  621. const/4 v3, 0x0
  622. aget v3, v8, v3
  623. const/4 v4, 0x1
  624. aget v4, v8, v4
  625. invoke-static {v3, v4}, Ljava/lang/Math;->min(II)I
  626. move-result v16
  627. .line 792
  628. .local v16, minOriginalSize:I
  629. const/16 v3, 0xc8
  630. move/from16 v0, v16
  631. if-lt v0, v3, :cond_59
  632. const/16 v3, 0xc
  633. move/from16 v0, v17
  634. if-le v0, v3, :cond_59
  635. .line 793
  636. mul-int/lit8 v3, v17, 0x3
  637. add-int/lit16 v3, v3, 0xc8
  638. add-int/lit8 v3, v3, -0x1
  639. div-int/lit16 v14, v3, 0xc8
  640. .line 795
  641. :cond_59
  642. if-lez v14, :cond_6b
  643. .line 796
  644. move-object/from16 v0, v19
  645. invoke-virtual {v0, v14, v14}, Landroid/graphics/Rect;->inset(II)V
  646. .line 797
  647. new-instance v18, Landroid/graphics/Paint;
  648. .end local v18 #paint:Landroid/graphics/Paint;
  649. invoke-direct/range {v18 .. v18}, Landroid/graphics/Paint;-><init>()V
  650. .line 798
  651. .restart local v18 #paint:Landroid/graphics/Paint;
  652. const/4 v3, 0x1
  653. move-object/from16 v0, v18
  654. invoke-virtual {v0, v3}, Landroid/graphics/Paint;->setFilterBitmap(Z)V
  655. .line 801
  656. :cond_6b
  657. move-object/from16 v0, p0
  658. move-object/from16 v1, v19
  659. move-object/from16 v2, v18
  660. invoke-virtual {v0, v11, v1, v15, v2}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/RectF;Landroid/graphics/Paint;)V
  661. .line 802
  662. invoke-virtual {v11}, Landroid/graphics/Bitmap;->recycle()V
  663. .line 803
  664. const/4 v3, 0x1
  665. goto :goto_12
  666. .end method
  667. .method private static drawClassicFauxAlbumArt(Landroid/graphics/Canvas;Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;)V
  668. .registers 24
  669. .parameter
  670. .parameter
  671. .parameter
  672. .parameter
  673. .parameter
  674. .parameter
  675. .parameter
  676. .parameter
  677. .parameter
  678. .prologue
  679. .line 1414
  680. new-instance v4, Ljava/util/Random;
  681. move-wide/from16 v0, p4
  682. invoke-direct {v4, v0, v1}, Ljava/util/Random;-><init>(J)V
  683. .line 1415
  684. new-instance v3, Landroid/graphics/Paint;
  685. invoke-direct {v3}, Landroid/graphics/Paint;-><init>()V
  686. .line 1416
  687. and-int/lit8 v2, p2, 0x8
  688. const/16 v5, 0x8
  689. if-ne v2, v5, :cond_38
  690. const/4 v2, 0x1
  691. .line 1417
  692. :goto_13
  693. and-int/lit8 v12, p2, 0x7
  694. .line 1427
  695. if-eqz p3, :cond_23
  696. if-nez v2, :cond_23
  697. .line 1428
  698. const/4 v2, 0x1
  699. if-ne v12, v2, :cond_3a
  700. .line 1429
  701. const v2, 0x7f0d00aa
  702. invoke-virtual {p1, v2}, Landroid/content/Context;->getString(I)Ljava/lang/String;
  703. move-result-object p9
  704. .line 1438
  705. :cond_23
  706. :goto_23
  707. move/from16 v0, p7
  708. mul-int/lit16 v2, v0, 0xc8
  709. div-int/lit16 v6, v2, 0x258
  710. .line 1439
  711. mul-int/lit8 v2, p7, 0xe
  712. div-int/lit16 v13, v2, 0x258
  713. .line 1440
  714. packed-switch v12, :pswitch_data_10c
  715. .line 1463
  716. new-instance v2, Ljava/lang/RuntimeException;
  717. const-string v3, "Unknown faux style"
  718. invoke-direct {v2, v3}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
  719. throw v2
  720. .line 1416
  721. :cond_38
  722. const/4 v2, 0x0
  723. goto :goto_13
  724. .line 1430
  725. :cond_3a
  726. const/4 v2, 0x3
  727. if-ne v12, v2, :cond_45
  728. .line 1431
  729. const v2, 0x7f0d00ac
  730. invoke-virtual {p1, v2}, Landroid/content/Context;->getString(I)Ljava/lang/String;
  731. move-result-object p9
  732. goto :goto_23
  733. .line 1432
  734. :cond_45
  735. const/4 v2, 0x2
  736. if-ne v12, v2, :cond_50
  737. .line 1433
  738. const v2, 0x7f0d00ab
  739. invoke-virtual {p1, v2}, Landroid/content/Context;->getString(I)Ljava/lang/String;
  740. move-result-object p9
  741. goto :goto_23
  742. .line 1434
  743. :cond_50
  744. const/4 v2, 0x4
  745. if-ne v12, v2, :cond_23
  746. .line 1435
  747. const v2, 0x7f0d00a9
  748. invoke-virtual {p1, v2}, Landroid/content/Context;->getString(I)Ljava/lang/String;
  749. move-result-object p9
  750. goto :goto_23
  751. .line 1442
  752. :pswitch_5b
  753. const/4 v5, 0x0
  754. const/4 v9, 0x1
  755. const/4 v10, 0x1
  756. const/4 v11, 0x0
  757. move-object v2, p0
  758. move/from16 v7, p6
  759. move/from16 v8, p7
  760. invoke-static/range {v2 .. v11}, Lcom/google/android/music/utils/AlbumArtUtils;->genQuilt(Landroid/graphics/Canvas;Landroid/graphics/Paint;Ljava/util/Random;IIIIIII)V
  761. .line 1466
  762. :goto_67
  763. if-eqz p3, :cond_cd
  764. const/4 v2, 0x5
  765. if-eq v12, v2, :cond_cd
  766. .line 1467
  767. const/4 v3, 0x0
  768. const/4 v4, 0x0
  769. move-object v2, p0
  770. move/from16 v5, p6
  771. move v7, v13
  772. move v8, v12
  773. invoke-static/range {v2 .. v8}, Lcom/google/android/music/utils/AlbumArtUtils;->genBannerBackground(Landroid/graphics/Canvas;IIIIII)V
  774. .line 1468
  775. if-eqz p8, :cond_9a
  776. .line 1469
  777. mul-int/lit8 v2, p6, 0x2c
  778. div-int/lit16 v4, v2, 0x258
  779. .line 1470
  780. mul-int/lit8 v2, p7, 0x22
  781. div-int/lit16 v5, v2, 0x258
  782. .line 1471
  783. move/from16 v0, p6
  784. mul-int/lit16 v2, v0, 0x200
  785. div-int/lit16 v3, v2, 0x258
  786. .line 1472
  787. mul-int/lit8 v2, p7, 0x6d
  788. div-int/lit16 v6, v2, 0x4b0
  789. .line 1473
  790. mul-int/lit8 v2, p6, 0x60
  791. div-int/lit16 v10, v2, 0x258
  792. .line 1475
  793. const/4 v7, 0x0
  794. const/high16 v9, -0x2600
  795. const/4 v11, 0x0
  796. const/4 v12, 0x0
  797. const/4 v13, 0x0
  798. move-object v2, p0
  799. move-object/from16 v8, p8
  800. invoke-static/range {v2 .. v13}, Lcom/google/android/music/utils/AlbumArtUtils;->renderFauxLabel(Landroid/graphics/Canvas;IIIIZLjava/lang/String;IIZII)V
  801. .line 1478
  802. :cond_9a
  803. if-eqz p9, :cond_cd
  804. .line 1479
  805. mul-int/lit8 v2, p6, 0x2c
  806. div-int/lit16 v4, v2, 0x258
  807. .line 1480
  808. move/from16 v0, p7
  809. mul-int/lit16 v2, v0, 0x84
  810. div-int/lit16 v5, v2, 0x258
  811. .line 1481
  812. move/from16 v0, p6
  813. mul-int/lit16 v2, v0, 0x200
  814. div-int/lit16 v3, v2, 0x258
  815. .line 1482
  816. move/from16 v0, p6
  817. mul-int/lit16 v2, v0, 0x1d0
  818. div-int/lit16 v13, v2, 0x258
  819. .line 1483
  820. move/from16 v0, p6
  821. mul-int/lit16 v2, v0, 0x1fb
  822. div-int/lit16 v12, v2, 0x258
  823. .line 1484
  824. mul-int/lit8 v2, p7, 0x22
  825. div-int/lit16 v6, v2, 0x258
  826. .line 1485
  827. mul-int/lit8 v2, p6, 0x30
  828. div-int/lit16 v10, v2, 0x258
  829. .line 1487
  830. const/4 v7, 0x1
  831. invoke-virtual/range {p9 .. p9}, Ljava/lang/String;->toUpperCase()Ljava/lang/String;
  832. move-result-object v8
  833. const v9, -0x40000001
  834. const/4 v11, 0x1
  835. move-object v2, p0
  836. invoke-static/range {v2 .. v13}, Lcom/google/android/music/utils/AlbumArtUtils;->renderFauxLabel(Landroid/graphics/Canvas;IIIIZLjava/lang/String;IIZII)V
  837. .line 1491
  838. :cond_cd
  839. return-void
  840. .line 1447
  841. :pswitch_ce
  842. const/4 v5, 0x0
  843. const/4 v9, 0x2
  844. const/4 v10, 0x1
  845. const/4 v11, 0x0
  846. move-object v2, p0
  847. move/from16 v7, p6
  848. move/from16 v8, p7
  849. invoke-static/range {v2 .. v11}, Lcom/google/android/music/utils/AlbumArtUtils;->genQuilt(Landroid/graphics/Canvas;Landroid/graphics/Paint;Ljava/util/Random;IIIIIII)V
  850. goto :goto_67
  851. .line 1450
  852. :pswitch_db
  853. const/4 v5, 0x0
  854. const/4 v9, 0x3
  855. const/4 v10, 0x2
  856. const/4 v11, 0x0
  857. move-object v2, p0
  858. move/from16 v7, p6
  859. move/from16 v8, p7
  860. invoke-static/range {v2 .. v11}, Lcom/google/android/music/utils/AlbumArtUtils;->genQuilt(Landroid/graphics/Canvas;Landroid/graphics/Paint;Ljava/util/Random;IIIIIII)V
  861. goto :goto_67
  862. .line 1455
  863. :pswitch_e8
  864. sget-object v2, Lcom/google/android/music/utils/AlbumArtUtils;->mShuffleBadge:Landroid/graphics/Bitmap;
  865. if-nez v2, :cond_f5
  866. .line 1456
  867. const v2, 0x7f02010a
  868. invoke-static {p1, v2}, Lcom/google/android/music/utils/AlbumArtUtils;->getBitmap(Landroid/content/Context;I)Landroid/graphics/Bitmap;
  869. move-result-object v2
  870. sput-object v2, Lcom/google/android/music/utils/AlbumArtUtils;->mShuffleBadge:Landroid/graphics/Bitmap;
  871. .line 1458
  872. :cond_f5
  873. const/4 v2, 0x1
  874. invoke-virtual {v3, v2}, Landroid/graphics/Paint;->setFilterBitmap(Z)V
  875. .line 1459
  876. sget-object v2, Lcom/google/android/music/utils/AlbumArtUtils;->mShuffleBadge:Landroid/graphics/Bitmap;
  877. const/4 v4, 0x0
  878. new-instance v5, Landroid/graphics/Rect;
  879. const/4 v7, 0x0
  880. const/4 v8, 0x0
  881. move/from16 v0, p6
  882. move/from16 v1, p7
  883. invoke-direct {v5, v7, v8, v0, v1}, Landroid/graphics/Rect;-><init>(IIII)V
  884. invoke-virtual {p0, v2, v4, v5, v3}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V
  885. goto/16 :goto_67
  886. .line 1440
  887. :pswitch_data_10c
  888. .packed-switch 0x0
  889. :pswitch_5b
  890. :pswitch_ce
  891. :pswitch_ce
  892. :pswitch_ce
  893. :pswitch_db
  894. :pswitch_e8
  895. .end packed-switch
  896. .end method
  897. .method public static drawFauxAlbumArt(Landroid/graphics/Canvas;Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;)V
  898. .registers 21
  899. .parameter "canvas"
  900. .parameter "context"
  901. .parameter "style"
  902. .parameter "drawLabels"
  903. .parameter "seed"
  904. .parameter "w"
  905. .parameter "h"
  906. .parameter "mainLabel"
  907. .parameter "subLabel"
  908. .prologue
  909. .line 1236
  910. const/4 v10, 0x0
  911. move-object v0, p0
  912. move-object v1, p1
  913. move v2, p2
  914. move v3, p3
  915. move-wide v4, p4
  916. move/from16 v6, p6
  917. move/from16 v7, p7
  918. move-object/from16 v8, p8
  919. move-object/from16 v9, p9
  920. invoke-static/range {v0 .. v10}, Lcom/google/android/music/utils/AlbumArtUtils;->drawFauxAlbumArt(Landroid/graphics/Canvas;Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)V
  921. .line 1237
  922. return-void
  923. .end method
  924. .method public static drawFauxAlbumArt(Landroid/graphics/Canvas;Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)V
  925. .registers 20
  926. .parameter "canvas"
  927. .parameter "context"
  928. .parameter "style"
  929. .parameter "drawLabels"
  930. .parameter "seed"
  931. .parameter "width"
  932. .parameter "height"
  933. .parameter "mainLabel"
  934. .parameter "subLabel"
  935. .parameter "childAlbums"
  936. .prologue
  937. .line 1243
  938. and-int/lit8 v8, p2, 0x7
  939. .line 1244
  940. .local v8, fauxArtType:I
  941. const/4 v0, 0x1
  942. if-gt v0, v8, :cond_18
  943. const/4 v0, 0x4
  944. if-gt v8, v0, :cond_18
  945. move-object v0, p0
  946. move-object v1, p1
  947. move v2, p2
  948. move-wide v3, p4
  949. move v5, p6
  950. move/from16 v6, p7
  951. move-object/from16 v7, p10
  952. .line 1245
  953. invoke-static/range {v0 .. v7}, Lcom/google/android/music/utils/AlbumArtUtils;->drawFauxPlaylistArt(Landroid/graphics/Canvas;Landroid/content/Context;IJIILcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)Z
  954. move-result v0
  955. if-eqz v0, :cond_18
  956. .line 1251
  957. :goto_17
  958. return-void
  959. .line 1249
  960. :cond_18
  961. invoke-static/range {p0 .. p9}, Lcom/google/android/music/utils/AlbumArtUtils;->drawClassicFauxAlbumArt(Landroid/graphics/Canvas;Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;)V
  962. goto :goto_17
  963. .end method
  964. .method private static drawFauxPlaylistArt(Landroid/graphics/Canvas;Landroid/content/Context;IJIILcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)Z
  965. .registers 39
  966. .parameter "canvas"
  967. .parameter "context"
  968. .parameter "style"
  969. .parameter "playlistId"
  970. .parameter "width"
  971. .parameter "height"
  972. .parameter "childAlbums"
  973. .prologue
  974. .line 1255
  975. const/16 v8, 0x9
  976. move-object/from16 v4, p1
  977. move/from16 v5, p2
  978. move-wide/from16 v6, p3
  979. move/from16 v9, p5
  980. move/from16 v10, p6
  981. move-object/from16 v11, p7
  982. invoke-static/range {v4 .. v11}, Lcom/google/android/music/utils/AlbumArtUtils;->getUniqueArt(Landroid/content/Context;IJIIILcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)Ljava/util/List;
  983. move-result-object v15
  984. .line 1262
  985. .local v15, art:Ljava/util/List;,"Ljava/util/List<Landroid/graphics/Bitmap;>;"
  986. :try_start_12
  987. invoke-interface {v15}, Ljava/util/List;->size()I
  988. :try_end_15
  989. .catchall {:try_start_12 .. :try_end_15} :catchall_d8
  990. move-result v16
  991. .line 1263
  992. .local v16, artCount:I
  993. const/4 v4, 0x1
  994. move/from16 v0, v16
  995. if-gt v0, v4, :cond_30
  996. .line 1264
  997. const/4 v4, 0x0
  998. .line 1314
  999. invoke-interface {v15}, Ljava/util/List;->iterator()Ljava/util/Iterator;
  1000. move-result-object v22
  1001. .local v22, i$:Ljava/util/Iterator;
  1002. :goto_20
  1003. invoke-interface/range {v22 .. v22}, Ljava/util/Iterator;->hasNext()Z
  1004. move-result v5
  1005. if-eqz v5, :cond_11a
  1006. invoke-interface/range {v22 .. v22}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  1007. move-result-object v17
  1008. check-cast v17, Landroid/graphics/Bitmap;
  1009. .line 1315
  1010. .local v17, b:Landroid/graphics/Bitmap;
  1011. invoke-virtual/range {v17 .. v17}, Landroid/graphics/Bitmap;->recycle()V
  1012. goto :goto_20
  1013. .line 1265
  1014. .end local v17 #b:Landroid/graphics/Bitmap;
  1015. .end local v22 #i$:Ljava/util/Iterator;
  1016. :cond_30
  1017. const/4 v4, 0x4
  1018. move/from16 v0, v16
  1019. if-ge v0, v4, :cond_bd
  1020. .line 1266
  1021. const/16 v20, 0x2
  1022. .line 1267
  1023. .local v20, horizontalArtCount:I
  1024. const/16 v28, 0x1
  1025. .line 1277
  1026. .local v28, verticalArtCount:I
  1027. :goto_39
  1028. :try_start_39
  1029. div-int v26, p5, v20
  1030. .line 1278
  1031. .local v26, squareWidth:I
  1032. div-int v25, p6, v28
  1033. .line 1279
  1034. .local v25, squareHeight:I
  1035. const/16 v30, 0x0
  1036. .line 1281
  1037. .local v30, y:I
  1038. new-instance v24, Landroid/graphics/Paint;
  1039. invoke-direct/range {v24 .. v24}, Landroid/graphics/Paint;-><init>()V
  1040. .line 1282
  1041. .local v24, paint:Landroid/graphics/Paint;
  1042. const/4 v4, 0x1
  1043. move-object/from16 v0, v24
  1044. invoke-virtual {v0, v4}, Landroid/graphics/Paint;->setFilterBitmap(Z)V
  1045. .line 1283
  1046. new-instance v27, Landroid/graphics/Rect;
  1047. invoke-direct/range {v27 .. v27}, Landroid/graphics/Rect;-><init>()V
  1048. .line 1284
  1049. .local v27, srcRect:Landroid/graphics/Rect;
  1050. new-instance v18, Landroid/graphics/RectF;
  1051. invoke-direct/range {v18 .. v18}, Landroid/graphics/RectF;-><init>()V
  1052. .line 1286
  1053. .local v18, dstRect:Landroid/graphics/RectF;
  1054. const/16 v23, 0x0
  1055. .local v23, j:I
  1056. :goto_56
  1057. move/from16 v0, v23
  1058. move/from16 v1, v28
  1059. if-ge v0, v1, :cond_104
  1060. .line 1287
  1061. const/16 v29, 0x0
  1062. .line 1288
  1063. .local v29, x:I
  1064. const/16 v21, 0x0
  1065. .local v21, i:I
  1066. :goto_60
  1067. move/from16 v0, v21
  1068. move/from16 v1, v20
  1069. if-ge v0, v1, :cond_fe
  1070. .line 1289
  1071. mul-int v4, v23, v20
  1072. add-int v4, v4, v21
  1073. invoke-interface {v15, v4}, Ljava/util/List;->get(I)Ljava/lang/Object;
  1074. move-result-object v12
  1075. check-cast v12, Landroid/graphics/Bitmap;
  1076. .line 1290
  1077. .local v12, albumBitmap:Landroid/graphics/Bitmap;
  1078. invoke-virtual {v12}, Landroid/graphics/Bitmap;->getWidth()I
  1079. move-result v14
  1080. .line 1291
  1081. .local v14, albumBitmapWidth:I
  1082. invoke-virtual {v12}, Landroid/graphics/Bitmap;->getHeight()I
  1083. move-result v13
  1084. .line 1292
  1085. .local v13, albumBitmapHeight:I
  1086. const/4 v4, 0x2
  1087. move/from16 v0, v20
  1088. if-ne v0, v4, :cond_ed
  1089. const/4 v4, 0x1
  1090. move/from16 v0, v28
  1091. if-ne v0, v4, :cond_ed
  1092. .line 1295
  1093. div-int/lit8 v19, v14, 0x2
  1094. .line 1296
  1095. .local v19, halfAlbumBitmapWidth:I
  1096. if-nez v21, :cond_cf
  1097. .line 1297
  1098. const/4 v4, 0x0
  1099. const/4 v5, 0x0
  1100. move-object/from16 v0, v27
  1101. move/from16 v1, v19
  1102. invoke-virtual {v0, v4, v5, v1, v13}, Landroid/graphics/Rect;->set(IIII)V
  1103. .line 1305
  1104. .end local v19 #halfAlbumBitmapWidth:I
  1105. :goto_8f
  1106. move/from16 v0, v29
  1107. int-to-float v6, v0
  1108. move/from16 v0, v30
  1109. int-to-float v7, v0
  1110. add-int/lit8 v4, v20, -0x1
  1111. move/from16 v0, v21
  1112. if-ge v0, v4, :cond_f5
  1113. add-int v4, v29, v26
  1114. int-to-float v4, v4
  1115. move v5, v4
  1116. :goto_9f
  1117. add-int/lit8 v4, v28, -0x1
  1118. move/from16 v0, v23
  1119. if-ge v0, v4, :cond_fa
  1120. add-int v4, v30, v25
  1121. int-to-float v4, v4
  1122. :goto_a8
  1123. move-object/from16 v0, v18
  1124. invoke-virtual {v0, v6, v7, v5, v4}, Landroid/graphics/RectF;->set(FFFF)V
  1125. .line 1308
  1126. move-object/from16 v0, p0
  1127. move-object/from16 v1, v27
  1128. move-object/from16 v2, v18
  1129. move-object/from16 v3, v24
  1130. invoke-virtual {v0, v12, v1, v2, v3}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/RectF;Landroid/graphics/Paint;)V
  1131. .line 1309
  1132. add-int v29, v29, v26
  1133. .line 1288
  1134. add-int/lit8 v21, v21, 0x1
  1135. goto :goto_60
  1136. .line 1268
  1137. .end local v12 #albumBitmap:Landroid/graphics/Bitmap;
  1138. .end local v13 #albumBitmapHeight:I
  1139. .end local v14 #albumBitmapWidth:I
  1140. .end local v18 #dstRect:Landroid/graphics/RectF;
  1141. .end local v20 #horizontalArtCount:I
  1142. .end local v21 #i:I
  1143. .end local v23 #j:I
  1144. .end local v24 #paint:Landroid/graphics/Paint;
  1145. .end local v25 #squareHeight:I
  1146. .end local v26 #squareWidth:I
  1147. .end local v27 #srcRect:Landroid/graphics/Rect;
  1148. .end local v28 #verticalArtCount:I
  1149. .end local v29 #x:I
  1150. .end local v30 #y:I
  1151. :cond_bd
  1152. const/16 v4, 0x9
  1153. move/from16 v0, v16
  1154. if-ge v0, v4, :cond_c9
  1155. .line 1269
  1156. const/16 v20, 0x2
  1157. .line 1270
  1158. .restart local v20 #horizontalArtCount:I
  1159. const/16 v28, 0x2
  1160. .restart local v28 #verticalArtCount:I
  1161. goto/16 :goto_39
  1162. .line 1272
  1163. .end local v20 #horizontalArtCount:I
  1164. .end local v28 #verticalArtCount:I
  1165. :cond_c9
  1166. const/16 v20, 0x3
  1167. .line 1273
  1168. .restart local v20 #horizontalArtCount:I
  1169. const/16 v28, 0x3
  1170. .restart local v28 #verticalArtCount:I
  1171. goto/16 :goto_39
  1172. .line 1299
  1173. .restart local v12 #albumBitmap:Landroid/graphics/Bitmap;
  1174. .restart local v13 #albumBitmapHeight:I
  1175. .restart local v14 #albumBitmapWidth:I
  1176. .restart local v18 #dstRect:Landroid/graphics/RectF;
  1177. .restart local v19 #halfAlbumBitmapWidth:I
  1178. .restart local v21 #i:I
  1179. .restart local v23 #j:I
  1180. .restart local v24 #paint:Landroid/graphics/Paint;
  1181. .restart local v25 #squareHeight:I
  1182. .restart local v26 #squareWidth:I
  1183. .restart local v27 #srcRect:Landroid/graphics/Rect;
  1184. .restart local v29 #x:I
  1185. .restart local v30 #y:I
  1186. :cond_cf
  1187. const/4 v4, 0x0
  1188. move-object/from16 v0, v27
  1189. move/from16 v1, v19
  1190. invoke-virtual {v0, v1, v4, v14, v13}, Landroid/graphics/Rect;->set(IIII)V
  1191. :try_end_d7
  1192. .catchall {:try_start_39 .. :try_end_d7} :catchall_d8
  1193. goto :goto_8f
  1194. .line 1314
  1195. .end local v12 #albumBitmap:Landroid/graphics/Bitmap;
  1196. .end local v13 #albumBitmapHeight:I
  1197. .end local v14 #albumBitmapWidth:I
  1198. .end local v16 #artCount:I
  1199. .end local v18 #dstRect:Landroid/graphics/RectF;
  1200. .end local v19 #halfAlbumBitmapWidth:I
  1201. .end local v20 #horizontalArtCount:I
  1202. .end local v21 #i:I
  1203. .end local v23 #j:I
  1204. .end local v24 #paint:Landroid/graphics/Paint;
  1205. .end local v25 #squareHeight:I
  1206. .end local v26 #squareWidth:I
  1207. .end local v27 #srcRect:Landroid/graphics/Rect;
  1208. .end local v28 #verticalArtCount:I
  1209. .end local v29 #x:I
  1210. .end local v30 #y:I
  1211. :catchall_d8
  1212. move-exception v4
  1213. invoke-interface {v15}, Ljava/util/List;->iterator()Ljava/util/Iterator;
  1214. move-result-object v22
  1215. .restart local v22 #i$:Ljava/util/Iterator;
  1216. :goto_dd
  1217. invoke-interface/range {v22 .. v22}, Ljava/util/Iterator;->hasNext()Z
  1218. move-result v5
  1219. if-eqz v5, :cond_118
  1220. invoke-interface/range {v22 .. v22}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  1221. move-result-object v17
  1222. check-cast v17, Landroid/graphics/Bitmap;
  1223. .line 1315
  1224. .restart local v17 #b:Landroid/graphics/Bitmap;
  1225. invoke-virtual/range {v17 .. v17}, Landroid/graphics/Bitmap;->recycle()V
  1226. goto :goto_dd
  1227. .line 1303
  1228. .end local v17 #b:Landroid/graphics/Bitmap;
  1229. .end local v22 #i$:Ljava/util/Iterator;
  1230. .restart local v12 #albumBitmap:Landroid/graphics/Bitmap;
  1231. .restart local v13 #albumBitmapHeight:I
  1232. .restart local v14 #albumBitmapWidth:I
  1233. .restart local v16 #artCount:I
  1234. .restart local v18 #dstRect:Landroid/graphics/RectF;
  1235. .restart local v20 #horizontalArtCount:I
  1236. .restart local v21 #i:I
  1237. .restart local v23 #j:I
  1238. .restart local v24 #paint:Landroid/graphics/Paint;
  1239. .restart local v25 #squareHeight:I
  1240. .restart local v26 #squareWidth:I
  1241. .restart local v27 #srcRect:Landroid/graphics/Rect;
  1242. .restart local v28 #verticalArtCount:I
  1243. .restart local v29 #x:I
  1244. .restart local v30 #y:I
  1245. :cond_ed
  1246. const/4 v4, 0x0
  1247. const/4 v5, 0x0
  1248. :try_start_ef
  1249. move-object/from16 v0, v27
  1250. invoke-virtual {v0, v4, v5, v14, v13}, Landroid/graphics/Rect;->set(IIII)V
  1251. :try_end_f4
  1252. .catchall {:try_start_ef .. :try_end_f4} :catchall_d8
  1253. goto :goto_8f
  1254. .line 1305
  1255. :cond_f5
  1256. move/from16 v0, p5
  1257. int-to-float v4, v0
  1258. move v5, v4
  1259. goto :goto_9f
  1260. :cond_fa
  1261. move/from16 v0, p6
  1262. int-to-float v4, v0
  1263. goto :goto_a8
  1264. .line 1311
  1265. .end local v12 #albumBitmap:Landroid/graphics/Bitmap;
  1266. .end local v13 #albumBitmapHeight:I
  1267. .end local v14 #albumBitmapWidth:I
  1268. :cond_fe
  1269. add-int v30, v30, v25
  1270. .line 1286
  1271. add-int/lit8 v23, v23, 0x1
  1272. goto/16 :goto_56
  1273. .line 1314
  1274. .end local v21 #i:I
  1275. .end local v29 #x:I
  1276. :cond_104
  1277. invoke-interface {v15}, Ljava/util/List;->iterator()Ljava/util/Iterator;
  1278. move-result-object v22
  1279. .restart local v22 #i$:Ljava/util/Iterator;
  1280. :goto_108
  1281. invoke-interface/range {v22 .. v22}, Ljava/util/Iterator;->hasNext()Z
  1282. move-result v4
  1283. if-eqz v4, :cond_119
  1284. invoke-interface/range {v22 .. v22}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  1285. move-result-object v17
  1286. check-cast v17, Landroid/graphics/Bitmap;
  1287. .line 1315
  1288. .restart local v17 #b:Landroid/graphics/Bitmap;
  1289. invoke-virtual/range {v17 .. v17}, Landroid/graphics/Bitmap;->recycle()V
  1290. goto :goto_108
  1291. .end local v16 #artCount:I
  1292. .end local v17 #b:Landroid/graphics/Bitmap;
  1293. .end local v18 #dstRect:Landroid/graphics/RectF;
  1294. .end local v20 #horizontalArtCount:I
  1295. .end local v23 #j:I
  1296. .end local v24 #paint:Landroid/graphics/Paint;
  1297. .end local v25 #squareHeight:I
  1298. .end local v26 #squareWidth:I
  1299. .end local v27 #srcRect:Landroid/graphics/Rect;
  1300. .end local v28 #verticalArtCount:I
  1301. .end local v30 #y:I
  1302. :cond_118
  1303. throw v4
  1304. .line 1318
  1305. .restart local v16 #artCount:I
  1306. .restart local v18 #dstRect:Landroid/graphics/RectF;
  1307. .restart local v20 #horizontalArtCount:I
  1308. .restart local v23 #j:I
  1309. .restart local v24 #paint:Landroid/graphics/Paint;
  1310. .restart local v25 #squareHeight:I
  1311. .restart local v26 #squareWidth:I
  1312. .restart local v27 #srcRect:Landroid/graphics/Rect;
  1313. .restart local v28 #verticalArtCount:I
  1314. .restart local v30 #y:I
  1315. :cond_119
  1316. const/4 v4, 0x1
  1317. .end local v18 #dstRect:Landroid/graphics/RectF;
  1318. .end local v20 #horizontalArtCount:I
  1319. .end local v23 #j:I
  1320. .end local v24 #paint:Landroid/graphics/Paint;
  1321. .end local v25 #squareHeight:I
  1322. .end local v26 #squareWidth:I
  1323. .end local v27 #srcRect:Landroid/graphics/Rect;
  1324. .end local v28 #verticalArtCount:I
  1325. .end local v30 #y:I
  1326. :cond_11a
  1327. return v4
  1328. .end method
  1329. .method private static genBannerBackground(Landroid/graphics/Canvas;IIIIII)V
  1330. .registers 13
  1331. .parameter
  1332. .parameter
  1333. .parameter
  1334. .parameter
  1335. .parameter
  1336. .parameter
  1337. .parameter
  1338. .prologue
  1339. .line 1495
  1340. new-instance v5, Landroid/graphics/Paint;
  1341. invoke-direct {v5}, Landroid/graphics/Paint;-><init>()V
  1342. .line 1496
  1343. invoke-static {p1, p2, p3, p2, p6}, Lcom/google/android/music/utils/AlbumArtUtils;->genGradient(IIIII)Landroid/graphics/LinearGradient;
  1344. move-result-object v0
  1345. .line 1497
  1346. invoke-virtual {v5, v0}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
  1347. .line 1498
  1348. int-to-float v1, p1
  1349. int-to-float v2, p2
  1350. int-to-float v3, p3
  1351. int-to-float v4, p4
  1352. move-object v0, p0
  1353. invoke-virtual/range {v0 .. v5}, Landroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V
  1354. .line 1499
  1355. const/4 v0, 0x0
  1356. invoke-virtual {v5, v0}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
  1357. .line 1500
  1358. const/high16 v0, 0x5500
  1359. invoke-virtual {v5, v0}, Landroid/graphics/Paint;->setColor(I)V
  1360. .line 1501
  1361. int-to-float v1, p1
  1362. int-to-float v2, p4
  1363. int-to-float v3, p3
  1364. add-int v0, p4, p5
  1365. int-to-float v4, v0
  1366. move-object v0, p0
  1367. invoke-virtual/range {v0 .. v5}, Landroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V
  1368. .line 1502
  1369. return-void
  1370. .end method
  1371. .method private static genGradient(IIIII)Landroid/graphics/LinearGradient;
  1372. .registers 15
  1373. .parameter "x0"
  1374. .parameter "y0"
  1375. .parameter "x1"
  1376. .parameter "y1"
  1377. .parameter "style"
  1378. .prologue
  1379. .line 1505
  1380. sget-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sFauxStyleToPalette:Lcom/google/common/collect/ImmutableMap;
  1381. invoke-static {p4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
  1382. move-result-object v1
  1383. invoke-virtual {v0, v1}, Lcom/google/common/collect/ImmutableMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
  1384. move-result-object v0
  1385. check-cast v0, Ljava/lang/Integer;
  1386. invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
  1387. move-result v9
  1388. .line 1506
  1389. .local v9, gradientType:I
  1390. mul-int/lit8 v8, v9, 0x2
  1391. .line 1507
  1392. .local v8, base:I
  1393. new-instance v0, Landroid/graphics/LinearGradient;
  1394. int-to-float v1, p0
  1395. int-to-float v2, p1
  1396. int-to-float v3, p2
  1397. int-to-float v4, p1
  1398. sget-object v5, Lcom/google/android/music/utils/AlbumArtUtils;->sFauxGradientPalette:[I
  1399. aget v5, v5, v8
  1400. sget-object v6, Lcom/google/android/music/utils/AlbumArtUtils;->sFauxGradientPalette:[I
  1401. add-int/lit8 v7, v8, 0x1
  1402. aget v6, v6, v7
  1403. sget-object v7, Landroid/graphics/Shader$TileMode;->REPEAT:Landroid/graphics/Shader$TileMode;
  1404. invoke-direct/range {v0 .. v7}, Landroid/graphics/LinearGradient;-><init>(FFFFIILandroid/graphics/Shader$TileMode;)V
  1405. return-object v0
  1406. .end method
  1407. .method private static genQuilt(Landroid/graphics/Canvas;Landroid/graphics/Paint;Ljava/util/Random;IIIIIII)V
  1408. .registers 26
  1409. .parameter "canvas"
  1410. .parameter "paint"
  1411. .parameter "random"
  1412. .parameter "x0"
  1413. .parameter "y0"
  1414. .parameter "x1"
  1415. .parameter "y1"
  1416. .parameter "wc"
  1417. .parameter "hc"
  1418. .parameter "skipMask"
  1419. .prologue
  1420. .line 1527
  1421. mul-int v2, p7, p8
  1422. new-array v8, v2, [I
  1423. .line 1528
  1424. .local v8, chosen:[I
  1425. sub-int v2, p5, p3
  1426. div-int v13, v2, p7
  1427. .line 1529
  1428. .local v13, squareWidth:I
  1429. sub-int v2, p6, p4
  1430. div-int v12, v2, p8
  1431. .line 1530
  1432. .local v12, squareHeight:I
  1433. move/from16 v15, p4
  1434. .line 1531
  1435. .local v15, y:I
  1436. const/4 v11, 0x0
  1437. .local v11, j:I
  1438. :goto_f
  1439. move/from16 v0, p8
  1440. if-ge v11, v0, :cond_92
  1441. .line 1532
  1442. move/from16 v14, p3
  1443. .line 1533
  1444. .local v14, x:I
  1445. const/4 v10, 0x0
  1446. .local v10, i:I
  1447. :goto_16
  1448. move/from16 v0, p7
  1449. if-ge v10, v0, :cond_8d
  1450. .line 1534
  1451. move/from16 v0, p7
  1452. move/from16 v1, p9
  1453. invoke-static {v10, v11, v0, v1}, Lcom/google/android/music/utils/AlbumArtUtils;->shouldSkip(IIII)Z
  1454. move-result v2
  1455. if-eqz v2, :cond_28
  1456. .line 1550
  1457. :goto_24
  1458. add-int/2addr v14, v13
  1459. .line 1533
  1460. add-int/lit8 v10, v10, 0x1
  1461. goto :goto_16
  1462. .line 1539
  1463. :cond_28
  1464. sget-object v2, Lcom/google/android/music/utils/AlbumArtUtils;->sFauxPalette:[I
  1465. array-length v2, v2
  1466. move-object/from16 v0, p2
  1467. invoke-virtual {v0, v2}, Ljava/util/Random;->nextInt(I)I
  1468. move-result v9
  1469. .line 1542
  1470. .local v9, color:I
  1471. if-lez v11, :cond_48
  1472. add-int/lit8 v2, v11, -0x1
  1473. move/from16 v0, p7
  1474. move/from16 v1, p9
  1475. invoke-static {v10, v2, v0, v1}, Lcom/google/android/music/utils/AlbumArtUtils;->shouldSkip(IIII)Z
  1476. move-result v2
  1477. if-nez v2, :cond_48
  1478. add-int/lit8 v2, v11, -0x1
  1479. mul-int v2, v2, p7
  1480. add-int/2addr v2, v10
  1481. aget v2, v8, v2
  1482. if-eq v2, v9, :cond_28
  1483. :cond_48
  1484. if-lez v10, :cond_5f
  1485. add-int/lit8 v2, v10, -0x1
  1486. move/from16 v0, p7
  1487. move/from16 v1, p9
  1488. invoke-static {v2, v11, v0, v1}, Lcom/google/android/music/utils/AlbumArtUtils;->shouldSkip(IIII)Z
  1489. move-result v2
  1490. if-nez v2, :cond_5f
  1491. mul-int v2, v11, p7
  1492. add-int/lit8 v3, v10, -0x1
  1493. add-int/2addr v2, v3
  1494. aget v2, v8, v2
  1495. if-eq v2, v9, :cond_28
  1496. .line 1544
  1497. :cond_5f
  1498. mul-int v2, v11, p7
  1499. add-int/2addr v2, v10
  1500. aput v9, v8, v2
  1501. .line 1545
  1502. sget-object v2, Lcom/google/android/music/utils/AlbumArtUtils;->sFauxPalette:[I
  1503. aget v2, v2, v9
  1504. move-object/from16 v0, p1
  1505. invoke-virtual {v0, v2}, Landroid/graphics/Paint;->setColor(I)V
  1506. .line 1546
  1507. int-to-float v3, v14
  1508. int-to-float v4, v15
  1509. add-int/lit8 v2, p7, -0x1
  1510. if-ge v10, v2, :cond_85
  1511. add-int v2, v14, v13
  1512. int-to-float v5, v2
  1513. :goto_76
  1514. add-int/lit8 v2, p8, -0x1
  1515. if-ge v11, v2, :cond_89
  1516. add-int v2, v15, v12
  1517. int-to-float v6, v2
  1518. :goto_7d
  1519. move-object/from16 v2, p0
  1520. move-object/from16 v7, p1
  1521. invoke-virtual/range {v2 .. v7}, Landroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V
  1522. goto :goto_24
  1523. :cond_85
  1524. move/from16 v0, p5
  1525. int-to-float v5, v0
  1526. goto :goto_76
  1527. :cond_89
  1528. move/from16 v0, p6
  1529. int-to-float v6, v0
  1530. goto :goto_7d
  1531. .line 1552
  1532. .end local v9 #color:I
  1533. :cond_8d
  1534. add-int/2addr v15, v12
  1535. .line 1531
  1536. add-int/lit8 v11, v11, 0x1
  1537. goto/16 :goto_f
  1538. .line 1554
  1539. .end local v10 #i:I
  1540. .end local v14 #x:I
  1541. :cond_92
  1542. return-void
  1543. .end method
  1544. .method public static getArtwork(Landroid/content/Context;JIIZLjava/lang/String;Ljava/lang/String;)Landroid/graphics/Bitmap;
  1545. .registers 17
  1546. .parameter "context"
  1547. .parameter "album_id"
  1548. .parameter "w"
  1549. .parameter "h"
  1550. .parameter "allowdefault"
  1551. .parameter "album"
  1552. .parameter "artist"
  1553. .prologue
  1554. .line 905
  1555. const/4 v8, 0x1
  1556. move-object v0, p0
  1557. move-wide v1, p1
  1558. move v3, p3
  1559. move v4, p4
  1560. move v5, p5
  1561. move-object v6, p6
  1562. move-object/from16 v7, p7
  1563. invoke-static/range {v0 .. v8}, Lcom/google/android/music/utils/AlbumArtUtils;->getArtwork(Landroid/content/Context;JIIZLjava/lang/String;Ljava/lang/String;Z)Landroid/graphics/Bitmap;
  1564. move-result-object v0
  1565. return-object v0
  1566. .end method
  1567. .method private static getArtwork(Landroid/content/Context;JIIZLjava/lang/String;Ljava/lang/String;Z)Landroid/graphics/Bitmap;
  1568. .registers 18
  1569. .parameter "context"
  1570. .parameter "album_id"
  1571. .parameter "w"
  1572. .parameter "h"
  1573. .parameter "allowdefault"
  1574. .parameter "album"
  1575. .parameter "artist"
  1576. .parameter "mayScaleUpOrCrop"
  1577. .prologue
  1578. .line 925
  1579. const-string v0, "Getting album art on main thread"
  1580. invoke-static {p0, v0}, Lcom/google/android/music/MusicUtils;->checkMainThread(Landroid/content/Context;Ljava/lang/String;)V
  1581. .line 931
  1582. const-wide/16 v0, 0x0
  1583. cmp-long v0, p1, v0
  1584. if-gez v0, :cond_1c
  1585. .line 932
  1586. if-eqz p5, :cond_1a
  1587. .line 933
  1588. const/4 v1, 0x1
  1589. move-object v0, p0
  1590. move-wide v2, p1
  1591. move v4, p3
  1592. move v5, p4
  1593. move-object v6, p6
  1594. move-object/from16 v7, p7
  1595. invoke-static/range {v0 .. v7}, Lcom/google/android/music/utils/AlbumArtUtils;->getDefaultArtwork(Landroid/content/Context;ZJIILjava/lang/String;Ljava/lang/String;)Landroid/graphics/Bitmap;
  1596. move-result-object v8
  1597. .line 946
  1598. :cond_19
  1599. :goto_19
  1600. return-object v8
  1601. .line 935
  1602. :cond_1a
  1603. const/4 v8, 0x0
  1604. goto :goto_19
  1605. :cond_1c
  1606. move-object v0, p0
  1607. move-wide v1, p1
  1608. move v3, p3
  1609. move v4, p4
  1610. move/from16 v5, p8
  1611. .line 938
  1612. invoke-static/range {v0 .. v5}, Lcom/google/android/music/utils/AlbumArtUtils;->resolveArtwork(Landroid/content/Context;JIIZ)Landroid/graphics/Bitmap;
  1613. move-result-object v8
  1614. .line 939
  1615. .local v8, bm:Landroid/graphics/Bitmap;
  1616. if-nez v8, :cond_19
  1617. .line 943
  1618. if-eqz p5, :cond_37
  1619. .line 944
  1620. const/4 v1, 0x1
  1621. move-object v0, p0
  1622. move-wide v2, p1
  1623. move v4, p3
  1624. move v5, p4
  1625. move-object v6, p6
  1626. move-object/from16 v7, p7
  1627. invoke-static/range {v0 .. v7}, Lcom/google/android/music/utils/AlbumArtUtils;->getDefaultArtwork(Landroid/content/Context;ZJIILjava/lang/String;Ljava/lang/String;)Landroid/graphics/Bitmap;
  1628. move-result-object v8
  1629. goto :goto_19
  1630. .line 946
  1631. :cond_37
  1632. const/4 v8, 0x0
  1633. goto :goto_19
  1634. .end method
  1635. .method public static getArtworkFromUrl(Landroid/content/Context;Ljava/lang/String;IIZZZZ)Landroid/graphics/Bitmap;
  1636. .registers 14
  1637. .parameter "context"
  1638. .parameter "albumArtUrl"
  1639. .parameter "w"
  1640. .parameter "h"
  1641. .parameter "mayScaleUp"
  1642. .parameter "isSkyjam"
  1643. .parameter "allowResolve"
  1644. .parameter "allowDefault"
  1645. .prologue
  1646. .line 409
  1647. if-eqz p5, :cond_37
  1648. .line 410
  1649. const-string v0, "="
  1650. invoke-virtual {p1, v0}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
  1651. move-result v0
  1652. if-nez v0, :cond_2c
  1653. .line 411
  1654. new-instance v0, Ljava/lang/StringBuilder;
  1655. invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
  1656. invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1657. move-result-object v0
  1658. const/16 v1, 0x3d
  1659. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
  1660. move-result-object v0
  1661. invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
  1662. move-result-object v1
  1663. const v2, 0x7f0d018c
  1664. invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getString(I)Ljava/lang/String;
  1665. move-result-object v1
  1666. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1667. move-result-object v0
  1668. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  1669. move-result-object p1
  1670. :cond_2c
  1671. :goto_2c
  1672. move-object v0, p0
  1673. move-object v1, p1
  1674. move v2, p2
  1675. move v3, p3
  1676. move v4, p6
  1677. move v5, p7
  1678. .line 417
  1679. invoke-static/range {v0 .. v5}, Lcom/google/android/music/utils/AlbumArtUtils;->getExternalAlbumArtBitmap(Landroid/content/Context;Ljava/lang/String;IIZZ)Landroid/graphics/Bitmap;
  1680. move-result-object v0
  1681. return-object v0
  1682. .line 415
  1683. :cond_37
  1684. invoke-static {p1, p2, p3}, Lcom/google/android/music/utils/AlbumArtUtils;->appendSizeToExternalUrl(Ljava/lang/String;II)Ljava/lang/String;
  1685. move-result-object p1
  1686. goto :goto_2c
  1687. .end method
  1688. .method private static getBitmap(Landroid/content/Context;I)Landroid/graphics/Bitmap;
  1689. .registers 5
  1690. .parameter "context"
  1691. .parameter "resourceId"
  1692. .prologue
  1693. .line 1625
  1694. new-instance v0, Landroid/graphics/BitmapFactory$Options;
  1695. invoke-direct {v0}, Landroid/graphics/BitmapFactory$Options;-><init>()V
  1696. .line 1626
  1697. .local v0, opts:Landroid/graphics/BitmapFactory$Options;
  1698. sget-object v1, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
  1699. iput-object v1, v0, Landroid/graphics/BitmapFactory$Options;->inPreferredConfig:Landroid/graphics/Bitmap$Config;
  1700. .line 1627
  1701. invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
  1702. move-result-object v1
  1703. invoke-virtual {v1, p1}, Landroid/content/res/Resources;->openRawResource(I)Ljava/io/InputStream;
  1704. move-result-object v1
  1705. const/4 v2, 0x0
  1706. invoke-static {v1, v2, v0}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
  1707. move-result-object v1
  1708. return-object v1
  1709. .end method
  1710. .method private static getBitmapFromCache(Lcom/google/android/music/utils/LruCache;Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;)Landroid/graphics/Bitmap;
  1711. .registers 7
  1712. .parameter
  1713. .parameter "key"
  1714. .annotation system Ldalvik/annotation/Signature;
  1715. value = {
  1716. "(",
  1717. "Lcom/google/android/music/utils/LruCache",
  1718. "<",
  1719. "Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;",
  1720. "Landroid/graphics/Bitmap;",
  1721. ">;",
  1722. "Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;",
  1723. ")",
  1724. "Landroid/graphics/Bitmap;"
  1725. }
  1726. .end annotation
  1727. .prologue
  1728. .line 566
  1729. .local p0, cache:Lcom/google/android/music/utils/LruCache;,"Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;"
  1730. const/4 v1, 0x0
  1731. .line 567
  1732. .local v1, bitmap:Landroid/graphics/Bitmap;
  1733. if-eqz p0, :cond_35
  1734. .line 568
  1735. monitor-enter p0
  1736. .line 569
  1737. :try_start_4
  1738. invoke-virtual {p0, p1}, Lcom/google/android/music/utils/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
  1739. move-result-object v2
  1740. move-object v0, v2
  1741. check-cast v0, Landroid/graphics/Bitmap;
  1742. move-object v1, v0
  1743. .line 570
  1744. if-eqz v1, :cond_34
  1745. invoke-virtual {v1}, Landroid/graphics/Bitmap;->isRecycled()Z
  1746. move-result v2
  1747. if-eqz v2, :cond_34
  1748. .line 571
  1749. const-string v2, "AlbumArtUtils"
  1750. new-instance v3, Ljava/lang/StringBuilder;
  1751. invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
  1752. const-string v4, "Found a recycled bitmap for artwork: "
  1753. invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1754. move-result-object v3
  1755. invoke-virtual {p1}, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;->toString()Ljava/lang/String;
  1756. move-result-object v4
  1757. invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  1758. move-result-object v3
  1759. invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  1760. move-result-object v3
  1761. invoke-static {v2, v3}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
  1762. .line 572
  1763. invoke-virtual {p0, p1}, Lcom/google/android/music/utils/LruCache;->remove(Ljava/lang/Object;)V
  1764. .line 573
  1765. const/4 v1, 0x0
  1766. .line 575
  1767. :cond_34
  1768. monitor-exit p0
  1769. .line 578
  1770. :cond_35
  1771. return-object v1
  1772. .line 575
  1773. :catchall_36
  1774. move-exception v2
  1775. monitor-exit p0
  1776. :try_end_38
  1777. .catchall {:try_start_4 .. :try_end_38} :catchall_36
  1778. throw v2
  1779. .end method
  1780. .method private static getCache(Landroid/content/Context;IILjava/lang/String;)Lcom/google/android/music/utils/LruCache;
  1781. .registers 10
  1782. .parameter "context"
  1783. .parameter "width"
  1784. .parameter "height"
  1785. .parameter "sizeKey"
  1786. .annotation system Ldalvik/annotation/Signature;
  1787. value = {
  1788. "(",
  1789. "Landroid/content/Context;",
  1790. "II",
  1791. "Ljava/lang/String;",
  1792. ")",
  1793. "Lcom/google/android/music/utils/LruCache",
  1794. "<",
  1795. "Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;",
  1796. "Landroid/graphics/Bitmap;",
  1797. ">;"
  1798. }
  1799. .end annotation
  1800. .prologue
  1801. .line 540
  1802. const/4 v1, 0x0
  1803. .line 542
  1804. .local v1, cache:Lcom/google/android/music/utils/LruCache;,"Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;"
  1805. sget v3, Lcom/google/android/music/utils/AlbumArtUtils;->MAX_IMAGE_SIZE_TO_CACHE:I
  1806. if-nez v3, :cond_12
  1807. .line 548
  1808. invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
  1809. move-result-object v3
  1810. const v4, 0x7f09006d
  1811. invoke-virtual {v3, v4}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I
  1812. move-result v3
  1813. sput v3, Lcom/google/android/music/utils/AlbumArtUtils;->MAX_IMAGE_SIZE_TO_CACHE:I
  1814. .line 552
  1815. :cond_12
  1816. sget v3, Lcom/google/android/music/utils/AlbumArtUtils;->MAX_IMAGE_SIZE_TO_CACHE:I
  1817. if-ge p1, v3, :cond_3a
  1818. sget v3, Lcom/google/android/music/utils/AlbumArtUtils;->MAX_IMAGE_SIZE_TO_CACHE:I
  1819. if-ge p2, v3, :cond_3a
  1820. .line 553
  1821. sget-object v4, Lcom/google/android/music/utils/AlbumArtUtils;->sSizeCache:Ljava/util/HashMap;
  1822. monitor-enter v4
  1823. .line 554
  1824. :try_start_1d
  1825. sget-object v3, Lcom/google/android/music/utils/AlbumArtUtils;->sSizeCache:Ljava/util/HashMap;
  1826. invoke-virtual {v3, p3}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
  1827. move-result-object v3
  1828. move-object v0, v3
  1829. check-cast v0, Lcom/google/android/music/utils/LruCache;
  1830. move-object v1, v0
  1831. .line 555
  1832. if-nez v1, :cond_39
  1833. .line 557
  1834. new-instance v2, Lcom/google/android/music/utils/LruCache;
  1835. sget-object v3, Lcom/google/android/music/utils/AlbumArtUtils;->CACHE_SIZES:[I
  1836. const/4 v5, 0x0
  1837. aget v3, v3, v5
  1838. invoke-direct {v2, v3}, Lcom/google/android/music/utils/LruCache;-><init>(I)V
  1839. :try_end_33
  1840. .catchall {:try_start_1d .. :try_end_33} :catchall_3b
  1841. .line 558
  1842. .end local v1 #cache:Lcom/google/android/music/utils/LruCache;,"Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;"
  1843. .local v2, cache:Lcom/google/android/music/utils/LruCache;,"Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;"
  1844. :try_start_33
  1845. sget-object v3, Lcom/google/android/music/utils/AlbumArtUtils;->sSizeCache:Ljava/util/HashMap;
  1846. invoke-virtual {v3, p3, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
  1847. :try_end_38
  1848. .catchall {:try_start_33 .. :try_end_38} :catchall_3e
  1849. move-object v1, v2
  1850. .line 560
  1851. .end local v2 #cache:Lcom/google/android/music/utils/LruCache;,"Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;"
  1852. .restart local v1 #cache:Lcom/google/android/music/utils/LruCache;,"Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;"
  1853. :cond_39
  1854. :try_start_39
  1855. monitor-exit v4
  1856. .line 562
  1857. :cond_3a
  1858. return-object v1
  1859. .line 560
  1860. :catchall_3b
  1861. move-exception v3
  1862. :goto_3c
  1863. monitor-exit v4
  1864. :try_end_3d
  1865. .catchall {:try_start_39 .. :try_end_3d} :catchall_3b
  1866. throw v3
  1867. .end local v1 #cache:Lcom/google/android/music/utils/LruCache;,"Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;"
  1868. .restart local v2 #cache:Lcom/google/android/music/utils/LruCache;,"Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;"
  1869. :catchall_3e
  1870. move-exception v3
  1871. move-object v1, v2
  1872. .end local v2 #cache:Lcom/google/android/music/utils/LruCache;,"Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;"
  1873. .restart local v1 #cache:Lcom/google/android/music/utils/LruCache;,"Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;"
  1874. goto :goto_3c
  1875. .end method
  1876. .method public static getCachedArtwork(Landroid/content/Context;JIILjava/lang/String;Ljava/lang/String;ZZ)Landroid/graphics/drawable/Drawable;
  1877. .registers 21
  1878. .parameter "context"
  1879. .parameter "album_id"
  1880. .parameter "w"
  1881. .parameter "h"
  1882. .parameter "album"
  1883. .parameter "artist"
  1884. .parameter "allowResolve"
  1885. .parameter "allowDefault"
  1886. .prologue
  1887. .line 450
  1888. const/4 v3, 0x0
  1889. move-object v0, p0
  1890. move-wide v1, p1
  1891. move v4, p3
  1892. move/from16 v5, p4
  1893. move-object/from16 v6, p5
  1894. move-object/from16 v7, p6
  1895. move/from16 v8, p7
  1896. move/from16 v9, p8
  1897. invoke-static/range {v0 .. v9}, Lcom/google/android/music/utils/AlbumArtUtils;->getCachedBitmap(Landroid/content/Context;JLjava/lang/String;IILjava/lang/String;Ljava/lang/String;ZZ)Landroid/graphics/Bitmap;
  1898. move-result-object v10
  1899. .line 452
  1900. .local v10, bitmap:Landroid/graphics/Bitmap;
  1901. const/4 v11, 0x0
  1902. .line 453
  1903. .local v11, drawable:Landroid/graphics/drawable/Drawable;
  1904. if-eqz v10, :cond_22
  1905. .line 456
  1906. if-lez p3, :cond_19
  1907. if-gtz p4, :cond_23
  1908. .line 459
  1909. :cond_19
  1910. new-instance v11, Landroid/graphics/drawable/BitmapDrawable;
  1911. .end local v11 #drawable:Landroid/graphics/drawable/Drawable;
  1912. invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
  1913. move-result-object v0
  1914. invoke-direct {v11, v0, v10}, Landroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V
  1915. .line 464
  1916. .restart local v11 #drawable:Landroid/graphics/drawable/Drawable;
  1917. :cond_22
  1918. :goto_22
  1919. return-object v11
  1920. .line 461
  1921. :cond_23
  1922. new-instance v11, Lcom/google/android/music/utils/AlbumArtUtils$FastBitmapDrawable;
  1923. .end local v11 #drawable:Landroid/graphics/drawable/Drawable;
  1924. invoke-direct {v11, v10}, Lcom/google/android/music/utils/AlbumArtUtils$FastBitmapDrawable;-><init>(Landroid/graphics/Bitmap;)V
  1925. .restart local v11 #drawable:Landroid/graphics/drawable/Drawable;
  1926. goto :goto_22
  1927. .end method
  1928. .method public static getCachedBitmap(Landroid/content/Context;JLjava/lang/String;IILjava/lang/String;Ljava/lang/String;ZZ)Landroid/graphics/Bitmap;
  1929. .registers 27
  1930. .parameter "context"
  1931. .parameter "album_id"
  1932. .parameter "url"
  1933. .parameter "w"
  1934. .parameter "h"
  1935. .parameter "album"
  1936. .parameter "artist"
  1937. .parameter "allowResolve"
  1938. .parameter "allowDefault"
  1939. .prologue
  1940. .line 491
  1941. const-wide/16 v3, 0x0
  1942. cmp-long v3, p1, v3
  1943. if-gez v3, :cond_a
  1944. if-nez p3, :cond_a
  1945. .line 492
  1946. const/4 v11, 0x0
  1947. .line 532
  1948. :cond_9
  1949. :goto_9
  1950. return-object v11
  1951. .line 495
  1952. :cond_a
  1953. invoke-static/range {p4 .. p5}, Lcom/google/android/music/utils/AlbumArtUtils;->getSizeKey(II)Ljava/lang/String;
  1954. move-result-object v15
  1955. .line 496
  1956. .local v15, sizeKey:Ljava/lang/String;
  1957. move-object/from16 v0, p0
  1958. move/from16 v1, p4
  1959. move/from16 v2, p5
  1960. invoke-static {v0, v1, v2, v15}, Lcom/google/android/music/utils/AlbumArtUtils;->getCache(Landroid/content/Context;IILjava/lang/String;)Lcom/google/android/music/utils/LruCache;
  1961. move-result-object v12
  1962. .line 498
  1963. .local v12, cache:Lcom/google/android/music/utils/LruCache;,"Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;"
  1964. new-instance v14, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  1965. const/4 v3, 0x1
  1966. move-wide/from16 v0, p1
  1967. invoke-direct {v14, v3, v0, v1}, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;-><init>(IJ)V
  1968. .line 502
  1969. .local v14, key:Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  1970. if-eqz p8, :cond_72
  1971. .line 503
  1972. sget-object v16, Lcom/google/android/music/utils/AlbumArtUtils;->sCachedBitmapLock:Ljava/lang/Object;
  1973. monitor-enter v16
  1974. .line 504
  1975. :try_start_25
  1976. invoke-static {v12, v14}, Lcom/google/android/music/utils/AlbumArtUtils;->getBitmapFromCache(Lcom/google/android/music/utils/LruCache;Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;)Landroid/graphics/Bitmap;
  1977. move-result-object v11
  1978. .line 505
  1979. .local v11, bitmap:Landroid/graphics/Bitmap;
  1980. if-eqz v11, :cond_5f
  1981. const/4 v13, 0x1
  1982. .line 506
  1983. .local v13, cacheHit:Z
  1984. :goto_2c
  1985. if-nez v11, :cond_58
  1986. .line 510
  1987. const-wide/16 v3, 0x0
  1988. cmp-long v3, p1, v3
  1989. if-gez v3, :cond_61
  1990. .line 511
  1991. const/4 v3, 0x1
  1992. move-object/from16 v0, p3
  1993. move/from16 v1, p4
  1994. move/from16 v2, p5
  1995. invoke-static {v0, v1, v2, v3}, Lcom/google/android/music/utils/AlbumArtUtils;->resolveArtworkFromUrl(Ljava/lang/String;IIZ)Landroid/graphics/Bitmap;
  1996. move-result-object v11
  1997. .line 516
  1998. :goto_3f
  1999. if-nez v11, :cond_54
  2000. if-eqz p9, :cond_54
  2001. .line 517
  2002. const/4 v4, 0x1
  2003. move-object/from16 v3, p0
  2004. move-wide/from16 v5, p1
  2005. move/from16 v7, p4
  2006. move/from16 v8, p5
  2007. move-object/from16 v9, p6
  2008. move-object/from16 v10, p7
  2009. invoke-static/range {v3 .. v10}, Lcom/google/android/music/utils/AlbumArtUtils;->getDefaultArtwork(Landroid/content/Context;ZJIILjava/lang/String;Ljava/lang/String;)Landroid/graphics/Bitmap;
  2010. move-result-object v11
  2011. .line 520
  2012. :cond_54
  2013. invoke-static {v12, v11, v14}, Lcom/google/android/music/utils/AlbumArtUtils;->putBitmapInCache(Lcom/google/android/music/utils/LruCache;Landroid/graphics/Bitmap;Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;)Z
  2014. move-result v13
  2015. .line 522
  2016. :cond_58
  2017. monitor-exit v16
  2018. :try_end_59
  2019. .catchall {:try_start_25 .. :try_end_59} :catchall_6f
  2020. .line 528
  2021. :goto_59
  2022. if-eqz v12, :cond_9
  2023. .line 529
  2024. invoke-static {v15, v13}, Lcom/google/android/music/utils/AlbumArtUtils;->trackCacheUsage(Ljava/lang/String;Z)V
  2025. goto :goto_9
  2026. .line 505
  2027. .end local v13 #cacheHit:Z
  2028. :cond_5f
  2029. const/4 v13, 0x0
  2030. goto :goto_2c
  2031. .line 513
  2032. .restart local v13 #cacheHit:Z
  2033. :cond_61
  2034. const/4 v8, 0x1
  2035. move-object/from16 v3, p0
  2036. move-wide/from16 v4, p1
  2037. move/from16 v6, p4
  2038. move/from16 v7, p5
  2039. :try_start_6a
  2040. invoke-static/range {v3 .. v8}, Lcom/google/android/music/utils/AlbumArtUtils;->resolveArtwork(Landroid/content/Context;JIIZ)Landroid/graphics/Bitmap;
  2041. move-result-object v11
  2042. goto :goto_3f
  2043. .line 522
  2044. .end local v11 #bitmap:Landroid/graphics/Bitmap;
  2045. .end local v13 #cacheHit:Z
  2046. :catchall_6f
  2047. move-exception v3
  2048. monitor-exit v16
  2049. :try_end_71
  2050. .catchall {:try_start_6a .. :try_end_71} :catchall_6f
  2051. throw v3
  2052. .line 524
  2053. :cond_72
  2054. invoke-static {v12, v14}, Lcom/google/android/music/utils/AlbumArtUtils;->getBitmapFromCache(Lcom/google/android/music/utils/LruCache;Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;)Landroid/graphics/Bitmap;
  2055. move-result-object v11
  2056. .line 525
  2057. .restart local v11 #bitmap:Landroid/graphics/Bitmap;
  2058. if-eqz v11, :cond_7a
  2059. const/4 v13, 0x1
  2060. .restart local v13 #cacheHit:Z
  2061. :goto_79
  2062. goto :goto_59
  2063. .end local v13 #cacheHit:Z
  2064. :cond_7a
  2065. const/4 v13, 0x0
  2066. goto :goto_79
  2067. .end method
  2068. .method public static getCachedFauxAlbumArt(Landroid/content/Context;IJII)Landroid/graphics/drawable/Drawable;
  2069. .registers 12
  2070. .parameter "context"
  2071. .parameter "style"
  2072. .parameter "artwork_id"
  2073. .parameter "w"
  2074. .parameter "h"
  2075. .prologue
  2076. .line 1037
  2077. and-int/lit8 p1, p1, 0x7
  2078. .line 1039
  2079. invoke-static {p1, p2, p3}, Lcom/google/android/music/utils/AlbumArtUtils;->createArtCacheKey(IJ)Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  2080. move-result-object v3
  2081. .line 1041
  2082. .local v3, key:Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  2083. invoke-static {p4, p5}, Lcom/google/android/music/utils/AlbumArtUtils;->getSizeKey(II)Ljava/lang/String;
  2084. move-result-object v4
  2085. .line 1042
  2086. .local v4, sizeKey:Ljava/lang/String;
  2087. invoke-static {p0, p4, p5, v4}, Lcom/google/android/music/utils/AlbumArtUtils;->getCache(Landroid/content/Context;IILjava/lang/String;)Lcom/google/android/music/utils/LruCache;
  2088. move-result-object v1
  2089. .line 1044
  2090. .local v1, cache:Lcom/google/android/music/utils/LruCache;,"Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;"
  2091. invoke-static {v1, v3}, Lcom/google/android/music/utils/AlbumArtUtils;->getBitmapFromCache(Lcom/google/android/music/utils/LruCache;Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;)Landroid/graphics/Bitmap;
  2092. move-result-object v0
  2093. .line 1045
  2094. .local v0, bitmap:Landroid/graphics/Bitmap;
  2095. if-eqz v0, :cond_1d
  2096. const/4 v2, 0x1
  2097. .line 1047
  2098. .local v2, cacheHit:Z
  2099. :goto_15
  2100. if-eqz v2, :cond_1f
  2101. .line 1048
  2102. new-instance v5, Landroid/graphics/drawable/BitmapDrawable;
  2103. invoke-direct {v5, v0}, Landroid/graphics/drawable/BitmapDrawable;-><init>(Landroid/graphics/Bitmap;)V
  2104. .line 1050
  2105. :goto_1c
  2106. return-object v5
  2107. .line 1045
  2108. .end local v2 #cacheHit:Z
  2109. :cond_1d
  2110. const/4 v2, 0x0
  2111. goto :goto_15
  2112. .line 1050
  2113. .restart local v2 #cacheHit:Z
  2114. :cond_1f
  2115. const/4 v5, 0x0
  2116. goto :goto_1c
  2117. .end method
  2118. .method public static getDefaultArtwork(Landroid/content/Context;ZJIILjava/lang/String;Ljava/lang/String;)Landroid/graphics/Bitmap;
  2119. .registers 18
  2120. .parameter "context"
  2121. .parameter "drawLabels"
  2122. .parameter "albumId"
  2123. .parameter "w"
  2124. .parameter "h"
  2125. .parameter "album"
  2126. .parameter "artist"
  2127. .prologue
  2128. .line 951
  2129. const/4 v1, 0x0
  2130. const/4 v9, 0x0
  2131. move-object v0, p0
  2132. move v2, p1
  2133. move-wide v3, p2
  2134. move v5, p4
  2135. move v6, p5
  2136. move-object/from16 v7, p6
  2137. move-object/from16 v8, p7
  2138. invoke-static/range {v0 .. v9}, Lcom/google/android/music/utils/AlbumArtUtils;->getFauxAlbumArt(Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)Landroid/graphics/Bitmap;
  2139. move-result-object v0
  2140. return-object v0
  2141. .end method
  2142. .method public static getExternalAlbumArtBitmap(Landroid/content/Context;Ljava/lang/String;IIZZ)Landroid/graphics/Bitmap;
  2143. .registers 16
  2144. .parameter "context"
  2145. .parameter "albumArtUrl"
  2146. .parameter "w"
  2147. .parameter "h"
  2148. .parameter "allowResolve"
  2149. .parameter "allowDefault"
  2150. .prologue
  2151. const-wide/16 v7, 0x0
  2152. const/4 v6, 0x0
  2153. .line 422
  2154. sget-boolean v0, Lcom/google/android/music/utils/AlbumArtUtils;->LOGV:Z
  2155. if-eqz v0, :cond_33
  2156. .line 423
  2157. const-string v0, "AlbumArtUtils"
  2158. new-instance v3, Ljava/lang/StringBuilder;
  2159. invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
  2160. const-string v4, "getExternalAlbumArtBitmap: albumArtUrl="
  2161. invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  2162. move-result-object v3
  2163. invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  2164. move-result-object v3
  2165. const-string v4, " w="
  2166. invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  2167. move-result-object v3
  2168. invoke-virtual {v3, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  2169. move-result-object v3
  2170. const-string v4, " h="
  2171. invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  2172. move-result-object v3
  2173. invoke-virtual {v3, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  2174. move-result-object v3
  2175. invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  2176. move-result-object v3
  2177. invoke-static {v0, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
  2178. .line 425
  2179. :cond_33
  2180. if-nez p1, :cond_36
  2181. .line 443
  2182. :goto_35
  2183. return-object v6
  2184. .line 432
  2185. :cond_36
  2186. invoke-static {p1}, Lcom/google/android/music/store/Store;->generateId(Ljava/lang/String;)J
  2187. move-result-wide v1
  2188. .line 433
  2189. .local v1, album_id:J
  2190. cmp-long v0, v1, v7
  2191. if-nez v0, :cond_40
  2192. .line 434
  2193. const-wide/16 v1, -0x1
  2194. .line 436
  2195. :cond_40
  2196. cmp-long v0, v1, v7
  2197. if-lez v0, :cond_45
  2198. .line 437
  2199. neg-long v1, v1
  2200. .line 440
  2201. :cond_45
  2202. sget-boolean v0, Lcom/google/android/music/utils/AlbumArtUtils;->LOGV:Z
  2203. if-eqz v0, :cond_61
  2204. .line 441
  2205. const-string v0, "AlbumArtUtils"
  2206. new-instance v3, Ljava/lang/StringBuilder;
  2207. invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
  2208. const-string v4, "getExternalAlbumArtBitmap: album_id="
  2209. invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  2210. move-result-object v3
  2211. invoke-virtual {v3, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
  2212. move-result-object v3
  2213. invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  2214. move-result-object v3
  2215. invoke-static {v0, v3}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
  2216. :cond_61
  2217. move-object v0, p0
  2218. move-object v3, p1
  2219. move v4, p2
  2220. move v5, p3
  2221. move-object v7, v6
  2222. move v8, p4
  2223. move v9, p5
  2224. .line 443
  2225. invoke-static/range {v0 .. v9}, Lcom/google/android/music/utils/AlbumArtUtils;->getCachedBitmap(Landroid/content/Context;JLjava/lang/String;IILjava/lang/String;Ljava/lang/String;ZZ)Landroid/graphics/Bitmap;
  2226. move-result-object v6
  2227. goto :goto_35
  2228. .end method
  2229. .method public static getFauxAlbumArt(Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;)Landroid/graphics/Bitmap;
  2230. .registers 19
  2231. .parameter "context"
  2232. .parameter "style"
  2233. .parameter "drawLabels"
  2234. .parameter "artwork_id"
  2235. .parameter "w"
  2236. .parameter "h"
  2237. .parameter "mainLabel"
  2238. .parameter "subLabel"
  2239. .prologue
  2240. .line 994
  2241. const/4 v9, 0x0
  2242. move-object v0, p0
  2243. move v1, p1
  2244. move v2, p2
  2245. move-wide v3, p3
  2246. move v5, p5
  2247. move/from16 v6, p6
  2248. move-object/from16 v7, p7
  2249. move-object/from16 v8, p8
  2250. invoke-static/range {v0 .. v9}, Lcom/google/android/music/utils/AlbumArtUtils;->getFauxAlbumArt(Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)Landroid/graphics/Bitmap;
  2251. move-result-object v0
  2252. return-object v0
  2253. .end method
  2254. .method public static getFauxAlbumArt(Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)Landroid/graphics/Bitmap;
  2255. .registers 17
  2256. .parameter "context"
  2257. .parameter "style"
  2258. .parameter "drawLabels"
  2259. .parameter "artwork_id"
  2260. .parameter "w"
  2261. .parameter "h"
  2262. .parameter "mainLabel"
  2263. .parameter "subLabel"
  2264. .parameter "childAlbums"
  2265. .prologue
  2266. .line 1009
  2267. and-int/lit8 p1, p1, 0x7
  2268. .line 1011
  2269. invoke-static {p1, p3, p4}, Lcom/google/android/music/utils/AlbumArtUtils;->createArtCacheKey(IJ)Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  2270. move-result-object v3
  2271. .line 1015
  2272. .local v3, key:Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  2273. invoke-static {p5, p6}, Lcom/google/android/music/utils/AlbumArtUtils;->getSizeKey(II)Ljava/lang/String;
  2274. move-result-object v4
  2275. .line 1016
  2276. .local v4, sizeKey:Ljava/lang/String;
  2277. invoke-static {p0, p5, p6, v4}, Lcom/google/android/music/utils/AlbumArtUtils;->getCache(Landroid/content/Context;IILjava/lang/String;)Lcom/google/android/music/utils/LruCache;
  2278. move-result-object v1
  2279. .line 1018
  2280. .local v1, cache:Lcom/google/android/music/utils/LruCache;,"Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;"
  2281. sget-object v6, Lcom/google/android/music/utils/AlbumArtUtils;->sCachedBitmapLock:Ljava/lang/Object;
  2282. monitor-enter v6
  2283. .line 1019
  2284. :try_start_11
  2285. invoke-static {v1, v3}, Lcom/google/android/music/utils/AlbumArtUtils;->getBitmapFromCache(Lcom/google/android/music/utils/LruCache;Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;)Landroid/graphics/Bitmap;
  2286. move-result-object v0
  2287. .line 1020
  2288. .local v0, bitmap:Landroid/graphics/Bitmap;
  2289. if-eqz v0, :cond_29
  2290. const/4 v2, 0x1
  2291. .line 1022
  2292. .local v2, cacheHit:Z
  2293. :goto_18
  2294. if-nez v0, :cond_22
  2295. .line 1023
  2296. invoke-static/range {p0 .. p9}, Lcom/google/android/music/utils/AlbumArtUtils;->createFauxAlbumArt(Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)Landroid/graphics/Bitmap;
  2297. move-result-object v0
  2298. .line 1025
  2299. invoke-static {v1, v0, v3}, Lcom/google/android/music/utils/AlbumArtUtils;->putBitmapInCache(Lcom/google/android/music/utils/LruCache;Landroid/graphics/Bitmap;Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;)Z
  2300. move-result v2
  2301. .line 1027
  2302. :cond_22
  2303. monitor-exit v6
  2304. :try_end_23
  2305. .catchall {:try_start_11 .. :try_end_23} :catchall_2b
  2306. .line 1029
  2307. if-eqz v1, :cond_28
  2308. .line 1030
  2309. invoke-static {v4, v2}, Lcom/google/android/music/utils/AlbumArtUtils;->trackCacheUsage(Ljava/lang/String;Z)V
  2310. .line 1033
  2311. :cond_28
  2312. return-object v0
  2313. .line 1020
  2314. .end local v2 #cacheHit:Z
  2315. :cond_29
  2316. const/4 v2, 0x0
  2317. goto :goto_18
  2318. .line 1027
  2319. .end local v0 #bitmap:Landroid/graphics/Bitmap;
  2320. :catchall_2b
  2321. move-exception v5
  2322. :try_start_2c
  2323. monitor-exit v6
  2324. :try_end_2d
  2325. .catchall {:try_start_2c .. :try_end_2d} :catchall_2b
  2326. throw v5
  2327. .end method
  2328. .method public static getLoadingAlbumArtwork(Landroid/content/Context;)Landroid/graphics/Bitmap;
  2329. .registers 3
  2330. .parameter "context"
  2331. .prologue
  2332. .line 960
  2333. sget-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->mAlbumLoadingBitmap:Landroid/graphics/Bitmap;
  2334. if-nez v0, :cond_11
  2335. .line 961
  2336. invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
  2337. move-result-object v0
  2338. const v1, 0x7f0200d5
  2339. invoke-static {v0, v1}, Landroid/graphics/BitmapFactory;->decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap;
  2340. move-result-object v0
  2341. sput-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->mAlbumLoadingBitmap:Landroid/graphics/Bitmap;
  2342. .line 964
  2343. :cond_11
  2344. sget-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->mAlbumLoadingBitmap:Landroid/graphics/Bitmap;
  2345. return-object v0
  2346. .end method
  2347. .method public static getLockScreenArtwork(Landroid/content/Context;JIIZLjava/lang/String;Ljava/lang/String;)Landroid/graphics/Bitmap;
  2348. .registers 17
  2349. .parameter "context"
  2350. .parameter "album_id"
  2351. .parameter "w"
  2352. .parameter "h"
  2353. .parameter "allowdefault"
  2354. .parameter "album"
  2355. .parameter "artist"
  2356. .prologue
  2357. .line 914
  2358. const/16 v0, 0x400
  2359. if-gt p3, v0, :cond_8
  2360. const/16 v0, 0x400
  2361. if-le p4, v0, :cond_c
  2362. .line 916
  2363. :cond_8
  2364. const/16 p3, 0x400
  2365. .line 917
  2366. const/16 p4, 0x400
  2367. .line 919
  2368. :cond_c
  2369. const/4 v8, 0x0
  2370. move-object v0, p0
  2371. move-wide v1, p1
  2372. move v3, p3
  2373. move v4, p4
  2374. move v5, p5
  2375. move-object v6, p6
  2376. move-object/from16 v7, p7
  2377. invoke-static/range {v0 .. v8}, Lcom/google/android/music/utils/AlbumArtUtils;->getArtwork(Landroid/content/Context;JIIZLjava/lang/String;Ljava/lang/String;Z)Landroid/graphics/Bitmap;
  2378. move-result-object v0
  2379. return-object v0
  2380. .end method
  2381. .method private static getPlaylistMembersCursor(Landroid/content/Context;IJ)Landroid/database/Cursor;
  2382. .registers 13
  2383. .parameter "context"
  2384. .parameter "style"
  2385. .parameter "playlistId"
  2386. .prologue
  2387. const/4 v3, 0x0
  2388. .line 1384
  2389. and-int/lit8 v7, p1, 0x7
  2390. .line 1385
  2391. .local v7, fauxArtType:I
  2392. const/4 v1, 0x0
  2393. .line 1390
  2394. .local v1, uri:Landroid/net/Uri;
  2395. packed-switch v7, :pswitch_data_26
  2396. .line 1405
  2397. :goto_7
  2398. if-eqz v1, :cond_12
  2399. .line 1406
  2400. sget-object v2, Lcom/google/android/music/utils/AlbumArtUtils;->sPlaylistCols:[Ljava/lang/String;
  2401. move-object v0, p0
  2402. move-object v4, v3
  2403. move-object v5, v3
  2404. invoke-static/range {v0 .. v5}, Lcom/google/android/music/MusicUtils;->query(Landroid/content/Context;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
  2405. move-result-object v3
  2406. .line 1408
  2407. :cond_12
  2408. return-object v3
  2409. .line 1393
  2410. :pswitch_13
  2411. invoke-static {p2, p3}, Lcom/google/android/music/store/MusicContent$Playlists$Members;->getPlaylistItemsUri(J)Landroid/net/Uri;
  2412. move-result-object v1
  2413. .line 1394
  2414. goto :goto_7
  2415. .line 1396
  2416. :pswitch_18
  2417. invoke-static {p0, p0}, Lcom/google/android/music/jumper/MusicPreferences;->getMusicPreferences(Landroid/content/Context;Ljava/lang/Object;)Lcom/google/android/music/jumper/MusicPreferences;
  2418. move-result-object v8
  2419. .line 1397
  2420. .local v8, prefs:Lcom/google/android/music/jumper/MusicPreferences;
  2421. const/4 v0, 0x0
  2422. invoke-static {p2, p3, v0, v8}, Lcom/google/android/music/AutoPlaylists;->getAutoPlaylist(JZLcom/google/android/music/jumper/MusicPreferences;)Lcom/google/android/music/medialist/AutoPlaylist;
  2423. move-result-object v6
  2424. .line 1399
  2425. .local v6, autoPlaylist:Lcom/google/android/music/medialist/AutoPlaylist;
  2426. invoke-virtual {v6, p0}, Lcom/google/android/music/medialist/AutoPlaylist;->getContentUri(Landroid/content/Context;)Landroid/net/Uri;
  2427. move-result-object v1
  2428. .line 1400
  2429. goto :goto_7
  2430. .line 1390
  2431. :pswitch_data_26
  2432. .packed-switch 0x1
  2433. :pswitch_13
  2434. :pswitch_13
  2435. :pswitch_18
  2436. .end packed-switch
  2437. .end method
  2438. .method public static getResizedLoadingArtwork(Landroid/content/Context;II)Landroid/graphics/Bitmap;
  2439. .registers 7
  2440. .parameter "context"
  2441. .parameter "w"
  2442. .parameter "h"
  2443. .prologue
  2444. .line 972
  2445. if-eqz p1, :cond_4
  2446. if-nez p2, :cond_6
  2447. .line 973
  2448. :cond_4
  2449. const/4 v2, 0x0
  2450. .line 982
  2451. :goto_5
  2452. return-object v2
  2453. .line 975
  2454. :cond_6
  2455. new-instance v1, Landroid/graphics/Point;
  2456. invoke-direct {v1, p1, p2}, Landroid/graphics/Point;-><init>(II)V
  2457. .line 976
  2458. .local v1, size:Landroid/graphics/Point;
  2459. sget-object v2, Lcom/google/android/music/utils/AlbumArtUtils;->sCachedRezinBitmap:Ljava/util/HashMap;
  2460. invoke-virtual {v2, v1}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z
  2461. move-result v2
  2462. if-eqz v2, :cond_1c
  2463. .line 977
  2464. sget-object v2, Lcom/google/android/music/utils/AlbumArtUtils;->sCachedRezinBitmap:Ljava/util/HashMap;
  2465. invoke-virtual {v2, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
  2466. move-result-object v2
  2467. check-cast v2, Landroid/graphics/Bitmap;
  2468. goto :goto_5
  2469. .line 980
  2470. :cond_1c
  2471. invoke-static {p0}, Lcom/google/android/music/utils/AlbumArtUtils;->getLoadingAlbumArtwork(Landroid/content/Context;)Landroid/graphics/Bitmap;
  2472. move-result-object v2
  2473. const/4 v3, 0x0
  2474. invoke-static {v2, p1, p2, v3}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
  2475. move-result-object v0
  2476. .line 981
  2477. .local v0, b:Landroid/graphics/Bitmap;
  2478. sget-object v2, Lcom/google/android/music/utils/AlbumArtUtils;->sCachedRezinBitmap:Ljava/util/HashMap;
  2479. invoke-virtual {v2, v1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
  2480. move-object v2, v0
  2481. .line 982
  2482. goto :goto_5
  2483. .end method
  2484. .method private static getSizeKey(II)Ljava/lang/String;
  2485. .registers 4
  2486. .parameter "width"
  2487. .parameter "height"
  2488. .prologue
  2489. .line 536
  2490. new-instance v0, Ljava/lang/StringBuilder;
  2491. invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
  2492. invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  2493. move-result-object v0
  2494. const-string v1, "_"
  2495. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  2496. move-result-object v0
  2497. invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  2498. move-result-object v0
  2499. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  2500. move-result-object v0
  2501. return-object v0
  2502. .end method
  2503. .method private static declared-synchronized getStaticFauxArtCacheDir(Landroid/content/Context;)Ljava/io/File;
  2504. .registers 6
  2505. .parameter "context"
  2506. .prologue
  2507. .line 1090
  2508. const-class v2, Lcom/google/android/music/utils/AlbumArtUtils;
  2509. monitor-enter v2
  2510. :try_start_3
  2511. sget-object v1, Lcom/google/android/music/utils/AlbumArtUtils;->mCacheDir:Ljava/io/File;
  2512. if-nez v1, :cond_40
  2513. .line 1091
  2514. new-instance v1, Ljava/io/File;
  2515. new-instance v3, Ljava/lang/StringBuilder;
  2516. invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
  2517. invoke-virtual {p0}, Landroid/content/Context;->getCacheDir()Ljava/io/File;
  2518. move-result-object v4
  2519. invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  2520. move-result-object v3
  2521. sget-object v4, Ljava/io/File;->separator:Ljava/lang/String;
  2522. invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  2523. move-result-object v3
  2524. invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  2525. move-result-object v3
  2526. const-string v4, "faux_artwork"
  2527. invoke-direct {v1, v3, v4}, Ljava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V
  2528. sput-object v1, Lcom/google/android/music/utils/AlbumArtUtils;->mCacheDir:Ljava/io/File;
  2529. .line 1092
  2530. sget-object v1, Lcom/google/android/music/utils/AlbumArtUtils;->mCacheDir:Ljava/io/File;
  2531. invoke-virtual {v1}, Ljava/io/File;->exists()Z
  2532. move-result v1
  2533. if-nez v1, :cond_40
  2534. .line 1093
  2535. sget-object v1, Lcom/google/android/music/utils/AlbumArtUtils;->mCacheDir:Ljava/io/File;
  2536. invoke-virtual {v1}, Ljava/io/File;->mkdirs()Z
  2537. :try_end_34
  2538. .catchall {:try_start_3 .. :try_end_34} :catchall_4f
  2539. .line 1095
  2540. :try_start_34
  2541. new-instance v1, Ljava/io/File;
  2542. sget-object v3, Lcom/google/android/music/utils/AlbumArtUtils;->mCacheDir:Ljava/io/File;
  2543. const-string v4, ".nomedia"
  2544. invoke-direct {v1, v3, v4}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
  2545. invoke-virtual {v1}, Ljava/io/File;->createNewFile()Z
  2546. :try_end_40
  2547. .catchall {:try_start_34 .. :try_end_40} :catchall_4f
  2548. .catch Ljava/io/IOException; {:try_start_34 .. :try_end_40} :catch_44
  2549. .line 1101
  2550. :cond_40
  2551. :goto_40
  2552. :try_start_40
  2553. sget-object v1, Lcom/google/android/music/utils/AlbumArtUtils;->mCacheDir:Ljava/io/File;
  2554. :try_end_42
  2555. .catchall {:try_start_40 .. :try_end_42} :catchall_4f
  2556. monitor-exit v2
  2557. return-object v1
  2558. .line 1096
  2559. :catch_44
  2560. move-exception v0
  2561. .line 1097
  2562. .local v0, e:Ljava/io/IOException;
  2563. :try_start_45
  2564. const-string v1, "AlbumArtUtils"
  2565. invoke-virtual {v0}, Ljava/io/IOException;->getMessage()Ljava/lang/String;
  2566. move-result-object v3
  2567. invoke-static {v1, v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
  2568. :try_end_4e
  2569. .catchall {:try_start_45 .. :try_end_4e} :catchall_4f
  2570. goto :goto_40
  2571. .line 1090
  2572. .end local v0 #e:Ljava/io/IOException;
  2573. :catchall_4f
  2574. move-exception v1
  2575. monitor-exit v2
  2576. throw v1
  2577. .end method
  2578. .method public static getStaticFauxArtFile(Landroid/content/Context;IJLjava/lang/String;Ljava/lang/String;II)Ljava/io/File;
  2579. .registers 24
  2580. .parameter "context"
  2581. .parameter "style"
  2582. .parameter "albumId"
  2583. .parameter "mainLabel"
  2584. .parameter "subLabel"
  2585. .parameter "width"
  2586. .parameter "height"
  2587. .prologue
  2588. .line 1117
  2589. new-instance v1, Ljava/lang/StringBuilder;
  2590. invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
  2591. const-string v2, "fauxart_"
  2592. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  2593. move-result-object v1
  2594. invoke-static/range {p1 .. p3}, Lcom/google/android/music/utils/AlbumArtUtils;->getStaticFauxArtKey(IJ)Ljava/lang/String;
  2595. move-result-object v2
  2596. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  2597. move-result-object v1
  2598. invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  2599. move-result-object v13
  2600. .line 1118
  2601. .local v13, fname:Ljava/lang/String;
  2602. new-instance v12, Ljava/io/File;
  2603. invoke-static/range {p0 .. p0}, Lcom/google/android/music/utils/AlbumArtUtils;->getStaticFauxArtCacheDir(Landroid/content/Context;)Ljava/io/File;
  2604. move-result-object v1
  2605. invoke-direct {v12, v1, v13}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
  2606. .line 1119
  2607. .local v12, f:Ljava/io/File;
  2608. invoke-virtual {v12}, Ljava/io/File;->exists()Z
  2609. move-result v1
  2610. if-nez v1, :cond_5e
  2611. .line 1121
  2612. const/4 v1, -0x1
  2613. move/from16 v0, p6
  2614. if-eq v0, v1, :cond_30
  2615. const/4 v1, -0x1
  2616. move/from16 v0, p7
  2617. if-ne v0, v1, :cond_5f
  2618. .line 1122
  2619. :cond_30
  2620. invoke-virtual/range {p0 .. p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
  2621. move-result-object v1
  2622. const v2, 0x7f09002a
  2623. invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I
  2624. move-result v6
  2625. .line 1126
  2626. .local v6, size:I
  2627. :goto_3b
  2628. or-int/lit8 v2, p1, 0x8
  2629. const/4 v3, 0x1
  2630. const/4 v10, 0x0
  2631. move-object/from16 v1, p0
  2632. move-wide/from16 v4, p2
  2633. move v7, v6
  2634. move-object/from16 v8, p4
  2635. move-object/from16 v9, p5
  2636. invoke-static/range {v1 .. v10}, Lcom/google/android/music/utils/AlbumArtUtils;->getFauxAlbumArt(Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)Landroid/graphics/Bitmap;
  2637. move-result-object v11
  2638. .line 1128
  2639. .local v11, bm:Landroid/graphics/Bitmap;
  2640. const/4 v14, 0x0
  2641. .line 1130
  2642. .local v14, out:Ljava/io/FileOutputStream;
  2643. :try_start_4d
  2644. new-instance v15, Ljava/io/FileOutputStream;
  2645. invoke-direct {v15, v12}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
  2646. :try_end_52
  2647. .catchall {:try_start_4d .. :try_end_52} :catchall_6d
  2648. .catch Ljava/io/FileNotFoundException; {:try_start_4d .. :try_end_52} :catch_64
  2649. .line 1131
  2650. .end local v14 #out:Ljava/io/FileOutputStream;
  2651. .local v15, out:Ljava/io/FileOutputStream;
  2652. :try_start_52
  2653. sget-object v1, Landroid/graphics/Bitmap$CompressFormat;->PNG:Landroid/graphics/Bitmap$CompressFormat;
  2654. const/16 v2, 0x64
  2655. invoke-virtual {v11, v1, v2, v15}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
  2656. :try_end_59
  2657. .catchall {:try_start_52 .. :try_end_59} :catchall_78
  2658. .catch Ljava/io/FileNotFoundException; {:try_start_52 .. :try_end_59} :catch_7b
  2659. .line 1134
  2660. if-eqz v15, :cond_5e
  2661. .line 1136
  2662. :try_start_5b
  2663. invoke-virtual {v15}, Ljava/io/FileOutputStream;->close()V
  2664. :try_end_5e
  2665. .catch Ljava/io/IOException; {:try_start_5b .. :try_end_5e} :catch_74
  2666. .line 1142
  2667. .end local v6 #size:I
  2668. .end local v11 #bm:Landroid/graphics/Bitmap;
  2669. .end local v15 #out:Ljava/io/FileOutputStream;
  2670. :cond_5e
  2671. :goto_5e
  2672. return-object v12
  2673. .line 1124
  2674. :cond_5f
  2675. invoke-static/range {p6 .. p7}, Ljava/lang/Math;->max(II)I
  2676. move-result v6
  2677. .restart local v6 #size:I
  2678. goto :goto_3b
  2679. .line 1132
  2680. .restart local v11 #bm:Landroid/graphics/Bitmap;
  2681. .restart local v14 #out:Ljava/io/FileOutputStream;
  2682. :catch_64
  2683. move-exception v1
  2684. .line 1134
  2685. :goto_65
  2686. if-eqz v14, :cond_5e
  2687. .line 1136
  2688. :try_start_67
  2689. invoke-virtual {v14}, Ljava/io/FileOutputStream;->close()V
  2690. :try_end_6a
  2691. .catch Ljava/io/IOException; {:try_start_67 .. :try_end_6a} :catch_6b
  2692. goto :goto_5e
  2693. .line 1137
  2694. :catch_6b
  2695. move-exception v1
  2696. goto :goto_5e
  2697. .line 1134
  2698. :catchall_6d
  2699. move-exception v1
  2700. :goto_6e
  2701. if-eqz v14, :cond_73
  2702. .line 1136
  2703. :try_start_70
  2704. invoke-virtual {v14}, Ljava/io/FileOutputStream;->close()V
  2705. :try_end_73
  2706. .catch Ljava/io/IOException; {:try_start_70 .. :try_end_73} :catch_76
  2707. .line 1138
  2708. :cond_73
  2709. :goto_73
  2710. throw v1
  2711. .line 1137
  2712. .end local v14 #out:Ljava/io/FileOutputStream;
  2713. .restart local v15 #out:Ljava/io/FileOutputStream;
  2714. :catch_74
  2715. move-exception v1
  2716. goto :goto_5e
  2717. .end local v15 #out:Ljava/io/FileOutputStream;
  2718. .restart local v14 #out:Ljava/io/FileOutputStream;
  2719. :catch_76
  2720. move-exception v2
  2721. goto :goto_73
  2722. .line 1134
  2723. .end local v14 #out:Ljava/io/FileOutputStream;
  2724. .restart local v15 #out:Ljava/io/FileOutputStream;
  2725. :catchall_78
  2726. move-exception v1
  2727. move-object v14, v15
  2728. .end local v15 #out:Ljava/io/FileOutputStream;
  2729. .restart local v14 #out:Ljava/io/FileOutputStream;
  2730. goto :goto_6e
  2731. .line 1132
  2732. .end local v14 #out:Ljava/io/FileOutputStream;
  2733. .restart local v15 #out:Ljava/io/FileOutputStream;
  2734. :catch_7b
  2735. move-exception v1
  2736. move-object v14, v15
  2737. .end local v15 #out:Ljava/io/FileOutputStream;
  2738. .restart local v14 #out:Ljava/io/FileOutputStream;
  2739. goto :goto_65
  2740. .end method
  2741. .method private static getStaticFauxArtKey(IJ)Ljava/lang/String;
  2742. .registers 6
  2743. .parameter "style"
  2744. .parameter "albumId"
  2745. .prologue
  2746. .line 1111
  2747. new-instance v1, Ljava/util/Random;
  2748. invoke-direct {v1, p1, p2}, Ljava/util/Random;-><init>(J)V
  2749. sget-object v2, Lcom/google/android/music/utils/AlbumArtUtils;->sFauxPalette:[I
  2750. array-length v2, v2
  2751. invoke-virtual {v1, v2}, Ljava/util/Random;->nextInt(I)I
  2752. move-result v0
  2753. .line 1112
  2754. .local v0, paletteIndex:I
  2755. new-instance v1, Ljava/lang/StringBuilder;
  2756. invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
  2757. const-string v2, ""
  2758. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  2759. move-result-object v1
  2760. invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  2761. move-result-object v1
  2762. const-string v2, "_"
  2763. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  2764. move-result-object v1
  2765. invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  2766. move-result-object v1
  2767. invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  2768. move-result-object v1
  2769. return-object v1
  2770. .end method
  2771. .method public static getStaticFauxArtPipe(Landroid/content/Context;IJLjava/lang/String;Ljava/lang/String;II)Landroid/os/ParcelFileDescriptor;
  2772. .registers 23
  2773. .parameter "context"
  2774. .parameter "style"
  2775. .parameter "albumId"
  2776. .parameter "mainLabel"
  2777. .parameter "subLabel"
  2778. .parameter "width"
  2779. .parameter "height"
  2780. .prologue
  2781. .line 1148
  2782. const/4 v1, -0x1
  2783. move/from16 v0, p6
  2784. if-eq v0, v1, :cond_a
  2785. const/4 v1, -0x1
  2786. move/from16 v0, p7
  2787. if-ne v0, v1, :cond_30
  2788. .line 1149
  2789. :cond_a
  2790. invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
  2791. move-result-object v1
  2792. const v2, 0x7f09002a
  2793. invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getDimensionPixelSize(I)I
  2794. move-result v6
  2795. .line 1153
  2796. .local v6, size:I
  2797. :goto_15
  2798. or-int/lit8 v2, p1, 0x8
  2799. const/4 v3, 0x1
  2800. const/4 v10, 0x0
  2801. move-object v1, p0
  2802. move-wide/from16 v4, p2
  2803. move v7, v6
  2804. move-object/from16 v8, p4
  2805. move-object/from16 v9, p5
  2806. invoke-static/range {v1 .. v10}, Lcom/google/android/music/utils/AlbumArtUtils;->getFauxAlbumArt(Landroid/content/Context;IZJIILjava/lang/String;Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)Landroid/graphics/Bitmap;
  2807. move-result-object v11
  2808. .line 1155
  2809. .local v11, bm:Landroid/graphics/Bitmap;
  2810. if-nez v11, :cond_35
  2811. .line 1156
  2812. const-string v1, "AlbumArtUtils"
  2813. const-string v2, "Could not create bitmap"
  2814. invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
  2815. .line 1157
  2816. const/4 v1, 0x0
  2817. .line 1185
  2818. :goto_2f
  2819. return-object v1
  2820. .line 1151
  2821. .end local v6 #size:I
  2822. .end local v11 #bm:Landroid/graphics/Bitmap;
  2823. :cond_30
  2824. invoke-static/range {p6 .. p7}, Ljava/lang/Math;->max(II)I
  2825. move-result v6
  2826. .restart local v6 #size:I
  2827. goto :goto_15
  2828. .line 1159
  2829. .restart local v11 #bm:Landroid/graphics/Bitmap;
  2830. :cond_35
  2831. const/4 v13, 0x0
  2832. .line 1161
  2833. .local v13, fd:[Landroid/os/ParcelFileDescriptor;
  2834. :try_start_36
  2835. invoke-static {}, Landroid/os/ParcelFileDescriptor;->createPipe()[Landroid/os/ParcelFileDescriptor;
  2836. move-result-object v13
  2837. .line 1162
  2838. new-instance v14, Landroid/os/ParcelFileDescriptor$AutoCloseOutputStream;
  2839. const/4 v1, 0x1
  2840. aget-object v1, v13, v1
  2841. invoke-direct {v14, v1}, Landroid/os/ParcelFileDescriptor$AutoCloseOutputStream;-><init>(Landroid/os/ParcelFileDescriptor;)V
  2842. .line 1163
  2843. .local v14, out:Ljava/io/OutputStream;
  2844. sget-object v1, Lcom/google/android/music/utils/async/AsyncWorkers;->sBackendServiceWorker:Lcom/google/android/music/Worker;
  2845. new-instance v2, Lcom/google/android/music/utils/AlbumArtUtils$3;
  2846. invoke-direct {v2, v11, v14}, Lcom/google/android/music/utils/AlbumArtUtils$3;-><init>(Landroid/graphics/Bitmap;Ljava/io/OutputStream;)V
  2847. invoke-static {v1, v2}, Lcom/google/android/music/utils/async/AsyncWorkers;->runAsync(Lcom/google/android/music/Worker;Ljava/lang/Runnable;)V
  2848. :try_end_4c
  2849. .catch Ljava/io/IOException; {:try_start_36 .. :try_end_4c} :catch_55
  2850. .line 1182
  2851. .end local v14 #out:Ljava/io/OutputStream;
  2852. :goto_4c
  2853. if-eqz v13, :cond_5e
  2854. array-length v1, v13
  2855. if-lez v1, :cond_5e
  2856. .line 1183
  2857. const/4 v1, 0x0
  2858. aget-object v1, v13, v1
  2859. goto :goto_2f
  2860. .line 1179
  2861. :catch_55
  2862. move-exception v12
  2863. .line 1180
  2864. .local v12, e:Ljava/io/IOException;
  2865. const-string v1, "AlbumArtUtils"
  2866. const-string v2, "Could not create pipe"
  2867. invoke-static {v1, v2, v12}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
  2868. goto :goto_4c
  2869. .line 1185
  2870. .end local v12 #e:Ljava/io/IOException;
  2871. :cond_5e
  2872. const/4 v1, 0x0
  2873. goto :goto_2f
  2874. .end method
  2875. .method private static getUniqueArt(Landroid/content/Context;IJIIILcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;)Ljava/util/List;
  2876. .registers 22
  2877. .parameter "context"
  2878. .parameter "style"
  2879. .parameter "playlistId"
  2880. .parameter "maxImages"
  2881. .parameter "w"
  2882. .parameter "h"
  2883. .parameter "childAlbums"
  2884. .annotation system Ldalvik/annotation/Signature;
  2885. value = {
  2886. "(",
  2887. "Landroid/content/Context;",
  2888. "IJIII",
  2889. "Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;",
  2890. ")",
  2891. "Ljava/util/List",
  2892. "<",
  2893. "Landroid/graphics/Bitmap;",
  2894. ">;"
  2895. }
  2896. .end annotation
  2897. .prologue
  2898. .line 1325
  2899. new-instance v8, Ljava/util/HashSet;
  2900. move/from16 v0, p4
  2901. invoke-direct {v8, v0}, Ljava/util/HashSet;-><init>(I)V
  2902. .line 1326
  2903. .local v8, albumIds:Ljava/util/Set;,"Ljava/util/Set<Ljava/lang/Long;>;"
  2904. new-instance v12, Ljava/util/ArrayList;
  2905. invoke-direct {v12}, Ljava/util/ArrayList;-><init>()V
  2906. .line 1328
  2907. .local v12, images:Ljava/util/ArrayList;,"Ljava/util/ArrayList<Landroid/graphics/Bitmap;>;"
  2908. const/4 v11, 0x0
  2909. .line 1330
  2910. .local v11, childAlbumsIterator:Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIterator;
  2911. if-eqz p7, :cond_13
  2912. .line 1331
  2913. invoke-interface/range {p7 .. p7}, Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIteratorFactory;->createIterator()Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIterator;
  2914. move-result-object v11
  2915. .line 1334
  2916. :cond_13
  2917. if-nez v11, :cond_20
  2918. .line 1335
  2919. invoke-static/range {p0 .. p3}, Lcom/google/android/music/utils/AlbumArtUtils;->getPlaylistMembersCursor(Landroid/content/Context;IJ)Landroid/database/Cursor;
  2920. move-result-object v10
  2921. .line 1336
  2922. .local v10, c:Landroid/database/Cursor;
  2923. if-eqz v10, :cond_20
  2924. .line 1337
  2925. new-instance v11, Lcom/google/android/music/utils/AlbumArtUtils$PlaylistMemberCursorIterator;
  2926. .end local v11 #childAlbumsIterator:Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIterator;
  2927. invoke-direct {v11, v10}, Lcom/google/android/music/utils/AlbumArtUtils$PlaylistMemberCursorIterator;-><init>(Landroid/database/Cursor;)V
  2928. .line 1341
  2929. .end local v10 #c:Landroid/database/Cursor;
  2930. .restart local v11 #childAlbumsIterator:Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIterator;
  2931. :cond_20
  2932. if-eqz v11, :cond_69
  2933. .line 1343
  2934. :cond_22
  2935. :try_start_22
  2936. invoke-interface {v11}, Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIterator;->hasNext()Z
  2937. move-result v1
  2938. if-eqz v1, :cond_66
  2939. .line 1344
  2940. invoke-interface {v11}, Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIterator;->next()J
  2941. move-result-wide v1
  2942. invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
  2943. move-result-object v7
  2944. .line 1345
  2945. .local v7, albumIdKey:Ljava/lang/Long;
  2946. invoke-interface {v8, v7}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
  2947. move-result v1
  2948. if-nez v1, :cond_22
  2949. .line 1348
  2950. invoke-interface {v8, v7}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
  2951. .line 1349
  2952. invoke-virtual {v12}, Ljava/util/ArrayList;->size()I
  2953. move-result v1
  2954. add-int/lit8 v1, v1, 0x1
  2955. invoke-static {v1}, Lcom/google/android/music/utils/AlbumArtUtils;->playlistArtReductionFactor(I)I
  2956. move-result v13
  2957. .line 1350
  2958. .local v13, reductionFactor:I
  2959. add-int v1, p5, v13
  2960. add-int/lit8 v1, v1, -0x1
  2961. div-int v4, v1, v13
  2962. .line 1351
  2963. .local v4, scaledWidth:I
  2964. add-int v1, p6, v13
  2965. add-int/lit8 v1, v1, -0x1
  2966. div-int v5, v1, v13
  2967. .line 1352
  2968. .local v5, scaledHeight:I
  2969. invoke-virtual {v7}, Ljava/lang/Long;->longValue()J
  2970. move-result-wide v2
  2971. const/4 v6, 0x0
  2972. move-object v1, p0
  2973. invoke-static/range {v1 .. v6}, Lcom/google/android/music/utils/AlbumArtUtils;->resolveArtwork(Landroid/content/Context;JIIZ)Landroid/graphics/Bitmap;
  2974. move-result-object v9
  2975. .line 1354
  2976. .local v9, art:Landroid/graphics/Bitmap;
  2977. if-eqz v9, :cond_22
  2978. .line 1355
  2979. invoke-virtual {v12, v9}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
  2980. .line 1356
  2981. invoke-virtual {v12}, Ljava/util/ArrayList;->size()I
  2982. :try_end_61
  2983. .catchall {:try_start_22 .. :try_end_61} :catchall_6a
  2984. move-result v1
  2985. move/from16 v0, p4
  2986. if-lt v1, v0, :cond_22
  2987. .line 1362
  2988. .end local v4 #scaledWidth:I
  2989. .end local v5 #scaledHeight:I
  2990. .end local v7 #albumIdKey:Ljava/lang/Long;
  2991. .end local v9 #art:Landroid/graphics/Bitmap;
  2992. .end local v13 #reductionFactor:I
  2993. :cond_66
  2994. invoke-interface {v11}, Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIterator;->close()V
  2995. .line 1365
  2996. :cond_69
  2997. return-object v12
  2998. .line 1362
  2999. :catchall_6a
  3000. move-exception v1
  3001. invoke-interface {v11}, Lcom/google/android/music/utils/AlbumArtUtils$AlbumIdIterator;->close()V
  3002. throw v1
  3003. .end method
  3004. .method public static handleAlbumArtChanged(J)V
  3005. .registers 8
  3006. .parameter "albumId"
  3007. .prologue
  3008. .line 601
  3009. sget-object v3, Lcom/google/android/music/utils/AlbumArtUtils;->sSizeCache:Ljava/util/HashMap;
  3010. invoke-virtual {v3}, Ljava/util/HashMap;->size()I
  3011. move-result v3
  3012. const/4 v4, 0x5
  3013. if-le v3, v4, :cond_28
  3014. .line 602
  3015. const-string v3, "AlbumArtUtils"
  3016. new-instance v4, Ljava/lang/StringBuilder;
  3017. invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
  3018. const-string v5, "There are too many size caches: "
  3019. invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  3020. move-result-object v4
  3021. sget-object v5, Lcom/google/android/music/utils/AlbumArtUtils;->sSizeCache:Ljava/util/HashMap;
  3022. invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  3023. move-result-object v4
  3024. invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  3025. move-result-object v4
  3026. new-instance v5, Ljava/lang/Throwable;
  3027. invoke-direct {v5}, Ljava/lang/Throwable;-><init>()V
  3028. invoke-static {v3, v4, v5}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
  3029. .line 604
  3030. :cond_28
  3031. sget-object v4, Lcom/google/android/music/utils/AlbumArtUtils;->sSizeCache:Ljava/util/HashMap;
  3032. monitor-enter v4
  3033. .line 605
  3034. :try_start_2b
  3035. sget-object v3, Lcom/google/android/music/utils/AlbumArtUtils;->sSizeCache:Ljava/util/HashMap;
  3036. invoke-virtual {v3}, Ljava/util/HashMap;->entrySet()Ljava/util/Set;
  3037. move-result-object v3
  3038. invoke-interface {v3}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
  3039. move-result-object v1
  3040. .local v1, i$:Ljava/util/Iterator;
  3041. :goto_35
  3042. invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
  3043. move-result v3
  3044. if-eqz v3, :cond_59
  3045. invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  3046. move-result-object v0
  3047. check-cast v0, Ljava/util/Map$Entry;
  3048. .line 606
  3049. .local v0, cache:Ljava/util/Map$Entry;,"Ljava/util/Map$Entry<Ljava/lang/String;Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;>;"
  3050. monitor-enter v0
  3051. :try_end_42
  3052. .catchall {:try_start_2b .. :try_end_42} :catchall_56
  3053. .line 607
  3054. :try_start_42
  3055. new-instance v2, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  3056. const/4 v3, 0x1
  3057. invoke-direct {v2, v3, p0, p1}, Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;-><init>(IJ)V
  3058. .line 608
  3059. .local v2, key:Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  3060. invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
  3061. move-result-object v3
  3062. check-cast v3, Lcom/google/android/music/utils/LruCache;
  3063. invoke-virtual {v3, v2}, Lcom/google/android/music/utils/LruCache;->remove(Ljava/lang/Object;)V
  3064. .line 609
  3065. monitor-exit v0
  3066. goto :goto_35
  3067. .end local v2 #key:Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;
  3068. :catchall_53
  3069. move-exception v3
  3070. monitor-exit v0
  3071. :try_end_55
  3072. .catchall {:try_start_42 .. :try_end_55} :catchall_53
  3073. :try_start_55
  3074. throw v3
  3075. .line 611
  3076. .end local v0 #cache:Ljava/util/Map$Entry;,"Ljava/util/Map$Entry<Ljava/lang/String;Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;>;"
  3077. .end local v1 #i$:Ljava/util/Iterator;
  3078. :catchall_56
  3079. move-exception v3
  3080. monitor-exit v4
  3081. :try_end_58
  3082. .catchall {:try_start_55 .. :try_end_58} :catchall_56
  3083. throw v3
  3084. .restart local v1 #i$:Ljava/util/Iterator;
  3085. :cond_59
  3086. :try_start_59
  3087. monitor-exit v4
  3088. :try_end_5a
  3089. .catchall {:try_start_59 .. :try_end_5a} :catchall_56
  3090. .line 612
  3091. return-void
  3092. .end method
  3093. .method private static playlistArtReductionFactor(I)I
  3094. .registers 3
  3095. .parameter "imageCount"
  3096. .prologue
  3097. const/4 v0, 0x2
  3098. .line 1374
  3099. if-gt p0, v0, :cond_5
  3100. .line 1375
  3101. const/4 v0, 0x1
  3102. .line 1379
  3103. :cond_4
  3104. :goto_4
  3105. return v0
  3106. .line 1376
  3107. :cond_5
  3108. const/4 v1, 0x4
  3109. if-le p0, v1, :cond_4
  3110. .line 1379
  3111. const/4 v0, 0x3
  3112. goto :goto_4
  3113. .end method
  3114. .method public static playlistTypeToArtStyle(I)I
  3115. .registers 3
  3116. .parameter "listType"
  3117. .prologue
  3118. const/4 v0, 0x3
  3119. .line 1218
  3120. sparse-switch p0, :sswitch_data_10
  3121. .line 1229
  3122. new-instance v0, Ljava/lang/IllegalArgumentException;
  3123. const-string v1, "Unknown playlist type"
  3124. invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
  3125. throw v0
  3126. .line 1220
  3127. :sswitch_c
  3128. const/4 v0, 0x1
  3129. .line 1227
  3130. :goto_d
  3131. :sswitch_d
  3132. return v0
  3133. .line 1222
  3134. :sswitch_e
  3135. const/4 v0, 0x2
  3136. goto :goto_d
  3137. .line 1218
  3138. :sswitch_data_10
  3139. .sparse-switch
  3140. 0x0 -> :sswitch_c
  3141. 0x1 -> :sswitch_e
  3142. 0xa -> :sswitch_d
  3143. 0x64 -> :sswitch_d
  3144. .end sparse-switch
  3145. .end method
  3146. .method private static putBitmapInCache(Lcom/google/android/music/utils/LruCache;Landroid/graphics/Bitmap;Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;)Z
  3147. .registers 6
  3148. .parameter
  3149. .parameter "bitmap"
  3150. .parameter "key"
  3151. .annotation system Ldalvik/annotation/Signature;
  3152. value = {
  3153. "(",
  3154. "Lcom/google/android/music/utils/LruCache",
  3155. "<",
  3156. "Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;",
  3157. "Landroid/graphics/Bitmap;",
  3158. ">;",
  3159. "Landroid/graphics/Bitmap;",
  3160. "Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;",
  3161. ")Z"
  3162. }
  3163. .end annotation
  3164. .prologue
  3165. .line 582
  3166. .local p0, cache:Lcom/google/android/music/utils/LruCache;,"Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;"
  3167. const/4 v0, 0x0
  3168. .line 583
  3169. .local v0, cacheHit:Z
  3170. if-eqz p0, :cond_10
  3171. .line 584
  3172. monitor-enter p0
  3173. .line 586
  3174. :try_start_4
  3175. invoke-virtual {p0, p2}, Lcom/google/android/music/utils/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
  3176. move-result-object v1
  3177. check-cast v1, Landroid/graphics/Bitmap;
  3178. .line 587
  3179. .local v1, value:Landroid/graphics/Bitmap;
  3180. if-nez v1, :cond_11
  3181. .line 588
  3182. invoke-virtual {p0, p2, p1}, Lcom/google/android/music/utils/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
  3183. .line 595
  3184. :goto_f
  3185. monitor-exit p0
  3186. .line 597
  3187. .end local v1 #value:Landroid/graphics/Bitmap;
  3188. :cond_10
  3189. return v0
  3190. .line 591
  3191. .restart local v1 #value:Landroid/graphics/Bitmap;
  3192. :cond_11
  3193. invoke-virtual {p1}, Landroid/graphics/Bitmap;->recycle()V
  3194. .line 592
  3195. move-object p1, v1
  3196. .line 593
  3197. const/4 v0, 0x1
  3198. goto :goto_f
  3199. .line 595
  3200. .end local v1 #value:Landroid/graphics/Bitmap;
  3201. :catchall_17
  3202. move-exception v2
  3203. monitor-exit p0
  3204. :try_end_19
  3205. .catchall {:try_start_4 .. :try_end_19} :catchall_17
  3206. throw v2
  3207. .end method
  3208. .method private static renderFauxLabel(Landroid/graphics/Canvas;IIIIZLjava/lang/String;IIZII)V
  3209. .registers 23
  3210. .parameter
  3211. .parameter
  3212. .parameter
  3213. .parameter
  3214. .parameter
  3215. .parameter
  3216. .parameter
  3217. .parameter
  3218. .parameter
  3219. .parameter
  3220. .parameter
  3221. .parameter
  3222. .prologue
  3223. .line 1579
  3224. new-instance v9, Landroid/text/TextPaint;
  3225. const/16 v1, 0x81
  3226. invoke-direct {v9, v1}, Landroid/text/TextPaint;-><init>(I)V
  3227. .line 1580
  3228. int-to-float v1, p4
  3229. invoke-virtual {v9, v1}, Landroid/text/TextPaint;->setTextSize(F)V
  3230. .line 1581
  3231. if-eqz p5, :cond_12
  3232. .line 1582
  3233. sget-object v1, Landroid/graphics/Typeface;->DEFAULT_BOLD:Landroid/graphics/Typeface;
  3234. invoke-virtual {v9, v1}, Landroid/text/TextPaint;->setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface;
  3235. .line 1585
  3236. :cond_12
  3237. invoke-virtual {v9}, Landroid/text/TextPaint;->getFontMetricsInt()Landroid/graphics/Paint$FontMetricsInt;
  3238. move-result-object v1
  3239. .line 1587
  3240. new-instance v2, Landroid/graphics/Rect;
  3241. invoke-direct {v2}, Landroid/graphics/Rect;-><init>()V
  3242. .line 1588
  3243. const/4 v3, 0x0
  3244. invoke-virtual/range {p6 .. p6}, Ljava/lang/String;->length()I
  3245. move-result v4
  3246. move-object/from16 v0, p6
  3247. invoke-virtual {v9, v0, v3, v4, v2}, Landroid/text/TextPaint;->getTextBounds(Ljava/lang/String;IILandroid/graphics/Rect;)V
  3248. .line 1589
  3249. iget v1, v1, Landroid/graphics/Paint$FontMetricsInt;->top:I
  3250. sub-int v10, p3, v1
  3251. .line 1590
  3252. iget v1, v2, Landroid/graphics/Rect;->right:I
  3253. .line 1592
  3254. move/from16 v0, p11
  3255. if-lt v1, v0, :cond_31
  3256. .line 1593
  3257. const/16 p9, 0x0
  3258. .line 1595
  3259. :cond_31
  3260. if-le v1, p1, :cond_59
  3261. const/4 v1, 0x1
  3262. .line 1596
  3263. :goto_34
  3264. if-eqz v1, :cond_5b
  3265. .line 1597
  3266. new-instance v1, Landroid/graphics/LinearGradient;
  3267. add-int v2, p2, p1
  3268. sub-int v2, v2, p8
  3269. int-to-float v2, v2
  3270. const/4 v3, 0x0
  3271. add-int v4, p2, p1
  3272. int-to-float v4, v4
  3273. const/4 v5, 0x0
  3274. const v6, 0xffffff
  3275. and-int v7, v6, p7
  3276. sget-object v8, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode;
  3277. move/from16 v6, p7
  3278. invoke-direct/range {v1 .. v8}, Landroid/graphics/LinearGradient;-><init>(FFFFIILandroid/graphics/Shader$TileMode;)V
  3279. .line 1601
  3280. invoke-virtual {v9, v1}, Landroid/text/TextPaint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;
  3281. .line 1608
  3282. :cond_51
  3283. :goto_51
  3284. int-to-float v1, p2
  3285. int-to-float v2, v10
  3286. move-object/from16 v0, p6
  3287. invoke-virtual {p0, v0, v1, v2, v9}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
  3288. .line 1609
  3289. return-void
  3290. .line 1595
  3291. :cond_59
  3292. const/4 v1, 0x0
  3293. goto :goto_34
  3294. .line 1603
  3295. :cond_5b
  3296. move/from16 v0, p7
  3297. invoke-virtual {v9, v0}, Landroid/text/TextPaint;->setColor(I)V
  3298. .line 1604
  3299. if-eqz p9, :cond_51
  3300. .line 1605
  3301. iget v1, v2, Landroid/graphics/Rect;->right:I
  3302. sub-int p2, p10, v1
  3303. goto :goto_51
  3304. .end method
  3305. .method public static declared-synchronized report(Ljava/lang/OutOfMemoryError;)V
  3306. .registers 6
  3307. .parameter "e"
  3308. .prologue
  3309. .line 884
  3310. const-class v2, Lcom/google/android/music/utils/AlbumArtUtils;
  3311. monitor-enter v2
  3312. :try_start_3
  3313. sget-boolean v1, Lcom/google/android/music/utils/AlbumArtUtils;->sHprofDumped:Z
  3314. if-nez v1, :cond_48
  3315. .line 885
  3316. const/4 v1, 0x1
  3317. sput-boolean v1, Lcom/google/android/music/utils/AlbumArtUtils;->sHprofDumped:Z
  3318. :try_end_a
  3319. .catchall {:try_start_3 .. :try_end_a} :catchall_4a
  3320. .line 887
  3321. :try_start_a
  3322. new-instance v1, Ljava/lang/StringBuilder;
  3323. invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
  3324. invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
  3325. move-result-object v3
  3326. invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  3327. move-result-object v1
  3328. const-string v3, "/music2_hprof_data"
  3329. invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  3330. move-result-object v1
  3331. invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  3332. move-result-object v0
  3333. .line 888
  3334. .local v0, path:Ljava/lang/String;
  3335. invoke-static {v0}, Landroid/os/Debug;->dumpHprofData(Ljava/lang/String;)V
  3336. .line 889
  3337. const-string v1, "AlbumArtUtils"
  3338. new-instance v3, Ljava/lang/StringBuilder;
  3339. invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
  3340. const-string v4, "Out of memory.\nPlease do the following to copy the heap dump to your computer:\n\n adb pull "
  3341. invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  3342. move-result-object v3
  3343. invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  3344. move-result-object v3
  3345. const-string v4, "\n\n"
  3346. invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  3347. move-result-object v3
  3348. const-string v4, "And attach the file to your bug report."
  3349. invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  3350. move-result-object v3
  3351. invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  3352. move-result-object v3
  3353. invoke-static {v1, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
  3354. :try_end_48
  3355. .catchall {:try_start_a .. :try_end_48} :catchall_4a
  3356. .catch Ljava/lang/Throwable; {:try_start_a .. :try_end_48} :catch_4d
  3357. .line 897
  3358. .end local v0 #path:Ljava/lang/String;
  3359. :cond_48
  3360. :goto_48
  3361. monitor-exit v2
  3362. return-void
  3363. .line 884
  3364. :catchall_4a
  3365. move-exception v1
  3366. monitor-exit v2
  3367. throw v1
  3368. .line 893
  3369. :catch_4d
  3370. move-exception v1
  3371. goto :goto_48
  3372. .end method
  3373. .method public static reportAndRethrow(Ljava/lang/OutOfMemoryError;II)V
  3374. .registers 6
  3375. .parameter "e"
  3376. .parameter "w"
  3377. .parameter "h"
  3378. .prologue
  3379. .line 869
  3380. const-string v0, "AlbumArtUtils"
  3381. new-instance v1, Ljava/lang/StringBuilder;
  3382. invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
  3383. const-string v2, "Out of memory allocating a ("
  3384. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  3385. move-result-object v1
  3386. invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  3387. move-result-object v1
  3388. const-string v2, ", "
  3389. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  3390. move-result-object v1
  3391. invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  3392. move-result-object v1
  3393. const-string v2, ") sized texture."
  3394. invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  3395. move-result-object v1
  3396. invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  3397. move-result-object v1
  3398. invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
  3399. .line 871
  3400. invoke-static {p0}, Lcom/google/android/music/utils/AlbumArtUtils;->report(Ljava/lang/OutOfMemoryError;)V
  3401. .line 872
  3402. throw p0
  3403. .end method
  3404. .method private static resizeCaches()V
  3405. .registers 13
  3406. .prologue
  3407. const/4 v12, 0x0
  3408. .line 642
  3409. sget-object v10, Lcom/google/android/music/utils/AlbumArtUtils;->sSizeCache:Ljava/util/HashMap;
  3410. monitor-enter v10
  3411. .line 643
  3412. :try_start_4
  3413. sget v9, Lcom/google/android/music/utils/AlbumArtUtils;->sTotalSizeCacheRequests:I
  3414. sget v11, Lcom/google/android/music/utils/AlbumArtUtils;->CACHE_REQUESTS_TO_RESIZE:I
  3415. if-gt v9, v11, :cond_c
  3416. .line 646
  3417. monitor-exit v10
  3418. .line 675
  3419. .local v2, cacheSizeIndex:I
  3420. .local v3, i:I
  3421. .local v4, i$:Ljava/util/Iterator;
  3422. .local v6, sizeCacheRequests:Ljava/util/HashMap;,"Ljava/util/HashMap<Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;>;"
  3423. .local v7, sortedCacheKeys:Ljava/util/ArrayList;,"Ljava/util/ArrayList<Landroid/util/Pair<Ljava/lang/String;Ljava/lang/Integer;>;>;"
  3424. .local v8, totalSizeCacheRequests:I
  3425. :cond_b
  3426. return-void
  3427. .line 648
  3428. .end local v2 #cacheSizeIndex:I
  3429. .end local v3 #i:I
  3430. .end local v4 #i$:Ljava/util/Iterator;
  3431. .end local v6 #sizeCacheRequests:Ljava/util/HashMap;,"Ljava/util/HashMap<Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;>;"
  3432. .end local v7 #sortedCacheKeys:Ljava/util/ArrayList;,"Ljava/util/ArrayList<Landroid/util/Pair<Ljava/lang/String;Ljava/lang/Integer;>;>;"
  3433. .end local v8 #totalSizeCacheRequests:I
  3434. :cond_c
  3435. sget v8, Lcom/google/android/music/utils/AlbumArtUtils;->sTotalSizeCacheRequests:I
  3436. .line 650
  3437. .restart local v8 #totalSizeCacheRequests:I
  3438. new-instance v6, Ljava/util/HashMap;
  3439. sget-object v9, Lcom/google/android/music/utils/AlbumArtUtils;->sSizeCacheRequests:Ljava/util/HashMap;
  3440. invoke-direct {v6, v9}, Ljava/util/HashMap;-><init>(Ljava/util/Map;)V
  3441. .line 651
  3442. .restart local v6 #sizeCacheRequests:Ljava/util/HashMap;,"Ljava/util/HashMap<Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;>;"
  3443. const/4 v9, 0x0
  3444. sput v9, Lcom/google/android/music/utils/AlbumArtUtils;->sTotalSizeCacheRequests:I
  3445. .line 652
  3446. sget v9, Lcom/google/android/music/utils/AlbumArtUtils;->CACHE_REQUESTS_TO_RESIZE:I
  3447. add-int/lit16 v9, v9, 0xc8
  3448. sput v9, Lcom/google/android/music/utils/AlbumArtUtils;->CACHE_REQUESTS_TO_RESIZE:I
  3449. .line 653
  3450. monitor-exit v10
  3451. :try_end_1f
  3452. .catchall {:try_start_4 .. :try_end_1f} :catchall_52
  3453. .line 654
  3454. new-instance v7, Ljava/util/ArrayList;
  3455. invoke-direct {v7}, Ljava/util/ArrayList;-><init>()V
  3456. .line 655
  3457. .restart local v7 #sortedCacheKeys:Ljava/util/ArrayList;,"Ljava/util/ArrayList<Landroid/util/Pair<Ljava/lang/String;Ljava/lang/Integer;>;>;"
  3458. invoke-virtual {v6}, Ljava/util/HashMap;->entrySet()Ljava/util/Set;
  3459. move-result-object v9
  3460. invoke-interface {v9}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
  3461. move-result-object v4
  3462. .restart local v4 #i$:Ljava/util/Iterator;
  3463. :goto_2c
  3464. invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z
  3465. move-result v9
  3466. if-eqz v9, :cond_55
  3467. invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;
  3468. move-result-object v1
  3469. check-cast v1, Ljava/util/Map$Entry;
  3470. .line 656
  3471. .local v1, cache:Ljava/util/Map$Entry;,"Ljava/util/Map$Entry<Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;>;"
  3472. invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
  3473. move-result-object v10
  3474. invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
  3475. move-result-object v9
  3476. check-cast v9, Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;
  3477. #getter for: Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;->cacheHits:I
  3478. invoke-static {v9}, Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;->access$300(Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;)I
  3479. move-result v9
  3480. invoke-static {v9}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
  3481. move-result-object v9
  3482. invoke-static {v10, v9}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
  3483. move-result-object v9
  3484. invoke-static {v7, v9}, Lcom/google/android/music/utils/AlbumArtUtils;->sortedInsert(Ljava/util/ArrayList;Landroid/util/Pair;)V
  3485. goto :goto_2c
  3486. .line 653
  3487. .end local v1 #cache:Ljava/util/Map$Entry;,"Ljava/util/Map$Entry<Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;>;"
  3488. .end local v4 #i$:Ljava/util/Iterator;
  3489. .end local v6 #sizeCacheRequests:Ljava/util/HashMap;,"Ljava/util/HashMap<Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;>;"
  3490. .end local v7 #sortedCacheKeys:Ljava/util/ArrayList;,"Ljava/util/ArrayList<Landroid/util/Pair<Ljava/lang/String;Ljava/lang/Integer;>;>;"
  3491. :catchall_52
  3492. move-exception v9
  3493. :try_start_53
  3494. monitor-exit v10
  3495. :try_end_54
  3496. .catchall {:try_start_53 .. :try_end_54} :catchall_52
  3497. throw v9
  3498. .line 659
  3499. .restart local v4 #i$:Ljava/util/Iterator;
  3500. .restart local v6 #sizeCacheRequests:Ljava/util/HashMap;,"Ljava/util/HashMap<Ljava/lang/String;Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;>;"
  3501. .restart local v7 #sortedCacheKeys:Ljava/util/ArrayList;,"Ljava/util/ArrayList<Landroid/util/Pair<Ljava/lang/String;Ljava/lang/Integer;>;>;"
  3502. :cond_55
  3503. const/4 v2, 0x0
  3504. .line 660
  3505. .restart local v2 #cacheSizeIndex:I
  3506. const/4 v3, 0x0
  3507. .restart local v3 #i:I
  3508. :goto_57
  3509. invoke-virtual {v7}, Ljava/util/ArrayList;->size()I
  3510. move-result v9
  3511. if-ge v3, v9, :cond_b
  3512. .line 661
  3513. invoke-virtual {v7, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
  3514. move-result-object v5
  3515. check-cast v5, Landroid/util/Pair;
  3516. .line 663
  3517. .local v5, keyAndHits:Landroid/util/Pair;,"Landroid/util/Pair<Ljava/lang/String;Ljava/lang/Integer;>;"
  3518. sget-object v9, Lcom/google/android/music/utils/AlbumArtUtils;->sSizeCache:Ljava/util/HashMap;
  3519. iget-object v10, v5, Landroid/util/Pair;->first:Ljava/lang/Object;
  3520. invoke-virtual {v9, v10}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
  3521. move-result-object v0
  3522. check-cast v0, Lcom/google/android/music/utils/LruCache;
  3523. .line 664
  3524. .local v0, cache:Lcom/google/android/music/utils/LruCache;,"Lcom/google/android/music/utils/LruCache<Lcom/google/android/music/utils/AlbumArtUtils$ArtCacheKey;Landroid/graphics/Bitmap;>;"
  3525. iget-object v9, v5, Landroid/util/Pair;->second:Ljava/lang/Object;
  3526. check-cast v9, Ljava/lang/Integer;
  3527. invoke-virtual {v9}, Ljava/lang/Integer;->intValue()I
  3528. move-result v9
  3529. const/4 v10, 0x3
  3530. if-le v9, v10, :cond_8b
  3531. .line 665
  3532. sget-object v9, Lcom/google/android/music/utils/AlbumArtUtils;->CACHE_SIZES:[I
  3533. aget v9, v9, v2
  3534. invoke-virtual {v0, v9}, Lcom/google/android/music/utils/LruCache;->setCapacity(I)V
  3535. .line 670
  3536. :goto_7f
  3537. sget-object v9, Lcom/google/android/music/utils/AlbumArtUtils;->CACHE_SIZES:[I
  3538. array-length v9, v9
  3539. add-int/lit8 v9, v9, -0x1
  3540. if-eq v2, v9, :cond_88
  3541. .line 671
  3542. add-int/lit8 v2, v2, 0x1
  3543. .line 660
  3544. :cond_88
  3545. add-int/lit8 v3, v3, 0x1
  3546. goto :goto_57
  3547. .line 667
  3548. :cond_8b
  3549. invoke-virtual {v0, v12}, Lcom/google/android/music/utils/LruCache;->setCapacity(I)V
  3550. goto :goto_7f
  3551. .end method
  3552. .method private static resizeHelper(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
  3553. .registers 8
  3554. .parameter "b"
  3555. .parameter "w"
  3556. .parameter "h"
  3557. .parameter "mayScaleUp"
  3558. .prologue
  3559. .line 747
  3560. invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
  3561. move-result v1
  3562. .line 748
  3563. .local v1, outWidth:I
  3564. invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
  3565. move-result v0
  3566. .line 749
  3567. .local v0, outHeight:I
  3568. if-nez p3, :cond_f
  3569. if-gt v1, p1, :cond_f
  3570. if-gt v0, p2, :cond_f
  3571. .line 761
  3572. :cond_e
  3573. :goto_e
  3574. return-object p0
  3575. .line 753
  3576. :cond_f
  3577. if-ne v1, p1, :cond_13
  3578. if-eq v0, p2, :cond_e
  3579. .line 754
  3580. :cond_13
  3581. const/4 v3, 0x1
  3582. invoke-static {p0, p1, p2, v3}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
  3583. move-result-object v2
  3584. .line 756
  3585. .local v2, tmp:Landroid/graphics/Bitmap;
  3586. if-eq v2, p0, :cond_1d
  3587. .line 757
  3588. invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
  3589. .line 759
  3590. :cond_1d
  3591. move-object p0, v2
  3592. goto :goto_e
  3593. .end method
  3594. .method private static resolveArtwork(Landroid/content/Context;JIIZ)Landroid/graphics/Bitmap;
  3595. .registers 14
  3596. .parameter "context"
  3597. .parameter "album_id"
  3598. .parameter "w"
  3599. .parameter "h"
  3600. .parameter "mayScaleUpOrCrop"
  3601. .prologue
  3602. .line 697
  3603. const/4 v0, 0x2
  3604. new-array v5, v0, [I
  3605. .local v5, originalBounds:[I
  3606. move-object v0, p0
  3607. move-wide v1, p1
  3608. move v3, p3
  3609. move v4, p4
  3610. .line 698
  3611. invoke-static/range {v0 .. v5}, Lcom/google/android/music/utils/AlbumArtUtils;->resolveArtworkRaw(Landroid/content/Context;JII[I)Landroid/graphics/Bitmap;
  3612. move-result-object v6
  3613. .line 701
  3614. .local v6, b:Landroid/graphics/Bitmap;
  3615. if-eqz v6, :cond_11
  3616. .line 703
  3617. :try_start_d
  3618. invoke-static {v6, p3, p4, p5}, Lcom/google/android/music/utils/AlbumArtUtils;->resizeHelper(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
  3619. :try_end_10
  3620. .catch Ljava/lang/OutOfMemoryError; {:try_start_d .. :try_end_10} :catch_12
  3621. move-result-object v6
  3622. .line 739
  3623. :cond_11
  3624. :goto_11
  3625. return-object v6
  3626. .line 736
  3627. :catch_12
  3628. move-exception v7
  3629. .line 737
  3630. .local v7, e:Ljava/lang/OutOfMemoryError;
  3631. invoke-static {v7, p3, p4}, Lcom/google/android/music/utils/AlbumArtUtils;->reportAndRethrow(Ljava/lang/OutOfMemoryError;II)V
  3632. goto :goto_11
  3633. .end method
  3634. .method private static resolveArtworkFromUrl(Ljava/lang/String;IIZ)Landroid/graphics/Bitmap;
  3635. .registers 23
  3636. .parameter "albumArtUrl"
  3637. .parameter "width"
  3638. .parameter "height"
  3639. .parameter "mayScaleUp"
  3640. .prologue
  3641. .line 318
  3642. sget-boolean v15, Lcom/google/android/music/utils/AlbumArtUtils;->LOGV:Z
  3643. if-eqz v15, :cond_20
  3644. .line 319
  3645. const-string v15, "AlbumArtUtils"
  3646. new-instance v16, Ljava/lang/StringBuilder;
  3647. invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
  3648. const-string v17, "resolveArtworkFromUrl: albumArtUrl="
  3649. invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  3650. move-result-object v16
  3651. move-object/from16 v0, v16
  3652. move-object/from16 v1, p0
  3653. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  3654. move-result-object v16
  3655. invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  3656. move-result-object v16
  3657. invoke-static/range {v15 .. v16}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
  3658. .line 322
  3659. :cond_20
  3660. if-lez p1, :cond_24
  3661. if-gtz p2, :cond_2c
  3662. .line 323
  3663. :cond_24
  3664. new-instance v15, Ljava/lang/IllegalArgumentException;
  3665. const-string v16, "must provide a width and height"
  3666. invoke-direct/range {v15 .. v16}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
  3667. throw v15
  3668. .line 325
  3669. :cond_2c
  3670. if-nez p0, :cond_30
  3671. .line 326
  3672. const/4 v6, 0x0
  3673. .line 377
  3674. :cond_2f
  3675. :goto_2f
  3676. return-object v6
  3677. .line 329
  3678. :cond_30
  3679. const/4 v10, 0x0
  3680. .line 331
  3681. .local v10, dataStream:Ljava/io/ByteArrayInputStream;
  3682. const/4 v12, 0x0
  3683. .line 332
  3684. .local v12, is:Ljava/io/InputStream;
  3685. const/4 v4, 0x0
  3686. .line 335
  3687. .local v4, bis:Ljava/io/BufferedInputStream;
  3688. const/16 v3, 0x2800
  3689. .line 336
  3690. .local v3, IO_BLOCK_SIZE:I
  3691. :try_start_35
  3692. new-instance v15, Ljava/net/URL;
  3693. move-object/from16 v0, p0
  3694. invoke-direct {v15, v0}, Ljava/net/URL;-><init>(Ljava/lang/String;)V
  3695. invoke-virtual {v15}, Ljava/net/URL;->openConnection()Ljava/net/URLConnection;
  3696. move-result-object v9
  3697. .line 337
  3698. .local v9, conn:Ljava/net/URLConnection;
  3699. invoke-virtual {v9}, Ljava/net/URLConnection;->connect()V
  3700. .line 338
  3701. invoke-virtual {v9}, Ljava/net/URLConnection;->getInputStream()Ljava/io/InputStream;
  3702. move-result-object v12
  3703. .line 339
  3704. new-instance v5, Ljava/io/BufferedInputStream;
  3705. const/16 v15, 0x2800
  3706. invoke-direct {v5, v12, v15}, Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;I)V
  3707. :try_end_4e
  3708. .catchall {:try_start_35 .. :try_end_4e} :catchall_100
  3709. .catch Ljava/io/IOException; {:try_start_35 .. :try_end_4e} :catch_10b
  3710. .line 340
  3711. .end local v4 #bis:Ljava/io/BufferedInputStream;
  3712. .local v5, bis:Ljava/io/BufferedInputStream;
  3713. :try_start_4e
  3714. invoke-virtual {v9}, Ljava/net/URLConnection;->getContentLength()I
  3715. move-result v13
  3716. .line 341
  3717. .local v13, length:I
  3718. new-instance v14, Lcom/google/android/music/utils/AlbumArtUtils$ExtractableByteArrayOutputStream;
  3719. const/4 v15, -0x1
  3720. if-ne v13, v15, :cond_59
  3721. const/16 v13, 0x2800
  3722. .end local v13 #length:I
  3723. :cond_59
  3724. invoke-direct {v14, v13}, Lcom/google/android/music/utils/AlbumArtUtils$ExtractableByteArrayOutputStream;-><init>(I)V
  3725. .line 343
  3726. .local v14, outputStream:Lcom/google/android/music/utils/AlbumArtUtils$ExtractableByteArrayOutputStream;
  3727. const/16 v15, 0x2800
  3728. new-array v7, v15, [B
  3729. .line 346
  3730. .local v7, buffer:[B
  3731. :goto_60
  3732. invoke-virtual {v12, v7}, Ljava/io/InputStream;->read([B)I
  3733. move-result v8
  3734. .local v8, bytesRead:I
  3735. const/4 v15, -0x1
  3736. if-eq v8, v15, :cond_7f
  3737. .line 347
  3738. const/4 v15, 0x0
  3739. invoke-virtual {v14, v7, v15, v8}, Lcom/google/android/music/utils/AlbumArtUtils$ExtractableByteArrayOutputStream;->write([BII)V
  3740. :try_end_6b
  3741. .catchall {:try_start_4e .. :try_end_6b} :catchall_108
  3742. .catch Ljava/io/IOException; {:try_start_4e .. :try_end_6b} :catch_6c
  3743. goto :goto_60
  3744. .line 350
  3745. .end local v7 #buffer:[B
  3746. .end local v8 #bytesRead:I
  3747. .end local v14 #outputStream:Lcom/google/android/music/utils/AlbumArtUtils$ExtractableByteArrayOutputStream;
  3748. :catch_6c
  3749. move-exception v11
  3750. move-object v4, v5
  3751. .line 351
  3752. .end local v5 #bis:Ljava/io/BufferedInputStream;
  3753. .end local v9 #conn:Ljava/net/URLConnection;
  3754. .restart local v4 #bis:Ljava/io/BufferedInputStream;
  3755. .local v11, e:Ljava/io/IOException;
  3756. :goto_6e
  3757. :try_start_6e
  3758. const-string v15, "AlbumArtUtils"
  3759. const-string v16, "Exception: "
  3760. move-object/from16 v0, v16
  3761. invoke-static {v15, v0, v11}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
  3762. :try_end_77
  3763. .catchall {:try_start_6e .. :try_end_77} :catchall_100
  3764. .line 352
  3765. const/4 v6, 0x0
  3766. .line 354
  3767. invoke-static {v4}, Lcom/google/common/io/Closeables;->closeQuietly(Ljava/io/Closeable;)V
  3768. .line 355
  3769. invoke-static {v12}, Lcom/google/common/io/Closeables;->closeQuietly(Ljava/io/Closeable;)V
  3770. goto :goto_2f
  3771. .line 349
  3772. .end local v4 #bis:Ljava/io/BufferedInputStream;
  3773. .end local v11 #e:Ljava/io/IOException;
  3774. .restart local v5 #bis:Ljava/io/BufferedInputStream;
  3775. .restart local v7 #buffer:[B
  3776. .restart local v8 #bytesRead:I
  3777. .restart local v9 #conn:Ljava/net/URLConnection;
  3778. .restart local v14 #outputStream:Lcom/google/android/music/utils/AlbumArtUtils$ExtractableByteArrayOutputStream;
  3779. :cond_7f
  3780. :try_start_7f
  3781. invoke-virtual {v14}, Lcom/google/android/music/utils/AlbumArtUtils$ExtractableByteArrayOutputStream;->toInputStream()Ljava/io/ByteArrayInputStream;
  3782. :try_end_82
  3783. .catchall {:try_start_7f .. :try_end_82} :catchall_108
  3784. .catch Ljava/io/IOException; {:try_start_7f .. :try_end_82} :catch_6c
  3785. move-result-object v10
  3786. .line 354
  3787. invoke-static {v5}, Lcom/google/common/io/Closeables;->closeQuietly(Ljava/io/Closeable;)V
  3788. .line 355
  3789. invoke-static {v12}, Lcom/google/common/io/Closeables;->closeQuietly(Ljava/io/Closeable;)V
  3790. .line 359
  3791. sget-object v15, Lcom/google/android/music/utils/AlbumArtUtils;->sExternalBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  3792. const/16 v16, 0x1
  3793. move/from16 v0, v16
  3794. iput-boolean v0, v15, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
  3795. .line 360
  3796. const/4 v15, 0x0
  3797. sget-object v16, Lcom/google/android/music/utils/AlbumArtUtils;->sExternalBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  3798. move-object/from16 v0, v16
  3799. invoke-static {v10, v15, v0}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
  3800. .line 361
  3801. sget-object v15, Lcom/google/android/music/utils/AlbumArtUtils;->sExternalBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  3802. const/16 v16, 0x0
  3803. move/from16 v0, v16
  3804. iput-boolean v0, v15, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
  3805. .line 362
  3806. invoke-virtual {v10}, Ljava/io/ByteArrayInputStream;->reset()V
  3807. .line 363
  3808. sget-object v15, Lcom/google/android/music/utils/AlbumArtUtils;->sExternalBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  3809. const/16 v16, 0x1
  3810. sget-object v17, Lcom/google/android/music/utils/AlbumArtUtils;->sExternalBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  3811. move-object/from16 v0, v17
  3812. iget v0, v0, Landroid/graphics/BitmapFactory$Options;->outWidth:I
  3813. move/from16 v17, v0
  3814. div-int v17, v17, p1
  3815. sget-object v18, Lcom/google/android/music/utils/AlbumArtUtils;->sExternalBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  3816. move-object/from16 v0, v18
  3817. iget v0, v0, Landroid/graphics/BitmapFactory$Options;->outHeight:I
  3818. move/from16 v18, v0
  3819. div-int v18, v18, p2
  3820. invoke-static/range {v17 .. v18}, Ljava/lang/Math;->min(II)I
  3821. move-result v17
  3822. invoke-static/range {v16 .. v17}, Ljava/lang/Math;->max(II)I
  3823. move-result v16
  3824. move/from16 v0, v16
  3825. iput v0, v15, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
  3826. .line 366
  3827. const/4 v15, 0x0
  3828. sget-object v16, Lcom/google/android/music/utils/AlbumArtUtils;->sExternalBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  3829. move-object/from16 v0, v16
  3830. invoke-static {v10, v15, v0}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
  3831. move-result-object v6
  3832. .line 367
  3833. .local v6, bm:Landroid/graphics/Bitmap;
  3834. invoke-virtual {v10}, Ljava/io/ByteArrayInputStream;->reset()V
  3835. .line 369
  3836. sget-boolean v15, Lcom/google/android/music/utils/AlbumArtUtils;->LOGV:Z
  3837. if-eqz v15, :cond_f2
  3838. .line 370
  3839. const-string v15, "AlbumArtUtils"
  3840. new-instance v16, Ljava/lang/StringBuilder;
  3841. invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
  3842. const-string v17, "resolveArtworkFromUrl: Pulled bitmap: "
  3843. invoke-virtual/range {v16 .. v17}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  3844. move-result-object v16
  3845. move-object/from16 v0, v16
  3846. invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
  3847. move-result-object v16
  3848. invoke-virtual/range {v16 .. v16}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  3849. move-result-object v16
  3850. invoke-static/range {v15 .. v16}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
  3851. .line 373
  3852. :cond_f2
  3853. if-eqz v6, :cond_2f
  3854. .line 374
  3855. move/from16 v0, p1
  3856. move/from16 v1, p2
  3857. move/from16 v2, p3
  3858. invoke-static {v6, v0, v1, v2}, Lcom/google/android/music/utils/AlbumArtUtils;->resizeHelper(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
  3859. move-result-object v6
  3860. goto/16 :goto_2f
  3861. .line 354
  3862. .end local v5 #bis:Ljava/io/BufferedInputStream;
  3863. .end local v6 #bm:Landroid/graphics/Bitmap;
  3864. .end local v7 #buffer:[B
  3865. .end local v8 #bytesRead:I
  3866. .end local v9 #conn:Ljava/net/URLConnection;
  3867. .end local v14 #outputStream:Lcom/google/android/music/utils/AlbumArtUtils$ExtractableByteArrayOutputStream;
  3868. .restart local v4 #bis:Ljava/io/BufferedInputStream;
  3869. :catchall_100
  3870. move-exception v15
  3871. :goto_101
  3872. invoke-static {v4}, Lcom/google/common/io/Closeables;->closeQuietly(Ljava/io/Closeable;)V
  3873. .line 355
  3874. invoke-static {v12}, Lcom/google/common/io/Closeables;->closeQuietly(Ljava/io/Closeable;)V
  3875. throw v15
  3876. .line 354
  3877. .end local v4 #bis:Ljava/io/BufferedInputStream;
  3878. .restart local v5 #bis:Ljava/io/BufferedInputStream;
  3879. .restart local v9 #conn:Ljava/net/URLConnection;
  3880. :catchall_108
  3881. move-exception v15
  3882. move-object v4, v5
  3883. .end local v5 #bis:Ljava/io/BufferedInputStream;
  3884. .restart local v4 #bis:Ljava/io/BufferedInputStream;
  3885. goto :goto_101
  3886. .line 350
  3887. .end local v9 #conn:Ljava/net/URLConnection;
  3888. :catch_10b
  3889. move-exception v11
  3890. goto/16 :goto_6e
  3891. .end method
  3892. .method private static resolveArtworkRaw(Landroid/content/Context;JII[I)Landroid/graphics/Bitmap;
  3893. .registers 16
  3894. .parameter "context"
  3895. .parameter "album_id"
  3896. .parameter "w"
  3897. .parameter "h"
  3898. .parameter "outOriginalBounds"
  3899. .prologue
  3900. const/4 v7, 0x0
  3901. const/4 v0, 0x0
  3902. const/4 v6, 0x1
  3903. .line 813
  3904. const/4 v2, 0x0
  3905. .line 815
  3906. .local v2, fd:Landroid/os/ParcelFileDescriptor;
  3907. :try_start_4
  3908. invoke-static {p0, p1, p2, p3, p4}, Lcom/google/android/music/store/MusicContent$AlbumArt;->openFileDescriptor(Landroid/content/Context;JII)Landroid/os/ParcelFileDescriptor;
  3909. :try_end_7
  3910. .catchall {:try_start_4 .. :try_end_7} :catchall_92
  3911. .catch Ljava/lang/OutOfMemoryError; {:try_start_4 .. :try_end_7} :catch_60
  3912. .catch Ljava/io/FileNotFoundException; {:try_start_4 .. :try_end_7} :catch_88
  3913. move-result-object v2
  3914. .line 816
  3915. if-nez v2, :cond_10
  3916. .line 859
  3917. if-eqz v2, :cond_f
  3918. .line 860
  3919. :try_start_c
  3920. invoke-virtual {v2}, Landroid/os/ParcelFileDescriptor;->close()V
  3921. :try_end_f
  3922. .catch Ljava/io/IOException; {:try_start_c .. :try_end_f} :catch_99
  3923. .line 864
  3924. :cond_f
  3925. :goto_f
  3926. return-object v0
  3927. .line 819
  3928. :cond_10
  3929. const/4 v5, 0x1
  3930. .line 820
  3931. .local v5, sampleSize:I
  3932. if-lez p3, :cond_56
  3933. if-lez p4, :cond_56
  3934. .line 822
  3935. .local v6, sizeGiven:Z
  3936. :goto_15
  3937. if-eqz v6, :cond_58
  3938. .line 826
  3939. :try_start_17
  3940. sget-object v7, Lcom/google/android/music/utils/AlbumArtUtils;->sBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  3941. const/4 v8, 0x1
  3942. iput-boolean v8, v7, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
  3943. .line 827
  3944. sget-object v7, Lcom/google/android/music/utils/AlbumArtUtils;->sBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  3945. const/4 v8, 0x1
  3946. iput v8, v7, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
  3947. .line 828
  3948. invoke-virtual {v2}, Landroid/os/ParcelFileDescriptor;->getFileDescriptor()Ljava/io/FileDescriptor;
  3949. move-result-object v7
  3950. const/4 v8, 0x0
  3951. sget-object v9, Lcom/google/android/music/utils/AlbumArtUtils;->sBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  3952. invoke-static {v7, v8, v9}, Landroid/graphics/BitmapFactory;->decodeFileDescriptor(Ljava/io/FileDescriptor;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
  3953. .line 832
  3954. invoke-static {p0, p1, p2, p3, p4}, Lcom/google/android/music/store/MusicContent$AlbumArt;->openFileDescriptor(Landroid/content/Context;JII)Landroid/os/ParcelFileDescriptor;
  3955. move-result-object v2
  3956. .line 833
  3957. if-eqz p5, :cond_3f
  3958. .line 834
  3959. const/4 v7, 0x0
  3960. sget-object v8, Lcom/google/android/music/utils/AlbumArtUtils;->sBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  3961. iget v8, v8, Landroid/graphics/BitmapFactory$Options;->outWidth:I
  3962. aput v8, p5, v7
  3963. .line 835
  3964. const/4 v7, 0x1
  3965. sget-object v8, Lcom/google/android/music/utils/AlbumArtUtils;->sBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  3966. iget v8, v8, Landroid/graphics/BitmapFactory$Options;->outHeight:I
  3967. aput v8, p5, v7
  3968. .line 837
  3969. :cond_3f
  3970. sget-object v7, Lcom/google/android/music/utils/AlbumArtUtils;->sBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  3971. iget v7, v7, Landroid/graphics/BitmapFactory$Options;->outWidth:I
  3972. shr-int/lit8 v4, v7, 0x1
  3973. .line 838
  3974. .local v4, nextWidth:I
  3975. sget-object v7, Lcom/google/android/music/utils/AlbumArtUtils;->sBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  3976. iget v7, v7, Landroid/graphics/BitmapFactory$Options;->outHeight:I
  3977. shr-int/lit8 v3, v7, 0x1
  3978. .line 839
  3979. .local v3, nextHeight:I
  3980. :goto_4b
  3981. if-le v4, p3, :cond_6c
  3982. if-le v3, p4, :cond_6c
  3983. .line 840
  3984. shl-int/lit8 v5, v5, 0x1
  3985. .line 841
  3986. shr-int/lit8 v4, v4, 0x1
  3987. .line 842
  3988. shr-int/lit8 v3, v3, 0x1
  3989. goto :goto_4b
  3990. .end local v3 #nextHeight:I
  3991. .end local v4 #nextWidth:I
  3992. .end local v6 #sizeGiven:Z
  3993. :cond_56
  3994. move v6, v7
  3995. .line 820
  3996. goto :goto_15
  3997. .line 845
  3998. .restart local v6 #sizeGiven:Z
  3999. :cond_58
  4000. new-instance v7, Ljava/lang/IllegalArgumentException;
  4001. const-string v8, "must specify target height and width"
  4002. invoke-direct {v7, v8}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
  4003. throw v7
  4004. :try_end_60
  4005. .catchall {:try_start_17 .. :try_end_60} :catchall_92
  4006. .catch Ljava/lang/OutOfMemoryError; {:try_start_17 .. :try_end_60} :catch_60
  4007. .catch Ljava/io/FileNotFoundException; {:try_start_17 .. :try_end_60} :catch_88
  4008. .line 854
  4009. .end local v5 #sampleSize:I
  4010. .end local v6 #sizeGiven:Z
  4011. :catch_60
  4012. move-exception v1
  4013. .line 855
  4014. .local v1, e:Ljava/lang/OutOfMemoryError;
  4015. :try_start_61
  4016. invoke-static {v1, p3, p4}, Lcom/google/android/music/utils/AlbumArtUtils;->reportAndRethrow(Ljava/lang/OutOfMemoryError;II)V
  4017. :try_end_64
  4018. .catchall {:try_start_61 .. :try_end_64} :catchall_92
  4019. .line 859
  4020. if-eqz v2, :cond_f
  4021. .line 860
  4022. :try_start_66
  4023. invoke-virtual {v2}, Landroid/os/ParcelFileDescriptor;->close()V
  4024. :try_end_69
  4025. .catch Ljava/io/IOException; {:try_start_66 .. :try_end_69} :catch_6a
  4026. goto :goto_f
  4027. .line 861
  4028. :catch_6a
  4029. move-exception v7
  4030. goto :goto_f
  4031. .line 848
  4032. .end local v1 #e:Ljava/lang/OutOfMemoryError;
  4033. .restart local v3 #nextHeight:I
  4034. .restart local v4 #nextWidth:I
  4035. .restart local v5 #sampleSize:I
  4036. .restart local v6 #sizeGiven:Z
  4037. :cond_6c
  4038. :try_start_6c
  4039. sget-object v7, Lcom/google/android/music/utils/AlbumArtUtils;->sBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  4040. iput v5, v7, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
  4041. .line 849
  4042. sget-object v7, Lcom/google/android/music/utils/AlbumArtUtils;->sBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  4043. const/4 v8, 0x0
  4044. iput-boolean v8, v7, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
  4045. .line 850
  4046. invoke-virtual {v2}, Landroid/os/ParcelFileDescriptor;->getFileDescriptor()Ljava/io/FileDescriptor;
  4047. move-result-object v7
  4048. const/4 v8, 0x0
  4049. sget-object v9, Lcom/google/android/music/utils/AlbumArtUtils;->sBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  4050. invoke-static {v7, v8, v9}, Landroid/graphics/BitmapFactory;->decodeFileDescriptor(Ljava/io/FileDescriptor;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
  4051. :try_end_7f
  4052. .catchall {:try_start_6c .. :try_end_7f} :catchall_92
  4053. .catch Ljava/lang/OutOfMemoryError; {:try_start_6c .. :try_end_7f} :catch_60
  4054. .catch Ljava/io/FileNotFoundException; {:try_start_6c .. :try_end_7f} :catch_88
  4055. move-result-object v0
  4056. .line 859
  4057. .local v0, b:Landroid/graphics/Bitmap;
  4058. if-eqz v2, :cond_f
  4059. .line 860
  4060. :try_start_82
  4061. invoke-virtual {v2}, Landroid/os/ParcelFileDescriptor;->close()V
  4062. :try_end_85
  4063. .catch Ljava/io/IOException; {:try_start_82 .. :try_end_85} :catch_86
  4064. goto :goto_f
  4065. .line 861
  4066. :catch_86
  4067. move-exception v7
  4068. goto :goto_f
  4069. .line 856
  4070. .end local v0 #b:Landroid/graphics/Bitmap;
  4071. .end local v3 #nextHeight:I
  4072. .end local v4 #nextWidth:I
  4073. .end local v5 #sampleSize:I
  4074. .end local v6 #sizeGiven:Z
  4075. :catch_88
  4076. move-exception v7
  4077. .line 859
  4078. if-eqz v2, :cond_f
  4079. .line 860
  4080. :try_start_8b
  4081. invoke-virtual {v2}, Landroid/os/ParcelFileDescriptor;->close()V
  4082. :try_end_8e
  4083. .catch Ljava/io/IOException; {:try_start_8b .. :try_end_8e} :catch_8f
  4084. goto :goto_f
  4085. .line 861
  4086. :catch_8f
  4087. move-exception v7
  4088. goto/16 :goto_f
  4089. .line 858
  4090. :catchall_92
  4091. move-exception v7
  4092. .line 859
  4093. if-eqz v2, :cond_98
  4094. .line 860
  4095. :try_start_95
  4096. invoke-virtual {v2}, Landroid/os/ParcelFileDescriptor;->close()V
  4097. :try_end_98
  4098. .catch Ljava/io/IOException; {:try_start_95 .. :try_end_98} :catch_9c
  4099. .line 862
  4100. :cond_98
  4101. :goto_98
  4102. throw v7
  4103. .line 861
  4104. :catch_99
  4105. move-exception v7
  4106. goto/16 :goto_f
  4107. :catch_9c
  4108. move-exception v8
  4109. goto :goto_98
  4110. .end method
  4111. .method public static scaleToFit(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;
  4112. .registers 7
  4113. .parameter "bm"
  4114. .parameter "w"
  4115. .parameter "h"
  4116. .prologue
  4117. const/4 v3, 0x1
  4118. .line 1632
  4119. if-lez p1, :cond_38
  4120. invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
  4121. move-result v1
  4122. if-ne v1, p1, :cond_f
  4123. invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
  4124. move-result v1
  4125. if-eq v1, p2, :cond_38
  4126. .line 1634
  4127. :cond_f
  4128. :goto_f
  4129. invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
  4130. move-result v1
  4131. mul-int/lit8 v2, p1, 0x2
  4132. if-le v1, v2, :cond_2e
  4133. .line 1635
  4134. invoke-virtual {p0}, Landroid/graphics/Bitmap;->getWidth()I
  4135. move-result v1
  4136. div-int/lit8 v1, v1, 0x2
  4137. invoke-virtual {p0}, Landroid/graphics/Bitmap;->getHeight()I
  4138. move-result v2
  4139. div-int/lit8 v2, v2, 0x2
  4140. invoke-static {p0, v1, v2, v3}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
  4141. move-result-object v0
  4142. .line 1637
  4143. .local v0, tmp:Landroid/graphics/Bitmap;
  4144. if-eq v0, p0, :cond_2c
  4145. .line 1638
  4146. invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
  4147. .line 1640
  4148. :cond_2c
  4149. move-object p0, v0
  4150. .line 1641
  4151. goto :goto_f
  4152. .line 1642
  4153. .end local v0 #tmp:Landroid/graphics/Bitmap;
  4154. :cond_2e
  4155. invoke-static {p0, p1, p2, v3}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;
  4156. move-result-object v0
  4157. .line 1643
  4158. .restart local v0 #tmp:Landroid/graphics/Bitmap;
  4159. if-eq v0, p0, :cond_37
  4160. .line 1644
  4161. invoke-virtual {p0}, Landroid/graphics/Bitmap;->recycle()V
  4162. .line 1646
  4163. :cond_37
  4164. move-object p0, v0
  4165. .line 1648
  4166. .end local v0 #tmp:Landroid/graphics/Bitmap;
  4167. :cond_38
  4168. return-object p0
  4169. .end method
  4170. .method public static setPreferredConfig(Landroid/graphics/Bitmap$Config;)V
  4171. .registers 2
  4172. .parameter "config"
  4173. .prologue
  4174. .line 211
  4175. sget-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  4176. iput-object p0, v0, Landroid/graphics/BitmapFactory$Options;->inPreferredConfig:Landroid/graphics/Bitmap$Config;
  4177. .line 212
  4178. sget-object v0, Lcom/google/android/music/utils/AlbumArtUtils;->sExternalBitmapOptionsCache:Landroid/graphics/BitmapFactory$Options;
  4179. iput-object p0, v0, Landroid/graphics/BitmapFactory$Options;->inPreferredConfig:Landroid/graphics/Bitmap$Config;
  4180. .line 213
  4181. return-void
  4182. .end method
  4183. .method private static shouldSkip(IIII)Z
  4184. .registers 6
  4185. .parameter "i"
  4186. .parameter "j"
  4187. .parameter "wc"
  4188. .parameter "skipMask"
  4189. .prologue
  4190. const/4 v0, 0x1
  4191. .line 1557
  4192. mul-int v1, p1, p2
  4193. add-int/2addr v1, p0
  4194. shl-int v1, v0, v1
  4195. and-int/2addr v1, p3
  4196. if-eqz v1, :cond_a
  4197. :goto_9
  4198. return v0
  4199. :cond_a
  4200. const/4 v0, 0x0
  4201. goto :goto_9
  4202. .end method
  4203. .method private static sortedInsert(Ljava/util/ArrayList;Landroid/util/Pair;)V
  4204. .registers 5
  4205. .parameter
  4206. .parameter
  4207. .annotation system Ldalvik/annotation/Signature;
  4208. value = {
  4209. "(",
  4210. "Ljava/util/ArrayList",
  4211. "<",
  4212. "Landroid/util/Pair",
  4213. "<",
  4214. "Ljava/lang/String;",
  4215. "Ljava/lang/Integer;",
  4216. ">;>;",
  4217. "Landroid/util/Pair",
  4218. "<",
  4219. "Ljava/lang/String;",
  4220. "Ljava/lang/Integer;",
  4221. ">;)V"
  4222. }
  4223. .end annotation
  4224. .prologue
  4225. .line 685
  4226. .local p0, sortedCacheKeys:Ljava/util/ArrayList;,"Ljava/util/ArrayList<Landroid/util/Pair<Ljava/lang/String;Ljava/lang/Integer;>;>;"
  4227. .local p1, insertMe:Landroid/util/Pair;,"Landroid/util/Pair<Ljava/lang/String;Ljava/lang/Integer;>;"
  4228. const/4 v0, 0x0
  4229. .line 686
  4230. .local v0, i:I
  4231. :goto_1
  4232. invoke-virtual {p0}, Ljava/util/ArrayList;->size()I
  4233. move-result v1
  4234. if-ge v0, v1, :cond_22
  4235. invoke-virtual {p0, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
  4236. move-result-object v1
  4237. check-cast v1, Landroid/util/Pair;
  4238. iget-object v1, v1, Landroid/util/Pair;->second:Ljava/lang/Object;
  4239. check-cast v1, Ljava/lang/Integer;
  4240. invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
  4241. move-result v2
  4242. iget-object v1, p1, Landroid/util/Pair;->second:Ljava/lang/Object;
  4243. check-cast v1, Ljava/lang/Integer;
  4244. invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
  4245. move-result v1
  4246. if-ge v2, v1, :cond_22
  4247. .line 687
  4248. add-int/lit8 v0, v0, 0x1
  4249. goto :goto_1
  4250. .line 689
  4251. :cond_22
  4252. invoke-virtual {p0, v0, p1}, Ljava/util/ArrayList;->add(ILjava/lang/Object;)V
  4253. .line 690
  4254. return-void
  4255. .end method
  4256. .method private static trackCacheUsage(Ljava/lang/String;Z)V
  4257. .registers 6
  4258. .parameter "sizeKey"
  4259. .parameter "cacheHit"
  4260. .prologue
  4261. .line 615
  4262. sget-object v2, Lcom/google/android/music/utils/AlbumArtUtils;->sSizeCache:Ljava/util/HashMap;
  4263. monitor-enter v2
  4264. .line 616
  4265. :try_start_3
  4266. sget v1, Lcom/google/android/music/utils/AlbumArtUtils;->sTotalSizeCacheRequests:I
  4267. add-int/lit8 v1, v1, 0x1
  4268. sput v1, Lcom/google/android/music/utils/AlbumArtUtils;->sTotalSizeCacheRequests:I
  4269. .line 617
  4270. sget-object v1, Lcom/google/android/music/utils/AlbumArtUtils;->sSizeCacheRequests:Ljava/util/HashMap;
  4271. invoke-virtual {v1, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
  4272. move-result-object v0
  4273. check-cast v0, Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;
  4274. .line 619
  4275. .local v0, cacheRequest:Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;
  4276. if-nez v0, :cond_1e
  4277. .line 620
  4278. new-instance v0, Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;
  4279. .end local v0 #cacheRequest:Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;
  4280. const/4 v1, 0x0
  4281. invoke-direct {v0, v1}, Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;-><init>(Lcom/google/android/music/utils/AlbumArtUtils$1;)V
  4282. .line 621
  4283. .restart local v0 #cacheRequest:Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;
  4284. sget-object v1, Lcom/google/android/music/utils/AlbumArtUtils;->sSizeCacheRequests:Ljava/util/HashMap;
  4285. invoke-virtual {v1, p0, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
  4286. .line 623
  4287. :cond_1e
  4288. invoke-static {v0}, Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;->access$208(Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;)I
  4289. .line 624
  4290. if-eqz p1, :cond_26
  4291. .line 625
  4292. invoke-static {v0}, Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;->access$308(Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;)I
  4293. .line 628
  4294. :cond_26
  4295. sget v1, Lcom/google/android/music/utils/AlbumArtUtils;->sTotalSizeCacheRequests:I
  4296. sget v3, Lcom/google/android/music/utils/AlbumArtUtils;->CACHE_REQUESTS_TO_RESIZE:I
  4297. if-le v1, v3, :cond_34
  4298. .line 629
  4299. new-instance v1, Lcom/google/android/music/utils/AlbumArtUtils$2;
  4300. invoke-direct {v1}, Lcom/google/android/music/utils/AlbumArtUtils$2;-><init>()V
  4301. invoke-static {v1}, Lcom/google/android/music/MusicUtils;->runAsync(Ljava/lang/Runnable;)V
  4302. .line 635
  4303. :cond_34
  4304. monitor-exit v2
  4305. .line 636
  4306. return-void
  4307. .line 635
  4308. .end local v0 #cacheRequest:Lcom/google/android/music/utils/AlbumArtUtils$CacheRequest;
  4309. :catchall_36
  4310. move-exception v1
  4311. monitor-exit v2
  4312. :try_end_38
  4313. .catchall {:try_start_3 .. :try_end_38} :catchall_36
  4314. throw v1
  4315. .end method