-
Notifications
You must be signed in to change notification settings - Fork 0
Process book
Rick Hutten edited this page Jan 29, 2015
·
2 revisions
##Eigenschappen
- Mogelijkheid om in te loggen met je studentennummer, deze wordt onthouden en je kunt weer uitloggen.
- Interface waarin de student haar/zijn rooster kan inzien.
- Synchronisatie met de agenda in de telefoon.
##Data Op https://datanose.nl/ is een iCalendar file verkrijgbaar die geparsed kan worden waaruit het schema van het gehele academische jaar te halen is.
Deze app bestaat uit ruwweg zeven onderdelen. Die zijn als volgt:
- Een beginscherm waarin de gebruiker zijn/haar studentennummer in moet vullen. Dit nummer wordt opgeslagen zodat dit maar één keer gedaan hoeft te worden. De gebruiker kan ook uitloggen om weer terug komen in dit onderdeel en eventueel een ander rooster in te vullen.
- Een onderdeel dat verantwoordelijk is voor het downloaden en opslaan van de iCalendar file (classes en api's: HttpURLConnection)
- Een onderdeel dat de iCalendar file parsed en opslaat in een formaat waar makkelijk verder mee gewerkt kan worden. (classes en api's: BufferedReader)
- Het hoofdscherm van de app bestaat uit een weergave van het rooster van de student. De gebruiker kan met gebruik van een viewpager naar links en rechts swipen om naar een andere dag te gaan. (classes en api's: ViewPager, Calendar)
- Een scherm voor opties. In dit scherm wordt de status/opties weergegeven van de mogelijkheid om te synchroniseren.
- De synchronisatie met de locale kalender van de gebruiker. (classes en api's: Service, CalendarContract)
- LoginActivity: Laat de student zijn/haar student ID invullen en roept StudentIdChecker aan om het opgegeven student ID te valideren. Classes en API's: SharedPreferences, MaterialDesign (library).
- backToBeginning: Fuctie die de activity terug zet in zijn begin status. Deze wordt aangeroepen wanneer er terug gegaan wil worden naar LoginActivity.
- StudentIdChecker: Checkt of een student ID bestaat. Maakt een connectie met een site en, als deze site bestaat, roept DownloadIcs aan om de iCalendar file te downloaden. Als de ID niet bestaat wordt er terug gegaan naar LoginActivity. Classes en API's: AsyncTask, HttpURLConnection)
- DownloadIcs: Download de iCalendar file van de ingevoerde student ID. Gaat ervan uit dat de student ID valide is. Als de file gedownload is wordt de gebruiker doorgestuurd naar de 2e activity: ScheduleActivity. Classes en API's: AsyncTask, HttpURLConnection)
- ScheduleActivity: Roept als eerst ParseIcs aan om het schema te parsen. Bevat een ViewPager waarin Fragments komen waarin het uiteindlijke rooster zal worden geladen. Classes en API's: ViewPager, Calendar, ScreenSlidePagerAdapter.
- ScreenSlidePagerAdapter: Adapter voor de ViewPager in ScheduleActivity.
- getEventsOnDate: Functie die wordt opgeroepen door alle ScheduleFragments om de gegevens van het bijbehorende fragment te verkrijgen.
- ParseIcs: Parsed de opgeslagen file en slaat deze informatie op in een ArrayList. Classes en API's: BufferedReader.
- readFile: Functie die door ScheduleActivity wordt aangeroepen om de data van de opgeslagen iCalendar file te verkrijgen.
- ScheduleFragment: Bij elk fragment behoort 1 specifieke dag in het jaar. Roept getEventsOnDate() op om de data te krijgen. Daarna kan er met de verkregen data een schema opgezet worden. Bij deze taak wordt geen library gebuikt maar wordt de layout dynamisch gecreëerd. Classes en API's: Calendar, EventView.
- EventView: Custom view voor het weergeven van een agenda item. Classes en API's: View.
- setEventData: Bij het maken van een nieuwe EventView kan met deze functie de data worden meegegeven om weer te geven.
- animateBack: Om terug te animeren naar de begin status van de view.
- DetailEventActivity: Geeft een uitgebreid overzicht van een agenda item. De activity verkrijgt de informatie die het moet weergeven vanuit de intent.
- SettingsActivity: Geeft een scherm weer waarbij de gebruiker kan instellen om de agenda met de locale agenda te synchroniseren. Ook is er de mogelijkheid om een kleur te geven aan de agenda. Roept SyncCalendarService aan om de agenda te synchroniseren als de settings zijn opgeslagen en men het scherm verlaat (onPause). Classes en API's: MaterialDesign, SharedPreferences.
- SyncCalendarService: Synchroniseert de iCalendar file met een gecreëerde locale agenda. Maakt alleen een agenda aan als er nog geen DataNose agenda bestaat. Voegt items toe of update agenda items van de opgeslagen iCalendar file. Roept ParseIcs aan om de data uit de file te verkrijgen. De service maakt een nieuwe thread aan zodat de service op de achtergrond kan worden gedraait. Ook wordt er een sticky notificatie gegeven zodat de gebruiker op de hoogte wordt gehouden van de voortgang EN zodat de service niet zomaar wordt gestopt door het OS als de app is afgesloten. Het proces is persistent en sluit niet als de app wordt afgesloten of zelfs wanneer het RAM geheugen wordt gewist. Classes en API's: Service, Thread, CalendarContract.
##Schets
