Added MediaFragment and MediaListFragment that act as a base Fragment for any fragment that requires access to the MediaServer instance. MediaServerListener has been added which is implemented in these base fragments. The fragments register their listeners by casting the the activity in onAttach. The fragments are notified from the activity via the listeners when the media server changes.
Reverted back to programmatically instantiating fragments instead of directly adding the <fragment> to the xml view hierarchy. Added a buttons_fragment.xml file that now gets inflated from ButtonsFragment instead of inflating an empty frame layout and replacing children
Fixed CommonPlaybackButtonsListener class name typo
Reduced the minimum dp width at which all the playback buttons are shown. All the buttons will now be shown on devices with 400dp width are larger (used to be 480dp)
Fixed navigation button appearing when hide dvd tab is set. Now toggling "hide dvd tab" takes effect once the PickServerActivity returns its result to the PlaybackActivity. App restart is no longer required.
Removed unused volume_adjust.xml layout and replaced it with the one in layout-v11/ and fixed the width and max volume. Fixed VolumePanel showing regardless of screen size. On small screens (less than 450dp in portrait) the VolumeFragment is removed from the main layout and VolumePanel is used instead to display a toast on volume change or using the phones hardware volume up/down keys.
Added playing_fragment.xml layout resource to contain the content of the playing tab. Multiple main.xml layouts have now been removed because the only difference was the playing tab.
Changed from including playing_fragment.xml as part of the hierarchy to inflating it programmatically as a fragment. Added some UI visibility listeners to determine which fragments are visible. This was required because its possible to have a device which uses tabs in portrait and tablet layout in landscape which will cause different fragment managers to be used when changing orientation (getSupportFragmentManager from activity and getChildFragmentManager for PlayingFragment). Updated android support library
Moved listeners to the correct package
Removed left over include reference to playing_fragment
Minor formatting changes
Added ViewPager Tabs. Updated navigation fragment to add arguments to make the fragment lockable. This is needed because gestures will compete for focus with the pager. Changed implementation of the action bar buttons. Instead of playlist/browse fragments inflating their own menus, the activity inflates now them and changes their visibility when required. Options are still handled by the activity or the respective fragments.
Namespaced BrowseFragment refresh directory menu item
Fixed InfoFragment not refreshing after setting dvd tab visibility preference
Changed to using interface constants to avoid hard coded values when managing the playlist loading progress.
Replaced enqueue observer/observable with Reloadable and Reloader. This allows Reloadable fragments to reload another fragment via the Reloader (the activity). Changed current track(s) list to be populated when the adapter is created instead of lazily during getView. The current track is now always scrolled to when playlist is reloaded, unless the user rotates the device, in which case the same position will be restored.
Updated Reloader and Reloadable to accept a Bundle argument so each fragment can have more control over the reload.
Removed mBrowse field and replaced with local scoped variable
Moved ProgressListener to the correct package
PlaybackActivity now receives error broadcasts to check for the condition where new statuses are received after previously having an error. This condition is used to reload the browse fragment (playlist and info etc.. recieve status broadcasts so will automatically reload). Added ERROR_INVALID_XML constant and updated hard coded usages.