Commit Graph
137 Commits
Author SHA1 Message Date
denizk0461 50c7bfebba Fixed TimePickerFragment.kt crashing on configuration change by parcelising OnTimeSetListener interface - I didn't even know that that was possible tbh; fragments now use childFragmentManager instead of the activity's supportFragmentManager to instantiate bottom sheets 2023-05-04 12:26:56 +02:00
denizk0461 3d508dff6c (re-)added option to launch timetable on the current day; reinstated functionality to launch app on CanteenFragment.kt 2023-05-04 08:32:12 +02:00
denizk0461 9e5277a5f6 All sheets now have a button to dismiss the sheet 2023-05-03 21:49:18 +02:00
denizk0461 df1d127a17 Implemented functionality for adding a new event manually; added floating action buttons for adding an event and refreshing the canteen offers 2023-05-03 14:16:32 +02:00
denizk0461 ae8db7ce48 StudIPParser.kt now stops fetching items that don't provide full information, and tells the user how many items were skipped 2023-05-03 11:10:34 +02:00
denizk0461 7f0659d094 StudIPParser.kt now fetches days dynamically, allowing it to skip over days that are hidden from the timetable without crashing (hopefully) 2023-05-03 09:58:21 +02:00
denizk0461 a5c66aaaff FetcherActivity.kt now has a bottom app bar with useful actions and extends FragmentActivity instead of AppCompatActivity to show a tutorial bottom sheet 2023-05-02 22:35:19 +02:00
denizk0461 36a7ae0035 Replaced fragment switching functionality in MainActivity.kt with Navigation component, simplifying logic significantly; upgraded to AGP 8.0.1 2023-05-02 20:52:56 +02:00
denizk0461 51c4c9120b Scrolling ability has been added to the toolbars of the fragments, but in the process, I ducked up the canteen fragment. TODO: figure out a solution for where to put the chip group 2023-05-02 16:05:33 +02:00
denizk0461 2f4b205703 Converted all bottom sheets to use blank constructors and instead rely on bundles to retrieve data/objects, or custom view models to execute functions 2023-05-02 15:02:47 +02:00
denizk0461 5a9ab267aa All sheets now have the ability to scroll; a custom selectable item background has been added to clickable views to get a custom coloured ripple effect on click 2023-05-01 22:19:44 +02:00
denizk0461 b0631d323e User can now select allergens to exclude from the canteen offers 2023-05-01 19:17:35 +02:00
denizk0461 79f8e9cfca Activities are now kept on configuration change (e.g. rotation), which in turn keeps the fragments alive during rotation 2023-05-01 09:51:46 +02:00
denizk0461 d4737d8e14 Implemented separate ColorStateLists for the individual chips in CanteenFragment.kt to show their distinct colours when clicked 2023-05-01 09:35:01 +02:00
denizk0461 079e66ad50 Added app language support (I think); fragments rely on Bundles instead of constructor parameters to get data, mitigating a source of crashes 2023-04-30 22:47:59 +02:00
denizk0461 7243df0f06 Further error handling. Also given the user the option to colour dietary preference icons. Colours have partially been derived from those used on stw-bremen.de but have all been processed through the theme builder on m3.material.io 2023-04-29 22:26:26 +02:00
denizk0461 2bf340bdff TabLayoutMediator has been re-instantiated, hopefully in a form that is less crash-prone. Crashes will also be handled now in StwParser.kt 2023-04-29 10:56:52 +02:00
denizk0461 8fb41d6520 Edited canteen views to have direct database access in the CanteenPageFragment.kt, allowing for filtering the individual days through the database; filtering now works (with changes animated!!) through updating a LiveData and observing it in the page fragment 2023-04-28 22:44:23 +02:00
denizk0461 509a0434c5 Possibly fixed-for-good a bug that caused events to be fetched but not stored properly in the database; I believe this was caused by FetcherActivity.kt sequentially executing nukeEvents() and insertEvents(), but doing both asynchronously, and individually, which could mean that insertEvents() finishes before nukeEvents() and therefore nukeEvents() would delete the old events as well as the new ones. This doesn't seem entirely logical to me, as no ConflictStrategy has been configured, and inserting new events before the old ones have been cleared (since they both start their primary keys at 0) would have crashed the app. 2023-04-28 15:14:50 +02:00
denizk0461 aa5d32e64a Updated EventPageFragment.kt to have access to its own ViewModel and, by extension, its own reference to the database, which forgoes the need to transport data from EventFragment.kt through StudIPEventPageAdapter.kt to EventPageFragment.kt and allows for filtering for a specific day's items through the database rather than needing to iterate through the list via an extension function manually. Also implemented DiffUtil to perform individual updates rather than calling notifyDataSetChanged() every time a single item has been changed. 2023-04-28 11:18:05 +02:00
denizk0461 ee0934f29b Fixed a bug hiding all Stud.IP events from the user's view by... renaming the database table. yeah. i don't even know anymore. 2023-04-28 10:30:30 +02:00
denizk0461 ce7b854e8c StwParser.kt now collects all its data before adding everything to the database all at once, fixing problems where LiveData would update before all transactions were finished; ViewPagers have been updated to use Adapters extending FragmentStateAdapter instead of RecyclerView.Adapter 2023-04-27 21:58:10 +02:00
denizk0461 ccd77a5daf Made further documentation and safety changes. Scraper classes (StudIPParser.kt, StwParser.kt) still need to be checked for safety. 2023-04-27 20:27:42 +02:00
denizk0461 9d6489f83b Implemented ability to change the fragment opened on app start; made some optimisations to DietaryPreferences.kt. BUG: tab layout mediator is annoying af 2023-04-27 15:15:29 +02:00
denizk0461 1828a4b02e Button for switching an event's timestamps to show the academic quarter is now properly animated (I think) 2023-04-27 12:47:50 +02:00
denizk0461 a6a1309bce Implemented button to change dates for an event to reflect the academic quarter 2023-04-27 08:20:56 +02:00
denizk0461 540a2a7b9a Canteen adapter now tells the user when no offers are available for a given day 2023-04-26 20:17:35 +02:00
denizk0461 939bc06441 BUGFIX: opening CanteenFragment.kt more than once would disallow refreshing from working properly
BUGFIX: fragments launch slowly when quickly clicking through the bottom navigation view
2023-04-26 19:49:29 +02:00
denizk0461 450ce92dca Fixed ScheduleUpdateSheet.kt not updating and deleting events... somehow. Also implemented cheat codes hehe 2023-04-26 18:36:32 +02:00
denizk0461 d80e85fdbe Migrated the project to AGP 8.0 / JVM 17 2023-04-26 11:00:56 +02:00
denizk0461 d0819553bc Implemented licences dialogue in the settings; fully restored highlighting event functionality 2023-04-26 10:21:16 +02:00
denizk0461 ced111d93d Added a time stamp to development builds in the settings' app version section 2023-04-25 21:57:47 +02:00
denizk0461 65114264c4 Added opening hours and a button for the user to view them, but the formatting sucks 2023-04-25 16:55:17 +02:00
denizk0461 6b1d77dfb3 Implemented functionality to switch canteens. UI for this is not fully implemented. 2023-04-25 15:38:30 +02:00
denizk0461 840c8f1db7 Implemented snackbar telling the user that an error has occurred when fetching their schedule through FetcherActivity.kt. Also made some slight additions to the documentation 2023-04-25 12:02:25 +02:00
denizk0461 96862497e4 Finished style for schedule update bottom sheet (I think); implemented time picker, TODO: warn user if time span is invalid (start > end) 2023-04-25 10:24:15 +02:00
denizk0461 9b6e267cb0 Started implementation of event update sheet 2023-04-24 15:43:42 +02:00
denizk0461 a53232a814 Added information on data collection as well as an opt-in toggle, which is not yet implemented 2023-04-24 13:08:03 +02:00
denizk0461 b938352c53 Added further information to be shown in AllergenSheet.kt 2023-04-24 11:21:52 +02:00
denizk0461 6f5df7dd55 Fixed allergen duplicates being stored in the database and shown to the user multiple times 2023-04-24 10:47:34 +02:00
denizk0461 d654ba8a03 Implemented user setting for displaying allergens next to an offer 2023-04-23 22:06:29 +02:00
denizk0461 8d6a15c4d5 Added colour to StudIPEvent.kt to implement at a later date in an effort to prepare the app for release without needing to migrate (= nuke) the database once the functionality will be implemented 2023-04-23 21:40:04 +02:00
denizk0461 ca89e68a91 Implemented allergen functionality by showing the user a bottom sheet 2023-04-23 20:33:17 +02:00
denizk0461 b957172721 Transitioned from a fairly custom solution to using a colour palette generated by the Material Theme Builder to simplify colour management. Also began work on a bottom sheet for displaying allergens and additives in canteen offers. 2023-04-23 17:13:48 +02:00
denizk0461 fbad84aa09 Fully documented all Kotlin files and added TODOs to functions that need to be updated in some way 2023-04-23 11:57:03 +02:00
denizk0461 2534849329 Added comments and cleaned up code in activities and StudIPEvent.kt 2023-04-21 15:42:21 +02:00
denizk0461 7a6926ff64 Fixed a bug that would crash the app when refreshing the canteen view multiple times in quick succession. Turns out, the TabLayoutMediator only needs to be attached once. 2023-04-21 14:25:19 +02:00
denizk0461 ab316d9871 Fixed a bug that would cause the canteen plan to crash after refreshing while trying to layout the TabMediatorLayout. I don't know why that happened. 2023-04-21 14:20:06 +02:00
denizk0461 b39aa1f003 Fixed a bug that would cause the tab for a day without canteen offers to not be shown, causing the offers for the next days to be shifted over, thus not showing the offers for the last day that's available online. I know I didn't explain that very well, but it's fixed now anyway, soo (: also made some minor visual adjustments to margins and colours 2023-04-20 21:35:09 +02:00
denizk0461 07a2902367 Highlighted course is now highlighted with the primary colour, 50% translucent 2023-04-20 14:30:48 +02:00