package uprrp.tania.fragments; import android.graphics.Canvas; import android.graphics.Color; import android.os.Bundle; import android.os.Environment; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.Toast; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import com.github.barteksc.pdfviewer.PDFView; import com.github.barteksc.pdfviewer.listener.OnDrawListener; import com.github.barteksc.pdfviewer.listener.OnPageChangeListener; import com.github.barteksc.pdfviewer.listener.OnPageErrorListener; import com.github.barteksc.pdfviewer.listener.OnRenderListener; import com.github.barteksc.pdfviewer.listener.OnTapListener; import java.io.File; import uprrp.tania.R; public class ConsentFragment extends Fragment { private static final String TAG = "ConsentFragment"; private PDFView pdfView; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_consent, container, false); this.pdfView = view.findViewById(R.id.pdf_viewer); File consentFile = new File(Environment.getExternalStorageDirectory().getPath() + getString(R.string.consentFileName)); this.pdfView.fromFile(consentFile) .password(null) .defaultPage(0) .enableSwipe(true) .swipeHorizontal(false) .enableDoubletap(true) .onDraw(new OnDrawListener() { @Override public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) { //Code here if you want to do something } }) .onDrawAll(new OnDrawListener() { @Override public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) { //Code here if you want to do something } }) .onPageError(new OnPageErrorListener() { @Override public void onPageError(int page, Throwable t) { Toast.makeText(getContext(), "Error opening page " + page, Toast.LENGTH_LONG).show(); } }) .onPageChange(new OnPageChangeListener() { @Override public void onPageChanged(int page, int pageCount) { //Code here } }) .onTap(new OnTapListener() { @Override public boolean onTap(MotionEvent e) { return true; } }) .onRender(new OnRenderListener() { @Override public void onInitiallyRendered(int nbPages, float pageWidth, float pageHeight) { pdfView.fitToWidth(); } }) .enableAnnotationRendering(true) .invalidPageColor(Color.WHITE) .load(); return view; } }