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

Commit 5063d3ab authored by nicolasroard's avatar nicolasroard Committed by Android Git Automerger
Browse files

am eeed64b1: Process correctly an export when called with EDIT intent

* commit 'eeed64b1':
  Process correctly an export when called with EDIT intent
parents 72dfc381 eeed64b1
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ public class ImageSavingTask extends ProcessingTask {
        int quality;
        float sizeFactor;
        Bitmap previewImage;
        boolean exit;
    }

    static class UpdateBitmap implements Update {
@@ -51,10 +52,12 @@ public class ImageSavingTask extends ProcessingTask {

    static class UpdatePreviewSaved implements Update {
        Uri uri;
        boolean exit;
    }

    static class URIResult implements Result {
        Uri uri;
        boolean exit;
    }

    public ImageSavingTask(ProcessingService service) {
@@ -64,7 +67,7 @@ public class ImageSavingTask extends ProcessingTask {
    public void saveImage(Uri sourceUri, Uri selectedUri,
                          File destinationFile, ImagePreset preset,
                          Bitmap previewImage, boolean flatten,
                          int quality, float sizeFactor) {
                          int quality, float sizeFactor, boolean exit) {
        SaveRequest request = new SaveRequest();
        request.sourceUri = sourceUri;
        request.selectedUri = selectedUri;
@@ -74,6 +77,7 @@ public class ImageSavingTask extends ProcessingTask {
        request.quality = quality;
        request.sizeFactor = sizeFactor;
        request.previewImage = previewImage;
        request.exit = exit;
        postRequest(request);
    }

@@ -85,6 +89,7 @@ public class ImageSavingTask extends ProcessingTask {
        Bitmap previewImage = request.previewImage;
        ImagePreset preset = request.preset;
        boolean flatten = request.flatten;
        final boolean exit = request.exit;
        // We create a small bitmap showing the result that we can
        // give to the notification
        UpdateBitmap updateBitmap = new UpdateBitmap();
@@ -97,6 +102,7 @@ public class ImageSavingTask extends ProcessingTask {
                    public void onPreviewSaved(Uri uri){
                        UpdatePreviewSaved previewSaved = new UpdatePreviewSaved();
                        previewSaved.uri = uri;
                        previewSaved.exit = exit;
                        postUpdate(previewSaved);
                    }

@@ -109,23 +115,25 @@ public class ImageSavingTask extends ProcessingTask {
                    }
                });
        Uri uri = saveImage.processAndSaveImage(preset, flatten,
                request.quality, request.sizeFactor);
                request.quality, request.sizeFactor, request.exit);
        URIResult result = new URIResult();
        result.uri = uri;
        result.exit = request.exit;
        return result;
    }

    @Override
    public void onResult(Result message) {
        URIResult result = (URIResult) message;
        mProcessingService.completeSaveImage(result.uri);
        mProcessingService.completeSaveImage(result.uri, result.exit);
    }

    @Override
    public void onUpdate(Update message) {
        if (message instanceof UpdatePreviewSaved){
            Uri uri = ((UpdatePreviewSaved) message).uri;
            mProcessingService.completePreviewSaveImage(uri);
            boolean exit = ((UpdatePreviewSaved) message).exit;
            mProcessingService.completePreviewSaveImage(uri, exit);
        }
        if (message instanceof UpdateBitmap) {
            Bitmap bitmap = ((UpdateBitmap) message).bitmap;
+18 −9
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ public class ProcessingService extends Service {
    private static final String SAVING = "saving";
    private static final String FLATTEN = "flatten";
    private static final String SIZE_FACTOR = "sizeFactor";
    private static final String EXIT = "exit";

    private ProcessingTaskController mProcessingTaskController;
    private ImageSavingTask mImageSavingTask;
@@ -140,7 +141,8 @@ public class ProcessingService extends Service {
    }

    public static Intent getSaveIntent(Context context, ImagePreset preset, File destination,
            Uri selectedImageUri, Uri sourceImageUri, boolean doFlatten, int quality, float sizeFactor) {
            Uri selectedImageUri, Uri sourceImageUri, boolean doFlatten, int quality,
            float sizeFactor, boolean needsExit) {
        Intent processIntent = new Intent(context, ProcessingService.class);
        processIntent.putExtra(ProcessingService.SOURCE_URI,
                sourceImageUri.toString());
@@ -154,6 +156,7 @@ public class ProcessingService extends Service {
        processIntent.putExtra(ProcessingService.PRESET,
                preset.getJsonString(ImagePreset.JASON_SAVED));
        processIntent.putExtra(ProcessingService.SAVING, true);
        processIntent.putExtra(ProcessingService.EXIT, needsExit);
        if (doFlatten) {
            processIntent.putExtra(ProcessingService.FLATTEN, true);
        }
@@ -196,6 +199,7 @@ public class ProcessingService extends Service {
            int quality = intent.getIntExtra(QUALITY, 100);
            float sizeFactor = intent.getFloatExtra(SIZE_FACTOR, 1);
            boolean flatten = intent.getBooleanExtra(FLATTEN, false);
            boolean exit = intent.getBooleanExtra(EXIT, false);
            Uri sourceUri = Uri.parse(source);
            Uri selectedUri = null;
            if (selected != null) {
@@ -211,7 +215,7 @@ public class ProcessingService extends Service {
            mSaving = true;
            handleSaveRequest(sourceUri, selectedUri, destinationFile, preset,
                    MasterImage.getImage().getHighresImage(),
                    flatten, quality, sizeFactor);
                    flatten, quality, sizeFactor, exit);
        }
        return START_REDELIVER_INTENT;
    }
@@ -230,10 +234,9 @@ public class ProcessingService extends Service {

    public void handleSaveRequest(Uri sourceUri, Uri selectedUri,
            File destinationFile, ImagePreset preset, Bitmap previewImage,
            boolean flatten, int quality, float sizeFactor) {
            boolean flatten, int quality, float sizeFactor, boolean exit) {
        mNotifyMgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

        mNotificationId++;
        mNotifyMgr.cancelAll();

        mBuilder =
                new Notification.Builder(this)
@@ -248,7 +251,7 @@ public class ProcessingService extends Service {
        // Process the image

        mImageSavingTask.saveImage(sourceUri, selectedUri, destinationFile,
                preset, previewImage, flatten, quality, sizeFactor);
                preset, previewImage, flatten, quality, sizeFactor, exit);
    }

    public void updateNotificationWithBitmap(Bitmap bitmap) {
@@ -261,19 +264,25 @@ public class ProcessingService extends Service {
        mNotifyMgr.notify(mNotificationId, mBuilder.build());
    }

    public void completePreviewSaveImage(Uri result) {
        if (!mNeedsAlive && !mFiltershowActivity.isSimpleEditAction()) {
    public void completePreviewSaveImage(Uri result, boolean exit) {
        if (exit && !mNeedsAlive && !mFiltershowActivity.isSimpleEditAction()) {
            mFiltershowActivity.completeSaveImage(result);
        }
    }

    public void completeSaveImage(Uri result) {
    public void completeSaveImage(Uri result, boolean exit) {
        if (SHOW_IMAGE) {
            // TODO: we should update the existing image in Gallery instead
            Intent viewImage = new Intent(Intent.ACTION_VIEW, result);
            viewImage.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(viewImage);
        }
        mNotifyMgr.cancel(mNotificationId);
        if (!exit) {
            stopForeground(true);
            stopSelf();
            return;
        }
        stopForeground(true);
        stopSelf();
        if (mNeedsAlive) {
+6 −5
Original line number Diff line number Diff line
@@ -326,9 +326,12 @@ public class SaveImage {
    }

    public Uri processAndSaveImage(ImagePreset preset, boolean flatten,
                                   int quality, float sizeFactor) {
                                   int quality, float sizeFactor, boolean exit) {

        Uri uri = resetToOriginalImageIfNeeded(preset, !flatten);
        Uri uri = null;
        if (exit) {
            uri = resetToOriginalImageIfNeeded(preset, !flatten);
        }
        if (uri != null) {
            return null;
        }
@@ -361,9 +364,7 @@ public class SaveImage {
                            Images.Media.EXTERNAL_CONTENT_URI, values);

                }

            } else {

                Object xmp = getPanoramaXMPData(newSourceUri, preset);
                ExifInterface exif = getExifData(newSourceUri);
                long time = System.currentTimeMillis();
@@ -536,7 +537,7 @@ public class SaveImage {
            flatten = true;
        }
        Intent processIntent = ProcessingService.getSaveIntent(filterShowActivity, preset,
                destination, selectedImageUri, sourceImageUri, flatten, 90, 1f);
                destination, selectedImageUri, sourceImageUri, flatten, 90, 1f, true);

        filterShowActivity.startService(processIntent);

+1 −1
Original line number Diff line number Diff line
@@ -161,7 +161,7 @@ public class ExportDialog extends DialogFragment implements View.OnClickListener
                float scaleFactor = mExportWidth / (float) mOriginalBounds.width();
                Intent processIntent = ProcessingService.getSaveIntent(activity, MasterImage
                        .getImage().getPreset(), dest, activity.getSelectedImageUri(), sourceUri,
                        true, mSeekBar.getProgress(), scaleFactor);
                        true, mSeekBar.getProgress(), scaleFactor, false);
                activity.startService(processIntent);
                dismiss();
                break;