123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- package epson.scan.lib;
- import android.graphics.Point;
- import com.epson.mobilephone.common.PrintingLib.define.Constants;
- import com.epson.mobilephone.common.escpr.MediaInfo;
- import java.util.ArrayList;
- import java.util.Locale;
- import epson.print.R;
- public class ScanSizeHelper {
- public static final int SUPPORT_A3 = 3;
- public static final int SUPPORT_A4 = 1;
- public static final int SUPPORT_LEGAL = 2;
- public static final int SUPPORT_NONE = 0;
- public static Point getPaperSize(int i, int i2) {
- Point point;
- Point point2 = new Point(0, 0);
- if (i2 == 0) {
- return point2;
- }
- if (i == 5) {
- point = new Point(1820, 2570);
- } else if (i != 62) {
- switch (i) {
- case 0:
- point = new Point(2100, 2970);
- break;
- case 1:
- point = new Point(2159, 2794);
- break;
- case 2:
- point = new Point(2159, 3556);
- break;
- default:
- if (getDefaultScanSize() == 1) {
- point = new Point(2159, 2794);
- break;
- } else {
- point = new Point(2100, 2970);
- break;
- }
- }
- } else {
- point = new Point(2970, 4200);
- }
- return new Point((((float) (point.x * i2)) * 0.003937008f), (((float) (point.y * i2)) * 0.003937008f));
- }
- private static int getMaxScanSize(int i, int i2, int i3) {
- if (i3 == 0) {
- return 0;
- }
- Point paperSize = getPaperSize(Constants.PaperName.EPS_MSID_A3.getCode(), i3);
- if (i >= paperSize.x && i2 >= paperSize.y) {
- return 3;
- }
- Point paperSize2 = getPaperSize(Constants.PaperName.EPS_MSID_LEGAL.getCode(), i3);
- if (i >= paperSize2.x && i2 >= paperSize2.y) {
- return 2;
- }
- Point paperSize3 = getPaperSize(Constants.PaperName.EPS_MSID_A4.getCode(), i3);
- if (i < paperSize3.x || i2 < paperSize3.y) {
- return 0;
- }
- return 1;
- }
- public static int[] getSupportedScanSizeList(int i, int i2, int i3, int i4, int i5) {
- ArrayList arrayList = new ArrayList();
- int maxScanSize = getMaxScanSize(i3, i4, i5);
- switch (i) {
- case 0:
- if (maxScanSize >= 1) {
- arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_B5.getCode()));
- arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_A4.getCode()));
- arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_LETTER.getCode()));
- }
- if (maxScanSize >= 2) {
- arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_LEGAL.getCode()));
- }
- if (maxScanSize >= 3) {
- arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_A3.getCode()));
- }
- arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_USER.getCode()));
- break;
- case 1:
- switch (i2) {
- case 0:
- if (maxScanSize >= 1) {
- arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_A4.getCode()));
- arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_LETTER.getCode()));
- }
- if (maxScanSize >= 2) {
- arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_LEGAL.getCode()));
- }
- if (maxScanSize >= 3) {
- arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_A3.getCode()));
- break;
- }
- break;
- case 1:
- if (maxScanSize >= 1) {
- arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_A4.getCode()));
- arrayList.add(Integer.valueOf(Constants.PaperName.EPS_MSID_LETTER.getCode()));
- break;
- }
- break;
- }
- }
- int[] iArr = new int[arrayList.size()];
- for (int i6 = 0; i6 < arrayList.size(); i6++) {
- iArr[i6] = ((Integer) arrayList.get(i6)).intValue();
- }
- return iArr;
- }
- public static Point getMaxScanSize(int i, int i2, int i3, int i4, int i5) {
- Point point = new Point(0, 0);
- switch (i) {
- case 0:
- return new Point(i3, i4);
- case 1:
- int[] supportedScanSizeList = getSupportedScanSizeList(i, i2, i3, i4, i5);
- return supportedScanSizeList.length > 0 ? getPaperSize(supportedScanSizeList[supportedScanSizeList.length - 1], i5) : point;
- default:
- return point;
- }
- }
- public static int getDefaultScanSize() {
- String country = Locale.getDefault().getCountry();
- if (country.equals(Locale.US.getCountry()) || country.equals(Locale.CANADA.getCountry())) {
- return Constants.PaperName.EPS_MSID_LETTER.getCode();
- }
- return Constants.PaperName.EPS_MSID_A4.getCode();
- }
- public static int getScanSizeName(int i) {
- if (i == Constants.PaperName.EPS_MSID_UNKNOWN.getCode()) {
- return R.string.str_settings_undefine_scansize;
- }
- if (i == Constants.PaperName.EPS_MSID_USER.getCode()) {
- return R.string.str_scanning_size_max;
- }
- return new MediaInfo.PaperSize().getStringId(i);
- }
- }
|