OSDN Git Service

Reconcile with jb-mr2-release - do not merge
authorThe Android Open Source Project <initial-contribution@android.com>
Thu, 16 May 2013 12:44:03 +0000 (05:44 -0700)
committerThe Android Open Source Project <initial-contribution@android.com>
Thu, 16 May 2013 12:44:03 +0000 (05:44 -0700)
Change-Id: I232af0988b3526fbc5d309397c361556fb7b09e7

src/com/android/camera/ui/PieRenderer.java
src/com/android/gallery3d/app/MoviePlayer.java
src/com/android/gallery3d/filtershow/HistoryAdapter.java
src/com/android/gallery3d/filtershow/crop/CropLoader.java
src/com/android/gallery3d/filtershow/tools/SaveCopyTask.java
src/com/android/gallery3d/filtershow/ui/FilterIconButton.java
src/com/android/gallery3d/util/SaveVideoFileUtils.java

index bdbe612..edae2be 100644 (file)
@@ -355,7 +355,7 @@ public class PieRenderer extends OverlayRenderer
     private void layoutPie() {
         mCenterAngle = getCenterAngle();
         layoutItems(0, getRoot().getItems());
-        layoutLabel(0);
+        layoutLabel(getLevel());
     }
 
     private void layoutLabel(int level) {
index 00e4cd6..513d052 100644 (file)
@@ -28,6 +28,8 @@ import android.content.IntentFilter;
 import android.graphics.Color;
 import android.media.AudioManager;
 import android.media.MediaPlayer;
+import android.media.audiofx.AudioEffect;
+import android.media.audiofx.Virtualizer;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
@@ -67,6 +69,7 @@ public class MoviePlayer implements
     private static final String CMDNAME = "command";
     private static final String CMDPAUSE = "pause";
 
+    private static final String VIRTUALIZE_EXTRA = "virtualize";
     private static final long BLACK_TIMEOUT = 500;
 
     // If we resume the acitivty with in RESUMEABLE_TIMEOUT, we will keep playing.
@@ -93,6 +96,8 @@ public class MoviePlayer implements
     // If the time bar is visible.
     private boolean mShowing;
 
+    private Virtualizer mVirtualizer;
+
     private final Runnable mPlayingChecker = new Runnable() {
         @Override
         public void run() {
@@ -128,6 +133,31 @@ public class MoviePlayer implements
         mVideoView.setOnErrorListener(this);
         mVideoView.setOnCompletionListener(this);
         mVideoView.setVideoURI(mUri);
+        if (mVirtualizer != null) {
+            mVirtualizer.release();
+            mVirtualizer = null;
+        }
+
+        Intent ai = movieActivity.getIntent();
+        boolean virtualize = ai.getBooleanExtra(VIRTUALIZE_EXTRA, false);
+        if (virtualize) {
+            int session = mVideoView.getAudioSessionId();
+            if (session != 0) {
+                Virtualizer virt = new Virtualizer(0, session);
+                AudioEffect.Descriptor descriptor = virt.getDescriptor();
+                String uuid = descriptor.uuid.toString();
+                if (uuid.equals("36103c52-8514-11e2-9e96-0800200c9a66") ||
+                        uuid.equals("36103c50-8514-11e2-9e96-0800200c9a66")) {
+                    mVirtualizer = virt;
+                    mVirtualizer.setEnabled(true);
+                } else {
+                    // This is not the audio virtualizer we're looking for
+                    virt.release();
+                }
+            } else {
+                Log.w(TAG, "no session");
+            }
+        }
         mVideoView.setOnTouchListener(new View.OnTouchListener() {
             @Override
             public boolean onTouch(View v, MotionEvent event) {
@@ -270,6 +300,10 @@ public class MoviePlayer implements
     }
 
     public void onDestroy() {
+        if (mVirtualizer != null) {
+            mVirtualizer.release();
+            mVirtualizer = null;
+        }
         mVideoView.stopPlayback();
         mAudioBecomingNoisyReceiver.unregister();
     }
index 8d68246..1d47160 100644 (file)
@@ -19,6 +19,7 @@ package com.android.gallery3d.filtershow;
 import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.Color;
+import android.graphics.drawable.Drawable;
 import android.view.LayoutInflater;
 import android.view.MenuItem;
 import android.view.View;
@@ -86,13 +87,21 @@ public class HistoryAdapter extends ArrayAdapter<ImagePreset> {
 
     public void updateMenuItems() {
         if (mUndoMenuItem != null) {
-            mUndoMenuItem.setEnabled(canUndo());
+            setEnabled(mUndoMenuItem, canUndo());
         }
         if (mRedoMenuItem != null) {
-            mRedoMenuItem.setEnabled(canRedo());
+            setEnabled(mRedoMenuItem, canRedo());
         }
         if (mResetMenuItem != null) {
-            mResetMenuItem.setEnabled(canReset());
+            setEnabled(mResetMenuItem, canReset());
+        }
+    }
+
+    private void setEnabled(MenuItem item, boolean enabled) {
+        item.setEnabled(enabled);
+        Drawable drawable = item.getIcon();
+        if (drawable != null) {
+            drawable.setAlpha(enabled ? 255 : 80);
         }
     }
 
index fc461f5..430647e 100644 (file)
@@ -38,8 +38,8 @@ import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
-import java.sql.Date;
 import java.text.SimpleDateFormat;
+import java.util.Date;
 
 /**
  * This class contains static methods for loading a bitmap and
index c5851c4..641f00f 100644 (file)
@@ -41,8 +41,8 @@ import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
-import java.sql.Date;
 import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.TimeZone;
 
 /**
@@ -84,8 +84,7 @@ public class SaveCopyTask extends AsyncTask<ImagePreset, Void, Uri> {
             this.destinationFile = destination;
         }
 
-        saveFileName = new SimpleDateFormat(TIME_STAMP_NAME).format(new Date(
-                System.currentTimeMillis()));
+        saveFileName = new SimpleDateFormat(TIME_STAMP_NAME).format(new Date());
     }
 
     public static File getFinalSaveDirectory(Context context, Uri sourceUri) {
@@ -102,8 +101,7 @@ public class SaveCopyTask extends AsyncTask<ImagePreset, Void, Uri> {
 
     public static File getNewFile(Context context, Uri sourceUri) {
         File saveDirectory = getFinalSaveDirectory(context, sourceUri);
-        String filename = new SimpleDateFormat(TIME_STAMP_NAME).format(new Date(
-                System.currentTimeMillis()));
+        String filename = new SimpleDateFormat(TIME_STAMP_NAME).format(new Date());
         return new File(saveDirectory, filename + ".JPG");
     }
 
index a15060b..c3c8769 100644 (file)
@@ -20,6 +20,7 @@ import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.Canvas;
+import android.graphics.RectF;
 import android.util.AttributeSet;
 import android.view.View;
 import android.widget.LinearLayout;
@@ -30,6 +31,7 @@ import com.android.gallery3d.filtershow.cache.RenderingRequestCaller;
 import com.android.gallery3d.filtershow.category.Action;
 import com.android.gallery3d.filtershow.filters.FilterRepresentation;
 import com.android.gallery3d.filtershow.imageshow.GeometryListener;
+import com.android.gallery3d.filtershow.imageshow.GeometryMetadata;
 import com.android.gallery3d.filtershow.imageshow.MasterImage;
 import com.android.gallery3d.filtershow.presets.ImagePreset;
 import com.android.gallery3d.filtershow.tools.IconFactory;
@@ -148,6 +150,12 @@ public class FilterIconButton extends IconButton implements View.OnClickListener
         if (dst != null && mAction != null) {
             ImagePreset mPreset = new ImagePreset();
             mPreset.addFilter(mFilterRepresentation);
+
+            GeometryMetadata geometry = mPreset.mGeoData;
+            RectF bound = new RectF(0, 0, dst.getWidth(), dst.getHeight());
+            geometry.setCropBounds(bound);
+            geometry.setPhotoBounds(bound);
+
             RenderingRequest.post(dst.copy(Bitmap.Config.ARGB_8888, true),
                     mPreset, RenderingRequest.ICON_RENDERING, this);
         }
index c281dd3..9e8f73a 100644 (file)
@@ -25,8 +25,8 @@ import android.provider.MediaStore.Video;
 import android.provider.MediaStore.Video.VideoColumns;
 
 import java.io.File;
-import java.sql.Date;
 import java.text.SimpleDateFormat;
+import java.util.Date;
 
 public class SaveVideoFileUtils {
     // Copy from SaveCopyTask.java in terms of how to handle the destination
@@ -50,8 +50,7 @@ public class SaveVideoFileUtils {
         } else {
             dstFileInfo.mFolderName = dstFileInfo.mDirectory.getName();
         }
-        dstFileInfo.mFileName = new SimpleDateFormat(fileNameFormat).format(
-                new Date(System.currentTimeMillis()));
+        dstFileInfo.mFileName = new SimpleDateFormat(fileNameFormat).format(new Date());
 
         dstFileInfo.mFile = new File(dstFileInfo.mDirectory, dstFileInfo.mFileName + ".mp4");
         return dstFileInfo;