DocumentBrowserFragment.java 4.93 KB
package com.sunvote.xpadapp.fragments;

import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;

import com.sunvote.util.LogUtil;
import com.sunvote.xpadapp.R;
import com.sunvote.xpadapp.adapter.DocumentAdapter;
import com.sunvote.xpadapp.base.BaseFragment;
import com.sunvote.xpadapp.db.modal.BillInfo;

import java.util.ArrayList;

public class DocumentBrowserFragment extends BaseFragment {
    private String title;
    private String TAG = "DocumentBrowserFragment";
    private ArrayList<BillInfo> aryContent = null;
    private TextView tvTitle;
    private ListView listview;
    private DocumentAdapter mAdapter;
    private boolean isShowBack;

    public void setInfo(ArrayList<BillInfo> docList, boolean showBack) {
        isShowBack = showBack;
        aryContent = docList;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        LogUtil.d(TAG, "onCreateView");
        View view = inflater.inflate(R.layout.fragment_document_browser, container, false);
        view.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
            }
        });
        ImageButton btnBack =  view.findViewById(R.id.document_browser_btnback);
        if (isShowBack) {
            btnBack.setVisibility(View.VISIBLE);
        }
        btnBack.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                goBack();
            }
        });
        listview =  view.findViewById(R.id.document_browser_listview);
        listview.setFastScrollAlwaysVisible(false);
        mAdapter = new DocumentAdapter(getActivity(),aryContent);
        listview.setAdapter(mAdapter);
        listview.setFastScrollAlwaysVisible(false);
        tvTitle =  view.findViewById(R.id.document_browser_title);
        if (title != null) {
            tvTitle.setText(title);
        } else {
            tvTitle.setText(getString(R.string.doc_title));
        }
        Button btnPageUp =  view.findViewById(R.id.document_browser_pageup);
        Button btnPageDown =  view.findViewById(R.id.document_browser_pagedown);
        btnPageUp.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                listview.smoothScrollByOffset(-2);
            }
        });
        btnPageDown.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                listview.smoothScrollByOffset(2);
            }
        });
        listview.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                LogUtil.d(TAG, "onItemClick:" + position);
                BillInfo it = aryContent.get(position);
                showDetail(it);
            }

        });
        return view;
    }

    private void goBack() {
        FragmentManager fm = getFragmentManager();
        FragmentTransaction tx = fm.beginTransaction();
        tx.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out);
        tx.remove(DocumentBrowserFragment.this);
        tx.commit();
    }

    private void showDetail(BillInfo item) {
        if (item.billType == 20 || item.billType == 999) {
            ArrayList<BillInfo> list = null;
            if(item.billType == 20) {
                list = mMainActivity.dbm.getSubBillItems(mMainActivity.meetingId, item.billId);
            }else{
                list = mMainActivity.dbm.getBillItemsMain(mMainActivity.meetingId, item.billNo);
            }
            FragmentManager fm = getFragmentManager();
            FragmentTransaction tx = fm.beginTransaction();
            DocumentBrowserFragment fDetail = new DocumentBrowserFragment();
            fDetail.setInfo(list, true);
            fDetail.title = item.title;
            tx.add(R.id.frame_content, fDetail, "fDetail");
            tx.addToBackStack(null);
            tx.commit();
            return;
        }
        if (item.billFile == null || item.billFile.length() == 0) {
            return;
        }
        FragmentManager fm = getFragmentManager();
        FragmentTransaction tx = fm.beginTransaction();
        MultiContentDetailFragment fDetail = new MultiContentDetailFragment();
        fDetail.setInfo(item, null, true,1,1);
        tx.add(R.id.frame_content, fDetail, "fDetail");
        tx.addToBackStack(null);
        tx.commit();
    }
}