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

Commit bb0e3b5d authored by Suman Mukherjee's avatar Suman Mukherjee Committed by Michael Bestas
Browse files

Camera: Ensure background edition complete on back Key

Block back key event till the image will get displayed
while user pressed edit option/icon. This'll allow the
background process to cleanup memory. Added null check
and bitmap recycle to avoid crash.

Change-Id: Ied1c1f3ecf07a352743908135a5b7976373a58a3
CRs-Fixed:  587402
parent de6ffedf
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -195,6 +195,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
    private DialogInterface mCurrentDialog = null;
    private PopupMenu mCurrentMenu = null;
    private boolean mLoadingVisible = true;
    private boolean mLoadingComplete = false;

    public ProcessingService getProcessingService() {
        return mBoundService;
@@ -283,6 +284,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
        doBindService();
        getWindow().setBackgroundDrawable(new ColorDrawable(Color.GRAY));
        setContentView(R.layout.filtershow_splashscreen);
        mLoadingComplete = false;
    }

    public boolean isShowingImageStatePanel() {
@@ -850,6 +852,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL

            MasterImage.getImage().warnListeners();
            loadActions();
            mLoadingComplete = false;

            if (mOriginalPreset != null) {
                MasterImage.getImage().setLoadedPreset(mOriginalPreset);
@@ -1151,6 +1154,7 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
    }

    public void enableSave(boolean enable) {
        mLoadingComplete = true;
        if (mSaveButton != null) {
            mSaveButton.setEnabled(enable);
        }
@@ -1318,6 +1322,10 @@ public class FilterShowActivity extends FragmentActivity implements OnItemClickL
        Fragment currentPanel = getSupportFragmentManager().findFragmentByTag(MainPanel.FRAGMENT_TAG);
        if (currentPanel instanceof MainPanel) {
            if (!mImageShow.hasModifications()) {
                if (!mLoadingComplete) {
                    Log.v(LOGTAG,"Background processing is ON, rejecting back key event");
                    return;
                }
                done();
            } else {
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
+3 −0
Original line number Diff line number Diff line
@@ -176,6 +176,9 @@ public class CachingPipeline implements PipelineInterface {
    }

    public void setOriginal(Bitmap bitmap) {
        if (mOriginalBitmap != null) {
            mOriginalBitmap.recycle();
        }
        mOriginalBitmap = bitmap;
        Log.v(LOGTAG,"setOriginal, size " + bitmap.getWidth() + " x " + bitmap.getHeight());
        ImagePreset preset = MasterImage.getImage().getPreset();
+2 −1
Original line number Diff line number Diff line
@@ -57,7 +57,8 @@ public class UpdatePreviewTask extends ProcessingTask {
        SharedBuffer buffer = MasterImage.getImage().getPreviewBuffer();
        SharedPreset preset = MasterImage.getImage().getPreviewPreset();
        ImagePreset renderingPreset = preset.dequeuePreset();
        if (renderingPreset != null) {
        if ( (buffer != null) && (renderingPreset != null) &&
                (buffer.getProducer() != null)) {
            mPreviewPipeline.compute(buffer, renderingPreset, 0);
            // set the preset we used in the buffer for later inspection UI-side
            buffer.getProducer().setPreset(renderingPreset);