summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/camera/Camera.java20
-rw-r--r--src/com/android/camera/Storage.java31
-rw-r--r--src/com/android/camera/VideoCamera.java25
3 files changed, 38 insertions, 38 deletions
diff --git a/src/com/android/camera/Camera.java b/src/com/android/camera/Camera.java
index 0452138..d32e4fa 100644
--- a/src/com/android/camera/Camera.java
+++ b/src/com/android/camera/Camera.java
@@ -727,15 +727,11 @@ public class Camera extends NoSearchActivity implements View.OnClickListener,
}
mImageCapture.storeImage(jpegData, camera, mLocation);
- // Calculate this in advance of each shot so we don't add to shutter
+ // Check this in advance of each shot so we don't add to shutter
// latency. It's true that someone else could write to the SD card in
// the mean time and fill it, but that could have happened between the
// shutter press and saving the JPEG too.
- calculatePicturesRemaining();
-
- if (mPicturesRemaining < 1) {
- updateStorageHint();
- }
+ checkStorage();
if (!mHandler.hasMessages(RESTART_PREVIEW)) {
long now = System.currentTimeMillis();
@@ -1244,7 +1240,10 @@ public class Camera extends NoSearchActivity implements View.OnClickListener,
}
private void checkStorage() {
- calculatePicturesRemaining();
+ mPicturesRemaining = Storage.getAvailableSpace();
+ if (mPicturesRemaining > 0) {
+ mPicturesRemaining /= 1500000;
+ }
updateStorageHint();
}
@@ -2171,13 +2170,6 @@ public class Camera extends NoSearchActivity implements View.OnClickListener,
}
}
- private void calculatePicturesRemaining() {
- mPicturesRemaining = Storage.getAvailableSpace();
- if (mPicturesRemaining > 0) {
- mPicturesRemaining /= 1500000;
- }
- }
-
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
diff --git a/src/com/android/camera/Storage.java b/src/com/android/camera/Storage.java
index bd42828..a42d03c 100644
--- a/src/com/android/camera/Storage.java
+++ b/src/com/android/camera/Storage.java
@@ -20,24 +20,37 @@ import android.os.Environment;
import android.os.StatFs;
import android.util.Log;
+import java.io.File;
+
class Storage {
private static final String TAG = "CameraStorage";
+ private static final String DCIM =
+ Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString();
+
+ public static final String DIRECTORY = DCIM + "/Camera";
+
public static final long UNAVAILABLE = -1L;
public static final long PREPARING = -2L;
public static final long UNKNOWN_SIZE = -3L;
public static long getAvailableSpace() {
+ String state = Environment.getExternalStorageState();
+ if (Environment.MEDIA_CHECKING.equals(state)) {
+ return PREPARING;
+ }
+ if (!Environment.MEDIA_MOUNTED.equals(state)) {
+ return UNAVAILABLE;
+ }
+
+ File dir = new File(DIRECTORY);
+ dir.mkdirs();
+ if (!dir.isDirectory() || !dir.canWrite()) {
+ return UNAVAILABLE;
+ }
+
try {
- String state = Environment.getExternalStorageState();
- if (Environment.MEDIA_CHECKING.equals(state)) {
- return PREPARING;
- }
- if (!Environment.MEDIA_MOUNTED.equals(state)) {
- return UNAVAILABLE;
- }
- StatFs stat = new StatFs(
- Environment.getExternalStorageDirectory().toString());
+ StatFs stat = new StatFs(DIRECTORY);
return stat.getAvailableBlocks() * (long) stat.getBlockSize();
} catch (Exception e) {
Log.i(TAG, "Fail to access external storage", e);
diff --git a/src/com/android/camera/VideoCamera.java b/src/com/android/camera/VideoCamera.java
index dfec632..776a58b 100644
--- a/src/com/android/camera/VideoCamera.java
+++ b/src/com/android/camera/VideoCamera.java
@@ -1080,7 +1080,7 @@ public class VideoCamera extends NoSearchActivity
Log.e(TAG, "Fail to close fd", e);
}
} else {
- createVideoPath(mProfile.fileFormat);
+ generateVideoFilename(mProfile.fileFormat);
mMediaRecorder.setOutputFile(mVideoFilename);
}
@@ -1143,7 +1143,7 @@ public class VideoCamera extends NoSearchActivity
if (mCameraDevice != null) mCameraDevice.lock();
}
- private void createVideoPath(int outputFileFormat) {
+ private void generateVideoFilename(int outputFileFormat) {
long dateTaken = System.currentTimeMillis();
String title = createName(dateTaken);
String filename = title + ".3gp"; // Used when emailing.
@@ -1152,19 +1152,14 @@ public class VideoCamera extends NoSearchActivity
filename = title + ".mp4";
mime = "video/mp4";
}
- String cameraDirPath = ImageManager.CAMERA_IMAGE_BUCKET_NAME;
- String filePath = cameraDirPath + "/" + filename;
- File cameraDir = new File(cameraDirPath);
- cameraDir.mkdirs();
- ContentValues values = new ContentValues(7);
- values.put(Video.Media.TITLE, title);
- values.put(Video.Media.DISPLAY_NAME, filename);
- values.put(Video.Media.DATE_TAKEN, dateTaken);
- values.put(Video.Media.MIME_TYPE, mime);
- values.put(Video.Media.DATA, filePath);
- mVideoFilename = filePath;
- Log.v(TAG, "Current camera video filename: " + mVideoFilename);
- mCurrentVideoValues = values;
+ mVideoFilename = Storage.DIRECTORY + '/' + filename;
+ mCurrentVideoValues = new ContentValues(7);
+ mCurrentVideoValues.put(Video.Media.TITLE, title);
+ mCurrentVideoValues.put(Video.Media.DISPLAY_NAME, filename);
+ mCurrentVideoValues.put(Video.Media.DATE_TAKEN, dateTaken);
+ mCurrentVideoValues.put(Video.Media.MIME_TYPE, mime);
+ mCurrentVideoValues.put(Video.Media.DATA, mVideoFilename);
+ Log.v(TAG, "New video filename: " + mVideoFilename);
}
private void registerVideo() {