private void layoutPie() {
mCenterAngle = getCenterAngle();
layoutItems(0, getRoot().getItems());
- layoutLabel(0);
+ layoutLabel(getLevel());
}
private void layoutLabel(int level) {
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;
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.
// If the time bar is visible.
private boolean mShowing;
+ private Virtualizer mVirtualizer;
+
private final Runnable mPlayingChecker = new Runnable() {
@Override
public void run() {
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) {
}
public void onDestroy() {
+ if (mVirtualizer != null) {
+ mVirtualizer.release();
+ mVirtualizer = null;
+ }
mVideoView.stopPlayback();
mAudioBecomingNoisyReceiver.unregister();
}
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;
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);
}
}
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
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;
/**
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) {
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");
}
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;
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;
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);
}
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
} 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;