TextViewCompatDonut.smali 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337
  1. .class Landroid/support/v4/widget/TextViewCompatDonut;
  2. .super Ljava/lang/Object;
  3. .source "TextViewCompatDonut.java"
  4. # static fields
  5. .field private static final LINES:I = 0x1
  6. .field private static final LOG_TAG:Ljava/lang/String; = "TextViewCompatDonut"
  7. .field private static sMaxModeField:Ljava/lang/reflect/Field;
  8. .field private static sMaxModeFieldFetched:Z
  9. .field private static sMaximumField:Ljava/lang/reflect/Field;
  10. .field private static sMaximumFieldFetched:Z
  11. .field private static sMinModeField:Ljava/lang/reflect/Field;
  12. .field private static sMinModeFieldFetched:Z
  13. .field private static sMinimumField:Ljava/lang/reflect/Field;
  14. .field private static sMinimumFieldFetched:Z
  15. # direct methods
  16. .method constructor <init>()V
  17. .locals 0
  18. .prologue
  19. .line 24
  20. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  21. return-void
  22. .end method
  23. .method static getMaxLines(Landroid/widget/TextView;)I
  24. .locals 2
  25. .param p0, "textView" # Landroid/widget/TextView;
  26. .prologue
  27. const/4 v1, 0x1
  28. .line 40
  29. sget-boolean v0, Landroid/support/v4/widget/TextViewCompatDonut;->sMaxModeFieldFetched:Z
  30. if-nez v0, :cond_0
  31. .line 41
  32. const-string v0, "mMaxMode"
  33. invoke-static {v0}, Landroid/support/v4/widget/TextViewCompatDonut;->retrieveField(Ljava/lang/String;)Ljava/lang/reflect/Field;
  34. move-result-object v0
  35. sput-object v0, Landroid/support/v4/widget/TextViewCompatDonut;->sMaxModeField:Ljava/lang/reflect/Field;
  36. .line 42
  37. sput-boolean v1, Landroid/support/v4/widget/TextViewCompatDonut;->sMaxModeFieldFetched:Z
  38. .line 44
  39. :cond_0
  40. sget-object v0, Landroid/support/v4/widget/TextViewCompatDonut;->sMaxModeField:Ljava/lang/reflect/Field;
  41. if-eqz v0, :cond_2
  42. sget-object v0, Landroid/support/v4/widget/TextViewCompatDonut;->sMaxModeField:Ljava/lang/reflect/Field;
  43. invoke-static {v0, p0}, Landroid/support/v4/widget/TextViewCompatDonut;->retrieveIntFromField(Ljava/lang/reflect/Field;Landroid/widget/TextView;)I
  44. move-result v0
  45. if-ne v0, v1, :cond_2
  46. .line 46
  47. sget-boolean v0, Landroid/support/v4/widget/TextViewCompatDonut;->sMaximumFieldFetched:Z
  48. if-nez v0, :cond_1
  49. .line 47
  50. const-string v0, "mMaximum"
  51. invoke-static {v0}, Landroid/support/v4/widget/TextViewCompatDonut;->retrieveField(Ljava/lang/String;)Ljava/lang/reflect/Field;
  52. move-result-object v0
  53. sput-object v0, Landroid/support/v4/widget/TextViewCompatDonut;->sMaximumField:Ljava/lang/reflect/Field;
  54. .line 48
  55. sput-boolean v1, Landroid/support/v4/widget/TextViewCompatDonut;->sMaximumFieldFetched:Z
  56. .line 50
  57. :cond_1
  58. sget-object v0, Landroid/support/v4/widget/TextViewCompatDonut;->sMaximumField:Ljava/lang/reflect/Field;
  59. if-eqz v0, :cond_2
  60. .line 51
  61. sget-object v0, Landroid/support/v4/widget/TextViewCompatDonut;->sMaximumField:Ljava/lang/reflect/Field;
  62. invoke-static {v0, p0}, Landroid/support/v4/widget/TextViewCompatDonut;->retrieveIntFromField(Ljava/lang/reflect/Field;Landroid/widget/TextView;)I
  63. move-result v0
  64. .line 54
  65. :goto_0
  66. return v0
  67. :cond_2
  68. const/4 v0, -0x1
  69. goto :goto_0
  70. .end method
  71. .method static getMinLines(Landroid/widget/TextView;)I
  72. .locals 2
  73. .param p0, "textView" # Landroid/widget/TextView;
  74. .prologue
  75. const/4 v1, 0x1
  76. .line 58
  77. sget-boolean v0, Landroid/support/v4/widget/TextViewCompatDonut;->sMinModeFieldFetched:Z
  78. if-nez v0, :cond_0
  79. .line 59
  80. const-string v0, "mMinMode"
  81. invoke-static {v0}, Landroid/support/v4/widget/TextViewCompatDonut;->retrieveField(Ljava/lang/String;)Ljava/lang/reflect/Field;
  82. move-result-object v0
  83. sput-object v0, Landroid/support/v4/widget/TextViewCompatDonut;->sMinModeField:Ljava/lang/reflect/Field;
  84. .line 60
  85. sput-boolean v1, Landroid/support/v4/widget/TextViewCompatDonut;->sMinModeFieldFetched:Z
  86. .line 62
  87. :cond_0
  88. sget-object v0, Landroid/support/v4/widget/TextViewCompatDonut;->sMinModeField:Ljava/lang/reflect/Field;
  89. if-eqz v0, :cond_2
  90. sget-object v0, Landroid/support/v4/widget/TextViewCompatDonut;->sMinModeField:Ljava/lang/reflect/Field;
  91. invoke-static {v0, p0}, Landroid/support/v4/widget/TextViewCompatDonut;->retrieveIntFromField(Ljava/lang/reflect/Field;Landroid/widget/TextView;)I
  92. move-result v0
  93. if-ne v0, v1, :cond_2
  94. .line 64
  95. sget-boolean v0, Landroid/support/v4/widget/TextViewCompatDonut;->sMinimumFieldFetched:Z
  96. if-nez v0, :cond_1
  97. .line 65
  98. const-string v0, "mMinimum"
  99. invoke-static {v0}, Landroid/support/v4/widget/TextViewCompatDonut;->retrieveField(Ljava/lang/String;)Ljava/lang/reflect/Field;
  100. move-result-object v0
  101. sput-object v0, Landroid/support/v4/widget/TextViewCompatDonut;->sMinimumField:Ljava/lang/reflect/Field;
  102. .line 66
  103. sput-boolean v1, Landroid/support/v4/widget/TextViewCompatDonut;->sMinimumFieldFetched:Z
  104. .line 68
  105. :cond_1
  106. sget-object v0, Landroid/support/v4/widget/TextViewCompatDonut;->sMinimumField:Ljava/lang/reflect/Field;
  107. if-eqz v0, :cond_2
  108. .line 69
  109. sget-object v0, Landroid/support/v4/widget/TextViewCompatDonut;->sMinimumField:Ljava/lang/reflect/Field;
  110. invoke-static {v0, p0}, Landroid/support/v4/widget/TextViewCompatDonut;->retrieveIntFromField(Ljava/lang/reflect/Field;Landroid/widget/TextView;)I
  111. move-result v0
  112. .line 72
  113. :goto_0
  114. return v0
  115. :cond_2
  116. const/4 v0, -0x1
  117. goto :goto_0
  118. .end method
  119. .method private static retrieveField(Ljava/lang/String;)Ljava/lang/reflect/Field;
  120. .locals 5
  121. .param p0, "fieldName" # Ljava/lang/String;
  122. .prologue
  123. .line 76
  124. const/4 v1, 0x0
  125. .line 78
  126. .local v1, "field":Ljava/lang/reflect/Field;
  127. :try_start_0
  128. const-class v2, Landroid/widget/TextView;
  129. invoke-virtual {v2, p0}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
  130. move-result-object v1
  131. .line 79
  132. const/4 v2, 0x1
  133. invoke-virtual {v1, v2}, Ljava/lang/reflect/Field;->setAccessible(Z)V
  134. :try_end_0
  135. .catch Ljava/lang/NoSuchFieldException; {:try_start_0 .. :try_end_0} :catch_0
  136. .line 83
  137. :goto_0
  138. return-object v1
  139. .line 80
  140. :catch_0
  141. move-exception v0
  142. .line 81
  143. .local v0, "e":Ljava/lang/NoSuchFieldException;
  144. const-string v2, "TextViewCompatDonut"
  145. new-instance v3, Ljava/lang/StringBuilder;
  146. invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
  147. const-string v4, "Could not retrieve "
  148. invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  149. move-result-object v3
  150. invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  151. move-result-object v3
  152. const-string v4, " field."
  153. invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  154. move-result-object v3
  155. invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  156. move-result-object v3
  157. invoke-static {v2, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
  158. goto :goto_0
  159. .end method
  160. .method private static retrieveIntFromField(Ljava/lang/reflect/Field;Landroid/widget/TextView;)I
  161. .locals 4
  162. .param p0, "field" # Ljava/lang/reflect/Field;
  163. .param p1, "textView" # Landroid/widget/TextView;
  164. .prologue
  165. .line 88
  166. :try_start_0
  167. invoke-virtual {p0, p1}, Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
  168. :try_end_0
  169. .catch Ljava/lang/IllegalAccessException; {:try_start_0 .. :try_end_0} :catch_0
  170. move-result v1
  171. .line 92
  172. :goto_0
  173. return v1
  174. .line 89
  175. :catch_0
  176. move-exception v0
  177. .line 90
  178. .local v0, "e":Ljava/lang/IllegalAccessException;
  179. const-string v1, "TextViewCompatDonut"
  180. new-instance v2, Ljava/lang/StringBuilder;
  181. invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
  182. const-string v3, "Could not retrieve value of "
  183. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  184. move-result-object v2
  185. invoke-virtual {p0}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
  186. move-result-object v3
  187. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  188. move-result-object v2
  189. const-string v3, " field."
  190. invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  191. move-result-object v2
  192. invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  193. move-result-object v2
  194. invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
  195. .line 92
  196. const/4 v1, -0x1
  197. goto :goto_0
  198. .end method
  199. .method static setTextAppearance(Landroid/widget/TextView;I)V
  200. .locals 1
  201. .param p0, "textView" # Landroid/widget/TextView;
  202. .param p1, "resId" # I
  203. .prologue
  204. .line 96
  205. invoke-virtual {p0}, Landroid/widget/TextView;->getContext()Landroid/content/Context;
  206. move-result-object v0
  207. invoke-virtual {p0, v0, p1}, Landroid/widget/TextView;->setTextAppearance(Landroid/content/Context;I)V
  208. .line 97
  209. return-void
  210. .end method