Merge "Import translations. DO NOT MERGE" into ub-camera-everglades
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index 95ec0a4..a13fc43 100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -91,6 +91,7 @@
import com.android.camera.data.LocalMediaObserver;
import com.android.camera.data.LocalSessionData;
import com.android.camera.data.MediaDetails;
+import com.android.camera.data.MetadataLoader;
import com.android.camera.data.PanoramaMetadataLoader;
import com.android.camera.data.RgbzMetadataLoader;
import com.android.camera.data.SimpleViewData;
@@ -1057,29 +1058,43 @@
updateStorageSpaceAndHint(null);
ContentResolver cr = getContentResolver();
String mimeType = cr.getType(uri);
+ LocalData newData = null;
if (LocalDataUtil.isMimeTypeVideo(mimeType)) {
sendBroadcast(new Intent(CameraUtil.ACTION_NEW_VIDEO, uri));
- LocalData newData = LocalMediaData.VideoData.fromContentUri(getContentResolver(), uri);
+ newData = LocalMediaData.VideoData.fromContentUri(getContentResolver(), uri);
if (newData == null) {
Log.e(TAG, "Can't find video data in content resolver:" + uri);
return;
}
- if (mDataAdapter.addData(newData)) {
- startPeekAnimation(newData);
- }
} else if (LocalDataUtil.isMimeTypeImage(mimeType)) {
CameraUtil.broadcastNewPicture(mAppContext, uri);
- LocalData newData = LocalMediaData.PhotoData.fromContentUri(getContentResolver(), uri);
+ newData = LocalMediaData.PhotoData.fromContentUri(getContentResolver(), uri);
if (newData == null) {
Log.e(TAG, "Can't find photo data in content resolver:" + uri);
return;
}
- if (mDataAdapter.addData(newData)) {
- startPeekAnimation(newData);
- }
} else {
Log.w(TAG, "Unknown new media with MIME type:" + mimeType + ", uri:" + uri);
+ return;
}
+ // We are preloading the metadata for new video since we need the
+ // rotation info for the thumbnail.
+ new AsyncTask<LocalData, Void, LocalData>() {
+
+ @Override
+ protected LocalData doInBackground(LocalData... params) {
+ LocalData data = params[0];
+ MetadataLoader.loadMetadata(getAndroidContext(), data);
+ return data;
+ }
+
+ @Override
+ protected void onPostExecute(LocalData data) {
+ if (mDataAdapter.addData(data)) {
+ startPeekAnimation(data);
+ }
+ }
+ }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, newData);
}
@Override
@@ -1825,8 +1840,9 @@
}
if (message != null) {
+ Log.w(TAG, "Storage warning: " + message);
if (mStorageHint == null) {
- mStorageHint = OnScreenHint.makeText(mAppContext, message);
+ mStorageHint = OnScreenHint.makeText(CameraActivity.this, message);
} else {
mStorageHint.setText(message);
}
@@ -1834,7 +1850,7 @@
} else if (mStorageHint != null) {
mStorageHint.cancel();
mStorageHint = null;
- }
+ }
}
protected void setResultEx(int resultCode) {
diff --git a/src/com/android/camera/OnScreenHint.java b/src/com/android/camera/OnScreenHint.java
index b6bb71f..edc877b 100644
--- a/src/com/android/camera/OnScreenHint.java
+++ b/src/com/android/camera/OnScreenHint.java
@@ -16,6 +16,7 @@
package com.android.camera;
+import android.app.Activity;
import android.content.Context;
import android.graphics.PixelFormat;
import android.os.Handler;
@@ -62,9 +63,9 @@
* {@link android.app.Application} or
* {@link android.app.Activity} object.
*/
- private OnScreenHint(Context context) {
- mWM = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
- mY = context.getResources().getDimensionPixelSize(
+ private OnScreenHint(Activity activity) {
+ mWM = (WindowManager) activity.getSystemService(Context.WINDOW_SERVICE);
+ mY = activity.getResources().getDimensionPixelSize(
R.dimen.hint_y_offset);
mParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
@@ -103,11 +104,11 @@
* @param text The text to show. Can be formatted text.
*
*/
- public static OnScreenHint makeText(Context context, CharSequence text) {
- OnScreenHint result = new OnScreenHint(context);
+ public static OnScreenHint makeText(Activity activity, CharSequence text) {
+ OnScreenHint result = new OnScreenHint(activity);
LayoutInflater inflate =
- (LayoutInflater) context.getSystemService(
+ (LayoutInflater) activity.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
View v = inflate.inflate(R.layout.on_screen_hint, null);
TextView tv = (TextView) v.findViewById(R.id.message);
@@ -188,4 +189,3 @@
}
};
}
-
diff --git a/src/com/android/camera/VideoModule.java b/src/com/android/camera/VideoModule.java
index 498129a..7d73246 100644
--- a/src/com/android/camera/VideoModule.java
+++ b/src/com/android/camera/VideoModule.java
@@ -393,7 +393,11 @@
private void takeASnapshot() {
// Only take snapshots if video snapshot is supported by device
- if (CameraUtil.isVideoSnapshotSupported(mParameters) && !mIsVideoCaptureIntent) {
+ if(!mParameters.isVideoSnapshotSupported()) {
+ Log.w(TAG, "Cannot take a video snapshot - not supported by hardware");
+ return;
+ }
+ if (!mIsVideoCaptureIntent) {
if (!mMediaRecorderRecording || mPaused || mSnapshotInProgress
|| !mAppController.isShutterEnabled()) {
return;
diff --git a/src/com/android/camera/data/MetadataLoader.java b/src/com/android/camera/data/MetadataLoader.java
index 311f5cf..99811ce 100644
--- a/src/com/android/camera/data/MetadataLoader.java
+++ b/src/com/android/camera/data/MetadataLoader.java
@@ -22,7 +22,7 @@
* A helper class to load the metadata of
* {@link com.android.camera.data.LocalData}.
*/
-class MetadataLoader {
+public class MetadataLoader {
private static final String KEY_METADATA_CACHED = "metadata_cached";
@@ -36,7 +36,7 @@
* @param data The data to update metadata for.
* @return true if any metadata was added to the data, false otherwise.
*/
- static boolean loadMetadata(final Context context, final LocalData data) {
+ public static boolean loadMetadata(final Context context, final LocalData data) {
boolean metadataAdded = false;
if (data.getLocalDataType() == LocalData.LOCAL_IMAGE) {
PanoramaMetadataLoader.loadPanoramaMetadata(context, data.getUri(),