This is a preliminary version of the assignment. Look out for changes!!
19 March, new extras.
To get access to the exam in the elective courses you must complete a mandatory assignment in each of your elective courses.
This is the mandatory assignment for the course "Android application development".
You must show your solution to me on Monday 13 April 2015 (or earlier if you are ready).
Your solution must be approved by me before you can access the exam.
Tteachers must register their working hours. Every day every teacher must register how many hours he spend on which tasks.
We already have a web-based systems to do the registrations. However, we want an Android based system as well.
Since we have to use the system on a daily basis (often more than once a day) user friendliness is most important, for example we would like to be able to make registrations with a few clicks.
In this version of the application there is a fixed number of tasks, you can
call them "task1", "task2", etc.
In a later version there might be a more dynamic set of tasks.
The user interface should have at least two activities: Login + Registration
The Registration might look like this. However, feel free to make a nicer more user friendly user interface.
The "Sum" field is automatically updated then the user types in numbers (hours worked).
I would like to get rid of the "Save" button. Registrations should be saved automatically when the user leaves the screen, either by picking another date, or by pressing the devices "Home" or "Back" button.
If you keep the "Save" button, you should ask the user (some kind of dialog), if he/she would save the registrations before leaving the screen.
All EditTexts must have a relavant InputType.
InputType.TYPE_CLASS_NUMBER
| InputType.TYPE_NUMBER_FLAG_DECIMAL
could be relevant for the EditTexts where the user types the working hours.
The application must not loose any data when the user changes the screen orientation from portrait to landscape and vice versa.
The graphical layout must look nice in both landscape and portrait mode. You
may have to make special layouts for landscape mode (/res/layout-land
) for some
of your activities.
I want you to make an options menu, but I don't know what to put in the menu.
Ideas for the menu items: "Settings", "Help", "About", etc.
The only functionality you must implement is "change password" in the "Settings" dialog item.
For all other dialog item tt is enough to show the menu items and make a Toast when the user presses the item.
Use a SharedPreferences object to store the username + password for quick login: The username + password is readily available in the relevant fields in the Login Activity.
It might be helpful to make a few model classes (a plain Java class, NOT an Activity)
The model classes (feel free to modify) User and Registration are included in this zipped Android Studio project timeregistrationModelOnly.
We can not get access to real world data!
To solve this problem I have made a very-simple DAO (Data Access Object).
The DAO and a very simple Implementation (which keeps data in memory) is inclused in this zipped Android Studio project timeregistrationModelOnly.
Some line that might be helpful
If the user taps the back bottom in the Registration Activity you may want to save the date + close the application without going back to the Login Activity.
This might be helpful Skip going back to direct parent activity when pressed back
If you have extra time (and want to learn more) you can try one or more of these: