I am sharing some questions here that I want think would be useful if they are included in Collect
documentation.
Please share your answers and suggestions here. It would be very helpful. Also, please add questions that makes Collect
different from other apps and things a contributors should know before starting contribution.
- How is form rendered to user and what part of
Collect
code is responsible for it?
- How are settings implemented?
- What database is used for storage purpose and the schemas?
- How form savepoints are captured and managed?
- What is role of widgets?
- How form definitions are cached?
- What is use of
dao
directory in org.odk.collect.android
package ?
- What is use of
/application/Collect
class in org.odk.collect.android
package?
- What part of code is used to handle repeats?
3 Likes
Here is a sample :
How is form downloaded from server?
Forms can be downloaded from FormDownloadList
activity.
List of forms available on server is downloaded using DownloadFormListTask
populated in datastructure of the type HashMap<String, FormDetails>
. Once download is complete, formListDownloadingComplete()
method implemented in FormDownloadList
is executed and SimpleAdapter
is updated to show it to user.
User selects the forms to download. On Click of Get Forms
button, selected froms are downloaded using DownloadFormsTask
class.
For each form following steps are carried out:
1.downloadXform()
method is called which creates a File
object to store form and calls downloadFile()
method.
2. downloadFile()
method sends HTTP request to server and opens stream to read the data from server. The recieved data (form) is stored in the temporary File
object. Once form is completely downloaded, the content is copied to File
object provided by downloadXform()
method and temporary File
object is cleared.
3. formsDownloadingComplete()
updates the progress bar.
Note: All the networking tasks are executed in background using AynscTask
.
Hi @Akshay_Patel I have had the same issue. However you can generate java docs from android studio. Also checkout the contribute file on github