@startuml abstract class BaseActivity abstract class AbstractDetailsFragment abstract class AbstractListFragment abstract class AbstractCursorListFragment class MusicActivity class Fragment class MusicListFragment class ArtistDetailsFragment { # View createView(LayoutInflater inflater, ViewGroup container) # String getSyncType() # String getSyncID() # int getSyncItemID() # SwipeRefreshLayout getSwipeRefreshLayout() # void onDownload() # void onSyncProcessEnded(MediaSyncEvent event) } class AlbumDetailsFragment { # View createView(LayoutInflater inflater, ViewGroup container) # String getSyncType() # String getSyncID() # int getSyncItemID() # SwipeRefreshLayout getSwipeRefreshLayout() # void onDownload() # void onSyncProcessEnded(MediaSyncEvent event) } class MusicVideoDetailsFragment { # View createView(LayoutInflater inflater, ViewGroup container) # String getSyncType() # String getSyncID() # int getSyncItemID() # SwipeRefreshLayout getSwipeRefreshLayout() # void onDownload() # void onSyncProcessEnded(MediaSyncEvent event) } class ArtistListFragment { # void onListItemClicked(View view) # CursorLoader createCursorLoader() # String getListSyncType() # BaseAdapter createAdapter() } class AlbumListFragment { # void onListItemClicked(View view) # CursorLoader createCursorLoader() # String getListSyncType() # BaseAdapter createAdapter() } class SongsListFragment { # void onListItemClicked(View view) # CursorLoader createCursorLoader() # String getListSyncType() # BaseAdapter createAdapter() } class MusicVideoListFragment { # void onListItemClicked(View view) # CursorLoader createCursorLoader() # String getListSyncType() # BaseAdapter createAdapter() } class AudioGenresListFragment { # void onListItemClicked(View view) # CursorLoader createCursorLoader() # String getListSyncType() # BaseAdapter createAdapter() } BaseActivity <|-- MusicActivity Fragment <|-- MusicListFragment AbstractDetailsFragment <|-- ArtistDetailsFragment AbstractDetailsFragment <|-- AlbumDetailsFragment AbstractDetailsFragment <|-- MusicVideoDetailsFragment Fragment <|-- AbstractListFragment AbstractListFragment <|-- AbstractCursorListFragment AbstractCursorListFragment <|-- ArtistListFragment AbstractCursorListFragment <|-- AlbumListFragment AbstractCursorListFragment <|-- SongsListFragment AbstractCursorListFragment <|-- MusicVideoListFragment AbstractCursorListFragment <|-- AudioGenresListFragment MusicActivity *-- MusicListFragment MusicListFragment *-- ArtistListFragment MusicListFragment *-- AlbumListFragment MusicListFragment *-- SongsListFragment MusicListFragment *-- MusicVideoListFragment MusicListFragment *-- AudioGenresListFragment ArtistListFragment *-- ArtistDetailsFragment AlbumListFragment *-- AlbumDetailsFragment AudioGenresListFragment *-- AlbumDetailsFragment MusicVideoListFragment *-- MusicVideoDetailsFragment @enduml