.class public Lcom/moji/FragmentTabsAdapter; .super Landroid/support/v4/app/FragmentPagerAdapter; .source "FragmentTabsAdapter.java" # interfaces .implements Landroid/widget/TabHost$OnTabChangeListener; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/moji/FragmentTabsAdapter$DummyTabFactory;, Lcom/moji/FragmentTabsAdapter$TabInfo; } .end annotation # instance fields .field private final a:Landroid/content/Context; .field private final b:Landroid/widget/TabHost; .field private final c:Landroid/support/v4/view/ViewPager; .field private final d:Ljava/util/ArrayList; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/ArrayList<", "Lcom/moji/FragmentTabsAdapter$TabInfo;", ">;" } .end annotation .end field .field private final e:Landroid/support/v4/util/ArrayMap; .annotation system Ldalvik/annotation/Signature; value = { "Landroid/support/v4/util/ArrayMap<", "Ljava/lang/Integer;", "Landroid/support/v4/app/Fragment;", ">;" } .end annotation .end field .field private f:I # direct methods .method public constructor (Landroid/support/v4/app/FragmentActivity;Landroid/widget/TabHost;Landroid/support/v4/view/ViewPager;)V .locals 1 .line 58 invoke-virtual {p1}, Landroid/support/v4/app/FragmentActivity;->getSupportFragmentManager()Landroid/support/v4/app/FragmentManager; move-result-object v0 invoke-direct {p0, v0}, Landroid/support/v4/app/FragmentPagerAdapter;->(Landroid/support/v4/app/FragmentManager;)V .line 24 new-instance v0, Ljava/util/ArrayList; invoke-direct {v0}, Ljava/util/ArrayList;->()V iput-object v0, p0, Lcom/moji/FragmentTabsAdapter;->d:Ljava/util/ArrayList; .line 25 new-instance v0, Landroid/support/v4/util/ArrayMap; invoke-direct {v0}, Landroid/support/v4/util/ArrayMap;->()V iput-object v0, p0, Lcom/moji/FragmentTabsAdapter;->e:Landroid/support/v4/util/ArrayMap; .line 59 iput-object p1, p0, Lcom/moji/FragmentTabsAdapter;->a:Landroid/content/Context; .line 60 iput-object p2, p0, Lcom/moji/FragmentTabsAdapter;->b:Landroid/widget/TabHost; .line 61 iput-object p3, p0, Lcom/moji/FragmentTabsAdapter;->c:Landroid/support/v4/view/ViewPager; .line 62 iget-object p1, p0, Lcom/moji/FragmentTabsAdapter;->b:Landroid/widget/TabHost; invoke-virtual {p1, p0}, Landroid/widget/TabHost;->setOnTabChangedListener(Landroid/widget/TabHost$OnTabChangeListener;)V .line 63 iget-object p1, p0, Lcom/moji/FragmentTabsAdapter;->c:Landroid/support/v4/view/ViewPager; invoke-virtual {p1, p0}, Landroid/support/v4/view/ViewPager;->setAdapter(Landroid/support/v4/view/PagerAdapter;)V return-void .end method .method private static a(IJ)Ljava/lang/String; .locals 2 .line 99 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "android:switcher:" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; const-string p0, ":" invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p1, p2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 return-object p0 .end method # virtual methods .method public a(Landroid/widget/TabHost$TabSpec;Ljava/lang/Class;Landroid/os/Bundle;)V .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Landroid/widget/TabHost$TabSpec;", "Ljava/lang/Class<", "*>;", "Landroid/os/Bundle;", ")V" } .end annotation .line 67 new-instance v0, Lcom/moji/FragmentTabsAdapter$DummyTabFactory; iget-object v1, p0, Lcom/moji/FragmentTabsAdapter;->a:Landroid/content/Context; invoke-direct {v0, v1}, Lcom/moji/FragmentTabsAdapter$DummyTabFactory;->(Landroid/content/Context;)V invoke-virtual {p1, v0}, Landroid/widget/TabHost$TabSpec;->setContent(Landroid/widget/TabHost$TabContentFactory;)Landroid/widget/TabHost$TabSpec; .line 68 invoke-virtual {p1}, Landroid/widget/TabHost$TabSpec;->getTag()Ljava/lang/String; move-result-object v0 .line 70 new-instance v1, Lcom/moji/FragmentTabsAdapter$TabInfo; invoke-direct {v1, v0, p2, p3}, Lcom/moji/FragmentTabsAdapter$TabInfo;->(Ljava/lang/String;Ljava/lang/Class;Landroid/os/Bundle;)V .line 71 iget-object p2, p0, Lcom/moji/FragmentTabsAdapter;->d:Ljava/util/ArrayList; invoke-virtual {p2, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z .line 72 iget-object p2, p0, Lcom/moji/FragmentTabsAdapter;->b:Landroid/widget/TabHost; invoke-virtual {p2, p1}, Landroid/widget/TabHost;->addTab(Landroid/widget/TabHost$TabSpec;)V .line 73 invoke-virtual {p0}, Lcom/moji/FragmentTabsAdapter;->notifyDataSetChanged()V return-void .end method .method public getCount()I .locals 1 .line 104 iget-object v0, p0, Lcom/moji/FragmentTabsAdapter;->d:Ljava/util/ArrayList; invoke-virtual {v0}, Ljava/util/ArrayList;->size()I move-result v0 return v0 .end method .method public getItem(I)Landroid/support/v4/app/Fragment; .locals 3 .line 109 iget-object v0, p0, Lcom/moji/FragmentTabsAdapter;->d:Ljava/util/ArrayList; invoke-virtual {v0, p1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/moji/FragmentTabsAdapter$TabInfo; .line 110 iget-object v1, p0, Lcom/moji/FragmentTabsAdapter;->e:Landroid/support/v4/util/ArrayMap; invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v2 invoke-virtual {v1, v2}, Landroid/support/v4/util/ArrayMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 check-cast v1, Landroid/support/v4/app/Fragment; if-nez v1, :cond_0 .line 112 iget-object v1, p0, Lcom/moji/FragmentTabsAdapter;->a:Landroid/content/Context; invoke-static {v0}, Lcom/moji/FragmentTabsAdapter$TabInfo;->a(Lcom/moji/FragmentTabsAdapter$TabInfo;)Ljava/lang/Class; move-result-object v2 invoke-virtual {v2}, Ljava/lang/Class;->getName()Ljava/lang/String; move-result-object v2 invoke-static {v0}, Lcom/moji/FragmentTabsAdapter$TabInfo;->b(Lcom/moji/FragmentTabsAdapter$TabInfo;)Landroid/os/Bundle; move-result-object v0 invoke-static {v1, v2, v0}, Landroid/support/v4/app/Fragment;->instantiate(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/support/v4/app/Fragment; move-result-object v1 .line 113 iget-object v0, p0, Lcom/moji/FragmentTabsAdapter;->e:Landroid/support/v4/util/ArrayMap; invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p1 invoke-virtual {v0, p1, v1}, Landroid/support/v4/util/ArrayMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_0 return-object v1 .end method .method public instantiateItem(Landroid/view/ViewGroup;I)Ljava/lang/Object; .locals 4 .line 78 iget-object v0, p0, Lcom/moji/FragmentTabsAdapter;->a:Landroid/content/Context; check-cast v0, Landroid/support/v4/app/FragmentActivity; invoke-virtual {v0}, Landroid/support/v4/app/FragmentActivity;->getSupportFragmentManager()Landroid/support/v4/app/FragmentManager; move-result-object v0 invoke-virtual {v0}, Landroid/support/v4/app/FragmentManager;->beginTransaction()Landroid/support/v4/app/FragmentTransaction; move-result-object v0 .line 80 iget v1, p0, Lcom/moji/FragmentTabsAdapter;->f:I if-nez v1, :cond_0 .line 81 invoke-virtual {p1}, Landroid/view/ViewGroup;->getId()I move-result v1 iput v1, p0, Lcom/moji/FragmentTabsAdapter;->f:I .line 84 :cond_0 invoke-virtual {p1}, Landroid/view/ViewGroup;->getId()I move-result v1 int-to-long v2, p2 invoke-static {v1, v2, v3}, Lcom/moji/FragmentTabsAdapter;->a(IJ)Ljava/lang/String; move-result-object v1 .line 85 iget-object v2, p0, Lcom/moji/FragmentTabsAdapter;->a:Landroid/content/Context; check-cast v2, Landroid/support/v4/app/FragmentActivity; invoke-virtual {v2}, Landroid/support/v4/app/FragmentActivity;->getSupportFragmentManager()Landroid/support/v4/app/FragmentManager; move-result-object v2 invoke-virtual {v2, v1}, Landroid/support/v4/app/FragmentManager;->findFragmentByTag(Ljava/lang/String;)Landroid/support/v4/app/Fragment; move-result-object v2 if-eqz v2, :cond_1 return-object v2 .line 89 :cond_1 invoke-virtual {p0, p2}, Lcom/moji/FragmentTabsAdapter;->getItem(I)Landroid/support/v4/app/Fragment; move-result-object v2 .line 90 invoke-virtual {p1}, Landroid/view/ViewGroup;->getId()I move-result v3 invoke-virtual {v0, v3, v2, v1}, Landroid/support/v4/app/FragmentTransaction;->add(ILandroid/support/v4/app/Fragment;Ljava/lang/String;)Landroid/support/v4/app/FragmentTransaction; .line 92 invoke-virtual {p0, p1, p2, v2}, Lcom/moji/FragmentTabsAdapter;->setPrimaryItem(Landroid/view/ViewGroup;ILjava/lang/Object;)V .line 93 invoke-virtual {v0}, Landroid/support/v4/app/FragmentTransaction;->commitAllowingStateLoss()I .line 94 iget-object p1, p0, Lcom/moji/FragmentTabsAdapter;->a:Landroid/content/Context; check-cast p1, Landroid/support/v4/app/FragmentActivity; invoke-virtual {p1}, Landroid/support/v4/app/FragmentActivity;->getSupportFragmentManager()Landroid/support/v4/app/FragmentManager; move-result-object p1 invoke-virtual {p1}, Landroid/support/v4/app/FragmentManager;->executePendingTransactions()Z return-object v2 .end method .method public onTabChanged(Ljava/lang/String;)V .locals 1 .line 126 iget-object p1, p0, Lcom/moji/FragmentTabsAdapter;->b:Landroid/widget/TabHost; invoke-virtual {p1}, Landroid/widget/TabHost;->getCurrentTab()I move-result p1 .line 127 iget-object v0, p0, Lcom/moji/FragmentTabsAdapter;->c:Landroid/support/v4/view/ViewPager; invoke-virtual {v0, p1}, Landroid/support/v4/view/ViewPager;->setCurrentItem(I)V return-void .end method