Alpha - OwlNavi/Taskvatar GitHub Wiki

Initially we had a number of tasks we wanted to complete for the alpha as listed. As we progressed with the production of our application we ran into issues implementing some of the tasks.

Tasks

Was our most successful implementation. Tasks are displayed in a RecyclerView and are clickable. Each task has a name, description and time associated with it. This implemented using revised code from a tutorial. Clicking the task currently will change the colour which is the bases for our traffic light colour coded task list. We were also able to write and read from the SQLite database, therefore, our data is persistent.

Progression regarding tasks will be to at run-time, add and remove tasks as well as reorganizing completed tasks vs uncompleted as specific in our features list.

Basic avatar

This was in comparison a challenge to implement. Initially, the avatar was a collection of ImageViews which would link to the main_activity(home page). This worked well, clicking the avatar would take the user to the avatar_home activity where the avatar image would be larger with a horizontal RecyclerView at the bottom. The complication regarding this was that any changes which occurred on the avatar_home activity was not persistent and was not reflected back the activity_main home page. A possible solution we are trialing as of now is implementing fragments. We elected to use fragments because they provide us with powerful tools at run-time. The user interface becomes a dynamic structure which is able to be adjusted at run-time by adding or removing fragments, fragments are able to be reused within other activities which solves our persistence issue.

This solution after reading through the Android Developers page as well multiple tutorials make sense since we are attempting to build a user interface with multiple panes, our avatar and task list for example(home page). For the alpha, our goal was to convert our previous working code for avatar_home so that it may implement fragments. Currently, this is not working as intend and is bug ridden. One issue is how click events are being handled. To change from activity_home to avatar_home requires the avatar to be moving. This is because the imageView of each of the components of the avatar are blocking the ability of the user to click the fragment frame/container. We are working on a solution, possibly grouping the imageViews and because we can distinguished between a click and longClick, the click on the grouped imageView can be the event which triggers the activity change. If you want to switch activities currently, hold a click on the red square of the avatar, then once it is moving, click within the purple background towards the edge of screen.

The avatar is able to be manipulated, holding a longClick on the red square will cause it to perform a waving action and will cause it to move right to left on the screen. Due to this being an alpha, if you longClick once again, the avatar will increase its speed moving right to left. For the future, we will implement proper animations and appropriate restrictions on the animations. Unfortunately upon attempting to implement fragments, we were unable to add adjustable colours of the arms or legs. Another fragment which will contain the RecyclerView containing a list of components which are adjustable will be implemented e.g. adjusting leg colour. A current issue which is the fault of implementing the fragment is that once the activity is created i.e. avatar_home or activity_main for the first time, the avatar is redrawn. After that, the avatar will persist with its current action. A long click on the avatar on the home_page will cause the avatar to move, once the user clicks and goes to the avatar_home page, the avatar is redrawn and is stationary, this is not intended is may be caused by our graphical initialization of the avatar being in the onCreateView method which is called when an activity is create. Correction to this would be to further our understanding into the lifecycle of fragments and how to properly implement proper communication between the fragment and its host activity.

We were unable to attempt to implement a user account with different tasks but because the database is working now this should be implemented in the future. Despite the avatar not being in working condition currently, the foundations for our task manager application is there. We will be implementing fragments into all aspects of our application if we are able to implement it properly for the avatar.

Current commit