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

Commit 55d6abe5 authored by nicolasroard's avatar nicolasroard
Browse files

Fix export dialog (size export)

Change-Id: Ifa4bb6a990622bfc00f6b4fe4998417fec32e650
parent fc4700c0
Loading
Loading
Loading
Loading
+45 −15
Original line number Diff line number Diff line
@@ -27,31 +27,61 @@
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|center_vertical"
        android:layout_margin="7dp"
        android:text="@string/select_compression"/>
        android:text="@string/select_output_settings"/>

    <LinearLayout
    <GridLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
            android:layout_height="wrap_content">
        android:layout_height="wrap_content"
        android:alignmentMode="alignBounds"
        android:useDefaultMargins="true"
        android:columnOrderPreserved="false"
        android:columnCount="5">

        <TextView
                android:text="@string/size"
                android:layout_gravity="right|center_vertical"/>

        <EditText
                android:id="@+id/editableWidth"
                android:layout_gravity="right|center_vertical"
                android:layout_width="100dp"
                android:inputType="number"/>

        <TextView
                android:text="@string/x"
                android:layout_gravity="center"/>

        <EditText
                android:id="@+id/editableHeight"
                android:layout_gravity="left|center_vertical"
                android:layout_width="100dp"
                android:inputType="number"/>

        <TextView
                android:id="@+id/estimadedSize"
                android:layout_gravity="center"/>

        <TextView
                android:text="@string/quality"
                android:layout_margin="7dp"
                android:layout_gravity="right|center_vertical" />

        <SeekBar
                android:id="@+id/qualitySeekBar"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="3"
                android:layout_margin="7dp"
                android:layout_gravity="center"
                android:max="100"
                android:progress="100"/>
                android:progress="100"
                android:layout_width="400dp"
                android:layout_columnSpan="3"/>

        <TextView
                android:id="@+id/qualityTextView"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_marginLeft="7dp"
                android:layout_gravity="center_vertical|center_horizontal"/>
                android:layout_margin="7dp"
                android:layout_gravity="left|center_vertical"/>

    </LinearLayout>
    </GridLayout>

    <LinearLayout
            android:orientation="horizontal"
+8 −1
Original line number Diff line number Diff line
@@ -49,10 +49,17 @@
    <string name="hide_imagestate_panel">Hide Applied Effects</string>
    <!--  Text for the menu item to export a flattened photo[CHAR LIMIT=30] -->
    <string name="export_flattened">Export Flattened Image</string>

    <!-- Export Dialog-->

    <!--  Text for selecting export image quality [CHAR LIMIT=100] -->
    <string name="select_compression">Select output quality.</string>
    <string name="select_output_settings">Select Output Settings.</string>
    <!--  Text for quality value tag [CHAR LIMIT=30] -->
    <string name="quality">Quality</string>
    <!--  Text for size value tag [CHAR LIMIT=30] -->
    <string name="size">Size</string>
    <!--  Text for size x [CHAR LIMIT=1] -->
    <string name="x">x</string>

    <!--  Name for the overflow menu item for settings [CHAR LIMIT=20] -->
    <string name="menu_settings">Settings</string>
+9 −0
Original line number Diff line number Diff line
@@ -282,6 +282,15 @@ public final class GeometryMathUtils {
        unpackGeometry(outHolder, geometry);
    }

    public static Rect finalGeometryRect(int width, int height,
                                         Collection<FilterRepresentation> geometry) {
        GeometryHolder holder = unpackGeometry(geometry);
        RectF crop = getTrueCropRect(holder, width, height);
        Rect frame = new Rect();
        crop.roundOut(frame);
        return frame;
    }

    private static Bitmap applyFullGeometryMatrix(Bitmap image, GeometryHolder holder) {
        int width = image.getWidth();
        int height = image.getHeight();
+4 −0
Original line number Diff line number Diff line
@@ -421,6 +421,10 @@ public class ImagePreset {
        return null;
    }

    public Rect finalGeometryRect(int width, int height) {
        return GeometryMathUtils.finalGeometryRect(width, height, getGeometryFilters());
    }

    public Bitmap applyGeometry(Bitmap bitmap, FilterEnvironment environment) {
        // Apply any transform -- 90 rotate, flip, straighten, crop
        // Returns a new bitmap.
+7 −2
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.gallery3d.filtershow.pipeline;

import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.net.Uri;
import com.android.gallery3d.filtershow.cache.ImageLoader;
import com.android.gallery3d.filtershow.filters.FiltersManager;
@@ -35,6 +36,7 @@ public class ImageSavingTask extends ProcessingTask {
        ImagePreset preset;
        boolean flatten;
        int quality;
        float sizeFactor;
    }

    static class UpdateBitmap implements Update {
@@ -55,7 +57,8 @@ public class ImageSavingTask extends ProcessingTask {
    }

    public void saveImage(Uri sourceUri, Uri selectedUri,
                          File destinationFile, ImagePreset preset, boolean flatten, int quality) {
                          File destinationFile, ImagePreset preset, boolean flatten,
                          int quality, float sizeFactor) {
        SaveRequest request = new SaveRequest();
        request.sourceUri = sourceUri;
        request.selectedUri = selectedUri;
@@ -63,6 +66,7 @@ public class ImageSavingTask extends ProcessingTask {
        request.preset = preset;
        request.flatten = flatten;
        request.quality = quality;
        request.sizeFactor = sizeFactor;
        postRequest(request);
    }

@@ -89,7 +93,8 @@ public class ImageSavingTask extends ProcessingTask {
                        postUpdate(updateProgress);
                    }
                });
        Uri uri = saveImage.processAndSaveImage(preset, !flatten, request.quality);
        Uri uri = saveImage.processAndSaveImage(preset, !flatten,
                request.quality, request.sizeFactor);
        URIResult result = new URIResult();
        result.uri = uri;
        return result;
Loading