[Android] [PATCH 3/6] PlaybackServiceClient: merge 2 callbacks into a inner interface
Jean-Baptiste Kempf
jb at videolan.org
Thu Jun 11 17:52:55 CEST 2015
LGTM.
On 11 Jun, Thomas Guillem wrote :
> ---
> .../org/videolan/vlc/PlaybackServiceClient.java | 65 ++++++++--------------
> .../vlc/gui/AudioPlayerContainerActivity.java | 4 +-
> .../src/org/videolan/vlc/gui/HistoryAdapter.java | 14 ++++-
> .../org/videolan/vlc/gui/audio/AudioPlayer.java | 11 +++-
> .../org/videolan/vlc/interfaces/IAudioPlayer.java | 28 ----------
> .../gui/tv/audioplayer/AudioPlayerActivity.java | 7 +--
> 6 files changed, 48 insertions(+), 81 deletions(-)
> delete mode 100644 vlc-android/src/org/videolan/vlc/interfaces/IAudioPlayer.java
>
> diff --git a/vlc-android/src/org/videolan/vlc/PlaybackServiceClient.java b/vlc-android/src/org/videolan/vlc/PlaybackServiceClient.java
> index 4b212b7..59dca87 100644
> --- a/vlc-android/src/org/videolan/vlc/PlaybackServiceClient.java
> +++ b/vlc-android/src/org/videolan/vlc/PlaybackServiceClient.java
> @@ -31,7 +31,6 @@ import android.os.RemoteException;
> import android.preference.PreferenceManager;
> import android.util.Log;
>
> -import org.videolan.vlc.interfaces.IAudioPlayer;
> import org.videolan.vlc.interfaces.IPlaybackService;
> import org.videolan.vlc.interfaces.IPlaybackServiceCallback;
>
> @@ -43,17 +42,18 @@ import java.util.List;
> public class PlaybackServiceClient {
> public static final String TAG = "PlaybackServiceClient";
>
> + public interface Callback {
> + void update();
> + void updateProgress();
> + void onMediaPlayedAdded(MediaWrapper media, int index);
> + void onMediaPlayedRemoved(int index);
> + }
> +
> private static PlaybackServiceClient mInstance;
> private static boolean mIsBound = false;
> private IPlaybackService mAudioServiceBinder;
> private ServiceConnection mAudioServiceConnection;
> - private final ArrayList<IAudioPlayer> mAudioPlayer;
> - private final ArrayList<MediaPlayedListener> mMediaPlayedListener;
> -
> - public interface MediaPlayedListener {
> - public void onMediaPlayedAdded(MediaWrapper media, int index);
> - public void onMediaPlayedRemoved(int index);
> - }
> + private final ArrayList<Callback> mCallbacks;
>
> private final IPlaybackServiceCallback mCallback = new IPlaybackServiceCallback.Stub() {
> @Override
> @@ -78,8 +78,7 @@ public class PlaybackServiceClient {
> };
>
> private PlaybackServiceClient() {
> - mAudioPlayer = new ArrayList<IAudioPlayer>();
> - mMediaPlayedListener = new ArrayList<MediaPlayedListener>();
> + mCallbacks = new ArrayList<Callback>();
> }
>
> public static PlaybackServiceClient getInstance() {
> @@ -186,46 +185,28 @@ public class PlaybackServiceClient {
> }
>
> /**
> - * Add a MediaPlayedListener
> - * @param li
> - */
> - public void addMediaPlayedListener(MediaPlayedListener li) {
> - if (!mMediaPlayedListener.contains(li))
> - mMediaPlayedListener.add(li);
> - }
> -
> - /**
> - * Remove MediaPlayedListener from list
> - * @param li
> - */
> - public void removeMediaPlayedListener(MediaPlayedListener li) {
> - if (mMediaPlayedListener.contains(li))
> - mMediaPlayedListener.remove(li);
> - }
> -
> - /**
> - * Add a AudioPlayer
> - * @param ap
> + * Add a Callback
> + * @param callback
> */
> - public void addAudioPlayer(IAudioPlayer ap) {
> - if (!mAudioPlayer.contains(ap))
> - mAudioPlayer.add(ap);
> + public void addCallback(Callback callback) {
> + if (!mCallbacks.contains(callback))
> + mCallbacks.add(callback);
> }
>
> /**
> - * Remove AudioPlayer from list
> - * @param ap
> + * Remove Callback from list
> + * @param callback
> */
> - public void removeAudioPlayer(IAudioPlayer ap) {
> - if (mAudioPlayer.contains(ap))
> - mAudioPlayer.remove(ap);
> + public void removeCallback(Callback callback) {
> + if (mCallbacks.contains(callback))
> + mCallbacks.remove(callback);
> }
>
> /**
> * Update all AudioPlayer
> */
> private void updateAudioPlayer() {
> - for (IAudioPlayer player : mAudioPlayer)
> + for (Callback player : mCallbacks)
> player.update();
> }
>
> @@ -233,18 +214,18 @@ public class PlaybackServiceClient {
> * Update the progress of all AudioPlayers
> */
> private void updateProgressAudioPlayer() {
> - for (IAudioPlayer player : mAudioPlayer)
> + for (Callback player : mCallbacks)
> player.updateProgress();
> }
>
> private void updateMediaPlayedAdded(MediaWrapper media, int index) {
> - for (MediaPlayedListener listener : mMediaPlayedListener) {
> + for (Callback listener : mCallbacks) {
> listener.onMediaPlayedAdded(media, index);
> }
> }
>
> private void updateMediaPlayedRemoved(int index) {
> - for (MediaPlayedListener listener : mMediaPlayedListener) {
> + for (Callback listener : mCallbacks) {
> listener.onMediaPlayedRemoved(index);
> }
> }
> diff --git a/vlc-android/src/org/videolan/vlc/gui/AudioPlayerContainerActivity.java b/vlc-android/src/org/videolan/vlc/gui/AudioPlayerContainerActivity.java
> index 281f706..d3fb65b 100644
> --- a/vlc-android/src/org/videolan/vlc/gui/AudioPlayerContainerActivity.java
> +++ b/vlc-android/src/org/videolan/vlc/gui/AudioPlayerContainerActivity.java
> @@ -111,14 +111,14 @@ public class AudioPlayerContainerActivity extends AppCompatActivity {
> @Override
> protected void onResume() {
> super.onResume();
> - mAudioController.addAudioPlayer(mAudioPlayer);
> + mAudioController.addCallback(mAudioPlayer);
> PlaybackServiceClient.getInstance().bindAudioService(this);
> }
>
> @Override
> protected void onPause() {
> super.onPause();
> - mAudioController.removeAudioPlayer(mAudioPlayer);
> + mAudioController.removeCallback(mAudioPlayer);
> PlaybackServiceClient.getInstance().unbindAudioService(this);
> }
>
> diff --git a/vlc-android/src/org/videolan/vlc/gui/HistoryAdapter.java b/vlc-android/src/org/videolan/vlc/gui/HistoryAdapter.java
> index a118d9b..0f10d9a 100644
> --- a/vlc-android/src/org/videolan/vlc/gui/HistoryAdapter.java
> +++ b/vlc-android/src/org/videolan/vlc/gui/HistoryAdapter.java
> @@ -39,7 +39,7 @@ import org.videolan.vlc.util.Util;
>
> import java.util.ArrayList;
>
> -public class HistoryAdapter extends BaseAdapter implements PlaybackServiceClient.MediaPlayedListener {
> +public class HistoryAdapter extends BaseAdapter implements PlaybackServiceClient.Callback {
> public final static String TAG = "VLC/HistoryAdapter";
>
> private LayoutInflater mInflater;
> @@ -53,11 +53,11 @@ public class HistoryAdapter extends BaseAdapter implements PlaybackServiceClient
>
> mMediaList = new ArrayList<MediaWrapper>();
>
> - mAudioController.addMediaPlayedListener(this);
> + mAudioController.addCallback(this);
> }
>
> public void release () {
> - mAudioController.removeMediaPlayedListener(this);
> + mAudioController.removeCallback(this);
> }
>
> @Override
> @@ -116,6 +116,14 @@ public class HistoryAdapter extends BaseAdapter implements PlaybackServiceClient
> }
>
> @Override
> + public void update() {
> + }
> +
> + @Override
> + public void updateProgress() {
> + }
> +
> + @Override
> public void onMediaPlayedAdded(MediaWrapper media, int index) {
> mMediaList.add(index, media);
> notifyDataSetChanged();
> diff --git a/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.java b/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.java
> index 9d8f9bd..49a844c 100644
> --- a/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.java
> +++ b/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.java
> @@ -61,7 +61,6 @@ import org.videolan.vlc.gui.audio.widget.CoverMediaSwitcher;
> import org.videolan.vlc.gui.audio.widget.HeaderMediaSwitcher;
> import org.videolan.vlc.gui.dialogs.AdvOptionsDialog;
> import org.videolan.vlc.gui.dialogs.SavePlaylistDialog;
> -import org.videolan.vlc.interfaces.IAudioPlayer;
> import org.videolan.vlc.util.Strings;
> import org.videolan.vlc.util.Util;
> import org.videolan.vlc.widget.AudioMediaSwitcher.AudioMediaSwitcherListener;
> @@ -69,7 +68,7 @@ import org.videolan.vlc.widget.AudioMediaSwitcher.AudioMediaSwitcherListener;
> import java.util.ArrayList;
> import java.util.List;
>
> -public class AudioPlayer extends Fragment implements IAudioPlayer, View.OnClickListener {
> +public class AudioPlayer extends Fragment implements PlaybackServiceClient.Callback, View.OnClickListener {
> public static final String TAG = "VLC/AudioPlayer";
>
> private ProgressBar mProgressBar;
> @@ -400,6 +399,14 @@ public class AudioPlayer extends Fragment implements IAudioPlayer, View.OnClickL
> }
> }
>
> + @Override
> + public void onMediaPlayedAdded(MediaWrapper media, int index) {
> + }
> +
> + @Override
> + public void onMediaPlayedRemoved(int index) {
> + }
> +
> private void updateList() {
> int currentIndex = -1;
>
> diff --git a/vlc-android/src/org/videolan/vlc/interfaces/IAudioPlayer.java b/vlc-android/src/org/videolan/vlc/interfaces/IAudioPlayer.java
> deleted file mode 100644
> index c3db49f..0000000
> --- a/vlc-android/src/org/videolan/vlc/interfaces/IAudioPlayer.java
> +++ /dev/null
> @@ -1,28 +0,0 @@
> -/*****************************************************************************
> - * IAudioPlayer.java
> - *****************************************************************************
> - * Copyright © 2011-2012 VLC authors and VideoLAN
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License as published by
> - * the Free Software Foundation; either version 2 of the License, or
> - * (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program; if not, write to the Free Software
> - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
> - *****************************************************************************/
> -
> -package org.videolan.vlc.interfaces;
> -
> -public interface IAudioPlayer {
> -
> - public void update();
> - public void updateProgress();
> -
> -}
> diff --git a/vlc-android/tv/src/org/videolan/vlc/gui/tv/audioplayer/AudioPlayerActivity.java b/vlc-android/tv/src/org/videolan/vlc/gui/tv/audioplayer/AudioPlayerActivity.java
> index 1a6164a..15db87f 100644
> --- a/vlc-android/tv/src/org/videolan/vlc/gui/tv/audioplayer/AudioPlayerActivity.java
> +++ b/vlc-android/tv/src/org/videolan/vlc/gui/tv/audioplayer/AudioPlayerActivity.java
> @@ -31,7 +31,6 @@ import org.videolan.vlc.R;
> import org.videolan.vlc.gui.DividerItemDecoration;
> import org.videolan.vlc.gui.audio.AudioUtil;
> import org.videolan.vlc.gui.audio.MediaComparators;
> -import org.videolan.vlc.interfaces.IAudioPlayer;
> import org.videolan.vlc.util.AndroidDevices;
>
> import android.app.Activity;
> @@ -47,7 +46,7 @@ import android.widget.ImageView;
> import android.widget.ProgressBar;
> import android.widget.TextView;
>
> -public class AudioPlayerActivity extends Activity implements PlaybackServiceClient.AudioServiceConnectionListener, IAudioPlayer, View.OnFocusChangeListener {
> +public class AudioPlayerActivity extends Activity implements PlaybackServiceClient.AudioServiceConnectionListener, PlaybackServiceClient.Callback, View.OnFocusChangeListener {
> public static final String TAG = "VLC/AudioPlayerActivity";
>
> public static final String MEDIA_LIST = "media_list";
> @@ -101,12 +100,12 @@ public class AudioPlayerActivity extends Activity implements PlaybackServiceClie
> public void onStart(){
> super.onStart();
> mAudioController.bindAudioService(this, this);
> - mAudioController.addAudioPlayer(this);
> + mAudioController.addCallback(this);
> }
>
> public void onStop(){
> super.onStop();
> - mAudioController.removeAudioPlayer(this);
> + mAudioController.removeCallback(this);
> mAudioController.unbindAudioService(this);
> mMediaList.clear();
> }
> --
> 2.1.4
>
> _______________________________________________
> Android mailing list
> Android at videolan.org
> https://mailman.videolan.org/listinfo/android
--
With my kindest regards,
--
Jean-Baptiste Kempf
http://www.jbkempf.com/ - +33 672 704 734
Sent from my Electronic Device
More information about the Android
mailing list