ScanSizeHelper.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. package epson.scan.lib;
  2. import android.graphics.Point;
  3. import com.epson.mobilephone.common.PrintingLib.define.Constants;
  4. import com.epson.mobilephone.common.escpr.MediaInfo;
  5. import java.util.ArrayList;
  6. import java.util.Locale;
  7. import epson.print.R;
  8. public class ScanSizeHelper {
  9. public static final int SUPPORT_A3 = 3;
  10. public static final int SUPPORT_A4 = 1;
  11. public static final int SUPPORT_LEGAL = 2;
  12. public static final int SUPPORT_NONE = 0;
  13. public static Point getPaperSize(int i, int i2) {
  14. Point point;
  15. Point point2 = new Point(0, 0);
  16. if (i2 == 0) {
  17. return point2;
  18. }
  19. if (i == 5) {
  20. point = new Point(1820, 2570);
  21. } else if (i != 62) {
  22. switch (i) {
  23. case 0:
  24. point = new Point(2100, 2970);
  25. break;
  26. case 1:
  27. point = new Point(2159, 2794);
  28. break;
  29. case 2:
  30. point = new Point(2159, 3556);
  31. break;
  32. default:
  33. if (getDefaultScanSize() == 1) {
  34. point = new Point(2159, 2794);
  35. break;
  36. } else {
  37. point = new Point(2100, 2970);
  38. break;
  39. }
  40. }
  41. } else {
  42. point = new Point(2970, 4200);
  43. }
  44. return new Point((((float) (point.x * i2)) * 0.003937008f), (((float) (point.y * i2)) * 0.003937008f));
  45. }
  46. private static int getMaxScanSize(int i, int i2, int i3) {
  47. if (i3 == 0) {
  48. return 0;
  49. }
  50. Point paperSize = getPaperSize(Constants.PaperName.EPS_MSID_A3.getCode(), i3);
  51. if (i >= paperSize.x && i2 >= paperSize.y) {
  52. return 3;
  53. }
  54. Point paperSize2 = getPaperSize(Constants.PaperName.EPS_MSID_LEGAL.getCode(), i3);
  55. if (i >= paperSize2.x && i2 >= paperSize2.y) {
  56. return 2;
  57. }
  58. Point paperSize3 = getPaperSize(Constants.PaperName.EPS_MSID_A4.getCode(), i3);
  59. if (i < paperSize3.x || i2 < paperSize3.y) {
  60. return 0;
  61. }
  62. return 1;
  63. }
  64. public static int[] getSupportedScanSizeList(int i, int i2, int i3, int i4, int i5) {
  65. ArrayList arrayList = new ArrayList();
  66. int maxScanSize = getMaxScanSize(i3, i4, i5);
  67. switch (i) {
  68. case 0:
  69. if (maxScanSize >= 1) {
  70. arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_B5.getCode()));
  71. arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_A4.getCode()));
  72. arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_LETTER.getCode()));
  73. }
  74. if (maxScanSize >= 2) {
  75. arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_LEGAL.getCode()));
  76. }
  77. if (maxScanSize >= 3) {
  78. arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_A3.getCode()));
  79. }
  80. arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_USER.getCode()));
  81. break;
  82. case 1:
  83. switch (i2) {
  84. case 0:
  85. if (maxScanSize >= 1) {
  86. arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_A4.getCode()));
  87. arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_LETTER.getCode()));
  88. }
  89. if (maxScanSize >= 2) {
  90. arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_LEGAL.getCode()));
  91. }
  92. if (maxScanSize >= 3) {
  93. arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_A3.getCode()));
  94. break;
  95. }
  96. break;
  97. case 1:
  98. if (maxScanSize >= 1) {
  99. arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_A4.getCode()));
  100. arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_LETTER.getCode()));
  101. break;
  102. }
  103. break;
  104. }
  105. }
  106. int[] iArr = new int[arrayList.size()];
  107. for (int i6 = 0; i6 < arrayList.size(); i6++) {
  108. iArr[i6] = ((Integer) arrayList.get(i6)).intValue();
  109. }
  110. return iArr;
  111. }
  112. public static Point getMaxScanSize(int i, int i2, int i3, int i4, int i5) {
  113. Point point = new Point(0, 0);
  114. switch (i) {
  115. case 0:
  116. return new Point(i3, i4);
  117. case 1:
  118. int[] supportedScanSizeList = getSupportedScanSizeList(i, i2, i3, i4, i5);
  119. return supportedScanSizeList.length > 0 ? getPaperSize(supportedScanSizeList[supportedScanSizeList.length - 1], i5) : point;
  120. default:
  121. return point;
  122. }
  123. }
  124. public static int getDefaultScanSize() {
  125. String country = Locale.getDefault().getCountry();
  126. if (country.equals(Locale.US.getCountry()) || country.equals(Locale.CANADA.getCountry())) {
  127. return Constants.PaperName.EPS_MSID_LETTER.getCode();
  128. }
  129. return Constants.PaperName.EPS_MSID_A4.getCode();
  130. }
  131. public static int getScanSizeName(int i) {
  132. if (i == Constants.PaperName.EPS_MSID_UNKNOWN.getCode()) {
  133. return R.string.str_settings_undefine_scansize;
  134. }
  135. if (i == Constants.PaperName.EPS_MSID_USER.getCode()) {
  136. return R.string.str_scanning_size_max;
  137. }
  138. return new MediaInfo.PaperSize().getStringId(i);
  139. }
  140. }