summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/camera/CameraActivity.java27
-rw-r--r--src/com/android/camera/ImageTaskManager.java48
-rw-r--r--src_pd/com/android/camera/PanoramaStitchingManager.java41
3 files changed, 115 insertions, 1 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index 07cb6ce..2ef71ed 100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -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
diff --git a/src/com/android/camera/ImageTaskManager.java b/src/com/android/camera/ImageTaskManager.java
new file mode 100644
index 0000000..1324942
--- /dev/null
+++ b/src/com/android/camera/ImageTaskManager.java
@@ -0,0 +1,48 @@
+/*
+ * 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);
+}
diff --git a/src_pd/com/android/camera/PanoramaStitchingManager.java b/src_pd/com/android/camera/PanoramaStitchingManager.java
new file mode 100644
index 0000000..5ba16b8
--- /dev/null
+++ b/src_pd/com/android/camera/PanoramaStitchingManager.java
@@ -0,0 +1,41 @@
+/*
+ * 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;
+ }
+}