Project Part 3 Information - CMPUT301F12T06/classproject GitHub Wiki
Completed Phase 1 and some of Phase 2
Phase Completion
- Phase 1 Completed ALL items
- Phase 2 Completed Multiple Photos and the Recapture photos
- Phase 3 Completed Photo Thumbnails
Design Patterns Used
- Our project is based on the MVC Model which uses Observers/Observables
- ImageAdapter,Picture used the Adapter pattern
- Picture is a wrapper of the Bitmap which allows for Serialization and De-serialization. We do this because when trying to De-serialize the Bitmap object we obtain errors although Serializing it works.
- We use the Singleton pattern for LocalStorage, JSONServer, and TaskManager
Code Issues/Incompletion
In the course discussion, there was a post that stated that our applications will be tested on 800x600 but the default AVD is WVGA800. Running it on custom resolution of 800x600 will cause issues when taking a picture (We are unable to see the control buttons for the camera such as capturing, accepting and canceling a photo). To take pictures use the default WVGA800 resolution if using the AVD.
We are using AsyncTask to send/upload to the Json server. Non-harmful Exceptions occur when adding a task -- however this does not affect program functionality. These exceptions are recorded in the header files that use async operations. This is due to the dialogs being displayed. Within an AsyncTask it calls the sync which calls another AsyncTask after completion. There may be some conflicts with the dialogs but this will be addressed in the last phase.
We do not display the timestamp, however we do store it and load it correctly. Our View Submission Activity will display it in the next Phase.
We do not ask the user for a username currently, instead we use a UUID based on the Android device. Our plan is to create a dialog that obtains the Username from the user on the first startup of the application, and then saves it locally.
There is also a slight delay after adding a task or submission before the entry appears on the list. This is because after the task is added it will resync with the server which happens in the background. This will cause the appearance of a slight lag but it is due to the background sync. This issue will be addressed with loading dialogs in phase 3.