You are to design and create a new class called SelectCallDataDialog, which opens by clicking browse buttons for selection of ringtones, vibrations or leds. Depending on which the user has selected, this class needs to be able to scan the "Documents" directory and display all the files with either ".aud", ".vib" or ".led" file extensions in a list of some sort. Users should be able to select the desired pattern (aud/vib/led) to associate with that particular contact and function. This of course should immediately update the AddContactDialog but should not be stored until the user has specifically requested to save the modifications.
The functionality for this class involves:
- Scanning the directory and displaying a list of audio, vibration or led files according to the corresponding detail.
- Being able to iterate through the list and select one to associate with the user. If the previously associated detail is among the selectable list then it should be the default highlighted selection, otherwise highlight the first alphabetical file.
- Select button to close the dialog and cause the AddContactDialog to update. However, storing the changes should only happen upon the user clicking the "Save" button for either new contacts or editing.
- The ability to select defaults: "Default" for ringtone and "Pulse" for vibration/leds.
- Cancel button to close the dialog with no changes.
Note that for this task you may wish to create several dummy pattern files to appropriately test and demonstrate this part of the assignment. Audio files may be blank but vibration and led files should have pattern data explained in the next task.