ViewCompatBase.smali 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483
  1. .class Landroid/support/v4/view/ViewCompatBase;
  2. .super Ljava/lang/Object;
  3. .source "ViewCompatBase.java"
  4. # static fields
  5. .field private static final TAG:Ljava/lang/String; = "ViewCompatBase"
  6. .field private static sMinHeightField:Ljava/lang/reflect/Field;
  7. .field private static sMinHeightFieldFetched:Z
  8. .field private static sMinWidthField:Ljava/lang/reflect/Field;
  9. .field private static sMinWidthFieldFetched:Z
  10. # direct methods
  11. .method constructor <init>()V
  12. .locals 0
  13. .prologue
  14. .line 26
  15. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  16. return-void
  17. .end method
  18. .method static getBackgroundTintList(Landroid/view/View;)Landroid/content/res/ColorStateList;
  19. .locals 1
  20. .param p0, "view" # Landroid/view/View;
  21. .prologue
  22. .line 36
  23. instance-of v0, p0, Landroid/support/v4/view/TintableBackgroundView;
  24. if-eqz v0, :cond_0
  25. check-cast p0, Landroid/support/v4/view/TintableBackgroundView;
  26. .end local p0 # "view":Landroid/view/View;
  27. invoke-interface {p0}, Landroid/support/v4/view/TintableBackgroundView;->getSupportBackgroundTintList()Landroid/content/res/ColorStateList;
  28. move-result-object v0
  29. :goto_0
  30. return-object v0
  31. .restart local p0 # "view":Landroid/view/View;
  32. :cond_0
  33. const/4 v0, 0x0
  34. goto :goto_0
  35. .end method
  36. .method static getBackgroundTintMode(Landroid/view/View;)Landroid/graphics/PorterDuff$Mode;
  37. .locals 1
  38. .param p0, "view" # Landroid/view/View;
  39. .prologue
  40. .line 48
  41. instance-of v0, p0, Landroid/support/v4/view/TintableBackgroundView;
  42. if-eqz v0, :cond_0
  43. check-cast p0, Landroid/support/v4/view/TintableBackgroundView;
  44. .end local p0 # "view":Landroid/view/View;
  45. invoke-interface {p0}, Landroid/support/v4/view/TintableBackgroundView;->getSupportBackgroundTintMode()Landroid/graphics/PorterDuff$Mode;
  46. move-result-object v0
  47. :goto_0
  48. return-object v0
  49. .restart local p0 # "view":Landroid/view/View;
  50. :cond_0
  51. const/4 v0, 0x0
  52. goto :goto_0
  53. .end method
  54. .method static getMinimumHeight(Landroid/view/View;)I
  55. .locals 3
  56. .param p0, "view" # Landroid/view/View;
  57. .prologue
  58. const/4 v2, 0x1
  59. .line 87
  60. sget-boolean v0, Landroid/support/v4/view/ViewCompatBase;->sMinHeightFieldFetched:Z
  61. if-nez v0, :cond_0
  62. .line 89
  63. :try_start_0
  64. const-class v0, Landroid/view/View;
  65. const-string v1, "mMinHeight"
  66. invoke-virtual {v0, v1}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
  67. move-result-object v0
  68. sput-object v0, Landroid/support/v4/view/ViewCompatBase;->sMinHeightField:Ljava/lang/reflect/Field;
  69. .line 90
  70. sget-object v0, Landroid/support/v4/view/ViewCompatBase;->sMinHeightField:Ljava/lang/reflect/Field;
  71. const/4 v1, 0x1
  72. invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->setAccessible(Z)V
  73. :try_end_0
  74. .catch Ljava/lang/NoSuchFieldException; {:try_start_0 .. :try_end_0} :catch_1
  75. .line 94
  76. :goto_0
  77. sput-boolean v2, Landroid/support/v4/view/ViewCompatBase;->sMinHeightFieldFetched:Z
  78. .line 97
  79. :cond_0
  80. sget-object v0, Landroid/support/v4/view/ViewCompatBase;->sMinHeightField:Ljava/lang/reflect/Field;
  81. if-eqz v0, :cond_1
  82. .line 99
  83. :try_start_1
  84. sget-object v0, Landroid/support/v4/view/ViewCompatBase;->sMinHeightField:Ljava/lang/reflect/Field;
  85. invoke-virtual {v0, p0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
  86. move-result-object v0
  87. check-cast v0, Ljava/lang/Integer;
  88. invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
  89. :try_end_1
  90. .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0
  91. move-result v0
  92. .line 106
  93. :goto_1
  94. return v0
  95. .line 100
  96. :catch_0
  97. move-exception v0
  98. .line 106
  99. :cond_1
  100. const/4 v0, 0x0
  101. goto :goto_1
  102. .line 91
  103. :catch_1
  104. move-exception v0
  105. goto :goto_0
  106. .end method
  107. .method static getMinimumWidth(Landroid/view/View;)I
  108. .locals 3
  109. .param p0, "view" # Landroid/view/View;
  110. .prologue
  111. const/4 v2, 0x1
  112. .line 64
  113. sget-boolean v0, Landroid/support/v4/view/ViewCompatBase;->sMinWidthFieldFetched:Z
  114. if-nez v0, :cond_0
  115. .line 66
  116. :try_start_0
  117. const-class v0, Landroid/view/View;
  118. const-string v1, "mMinWidth"
  119. invoke-virtual {v0, v1}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
  120. move-result-object v0
  121. sput-object v0, Landroid/support/v4/view/ViewCompatBase;->sMinWidthField:Ljava/lang/reflect/Field;
  122. .line 67
  123. sget-object v0, Landroid/support/v4/view/ViewCompatBase;->sMinWidthField:Ljava/lang/reflect/Field;
  124. const/4 v1, 0x1
  125. invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->setAccessible(Z)V
  126. :try_end_0
  127. .catch Ljava/lang/NoSuchFieldException; {:try_start_0 .. :try_end_0} :catch_1
  128. .line 71
  129. :goto_0
  130. sput-boolean v2, Landroid/support/v4/view/ViewCompatBase;->sMinWidthFieldFetched:Z
  131. .line 74
  132. :cond_0
  133. sget-object v0, Landroid/support/v4/view/ViewCompatBase;->sMinWidthField:Ljava/lang/reflect/Field;
  134. if-eqz v0, :cond_1
  135. .line 76
  136. :try_start_1
  137. sget-object v0, Landroid/support/v4/view/ViewCompatBase;->sMinWidthField:Ljava/lang/reflect/Field;
  138. invoke-virtual {v0, p0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
  139. move-result-object v0
  140. check-cast v0, Ljava/lang/Integer;
  141. invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
  142. :try_end_1
  143. .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_0
  144. move-result v0
  145. .line 83
  146. :goto_1
  147. return v0
  148. .line 77
  149. :catch_0
  150. move-exception v0
  151. .line 83
  152. :cond_1
  153. const/4 v0, 0x0
  154. goto :goto_1
  155. .line 68
  156. :catch_1
  157. move-exception v0
  158. goto :goto_0
  159. .end method
  160. .method static isAttachedToWindow(Landroid/view/View;)Z
  161. .locals 1
  162. .param p0, "view" # Landroid/view/View;
  163. .prologue
  164. .line 110
  165. invoke-virtual {p0}, Landroid/view/View;->getWindowToken()Landroid/os/IBinder;
  166. move-result-object v0
  167. if-eqz v0, :cond_0
  168. const/4 v0, 0x1
  169. :goto_0
  170. return v0
  171. :cond_0
  172. const/4 v0, 0x0
  173. goto :goto_0
  174. .end method
  175. .method static isLaidOut(Landroid/view/View;)Z
  176. .locals 1
  177. .param p0, "view" # Landroid/view/View;
  178. .prologue
  179. .line 60
  180. invoke-virtual {p0}, Landroid/view/View;->getWidth()I
  181. move-result v0
  182. if-lez v0, :cond_0
  183. invoke-virtual {p0}, Landroid/view/View;->getHeight()I
  184. move-result v0
  185. if-lez v0, :cond_0
  186. const/4 v0, 0x1
  187. :goto_0
  188. return v0
  189. :cond_0
  190. const/4 v0, 0x0
  191. goto :goto_0
  192. .end method
  193. .method static offsetLeftAndRight(Landroid/view/View;I)V
  194. .locals 7
  195. .param p0, "view" # Landroid/view/View;
  196. .param p1, "offset" # I
  197. .prologue
  198. .line 134
  199. invoke-virtual {p0}, Landroid/view/View;->getLeft()I
  200. move-result v1
  201. .line 135
  202. .local v1, "currentLeft":I
  203. invoke-virtual {p0, p1}, Landroid/view/View;->offsetLeftAndRight(I)V
  204. .line 137
  205. if-eqz p1, :cond_0
  206. .line 139
  207. invoke-virtual {p0}, Landroid/view/View;->getParent()Landroid/view/ViewParent;
  208. move-result-object v2
  209. .line 140
  210. .local v2, "parent":Landroid/view/ViewParent;
  211. instance-of v3, v2, Landroid/view/View;
  212. if-eqz v3, :cond_1
  213. .line 141
  214. invoke-static {p1}, Ljava/lang/Math;->abs(I)I
  215. move-result v0
  216. .line 142
  217. .local v0, "absOffset":I
  218. check-cast v2, Landroid/view/View;
  219. .end local v2 # "parent":Landroid/view/ViewParent;
  220. sub-int v3, v1, v0
  221. invoke-virtual {p0}, Landroid/view/View;->getTop()I
  222. move-result v4
  223. invoke-virtual {p0}, Landroid/view/View;->getWidth()I
  224. move-result v5
  225. add-int/2addr v5, v1
  226. add-int/2addr v5, v0
  227. invoke-virtual {p0}, Landroid/view/View;->getBottom()I
  228. move-result v6
  229. invoke-virtual {v2, v3, v4, v5, v6}, Landroid/view/View;->invalidate(IIII)V
  230. .line 151
  231. .end local v0 # "absOffset":I
  232. :cond_0
  233. :goto_0
  234. return-void
  235. .line 148
  236. .restart local v2 # "parent":Landroid/view/ViewParent;
  237. :cond_1
  238. invoke-virtual {p0}, Landroid/view/View;->invalidate()V
  239. goto :goto_0
  240. .end method
  241. .method static offsetTopAndBottom(Landroid/view/View;I)V
  242. .locals 7
  243. .param p0, "view" # Landroid/view/View;
  244. .param p1, "offset" # I
  245. .prologue
  246. .line 114
  247. invoke-virtual {p0}, Landroid/view/View;->getTop()I
  248. move-result v1
  249. .line 115
  250. .local v1, "currentTop":I
  251. invoke-virtual {p0, p1}, Landroid/view/View;->offsetTopAndBottom(I)V
  252. .line 117
  253. if-eqz p1, :cond_0
  254. .line 119
  255. invoke-virtual {p0}, Landroid/view/View;->getParent()Landroid/view/ViewParent;
  256. move-result-object v2
  257. .line 120
  258. .local v2, "parent":Landroid/view/ViewParent;
  259. instance-of v3, v2, Landroid/view/View;
  260. if-eqz v3, :cond_1
  261. .line 121
  262. invoke-static {p1}, Ljava/lang/Math;->abs(I)I
  263. move-result v0
  264. .line 122
  265. .local v0, "absOffset":I
  266. check-cast v2, Landroid/view/View;
  267. .end local v2 # "parent":Landroid/view/ViewParent;
  268. invoke-virtual {p0}, Landroid/view/View;->getLeft()I
  269. move-result v3
  270. sub-int v4, v1, v0
  271. invoke-virtual {p0}, Landroid/view/View;->getRight()I
  272. move-result v5
  273. invoke-virtual {p0}, Landroid/view/View;->getHeight()I
  274. move-result v6
  275. add-int/2addr v6, v1
  276. add-int/2addr v6, v0
  277. invoke-virtual {v2, v3, v4, v5, v6}, Landroid/view/View;->invalidate(IIII)V
  278. .line 131
  279. .end local v0 # "absOffset":I
  280. :cond_0
  281. :goto_0
  282. return-void
  283. .line 128
  284. .restart local v2 # "parent":Landroid/view/ViewParent;
  285. :cond_1
  286. invoke-virtual {p0}, Landroid/view/View;->invalidate()V
  287. goto :goto_0
  288. .end method
  289. .method static setBackgroundTintList(Landroid/view/View;Landroid/content/res/ColorStateList;)V
  290. .locals 1
  291. .param p0, "view" # Landroid/view/View;
  292. .param p1, "tintList" # Landroid/content/res/ColorStateList;
  293. .prologue
  294. .line 42
  295. instance-of v0, p0, Landroid/support/v4/view/TintableBackgroundView;
  296. if-eqz v0, :cond_0
  297. .line 43
  298. check-cast p0, Landroid/support/v4/view/TintableBackgroundView;
  299. .end local p0 # "view":Landroid/view/View;
  300. invoke-interface {p0, p1}, Landroid/support/v4/view/TintableBackgroundView;->setSupportBackgroundTintList(Landroid/content/res/ColorStateList;)V
  301. .line 45
  302. :cond_0
  303. return-void
  304. .end method
  305. .method static setBackgroundTintMode(Landroid/view/View;Landroid/graphics/PorterDuff$Mode;)V
  306. .locals 1
  307. .param p0, "view" # Landroid/view/View;
  308. .param p1, "mode" # Landroid/graphics/PorterDuff$Mode;
  309. .prologue
  310. .line 54
  311. instance-of v0, p0, Landroid/support/v4/view/TintableBackgroundView;
  312. if-eqz v0, :cond_0
  313. .line 55
  314. check-cast p0, Landroid/support/v4/view/TintableBackgroundView;
  315. .end local p0 # "view":Landroid/view/View;
  316. invoke-interface {p0, p1}, Landroid/support/v4/view/TintableBackgroundView;->setSupportBackgroundTintMode(Landroid/graphics/PorterDuff$Mode;)V
  317. .line 57
  318. :cond_0
  319. return-void
  320. .end method