FragmentPagerAdapter.smali 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369
  1. .class public abstract Landroid/support/v4/app/FragmentPagerAdapter;
  2. .super Landroid/support/v4/view/PagerAdapter;
  3. .source "FragmentPagerAdapter.java"
  4. # static fields
  5. .field private static final DEBUG:Z = false
  6. .field private static final TAG:Ljava/lang/String; = "FragmentPagerAdapter"
  7. # instance fields
  8. .field private mCurTransaction:Landroid/support/v4/app/FragmentTransaction;
  9. .field private mCurrentPrimaryItem:Landroid/support/v4/app/Fragment;
  10. .field private final mFragmentManager:Landroid/support/v4/app/FragmentManager;
  11. # direct methods
  12. .method public constructor <init>(Landroid/support/v4/app/FragmentManager;)V
  13. .locals 1
  14. .param p1, "fm" # Landroid/support/v4/app/FragmentManager;
  15. .prologue
  16. const/4 v0, 0x0
  17. .line 69
  18. invoke-direct {p0}, Landroid/support/v4/view/PagerAdapter;-><init>()V
  19. .line 66
  20. iput-object v0, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurTransaction:Landroid/support/v4/app/FragmentTransaction;
  21. .line 67
  22. iput-object v0, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurrentPrimaryItem:Landroid/support/v4/app/Fragment;
  23. .line 70
  24. iput-object p1, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mFragmentManager:Landroid/support/v4/app/FragmentManager;
  25. .line 71
  26. return-void
  27. .end method
  28. .method private static makeFragmentName(IJ)Ljava/lang/String;
  29. .locals 2
  30. .param p0, "viewId" # I
  31. .param p1, "id" # J
  32. .prologue
  33. .line 173
  34. new-instance v0, Ljava/lang/StringBuilder;
  35. invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
  36. const-string v1, "android:switcher:"
  37. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  38. move-result-object v0
  39. invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
  40. move-result-object v0
  41. const-string v1, ":"
  42. invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
  43. move-result-object v0
  44. invoke-virtual {v0, p1, p2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
  45. move-result-object v0
  46. invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
  47. move-result-object v0
  48. return-object v0
  49. .end method
  50. # virtual methods
  51. .method public destroyItem(Landroid/view/ViewGroup;ILjava/lang/Object;)V
  52. .locals 1
  53. .param p1, "container" # Landroid/view/ViewGroup;
  54. .param p2, "position" # I
  55. .param p3, "object" # Ljava/lang/Object;
  56. .prologue
  57. .line 112
  58. iget-object v0, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurTransaction:Landroid/support/v4/app/FragmentTransaction;
  59. if-nez v0, :cond_0
  60. .line 113
  61. iget-object v0, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mFragmentManager:Landroid/support/v4/app/FragmentManager;
  62. invoke-virtual {v0}, Landroid/support/v4/app/FragmentManager;->beginTransaction()Landroid/support/v4/app/FragmentTransaction;
  63. move-result-object v0
  64. iput-object v0, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurTransaction:Landroid/support/v4/app/FragmentTransaction;
  65. .line 117
  66. :cond_0
  67. iget-object v0, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurTransaction:Landroid/support/v4/app/FragmentTransaction;
  68. check-cast p3, Landroid/support/v4/app/Fragment;
  69. .end local p3 # "object":Ljava/lang/Object;
  70. invoke-virtual {v0, p3}, Landroid/support/v4/app/FragmentTransaction;->detach(Landroid/support/v4/app/Fragment;)Landroid/support/v4/app/FragmentTransaction;
  71. .line 118
  72. return-void
  73. .end method
  74. .method public finishUpdate(Landroid/view/ViewGroup;)V
  75. .locals 1
  76. .param p1, "container" # Landroid/view/ViewGroup;
  77. .prologue
  78. .line 138
  79. iget-object v0, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurTransaction:Landroid/support/v4/app/FragmentTransaction;
  80. if-eqz v0, :cond_0
  81. .line 139
  82. iget-object v0, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurTransaction:Landroid/support/v4/app/FragmentTransaction;
  83. invoke-virtual {v0}, Landroid/support/v4/app/FragmentTransaction;->commitAllowingStateLoss()I
  84. .line 140
  85. const/4 v0, 0x0
  86. iput-object v0, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurTransaction:Landroid/support/v4/app/FragmentTransaction;
  87. .line 141
  88. iget-object v0, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mFragmentManager:Landroid/support/v4/app/FragmentManager;
  89. invoke-virtual {v0}, Landroid/support/v4/app/FragmentManager;->executePendingTransactions()Z
  90. .line 143
  91. :cond_0
  92. return-void
  93. .end method
  94. .method public abstract getItem(I)Landroid/support/v4/app/Fragment;
  95. .end method
  96. .method public getItemId(I)J
  97. .locals 2
  98. .param p1, "position" # I
  99. .prologue
  100. .line 169
  101. int-to-long v0, p1
  102. return-wide v0
  103. .end method
  104. .method public instantiateItem(Landroid/view/ViewGroup;I)Ljava/lang/Object;
  105. .locals 8
  106. .param p1, "container" # Landroid/view/ViewGroup;
  107. .param p2, "position" # I
  108. .prologue
  109. const/4 v7, 0x0
  110. .line 84
  111. iget-object v4, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurTransaction:Landroid/support/v4/app/FragmentTransaction;
  112. if-nez v4, :cond_0
  113. .line 85
  114. iget-object v4, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mFragmentManager:Landroid/support/v4/app/FragmentManager;
  115. invoke-virtual {v4}, Landroid/support/v4/app/FragmentManager;->beginTransaction()Landroid/support/v4/app/FragmentTransaction;
  116. move-result-object v4
  117. iput-object v4, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurTransaction:Landroid/support/v4/app/FragmentTransaction;
  118. .line 88
  119. :cond_0
  120. invoke-virtual {p0, p2}, Landroid/support/v4/app/FragmentPagerAdapter;->getItemId(I)J
  121. move-result-wide v1
  122. .line 91
  123. .local v1, "itemId":J
  124. invoke-virtual {p1}, Landroid/view/ViewGroup;->getId()I
  125. move-result v4
  126. invoke-static {v4, v1, v2}, Landroid/support/v4/app/FragmentPagerAdapter;->makeFragmentName(IJ)Ljava/lang/String;
  127. move-result-object v3
  128. .line 92
  129. .local v3, "name":Ljava/lang/String;
  130. iget-object v4, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mFragmentManager:Landroid/support/v4/app/FragmentManager;
  131. invoke-virtual {v4, v3}, Landroid/support/v4/app/FragmentManager;->findFragmentByTag(Ljava/lang/String;)Landroid/support/v4/app/Fragment;
  132. move-result-object v0
  133. .line 93
  134. .local v0, "fragment":Landroid/support/v4/app/Fragment;
  135. if-eqz v0, :cond_2
  136. .line 95
  137. iget-object v4, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurTransaction:Landroid/support/v4/app/FragmentTransaction;
  138. invoke-virtual {v4, v0}, Landroid/support/v4/app/FragmentTransaction;->attach(Landroid/support/v4/app/Fragment;)Landroid/support/v4/app/FragmentTransaction;
  139. .line 102
  140. :goto_0
  141. iget-object v4, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurrentPrimaryItem:Landroid/support/v4/app/Fragment;
  142. if-eq v0, v4, :cond_1
  143. .line 103
  144. invoke-virtual {v0, v7}, Landroid/support/v4/app/Fragment;->setMenuVisibility(Z)V
  145. .line 104
  146. invoke-virtual {v0, v7}, Landroid/support/v4/app/Fragment;->setUserVisibleHint(Z)V
  147. .line 107
  148. :cond_1
  149. return-object v0
  150. .line 97
  151. :cond_2
  152. invoke-virtual {p0, p2}, Landroid/support/v4/app/FragmentPagerAdapter;->getItem(I)Landroid/support/v4/app/Fragment;
  153. move-result-object v0
  154. .line 99
  155. iget-object v4, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurTransaction:Landroid/support/v4/app/FragmentTransaction;
  156. invoke-virtual {p1}, Landroid/view/ViewGroup;->getId()I
  157. move-result v5
  158. invoke-virtual {p1}, Landroid/view/ViewGroup;->getId()I
  159. move-result v6
  160. invoke-static {v6, v1, v2}, Landroid/support/v4/app/FragmentPagerAdapter;->makeFragmentName(IJ)Ljava/lang/String;
  161. move-result-object v6
  162. invoke-virtual {v4, v5, v0, v6}, Landroid/support/v4/app/FragmentTransaction;->add(ILandroid/support/v4/app/Fragment;Ljava/lang/String;)Landroid/support/v4/app/FragmentTransaction;
  163. goto :goto_0
  164. .end method
  165. .method public isViewFromObject(Landroid/view/View;Ljava/lang/Object;)Z
  166. .locals 1
  167. .param p1, "view" # Landroid/view/View;
  168. .param p2, "object" # Ljava/lang/Object;
  169. .prologue
  170. .line 147
  171. check-cast p2, Landroid/support/v4/app/Fragment;
  172. .end local p2 # "object":Ljava/lang/Object;
  173. invoke-virtual {p2}, Landroid/support/v4/app/Fragment;->getView()Landroid/view/View;
  174. move-result-object v0
  175. if-ne v0, p1, :cond_0
  176. const/4 v0, 0x1
  177. :goto_0
  178. return v0
  179. :cond_0
  180. const/4 v0, 0x0
  181. goto :goto_0
  182. .end method
  183. .method public restoreState(Landroid/os/Parcelable;Ljava/lang/ClassLoader;)V
  184. .locals 0
  185. .param p1, "state" # Landroid/os/Parcelable;
  186. .param p2, "loader" # Ljava/lang/ClassLoader;
  187. .prologue
  188. .line 157
  189. return-void
  190. .end method
  191. .method public saveState()Landroid/os/Parcelable;
  192. .locals 1
  193. .prologue
  194. .line 152
  195. const/4 v0, 0x0
  196. return-object v0
  197. .end method
  198. .method public setPrimaryItem(Landroid/view/ViewGroup;ILjava/lang/Object;)V
  199. .locals 4
  200. .param p1, "container" # Landroid/view/ViewGroup;
  201. .param p2, "position" # I
  202. .param p3, "object" # Ljava/lang/Object;
  203. .prologue
  204. const/4 v3, 0x1
  205. const/4 v2, 0x0
  206. .line 122
  207. move-object v0, p3
  208. check-cast v0, Landroid/support/v4/app/Fragment;
  209. .line 123
  210. .local v0, "fragment":Landroid/support/v4/app/Fragment;
  211. iget-object v1, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurrentPrimaryItem:Landroid/support/v4/app/Fragment;
  212. if-eq v0, v1, :cond_2
  213. .line 124
  214. iget-object v1, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurrentPrimaryItem:Landroid/support/v4/app/Fragment;
  215. if-eqz v1, :cond_0
  216. .line 125
  217. iget-object v1, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurrentPrimaryItem:Landroid/support/v4/app/Fragment;
  218. invoke-virtual {v1, v2}, Landroid/support/v4/app/Fragment;->setMenuVisibility(Z)V
  219. .line 126
  220. iget-object v1, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurrentPrimaryItem:Landroid/support/v4/app/Fragment;
  221. invoke-virtual {v1, v2}, Landroid/support/v4/app/Fragment;->setUserVisibleHint(Z)V
  222. .line 128
  223. :cond_0
  224. if-eqz v0, :cond_1
  225. .line 129
  226. invoke-virtual {v0, v3}, Landroid/support/v4/app/Fragment;->setMenuVisibility(Z)V
  227. .line 130
  228. invoke-virtual {v0, v3}, Landroid/support/v4/app/Fragment;->setUserVisibleHint(Z)V
  229. .line 132
  230. :cond_1
  231. iput-object v0, p0, Landroid/support/v4/app/FragmentPagerAdapter;->mCurrentPrimaryItem:Landroid/support/v4/app/Fragment;
  232. .line 134
  233. :cond_2
  234. return-void
  235. .end method
  236. .method public startUpdate(Landroid/view/ViewGroup;)V
  237. .locals 0
  238. .param p1, "container" # Landroid/view/ViewGroup;
  239. .prologue
  240. .line 80
  241. return-void
  242. .end method