/*
* Copyright 2008-2013, ETH Zürich, Samuel Welten, Michael Kuhn, Tobias Langner,
* Sandro Affentranger, Lukas Bossard, Michael Grob, Rahul Jain,
* Dominic Langenegger, Sonia Mayor Alonso, Roger Odermatt, Tobias Schlueter,
* Yannick Stucki, Sebastian Wendland, Samuel Zehnder, Samuel Zihlmann,
* Samuel Zweifel
*
* This file is part of Jukefox.
*
* Jukefox 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 3 of the License, or any later version. Jukefox 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
* Jukefox. If not, see <http://www.gnu.org/licenses/>.
*/
package ch.ethz.dcg.jukefox.controller;
import android.app.Activity;
import ch.ethz.dcg.jukefox.model.collection.BaseAlbum;
import ch.ethz.dcg.jukefox.model.collection.BaseArtist;
import ch.ethz.dcg.pancho3.controller.eventhandlers.AlbumDetailEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.AlbumListEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.AlbumListMenuEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.ArtistListEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.ArtistListMenuEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.BaseJukefoxEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.ContextShuffleConfigEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.DeleteSongMenuEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.FeedbackDialogEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.GenreListEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.GenreListMenuEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.ImportPlaylistEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.ListSelectionEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.LoadPlaylistMenuEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.LoadVideoPlaylistMenuEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.MapEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.PlayModeSelectionEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.PlayerActivityEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.PlaylistContextMenuEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.PlaylistMenuEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.SavePlaylistMenuEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.SearchEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.ShuffleModeMenuEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.SimilarModeMenuEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.SimilarSongsToFamousArtistEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.SleepMenuEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.SongContextMenuEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.SongListEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.SpaceActivityEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.TabEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.TagCloudEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.TagPlaylistGenerationEventListener;
import ch.ethz.dcg.pancho3.controller.eventhandlers.TitleSearchMenuEventListener;
import ch.ethz.dcg.pancho3.view.commons.JukefoxActivity;
import ch.ethz.dcg.pancho3.view.dialogs.FeedbackDialog;
import ch.ethz.dcg.pancho3.view.overlays.AlbumDetails;
import ch.ethz.dcg.pancho3.view.overlays.ContextShuffleConfig;
import ch.ethz.dcg.pancho3.view.overlays.DeleteSongMenu;
import ch.ethz.dcg.pancho3.view.overlays.LoadPlaylistMenu;
import ch.ethz.dcg.pancho3.view.overlays.LoadVideoPlaylistMenu;
import ch.ethz.dcg.pancho3.view.overlays.PlaylistContextMenu;
import ch.ethz.dcg.pancho3.view.overlays.PlaylistMenu;
import ch.ethz.dcg.pancho3.view.overlays.SavePlaylistMenu;
import ch.ethz.dcg.pancho3.view.overlays.ShuffleModeMenu;
import ch.ethz.dcg.pancho3.view.overlays.SimilarModeMenu;
import ch.ethz.dcg.pancho3.view.overlays.SimilarSongsToFamousArtist;
import ch.ethz.dcg.pancho3.view.overlays.SleepMenu;
import ch.ethz.dcg.pancho3.view.overlays.SongContextMenu;
import ch.ethz.dcg.pancho3.view.overlays.SongMenu;
import ch.ethz.dcg.pancho3.view.overlays.TagPlaylistGenerationActivity;
import ch.ethz.dcg.pancho3.view.tabs.JukefoxTabActivity;
import ch.ethz.dcg.pancho3.view.tabs.JukefoxTabActivity.Tab;
import ch.ethz.dcg.pancho3.view.tabs.MapActivity;
import ch.ethz.dcg.pancho3.view.tabs.PlayerActivity;
import ch.ethz.dcg.pancho3.view.tabs.SearchActivity;
import ch.ethz.dcg.pancho3.view.tabs.SpaceActivity;
import ch.ethz.dcg.pancho3.view.tabs.lists.AlbumList;
import ch.ethz.dcg.pancho3.view.tabs.lists.AlbumListMenu;
import ch.ethz.dcg.pancho3.view.tabs.lists.ArtistList;
import ch.ethz.dcg.pancho3.view.tabs.lists.ArtistListMenu;
import ch.ethz.dcg.pancho3.view.tabs.lists.GenreList;
import ch.ethz.dcg.pancho3.view.tabs.lists.GenreListMenu;
import ch.ethz.dcg.pancho3.view.tabs.lists.ListSelectionActivity;
import ch.ethz.dcg.pancho3.view.tabs.lists.SongList;
import ch.ethz.dcg.pancho3.view.tabs.lists.TagCloud;
public interface IViewController {
/**
* Returns the Event Listener for the player activity
*
* @param activity
* the player activity
* @return the according eventListener
*/
public PlayerActivityEventListener createPlayerViewEventListener(PlayerActivity activity);
public TabEventListener createTabEventListener(JukefoxTabActivity activity, Tab currentTab);
public BaseJukefoxEventListener createBaseJukefoxEventListener(JukefoxActivity activity);
public PlayModeSelectionEventListener createPlayModeSelectionEventListener(JukefoxActivity activity);
public MapEventListener createMapEventListener(MapActivity activity);
public AlbumDetailEventListener createAlbumDetailEventListener(AlbumDetails albumDetails);
public ListSelectionEventListener createListSelectionEventListener(ListSelectionActivity listSelectionActivity);
public SongListEventListener createSongListEventListener(SongList songList);
public ShuffleModeMenuEventListener createShuffleModeMenuEventListener(ShuffleModeMenu shuffleModeMenu);
public AlbumListEventListener createAlbumListEventListener(AlbumList albumList);
public PlaylistMenuEventListener createPlaylistMenuEventListener(PlaylistMenu playlistMenu);
public SleepMenuEventListener createSleepMenuEventListener(SleepMenu sleepMenu);
public LoadPlaylistMenuEventListener createLoadPlaylistMenuEventListener(LoadPlaylistMenu loadPlaylistMenu);
public LoadVideoPlaylistMenuEventListener createLoadVideoPlaylistMenuEventListener(
LoadVideoPlaylistMenu loadVideoPlaylistMenu);
public SavePlaylistMenuEventListener createSavePlaylistMenuEventListener(SavePlaylistMenu savePlaylistMenu);
public ArtistListEventListener createArtistListEventListener(ArtistList artistList);
public GenreListEventListener createGenreListEventListener(GenreList genreList);
public SimilarModeMenuEventListener createSimilarModeMenuEventListener(SimilarModeMenu similarModeMenu);
public GenreListMenuEventListener createGenreListMenuEventListener(GenreListMenu genreListMenu);
public ArtistListMenuEventListener createArtistListMenuEventListener(ArtistListMenu artistListMenu);
public TagCloudEventListener createTagCloudEventListener(TagCloud tagCloud);
public SearchEventListener createSearchEventListener(SearchActivity searchActivity);
public TitleSearchMenuEventListener createTitleSearchMenuEventListener(SongMenu titleSearchResultMenu);
public SpaceActivityEventListener createSpaceEventListener(SpaceActivity spaceActivity);
public SongContextMenuEventListener createSongContextMenuEventListener(SongContextMenu songContextMenu);
public TagPlaylistGenerationEventListener createTagPlaylistGenerationEventListener(
TagPlaylistGenerationActivity tagPlaylistGeneration);
public SimilarSongsToFamousArtistEventListener createSimilarSongsToFamousArtistEventListener(
SimilarSongsToFamousArtist similarSongsToFamousArtist);
public PlaylistContextMenuEventListener createPlaylistContextMenuEventListener(
PlaylistContextMenu playlistContextMenu);
public FeedbackDialogEventListener createFeedbackDialogEventListener(FeedbackDialog feedbackDialog);
public AlbumListMenuEventListener createAlbumListMenuEventListener(AlbumListMenu albumListMenu);
public DeleteSongMenuEventListener createDeleteSongMenuEventListener(DeleteSongMenu deleteSongMenu);
public ContextShuffleConfigEventListener createContextShuffleConfigEventListener(
ContextShuffleConfig smartShuffleConfig);
public ImportPlaylistEventListener createImportPlaylistEventListener();
public void doHapticFeedback();
public void showAlbumDetailInfo(JukefoxActivity activity, BaseAlbum album);
public void showAlbumList(JukefoxActivity activity, BaseArtist artist);
public void startActivity(Activity activity, Class<?> classToLoad);
}