package com.ttstd.dialer.view;

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

import java.util.List;

public class ApkPagerAdapter extends FragmentPagerAdapter {

    private List<Fragment> fragments;

    public ApkPagerAdapter(FragmentManager fm) {
        super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
    }

    public void setFragments(List<Fragment> fragments) {
        this.fragments = fragments;
        notifyDataSetChanged();
    }

    @Override
    public Fragment getItem(int position) {
        return fragments.get(position);
    }

    @Override
    public int getCount() {
        return fragments == null ? 0 : fragments.size();
    }

    // 解决数据更新不刷新的问题
    @Override
    public int getItemPosition(Object object) {
        return POSITION_NONE;
    }

    @Override
    public long getItemId(int position) {
        // 返回Fragment的hashCode，或者任何能唯一标识该Fragment实例的值。
        // 确保当fragments列表更新后，新的Fragment实例会有新的ID。
        if (fragments != null && position < fragments.size()) {
            return fragments.get(position).hashCode();
        }
        return super.getItemId(position);
    }

}