sk.baka.ambient.activity.main
Class ShoutcastController

java.lang.Object
  extended by sk.baka.ambient.activity.main.AbstractController
      extended by sk.baka.ambient.activity.main.AbstractListController
          extended by sk.baka.ambient.activity.main.ShoutcastController
All Implemented Interfaces:
IGestureListViewListener

public final class ShoutcastController
extends AbstractListController

Controls the shoutcast server manager.

Author:
Martin Vysny

Nested Class Summary
 
Nested classes/interfaces inherited from class sk.baka.ambient.activity.main.AbstractController
AbstractController.Listener
 
Field Summary
static List<ActionsEnum> actions
          The actions to display on the Task switcher.
 
Fields inherited from class sk.baka.ambient.activity.main.AbstractListController
highlightColor, listView
 
Fields inherited from class sk.baka.ambient.activity.main.AbstractController
app, cycle, listener, mainActivity, mainView
 
Constructor Summary
ShoutcastController(MainActivity activity, GesturesListView playlistView)
          Creates the shoutcast controller instance.
 
Method Summary
 boolean canComputeItems()
          Checks if the model currently supports computing tracks.
 boolean canHighlight()
          Checks if we can start highlight mode now.
 List<TrackMetadataBean> computeTracks(Interval highlight)
           Retrieve a list of tracks from the selection.
 void destroy()
          The controller is about to be destroyed.
 String getHint(Interval highlight)
           Returns a very short and simple string representation of the selected contents.
 boolean isComputeTracksLong(Interval interval)
           Checks if the IGestureListViewListener.computeTracks(Interval) method will be a long operation.
 boolean isComputeTracksOnlineOp(Interval interval)
           Checks if the IGestureListViewListener.computeTracks(Interval) method will involve polling of some data from the Internet.
 void itemActivated(int index, Object model)
          The item was activated, either by clicking on it or using a keyboard.
protected  void onAction(ActionsEnum action)
          Called when an action button is pressed.
protected  void performZoom(boolean zoom)
          Zooms, or un-zooms the controller.
protected  void recomputeListItems()
          Recomputes the model.
 void removeItems(Interval remove)
           Remove these items from the list.
 void showGenre(String genre)
          Browse given genre.
 void update(GesturesListView listView, View itemView, int index, Object model)
          An item view is being drawn (or re-drawn) on screen.
protected  void visibilityChanged(boolean visible)
          Invoked when the component visibility changes.
 
Methods inherited from class sk.baka.ambient.activity.main.AbstractListController
dropItems, getClipboard, highlightChanged, isReadOnly, moveItems, moveItemsByOne, setClipboard, update
 
Methods inherited from class sk.baka.ambient.activity.main.AbstractController
equals, flipVisibility, hashCode, hide, initButtonBar, initButtonBar, initButtonBar, isDestroyed, isVisible, isZoomed, setVisibility, show, zoom
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

actions

public static final List<ActionsEnum> actions
The actions to display on the Task switcher.

Constructor Detail

ShoutcastController

public ShoutcastController(MainActivity activity,
                           GesturesListView playlistView)
Creates the shoutcast controller instance.

Parameters:
activity - the activity instance.
playlistView - the playlist view
Method Detail

destroy

public void destroy()
Description copied from class: AbstractController
The controller is about to be destroyed. No invocations are performed after this call. The controller should release its resources, stop its activities etc. Make sure that you call super() if you override this method!

Overrides:
destroy in class AbstractListController

onAction

protected void onAction(ActionsEnum action)
Description copied from class: AbstractController
Called when an action button is pressed. By default invokes main activity. Subclasses can override.

Overrides:
onAction in class AbstractController
Parameters:
action - the action to take

visibilityChanged

protected void visibilityChanged(boolean visible)
Description copied from class: AbstractController
Invoked when the component visibility changes. By default does nothing.

Overrides:
visibilityChanged in class AbstractController
Parameters:
visible - new visibility flag.

recomputeListItems

protected void recomputeListItems()
Description copied from class: AbstractListController
Recomputes the model. You don't have to call the ModelHolder.notifyModified() - it is called automatically after the method finishes.

Specified by:
recomputeListItems in class AbstractListController

getHint

public String getHint(Interval highlight)
Description copied from interface: IGestureListViewListener

Returns a very short and simple string representation of the selected contents.

This method is only invoked when IGestureListViewListener.canComputeItems() returns true.

Specified by:
getHint in interface IGestureListViewListener
Overrides:
getHint in class AbstractListController
Parameters:
highlight - the highlighted items.
Returns:
short description of selected contents. May be null if no hint should be shown.

isComputeTracksLong

public boolean isComputeTracksLong(Interval interval)
Description copied from interface: IGestureListViewListener

Checks if the IGestureListViewListener.computeTracks(Interval) method will be a long operation. If yes, then the operation will be run in new thread. If not, the operation will be run in handler event thread.

This method is only invoked when IGestureListViewListener.canComputeItems() returns true.

Specified by:
isComputeTracksLong in interface IGestureListViewListener
Overrides:
isComputeTracksLong in class AbstractListController
Parameters:
interval - the selection
Returns:
true if long operation, false otherwise.

isComputeTracksOnlineOp

public boolean isComputeTracksOnlineOp(Interval interval)
Description copied from interface: IGestureListViewListener

Checks if the IGestureListViewListener.computeTracks(Interval) method will involve polling of some data from the Internet.

This method is only invoked when IGestureListViewListener.canComputeItems() returns true.

Specified by:
isComputeTracksOnlineOp in interface IGestureListViewListener
Overrides:
isComputeTracksOnlineOp in class AbstractListController
Parameters:
interval - the selection
Returns:
true if some Internet resources will be polled, false otherwise.

canComputeItems

public boolean canComputeItems()
Description copied from interface: IGestureListViewListener
Checks if the model currently supports computing tracks. This also affects the drag'n'drop capability - we cannot drag'n'drop if a track list cannot be computed.

Specified by:
canComputeItems in interface IGestureListViewListener
Overrides:
canComputeItems in class AbstractListController
Returns:
true if the model can compute tracks, false otherwise.

canHighlight

public boolean canHighlight()
Description copied from interface: IGestureListViewListener
Checks if we can start highlight mode now.

Specified by:
canHighlight in interface IGestureListViewListener
Overrides:
canHighlight in class AbstractListController
Returns:
true if highlight mode can be started, false otherwise.

itemActivated

public void itemActivated(int index,
                          Object model)
Description copied from interface: IGestureListViewListener
The item was activated, either by clicking on it or using a keyboard.

Parameters:
index - the index of the item.
model - the model for the item.

removeItems

public void removeItems(Interval remove)
Description copied from interface: IGestureListViewListener

Remove these items from the list. The list view sets the highlight automatically to zero interval.

This operation is invoked even when IGestureListViewListener.isReadOnly() returns false as some use cases activates a "Go Back" activity instead of deleting items.

Specified by:
removeItems in interface IGestureListViewListener
Overrides:
removeItems in class AbstractListController
Parameters:
remove - remove these items. The interval is not null however it may be empty.

update

public void update(GesturesListView listView,
                   View itemView,
                   int index,
                   Object model)
Description copied from interface: IGestureListViewListener
An item view is being drawn (or re-drawn) on screen. The implementation should correctly set the view contents, based on the model object. The model object is taken from the GesturesListView.getModel() list. The only exception is the EOP special item. For more information please read here.

Parameters:
listView - the listview containing the view
itemView - the view representing a single item
index - the index in the GesturesListView.getModel() list. May point outside of the model list only when drawing an EOP item.
model - The model object, taken from the GesturesListView.getModel() list. This value may optionally be the MutableListAdapter.EOP_MODEL_MARKER object - in this case the special EndOfPlaylist item must be drawn.

computeTracks

public List<TrackMetadataBean> computeTracks(Interval highlight)
Description copied from interface: IGestureListViewListener

Retrieve a list of tracks from the selection. This operation may not be invoked from the handler's thread (depending on the result of the IGestureListViewListener.isComputeTracksLong(Interval) method). The method implementation should thus periodically check for the interrupted flag. When interrupted, it should return an empty list or null ASAP. It may do so by throwing an exception

If the method is invoked in a non-handler thread the callee wraps the result in a thread-safe list.

The method may throw RuntimeException - it will be caught and displayed unless the thread is interrupted.

This method is only invoked when IGestureListViewListener.canComputeItems() returns true.

Specified by:
computeTracks in interface IGestureListViewListener
Overrides:
computeTracks in class AbstractListController
Parameters:
highlight - the selection
Returns:
a list of tracks, must not be null.

showGenre

public void showGenre(String genre)
Browse given genre.

Parameters:
genre - the genre to browse.

performZoom

protected void performZoom(boolean zoom)
Description copied from class: AbstractController
Zooms, or un-zooms the controller.

Overrides:
performZoom in class AbstractListController
Parameters:
zoom - true zoom the controller in, false zoom the controller out.


Copyright © 2007-2008. All Rights Reserved.