--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_centerVertical="true">
+ <TextView
+ android:id="@+id/start_trim"
+ android:layout_marginLeft="8dp"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:text="@string/done"
+ android:gravity="left|center_vertical"
+ android:drawableLeft="@drawable/ic_menu_save_holo_light"
+ android:drawablePadding="8dp" />
+</FrameLayout>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2012 Google Inc.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:id="@+id/action_trim_video"
- android:title="@string/done"
- android:enabled="true"
- android:showAsAction="ifRoom" />
-</menu>
package com.android.gallery3d.app;
+import android.app.ActionBar;
+import android.app.Activity;
import android.app.ProgressDialog;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.os.Handler;
import android.provider.MediaStore.Video;
import android.provider.MediaStore.Video.VideoColumns;
+import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
+import android.view.Window;
+import android.widget.TextView;
import android.widget.Toast;
import android.widget.VideoView;
-import com.actionbarsherlock.app.ActionBar;
-import com.actionbarsherlock.app.SherlockActivity;
-import com.actionbarsherlock.view.Menu;
-import com.actionbarsherlock.view.MenuInflater;
-import com.actionbarsherlock.view.MenuItem;
-import com.actionbarsherlock.view.Window;
import com.android.gallery3d.R;
import com.android.gallery3d.util.BucketNames;
import java.sql.Date;
import java.text.SimpleDateFormat;
-public class TrimVideo extends SherlockActivity implements
+public class TrimVideo extends Activity implements
MediaPlayer.OnErrorListener,
MediaPlayer.OnCompletionListener,
ControllerOverlay.Listener {
requestWindowFeature(Window.FEATURE_ACTION_BAR);
requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
- ActionBar actionBar = getSupportActionBar();
- int displayOptions = ActionBar.DISPLAY_HOME_AS_UP
- | ActionBar.DISPLAY_SHOW_TITLE;
+ ActionBar actionBar = getActionBar();
+ int displayOptions = ActionBar.DISPLAY_SHOW_HOME;
+ actionBar.setDisplayOptions(0, displayOptions);
+ displayOptions = ActionBar.DISPLAY_SHOW_CUSTOM;
actionBar.setDisplayOptions(displayOptions, displayOptions);
+ actionBar.setCustomView(R.layout.trim_menu);
+
+ TextView mSaveVideoTextView = (TextView) findViewById(R.id.start_trim);
+ mSaveVideoTextView.setOnTouchListener(new View.OnTouchListener() {
+ @Override
+ public boolean onTouch(View v, MotionEvent event) {
+ if (event.getAction() == MotionEvent.ACTION_UP) {
+ trimVideo();
+ }
+ return true;
+ }
+ });
Intent intent = getIntent();
mUri = intent.getData();
mController.showPaused();
}
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- super.onCreateOptionsMenu(menu);
- MenuInflater inflater = getSupportMenuInflater();
- inflater.inflate(R.menu.trim, menu);
- return true;
- };
-
// Copy from SaveCopyTask.java in terms of how to handle the destination
// path and filename : querySource() and getSaveDirectory().
private interface ContentResolverQueryCallback {
private File getSaveDirectory() {
final File[] dir = new File[1];
querySource(new String[] {
- VideoColumns.DATA }, new ContentResolverQueryCallback() {
+ VideoColumns.DATA }, new ContentResolverQueryCallback() {
- @Override
+ @Override
public void onCursorResult(Cursor cursor) {
dir[0] = new File(cursor.getString(0)).getParentFile();
}
return dir[0];
}
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- int id = item.getItemId();
- if (id == android.R.id.home) {
- finish();
- return true;
- } else if (id == R.id.action_trim_video) {
- trimVideo();
- return true;
- }
- return false;
- }
-
private void trimVideo() {
// Use the default save directory if the source directory cannot be
// saved.
@Override
public void run() {
try {
- ShortenExample.main(null, mSrcFile, mDstFile, mTrimStartTime, mTrimEndTime);
+ TrimVideoUtils.startTrim(mSrcFile, mDstFile, mTrimStartTime, mTrimEndTime);
} catch (IOException e) {
e.printStackTrace();
}
// Copy some info from the source file.
querySource(projection, new ContentResolverQueryCallback() {
-
@Override
public void onCursorResult(Cursor cursor) {
values.put(Video.Media.DATE_TAKEN, cursor.getLong(0));
public void onShown() {
}
-
@Override
public void onHidden() {
}