diff --git a/feature/wallet/src/main/java/one/nem/kidshift/wallet/WalletContentFragment.java b/feature/wallet/src/main/java/one/nem/kidshift/wallet/WalletContentFragment.java index bb655d8..312a38a 100644 --- a/feature/wallet/src/main/java/one/nem/kidshift/wallet/WalletContentFragment.java +++ b/feature/wallet/src/main/java/one/nem/kidshift/wallet/WalletContentFragment.java @@ -26,6 +26,10 @@ public class WalletContentFragment extends Fragment { // Required empty public constructor } + public static Fragment newInstance() { // WIP + return new WalletContentFragment(); + } + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/feature/wallet/src/main/java/one/nem/kidshift/wallet/WalletParentWrapperFragment.java b/feature/wallet/src/main/java/one/nem/kidshift/wallet/WalletParentWrapperFragment.java index 995abbf..38d734b 100644 --- a/feature/wallet/src/main/java/one/nem/kidshift/wallet/WalletParentWrapperFragment.java +++ b/feature/wallet/src/main/java/one/nem/kidshift/wallet/WalletParentWrapperFragment.java @@ -2,14 +2,50 @@ package one.nem.kidshift.wallet; import android.os.Bundle; +import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; +import androidx.fragment.app.FragmentManager; +import androidx.viewpager2.adapter.FragmentStateAdapter; +import androidx.viewpager2.widget.ViewPager2; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import com.google.android.material.tabs.TabLayout; +import com.google.android.material.tabs.TabLayoutMediator; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +import javax.inject.Inject; + +import dagger.hilt.android.AndroidEntryPoint; +import one.nem.kidshift.data.ChildData; +import one.nem.kidshift.data.RewardData; +import one.nem.kidshift.model.ChildModel; +import one.nem.kidshift.utils.KSLogger; +import one.nem.kidshift.utils.factory.KSLoggerFactory; + +@AndroidEntryPoint public class WalletParentWrapperFragment extends Fragment { + @Inject + KSLoggerFactory loggerFactory; + + private KSLogger logger; + + @Inject + ChildData childData; + + @Inject + RewardData rewardData; + + private TabLayout tabLayout; + private ViewPager2 viewPager; + public WalletParentWrapperFragment() { // Required empty public constructor } @@ -23,6 +59,59 @@ public class WalletParentWrapperFragment extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_wallet_parent_wrapper, container, false); + View view = inflater.inflate(R.layout.fragment_wallet_parent_wrapper, container, false); + + tabLayout = view.findViewById(R.id.tabLayout); + viewPager = view.findViewById(R.id.viewPager); + + TabAdapter tabAdapter = new TabAdapter(requireActivity()); + + // デバッグ用 + List childList = new ArrayList<>(); + ChildModel child = new ChildModel(); + child.setId("1"); + child.setName("Child 1"); + childList.add(child); + ChildModel child2 = new ChildModel(); + child2.setId("2"); + child2.setName("Child 2"); + childList.add(child2); + + tabAdapter.setChildList(childList); + + viewPager.setAdapter(tabAdapter); + + new TabLayoutMediator(tabLayout, viewPager, (tab, position) -> { + tab.setText("Child " + (position + 1)); + }).attach(); + + + return view; + } + + private static class TabAdapter extends FragmentStateAdapter { + + private List childList; + + public void setChildList(List childList) { + this.childList = childList; + } + + public TabAdapter(@NonNull FragmentActivity fragmentActivity) { + super(fragmentActivity); + } + + + @NonNull + @Override + public Fragment createFragment(int position) { + // デバッグ用 + return WalletContentFragment.newInstance(); + } + + @Override + public int getItemCount() { + return childList == null ? 0 : childList.size(); + } } } \ No newline at end of file