Commit Graph
90 Commits
Author SHA1 Message Date
denizk0461 8a416b30fd Added small hints to FetcherActivity.kt to help out the user 2023-05-05 11:53:44 +02:00
denizk0461 e17a81e604 CanteenFragment.kt: replaced buttons for opening hours and canteen switch embedded in the app bar with floating action buttons; implemented a possible fix for the app crashing after refreshing the canteen plan. This may have been caused by accessing the view/context of the fragment to let the user know that the refresh succeeded or encountered an error. Reference will be null by the time the fragment is inactive, causing a NullPointerException 2023-05-04 15:09:10 +02:00
denizk0461 5ca5788899 Replaced custom TimePickerFragment.kt with standard MaterialTimePicker 2023-05-04 13:29:34 +02:00
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
denizk0461 b5f5e06b7f Changed filter chip colour, but when pressed, the primary colour needs to be changed to a more desaturated tint 2023-04-20 12:19:44 +02:00
denizk0461 de1b5f8005 FILTERING WORKS FINAL 2023-04-20 11:53:14 +02:00
denizk0461 576592f0d0 Filtering fixed, but it still doesn't quite work as I wanted it to. e.g. selecting 'pork' and 'vegan' shows no elements, because of course nothing is both vegan and contains pork, but I wanted it to show options that are either or. Should leave it the way it is? 2023-04-20 10:17:04 +02:00
denizk0461 b9378901f4 Canteen items are now individually clickable to signal that they are separate items; BUG: filtering does not work anymore 2023-04-20 10:05:24 +02:00
denizk0461 5d58d25386 Canteen offers are now grouped; TODO: add a divider to separate different offers. Also, add prices 2023-04-20 08:17:23 +02:00
denizk0461 70a89ac681 Fixed filtering behaviour, since it wouldn't recognise items with two preferences if only one had been selected; added icons for preferences 2023-04-18 21:33:24 +02:00
denizk0461 c4d482f78f FILTERING WORKS 2023-04-18 16:41:01 +02:00
denizk0461 4d9ad39578 Made some improvements to the dietary preference handling, but CanteenOfferPageAdapter.kt still needs some work for the filtering to work properly; it should only filter out elements if they meet NO preferences! 2023-04-18 15:39:49 +02:00
denizk0461 c385da4287 Implemented chips for selecting dietary preferences 2023-04-18 10:25:45 +02:00
denizk0461 56cdc4c5ee Canteen name will now be fetched as well; fixed an error that displayed the offers of the next day in CanteenFragment.kt 2023-04-17 14:32:07 +02:00
denizk0461 315f2f815a Successfully completed database change OMG; this will save memory by storing less duplicate data 2023-04-17 14:19:06 +02:00
denizk0461 4d520f375b Implemented data classes for database optimisations 2023-04-17 12:09:54 +02:00
denizk0461 199aa8f44c Preparing database optimisations 2023-04-16 22:17:00 +02:00
denizk0461 61822f1f45 Canteen content can now be displayed 2023-04-16 21:41:46 +02:00
denizk0461 5543eb4e32 Implemented canteen scraper/parser functionality 2023-04-16 18:19:06 +02:00
denizk0461 2117535f63 Added German translation 2023-04-14 13:21:24 +02:00
denizk0461 f07c41079a Upcoming/current course of the current day will now be highlighted with a thicker border 2023-04-14 13:09:40 +02:00
denizk0461 a3489d06b3 Completed the design (colour) change for both dark and light theme now 2023-04-13 21:05:52 +02:00
denizk0461 3a2d444956 Currently changing the app's colours. fuck i spent so much time changing the fucking status bar colour. like stackoverflow is so damn outdated on this topic 2023-04-13 19:21:53 +02:00
denizk0461 fb50711d36 Changing fragments via bottom navigation view works well now! Also started work on SettingsFragment.kt 2023-04-13 12:25:43 +02:00
denizk0461 53c2a2a9c4 Visual changes, mostly colour-related 2023-04-12 22:07:18 +02:00
denizk0461 d55a304cec Moved the fetching task to a separate activity; changed the time attributes in StudIPEvent.kt to strings 2023-04-12 18:58:10 +02:00
denizk0461 4f78eb8373 Switch to ViewPager2 was successful; it was essentially a drop-in replacement. There's a bug in the connected TabLayout where, if the app starts and scrolls programmatically to Wednesday or later, the tab won't be focussed until the user starts scrolling again 2023-04-12 16:46:38 +02:00
denizk0461 8b690a4593 Minor changes; about to try and implement ViewPager2 instead of the RecyclerView to show different days. This is for better UX and compatibility with the TabLayout 2023-04-12 15:36:35 +02:00
denizk0461 7da43dc2b7 Added bottom navigation view (currently unpopulated) and changed logic for pages 2023-04-12 10:49:30 +02:00
denizk0461 a37b6dfd0b Tab layout now syncs up with recyclerview scroll position; a bit sluggish though 2023-04-12 09:46:27 +02:00
denizk0461 7b33c68db9 Added tabs to indicate which day is selected; not fully implemented. Tabs don't show which day is selected after certain user action 2023-04-11 16:50:45 +02:00
denizk0461 6a5d7448e5 Timetable now shows the schedule for the current day when opening the app 2023-04-10 21:12:29 +02:00
denizk0461 d6eb7f5ce1 small adjustments and bugfix; timeslot was always saved into the database longer than would be correct; for example, a course from 08:15 to 09:45 would have been saved as 08:15 to 11:45 2023-04-10 21:03:02 +02:00
denizk0461 cab50b5f2d PARSING HTML WORKS AND IT GETS SAVED TO THE DATABASE WOOO 2023-04-10 20:54:15 +02:00
denizk0461 97bc2b1068 App can now retrieve HTML 2023-04-10 14:50:57 +02:00
denizk0461 03b86c8ab9 TODO implement custom Chrome tabs 2023-04-08 18:53:51 +02:00
denizk0461 3c65ccddb1 Added database persistence ability 2023-04-08 17:30:05 +02:00
denizk0461 9accebc68c Big change successful; main view now uses RecyclerView for both horizontal and vertical scrolling, as using LinearLayout caused a duplication glitch on the first and last page 2023-04-08 15:44:07 +02:00
denizk0461 76370d78a8 boutta make a big change 2023-04-08 15:13:11 +02:00
denizk0461 9c0e67b396 Implemented page view for courses 2023-04-08 13:43:26 +02:00
denizk0461 73ea48626d Initial push 2023-04-08 11:41:02 +02:00