summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/camera/PhotoModule.java2
-rw-r--r--src/com/android/camera/VideoModule.java2
-rw-r--r--src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java1
-rw-r--r--src/com/android/camera/stats/CaptureSessionStatsCollector.java29
-rw-r--r--src_pd/com/android/camera/stats/UsageStatistics.java3
5 files changed, 28 insertions, 9 deletions
diff --git a/src/com/android/camera/PhotoModule.java b/src/com/android/camera/PhotoModule.java
index 653580e72..5fd9c2978 100644
--- a/src/com/android/camera/PhotoModule.java
+++ b/src/com/android/camera/PhotoModule.java
@@ -929,7 +929,7 @@ public class PhotoModule
eventprotos.NavigationChange.Mode.PHOTO_CAPTURE,
name.title + ".jpg", exif,
isCameraFrontFacing(), hdrOn, zoomValue, flashSetting, gridLinesOn,
- (float) mTimerDuration, mShutterTouchCoordinate, mVolumeButtonClickedFlag);
+ (float) mTimerDuration, null, mShutterTouchCoordinate, mVolumeButtonClickedFlag);
mShutterTouchCoordinate = null;
mVolumeButtonClickedFlag = false;
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index 742ce25b2..3ff104a82 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -1942,7 +1942,7 @@ public class VideoModule extends CameraModule
UsageStatistics.instance().photoCaptureDoneEvent(
eventprotos.NavigationChange.Mode.VIDEO_STILL, title + ".jpeg", exif,
isCameraFrontFacing(), false, currentZoomValue(), flashSetting, gridLinesOn,
- null, null, null);
+ null, null, null, null);
getServices().getMediaSaver().addImage(data, title, dateTaken, loc, orientation, exif,
mOnPhotoSavedListener);
diff --git a/src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java b/src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java
index feeb2852a..0ecb263b6 100644
--- a/src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java
+++ b/src/com/android/camera/processing/imagebackend/TaskCompressImageToJpeg.java
@@ -93,6 +93,7 @@ public class TaskCompressImageToJpeg extends TaskJpegEncode {
@Override
public void run() {
ImageToProcess img = mImage;
+ mSession.getCollector().markProcessingTimeStart();
final Rect safeCrop = guaranteedSafeCrop(img.proxy, img.crop);
// For JPEG, it is the capture devices responsibility to get proper
diff --git a/src/com/android/camera/stats/CaptureSessionStatsCollector.java b/src/com/android/camera/stats/CaptureSessionStatsCollector.java
index 922c5de48..17683a2e6 100644
--- a/src/com/android/camera/stats/CaptureSessionStatsCollector.java
+++ b/src/com/android/camera/stats/CaptureSessionStatsCollector.java
@@ -1,5 +1,7 @@
package com.android.camera.stats;
+import android.os.SystemClock;
+
import com.google.common.annotations.VisibleForTesting;
import com.android.camera.exif.ExifInterface;
@@ -14,8 +16,10 @@ import com.android.camera.ui.TouchCoordinate;
*/
public class CaptureSessionStatsCollector {
-
+ /** Time when capture is completed in SystemClock.elapsedRealtime(). */
+ protected long mCaptureTimeMillis;
protected final UsageStatistics mUsageStatistics;
+
// Define all fields as Objects so that we know whether they were set or not.
// A required field
protected Integer mMode;
@@ -103,14 +107,22 @@ public class CaptureSessionStatsCollector {
}
/**
- * Send capture event to the UsageStatistic singleton.
+ * Called when image processing time begins.
*/
- public void photoCaptureDoneEvent(){
- if(isValidForPhotoCaptureEvent()) {
+ public void markProcessingTimeStart() {
+ mCaptureTimeMillis = getElapsedRealTime();
+ }
+
+ /**
+ * Send capture event to the UsageStatistics singleton.
+ */
+ public void photoCaptureDoneEvent() {
+ Float processingTime = (getElapsedRealTime() - mCaptureTimeMillis) / 1000f;
+ if (isValidForPhotoCaptureEvent()) {
mUsageStatistics.photoCaptureDoneEvent(
mMode, mFilename, mExifInterface, mIsFrontFacing,
mIsHdr, mZoom, mFlashSetting, mGridLinesOn, mTimerSeconds,
- mTouchCoordinate, mVolumeButtonShutter);
+ processingTime, mTouchCoordinate, mVolumeButtonShutter);
}
}
@@ -140,6 +152,11 @@ public class CaptureSessionStatsCollector {
return (mMode != null);
}
-
+ /**
+ * Call to SystemClock.elapsedRealtime() that we can override for testing.
+ */
+ public long getElapsedRealTime() {
+ return SystemClock.elapsedRealtime();
+ }
}
diff --git a/src_pd/com/android/camera/stats/UsageStatistics.java b/src_pd/com/android/camera/stats/UsageStatistics.java
index 558f13080..28d72d77a 100644
--- a/src_pd/com/android/camera/stats/UsageStatistics.java
+++ b/src_pd/com/android/camera/stats/UsageStatistics.java
@@ -65,7 +65,8 @@ public class UsageStatistics {
public void photoCaptureDoneEvent(int mode, String fileRef, ExifInterface exifRef,
boolean front, boolean isHDR, float zoom,
String flashSetting, boolean gridLinesOn,
- Float timerSeconds, TouchCoordinate touch,
+ Float timerSeconds, Float processingTime,
+ TouchCoordinate touch,
Boolean volumeButtonShutter) {
}