.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 (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;->(Landroid/content/Context;Landroid/util/AttributeSet;)V .line 52 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;->()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 (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;->(Landroid/content/Context;Landroid/util/AttributeSet;)V .line 52 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;->()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;->()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;->(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;->()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;->(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;->(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;->(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;->(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;->(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;->(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;->(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;->(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;->(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;->(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;->(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;->(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;->(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