langtech/aikuma — pull request #350 by lisaslyis (2014-11-23 16:28:41+00:00)
Title: This pull-request resolves #279, #340, and is related to #243, #283, #315, #320, #344, 

#243
#315
1. When the auto-sync is checked in the setting, alarm is set to start Cloud-sync every 30 minutes and Boot-receiver is registered.
2. Boot-receiver will set the alarm again each time the device is re-booted.
3. Data-connection is checked inside the Cloud-Service. If it is not connected, the service will quit and restart after 30 minutes.
4. When the application starts, the sync-service will start regardless of 30 minute-scheduling

#279 : item_id is used in metadata

#283
1. Index file is created in the app-root path
2. Index file is used to show derivative recording files made by an user different from one who made a source.
3. It is indexed each time a derivative recording file is made.
4. TODO: Auto-creation of whole indexes for the case user deletes the index file by mistake

#320
1. Speaker-small-image.jpg, speaker-metadata.json are stored in each user's google-drive
2. This is indexed in fusiontable (metadata will be stored in fusiontable's metadata field)

#340 : archive-icon is changed

#344
1. Because cloud-service will be restarted each 30 minutes, checking the cloud-storage is not a good approach for an objective of minimization of API calls.
2. Checking the cloud-storage will only happen when the app is firstly installed(when the app's private data is cleared) and when the user presses the cloud-sync button in the menu.
3. In other cases, the creation of new file(recording, speaker) is tracked in Aikuma and automatically logged to be uploaded later.

PS
1. FileModel class is created and extended by Recording and Speaker
2. FileModel models the file-object from the viewpoint of GoogleCloud
3. All kinds of AIkuma files can now be uploaded to GoogleDrive and logged in FusionTable. (modelled by FileModel class)
4. Cloud-service's logic is totally changed for independent operation(regardless of application), efficiency, robustness and code-reusability
5. Support for multiple user-IDs
(multiple user's googleDrives / different user's states are stored in separate SharedPreferences)