OSDN Git Service

[OC] Hook new Capture module up, behind a system property.
authorSascha Haeberling <haeberling@google.com>
Thu, 31 Jul 2014 03:17:30 +0000 (20:17 -0700)
committerSascha Haeberling <haeberling@google.com>
Thu, 31 Jul 2014 03:18:45 +0000 (20:18 -0700)
  Bug: 16654225

Change-Id: I6be44fefce66c09425a1bebc1942489f6af7636c

src/com/android/camera/module/ModulesInfo.java

index b771168..1a36ac9 100644 (file)
@@ -18,6 +18,7 @@ package com.android.camera.module;
 
 import android.content.Context;
 
+import com.android.camera.CaptureModule;
 import com.android.camera.PhotoModule;
 import com.android.camera.VideoModule;
 import com.android.camera.app.AppController;
@@ -26,6 +27,7 @@ import com.android.camera.debug.Log;
 import com.android.camera.util.GcamHelper;
 import com.android.camera.util.PhotoSphereHelper;
 import com.android.camera.util.RefocusHelper;
+import com.android.camera.util.SystemProperties;
 import com.android.camera2.R;
 
 /**
@@ -35,6 +37,12 @@ import com.android.camera2.R;
 public class ModulesInfo {
     private static final Log.Tag TAG = new Log.Tag("ModulesInfo");
 
+    /** Switch between PhotoModule and the new CaptureModule. */
+    private static final String PROP_ENABLE_CAPTURE_MODULE = "persist.camera.newcapture";
+    private static final String VALUE_CAPTURE_MODULE_OFF = "0";
+    private static final boolean ENABLE_CAPTURE_MODULE = !VALUE_CAPTURE_MODULE_OFF
+            .equals(SystemProperties.get(PROP_ENABLE_CAPTURE_MODULE, VALUE_CAPTURE_MODULE_OFF));
+
     public static void setupModules(Context context, ModuleManager moduleManager) {
         int photoModuleId = context.getResources().getInteger(R.integer.camera_mode_photo);
         registerPhotoModule(moduleManager, photoModuleId);
@@ -66,12 +74,16 @@ public class ModulesInfo {
 
             @Override
             public boolean requestAppForCamera() {
-                return true;
+                // The PhotoModule requests the old app camere, while the new
+                // capture module is using OneCamera. At some point we'll
+                // refactor all modules to use OneCamera, then the new module
+                // doesn't have to manage it itself.
+                return !ENABLE_CAPTURE_MODULE;
             }
 
             @Override
             public ModuleController createModule(AppController app) {
-                return new PhotoModule(app);
+                return ENABLE_CAPTURE_MODULE ? new CaptureModule(app) : new PhotoModule(app);
             }
         });
     }