|
||||||||||
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 GesturesListView
mainActivity
- Method Detail |
---|
protected final void initialize()
public void removeItems(Interval remove)
removeItems
in interface IGestureListViewListener
removeItems
in class AbstractListController
remove
- the interval to removeprotected abstract TrackMetadataBean getTrack(int index)
index
- the index
null
.protected void recomputeListItems()
AbstractListController
model
. You don't have
to call the ModelHolder.notifyModified()
- it is called
automatically after the method finishes.
recomputeListItems
in class AbstractListController
protected abstract int getPlaylistSize()
public final void update(GesturesListView listView, View itemView, int index, Object model)
IGestureListViewListener
GesturesListView.getModel()
list.
The only exception is the EOP special item. For more information please
read here
.
update
in interface IGestureListViewListener
listView
- 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 IGestureListViewListener
canComputeItems
in class AbstractListController
true
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 IGestureListViewListener
isComputeTracksLong
in class AbstractListController
interval
- 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 IGestureListViewListener
isComputeTracksOnlineOp
in class AbstractListController
interval
- the selection
true
if some Internet resources will be polled,
false
otherwise.public boolean isReadOnly()
IGestureListViewListener
isReadOnly
in interface IGestureListViewListener
isReadOnly
in class AbstractListController
true
if the view cannot be modified,
false
otherwise.public abstract String getHint(Interval highlight)
IGestureListViewListener
Returns a very short and simple string representation of the selected contents.
This method is only invoked when IGestureListViewListener.canComputeItems()
returns
true
.
getHint
in interface IGestureListViewListener
getHint
in class AbstractListController
highlight
- the highlighted items.
null
if no hint should be shown.public void configChanged(ConfigurationBean config)
IApplicationListener
configChanged
in interface IApplicationListener
config
- 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 IGestureListViewListener
computeTracks
in class AbstractListController
highlight
- the selection
null
.public void clipboardChanged()
IApplicationListener
clipboardChanged
in interface IApplicationListener
public void offline(boolean offline)
IApplicationListener
offline
in interface IApplicationListener
offline
- 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 |