Skip to content
This repository has been archived by the owner on Jan 7, 2023. It is now read-only.

Avoid image highlight staying behind soft navigation bar #245

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion lib/src/main/java/com/soundcloud/android/crop/CropImageView.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.os.Build;
import android.support.annotation.NonNull;
import android.util.AttributeSet;
import android.view.MotionEvent;
Expand All @@ -20,6 +21,8 @@ public class CropImageView extends ImageViewTouchBase {
private int motionEdge;
private int validPointerId;

private int softNavbarHeight = 0;

public CropImageView(Context context) {
super(context);
}
Expand All @@ -35,6 +38,14 @@ public CropImageView(Context context, AttributeSet attrs, int defStyle) {
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
int resID = getResources().getIdentifier("navigation_bar_height", "dimen", "android");
if(resID > 0){
softNavbarHeight = getResources().getDimensionPixelSize(resID);
}
}

if (bitmapDisplayed.getBitmap() != null) {
for (HighlightView hv : highlightViews) {

Expand Down Expand Up @@ -143,7 +154,7 @@ private void ensureVisible(HighlightView hv) {
int panDeltaX2 = Math.min(0, getRight() - r.right);

int panDeltaY1 = Math.max(0, getTop() - r.top);
int panDeltaY2 = Math.min(0, getBottom() - r.bottom);
int panDeltaY2 = Math.min(0, getBottom() - r.bottom - softNavbarHeight);

int panDeltaX = panDeltaX1 != 0 ? panDeltaX1 : panDeltaX2;
int panDeltaY = panDeltaY1 != 0 ? panDeltaY1 : panDeltaY2;
Expand Down