Skip to content

Commit

Permalink
Restrict crop pointers' overlap
Browse files Browse the repository at this point in the history
  • Loading branch information
adityaarora1 committed Feb 11, 2018
1 parent bcd0eee commit 506f623
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 4 deletions.
2 changes: 2 additions & 0 deletions liveedgedetection/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'

group='com.github.adityaarora1'
android {
compileSdkVersion 26

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ public void displayHint(ScanHint scanHint) {
captureHintLayout.setBackground(getResources().getDrawable(R.drawable.hint_white));
break;
case CAPTURING_IMAGE:
captureHintText.setText(getResources().getString(R.string.capturing_image));
captureHintText.setText(getResources().getString(R.string.hold_still));
captureHintLayout.setBackground(getResources().getDrawable(R.drawable.hint_green));
break;
case NO_MESSAGE:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,9 @@ private class MidPointTouchListenerImpl implements OnTouchListener {

private final ImageView mainPointer1;
private final ImageView mainPointer2;
PointF latestPoint = new PointF();
PointF latestPoint1 = new PointF();
PointF latestPoint2 = new PointF();

public MidPointTouchListenerImpl(ImageView mainPointer1, ImageView mainPointer2) {
this.mainPointer1 = mainPointer1;
Expand Down Expand Up @@ -352,16 +355,36 @@ public boolean onTouch(View v, MotionEvent event) {

break;
case MotionEvent.ACTION_DOWN:
ScanActivity.allDraggedPointsStack.push(new PolygonPoints(new PointF(pointer1.getX(), pointer1.getY()),
new PointF(pointer2.getX(), pointer2.getY()),
new PointF(pointer3.getX(), pointer3.getY()),
new PointF(pointer4.getX(), pointer4.getY())));
DownPT.x = event.getX();
DownPT.y = event.getY();
StartPT = new PointF(v.getX(), v.getY());
latestPoint = new PointF(v.getX(), v.getY());
latestPoint1 = new PointF(mainPointer1.getX(), mainPointer1.getY());
latestPoint2 = new PointF(mainPointer2.getX(), mainPointer2.getY());
break;
case MotionEvent.ACTION_UP:
int color = 0;
if (isValidShape(getPoints())) {
if (isValidShape(getPoints()) && isValidPointer1() && isValidPointer2() && isValidPointer3() && isValidPointer4()) {
color = getResources().getColor(R.color.crop_color);
latestPoint.x = v.getX();
latestPoint.y = v.getY();
latestPoint1.x = mainPointer1.getX();
latestPoint1.y = mainPointer1.getY();
latestPoint2.x = mainPointer2.getX();
latestPoint2.y = mainPointer2.getY();
} else {
color = getResources().getColor(R.color.orange);
ScanActivity.allDraggedPointsStack.pop();
color = getResources().getColor(R.color.crop_color);
v.setX(latestPoint.x);
v.setY(latestPoint.y);
mainPointer1.setX(latestPoint1.x);
mainPointer1.setY(latestPoint1.y);
mainPointer2.setX(latestPoint2.x);
mainPointer2.setY(latestPoint2.y);
}
paint.setColor(color);
break;
Expand Down Expand Up @@ -398,6 +421,14 @@ private boolean isValidPointer1() {
return pointer1.getY() < pointer3.getY() && pointer1.getX() < pointer2.getX();
}

private boolean isValidMidPointerX() {
return midPointer24.getX() > midPointer13.getX();
}

private boolean isValidMidPointerY() {
return midPointer34.getY() > midPointer12.getY();
}

private class TouchListenerImpl implements OnTouchListener {

final PointF DownPT = new PointF(); // Record Mouse Position When Pressed Down
Expand Down
2 changes: 1 addition & 1 deletion liveedgedetection/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
<string name="move_away">Move away</string>
<string name="move_closer">Move closer</string>
<string name="adjust_angle">Adjust angle</string>
<string name="capturing_image">Hold still…</string>
<string name="hold_still">Hold still…</string>
<string name="capturing">Capturing image…</string>
</resources>

0 comments on commit 506f623

Please sign in to comment.