ManuscriptSize.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. package com.epson.cameracopy.printlayout;
  2. import android.content.Context;
  3. import android.graphics.Point;
  4. import android.graphics.PointF;
  5. import com.epson.cameracopy.alt.AdditionalPrinterInfo;
  6. import epson.common.ImageUtil;
  7. public class ManuscriptSize {
  8. static final /* synthetic */ boolean $assertionsDisabled = false;
  9. public static final double INCH_MM = 25.4d;
  10. public static final int SCALE_TYPE_INCH = 2;
  11. public static final int SCALE_TYPE_MM = 1;
  12. private int mBaseDpi;
  13. private String mManuscriptFileName;
  14. private Point mManuscriptPixelSize;
  15. private ManuscriptTypeAdapter mManuscriptTypeAdapter;
  16. interface ManuscriptTypeAdapter {
  17. boolean displayLength();
  18. Point getBasePixelSize(int i);
  19. String getSizeName(Context context);
  20. int getUnitType(Context context);
  21. }
  22. public static double getPixelToPhysicalSizeScale(int i, int i2) {
  23. return i2 == 2 ? 1.0d / ((double) i) : 25.4d / ((double) i);
  24. }
  25. public ManuscriptSize(DocumentSizeInfo documentSizeInfo, String str, int i) {
  26. this.mBaseDpi = i;
  27. switch (documentSizeInfo.getPaperId()) {
  28. case -2:
  29. this.mManuscriptTypeAdapter = new CustomManuscriptSize(documentSizeInfo);
  30. break;
  31. case -1:
  32. this.mManuscriptTypeAdapter = new AutoManuscriptSize(documentSizeInfo);
  33. break;
  34. default:
  35. this.mManuscriptTypeAdapter = new IdManuscriptSize(documentSizeInfo);
  36. break;
  37. }
  38. setManuscriptPixlSize(str);
  39. this.mManuscriptFileName = str;
  40. }
  41. public int getPixelWidth() {
  42. return this.mManuscriptPixelSize.x;
  43. }
  44. public int getPixelHeight() {
  45. return this.mManuscriptPixelSize.y;
  46. }
  47. public PointF getPhysicalSize(Context context) {
  48. double pixelToPhysicalSizeScale = getPixelToPhysicalSizeScale(this.mBaseDpi, this.mManuscriptTypeAdapter.getUnitType(context));
  49. return new PointF((float) (((double) this.mManuscriptPixelSize.x) * pixelToPhysicalSizeScale), (float) (((double) this.mManuscriptPixelSize.y) * pixelToPhysicalSizeScale));
  50. }
  51. public PointF getDocumentSize(Context context) {
  52. ManuscriptTypeAdapter manuscriptTypeAdapter = this.mManuscriptTypeAdapter;
  53. if (manuscriptTypeAdapter instanceof CustomManuscriptSize) {
  54. return ((CustomManuscriptSize) manuscriptTypeAdapter).getCustomDocumentSize(context);
  55. }
  56. return getPhysicalSize(context);
  57. }
  58. public String getSizeName(Context context) {
  59. return this.mManuscriptTypeAdapter.getSizeName(context);
  60. }
  61. public boolean displayLength() {
  62. return this.mManuscriptTypeAdapter.displayLength();
  63. }
  64. public int getUnitType(Context context) {
  65. return this.mManuscriptTypeAdapter.getUnitType(context);
  66. }
  67. public static double calcRate(int i, int i2, int i3, int i4) {
  68. return Math.min(((double) i) / ((double) i3), ((double) i2) / ((double) i4));
  69. }
  70. public static ManuscriptSize load(Context context, String str) {
  71. return new ManuscriptSize(RegistedDocumentSizeList.getInstance(context).getCurrentDocumentSize(), str, AdditionalPrinterInfo.getCurrentPrintModeResolution(context));
  72. }
  73. public String getUnitStr(Context context) {
  74. if (getUnitType(context) == 2) {
  75. return context.getString(R.string.unit_inch);
  76. }
  77. return context.getString(R.string.unit_mm);
  78. }
  79. private void setManuscriptPixlSize(String str) {
  80. Point basePixelSize;
  81. this.mManuscriptPixelSize = new Point();
  82. Point imageSize = ImageUtil.getImageSize(str);
  83. if (imageSize != null && (basePixelSize = this.mManuscriptTypeAdapter.getBasePixelSize(this.mBaseDpi)) != null) {
  84. int i = imageSize.x;
  85. int i2 = imageSize.y;
  86. if ((i2 - i) * (basePixelSize.y - basePixelSize.x) >= 0) {
  87. int i3 = i;
  88. i = i2;
  89. i2 = i3;
  90. }
  91. double calcRate = calcRate(basePixelSize.x, basePixelSize.y, i2, i);
  92. Point point = this.mManuscriptPixelSize;
  93. point.x = (int) (((double) i2) * calcRate);
  94. point.y = (int) (calcRate * ((double) i));
  95. }
  96. }
  97. public boolean equals(Object obj) {
  98. if (this == obj) {
  99. return true;
  100. }
  101. if (obj == null || getClass() != obj.getClass()) {
  102. return false;
  103. }
  104. ManuscriptSize manuscriptSize = (ManuscriptSize) obj;
  105. if (this.mBaseDpi != manuscriptSize.mBaseDpi) {
  106. return false;
  107. }
  108. String str = this.mManuscriptFileName;
  109. if (str == null) {
  110. if (manuscriptSize.mManuscriptFileName != null) {
  111. return false;
  112. }
  113. } else if (!str.equals(manuscriptSize.mManuscriptFileName)) {
  114. return false;
  115. }
  116. Point point = this.mManuscriptPixelSize;
  117. if (point == null) {
  118. if (manuscriptSize.mManuscriptPixelSize != null) {
  119. return false;
  120. }
  121. } else if (!point.equals(manuscriptSize.mManuscriptPixelSize)) {
  122. return false;
  123. }
  124. ManuscriptTypeAdapter manuscriptTypeAdapter = this.mManuscriptTypeAdapter;
  125. if (manuscriptTypeAdapter == null) {
  126. if (manuscriptSize.mManuscriptTypeAdapter != null) {
  127. return false;
  128. }
  129. } else if (!manuscriptTypeAdapter.equals(manuscriptSize.mManuscriptTypeAdapter)) {
  130. return false;
  131. }
  132. return true;
  133. }
  134. }