CSampleScreenManager.java 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. package com.compdfkit.pdfviewer;
  2. import android.view.View;
  3. import androidx.constraintlayout.widget.ConstraintSet;
  4. import com.compdfkit.core.annotation.CPDFAnnotation;
  5. import com.compdfkit.pdfviewer.databinding.PdfSampleActivityBinding;
  6. import com.compdfkit.tools.common.utils.animation.CFillScreenManager;
  7. import com.compdfkit.tools.common.utils.animation.ConstraintSetUtils;
  8. import com.compdfkit.tools.common.views.pdfproperties.CAnnotationType;
  9. import com.compdfkit.tools.common.views.pdfview.CPreviewMode;
  10. public class CSampleScreenManager {
  11. private PdfSampleActivityBinding binding;
  12. public CFillScreenManager fillScreenManager = new CFillScreenManager();
  13. private boolean isFillScreen;
  14. private ConstraintSet constraintSet = new ConstraintSet();
  15. private ConstraintSetUtils constraintSetUtils = new ConstraintSetUtils();
  16. public void bind(PdfSampleActivityBinding mainBinding){
  17. this.binding = mainBinding;
  18. constraintSet.clone(binding.getRoot());
  19. fillScreenManager.bindRightToolViewList(binding.pdfView.slideBar);
  20. fillScreenManager.bindBottomToolViewList(binding.pdfView.indicatorView);
  21. fillScreenManager.bindBottomToolViewList(binding.flBottomToolBar);
  22. fillScreenManager.bindBottomToolViewList(binding.signatureToolBar);
  23. }
  24. public void changeWindowStatus(CPreviewMode mode){
  25. if (mode == CPreviewMode.Viewer){
  26. fillScreenManager.removeToolView(binding.flBottomToolBar);
  27. constraintSetUtils.hideFromBottom(constraintSet, binding.flBottomToolBar);
  28. }else if (mode == CPreviewMode.Annotation){
  29. fillScreenManager.bindBottomToolViewList(binding.flBottomToolBar);
  30. binding.annotationToolBar.setVisibility(View.VISIBLE);
  31. binding.editToolBar.setVisibility(View.GONE);
  32. binding.formToolBar.setVisibility(View.GONE);
  33. binding.signatureToolBar.setVisibility(View.GONE);
  34. constraintSetUtils.showFromBottom(constraintSet, binding.flBottomToolBar);
  35. } else if (mode == CPreviewMode.Edit) {
  36. fillScreenManager.bindBottomToolViewList(binding.flBottomToolBar);
  37. binding.annotationToolBar.setVisibility(View.GONE);
  38. binding.editToolBar.setVisibility(View.VISIBLE);
  39. binding.formToolBar.setVisibility(View.GONE);
  40. binding.signatureToolBar.setVisibility(View.GONE);
  41. constraintSetUtils.showFromBottom(constraintSet, binding.flBottomToolBar);
  42. } else if (mode == CPreviewMode.Form){
  43. fillScreenManager.bindBottomToolViewList(binding.flBottomToolBar);
  44. binding.annotationToolBar.setVisibility(View.GONE);
  45. binding.editToolBar.setVisibility(View.GONE);
  46. binding.formToolBar.setVisibility(View.VISIBLE);
  47. binding.signatureToolBar.setVisibility(View.GONE);
  48. constraintSetUtils.showFromBottom(constraintSet, binding.flBottomToolBar);
  49. } else if (mode == CPreviewMode.Signature){
  50. fillScreenManager.bindBottomToolViewList(binding.flBottomToolBar);
  51. binding.annotationToolBar.setVisibility(View.GONE);
  52. binding.editToolBar.setVisibility(View.GONE);
  53. binding.formToolBar.setVisibility(View.GONE);
  54. binding.signatureToolBar.setVisibility(View.VISIBLE);
  55. constraintSetUtils.showFromBottom(constraintSet, binding.flBottomToolBar);
  56. }
  57. constraintSetUtils.apply(constraintSet, binding.getRoot());
  58. }
  59. public void changeWindowStatus(CAnnotationType type){
  60. if (type == CAnnotationType.INK){
  61. fillScreenChange();
  62. fillScreenManager.bindTopToolView(binding.inkCtrlView);
  63. binding.inkCtrlView.setVisibility(View.VISIBLE);
  64. }else {
  65. if (isFillScreen){
  66. fillScreenChange();
  67. }
  68. binding.inkCtrlView.setVisibility(View.GONE);
  69. fillScreenManager.removeToolView(binding.inkCtrlView);
  70. }
  71. }
  72. public void changeWindowStatus(CPDFAnnotation.Type pdfType){
  73. if (pdfType == CPDFAnnotation.Type.INK){
  74. fillScreenChange();
  75. fillScreenManager.hideFromTop(binding.pdfToolBar, 200);
  76. fillScreenManager.hideFromBottom(binding.flBottomToolBar, 200);
  77. }else {
  78. if (isFillScreen) {
  79. fillScreenChange();
  80. }
  81. binding.inkCtrlView.setVisibility(View.GONE);
  82. fillScreenManager.removeToolView(binding.inkCtrlView);
  83. }
  84. }
  85. public void fillScreenChange() {
  86. fillScreenManager.fillScreenChange(!isFillScreen);
  87. if (!isFillScreen) {
  88. //enter full screen
  89. constraintSetUtils.hideFromTop(constraintSet, binding.flTool);
  90. constraintSetUtils.hideFromBottom(constraintSet, binding.flBottomToolBar);
  91. constraintSetUtils.hideFromBottom(constraintSet, binding.signatureToolBar);
  92. isFillScreen = true;
  93. } else {
  94. //enter normal state
  95. constraintSetUtils.showFromTop(constraintSet, binding.flTool);
  96. //show bottom annotationBar
  97. if (fillScreenManager.bottomToolViewList.contains(binding.flBottomToolBar)) {
  98. constraintSetUtils.showFromBottom(constraintSet, binding.flBottomToolBar);
  99. }else {
  100. constraintSetUtils.hideFromBottom(constraintSet, binding.flBottomToolBar);
  101. }
  102. if (fillScreenManager.topToolViewList.contains(binding.signStatusView)) {
  103. constraintSetUtils.show(constraintSet, binding.signStatusView);
  104. }else {
  105. constraintSetUtils.hide(constraintSet, binding.signStatusView);
  106. }
  107. isFillScreen = false;
  108. }
  109. constraintSetUtils.apply(constraintSet, binding.getRoot());
  110. }
  111. public void constraintShow(View view){
  112. constraintSetUtils.show(constraintSet, view);
  113. constraintSetUtils.apply(constraintSet, binding.getRoot());
  114. }
  115. public void constraintHide(View view){
  116. constraintSetUtils.hide(constraintSet, view);
  117. constraintSetUtils.apply(constraintSet, binding.getRoot());
  118. }
  119. }