denizk0461
2f9ecbafe7
Tweaks to the timetable/schedule feature so that it works properly now:
...
- adding events without any schedules present is prohibited
- events are now properly assigned to the currently active schedule
- changed top bar text in schedule fragment
- changed order of headers in allergen detail sheet
2023-09-04 21:18:33 +02:00
denizk0461
1e00e6bdab
Merge remote-tracking branch 'origin/master'
2023-07-31 22:45:55 +02:00
denizk0461
7f9b07489b
Fixed a bug that caused the status bar to be coloured wrong
2023-07-31 22:45:46 +02:00
denizk0461
1aa033609d
Fixed a bug that caused the status bar to be coloured wrong
2023-07-31 22:45:24 +02:00
denizk0461
ae5b0fabc1
A message now informs the user of the new timetables feature
2023-07-31 22:30:33 +02:00
denizk0461
453e65ec48
User can now add, edit, and delete timetables without crashing (hopefully)
2023-07-31 22:09:04 +02:00
denizk0461
1f05fad84c
Links in canteen news are now fetched and can be clicked
2023-07-04 15:06:40 +02:00
denizk0461
a5d8e157de
Timetables can now be edited and deleted via sheet from SettingsFragment.kt
2023-07-04 14:47:19 +02:00
denizk0461
ca2cfe071f
Updated dependencies
2023-07-04 12:54:42 +02:00
denizk0461
0d0bc1d1a2
Stud.IP events now get added to their proper timetable rather than being nuked on every refresh; users can now switch between timetables through the settings app
2023-07-04 12:51:12 +02:00
denizk0461
694d962896
Added Timetable.kt which was a PAIN because SQLite does not support ADD FOREIGN KEY on ALTER TABLE, and as such, the required workaround is to create a temporary table with the new constraint added, insert the values from the old table into the new table, drop the old table, and finally rename the new table to the name of the old table so that the app thinks that nothing ever happened... UGH
2023-07-03 15:47:55 +02:00
denizk0461
97b713a578
WeserPlaner 1.1.0: implemented canteen view in CompactOverviewFragment.kt
2023-06-04 20:45:38 +02:00
denizk0461
35283f3544
Compact layout: back stack now gets popped every time the user navigates back using the back button embedded in the fragment layout
2023-06-04 17:51:40 +02:00
denizk0461
8f612d3c31
Added back buttons on all user-facing fragments that show when compact layout is used
2023-06-04 17:42:30 +02:00
denizk0461
6d1ab773dc
Added navigation graph and corresponding user preference for additional app layout option
2023-06-04 16:59:04 +02:00
denizk0461
26c89108bf
Finished IntroductionActivity.kt; fixed a bug in StwParser.kt that would throw an error upon accessing the UI due to a missing withContext() call. This error seemed to (visibly?) happen on API level 24, but not on 30+
2023-06-04 15:34:32 +02:00
denizk0461
01acb1c4b5
Moved first launch preference out of EventFragment.kt to be moved into the newly created tutorial/introductory screen IntroductionActivity.kt
2023-06-04 12:39:54 +02:00
denizk0461
36bede6201
Enabled Jetifier since third-party libraries may require it; in-development options for events are now hidden if the user has not explicitly enabled them
2023-06-04 12:27:21 +02:00
denizk0461
98a3a13623
Added TimetableOverviewActivity.kt and a means to launch via a button through EventFragment.kt; implementation unfinished
2023-05-25 12:32:10 +02:00
denizk0461
e52a055cf1
Added FormattedDate.kt to produce formatted strings more easily; TaskOverviewAdapter.kt now produces expandable items
2023-05-23 12:39:43 +02:00
denizk0461
ce0667300d
Added ReminderStatus.kt to keep track of the status of a future notification implementation; moved enums and similar classes to values directory
2023-05-23 08:35:34 +02:00
denizk0461
a1f18b3548
Task overview now has a RecyclerView adapter and displays dummy data in empty items; added database queries to retrieve tasks
2023-05-22 15:32:19 +02:00
denizk0461
61155eaec4
Added button to change order for tasks (functionality unimplemented); moved options menu for events to long press, single click is now functionless
2023-05-22 14:16:56 +02:00
denizk0461
75724ace18
Added an options menu for events; moved delete option to the new options menu
2023-05-21 22:16:20 +02:00
denizk0461
e99a58de54
Added a floating action button to add tasks in TaskOverviewFragment.kt
2023-05-21 19:59:38 +02:00
denizk0461
b21953c571
Added data type EventTask.kt for the task fragment; added timetableId to StudIPEvent.kt to assign events with a specific timetable, for a future implementation of being able to store multiple timetables simultaneously; database scheme will now be exported to allow for automatic migrations
2023-05-21 15:29:34 +02:00
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