Android:Roadmap

Version 0.1
This is trunk, as of revision 22.

Version 0.2

 * show the preferences when it's not been set by the user. That is roughly functional.
 * some sort of indication when there is a background task running. AsyncTask
 * An extended HttpClient that has shorter than the default time-outs. This is useful if there's a miss-configuration and no connection can be established.
 * I still need to move the values to the preference screen.
 * Changed class names to Java naming conventions.
 * Changed the field type for the server IP/domain entry as it was only accepting numbers (not allowing "." for an IP-address).
 * Improve layout for optimal screen-space
 * Clicking list items send item live
 * Search item and
 * send live
 * add to service (only in lp:~johanmynhardt/openlp/android branch still)

Version 0.3

 * Cleaner notification during network interactions
 * Blank to theme, Show desktop options ?
 * i18n support: 789669 - Started on Transiflex

Version 0.4

 * Clean up UI to fit with multiple Activities - like Android Twitter
 * Split Blanking and Alerts into separate Activities
 * Make Service Item an activity off the main Service - Long Click.
 * Clean up error handling and messages.
 * StageView Tab to track stage view with auto scaling. ?
 * Allow Service and item display fonts to be user sized.

Version 0.5

 * Polling, so current song and verse is updated on slide view and current item on service including Properties
 * Cleaner notification during network interactions
 * New Scrolling UI based on ICS code
 * Configure multiple host/port settings. Say one for home, one for Church, one for Sunday school.
 * SSL Support - Needs support in OpenLP
 * Profile updates to show version and copyright

ToDo

 * Search Dialog
 * BaseExpandableListAdapter
 * ExpandableListView on Android
 * Steps to implement ExpandableListView in android

I have been thinking of the app usage-flow before diving into changing stacks of code: The first thing I am going to attempt is to see whether I can keep the current layout and just add the ViewPager to go to the service/other views.
 * Option to disable screen turning off. Perhaps three way: (Off/Dim/Bright)
 * To keep the screen on isn't that difficult... trying to do the dim option.
 * Perhaps option to go to next/previous slide via hardware volume control? (Note, this might go against developer guidelines, so perhaps not...)
 * Blank to theme, Show desktop options
 * Theme switcher
 * Configure multiple host/port settings. Say one for home, one for Church, one for Sunday school.
 * Allow app to be moved to the SD card
 * Need testing: OpenLP.apk
 * does this help?
 * i18n support: 789669
 * The only thing that should actually happen for i18n support is the translation service to be used since Android has good support by default.
 * Creating an android service for pinging the status of the OpenLP service
 * Make Poll a background service and running on a timer (configurable)
 * *ViewPager*
 * Tutorial on ViewPager
 * Documentation on ViewPager or Swiping

But while thinking about that, it occurred to me that it might be nicer having the view paging per-activity, so for example one would be able to swipe previous/next service/slide items.

We should discuss what we actually want in a swipe view, the service parts (service, slide, alert, misc) or the items in the activities (previous/next service/song item).

Version 100.0

 * Add song database, with option to download from/sync with OpenLP.
 * Song editor/creator in App, and sync these up to OpenLP
 * Order of service features:
 * Download service from OpenLP
 * Open/Save service locally to SD card
 * Upload service back to OpenLP
 * Change service offline, so services can be planned on the go (via Song database above)
 * Email service in human-readable form.

Request: A projector mode which simply mimics what is on the projector screen at the moment. Ideally as a separate app with no features to affect the service but just to watch it. This would allow tablets to act as service repeaters which would be ideal for people with bad eyesight who cannot read the projector.