DocumentBrowserDetailFragment.java 4.44 KB
package com.sunvote.xpadapp.fragments;

import android.annotation.TargetApi;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

import com.github.barteksc.pdfviewer.PDFView;
import com.github.barteksc.pdfviewer.listener.OnRenderListener;
import com.sunvote.xpadapp.MainActivity;
import com.sunvote.xpadapp.R;
import com.sunvote.xpadapp.base.BaseFragment;
import com.sunvote.xpadapp.db.modal.BillInfo;
import com.sunvote.xpadapp.db.modal.MultiTitleItem;
import com.sunvote.xpadapp.db.modal.UIType;
import com.sunvote.xpadapp.db.modal.VoteResult;
import com.sunvote.xpadapp.utils.SharedPreferencesUtil;
import com.sunvote.xpadcomm.XPadApi;
import com.sunvote.xpadcomm.XPadApiInterface.VoteInfo;
import com.ycanfunc.util.StringUtils;

import java.io.File;

public class DocumentBrowserDetailFragment extends BaseFragment {
	private PDFView pdfView;
	private BillInfo bill;
	//pdf 页码
	public int pdfPageNum = 0;
	private String filename;

	private TextView tvTitle;
	private Button btnLookPdf;
	private MainActivity mact;

	public ContentVoteOnBack contentBackListener;
	private String DATABASE_PATH = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
	public interface ContentVoteOnBack {
		void onBack(VoteResult result);
	}

	public void setInfo(BillInfo billInfo) {
		bill = billInfo;
	}

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
		View view = inflater.inflate(R.layout.fragment_document_browser_detail, container, false);
		view.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				;//
			}
		});
		mact = (MainActivity) getActivity();

		filename = DATABASE_PATH + "/sunvote/" + mact.meetingId + "/" + bill.billFile;
		tvTitle = (TextView) view.findViewById(R.id.content_detail_title);
		if(bill!=null){
			if (bill.title != null) {
				tvTitle.setText(bill.title);
			}
		}
		pdfView =  view.findViewById(R.id.content_detail_pdfview);
		openPdfFile();
		btnLookPdf= (Button) view.findViewById(R.id.btn_look_pdf);
		btnLookPdf.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				pdfPageNum=pdfView.getCurrentPage()+1;
				//pdfPageNum=pdfView.getCurrentItem()+1;
				FragmentManager fm = getFragmentManager();
				FragmentTransaction tx = fm.beginTransaction();
				PDFContextShowFragment pdfShow = new PDFContextShowFragment();
			    mact.pdfFragment = pdfShow;
				pdfShow.setInfo(filename, bill.billFile,pdfPageNum + "","0",false);
				tx.add(R.id.frame_content, pdfShow, "pdfShow");
				tx.addToBackStack(null);
				tx.commitAllowingStateLoss();
			}
		});

		ImageButton btnBack = (ImageButton) view.findViewById(R.id.content_detail_btnback);
		btnBack.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				goBack();
			}
		});

		return view;
	}


	private void goBack() {
		/*if (contentBackListener != null) {
			VoteResult result=new VoteResult();
			contentBackListener.onBack(result);
		}*/
		FragmentManager fm = getFragmentManager();
		FragmentTransaction tx = fm.beginTransaction();
		tx.remove(DocumentBrowserDetailFragment.this);
		tx.commit();
	}


	private void openPdfFile(){
		File file=new File(filename);
		if (file.exists()) {
			pdfView.fromFile(file)
					.enableSwipe(true) // allows to block changing pages using swipe
					.swipeHorizontal(false)
					.enableDoubletap(true)
					.defaultPage(0)
					//.onPageChange(onPageChangeListener)
					.onRender(new OnRenderListener() {
						@Override
						public void onInitiallyRendered(int nbPages, float pageWidth, float pageHeight) {
							pdfView.fitToWidth(pdfPageNum-1);
						}
					})
					.enableAnnotationRendering(false)
					.password(null)
					.scrollHandle(null)
					.enableAntialiasing(true)
					.spacing(0)
					.load();
		}else {
			Toast.makeText(getActivity(),"议案文件未找到",Toast.LENGTH_LONG).show();
		}
	}
}