OSDN Git Service

Refactor UsageStatistic so it can be disabled more easily.
[android-x86/packages-apps-Camera2.git] / src / com / android / camera / VideoModule.java
index 36decc7..5003c96 100644 (file)
@@ -46,7 +46,6 @@ import android.os.SystemClock;
 import android.provider.MediaStore;
 import android.provider.MediaStore.MediaColumns;
 import android.provider.MediaStore.Video;
-import android.util.Log;
 import android.view.KeyEvent;
 import android.view.OrientationEventListener;
 import android.view.View;
@@ -61,13 +60,13 @@ import com.android.camera.app.LocationManager;
 import com.android.camera.app.MediaSaver;
 import com.android.camera.app.MemoryManager;
 import com.android.camera.app.MemoryManager.MemoryListener;
+import com.android.camera.debug.Log;
 import com.android.camera.exif.ExifInterface;
 import com.android.camera.hardware.HardwareSpec;
 import com.android.camera.hardware.HardwareSpecImpl;
 import com.android.camera.module.ModuleController;
 import com.android.camera.settings.SettingsManager;
 import com.android.camera.settings.SettingsUtil;
-import com.android.camera.util.AccessibilityUtils;
 import com.android.camera.util.ApiHelper;
 import com.android.camera.util.CameraUtil;
 import com.android.camera.util.UsageStatistics;
@@ -88,7 +87,7 @@ public class VideoModule extends CameraModule
     MediaRecorder.OnErrorListener,
     MediaRecorder.OnInfoListener, FocusOverlayManager.Listener {
 
-    private static final String TAG = "VideoModule";
+    private static final Log.Tag TAG = new Log.Tag("VideoModule");
 
     // Messages defined for the UI thread handler.
     private static final int MSG_CHECK_DISPLAY_ROTATION = 4;
@@ -407,8 +406,8 @@ public class VideoModule extends CameraModule
                     null, null, null, new JpegPictureCallback(loc));
             showVideoSnapshotUI(true);
             mSnapshotInProgress = true;
-            UsageStatistics.captureEvent(eventprotos.NavigationChange.Mode.VIDEO_STILL,
-                    null, null);
+            UsageStatistics.instance().captureEvent(
+                    eventprotos.NavigationChange.Mode.VIDEO_STILL, null, null, null);
         }
     }
 
@@ -517,6 +516,11 @@ public class VideoModule extends CameraModule
     };
 
     @Override
+    public void hardResetSettings(SettingsManager settingsManager) {
+        // VideoModule does not need to hard reset any settings.
+    }
+
+    @Override
     public HardwareSpec getHardwareSpec() {
         return (mParameters != null ? new HardwareSpecImpl(mParameters) : null);
     }
@@ -845,7 +849,7 @@ public class VideoModule extends CameraModule
             return;
         }
 
-        mCameraDevice.setErrorCallback(mErrorCallback);
+        mCameraDevice.setErrorCallback(mHandler, mErrorCallback);
         if (mPreviewing == true) {
             stopPreview();
         }
@@ -907,7 +911,7 @@ public class VideoModule extends CameraModule
             return;
         }
         mCameraDevice.setZoomChangeListener(null);
-        mCameraDevice.setErrorCallback(null);
+        mCameraDevice.setErrorCallback(null, null);
         mActivity.getCameraProvider().releaseCamera(mCameraDevice.getCameraId());
         mCameraDevice = null;
         mPreviewing = false;
@@ -1135,6 +1139,8 @@ public class VideoModule extends CameraModule
         mCurrentVideoValues.put(MediaColumns.DATE_MODIFIED, dateTaken / 1000);
         mCurrentVideoValues.put(Video.Media.MIME_TYPE, mime);
         mCurrentVideoValues.put(Video.Media.DATA, path);
+        mCurrentVideoValues.put(Video.Media.WIDTH, mProfile.videoFrameWidth);
+        mCurrentVideoValues.put(Video.Media.HEIGHT, mProfile.videoFrameHeight);
         mCurrentVideoValues.put(Video.Media.RESOLUTION,
                 Integer.toString(mProfile.videoFrameWidth) + "x" +
                 Integer.toString(mProfile.videoFrameHeight));
@@ -1222,11 +1228,6 @@ public class VideoModule extends CameraModule
         mUI.showFocusUI(false);
         mUI.showVideoRecordingHints(false);
 
-        // A special case of mode options closing: during capture it should
-        // not be possible to change mode state.
-        mAppController.getCameraAppUI().hideModeOptions();
-        mAppController.getCameraAppUI().animateBottomBarToVideoStop(R.drawable.ic_stop);
-
         mActivity.updateStorageSpaceAndHint();
         if (mActivity.getStorageSpaceBytes() <= Storage.LOW_STORAGE_THRESHOLD_BYTES) {
             Log.v(TAG, "Storage issue, ignore the start request");
@@ -1256,11 +1257,6 @@ public class VideoModule extends CameraModule
         }
         mAppController.getCameraAppUI().setSwipeEnabled(false);
 
-        // Make sure the video recording has started before announcing
-        // this in accessibility.
-        AccessibilityUtils.makeAnnouncement(mUI.getShutterButton(),
-                mActivity.getString(R.string.video_recording_started));
-
         // The parameters might have been altered by MediaRecorder already.
         // We need to force mCameraDevice to refresh before getting it.
         mCameraDevice.refreshParameters();
@@ -1273,6 +1269,11 @@ public class VideoModule extends CameraModule
         mMediaRecorderRecording = true;
         mActivity.lockOrientation();
         mRecordingStartTime = SystemClock.uptimeMillis();
+
+        // A special case of mode options closing: during capture it should
+        // not be possible to change mode state.
+        mAppController.getCameraAppUI().hideModeOptions();
+        mAppController.getCameraAppUI().animateBottomBarToVideoStop(R.drawable.ic_stop);
         mUI.showRecordingUI(true);
 
         setFocusParameters();
@@ -1320,9 +1321,6 @@ public class VideoModule extends CameraModule
         mUI.showFocusUI(true);
         mUI.showVideoRecordingHints(true);
 
-        mAppController.getCameraAppUI().showModeOptions();
-        mAppController.getCameraAppUI().animateBottomBarToFullSize(mShutterIconId);
-
         boolean fail = false;
         if (mMediaRecorderRecording) {
             boolean shouldAddToMediaStoreNow = false;
@@ -1339,11 +1337,9 @@ public class VideoModule extends CameraModule
                 String statisticFilename = (mCurrentVideoFilename == null
                         ? "INTENT"
                         : mCurrentVideoFilename);
-                UsageStatistics.captureEvent(eventprotos.NavigationChange.Mode.VIDEO_CAPTURE,
-                        statisticFilename, mParameters, duration);
-                AccessibilityUtils.makeAnnouncement(mUI.getShutterButton(),
-                        mActivity.getAndroidContext().getString(R.string
-                                .video_recording_stopped));
+                UsageStatistics.instance().captureEvent(
+                        eventprotos.NavigationChange.Mode.VIDEO_CAPTURE, statisticFilename,
+                        mParameters, duration);
             } catch (RuntimeException e) {
                 Log.e(TAG, "stop fail",  e);
                 if (mVideoFilename != null) {
@@ -1377,6 +1373,9 @@ public class VideoModule extends CameraModule
         }
         // release media recorder
         releaseMediaRecorder();
+
+        mAppController.getCameraAppUI().showModeOptions();
+        mAppController.getCameraAppUI().animateBottomBarToFullSize(mShutterIconId);
         if (!mPaused) {
             setFocusParameters();
             mCameraDevice.lock();
@@ -1512,18 +1511,6 @@ public class VideoModule extends CameraModule
 
         enableTorchMode(settingsManager.isCameraBackFacing());
 
-        // Set white balance parameter.
-        String whiteBalance = settingsManager.get(SettingsManager.SETTING_WHITE_BALANCE);
-        if (isSupported(whiteBalance,
-                mParameters.getSupportedWhiteBalance())) {
-            mParameters.setWhiteBalance(whiteBalance);
-        } else {
-            whiteBalance = mParameters.getWhiteBalance();
-            if (whiteBalance == null) {
-                whiteBalance = Parameters.WHITE_BALANCE_AUTO;
-            }
-        }
-
         // Set zoom.
         if (mParameters.isZoomSupported()) {
             mParameters.setZoom(mZoomValue);
@@ -1624,7 +1611,7 @@ public class VideoModule extends CameraModule
             mHandler.sendEmptyMessageDelayed(MSG_CHECK_DISPLAY_ROTATION, 100);
         }
 
-        UsageStatistics.changeScreen(eventprotos.NavigationChange.Mode.VIDEO_CAPTURE,
+        UsageStatistics.instance().changeScreen(eventprotos.NavigationChange.Mode.VIDEO_CAPTURE,
                 eventprotos.CameraEvent.InteractionCause.BUTTON);
         getServices().getMemoryManager().addListener(this);
     }