package com.cscodetech.moverslorry.ui;

import android.os.Bundle;
import android.view.View;

import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;

import com.cscodetech.moverslorry.R;
import com.cscodetech.moverslorry.databinding.ActivityMyloadBinding;
import com.cscodetech.moverslorry.fragment.CompletLoadFragment;
import com.cscodetech.moverslorry.fragment.CurrentLoadFragment;

import java.util.ArrayList;
import java.util.List;

public class MyLoadActivity extends BaseActivity {

    private ActivityMyloadBinding binding;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = ActivityMyloadBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        TabFragmentAdapter adapter = new TabFragmentAdapter(getSupportFragmentManager());
        adapter.addFragment(CurrentLoadFragment.newInstance(), getString(R.string.mycurrentloads));
        adapter.addFragment(CompletLoadFragment.newInstance(), getString(R.string.completed));
        binding.viewPager.setAdapter(adapter);
        binding.tab.setupWithViewPager(binding.viewPager);

        // Wire clicks via ViewBinding
        binding.imgBack.setOnClickListener(this::onBindClick);
    }

    public void onBindClick(View view) {
        if (view.getId() == R.id.img_back) {
            finish();
        }
    }

    public class TabFragmentAdapter extends FragmentPagerAdapter {
        private final List<Fragment> fragmentList = new ArrayList<>();
        private final List<String> fragmentTitleList = new ArrayList<>();

        public TabFragmentAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            if(position == 0) return new CurrentLoadFragment();
            if(position == 1) return new CompletLoadFragment();
            return null;
        }

        @Override
        public int getCount() {
            return fragmentList.size();
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return fragmentTitleList.get(position);
        }

        public void addFragment(Fragment fragment, String title) {
            fragmentList.add(fragment);
            fragmentTitleList.add(title);
        }
    }
}
