123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943 |
- .class public Landroid/support/v4/app/FragmentTabHost;
- .super Landroid/widget/TabHost;
- .source "FragmentTabHost.java"
- # interfaces
- .implements Landroid/widget/TabHost$OnTabChangeListener;
- # annotations
- .annotation system Ldalvik/annotation/MemberClasses;
- value = {
- Landroid/support/v4/app/FragmentTabHost$1;,
- Landroid/support/v4/app/FragmentTabHost$SavedState;,
- Landroid/support/v4/app/FragmentTabHost$DummyTabFactory;,
- Landroid/support/v4/app/FragmentTabHost$TabInfo;
- }
- .end annotation
- # instance fields
- .field private mAttached:Z
- .field private mContainerId:I
- .field private mContext:Landroid/content/Context;
- .field private mFragmentManager:Landroid/support/v4/app/FragmentManager;
- .field private mLastTab:Landroid/support/v4/app/FragmentTabHost$TabInfo;
- .field private mOnTabChangeListener:Landroid/widget/TabHost$OnTabChangeListener;
- .field private mRealTabContent:Landroid/widget/FrameLayout;
- .field private final mTabs:Ljava/util/ArrayList;
- .annotation system Ldalvik/annotation/Signature;
- value = {
- "Ljava/util/ArrayList",
- "<",
- "Landroid/support/v4/app/FragmentTabHost$TabInfo;",
- ">;"
- }
- .end annotation
- .end field
- # direct methods
- .method public constructor <init>(Landroid/content/Context;)V
- .locals 2
- .param p1, "context" # Landroid/content/Context;
- .prologue
- const/4 v1, 0x0
- .line 130
- invoke-direct {p0, p1, v1}, Landroid/widget/TabHost;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
- .line 52
- new-instance v0, Ljava/util/ArrayList;
- invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
- iput-object v0, p0, Landroid/support/v4/app/FragmentTabHost;->mTabs:Ljava/util/ArrayList;
- .line 131
- invoke-direct {p0, p1, v1}, Landroid/support/v4/app/FragmentTabHost;->initFragmentTabHost(Landroid/content/Context;Landroid/util/AttributeSet;)V
- .line 132
- return-void
- .end method
- .method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
- .locals 1
- .param p1, "context" # Landroid/content/Context;
- .param p2, "attrs" # Landroid/util/AttributeSet;
- .prologue
- .line 135
- invoke-direct {p0, p1, p2}, Landroid/widget/TabHost;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
- .line 52
- new-instance v0, Ljava/util/ArrayList;
- invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
- iput-object v0, p0, Landroid/support/v4/app/FragmentTabHost;->mTabs:Ljava/util/ArrayList;
- .line 136
- invoke-direct {p0, p1, p2}, Landroid/support/v4/app/FragmentTabHost;->initFragmentTabHost(Landroid/content/Context;Landroid/util/AttributeSet;)V
- .line 137
- return-void
- .end method
- .method private doTabChanged(Ljava/lang/String;Landroid/support/v4/app/FragmentTransaction;)Landroid/support/v4/app/FragmentTransaction;
- .locals 6
- .param p1, "tabId" # Ljava/lang/String;
- .param p2, "ft" # Landroid/support/v4/app/FragmentTransaction;
- .prologue
- .line 322
- const/4 v1, 0x0
- .line 323
- .local v1, "newTab":Landroid/support/v4/app/FragmentTabHost$TabInfo;
- const/4 v0, 0x0
- .local v0, "i":I
- :goto_0
- iget-object v3, p0, Landroid/support/v4/app/FragmentTabHost;->mTabs:Ljava/util/ArrayList;
- invoke-virtual {v3}, Ljava/util/ArrayList;->size()I
- move-result v3
- if-ge v0, v3, :cond_1
- .line 324
- iget-object v3, p0, Landroid/support/v4/app/FragmentTabHost;->mTabs:Ljava/util/ArrayList;
- invoke-virtual {v3, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
- move-result-object v2
- check-cast v2, Landroid/support/v4/app/FragmentTabHost$TabInfo;
- .line 325
- .local v2, "tab":Landroid/support/v4/app/FragmentTabHost$TabInfo;
- invoke-static {v2}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$200(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Ljava/lang/String;
- move-result-object v3
- invoke-virtual {v3, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v3
- if-eqz v3, :cond_0
- .line 326
- move-object v1, v2
- .line 323
- :cond_0
- add-int/lit8 v0, v0, 0x1
- goto :goto_0
- .line 329
- .end local v2 # "tab":Landroid/support/v4/app/FragmentTabHost$TabInfo;
- :cond_1
- if-nez v1, :cond_2
- .line 330
- new-instance v3, Ljava/lang/IllegalStateException;
- new-instance v4, Ljava/lang/StringBuilder;
- invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
- const-string v5, "No tab known for tag "
- invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v4
- invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v4
- invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
- move-result-object v4
- invoke-direct {v3, v4}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
- throw v3
- .line 332
- :cond_2
- iget-object v3, p0, Landroid/support/v4/app/FragmentTabHost;->mLastTab:Landroid/support/v4/app/FragmentTabHost$TabInfo;
- if-eq v3, v1, :cond_6
- .line 333
- if-nez p2, :cond_3
- .line 334
- iget-object v3, p0, Landroid/support/v4/app/FragmentTabHost;->mFragmentManager:Landroid/support/v4/app/FragmentManager;
- invoke-virtual {v3}, Landroid/support/v4/app/FragmentManager;->beginTransaction()Landroid/support/v4/app/FragmentTransaction;
- move-result-object p2
- .line 336
- :cond_3
- iget-object v3, p0, Landroid/support/v4/app/FragmentTabHost;->mLastTab:Landroid/support/v4/app/FragmentTabHost$TabInfo;
- if-eqz v3, :cond_4
- .line 337
- iget-object v3, p0, Landroid/support/v4/app/FragmentTabHost;->mLastTab:Landroid/support/v4/app/FragmentTabHost$TabInfo;
- invoke-static {v3}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$100(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Landroid/support/v4/app/Fragment;
- move-result-object v3
- if-eqz v3, :cond_4
- .line 338
- iget-object v3, p0, Landroid/support/v4/app/FragmentTabHost;->mLastTab:Landroid/support/v4/app/FragmentTabHost$TabInfo;
- invoke-static {v3}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$100(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Landroid/support/v4/app/Fragment;
- move-result-object v3
- invoke-virtual {p2, v3}, Landroid/support/v4/app/FragmentTransaction;->detach(Landroid/support/v4/app/Fragment;)Landroid/support/v4/app/FragmentTransaction;
- .line 341
- :cond_4
- if-eqz v1, :cond_5
- .line 342
- invoke-static {v1}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$100(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Landroid/support/v4/app/Fragment;
- move-result-object v3
- if-nez v3, :cond_7
- .line 343
- iget-object v3, p0, Landroid/support/v4/app/FragmentTabHost;->mContext:Landroid/content/Context;
- invoke-static {v1}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$300(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Ljava/lang/Class;
- move-result-object v4
- invoke-virtual {v4}, Ljava/lang/Class;->getName()Ljava/lang/String;
- move-result-object v4
- invoke-static {v1}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$400(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Landroid/os/Bundle;
- move-result-object v5
- invoke-static {v3, v4, v5}, Landroid/support/v4/app/Fragment;->instantiate(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/support/v4/app/Fragment;
- move-result-object v3
- invoke-static {v1, v3}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$102(Landroid/support/v4/app/FragmentTabHost$TabInfo;Landroid/support/v4/app/Fragment;)Landroid/support/v4/app/Fragment;
- .line 345
- iget v3, p0, Landroid/support/v4/app/FragmentTabHost;->mContainerId:I
- invoke-static {v1}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$100(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Landroid/support/v4/app/Fragment;
- move-result-object v4
- invoke-static {v1}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$200(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Ljava/lang/String;
- move-result-object v5
- invoke-virtual {p2, v3, v4, v5}, Landroid/support/v4/app/FragmentTransaction;->add(ILandroid/support/v4/app/Fragment;Ljava/lang/String;)Landroid/support/v4/app/FragmentTransaction;
- .line 351
- :cond_5
- :goto_1
- iput-object v1, p0, Landroid/support/v4/app/FragmentTabHost;->mLastTab:Landroid/support/v4/app/FragmentTabHost$TabInfo;
- .line 353
- :cond_6
- return-object p2
- .line 347
- :cond_7
- invoke-static {v1}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$100(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Landroid/support/v4/app/Fragment;
- move-result-object v3
- invoke-virtual {p2, v3}, Landroid/support/v4/app/FragmentTransaction;->attach(Landroid/support/v4/app/Fragment;)Landroid/support/v4/app/FragmentTransaction;
- goto :goto_1
- .end method
- .method private ensureContent()V
- .locals 3
- .prologue
- .line 212
- iget-object v0, p0, Landroid/support/v4/app/FragmentTabHost;->mRealTabContent:Landroid/widget/FrameLayout;
- if-nez v0, :cond_0
- .line 213
- iget v0, p0, Landroid/support/v4/app/FragmentTabHost;->mContainerId:I
- invoke-virtual {p0, v0}, Landroid/support/v4/app/FragmentTabHost;->findViewById(I)Landroid/view/View;
- move-result-object v0
- check-cast v0, Landroid/widget/FrameLayout;
- iput-object v0, p0, Landroid/support/v4/app/FragmentTabHost;->mRealTabContent:Landroid/widget/FrameLayout;
- .line 214
- iget-object v0, p0, Landroid/support/v4/app/FragmentTabHost;->mRealTabContent:Landroid/widget/FrameLayout;
- if-nez v0, :cond_0
- .line 215
- new-instance v0, Ljava/lang/IllegalStateException;
- new-instance v1, Ljava/lang/StringBuilder;
- invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
- const-string v2, "No tab content FrameLayout found for id "
- invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v1
- iget v2, p0, Landroid/support/v4/app/FragmentTabHost;->mContainerId:I
- invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
- move-result-object v1
- invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
- move-result-object v1
- invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
- throw v0
- .line 219
- :cond_0
- return-void
- .end method
- .method private ensureHierarchy(Landroid/content/Context;)V
- .locals 8
- .param p1, "context" # Landroid/content/Context;
- .prologue
- const v4, 0x1020013
- const/4 v7, 0x0
- const/4 v6, 0x0
- const/4 v5, -0x1
- .line 151
- invoke-virtual {p0, v4}, Landroid/support/v4/app/FragmentTabHost;->findViewById(I)Landroid/view/View;
- move-result-object v3
- if-nez v3, :cond_0
- .line 152
- new-instance v1, Landroid/widget/LinearLayout;
- invoke-direct {v1, p1}, Landroid/widget/LinearLayout;-><init>(Landroid/content/Context;)V
- .line 153
- .local v1, "ll":Landroid/widget/LinearLayout;
- const/4 v3, 0x1
- invoke-virtual {v1, v3}, Landroid/widget/LinearLayout;->setOrientation(I)V
- .line 154
- new-instance v3, Landroid/widget/FrameLayout$LayoutParams;
- invoke-direct {v3, v5, v5}, Landroid/widget/FrameLayout$LayoutParams;-><init>(II)V
- invoke-virtual {p0, v1, v3}, Landroid/support/v4/app/FragmentTabHost;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
- .line 158
- new-instance v2, Landroid/widget/TabWidget;
- invoke-direct {v2, p1}, Landroid/widget/TabWidget;-><init>(Landroid/content/Context;)V
- .line 159
- .local v2, "tw":Landroid/widget/TabWidget;
- invoke-virtual {v2, v4}, Landroid/widget/TabWidget;->setId(I)V
- .line 160
- invoke-virtual {v2, v6}, Landroid/widget/TabWidget;->setOrientation(I)V
- .line 161
- new-instance v3, Landroid/widget/LinearLayout$LayoutParams;
- const/4 v4, -0x2
- invoke-direct {v3, v5, v4, v7}, Landroid/widget/LinearLayout$LayoutParams;-><init>(IIF)V
- invoke-virtual {v1, v2, v3}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
- .line 165
- new-instance v0, Landroid/widget/FrameLayout;
- invoke-direct {v0, p1}, Landroid/widget/FrameLayout;-><init>(Landroid/content/Context;)V
- .line 166
- .local v0, "fl":Landroid/widget/FrameLayout;
- const v3, 0x1020011
- invoke-virtual {v0, v3}, Landroid/widget/FrameLayout;->setId(I)V
- .line 167
- new-instance v3, Landroid/widget/LinearLayout$LayoutParams;
- invoke-direct {v3, v6, v6, v7}, Landroid/widget/LinearLayout$LayoutParams;-><init>(IIF)V
- invoke-virtual {v1, v0, v3}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
- .line 169
- new-instance v0, Landroid/widget/FrameLayout;
- .end local v0 # "fl":Landroid/widget/FrameLayout;
- invoke-direct {v0, p1}, Landroid/widget/FrameLayout;-><init>(Landroid/content/Context;)V
- .restart local v0 # "fl":Landroid/widget/FrameLayout;
- iput-object v0, p0, Landroid/support/v4/app/FragmentTabHost;->mRealTabContent:Landroid/widget/FrameLayout;
- .line 170
- iget-object v3, p0, Landroid/support/v4/app/FragmentTabHost;->mRealTabContent:Landroid/widget/FrameLayout;
- iget v4, p0, Landroid/support/v4/app/FragmentTabHost;->mContainerId:I
- invoke-virtual {v3, v4}, Landroid/widget/FrameLayout;->setId(I)V
- .line 171
- new-instance v3, Landroid/widget/LinearLayout$LayoutParams;
- const/high16 v4, 0x3f800000 # 1.0f
- invoke-direct {v3, v5, v6, v4}, Landroid/widget/LinearLayout$LayoutParams;-><init>(IIF)V
- invoke-virtual {v1, v0, v3}, Landroid/widget/LinearLayout;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V
- .line 174
- .end local v0 # "fl":Landroid/widget/FrameLayout;
- .end local v1 # "ll":Landroid/widget/LinearLayout;
- .end local v2 # "tw":Landroid/widget/TabWidget;
- :cond_0
- return-void
- .end method
- .method private initFragmentTabHost(Landroid/content/Context;Landroid/util/AttributeSet;)V
- .locals 4
- .param p1, "context" # Landroid/content/Context;
- .param p2, "attrs" # Landroid/util/AttributeSet;
- .prologue
- const/4 v3, 0x0
- .line 140
- const/4 v1, 0x1
- new-array v1, v1, [I
- const v2, 0x10100f3
- aput v2, v1, v3
- invoke-virtual {p1, p2, v1, v3, v3}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;
- move-result-object v0
- .line 142
- .local v0, "a":Landroid/content/res/TypedArray;
- invoke-virtual {v0, v3, v3}, Landroid/content/res/TypedArray;->getResourceId(II)I
- move-result v1
- iput v1, p0, Landroid/support/v4/app/FragmentTabHost;->mContainerId:I
- .line 143
- invoke-virtual {v0}, Landroid/content/res/TypedArray;->recycle()V
- .line 145
- invoke-super {p0, p0}, Landroid/widget/TabHost;->setOnTabChangedListener(Landroid/widget/TabHost$OnTabChangeListener;)V
- .line 146
- return-void
- .end method
- # virtual methods
- .method public addTab(Landroid/widget/TabHost$TabSpec;Ljava/lang/Class;Landroid/os/Bundle;)V
- .locals 5
- .param p1, "tabSpec" # Landroid/widget/TabHost$TabSpec;
- .param p3, "args" # Landroid/os/Bundle;
- .annotation system Ldalvik/annotation/Signature;
- value = {
- "(",
- "Landroid/widget/TabHost$TabSpec;",
- "Ljava/lang/Class",
- "<*>;",
- "Landroid/os/Bundle;",
- ")V"
- }
- .end annotation
- .prologue
- .line 227
- .local p2, "clss":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
- new-instance v3, Landroid/support/v4/app/FragmentTabHost$DummyTabFactory;
- iget-object v4, p0, Landroid/support/v4/app/FragmentTabHost;->mContext:Landroid/content/Context;
- invoke-direct {v3, v4}, Landroid/support/v4/app/FragmentTabHost$DummyTabFactory;-><init>(Landroid/content/Context;)V
- invoke-virtual {p1, v3}, Landroid/widget/TabHost$TabSpec;->setContent(Landroid/widget/TabHost$TabContentFactory;)Landroid/widget/TabHost$TabSpec;
- .line 228
- invoke-virtual {p1}, Landroid/widget/TabHost$TabSpec;->getTag()Ljava/lang/String;
- move-result-object v2
- .line 230
- .local v2, "tag":Ljava/lang/String;
- new-instance v1, Landroid/support/v4/app/FragmentTabHost$TabInfo;
- invoke-direct {v1, v2, p2, p3}, Landroid/support/v4/app/FragmentTabHost$TabInfo;-><init>(Ljava/lang/String;Ljava/lang/Class;Landroid/os/Bundle;)V
- .line 232
- .local v1, "info":Landroid/support/v4/app/FragmentTabHost$TabInfo;
- iget-boolean v3, p0, Landroid/support/v4/app/FragmentTabHost;->mAttached:Z
- if-eqz v3, :cond_0
- .line 236
- iget-object v3, p0, Landroid/support/v4/app/FragmentTabHost;->mFragmentManager:Landroid/support/v4/app/FragmentManager;
- invoke-virtual {v3, v2}, Landroid/support/v4/app/FragmentManager;->findFragmentByTag(Ljava/lang/String;)Landroid/support/v4/app/Fragment;
- move-result-object v3
- invoke-static {v1, v3}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$102(Landroid/support/v4/app/FragmentTabHost$TabInfo;Landroid/support/v4/app/Fragment;)Landroid/support/v4/app/Fragment;
- .line 237
- invoke-static {v1}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$100(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Landroid/support/v4/app/Fragment;
- move-result-object v3
- if-eqz v3, :cond_0
- invoke-static {v1}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$100(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Landroid/support/v4/app/Fragment;
- move-result-object v3
- invoke-virtual {v3}, Landroid/support/v4/app/Fragment;->isDetached()Z
- move-result v3
- if-nez v3, :cond_0
- .line 238
- iget-object v3, p0, Landroid/support/v4/app/FragmentTabHost;->mFragmentManager:Landroid/support/v4/app/FragmentManager;
- invoke-virtual {v3}, Landroid/support/v4/app/FragmentManager;->beginTransaction()Landroid/support/v4/app/FragmentTransaction;
- move-result-object v0
- .line 239
- .local v0, "ft":Landroid/support/v4/app/FragmentTransaction;
- invoke-static {v1}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$100(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Landroid/support/v4/app/Fragment;
- move-result-object v3
- invoke-virtual {v0, v3}, Landroid/support/v4/app/FragmentTransaction;->detach(Landroid/support/v4/app/Fragment;)Landroid/support/v4/app/FragmentTransaction;
- .line 240
- invoke-virtual {v0}, Landroid/support/v4/app/FragmentTransaction;->commit()I
- .line 244
- .end local v0 # "ft":Landroid/support/v4/app/FragmentTransaction;
- :cond_0
- iget-object v3, p0, Landroid/support/v4/app/FragmentTabHost;->mTabs:Ljava/util/ArrayList;
- invoke-virtual {v3, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
- .line 245
- invoke-virtual {p0, p1}, Landroid/support/v4/app/FragmentTabHost;->addTab(Landroid/widget/TabHost$TabSpec;)V
- .line 246
- return-void
- .end method
- .method protected onAttachedToWindow()V
- .locals 6
- .prologue
- .line 250
- invoke-super {p0}, Landroid/widget/TabHost;->onAttachedToWindow()V
- .line 252
- invoke-virtual {p0}, Landroid/support/v4/app/FragmentTabHost;->getCurrentTabTag()Ljava/lang/String;
- move-result-object v0
- .line 256
- .local v0, "currentTab":Ljava/lang/String;
- const/4 v1, 0x0
- .line 257
- .local v1, "ft":Landroid/support/v4/app/FragmentTransaction;
- const/4 v2, 0x0
- .local v2, "i":I
- :goto_0
- iget-object v4, p0, Landroid/support/v4/app/FragmentTabHost;->mTabs:Ljava/util/ArrayList;
- invoke-virtual {v4}, Ljava/util/ArrayList;->size()I
- move-result v4
- if-ge v2, v4, :cond_3
- .line 258
- iget-object v4, p0, Landroid/support/v4/app/FragmentTabHost;->mTabs:Ljava/util/ArrayList;
- invoke-virtual {v4, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
- move-result-object v3
- check-cast v3, Landroid/support/v4/app/FragmentTabHost$TabInfo;
- .line 259
- .local v3, "tab":Landroid/support/v4/app/FragmentTabHost$TabInfo;
- iget-object v4, p0, Landroid/support/v4/app/FragmentTabHost;->mFragmentManager:Landroid/support/v4/app/FragmentManager;
- invoke-static {v3}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$200(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Ljava/lang/String;
- move-result-object v5
- invoke-virtual {v4, v5}, Landroid/support/v4/app/FragmentManager;->findFragmentByTag(Ljava/lang/String;)Landroid/support/v4/app/Fragment;
- move-result-object v4
- invoke-static {v3, v4}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$102(Landroid/support/v4/app/FragmentTabHost$TabInfo;Landroid/support/v4/app/Fragment;)Landroid/support/v4/app/Fragment;
- .line 260
- invoke-static {v3}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$100(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Landroid/support/v4/app/Fragment;
- move-result-object v4
- if-eqz v4, :cond_0
- invoke-static {v3}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$100(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Landroid/support/v4/app/Fragment;
- move-result-object v4
- invoke-virtual {v4}, Landroid/support/v4/app/Fragment;->isDetached()Z
- move-result v4
- if-nez v4, :cond_0
- .line 261
- invoke-static {v3}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$200(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Ljava/lang/String;
- move-result-object v4
- invoke-virtual {v4, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v4
- if-eqz v4, :cond_1
- .line 265
- iput-object v3, p0, Landroid/support/v4/app/FragmentTabHost;->mLastTab:Landroid/support/v4/app/FragmentTabHost$TabInfo;
- .line 257
- :cond_0
- :goto_1
- add-int/lit8 v2, v2, 0x1
- goto :goto_0
- .line 269
- :cond_1
- if-nez v1, :cond_2
- .line 270
- iget-object v4, p0, Landroid/support/v4/app/FragmentTabHost;->mFragmentManager:Landroid/support/v4/app/FragmentManager;
- invoke-virtual {v4}, Landroid/support/v4/app/FragmentManager;->beginTransaction()Landroid/support/v4/app/FragmentTransaction;
- move-result-object v1
- .line 272
- :cond_2
- invoke-static {v3}, Landroid/support/v4/app/FragmentTabHost$TabInfo;->access$100(Landroid/support/v4/app/FragmentTabHost$TabInfo;)Landroid/support/v4/app/Fragment;
- move-result-object v4
- invoke-virtual {v1, v4}, Landroid/support/v4/app/FragmentTransaction;->detach(Landroid/support/v4/app/Fragment;)Landroid/support/v4/app/FragmentTransaction;
- goto :goto_1
- .line 279
- .end local v3 # "tab":Landroid/support/v4/app/FragmentTabHost$TabInfo;
- :cond_3
- const/4 v4, 0x1
- iput-boolean v4, p0, Landroid/support/v4/app/FragmentTabHost;->mAttached:Z
- .line 280
- invoke-direct {p0, v0, v1}, Landroid/support/v4/app/FragmentTabHost;->doTabChanged(Ljava/lang/String;Landroid/support/v4/app/FragmentTransaction;)Landroid/support/v4/app/FragmentTransaction;
- move-result-object v1
- .line 281
- if-eqz v1, :cond_4
- .line 282
- invoke-virtual {v1}, Landroid/support/v4/app/FragmentTransaction;->commit()I
- .line 283
- iget-object v4, p0, Landroid/support/v4/app/FragmentTabHost;->mFragmentManager:Landroid/support/v4/app/FragmentManager;
- invoke-virtual {v4}, Landroid/support/v4/app/FragmentManager;->executePendingTransactions()Z
- .line 285
- :cond_4
- return-void
- .end method
- .method protected onDetachedFromWindow()V
- .locals 1
- .prologue
- .line 289
- invoke-super {p0}, Landroid/widget/TabHost;->onDetachedFromWindow()V
- .line 290
- const/4 v0, 0x0
- iput-boolean v0, p0, Landroid/support/v4/app/FragmentTabHost;->mAttached:Z
- .line 291
- return-void
- .end method
- .method protected onRestoreInstanceState(Landroid/os/Parcelable;)V
- .locals 2
- .param p1, "state" # Landroid/os/Parcelable;
- .prologue
- .line 303
- move-object v0, p1
- check-cast v0, Landroid/support/v4/app/FragmentTabHost$SavedState;
- .line 304
- .local v0, "ss":Landroid/support/v4/app/FragmentTabHost$SavedState;
- invoke-virtual {v0}, Landroid/support/v4/app/FragmentTabHost$SavedState;->getSuperState()Landroid/os/Parcelable;
- move-result-object v1
- invoke-super {p0, v1}, Landroid/widget/TabHost;->onRestoreInstanceState(Landroid/os/Parcelable;)V
- .line 305
- iget-object v1, v0, Landroid/support/v4/app/FragmentTabHost$SavedState;->curTab:Ljava/lang/String;
- invoke-virtual {p0, v1}, Landroid/support/v4/app/FragmentTabHost;->setCurrentTabByTag(Ljava/lang/String;)V
- .line 306
- return-void
- .end method
- .method protected onSaveInstanceState()Landroid/os/Parcelable;
- .locals 3
- .prologue
- .line 295
- invoke-super {p0}, Landroid/widget/TabHost;->onSaveInstanceState()Landroid/os/Parcelable;
- move-result-object v1
- .line 296
- .local v1, "superState":Landroid/os/Parcelable;
- new-instance v0, Landroid/support/v4/app/FragmentTabHost$SavedState;
- invoke-direct {v0, v1}, Landroid/support/v4/app/FragmentTabHost$SavedState;-><init>(Landroid/os/Parcelable;)V
- .line 297
- .local v0, "ss":Landroid/support/v4/app/FragmentTabHost$SavedState;
- invoke-virtual {p0}, Landroid/support/v4/app/FragmentTabHost;->getCurrentTabTag()Ljava/lang/String;
- move-result-object v2
- iput-object v2, v0, Landroid/support/v4/app/FragmentTabHost$SavedState;->curTab:Ljava/lang/String;
- .line 298
- return-object v0
- .end method
- .method public onTabChanged(Ljava/lang/String;)V
- .locals 2
- .param p1, "tabId" # Ljava/lang/String;
- .prologue
- .line 310
- iget-boolean v1, p0, Landroid/support/v4/app/FragmentTabHost;->mAttached:Z
- if-eqz v1, :cond_0
- .line 311
- const/4 v1, 0x0
- invoke-direct {p0, p1, v1}, Landroid/support/v4/app/FragmentTabHost;->doTabChanged(Ljava/lang/String;Landroid/support/v4/app/FragmentTransaction;)Landroid/support/v4/app/FragmentTransaction;
- move-result-object v0
- .line 312
- .local v0, "ft":Landroid/support/v4/app/FragmentTransaction;
- if-eqz v0, :cond_0
- .line 313
- invoke-virtual {v0}, Landroid/support/v4/app/FragmentTransaction;->commit()I
- .line 316
- .end local v0 # "ft":Landroid/support/v4/app/FragmentTransaction;
- :cond_0
- iget-object v1, p0, Landroid/support/v4/app/FragmentTabHost;->mOnTabChangeListener:Landroid/widget/TabHost$OnTabChangeListener;
- if-eqz v1, :cond_1
- .line 317
- iget-object v1, p0, Landroid/support/v4/app/FragmentTabHost;->mOnTabChangeListener:Landroid/widget/TabHost$OnTabChangeListener;
- invoke-interface {v1, p1}, Landroid/widget/TabHost$OnTabChangeListener;->onTabChanged(Ljava/lang/String;)V
- .line 319
- :cond_1
- return-void
- .end method
- .method public setOnTabChangedListener(Landroid/widget/TabHost$OnTabChangeListener;)V
- .locals 0
- .param p1, "l" # Landroid/widget/TabHost$OnTabChangeListener;
- .prologue
- .line 223
- iput-object p1, p0, Landroid/support/v4/app/FragmentTabHost;->mOnTabChangeListener:Landroid/widget/TabHost$OnTabChangeListener;
- .line 224
- return-void
- .end method
- .method public setup()V
- .locals 2
- .annotation runtime Ljava/lang/Deprecated;
- .end annotation
- .prologue
- .line 183
- new-instance v0, Ljava/lang/IllegalStateException;
- const-string v1, "Must call setup() that takes a Context and FragmentManager"
- invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
- throw v0
- .end method
- .method public setup(Landroid/content/Context;Landroid/support/v4/app/FragmentManager;)V
- .locals 0
- .param p1, "context" # Landroid/content/Context;
- .param p2, "manager" # Landroid/support/v4/app/FragmentManager;
- .prologue
- .line 188
- invoke-direct {p0, p1}, Landroid/support/v4/app/FragmentTabHost;->ensureHierarchy(Landroid/content/Context;)V
- .line 189
- invoke-super {p0}, Landroid/widget/TabHost;->setup()V
- .line 190
- iput-object p1, p0, Landroid/support/v4/app/FragmentTabHost;->mContext:Landroid/content/Context;
- .line 191
- iput-object p2, p0, Landroid/support/v4/app/FragmentTabHost;->mFragmentManager:Landroid/support/v4/app/FragmentManager;
- .line 192
- invoke-direct {p0}, Landroid/support/v4/app/FragmentTabHost;->ensureContent()V
- .line 193
- return-void
- .end method
- .method public setup(Landroid/content/Context;Landroid/support/v4/app/FragmentManager;I)V
- .locals 2
- .param p1, "context" # Landroid/content/Context;
- .param p2, "manager" # Landroid/support/v4/app/FragmentManager;
- .param p3, "containerId" # I
- .prologue
- .line 196
- invoke-direct {p0, p1}, Landroid/support/v4/app/FragmentTabHost;->ensureHierarchy(Landroid/content/Context;)V
- .line 197
- invoke-super {p0}, Landroid/widget/TabHost;->setup()V
- .line 198
- iput-object p1, p0, Landroid/support/v4/app/FragmentTabHost;->mContext:Landroid/content/Context;
- .line 199
- iput-object p2, p0, Landroid/support/v4/app/FragmentTabHost;->mFragmentManager:Landroid/support/v4/app/FragmentManager;
- .line 200
- iput p3, p0, Landroid/support/v4/app/FragmentTabHost;->mContainerId:I
- .line 201
- invoke-direct {p0}, Landroid/support/v4/app/FragmentTabHost;->ensureContent()V
- .line 202
- iget-object v0, p0, Landroid/support/v4/app/FragmentTabHost;->mRealTabContent:Landroid/widget/FrameLayout;
- invoke-virtual {v0, p3}, Landroid/widget/FrameLayout;->setId(I)V
- .line 206
- invoke-virtual {p0}, Landroid/support/v4/app/FragmentTabHost;->getId()I
- move-result v0
- const/4 v1, -0x1
- if-ne v0, v1, :cond_0
- .line 207
- const v0, 0x1020012
- invoke-virtual {p0, v0}, Landroid/support/v4/app/FragmentTabHost;->setId(I)V
- .line 209
- :cond_0
- return-void
- .end method
|