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

Commit dfdde249 authored by Angus Kong's avatar Angus Kong
Browse files

Add stitching manager in Camera.

Change-Id: I2f27c2c0e77ed3d618df890e709ca09076591f70
parent 3ff57bb4
Loading
Loading
Loading
Loading
+26 −1
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@ public class CameraActivity extends Activity
    public static final String SECURE_CAMERA_EXTRA = "secure_camera";

    private CameraDataAdapter mDataAdapter;
    private PanoramaStitchingManager mPanoramaManager;
    private int mCurrentModuleIndex;
    private CameraModule mCurrentModule;
    private View mRootView;
@@ -149,6 +150,22 @@ public class CameraActivity extends Activity
            }
        };

    private ImageTaskManager.TaskListener mStitchingListener =
            new ImageTaskManager.TaskListener() {
                @Override
                public void onTaskQueued(String filePath, Uri imageUri) {
                }

                @Override
                public void onTaskDone(String filePath, Uri imageUri) {
                }

                @Override
                public void onTaskProgress(
                        String filePath, Uri imageUri, int progress) {
                }
            };

    public MediaSaveService getMediaSaveService() {
        return mMediaSaveService;
    }
@@ -219,6 +236,8 @@ public class CameraActivity extends Activity
            IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
            registerReceiver(mScreenOffReceiver, filter);
        }
        mPanoramaManager = new PanoramaStitchingManager(CameraActivity.this);
        mPanoramaManager.addTaskListener(mStitchingListener);
        LayoutInflater inflater = getLayoutInflater();
        View rootLayout = inflater.inflate(R.layout.camera, null, false);
        mRootView = rootLayout.findViewById(R.id.camera_app_root);
@@ -277,6 +296,13 @@ public class CameraActivity extends Activity
        super.onResume();
        mCurrentModule.onResumeAfterSuper();

        setSwipingEnabled(true);
    }

    @Override
    public void onStart() {
        super.onStart();

        // The loading is done in background and will update the filmstrip later.
        if (!mSecureCamera) {
            mDataAdapter.requestLoad(getContentResolver());
@@ -293,7 +319,6 @@ public class CameraActivity extends Activity
                            v.getDrawable().getIntrinsicHeight(),
                            0, 0));
        }
        setSwipingEnabled(true);
    }

    @Override
+48 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2013 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.camera;

import android.net.Uri;

/**
 * The interface for background image processing task manager.
 */
interface ImageTaskManager {

    /**
     * Callback interface for task events.
     */
    public interface TaskListener {
        public void onTaskQueued(String filePath, Uri imageUri);
        public void onTaskDone(String filePath, Uri imageUri);
        public void onTaskProgress(
                String filePath, Uri imageUri, int progress);
    }

    public void addTaskListener(TaskListener l);

    public void removeTaskListener(TaskListener l);

    /**
     * Get task progress by Uri.
     *
     * @param uri         The Uri of the final image file to identify the task.
     * @return            Integer from 0 to 100, or -1. The percentage of the task done
     *                    so far. -1 means not found.
     */
    public int getTaskProgress(Uri uri);
}
+41 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2013 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.camera;

import android.content.Context;
import android.net.Uri;

class PanoramaStitchingManager implements ImageTaskManager {

    public PanoramaStitchingManager(Context ctx) {
    }

    @Override
    public void addTaskListener(TaskListener l) {
        // do nothing.
    }

    @Override
    public void removeTaskListener(TaskListener l) {
        // do nothing.
    }

    @Override
    public int getTaskProgress(Uri uri) {
        return -1;
    }
}