From efa748dea21e89fe814157241886fc18b19f1f29 Mon Sep 17 00:00:00 2001 From: Mariotaku Lee Date: Thu, 9 Apr 2015 01:41:37 +0800 Subject: [PATCH] removed some unused resources updated version code added progress bar for video --- twidere/build.gradle | 2 +- .../activity/support/MediaViewerActivity.java | 67 +++++++++++++++++-- .../progress_bar_video.xml} | 13 ++-- .../res/layout/fragment_accounts_manager.xml | 40 ----------- .../res/layout/fragment_characters_grid.xml | 29 -------- .../main/res/layout/fragment_details_page.xml | 67 ------------------- .../res/layout/fragment_media_page_video.xml | 32 +++++++-- .../gallery_item_color_picker_preset.xml | 37 ---------- twidere/src/main/res/values/colors.xml | 1 + twidere/src/main/res/values/strings.xml | 13 ---- 10 files changed, 96 insertions(+), 205 deletions(-) rename twidere/src/main/res/{layout/fragment_webview.xml => drawable/progress_bar_video.xml} (72%) delete mode 100644 twidere/src/main/res/layout/fragment_accounts_manager.xml delete mode 100644 twidere/src/main/res/layout/fragment_characters_grid.xml delete mode 100644 twidere/src/main/res/layout/fragment_details_page.xml delete mode 100644 twidere/src/main/res/layout/gallery_item_color_picker_preset.xml diff --git a/twidere/build.gradle b/twidere/build.gradle index 8e9ff8a93..75c337e69 100644 --- a/twidere/build.gradle +++ b/twidere/build.gradle @@ -10,7 +10,7 @@ android { applicationId "org.mariotaku.twidere" minSdkVersion 14 targetSdkVersion 22 - versionCode 106 + versionCode 107 versionName "0.3.0" multiDexEnabled true } diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/support/MediaViewerActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/support/MediaViewerActivity.java index 9ca7a9d97..56555cdde 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/activity/support/MediaViewerActivity.java +++ b/twidere/src/main/java/org/mariotaku/twidere/activity/support/MediaViewerActivity.java @@ -19,11 +19,14 @@ package org.mariotaku.twidere.activity.support; import android.content.Intent; import android.media.AudioManager; import android.media.MediaPlayer; +import android.media.MediaPlayer.OnCompletionListener; +import android.media.MediaPlayer.OnErrorListener; import android.media.MediaPlayer.OnPreparedListener; import android.net.Uri; import android.os.AsyncTask.Status; import android.os.Build; import android.os.Bundle; +import android.os.Handler; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; @@ -42,6 +45,8 @@ import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnLayoutChangeListener; import android.view.ViewGroup; +import android.widget.MediaController; +import android.widget.ProgressBar; import com.davemorrissey.labs.subscaleview.ImageSource; import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView; @@ -181,7 +186,7 @@ public final class MediaViewerActivity extends ThemedActionBarActivity implement } public static final class VideoPageFragment extends BaseSupportFragment - implements VideoLoadingListener, OnPreparedListener { + implements VideoLoadingListener, OnPreparedListener, OnErrorListener, OnCompletionListener { private static final String[] SUPPORTED_VIDEO_TYPES; @@ -193,10 +198,19 @@ public final class MediaViewerActivity extends ThemedActionBarActivity implement } } - private TextureVideoView mVideoView; private VideoLoader mVideoLoader; + private TextureVideoView mVideoView; + private ProgressBar mVideoViewProgress; + private boolean mPlayAudio; + private VideoPlayProgressRunnable mVideoProgressRunnable; + + @Override + public void onCompletion(MediaPlayer mp) { +// mVideoViewProgress.removeCallbacks(mVideoProgressRunnable); +// mVideoViewProgress.setVisibility(View.GONE); + } @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { @@ -207,12 +221,51 @@ public final class MediaViewerActivity extends ThemedActionBarActivity implement public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mVideoLoader = TwidereApplication.getInstance(getActivity()).getVideoLoader(); + mVideoProgressRunnable = new VideoPlayProgressRunnable(mVideoViewProgress.getHandler(), + mVideoViewProgress, mVideoView); final String url = getBestVideoUrl(getMedia()); if (url != null) { mVideoLoader.loadVideo(url, this); } + + mVideoView.setOnPreparedListener(this); + mVideoView.setOnErrorListener(this); + mVideoView.setOnCompletionListener(this); } + @Override + public boolean onError(MediaPlayer mp, int what, int extra) { + mVideoViewProgress.removeCallbacks(mVideoProgressRunnable); + mVideoViewProgress.setVisibility(View.GONE); + return true; + } + + + private static class VideoPlayProgressRunnable implements Runnable { + + private final Handler mHandler; + private final ProgressBar mProgressBar; + private final MediaController.MediaPlayerControl mMediaPlayerControl; + + VideoPlayProgressRunnable(Handler handler, ProgressBar progressBar, + MediaController.MediaPlayerControl mediaPlayerControl) { + mHandler = handler; + mProgressBar = progressBar; + mMediaPlayerControl = mediaPlayerControl; + mProgressBar.setMax(1000); + } + + @Override + public void run() { + final int duration = mMediaPlayerControl.getDuration(); + final int position = mMediaPlayerControl.getCurrentPosition(); + if (duration <= 0 || position < 0) return; + mProgressBar.setProgress(Math.round(1000 * position / (float) duration)); + mHandler.postDelayed(this, 16); + } + } + + @Override public void onPrepared(MediaPlayer mp) { if (getUserVisibleHint()) { @@ -223,6 +276,8 @@ public final class MediaViewerActivity extends ThemedActionBarActivity implement mp.setVolume(0, 0); } mp.start(); + mVideoViewProgress.setVisibility(View.VISIBLE); + mVideoViewProgress.post(mVideoProgressRunnable); } } @@ -240,6 +295,7 @@ public final class MediaViewerActivity extends ThemedActionBarActivity implement public void onBaseViewCreated(View view, Bundle savedInstanceState) { super.onBaseViewCreated(view, savedInstanceState); mVideoView = (TextureVideoView) view.findViewById(R.id.video_view); + mVideoViewProgress = (ProgressBar) view.findViewById(R.id.video_view_progress); } @Override @@ -265,15 +321,14 @@ public final class MediaViewerActivity extends ThemedActionBarActivity implement @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); -// if (mVideoView != null && mVideoView.isPlaying()) { -// mVideoView.pause(); -// } + if (!isVisibleToUser && mVideoView != null && mVideoView.isPlaying()) { + mVideoView.pause(); + } } @Override public void onVideoLoadingComplete(String uri, VideoLoadingListener listener, File file) { mVideoView.setVideoURI(Uri.fromFile(file)); - mVideoView.setOnPreparedListener(this); } @Override diff --git a/twidere/src/main/res/layout/fragment_webview.xml b/twidere/src/main/res/drawable/progress_bar_video.xml similarity index 72% rename from twidere/src/main/res/layout/fragment_webview.xml rename to twidere/src/main/res/drawable/progress_bar_video.xml index 1ed388b74..69625931d 100644 --- a/twidere/src/main/res/layout/fragment_webview.xml +++ b/twidere/src/main/res/drawable/progress_bar_video.xml @@ -2,7 +2,7 @@ - + + + + + \ No newline at end of file diff --git a/twidere/src/main/res/layout/fragment_accounts_manager.xml b/twidere/src/main/res/layout/fragment_accounts_manager.xml deleted file mode 100644 index e7b8cef63..000000000 --- a/twidere/src/main/res/layout/fragment_accounts_manager.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - diff --git a/twidere/src/main/res/layout/fragment_characters_grid.xml b/twidere/src/main/res/layout/fragment_characters_grid.xml deleted file mode 100644 index ad0167272..000000000 --- a/twidere/src/main/res/layout/fragment_characters_grid.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - diff --git a/twidere/src/main/res/layout/fragment_details_page.xml b/twidere/src/main/res/layout/fragment_details_page.xml deleted file mode 100644 index 24d271490..000000000 --- a/twidere/src/main/res/layout/fragment_details_page.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - -