Skip to content

Commit

Permalink
code cleanup, added comments
Browse files Browse the repository at this point in the history
  • Loading branch information
nuclearfog committed Nov 21, 2023
1 parent 3bd42fb commit 6098e1f
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
import android.widget.TextView;

/**
* {@link ScrollingMovementMethod} implementation fixing TextView scrolling issues
*
* @author nuclearfog
*/
public class LinkAndScrollMovement extends ScrollingMovementMethod {
Expand All @@ -29,14 +31,15 @@ public class LinkAndScrollMovement extends ScrollingMovementMethod {
private int yScroll = 0;

/**
*
*/
private LinkAndScrollMovement() {
super();
}

@Override
public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) {
switch(event.getAction()) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
lockParentScrolling(widget, true);
xScroll = widget.getScrollX();
Expand Down Expand Up @@ -68,27 +71,27 @@ public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event
return super.onTouchEvent(widget, buffer, event);
}

/**
* Get singleton instance of the movement method
*
* @return LinkAndScrollingMovementMethod object
*/
public static LinkAndScrollMovement getInstance() {
return instance;
}

/**
* lock parent view scrolling
*
* @param widget interacting TextView
* @param lock true if parent views scrolling should be locked
* @param lock true if parent views scrolling should be locked
*/
private void lockParentScrolling(TextView widget, boolean lock) {
ViewParent parent = widget.getParent();
int lineCount = widget.getLineCount();
int maxLines = widget.getMaxLines();
if ( parent != null && maxLines > 0 && lineCount > maxLines ) {
if (parent != null && maxLines > 0 && lineCount > maxLines) {
parent.requestDisallowInterceptTouchEvent(lock);
}
}

/**
* Get singleton instance of the movement method
*
* @return LinkAndScrollingMovementMethod object
*/
public static LinkAndScrollMovement getInstance() {
return instance;
}
}
20 changes: 9 additions & 11 deletions app/src/main/java/org/nuclearfog/twidda/ui/views/ZoomView.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatImageView;

import static android.view.MotionEvent.*;

import org.nuclearfog.twidda.R;

/**
Expand Down Expand Up @@ -76,18 +74,17 @@ public boolean onTouchEvent(MotionEvent event) {
if (getScaleType() != ScaleType.MATRIX)
setScaleType(ScaleType.MATRIX);
if (event.getPointerCount() == 1) {

switch (event.getAction()) {
case ACTION_UP:
switch (event.getActionMasked()) {
case MotionEvent.ACTION_UP:
pos.set(event.getX(), event.getY());
moveLock = false;
break;

case ACTION_DOWN:
case MotionEvent.ACTION_DOWN:
pos.set(event.getX(), event.getY());
break;

case ACTION_MOVE:
case MotionEvent.ACTION_MOVE:
if (moveLock || !enableMove)
return super.performClick();
float posX = event.getX() - pos.x;
Expand All @@ -101,15 +98,15 @@ public boolean onTouchEvent(MotionEvent event) {
} else if (event.getPointerCount() == 2) {
float distX, distY, scale;
switch (event.getActionMasked()) {
case ACTION_POINTER_UP:
case ACTION_POINTER_DOWN:
case MotionEvent.ACTION_POINTER_UP:
case MotionEvent.ACTION_POINTER_DOWN:
distX = event.getX(0) - event.getX(1);
distY = event.getY(0) - event.getY(1);
dist.set(distX, distY); // Distance vector
moveLock = true;
break;

case ACTION_MOVE:
case MotionEvent.ACTION_MOVE:
distX = event.getX(0) - event.getX(1);
distY = event.getY(0) - event.getY(1);
PointF current = new PointF(distX, distY);
Expand Down Expand Up @@ -167,7 +164,8 @@ public void setMaxZoomOut(float max_zoom_out) {
*/
private void apply(Matrix m) {
Drawable d = getDrawable();
if (d == null) return;
if (d == null)
return;

float[] val = new float[9];
m.getValues(val);
Expand Down

0 comments on commit 6098e1f

Please sign in to comment.