Besides reorganisation of the internal state management, I also modified the following during development of Expense Report version 0.5.0:
- The user can select the language when the application is invoked for the first time.
- The user can delete two or more expenses at the same time.
- From the version information screen, the user can launch web browser and connect the application's web site so that the user can learn the latest information of the application. (This works only for MIDP-2.x handsets.)
Until Expense Report version 0.4.2, the application's default language depended on the mobile phone's language setting. While the language for labels on the screen can be changed after the first invocation, the language for preset data such as expense type names cannot be changed. This means that the user needed to set the language of the handset properly before he/she attempted to install Expense Report. Version 0.5.0 onwards ask the user which language is preferable when the application is first time invoked. Preset data will be initialised in accordance with the user’s language selection.
Secondly, I added a new screen so that the user can delete two or more expenses at the same time on. By this feature, the user can delete all expenses with preserving preference settings. By pressing “Mark multiple expenses” command on the main screen, the application goes to the screen that has check boxes attached to each expense. The user can press “Mark all expenses” command and subsequently “Delete selected expenses” command, so that selected expenses will be deleted. Because the type of instantiated List object cannot get altered, MULTIPLE type List is prepared for this purpose in addition to the IMPLICIT type one that is used for the main screen.
Version information screen was prepared separately for MIDP-1.0 and MIDP-2.x. The first one relies on Alert while the other does on Form. The latter has a link to the application's web site and it can launch the web browser by calling MIDlet.platformRequest() method. Usually it connects the English web page, but it connects the Japanese one if the application's language is set to Japanese.