diff options
Diffstat (limited to 'src/com/android/camera/CameraActivity.java')
-rw-r--r-- | src/com/android/camera/CameraActivity.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java index b971b284f..eb2da1d1b 100644 --- a/src/com/android/camera/CameraActivity.java +++ b/src/com/android/camera/CameraActivity.java @@ -64,6 +64,7 @@ import android.widget.ProgressBar; import android.widget.ShareActionProvider; import com.android.camera.app.AppManagerFactory; +import com.android.camera.app.PlaceholderManager; import com.android.camera.app.PanoramaStitchingManager; import com.android.camera.crop.CropActivity; import com.android.camera.data.CameraDataAdapter; @@ -143,6 +144,7 @@ public class CameraActivity extends Activity private LocalDataAdapter mWrappedDataAdapter; private PanoramaStitchingManager mPanoramaManager; + private PlaceholderManager mPlaceholderManager; private int mCurrentModuleIndex; private CameraModule mCurrentModule; private FrameLayout mAboveFilmstripControlLayout; @@ -688,6 +690,41 @@ public class CameraActivity extends Activity item.setVisible(visible); } + private ImageTaskManager.TaskListener mPlaceholderListener = + new ImageTaskManager.TaskListener() { + + @Override + public void onTaskQueued(String filePath, final Uri imageUri) { + mMainHandler.post(new Runnable() { + @Override + public void run() { + notifyNewMedia(imageUri); + int dataID = mDataAdapter.findDataByContentUri(imageUri); + if (dataID != -1) { + LocalData d = mDataAdapter.getLocalData(dataID); + InProgressDataWrapper newData = new InProgressDataWrapper(d, true); + mDataAdapter.updateData(dataID, newData); + } + } + }); + } + + @Override + public void onTaskDone(String filePath, final Uri imageUri) { + mMainHandler.post(new Runnable() { + @Override + public void run() { + mDataAdapter.refresh(getContentResolver(), imageUri); + } + }); + } + + @Override + public void onTaskProgress(String filePath, Uri imageUri, int progress) { + // Do nothing + } + }; + private ImageTaskManager.TaskListener mStitchingListener = new ImageTaskManager.TaskListener() { @Override @@ -761,6 +798,8 @@ public class CameraActivity extends Activity mDataAdapter.addNewPhoto(cr, uri); } else if (mimeType.startsWith("application/stitching-preview")) { mDataAdapter.addNewPhoto(cr, uri); + } else if (mimeType.startsWith(PlaceholderManager.PLACEHOLDER_MIME_TYPE)) { + mDataAdapter.addNewPhoto(cr, uri); } else { android.util.Log.w(TAG, "Unknown new media with MIME type:" + mimeType + ", uri:" + uri); @@ -966,7 +1005,10 @@ public class CameraActivity extends Activity this.setSystemBarsVisibility(false); mPanoramaManager = AppManagerFactory.getInstance(this) .getPanoramaStitchingManager(); + mPlaceholderManager = AppManagerFactory.getInstance(this) + .getGcamProcessingManager(); mPanoramaManager.addTaskListener(mStitchingListener); + mPlaceholderManager.addTaskListener(mPlaceholderListener); LayoutInflater inflater = getLayoutInflater(); View rootLayout = inflater.inflate(R.layout.camera, null, false); mCameraModuleRootView = rootLayout.findViewById(R.id.camera_app_root); |