summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/MenuHelper.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/MenuHelper.java')
-rw-r--r--src/com/android/camera/MenuHelper.java75
1 files changed, 56 insertions, 19 deletions
diff --git a/src/com/android/camera/MenuHelper.java b/src/com/android/camera/MenuHelper.java
index 1976444..d4358f6 100644
--- a/src/com/android/camera/MenuHelper.java
+++ b/src/com/android/camera/MenuHelper.java
@@ -16,13 +16,15 @@
package com.android.camera;
+import java.util.ArrayList;
+
import android.app.Activity;
import android.app.AlertDialog;
-import android.app.Dialog;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.content.res.Configuration;
import android.media.MediaMetadataRetriever;
import android.net.Uri;
import android.os.Environment;
@@ -37,16 +39,10 @@ import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.view.MenuItem.OnMenuItemClickListener;
-import android.widget.Button;
-import android.widget.CheckBox;
-import android.widget.EditText;
import android.widget.ImageView;
-import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
-import java.util.ArrayList;
-
import com.android.camera.ImageManager.IImage;
public class MenuHelper {
@@ -357,8 +353,14 @@ public class MenuHelper {
String codec = retriever.extractMetadata(
MediaMetadataRetriever.METADATA_KEY_CODEC);
- ((TextView)d.findViewById(R.id.details_codec_value))
- .setText(codec);
+
+ if (codec == null) {
+ d.findViewById(R.id.details_codec_row).
+ setVisibility(View.GONE);
+ } else {
+ ((TextView)d.findViewById(R.id.details_codec_value))
+ .setText(codec);
+ }
} catch(RuntimeException ex) {
// Assume this is a corrupt video file.
} finally {
@@ -531,9 +533,26 @@ public class MenuHelper {
}
static void gotoCameraImageGallery(Activity activity) {
+ gotoGallery(activity, R.string.gallery_camera_bucket_name, ImageManager.INCLUDE_IMAGES);
+ }
+
+ static void gotoCameraVideoGallery(Activity activity) {
+ gotoGallery(activity, R.string.gallery_camera_videos_bucket_name,
+ ImageManager.INCLUDE_VIDEOS);
+ }
+
+ static private void gotoGallery(Activity activity, int windowTitleId, int mediaTypes) {
Uri target = Images.Media.INTERNAL_CONTENT_URI.buildUpon().appendQueryParameter("bucketId",
ImageManager.CAMERA_IMAGE_BUCKET_ID).build();
Intent intent = new Intent(Intent.ACTION_VIEW, target);
+ intent.putExtra("windowTitle", activity.getString(windowTitleId));
+ intent.putExtra("mediaTypes", mediaTypes);
+ // Request unspecified so that we match the current camera orientation rather than
+ // matching the "flip orientation" preference.
+ // Disabled because people don't care for it. Also it's
+ // not as compelling now that we have implemented have quick orientation flipping.
+ // intent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION,
+ // android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
try {
activity.startActivity(intent);
} catch (ActivityNotFoundException e) {
@@ -575,20 +594,22 @@ public class MenuHelper {
}
static MenuItem addFlipOrientation(Menu menu, final Activity activity, final SharedPreferences prefs) {
// position 41 after rotate
+ // D
return menu
.add(Menu.CATEGORY_SECONDARY, 304, 41, R.string.flip_orientation)
.setOnMenuItemClickListener(
new MenuItem.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
- int current = activity.getRequestedOrientation();
+ // Check what our actual orientation is
+ int current = activity.getResources().getConfiguration().orientation;
int newOrientation = android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
- if (current == android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
+ if (current == Configuration.ORIENTATION_LANDSCAPE) {
newOrientation = android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
}
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("nuorientation", newOrientation);
editor.commit();
- requestOrientation(activity, prefs);
+ requestOrientation(activity, prefs, true);
return true;
}
})
@@ -596,15 +617,24 @@ public class MenuHelper {
}
static void requestOrientation(Activity activity, SharedPreferences prefs) {
+ requestOrientation(activity, prefs, false);
+ }
+
+ static private void requestOrientation(Activity activity, SharedPreferences prefs,
+ boolean ignoreIntentExtra) {
int req = prefs.getInt("nuorientation",
android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
// A little trick: use USER instead of UNSPECIFIED, so we ignore the
// orientation set by the activity below. It may have forced a landscape
// orientation, which the user has now cleared here.
- activity.setRequestedOrientation(
- req == android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
- ? android.content.pm.ActivityInfo.SCREEN_ORIENTATION_USER
- : req);
+ if (req == android.content.pm.ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) {
+ req = android.content.pm.ActivityInfo.SCREEN_ORIENTATION_USER;
+ }
+ if (! ignoreIntentExtra) {
+ Intent intent = activity.getIntent();
+ req = intent.getIntExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, req);
+ }
+ activity.setRequestedOrientation(req);
}
static void setFlipOrientationEnabled(Activity activity, MenuItem flipItem) {
@@ -628,13 +658,20 @@ public class MenuHelper {
return durationValue;
}
-
public static void showStorageToast(Activity activity) {
+ showStorageToast(activity, calculatePicturesRemaining());
+ }
+
+ public static void showStorageToast(Activity activity, int remaining) {
String noStorageText = null;
- int remaining = calculatePicturesRemaining();
if (remaining == MenuHelper.NO_STORAGE_ERROR) {
- noStorageText = activity.getString(R.string.no_storage);
+ String state = Environment.getExternalStorageState();
+ if (state == Environment.MEDIA_CHECKING) {
+ noStorageText = activity.getString(R.string.preparing_sd);
+ } else {
+ noStorageText = activity.getString(R.string.no_storage);
+ }
} else if (remaining < 1) {
noStorageText = activity.getString(R.string.not_enough_space);
}