123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889 |
- package epson.scan.activity;
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.graphics.DashPathEffect;
- import android.graphics.Paint;
- import android.graphics.Path;
- import android.graphics.Point;
- import android.graphics.Rect;
- import android.graphics.RectF;
- import android.os.Build;
- import android.os.Handler;
- import android.view.MotionEvent;
- import android.view.View;
- import android.widget.EditText;
- import java.util.ArrayList;
- import java.util.Locale;
- import epson.common.Constants;
- import epson.common.Utils;
- import epson.print.ActivityIACommon;
- import epson.print.R;
- import epson.print.Util.EPLog;
- import epson.scan.lib.escanLib;
- public class ScanBaseView extends ActivityIACommon {
- public static int SCAN_AREA_HOTSPOT_SIZE = 40;
- private static final int SCAN_REDRAWBITMAP = -100;
- private static final String TAG = "ScanBaseView";
- public final int LINE_AREA_BORDER = 2;
- public final int LINE_CORNER_BIG = 18;
- public final int LINE_CORNER_BIG_WIDTH = 150;
- public final int LINE_CORNER_SMALL = 6;
- public final int LINE_CORNER_SMALL_WIDTH = 60;
- public final int MARGIN_LEFT_RIGHT = 10;
- public int MARGIN_TOP_BOT = 60;
- final int MAX_DASHEFFECT_PHASE;
- public final int SCREEN_STATUS_BOTLEFT_TOPRIGHT = 2;
- public final int SCREEN_STATUS_BOTRIGHT_TOPLEFT = 3;
- public final int SCREEN_STATUS_TOPLEFT_BOTRIGHT = 1;
- public final int SCREEN_STATUS_TOPRIGHT_BOTLEFT = 4;
- private BitmapFactory.Options _bmOption;
- public boolean bLongTouch = false;
- public Bitmap bmCenter;
- private RectF bmRectF;
- Context context;
- int curentViewingFile;
- escanLib escan;
- private PointInfo first;
- private int inSampleSize;
- private boolean isDisplayResult;
- public boolean isDoctable = false;
- private boolean isSetSize = false;
- private boolean isValidArea;
- private ArrayList<String> listSavedJPGFilePath;
- private Point mBaseBot;
- private Point mBaseTop;
- private Bitmap mBitmap;
- Point mBot;
- Point mCenter;
- Point mFirstTouch;
- private Paint mPaint;
- Point mTop;
- Point mTouch;
- int mWhere;
- private double maxScanHeightOnScreen = 0.0d;
- private double maxScanWidthOnScreen = 0.0d;
- private int maxheight = 0;
- private int maxwidth = 0;
- int phase;
- private PointInfo piBaseBot;
- private PointInfo piBaseTop;
- private RectF rectScanArea;
- private double scale;
- private int screenStatus = 1;
- private PointInfo second;
- int totalScanned;
- class PointInfo {
- /* access modifiers changed from: private */
- /* renamed from: x */
- public double f411x = 0.0d;
- /* access modifiers changed from: private */
- /* renamed from: y */
- public double f412y = 0.0d;
- public PointInfo(double d, double d2) {
- f411x = d;
- f412y = d2;
- }
- public double getX() {
- return f411x;
- }
- public void setX(double d) {
- f411x = d;
- }
- public double getY() {
- return f412y;
- }
- public void setY(double d) {
- f412y = d;
- }
- public String toString() {
- return String.format(Locale.US, "(%.2f,%.2f)", new Object[]{Double.valueOf(this.f411x), Double.valueOf(this.f412y)});
- }
- }
- public PointInfo getPiBaseTop() {
- return piBaseTop;
- }
- public void setPiBaseTop(PointInfo pointInfo) {
- piBaseTop = pointInfo;
- }
- public PointInfo getPiBaseBot() {
- return piBaseBot;
- }
- public void setPiBaseBot(PointInfo pointInfo) {
- piBaseBot = pointInfo;
- }
- public Context getContext() {
- return context;
- }
- public void setContext(Context context2) {
- context = context2;
- }
- public Point getmBaseTop() {
- return mBaseTop;
- }
- public void setmBaseTop(Point point) {
- mBaseTop = point;
- }
- public Point getmBaseBot() {
- return mBaseBot;
- }
- public void setmBaseBot(Point point) {
- mBaseBot = point;
- }
- public RectF getRectScanArea() {
- return rectScanArea;
- }
- public void setRectScanArea(RectF rectF) {
- rectScanArea = rectF;
- }
- public escanLib getEscan() {
- return escan;
- }
- public void setEscan(escanLib escanlib) {
- escan = escanlib;
- }
- public double getScale() {
- return scale;
- }
- public void setScale(double d) {
- scale = d;
- }
- public int getMaxwidth() {
- return maxwidth;
- }
- public void setMaxwidth(int i) {
- maxwidth = i;
- }
- public int getMaxheight() {
- return maxheight;
- }
- public void setMaxheight(int i) {
- maxheight = i;
- }
- public Point getmTop() {
- return mTop;
- }
- public void setmTop(Point point) {
- mTop = point;
- }
- public Point getmBot() {
- return mBot;
- }
- public void setmBot(Point point) {
- mBot = point;
- }
- public Point getmCenter() {
- return mCenter;
- }
- public void setmCenter(Point point) {
- mCenter = point;
- }
- public Point getmTouch() {
- return mTouch;
- }
- public void setmTouch(Point point) {
- mTouch = point;
- }
- public Point getmFirstTouch() {
- return mFirstTouch;
- }
- public void setmFirstTouch(Point point) {
- mFirstTouch = point;
- }
- public Bitmap getBmCenter() {
- return bmCenter;
- }
- public void setBmCenter(Bitmap bitmap) {
- bmCenter = bitmap;
- }
- public int getScreenStatus() {
- return screenStatus;
- }
- public void setScreenStatus(int i) {
- screenStatus = i;
- }
- public BitmapFactory.Options get_bmOption() {
- return _bmOption;
- }
- public void set_bmOption(BitmapFactory.Options options) {
- _bmOption = options;
- }
- public int getInSampleSize() {
- return inSampleSize;
- }
- public void setInSampleSize(int i) {
- inSampleSize = i;
- }
- public boolean isSetSize() {
- return isSetSize;
- }
- public void setSetSize(boolean z) {
- isSetSize = z;
- }
- public RectF getBmRectF() {
- return bmRectF;
- }
- public void setBmRectF(RectF rectF) {
- bmRectF = rectF;
- }
- public Bitmap getBm() {
- return mBitmap;
- }
- public void setBm(Bitmap bitmap) {
- mBitmap = bitmap;
- }
- public int getmWhere() {
- return mWhere;
- }
- public void setmWhere(int i) {
- mWhere = i;
- }
- public Paint getmPaint() {
- return mPaint;
- }
- public void setmPaint(Paint paint) {
- mPaint = paint;
- }
- public void setListSavedJPGFilePath(ArrayList<String> arrayList) {
- listSavedJPGFilePath = arrayList;
- }
- public ArrayList<String> getListSavedJPGFilePath() {
- return listSavedJPGFilePath;
- }
- public double getMaxScanHeightOnScreen() {
- return maxScanHeightOnScreen;
- }
- public void setMaxScanHeightOnScreen(double d) {
- maxScanHeightOnScreen = d;
- }
- public double getMaxScanWidthOnScreen() {
- return maxScanWidthOnScreen;
- }
- public void setMaxScanWidthOnScreen(double d) {
- maxScanWidthOnScreen = d;
- }
- public ScanBaseView() {
- piBaseTop = new PointInfo(0.0d, 0.0d);
- piBaseBot = new PointInfo(0.0d, 0.0d);
- mBaseTop = new Point();
- mBaseBot = new Point();
- mTop = new Point();
- mBot = new Point();
- mCenter = new Point();
- mTouch = new Point();
- mFirstTouch = new Point();
- curentViewingFile = 1;
- totalScanned = 0;
- mWhere = 2;
- first = new PointInfo(0.0d, 0.0d);
- second = new PointInfo(0.0d, 0.0d);
- isValidArea = false;
- isDisplayResult = false;
- phase = 0;
- mAX_DASHEFFECT_PHASE = 1000;
- escan = new escanLib();
- escan.setJobDone(false);
- _bmOption = new BitmapFactory.Options();
- if (mPaint == null) {
- mPaint = new Paint();
- mPaint.setStrokeWidth(2.0f);
- mPaint.setColor(ViewCompat.MEASURED_STATE_MASK);
- }
- listSavedJPGFilePath = new ArrayList<>();
- }
- public void setupScanArea() {
- double unused = first.f411x = Math.min(this.piBaseTop.f411x, piBaseBot.f411x);
- double unused2 = first.f412y = Math.min(this.piBaseTop.f412y, piBaseBot.f412y);
- double unused3 = second.f411x = Math.max(this.piBaseTop.f411x, piBaseBot.f411x);
- double unused4 = second.f412y = Math.max(this.piBaseTop.f412y, piBaseBot.f412y);
- if (this.first.f411x < (getmBaseTop().x)) {
- double unused5 = first.f411x = getmBaseTop().x;
- }
- if (this.first.f412y < (getmBaseTop().y)) {
- double unused6 = first.f412y = getmBaseTop().y;
- }
- if (this.second.f411x > (getmBaseBot().x)) {
- double unused7 = second.f411x = getmBaseBot().x;
- }
- if (this.second.f412y > (getmBaseBot().y)) {
- double unused8 = second.f412y = getmBaseBot().y;
- }
- if (this.second.f411x <= (getmBaseTop().x) || first.f411x >= (getmBaseBot().x) || second.f412y <= (getmBaseTop().y) || first.f412y >= (getmBaseBot().y)) {
- isValidArea = false;
- } else {
- isValidArea = true;
- }
- escan.setOffsetX(Math.max((Math.abs(this.first.f411x - (getmBaseTop().x)) * (getMaxwidth())) / getMaxScanWidthOnScreen(), 0.0d));
- escan.setOffsetY(Math.max((Math.abs(this.first.f412y - (getmBaseTop().y)) * (getMaxheight())) / getMaxScanHeightOnScreen(), 0.0d));
- int min = Math.min((Math.abs(this.first.f411x - second.f411x) * (getMaxwidth())) / getMaxScanWidthOnScreen(), (getMaxwidth() - escan.getOffsetX()));
- int min2 = Math.min((Math.abs(this.first.f412y - second.f412y) * (getMaxheight())) / getMaxScanHeightOnScreen(), (getMaxheight() - escan.getOffsetY()));
- if (min == 0) {
- escanLib escanlib = escan;
- escanlib.setOffsetX(escanlib.getOffsetX() - 1);
- min = 1;
- }
- if (min2 == 0) {
- escanLib escanlib2 = escan;
- escanlib2.setOffsetY(escanlib2.getOffsetY() - 1);
- min2 = 1;
- }
- escan.setScanAreaWidth(min);
- escan.setScanAreaHeight(min2);
- if (Utils.getPrefInt(this.context, Constants.SCAN_REFS_USED_SCANNER_PATH, Constants.SCAN_REFS_SETTINGS_2SIDED) == 1 || !this.isDoctable) {
- escan.setOffsetX(Utils.getPrefInt(getContext(), Constants.SCAN_REFS_SUPPORTED_OPTIONS, Constants.SCAN_REFS_MAX_WIDTH) - min);
- }
- rectScanArea = new RectF((float) (Math.max(this.first.f411x, getmBaseTop().x)), (float) (Math.max(this.first.f412y, getmBaseTop().y)), (float) (Math.min(this.second.f411x, getmBaseBot().x)), (float) (Math.min(this.second.f412y, getmBaseBot().y)));
- }
- public Point calculateTheCenterPoint(Point point, Point point2) {
- Point point3 = new Point();
- point3.x = Math.min(point.x, point2.x) + Math.round((float) (Math.abs(point.x - point2.x) / 2));
- point3.y = Math.min(point.y, point2.y) + Math.round((float) (Math.abs(point.y - point2.y) / 2));
- return point3;
- }
- public boolean isValidArea() {
- return isValidArea;
- }
- public void setValidArea(boolean z) {
- isValidArea = z;
- }
- class ScanAreaSet extends View {
- private Point _pBaseBottomRight;
- private Point _pBaseCenter;
- private Point _pBaseTopLeft;
- int _touchtime = 0;
- public Handler redrawCBHandler = null;
- public ScanAreaSet(Context context) {
- super(context);
- ScanBaseView.SCAN_AREA_HOTSPOT_SIZE = ((((float) ScanBaseView.SCAN_AREA_HOTSPOT_SIZE) * getResources().getDisplayMetrics().density) + 0.5f);
- }
- protected void onSizeChanged(int i, int i2, int i3, int i4) {
- super.onSizeChanged(i, i2, i3, i4);
- }
- protected void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- if (ScanBaseView.this.bLongTouch && ScanBaseView.mWhere != 2) {
- invalidate();
- ScanBaseView.this.phase += 2;
- if (ScanBaseView.this.phase > 1000) {
- ScanBaseView.this.phase = 0;
- }
- }
- drawScanArea(canvas);
- Handler handler = redrawCBHandler;
- if (handler != null) {
- handler.sendEmptyMessage(-100);
- }
- }
- private synchronized void drawScanArea(Canvas canvas) {
- _pBaseTopLeft = ScanBaseView.this.getmTop();
- _pBaseBottomRight = ScanBaseView.this.getmBot();
- if (!ScanBaseView.this.isDisplayResult && ScanBaseView.this.getBm() != null) {
- if (Build.VERSION.SDK_INT >= 14) {
- EPLog.i("drawScanArea", "14");
- Bitmap bm = ScanBaseView.this.getBm();
- RectF bmRectF = ScanBaseView.this.getBmRectF();
- Bitmap createScaledBitmap = Bitmap.createScaledBitmap(bm, bmRectF.width(), bmRectF.height(), true);
- ScanBaseView.this.setBm(createScaledBitmap);
- canvas.drawBitmap(createScaledBitmap, ScanBaseView.this.getBmRectF().left, ScanBaseView.this.getBmRectF().top, (Paint) null);
- } else {
- canvas.drawBitmap(ScanBaseView.this.getBm(), (Rect) null, ScanBaseView.this.getBmRectF(), ScanBaseView.this.getmPaint());
- }
- }
- if (ScanBaseView.this.isDoctable) {
- if (ScanBaseView.this.isSetSize) {
- drawNormalCorner(canvas);
- _pBaseCenter = ScanBaseView.this.getmCenter();
- }
- Paint paint = new Paint();
- if (!ScanBaseView.this.bLongTouch || ScanBaseView.mWhere == 2) {
- Paint paint2 = ScanBaseView.this.getmPaint();
- canvas.drawLine((float) _pBaseTopLeft.x, (float) _pBaseTopLeft.y, (float) _pBaseBottomRight.x, (float) _pBaseTopLeft.y, paint2);
- canvas.drawLine((float) _pBaseBottomRight.x, (float) _pBaseTopLeft.y, (float) _pBaseBottomRight.x, (float) _pBaseBottomRight.y, paint2);
- canvas.drawLine((float) _pBaseBottomRight.x, (float) _pBaseBottomRight.y, (float) _pBaseTopLeft.x, (float) _pBaseBottomRight.y, paint2);
- canvas.drawLine((float) _pBaseTopLeft.x, (float) _pBaseBottomRight.y, (float) _pBaseTopLeft.x, (float) _pBaseTopLeft.y, paint2);
- } else {
- Path path = new Path();
- path.addRect((float) _pBaseTopLeft.x, (float) _pBaseTopLeft.y, (float) _pBaseBottomRight.x, (float) _pBaseBottomRight.y, Path.Direction.CW);
- paint.setPathEffect(new DashPathEffect(new float[]{10.0f, 2.0f}, (float) ScanBaseView.this.phase));
- paint.setStrokeWidth(1.5f);
- paint.setStyle(Paint.Style.STROKE);
- canvas.drawPath(path, paint);
- }
- if (ScanBaseView.this.bLongTouch) {
- drawTheCornerImage(canvas, ScanBaseView.this.getmPaint());
- } else {
- drawNormalCorner(canvas);
- }
- }
- if (ScanBaseView.this.isSetSize) {
- ScanBaseView.this.setupScanArea();
- ScanBaseView.this.setSetSize(false);
- }
- }
- private void drawTheCornerImage(Canvas canvas, Paint paint) {
- switch (ScanBaseView.this.screenStatus) {
- case 1:
- int i = ScanBaseView.mWhere;
- if (i != -1) {
- if (i == 1) {
- drawCornerTopLeft(canvas, _pBaseTopLeft);
- drawCornerBotRightMoving(canvas, _pBaseBottomRight);
- break;
- } else {
- drawCornerTopLeft(canvas, _pBaseTopLeft);
- drawCornerBotRight(canvas, _pBaseBottomRight);
- break;
- }
- } else {
- drawCornerTopLeftMoving(canvas, _pBaseTopLeft);
- drawCornerBotRight(canvas, _pBaseBottomRight);
- break;
- }
- case 2:
- int i2 = ScanBaseView.mWhere;
- if (i2 != -1) {
- if (i2 == 1) {
- drawCornerBotLeft(canvas, _pBaseTopLeft);
- drawCornerTopRightMoving(canvas, _pBaseBottomRight);
- break;
- } else {
- drawCornerBotLeft(canvas, _pBaseTopLeft);
- drawCornerTopRight(canvas, _pBaseBottomRight);
- break;
- }
- } else {
- drawCornerBotLeftMoving(canvas, _pBaseTopLeft);
- drawCornerTopRight(canvas, _pBaseBottomRight);
- break;
- }
- case 3:
- int i3 = ScanBaseView.mWhere;
- if (i3 != -1) {
- if (i3 == 1) {
- drawCornerBotRight(canvas, _pBaseTopLeft);
- drawCornerTopLeftMoving(canvas, _pBaseBottomRight);
- break;
- } else {
- drawCornerBotRight(canvas, _pBaseTopLeft);
- drawCornerTopLeft(canvas, _pBaseBottomRight);
- break;
- }
- } else {
- drawCornerBotRightMoving(canvas, _pBaseTopLeft);
- drawCornerTopLeft(canvas, _pBaseBottomRight);
- break;
- }
- case 4:
- int i4 = ScanBaseView.mWhere;
- if (i4 != -1) {
- if (i4 == 1) {
- drawCornerTopRight(canvas, _pBaseTopLeft);
- drawCornerBotLeftMoving(canvas, _pBaseBottomRight);
- break;
- } else {
- drawCornerTopRight(canvas, _pBaseTopLeft);
- drawCornerBotLeft(canvas, _pBaseBottomRight);
- break;
- }
- } else {
- drawCornerTopRightMoving(canvas, _pBaseTopLeft);
- drawCornerBotLeft(canvas, _pBaseBottomRight);
- break;
- }
- }
- if (ScanBaseView.this.bLongTouch) {
- String localClassName = ScanBaseView.this.getLocalClassName();
- EPLog.i(localClassName, "mWhere = " + ScanBaseView.mWhere);
- if (ScanBaseView.mWhere == 0 && ScanBaseView.this.bmCenter == null) {
- ScanBaseView.this.bmCenter = BitmapFactory.decodeResource(getResources(), R.drawable.area_center, ScanBaseView.this._bmOption);
- }
- if (ScanBaseView.this.bmCenter != null) {
- if (this._pBaseCenter == null) {
- _pBaseCenter = ScanBaseView.this.getmCenter();
- }
- if (ScanBaseView.this.inSampleSize != 0) {
- canvas.drawBitmap(ScanBaseView.this.bmCenter, (float) (this._pBaseCenter.x - ((ScanBaseView.this.bmCenter.getWidth() / 2) * ScanBaseView.this.getInSampleSize())), (float) (this._pBaseCenter.y - ((ScanBaseView.this.bmCenter.getHeight() / 2) * ScanBaseView.this.getInSampleSize())), (Paint) null);
- } else {
- canvas.drawBitmap(ScanBaseView.this.bmCenter, (float) (this._pBaseCenter.x - (ScanBaseView.this.bmCenter.getWidth() / 2)), (float) (this._pBaseCenter.y - (ScanBaseView.this.bmCenter.getHeight() / 2)), (Paint) null);
- }
- }
- }
- }
- public boolean onTouchEvent(MotionEvent motionEvent) {
- if (!ScanBaseView.this.isDoctable) {
- return true;
- }
- Point point = new Point(motionEvent.getX(), motionEvent.getY());
- ScanBaseView.this.setmTouch(point);
- ScanBaseView.this.detectTheScreenStatus();
- switch (motionEvent.getAction()) {
- case 0:
- ScanBaseView.this.setmWhere(2);
- ScanBaseView.this.detectTheTouchPoint();
- ScanBaseView.this.setmFirstTouch(point);
- break;
- case 1:
- ScanBaseView.this.setmWhere(2);
- ScanBaseView.this.setBmCenter((Bitmap) null);
- ScanBaseView scanBaseView = ScanBaseView.this;
- scanBaseView.phase = 0;
- _touchtime = 0;
- scanBaseView.setupScanArea();
- ScanBaseView.this.bLongTouch = false;
- break;
- case 2:
- if (ScanBaseView.this.bLongTouch) {
- moveTheTouchPoint();
- break;
- }
- break;
- default:
- return false;
- }
- postInvalidate();
- return true;
- }
- public void moveTheTouchPoint() {
- switch (ScanBaseView.this.getmWhere()) {
- case -1:
- _pBaseTopLeft = ScanBaseView.this.getmTouch();
- _pBaseCenter = ScanBaseView.this.calculateTheCenterPoint(this._pBaseTopLeft, _pBaseBottomRight);
- break;
- case 0:
- moveCenter();
- ScanBaseView.this.setmCenter(this._pBaseCenter);
- break;
- case 1:
- _pBaseBottomRight = ScanBaseView.this.getmTouch();
- _pBaseCenter = ScanBaseView.this.calculateTheCenterPoint(this._pBaseTopLeft, _pBaseBottomRight);
- break;
- }
- ScanBaseView.this.setmTop(this._pBaseTopLeft);
- ScanBaseView.this.setmBot(this._pBaseBottomRight);
- ScanBaseView scanBaseView = ScanBaseView.this;
- scanBaseView.setPiBaseTop(new PointInfo(_pBaseTopLeft.x, _pBaseTopLeft.y));
- ScanBaseView scanBaseView2 = ScanBaseView.this;
- scanBaseView2.setPiBaseBot(new PointInfo(_pBaseBottomRight.x, _pBaseBottomRight.y));
- ScanBaseView.this.setmCenter(this._pBaseCenter);
- }
- private void moveCenter() {
- Point point = ScanBaseView.this.getmFirstTouch();
- Point point2 = ScanBaseView.this.getmTouch();
- int i = point2.x - point.x;
- int i2 = point2.y - point.y;
- _pBaseTopLeft.x += i;
- _pBaseTopLeft.y += i2;
- _pBaseBottomRight.x += i;
- _pBaseBottomRight.y += i2;
- _pBaseCenter.x += i;
- _pBaseCenter.y += i2;
- ScanBaseView.this.setmFirstTouch(point2);
- }
- private void drawNormalCorner(Canvas canvas) {
- switch (ScanBaseView.this.screenStatus) {
- case 2:
- drawCornerBotLeft(canvas, ScanBaseView.mTop);
- drawCornerTopRight(canvas, ScanBaseView.mBot);
- return;
- case 3:
- drawCornerBotRight(canvas, ScanBaseView.mTop);
- drawCornerTopLeft(canvas, ScanBaseView.mBot);
- return;
- case 4:
- drawCornerTopRight(canvas, ScanBaseView.mTop);
- drawCornerBotLeft(canvas, ScanBaseView.mBot);
- return;
- default:
- drawCornerTopLeft(canvas, ScanBaseView.mTop);
- drawCornerBotRight(canvas, ScanBaseView.mBot);
- return;
- }
- }
- private void drawCornerTopLeft(Canvas canvas, Point point) {
- Canvas canvas2 = canvas;
- canvas2.drawRect((float) (point.x - 6), (float) (point.y - 6), (float) ((point.x - 6) + 60), (float) point.y, ScanBaseView.this.getmPaint());
- canvas2.drawRect((float) (point.x - 6), (float) (point.y - 6), (float) point.x, (float) ((point.y - 6) + 60), ScanBaseView.this.getmPaint());
- }
- private void drawCornerBotRight(Canvas canvas, Point point) {
- Canvas canvas2 = canvas;
- canvas2.drawRect((float) ((point.x + 6) - 60), (float) point.y, (float) (point.x + 6), (float) (point.y + 6), ScanBaseView.this.getmPaint());
- canvas2.drawRect((float) point.x, (float) ((point.y + 6) - 60), (float) (point.x + 6), (float) (point.y + 6), ScanBaseView.this.getmPaint());
- }
- private void drawCornerBotLeft(Canvas canvas, Point point) {
- Canvas canvas2 = canvas;
- canvas2.drawRect((float) (point.x - 6), (float) point.y, (float) ((point.x - 6) + 60), (float) (point.y + 6), ScanBaseView.this.getmPaint());
- canvas2.drawRect((float) (point.x - 6), (float) ((point.y + 6) - 60), (float) point.x, (float) (point.y + 6), ScanBaseView.this.getmPaint());
- }
- private void drawCornerTopRight(Canvas canvas, Point point) {
- Canvas canvas2 = canvas;
- canvas2.drawRect((float) ((point.x + 6) - 60), (float) (point.y - 6), (float) (point.x + 6), (float) point.y, ScanBaseView.this.getmPaint());
- canvas2.drawRect((float) point.x, (float) (point.y - 6), (float) (point.x + 6), (float) ((point.y - 6) + 60), ScanBaseView.this.getmPaint());
- }
- private void drawCornerTopLeftMoving(Canvas canvas, Point point) {
- Canvas canvas2 = canvas;
- canvas2.drawRect((float) (point.x - 18), (float) (point.y - 18), (float) ((point.x - 18) + 150), (float) point.y, ScanBaseView.this.getmPaint());
- canvas2.drawRect((float) (point.x - 18), (float) (point.y - 18), (float) point.x, (float) ((point.y - 18) + 150), ScanBaseView.this.getmPaint());
- }
- private void drawCornerBotRightMoving(Canvas canvas, Point point) {
- Canvas canvas2 = canvas;
- canvas2.drawRect((float) ((point.x + 18) - 150), (float) point.y, (float) (point.x + 18), (float) (point.y + 18), ScanBaseView.this.getmPaint());
- canvas2.drawRect((float) point.x, (float) ((point.y + 18) - 150), (float) (point.x + 18), (float) (point.y + 18), ScanBaseView.this.getmPaint());
- }
- private void drawCornerBotLeftMoving(Canvas canvas, Point point) {
- Canvas canvas2 = canvas;
- canvas2.drawRect((float) (point.x - 18), (float) point.y, (float) ((point.x - 18) + 150), (float) (point.y + 18), ScanBaseView.this.getmPaint());
- canvas2.drawRect((float) (point.x - 18), (float) ((point.y + 18) - 150), (float) point.x, (float) (point.y + 18), ScanBaseView.this.getmPaint());
- }
- private void drawCornerTopRightMoving(Canvas canvas, Point point) {
- Canvas canvas2 = canvas;
- canvas2.drawRect((float) ((point.x + 18) - 150), (float) (point.y - 18), (float) (point.x + 18), (float) point.y, ScanBaseView.this.getmPaint());
- canvas2.drawRect((float) point.x, (float) (point.y - 18), (float) (point.x + 18), (float) ((point.y - 18) + 150), ScanBaseView.this.getmPaint());
- }
- }
- public void detectTheTouchPoint() {
- if (mTouch.x > Math.max(mTop.x, mBot.x) || mTouch.x < Math.min(mTop.x, mBot.x) || mTouch.y > Math.max(mTop.y, mBot.y) || mTouch.y < Math.min(mTop.y, mBot.y)) {
- EPLog.i(getLocalClassName(), "touche out");
- if ((Math.abs(Math.min(mTop.x, mBot.x) - mTouch.x) >= SCAN_AREA_HOTSPOT_SIZE && Math.abs(mTouch.x - Math.max(mTop.x, mBot.x)) >= SCAN_AREA_HOTSPOT_SIZE) || (Math.abs(Math.min(mTop.y, mBot.y) - mTouch.y) >= SCAN_AREA_HOTSPOT_SIZE && Math.abs(mTouch.y - Math.max(mTop.y, mBot.y)) >= SCAN_AREA_HOTSPOT_SIZE)) {
- mWhere = 2;
- } else if (mTop.x >= mBot.x || mTop.y >= mBot.y) {
- if (mTop.x >= mBot.x || mTop.y <= mBot.y) {
- if (mTop.x <= mBot.x || mTop.y <= mBot.y) {
- if ((mTouch.x > mTop.x && Math.abs(mTouch.y - mTop.y) < SCAN_AREA_HOTSPOT_SIZE) || Math.abs(mTop.x - mTouch.x) < SCAN_AREA_HOTSPOT_SIZE) {
- mWhere = -1;
- } else if ((mTouch.x >= mBot.x || Math.abs(mTouch.y - mBot.y) >= SCAN_AREA_HOTSPOT_SIZE) && Math.abs(mTouch.x - mBot.x) >= SCAN_AREA_HOTSPOT_SIZE) {
- mWhere = 0;
- } else {
- mWhere = 1;
- }
- } else if ((mTouch.x > mTop.x && Math.abs(mTouch.y - mTop.y) < SCAN_AREA_HOTSPOT_SIZE) || Math.abs(mTop.x - mTouch.x) < SCAN_AREA_HOTSPOT_SIZE) {
- mWhere = -1;
- } else if ((mTouch.x >= mBot.x || Math.abs(mTouch.y - mBot.y) >= SCAN_AREA_HOTSPOT_SIZE) && Math.abs(mTouch.x - mBot.x) >= SCAN_AREA_HOTSPOT_SIZE) {
- mWhere = 0;
- } else {
- mWhere = 1;
- }
- } else if ((mTouch.x < mTop.x && Math.abs(mTouch.y - mTop.y) < SCAN_AREA_HOTSPOT_SIZE) || Math.abs(mTouch.x - mTop.x) < SCAN_AREA_HOTSPOT_SIZE) {
- mWhere = -1;
- } else if ((mTouch.x <= mBot.x || Math.abs(mTouch.y - mBot.y) >= SCAN_AREA_HOTSPOT_SIZE) && Math.abs(mBot.x - mTouch.x) >= SCAN_AREA_HOTSPOT_SIZE) {
- mWhere = 0;
- } else {
- mWhere = 1;
- }
- } else if ((mTouch.x < mTop.x && Math.abs(mTouch.y - mTop.y) < SCAN_AREA_HOTSPOT_SIZE) || Math.abs(mTouch.x - mTop.x) < SCAN_AREA_HOTSPOT_SIZE) {
- mWhere = -1;
- } else if ((mTouch.x <= mBot.x || Math.abs(mTouch.y - mBot.y) >= SCAN_AREA_HOTSPOT_SIZE) && Math.abs(mBot.x - mTouch.x) >= SCAN_AREA_HOTSPOT_SIZE) {
- mWhere = 0;
- } else {
- mWhere = 1;
- }
- } else {
- EPLog.i(getLocalClassName(), "touche in");
- if (mTop.x >= mBot.x || mTop.y >= mBot.y) {
- if (mTop.x >= mBot.x || mTop.y <= mBot.y) {
- if (mTop.x <= mBot.x || mTop.y <= mBot.y) {
- if (Math.abs(mTop.x - mTouch.x) < SCAN_AREA_HOTSPOT_SIZE && mTouch.y - mTop.y < SCAN_AREA_HOTSPOT_SIZE) {
- mWhere = -1;
- } else if (Math.abs(mTouch.x - mBot.x) >= SCAN_AREA_HOTSPOT_SIZE || mBot.y - mTouch.y >= SCAN_AREA_HOTSPOT_SIZE) {
- mWhere = 0;
- } else {
- mWhere = 1;
- }
- } else if (Math.abs(mTop.x - mTouch.x) < SCAN_AREA_HOTSPOT_SIZE && mTop.y - mTouch.y < SCAN_AREA_HOTSPOT_SIZE) {
- mWhere = -1;
- } else if (Math.abs(mTouch.x - mBot.x) >= SCAN_AREA_HOTSPOT_SIZE || mTouch.y - mBot.y >= SCAN_AREA_HOTSPOT_SIZE) {
- mWhere = 0;
- } else {
- mWhere = 1;
- }
- } else if (Math.abs(mTouch.x - mTop.x) < SCAN_AREA_HOTSPOT_SIZE && mTop.y - mTouch.y < SCAN_AREA_HOTSPOT_SIZE) {
- mWhere = -1;
- } else if (Math.abs(mBot.x - mTouch.x) >= SCAN_AREA_HOTSPOT_SIZE || mTouch.y - mBot.y >= SCAN_AREA_HOTSPOT_SIZE) {
- mWhere = 0;
- } else {
- mWhere = 1;
- }
- } else if (Math.abs(mTouch.x - mTop.x) < SCAN_AREA_HOTSPOT_SIZE && mTouch.y - mTop.y < SCAN_AREA_HOTSPOT_SIZE) {
- mWhere = -1;
- } else if (Math.abs(mBot.x - mTouch.x) >= SCAN_AREA_HOTSPOT_SIZE || mBot.y - mTouch.y >= SCAN_AREA_HOTSPOT_SIZE) {
- mWhere = 0;
- } else {
- mWhere = 1;
- }
- }
- }
- public void detectTheScreenStatus() {
- if (mTop.x < mBot.x && mTop.y < mBot.y) {
- screenStatus = 1;
- } else if (mTop.x < mBot.x && mTop.y > mBot.y) {
- screenStatus = 2;
- } else if (mTop.x <= mBot.x || mTop.y <= mBot.y) {
- screenStatus = 4;
- } else {
- screenStatus = 3;
- }
- }
- class ScanAreaBackground extends View {
- Paint _paint = new Paint();
- Paint _textPaint;
- boolean hideText;
- ScanActivity mScanActivity;
- String text;
- protected void onSizeChanged(int i, int i2, int i3, int i4) {
- super.onSizeChanged(i, i2, i3, i4);
- mScanActivity.onScanAreaSizeChange();
- }
- private void drawTextInCanvas(Canvas canvas) {
- String str = new String();
- float f = ((float) (ScanBaseView.this.getmBaseBot().x - ScanBaseView.this.getmBaseTop().x)) * 0.9f;
- float f2 = (float) (ScanBaseView.this.getmBaseBot().y - ScanBaseView.this.getmBaseTop().y);
- Rect rect = new Rect();
- int length = text.length();
- String str2 = str;
- int i = 0;
- int i2 = 0;
- while (i < length) {
- int breakText = _textPaint.breakText(this.text.substring(i, length), true, f, (float[]) null) + i;
- String substring = text.substring(i, breakText);
- _textPaint.getTextBounds(substring, 0, substring.length(), rect);
- i2 += rect.height();
- str2 = (str2 + substring) + Constants.BREAK_LINE;
- i = breakText;
- }
- int i3 = (((float) ScanBaseView.this.getmBaseTop().x) + (((float) (ScanBaseView.this.getmBaseBot().x - ScanBaseView.this.getmBaseTop().x)) * 0.05f));
- int i4 = ((((float) ScanBaseView.this.getmBaseTop().y) + (f2 / 2.0f)) - ((float) (i2 / 2)));
- String[] split = str2.split(Constants.BREAK_LINE);
- int i5 = 0;
- for (int i6 = 0; i6 < split.length; i6++) {
- canvas.drawText(split[i6], (float) i3, (float) (i4 + i5), _textPaint);
- _textPaint.getTextBounds(split[i6], 0, split[i6].length(), rect);
- i5 += rect.height();
- }
- }
- public void hideText(boolean z) {
- hideText = z;
- }
- public ScanAreaBackground(Context context) {
- super(context);
- mScanActivity = (ScanActivity) context;
- _paint.setColor(-1);
- _paint.setShadowLayer(5.5f, 6.0f, 6.0f, R.color.light_gray);
- _textPaint = new Paint();
- _textPaint.setColor(getResources().getColor(R.color.light_gray));
- _textPaint.setAntiAlias(true);
- _textPaint.setTextAlign(Paint.Align.LEFT);
- _textPaint.setTextSize(new EditText(getContext()).getTextSize());
- text = ScanBaseView.this.getString(R.string.str_msg_scan_viewbase);
- }
- protected void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- drawTheDefaultBackground(canvas);
- }
- private void drawTheDefaultBackground(Canvas canvas) {
- canvas.drawRect((float) ScanBaseView.this.getmBaseTop().x, (float) ScanBaseView.this.getmBaseTop().y, (float) ScanBaseView.this.getmBaseBot().x, (float) ScanBaseView.this.getmBaseBot().y, _paint);
- if (!this.hideText) {
- drawTextInCanvas(canvas);
- }
- }
- }
- }
|