PageRenderTime 59ms CodeModel.GetById 27ms 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

Large files files are truncated, but you can click here to view the full 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},

Large files files are truncated, but you can click here to view the full file