Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1f757a98 authored by Matt Casey's avatar Matt Casey
Browse files

Add extra padding to long screenshot crop

Modify padding code to account for this handling properly.

Test: Test on full width and full height images, ensure touch area
expanded into padding, handles visible at edges.
Bug: 183278748

Change-Id: I083527467940206286ec485f92e56f0c19327219
parent f02ab425
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -50,8 +50,9 @@
        android:id="@+id/preview"
        android:layout_width="0px"
        android:layout_height="0px"
        android:layout_marginBottom="42dp"
        android:paddingHorizontal="48dp"
        android:paddingTop="8dp"
        android:paddingBottom="42dp"
        app:layout_constrainedHeight="true"
        app:layout_constrainedWidth="true"
        app:layout_constraintTop_toBottomOf="@id/save"
@@ -66,7 +67,8 @@
        android:id="@+id/crop_view"
        android:layout_width="0px"
        android:layout_height="0px"
        android:layout_marginBottom="42dp"
        android:paddingTop="8dp"
        android:paddingBottom="42dp"
        app:layout_constrainedHeight="true"
        app:layout_constrainedWidth="true"
        app:layout_constraintTop_toTopOf="@id/preview"
+9 −6
Original line number Diff line number Diff line
@@ -411,19 +411,22 @@ public class LongScreenshotActivity extends Activity {
        float imageRatio = bounds.width() / (float) bounds.height();
        int previewWidth = mPreview.getWidth() - mPreview.getPaddingLeft()
                - mPreview.getPaddingRight();
        float viewRatio = previewWidth / (float) mPreview.getHeight();
        int previewHeight = mPreview.getHeight() - mPreview.getPaddingTop()
                - mPreview.getPaddingBottom();
        float viewRatio = previewWidth / (float) previewHeight;

        if (imageRatio > viewRatio) {
            // Image is full width and height is constrained, compute extra padding to inform
            // CropView
            float imageHeight = mPreview.getHeight() * viewRatio / imageRatio;
            int extraPadding = (int) (mPreview.getHeight() - imageHeight) / 2;
            mCropView.setExtraPadding(extraPadding, extraPadding);
            float imageHeight = previewHeight * viewRatio / imageRatio;
            int extraPadding = (int) (previewHeight - imageHeight) / 2;
            mCropView.setExtraPadding(extraPadding + mPreview.getPaddingTop(),
                    extraPadding + mPreview.getPaddingBottom());
            mCropView.setImageWidth(previewWidth);
        } else {
            // Image is full height
            mCropView.setExtraPadding(0, 0);
            mCropView.setImageWidth((int) (mPreview.getHeight() * imageRatio));
            mCropView.setExtraPadding(mPreview.getPaddingTop(),  mPreview.getPaddingBottom());
            mCropView.setImageWidth((int) (previewHeight * imageRatio));
        }

    }