App Technical Dictionary - GenevaSoftwareEngineering2016/ChristmasBirdCountApp GitHub Wiki

##The following information describes the purposes of key classes, methods, and variables in the ChristmasBirdCountApp mobile app project.## ###Main Screen of the App:###

  • MainActivity.cs -> The main class of the mobile Android app. This class contains the code for buttons and functions accessible from the main app screen (the user's sightings list).
  • Main.axml -> Defines the GUI (buttons, text, and layout) associated with MainActivity.cs. private List masterBirdList; -> Most up-to-date list of all birds in North America, provided by the ABA; Used by search function to add birds to "workingBirdList."
  • private List workingBirdList; -> List of all birds with counts > 0; This list is submitted with email report to Compiler.
  • private List filteredBirdList; -> List used so that filtering can be performed on "masterBirdList" without actually modifying "masterBirdList."
  • public static Stream FilePath { get; private set; } -> Variable to hold the path at which the CSV file is saved on the device.
  • public static int totalSpeciesSeen; -> The total number of various bird species seen (number of birds added to "workingBirdList").
  • public static int totalBirdsSeen; -> The total number of all birds seen (across all species in "workingBirdList").

###Pop-Ups (Fragments):###

  • AddBirdPopUp.cs -> Contains the code allowing users to select a bird from the 'master' list and add it to the sightings (working) list on the main app screen.
  • AddBirdPopUp.axml -> Defines the GUI (buttons, text, and layout) associated with AddBirdPopUp.cs.
  • ClearAllPopUp.cs -> Contains the code allowing users to clear the entire sightings (working) list on the main screen.
  • ClearAllPopUp.axml -> Defines the GUI (buttons, text, and layout) associated with ClearAllPopUp.cs.
  • PopUp.cs -> Contains the code allowing users to edit (increase or decrease) the count for a bird entry.
  • Pop.axml ->Defines the GUI (buttons, text, and layout) associated with PopUp.cs.
  • PopUpAdd.cs -> Contains the code allowing users to add multiple birds at a time to a bird entry's count.
  • BulkAdd.axml ->Defines the GUI (buttons, text, and layout) associated with PopUpAdd.cs.

###Submit Email Screen:###

  • EmailFormActivity.cs -> This class contains the code for buttons and functions accessible from the "Submit Email" screen (where users enter information for the email report and send the email to the Compiler).
  • EmailForm.axml -> Defines the GUI (buttons, text, and layout) associated with EmailFormActivity.cs.
  • Email.cs -> Contains code to create email messages using MailKit/MimeKit, add attachments to emails, and send the emails via a SMTP connection set up using SmtpConnection.cs.
  • SmtpConnection.cs -> Contains code to establish a connection to the Gmail account through which all app emails are sent.
  • Decryptor.cs -> Contains code to decrypt the passwords stored in EmailResource.resx.
  • EmailResource.resx -> A resource file that stores the email address and email password used by the Email.cs class.

###Other Classes and Layouts:###

  • BirdCount.cs -> Code defines the BirdCount objects, which contain bird "Name" and "Count" and are used to represent bird species and their counts.
  • BirdListFile.cs -> Code to create, read, and write the CSV file that serves as the saving/storage mechanism for the app as well as the bird list submitted as an email attachment. Also reads the 'master' bird list file provided by the ABA.
  • row_adapter.cs -> Code allowing a list of BirdCount objects to be used as input to the ListView object on the main app screen and on the AddBirdPopUp.
  • Search.cs -> Code to power the filtering/search function to narrow down list results.
⚠️ **GitHub.com Fallback** ⚠️