BorderlessLayoutPosition.java 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. package epson.print.phlayout;
  2. import android.graphics.Point;
  3. import android.graphics.Rect;
  4. import android.graphics.RectF;
  5. import epson.common.Info_paper;
  6. import epson.print.EPImage;
  7. class BorderlessLayoutPosition implements ILayoutPosition {
  8. private int layout = 2;
  9. private int layoutMulti = 0;
  10. private int[] mBorderlessPrintArea = new int[2];
  11. private int mBottomMargin = 0;
  12. private boolean mIsPaperLandScape = false;
  13. private int mLeftMargin = 0;
  14. private int mPaperHeight = 0;
  15. private int mPaperWidth = 0;
  16. private AltRect mPreviewPaperRect = new AltRect();
  17. private AltRectF mPreviewPrintAreaRect = new AltRectF();
  18. private int mRightMargin = 0;
  19. private int mTopMargin = 0;
  20. BorderlessLayoutPosition() {
  21. }
  22. public int getLayoutId() {
  23. return layout;
  24. }
  25. public int getLeftMargin() {
  26. return (int) (((float) mPreviewPaperRect.left) - mPreviewPrintAreaRect.left);
  27. }
  28. public int getRightMargin() {
  29. return (int) (mPreviewPrintAreaRect.right - ((float) mPreviewPaperRect.right));
  30. }
  31. public int getTopMargin() {
  32. return (int) (((float) mPreviewPaperRect.top) - mPreviewPrintAreaRect.top);
  33. }
  34. public int getBottomMargin() {
  35. return (int) (mPreviewPrintAreaRect.bottom - ((float) mPreviewPaperRect.bottom));
  36. }
  37. public RectF getPreviewImageCircumscribedTargetSize() {
  38. return mPreviewPrintAreaRect.getRectF();
  39. }
  40. public boolean isPreviewImageSizeValid() {
  41. return mPreviewPaperRect.right - mPreviewPaperRect.left > 0 && mPreviewPaperRect.bottom - mPreviewPaperRect.top > 0;
  42. }
  43. private AltRectF getPreviewImageAltRect() {
  44. return mPreviewPrintAreaRect;
  45. }
  46. public void setPaperLandscape(boolean z) {
  47. mIsPaperLandScape = z;
  48. }
  49. public boolean getIsPaperLandscape() {
  50. return mIsPaperLandScape;
  51. }
  52. public Rect getPreviewPaperRect() {
  53. return mPreviewPaperRect.getRect();
  54. }
  55. /* access modifiers changed from: package-private */
  56. @VisibleForTesting
  57. public AltRect getPreviewPaperAltRect() {
  58. return mPreviewPaperRect;
  59. }
  60. /* access modifiers changed from: package-private */
  61. @VisibleForTesting
  62. public void setPaperAndImageSize_forTest(int i, int i2, int i3, int i4) {
  63. mPaperWidth = i;
  64. mPaperHeight = i2;
  65. int[] iArr = mBorderlessPrintArea;
  66. iArr[0] = i3;
  67. iArr[1] = i4;
  68. }
  69. /* access modifiers changed from: package-private */
  70. @VisibleForTesting
  71. public void setMargin_forTest(int[] iArr) {
  72. mLeftMargin = iArr[0];
  73. mTopMargin = iArr[1];
  74. mRightMargin = iArr[2];
  75. mBottomMargin = iArr[3];
  76. }
  77. public void setLayoutId(int i, int i2) {
  78. layout = i;
  79. layoutMulti = i2;
  80. }
  81. public void setPaperAndCalcPreviewPosition(Info_paper info_paper, int i, int i2, Point point) {
  82. setPaperSizeFromPaperInfo(info_paper);
  83. if (mPaperWidth <= 0 || mPaperHeight <= 0) {
  84. mPaperWidth = 2892;
  85. mPaperHeight = 4125;
  86. }
  87. calculateLayoutSizeBorderless(i, i2, point);
  88. }
  89. /* access modifiers changed from: package-private */
  90. @VisibleForTesting
  91. public void calculateLayoutSizeBorderless(int i, int i2, Point point) {
  92. int i3;
  93. int i4;
  94. int i5;
  95. int i6;
  96. int i7;
  97. int i8 = i;
  98. int i9 = i2;
  99. Point point2 = point;
  100. int[] iArr = new int[4];
  101. if ((!mIsPaperLandScape || mPaperWidth > mPaperHeight) && (mIsPaperLandScape || mPaperWidth <= mPaperHeight)) {
  102. int i10 = (int) (((double) i9) * 0.800000011920929d);
  103. int i11 = mPaperWidth;
  104. int i12 = mPaperHeight;
  105. int i13 = (int) (((float) (i10 * i11)) / ((float) i12));
  106. int[] iArr2 = mBorderlessPrintArea;
  107. int i14 = (int) (((float) (iArr2[0] * i13)) / ((float) i11));
  108. int i15 = (int) (((float) (iArr2[1] * i10)) / ((float) i12));
  109. int i16 = (int) (((double) i8) * 0.800000011920929d);
  110. if (i13 > i16) {
  111. int i17 = (int) (((float) (i16 * i12)) / ((float) i11));
  112. i6 = (int) (((float) (iArr2[0] * i16)) / ((float) i11));
  113. i5 = (int) (((float) (iArr2[1] * i17)) / ((float) i12));
  114. i3 = i17;
  115. i7 = i16;
  116. } else {
  117. i6 = i14;
  118. int i18 = i15;
  119. i3 = i10;
  120. i7 = i13;
  121. i5 = i18;
  122. }
  123. float f = ((float) i3) / ((float) mPaperHeight);
  124. iArr[0] = (int) (((float) mLeftMargin) * f);
  125. iArr[1] = (int) (((float) mTopMargin) * f);
  126. i4 = 2;
  127. iArr[2] = (int) (((float) mRightMargin) * f);
  128. iArr[3] = (int) (((float) mBottomMargin) * f);
  129. } else {
  130. int i19 = (int) (((double) i8) * 0.800000011920929d);
  131. int i20 = mPaperWidth;
  132. int i21 = mPaperHeight;
  133. int i22 = (int) (((float) (i19 * i20)) / ((float) i21));
  134. int[] iArr3 = mBorderlessPrintArea;
  135. int i23 = (int) (((float) (i19 * iArr3[1])) / ((float) i21));
  136. int i24 = (int) (((float) (iArr3[0] * i22)) / ((float) i20));
  137. int i25 = (int) (((double) i9) * 0.800000011920929d);
  138. if (i22 > i25) {
  139. i19 = (int) (((float) (i25 * i21)) / ((float) i20));
  140. i23 = (int) (((float) (iArr3[1] * i19)) / ((float) i21));
  141. i24 = (int) (((float) (iArr3[0] * i25)) / ((float) i20));
  142. i22 = i25;
  143. }
  144. float f2 = ((float) i7) / ((float) mPaperHeight);
  145. iArr[0] = (int) (((float) mTopMargin) * f2);
  146. iArr[1] = (int) (((float) mRightMargin) * f2);
  147. iArr[2] = (int) (((float) mBottomMargin) * f2);
  148. iArr[3] = (int) (((float) mLeftMargin) * f2);
  149. i4 = 2;
  150. }
  151. AltRect altRect = mPreviewPaperRect;
  152. altRect.left = (i8 - i7) / i4;
  153. altRect.top = (i9 - i3) / i4;
  154. altRect.right = altRect.left + i7;
  155. AltRect altRect2 = mPreviewPaperRect;
  156. altRect2.bottom = altRect2.top + i3;
  157. mPreviewPrintAreaRect = new AltRectF();
  158. mPreviewPrintAreaRect.left = (float) (mPreviewPaperRect.left - iArr[0]);
  159. mPreviewPrintAreaRect.top = (float) (mPreviewPaperRect.top - iArr[1]);
  160. AltRectF altRectF = mPreviewPrintAreaRect;
  161. altRectF.right = altRectF.left + ((float) i6);
  162. AltRectF altRectF2 = mPreviewPrintAreaRect;
  163. altRectF2.bottom = altRectF2.top + ((float) i5);
  164. point2.x = (int) (((mPreviewPrintAreaRect.right - mPreviewPrintAreaRect.left) / 2.0f) + mPreviewPrintAreaRect.left);
  165. point2.y = (int) (((mPreviewPrintAreaRect.bottom - mPreviewPrintAreaRect.top) / 2.0f) + mPreviewPrintAreaRect.top);
  166. }
  167. /* access modifiers changed from: package-private */
  168. @VisibleForTesting
  169. public void setPaperSizeFromPaperInfo(Info_paper info_paper) {
  170. mPaperWidth = info_paper.getPaper_width();
  171. mPaperHeight = info_paper.getPaper_height();
  172. mBorderlessPrintArea[0] = info_paper.getPaper_width_boderless();
  173. mBorderlessPrintArea[1] = info_paper.getPaper_height_boderless();
  174. mLeftMargin = -info_paper.getLeftMargin();
  175. mTopMargin = -info_paper.getTopMargin();
  176. mRightMargin = -info_paper.getRightMargin();
  177. mBottomMargin = -info_paper.getBottomMargin();
  178. }
  179. public void copyPreviewPrintAreaFromEpImage(@NonNull EPImage ePImage) {
  180. mIsPaperLandScape = ePImage.isPaperLandScape;
  181. mPreviewPrintAreaRect.left = (float) ePImage.previewPaperRectLeft;
  182. mPreviewPrintAreaRect.top = (float) ePImage.previewPaperRectTop;
  183. mPreviewPrintAreaRect.right = (float) ePImage.previewPaperRectRight;
  184. mPreviewPrintAreaRect.bottom = (float) ePImage.previewPaperRectBottom;
  185. }
  186. public void copyPreviewPrintAreaToEpImage(EPImage ePImage) {
  187. ePImage.isPaperLandScape = mIsPaperLandScape;
  188. ePImage.previewPaperRectLeft = (int) mPreviewPrintAreaRect.left;
  189. ePImage.previewPaperRectTop = (int) mPreviewPrintAreaRect.top;
  190. ePImage.previewPaperRectRight = (int) mPreviewPrintAreaRect.right;
  191. ePImage.previewPaperRectBottom = (int) mPreviewPrintAreaRect.bottom;
  192. }
  193. }