|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectsk.baka.ambient.activity.main.AbstractController
sk.baka.ambient.activity.main.AbstractListController
sk.baka.ambient.activity.main.AbstractPlaylistController
public abstract class AbstractPlaylistController
Groups functionality for a controller managing a playlist.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class sk.baka.ambient.activity.main.AbstractController |
|---|
AbstractController.Listener |
| Field Summary | |
|---|---|
static int |
PLAYLIST_VIEW_ID
The playlist view id. |
| 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 | |
|---|---|
AbstractPlaylistController(int mainViewId,
int listViewId,
Activity mainActivity)
Creates new controller. |
|
| Method Summary | |
|---|---|
boolean |
canComputeItems()
Checks if the model currently supports computing tracks. |
void |
clipboardChanged()
The clipboard has been changed. |
List<TrackMetadataBean> |
computeTracks(Interval highlight)
Retrieve a list of tracks from the selection. |
void |
configChanged(ConfigurationBean config)
The configuration was changed. |
abstract String |
getHint(Interval highlight)
Returns a very short and simple string representation of the selected contents. |
protected abstract int |
getPlaylistSize()
Returns the underlying playlist size. |
protected abstract int |
getQueueNumber(int index)
Returns queue status of given track. |
protected abstract TrackMetadataBean |
getTrack(int index)
Retrieves a track from given position. |
protected void |
initialize()
Overriding classes must invoke this method at the end of their constructors. |
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. |
protected abstract boolean |
isCurrentlyPlayedTrack(int index)
Checks if the track at given index is currently being played. |
boolean |
isReadOnly()
Checks if the list view is currently read-only. |
void |
offline(boolean offline)
Informs that the application has entered an offline/online mode. |
protected void |
recomputeListItems()
Recomputes the model. |
void |
removeItems(Interval remove)
The contract: when overriding this method, be sure to call this super method after you are done deleting items. |
void |
update(GesturesListView listView,
View itemView,
int index,
Object model)
An item view is being drawn (or re-drawn) on screen. |
| Methods inherited from class sk.baka.ambient.activity.main.AbstractListController |
|---|
canHighlight, destroy, dropItems, getClipboard, highlightChanged, moveItems, moveItemsByOne, performZoom, setClipboard, update |
| Methods inherited from class sk.baka.ambient.activity.main.AbstractController |
|---|
equals, flipVisibility, hashCode, hide, initButtonBar, initButtonBar, initButtonBar, isDestroyed, isVisible, isZoomed, onAction, setVisibility, show, visibilityChanged, zoom |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface sk.baka.ambient.IApplicationListener |
|---|
stateChanged |
| Methods inherited from interface sk.baka.ambient.views.gesturelist.IGestureListViewListener |
|---|
itemActivated |
| Field Detail |
|---|
public static final int PLAYLIST_VIEW_ID
| Constructor Detail |
|---|
public AbstractPlaylistController(int mainViewId,
int listViewId,
Activity mainActivity)
Creates new controller.
The contract: the extending class MUST invoke the initialize()
after it is done initializing.
mainViewId - the view whose visibility is controlled.listViewId - the id of the GesturesListViewmainActivity - | Method Detail |
|---|
protected final void initialize()
public void removeItems(Interval remove)
removeItems in interface IGestureListViewListenerremoveItems in class AbstractListControllerremove - the interval to removeprotected abstract TrackMetadataBean getTrack(int index)
index - the index
null.protected void recomputeListItems()
AbstractListControllermodel. You don't have
to call the ModelHolder.notifyModified() - it is called
automatically after the method finishes.
recomputeListItems in class AbstractListControllerprotected abstract int getPlaylistSize()
public final void update(GesturesListView listView,
View itemView,
int index,
Object model)
IGestureListViewListenerGesturesListView.getModel() list.
The only exception is the EOP special item. For more information please
read here.
update in interface IGestureListViewListenerlistView - the listview containing the viewitemView - the view representing a single itemindex - 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.protected abstract int getQueueNumber(int index)
index - the track index
protected abstract boolean isCurrentlyPlayedTrack(int index)
index - the track index
true if it is being played, false
otherwise.public final boolean canComputeItems()
IGestureListViewListener
canComputeItems in interface IGestureListViewListenercanComputeItems in class AbstractListControllertrue if the model can compute tracks,
false otherwise.public boolean isComputeTracksLong(Interval interval)
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.
isComputeTracksLong in interface IGestureListViewListenerisComputeTracksLong in class AbstractListControllerinterval - the selection
true if long operation, false
otherwise.public boolean isComputeTracksOnlineOp(Interval interval)
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.
isComputeTracksOnlineOp in interface IGestureListViewListenerisComputeTracksOnlineOp in class AbstractListControllerinterval - the selection
true if some Internet resources will be polled,
false otherwise.public boolean isReadOnly()
IGestureListViewListener
isReadOnly in interface IGestureListViewListenerisReadOnly in class AbstractListControllertrue if the view cannot be modified,
false otherwise.public abstract String getHint(Interval highlight)
IGestureListViewListenerReturns a very short and simple string representation of the selected contents.
This method is only invoked when IGestureListViewListener.canComputeItems() returns
true.
getHint in interface IGestureListViewListenergetHint in class AbstractListControllerhighlight - the highlighted items.
null
if no hint should be shown.public void configChanged(ConfigurationBean config)
IApplicationListener
configChanged in interface IApplicationListenerconfig - the configuration instance, must NOT be modified.public List<TrackMetadataBean> computeTracks(Interval highlight)
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.
computeTracks in interface IGestureListViewListenercomputeTracks in class AbstractListControllerhighlight - the selection
null.public void clipboardChanged()
IApplicationListener
clipboardChanged in interface IApplicationListenerpublic void offline(boolean offline)
IApplicationListener
offline in interface IApplicationListeneroffline - if true then we are currently offline. If
false then we are online.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||