From a2fba687d4d2dbb3b2db8866b054ecb0e42871b2 Mon Sep 17 00:00:00 2001 From: Owen Lin Date: Wed, 17 Aug 2011 22:07:43 +0800 Subject: Initial code for Gallery2. fix: 5176434 Change-Id: I041e282b9c7b34ceb1db8b033be2b853bb3a992c --- src/com/android/gallery3d/app/MovieActivity.java | 129 +++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 src/com/android/gallery3d/app/MovieActivity.java (limited to 'src/com/android/gallery3d/app/MovieActivity.java') diff --git a/src/com/android/gallery3d/app/MovieActivity.java b/src/com/android/gallery3d/app/MovieActivity.java new file mode 100644 index 000000000..fea364e85 --- /dev/null +++ b/src/com/android/gallery3d/app/MovieActivity.java @@ -0,0 +1,129 @@ +/* + * Copyright (C) 2007 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. + */ + +package com.android.gallery3d.app; + +import com.android.gallery3d.R; + +import android.app.Activity; +import android.content.Intent; +import android.content.pm.ActivityInfo; +import android.database.Cursor; +import android.media.AudioManager; +import android.os.Bundle; +import android.provider.MediaStore; +import android.provider.MediaStore.Video.VideoColumns; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; + +/** + * This activity plays a video from a specified URI. + */ +public class MovieActivity extends Activity { + @SuppressWarnings("unused") + private static final String TAG = "MovieActivity"; + + private MoviePlayer mPlayer; + private boolean mFinishOnCompletion; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + requestWindowFeature(Window.FEATURE_ACTION_BAR); + requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY); + + setContentView(R.layout.movie_view); + View rootView = findViewById(R.id.root); + Intent intent = getIntent(); + setVideoTitle(intent); + mPlayer = new MoviePlayer(rootView, this, intent.getData()) { + @Override + public void onCompletion() { + if (mFinishOnCompletion) { + finish(); + } + } + }; + if (intent.hasExtra(MediaStore.EXTRA_SCREEN_ORIENTATION)) { + int orientation = intent.getIntExtra( + MediaStore.EXTRA_SCREEN_ORIENTATION, + ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); + if (orientation != getRequestedOrientation()) { + setRequestedOrientation(orientation); + } + } + mFinishOnCompletion = intent.getBooleanExtra(MediaStore.EXTRA_FINISH_ON_COMPLETION, true); + Window win = getWindow(); + WindowManager.LayoutParams winParams = win.getAttributes(); + winParams.buttonBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_OFF; + win.setAttributes(winParams); + + } + + private void setVideoTitle(Intent intent) { + String title = intent.getStringExtra(Intent.EXTRA_TITLE); + if (title == null) { + Cursor cursor = null; + try { + cursor = getContentResolver().query(intent.getData(), + new String[] {VideoColumns.TITLE}, null, null, null); + if (cursor != null && cursor.moveToNext()) { + title = cursor.getString(0); + } + } catch (Throwable t) { + Log.w(TAG, "cannot get title from: " + intent.getDataString(), t); + } finally { + if (cursor != null) cursor.close(); + } + } + if (title != null) getActionBar().setTitle(title); + } + + @Override + public void onStart() { + ((AudioManager) getSystemService(AUDIO_SERVICE)) + .requestAudioFocus(null, AudioManager.STREAM_MUSIC, + AudioManager.AUDIOFOCUS_GAIN_TRANSIENT); + super.onStart(); + } + + @Override + protected void onStop() { + ((AudioManager) getSystemService(AUDIO_SERVICE)) + .abandonAudioFocus(null); + super.onStop(); + } + + @Override + public void onPause() { + mPlayer.onPause(); + super.onPause(); + } + + @Override + public void onResume() { + mPlayer.onResume(); + super.onResume(); + } + + @Override + public void onDestroy() { + mPlayer.onDestroy(); + super.onDestroy(); + } +} -- cgit v1.2.3