FragmentChangeManager.smali
.class public Lcom/tablayout/utils/FragmentChangeManager;
.super Ljava/lang/Object;
.source "FragmentChangeManager.java"
# instance fields
.field private mContainerViewId:I
.field private mCurrentTab:I
.field private mFragmentManager:Landroidx/fragment/app/FragmentManager;
.field private mFragments:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Landroidx/fragment/app/Fragment;",
">;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Landroidx/fragment/app/FragmentManager;ILjava/util/ArrayList;)V
.registers 4
.param p1, "fm" # Landroidx/fragment/app/FragmentManager;
.param p2, "containerViewId" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroidx/fragment/app/FragmentManager;",
"I",
"Ljava/util/ArrayList<",
"Landroidx/fragment/app/Fragment;",
">;)V"
}
.end annotation
.line 17
.local p3, "fragments":Ljava/util/ArrayList;, "Ljava/util/ArrayList<Landroidx/fragment/app/Fragment;>;"
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 18
iput-object p1, p0, Lcom/tablayout/utils/FragmentChangeManager;->mFragmentManager:Landroidx/fragment/app/FragmentManager;
.line 19
iput p2, p0, Lcom/tablayout/utils/FragmentChangeManager;->mContainerViewId:I
.line 20
iput-object p3, p0, Lcom/tablayout/utils/FragmentChangeManager;->mFragments:Ljava/util/ArrayList;
.line 21
invoke-direct {p0}, Lcom/tablayout/utils/FragmentChangeManager;->initFragments()V
.line 22
return-void
.end method
.method private initFragments()V
.registers 5
.line 26
iget-object v0, p0, Lcom/tablayout/utils/FragmentChangeManager;->mFragments:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_6
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_26
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroidx/fragment/app/Fragment;
.line 27
.local v1, "fragment":Landroidx/fragment/app/Fragment;
iget-object v2, p0, Lcom/tablayout/utils/FragmentChangeManager;->mFragmentManager:Landroidx/fragment/app/FragmentManager;
invoke-virtual {v2}, Landroidx/fragment/app/FragmentManager;->beginTransaction()Landroidx/fragment/app/FragmentTransaction;
move-result-object v2
iget v3, p0, Lcom/tablayout/utils/FragmentChangeManager;->mContainerViewId:I
invoke-virtual {v2, v3, v1}, Landroidx/fragment/app/FragmentTransaction;->add(ILandroidx/fragment/app/Fragment;)Landroidx/fragment/app/FragmentTransaction;
move-result-object v2
invoke-virtual {v2, v1}, Landroidx/fragment/app/FragmentTransaction;->hide(Landroidx/fragment/app/Fragment;)Landroidx/fragment/app/FragmentTransaction;
move-result-object v2
invoke-virtual {v2}, Landroidx/fragment/app/FragmentTransaction;->commit()I
.line 28
.end local v1 # "fragment":Landroidx/fragment/app/Fragment;
goto :goto_6
.line 30
:cond_26
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/tablayout/utils/FragmentChangeManager;->setFragments(I)V
.line 31
return-void
.end method
# virtual methods
.method public getCurrentFragment()Landroidx/fragment/app/Fragment;
.registers 3
.line 53
iget-object v0, p0, Lcom/tablayout/utils/FragmentChangeManager;->mFragments:Ljava/util/ArrayList;
iget v1, p0, Lcom/tablayout/utils/FragmentChangeManager;->mCurrentTab:I
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroidx/fragment/app/Fragment;
return-object v0
.end method
.method public getCurrentTab()I
.registers 2
.line 49
iget v0, p0, Lcom/tablayout/utils/FragmentChangeManager;->mCurrentTab:I
return v0
.end method
.method public setFragments(I)V
.registers 5
.param p1, "index" # I
.line 35
const/4 v0, 0x0
.local v0, "i":I
:goto_1
iget-object v1, p0, Lcom/tablayout/utils/FragmentChangeManager;->mFragments:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
if-ge v0, v1, :cond_26
.line 36
iget-object v1, p0, Lcom/tablayout/utils/FragmentChangeManager;->mFragmentManager:Landroidx/fragment/app/FragmentManager;
invoke-virtual {v1}, Landroidx/fragment/app/FragmentManager;->beginTransaction()Landroidx/fragment/app/FragmentTransaction;
move-result-object v1
.line 37
.local v1, "ft":Landroidx/fragment/app/FragmentTransaction;
iget-object v2, p0, Lcom/tablayout/utils/FragmentChangeManager;->mFragments:Ljava/util/ArrayList;
invoke-virtual {v2, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Landroidx/fragment/app/Fragment;
.line 38
.local v2, "fragment":Landroidx/fragment/app/Fragment;
if-ne v0, p1, :cond_1d
.line 39
invoke-virtual {v1, v2}, Landroidx/fragment/app/FragmentTransaction;->show(Landroidx/fragment/app/Fragment;)Landroidx/fragment/app/FragmentTransaction;
goto :goto_20
.line 41
:cond_1d
invoke-virtual {v1, v2}, Landroidx/fragment/app/FragmentTransaction;->hide(Landroidx/fragment/app/Fragment;)Landroidx/fragment/app/FragmentTransaction;
.line 43
:goto_20
invoke-virtual {v1}, Landroidx/fragment/app/FragmentTransaction;->commit()I
.line 35
.end local v1 # "ft":Landroidx/fragment/app/FragmentTransaction;
.end local v2 # "fragment":Landroidx/fragment/app/Fragment;
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 45
.end local v0 # "i":I
:cond_26
iput p1, p0, Lcom/tablayout/utils/FragmentChangeManager;->mCurrentTab:I
.line 46
return-void
.end method