Commit Graph
100 Commits
Author SHA1 Message Date
denizk0461 2675e5b7f3 Added measures to make sure the user logs into their schedule before fetching can commence 2023-05-21 09:16:27 +02:00
denizk0461 059502242b Migrated build.gradle files to Kotlin DSL 2023-05-20 23:49:06 +02:00
denizk0461 fb155550b3 New fragments can now be accessed via an experimental setting. They tell the user via snack message that their functionality is not yet implemented 2023-05-20 23:01:53 +02:00
denizk0461 ff930b89c0 Added ExamOverviewFragment.kt and RoomFinderFragment.kt as well as respective layouts and view models to implement later; minor reformatting 2023-05-20 22:03:51 +02:00
denizk0461 cbea5f124d Fixed colours for icons to tell the user that canteen offers are hidden or that they have no events; added tooltips to buttons in canteen fragment; edited README.md to use new iamge paths 2023-05-20 19:12:03 +02:00
denizk0461 1c31d422fa WeserPlaner 1.0.3: adjusted layout of AllergenSheet.kt to display allergens and additives separately; FetcherActivity.kt now features a button to go directly to the user's schedule, if logged in; replaced toast messages with snack bars; ScheduleUpdateSheet.kt now notifies the user about database transactions via snack bar; schedule view now tells the user if there are no events scheduled for a day 2023-05-14 23:09:06 +02:00
denizk0461 8f69b5f381 Adjusted layout of AllergenSheet.kt to display allergens and additives separately 2023-05-14 21:44:05 +02:00
denizk0461 559ec22734 Adjusted close buttons for sheets to be slightly highlighted 2023-05-14 20:16:02 +02:00
denizk0461 14e379eebf CanteenPageFragment.kt now displays the count of offers that have been hidden due to allergen and dietary preferences 2023-05-14 19:49:09 +02:00
denizk0461 d4e64018d2 Refactored preference functions so that view models cannot access preferences directly, instead having to use get/set methods, which also solves a potential bug source of defining different default values for certain properties in different view models 2023-05-14 13:10:47 +02:00
denizk0461 d9a4ead7ec Flattened structure of StwParser.kt somewhat; CanteenFragment.kt now shows an error snack if the user tries to switch canteens while another one is being fetched; made slight adjustments to the translations 2023-05-14 09:00:08 +02:00
denizk0461 2311cc46ad Adjusted UI elements in CanteenFragment.kt to clean up the UI 2023-05-13 19:45:36 +02:00
denizk0461 2798e0ecbb Moved development codes from DevCodeSheet.kt to a (by default) hidden section of SettingsFragment.kt; added further information about the build in that section 2023-05-13 19:31:27 +02:00
denizk0461 7ed230b4b9 Changed FABs into Extended FABs that collapse on scroll; updated FABs and scrolling behaviour of app bars; removed dimens.xml files for landscape and larger widths that had been generated by Android Studio 2023-05-13 10:00:40 +02:00
denizk0461 1177b8b14e FABs in canteen fragment now dodge away from snack bars; snack bar now used to tell the user that no news are available for a canteen 2023-05-12 18:51:36 +02:00
denizk0461 6053e8a9c4 WeserPlaner 1.0.2: canteen news button is now highlighted if news are available, and the news sheet will now only be shown if there are any news available. Otherwise, a toast will tell the user that no news are available. 2023-05-12 11:40:43 +02:00
denizk0461 2d3dd390bf Fixed StwParser.kt not fetching all required data to show opening hours of the canteens; small further tweaks to the structure and KDoc of StwParser.kt 2023-05-12 11:03:56 +02:00
denizk0461 b88c831530 Modified logic to more consistently show the fetch button if the schedule is empty, and hide it if there are schedule items 2023-05-11 22:10:08 +02:00
denizk0461 1e8cc694a3 Fixed some slight issues with the German translation: 2nd person singular "du" was only sometimes capitalised "Du", now it never is; one instance where "The" was used in place of "Die" 2023-05-11 21:38:38 +02:00
denizk0461 a61f072055 Added a button to direct the user to download their schedule from Stud.IP if they have not done any modifications to their schedule; fixed a bug that would show opening hours of the currently selected canteen or crash the app whenever the info button in FetcherActivity.kt was clicked 2023-05-11 21:31:41 +02:00
denizk0461 91ffcf0637 CanteenFragment.kt now refreshes automatically on initial launch 2023-05-11 15:13:43 +02:00
denizk0461 6dccb287ab Adjusted text to show the user when they have changed their allergen preferences; changed licences text 2023-05-11 14:56:33 +02:00
denizk0461 81765db0db Quick fix before publishing: adjusted colours for new MaterialButtonGroup to fit in with the other elements 2023-05-10 21:31:26 +02:00
denizk0461 e33414b7e9 WeserPlaner 1.0.1: pricing can now be adjusted - users can pick whether they want to see pricing for students or for employees; fragment launch settings has been changed to use a MaterialButtonGroup to support adding more options down the line 2023-05-10 21:14:17 +02:00
denizk0461 9ada2ca462 AllergenConfigSheet.kt now updates SettingsFragment.kt to display the count of allergens the user has set; made changes to several strings and minor UI tweaks 2023-05-10 18:43:06 +02:00
denizk0461 218bc89873 Changed TextSheet to use a ViewModel for showing content that is fetched from the database. Uses TextSheetContentId to determine which LiveData to observe. 2023-05-09 14:19:45 +02:00
denizk0461 6cbfe71e62 Added functionality to view news for a canteen; fixed a bug that would prevent the offers from being fetched for canteens without news; BUG: news are still a bit buggy, check for crashes 2023-05-09 12:22:40 +02:00
denizk0461 b42118ed94 shrinkResources now enabled; debugSymbolLevel set to SYMBOL_TABLE; StwParser.kt now fetches news from the top of the website, if any are available; fixed a bug that would cut off shadows from the largest FAB in CanteenFragment.kt 2023-05-09 11:34:31 +02:00
denizk0461 603955b53b WeserPlaner 1.0.0 v.3: now using R8 minifier. Added appropriate ProGuard rules 2023-05-07 11:17:32 +02:00
denizk0461 4ad952f1ae WeserPlaner 1.0.0: updated minor things and changed name from 'Stud.IP Timetable' to 'WeserPlaner' 2023-05-06 22:56:37 +02:00
denizk0461 e1ea3ecc11 New icon; changed colour palette to reflect the university's colour design a little better 2023-05-05 15:52:30 +02:00
denizk0461 5d544625ad Reverted colours from green testing colours to red; palette changed slightly from the previous red palette 2023-05-05 13:13:25 +02:00
denizk0461 a0fda22705 finally fixed that fucking pink fucking TimePickerDialog fucking button fuck fuck fuck 2023-05-05 13:09:27 +02:00
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