Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(app): remove .vscode/settings.json #6

Merged
merged 0 commits into from
Jun 25, 2021

Conversation

nilsreichardt
Copy link
Member

@Jonas-Sander I think you forgot to add this file to the .gitignore, right? 😅 Because of this, VS Code breaks for me, because it can't find my Flutter SDK.

Copy link
Collaborator

@Jonas-Sander Jonas-Sander left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Didn't know I had to do it like that! Thanks :)

@nilsreichardt nilsreichardt merged this pull request into main Jun 25, 2021
@nilsreichardt nilsreichardt deleted the nilsreichardt-patch-1 branch June 25, 2021 17:43
github-merge-queue bot pushed a commit that referenced this pull request Aug 5, 2023
Replace old privacy policy pages with a new markdown-based, multi-layout
privacy policy page.

This PR will **not** update the privacy policy itself, only the
presentation.

Note: This PR originally had code for loading the privacy policy
asynchronously (it wasn't loaded from the internet, but all the code for
loading indicators, errors, etc. was 90% there). I removed it for now,
to have less complex code as we don't need it yet. The deleted code:
[7eb67fb3fd4694e1cf4505cc12df821198ea7f22](a43badb)

**Desktop / Narrow layout**
(Updated: "Weitere Optionen" in the lower-left is now centered)


https://user-images.githubusercontent.com/29028262/231279789-27777b7e-1ac2-4bd1-9fba-f5c57a19ba48.mp4

**Mobile layout**

| Onboarding | Default |
|-|-|
|
![grafik](https://user-images.githubusercontent.com/29028262/231280468-65d2234f-b385-4f5f-a1c1-5caca55c630e.png)
|![grafik](https://user-images.githubusercontent.com/29028262/231280514-9e5d2347-db76-4d06-ae40-fd70def822af.png)
|


| Dark mode | Light mode |
|-|-|
|
![grafik](https://user-images.githubusercontent.com/29028262/231281163-e1a68c0c-bb56-476f-aa85-d3ff25358537.png)
|![grafik](https://user-images.githubusercontent.com/29028262/231281254-459aaa38-42a1-4d14-90ae-372a62e37049.png)
|
|
![grafik](https://user-images.githubusercontent.com/29028262/231281418-35a60354-345d-4b53-9936-4c4e369b55b4.png)
|![grafik](https://user-images.githubusercontent.com/29028262/231281379-9f305698-5f84-436d-8000-30f6d21f1b66.png)|
|
![grafik](https://user-images.githubusercontent.com/29028262/231280514-9e5d2347-db76-4d06-ae40-fd70def822af.png)
|![grafik](https://user-images.githubusercontent.com/29028262/231281585-7d300917-8af0-4b4c-834a-d0089bd77c15.png)|

**Privacy policy with Subchapters** (just for demonstration purposes)


https://user-images.githubusercontent.com/29028262/236900647-93ae287c-eb70-42bc-8a53-12cb2d267db0.mp4

Tidbits to remeber:
* Expansion behavior is different on layouts with bottom sheets in
contrast to the desktop layout with the fixed table of contents on the
side. On the latter manually expanded sections will stay expanded until
they are manually collapsed again, on the former they will always
automatically collapse again as soon as they are not read anymore.

TODOs:
- [x] A section should already be marked as "currently reading" when the
heading is at the top of the page not only after we scrolled past it
(because if we use the TOC to navigate to a section it will position the
heading at the top of the page - also its just nicer in general).
- [x] Fix Anchor for "11. Verarbeitung des gewählten Account-Typs und
des Bundeslandes" not working (maybe more). The generated ID by the
Flutter `markdown` plugin is different from the Id we use in the text.
Seems to happen for Anchors with Sonderzeichen/Umlaute?
- [x] `flutter:
'package:sharezone/onboarding/sign_up/pages/privacy_policy/src/table_of_contents/currently_reading.dart':
Failed assertion: line 104 pos 14: 'oldVisibleHeadings.length == 1': is
not true.`
- [x] Depending on the Platform (and maybe even input?) we should have
different Padding for the ui elements, especially the table of contents
section texts. On e.g. an iPad you would need to press onto a specific
section with your finger and thus need more space to hit it easily and
not accidentally another section below or above. On desktop since you
have your cursor one might leave less space as its easier to press the
right section. We might use `Theme.visualDensity` - should be
additionally look at the type of input used? See also:
https://stackoverflow.com/questions/63327808/in-flutter-how-can-i-check-if-a-mouse-device-or-a-touch-device
- [x] Privacy Policy Section shouldn't stay expanded when opened
manually in bottom sheet layout
- [x] When manually expanding subsections in the BottomSheet they should
close automatically again when navigating to one (maybe simple auto
open/close behavior with no permanent manual expansion?)
- [X] Change our designs and implementation so that we don't take
consent. See:
**I changed the implementation but didn't change the design.**
*
https://meindatenschutzpartner.de/dsgvo/informationspflichten/zustimmung-zu-datenschutzerklaerung-einholen/
* https://www.activemind.de/magazin/zustimmung-datenschutzerklaerung/
*
https://www.dr-datenschutz.de/anleitung-datenschutzhinweise-auf-websites-richtig-einbinden/
- [x] TOC fade at the bottom should be invisible if we scrolled to the
bottom
- [x] Implement downloading as a PDF
- [ ] Dynamically load privacy policy and PDF download link from
endpoint
- [x] Test case: If loading privacyPolicy fails then show button to open
up PDF version via web browser
- [ ] Opening TOC bottom sheet - bottom sheet should always open up to
about 3/4 of screen (currently only goes to fixed height i think,
ignoring screen size).
- [x] E/FA ( 3642): Name is too long. Type, maximum supported length,
name: event, 40,
ui_privacy_policy_text_scaling_factor_changed
- [x] Highlight Color of Dark-Mode Selector looks kinda weird (selected
item should still have same border, bad contrast in dark mode)
- [x] `14. Instance ID` subheadings (e.g. `Firebase Cloud Messaging`)
have to much space to the left ( subheadings of e.g. `8. Account,
Nickname und Passwort` are more on the left, like they should)
- [x] PDF download button doesn't work an Android
- [ ] Space beneath divider (all layouts?) 

![image](https://user-images.githubusercontent.com/29028262/206798888-ad0473f3-e185-4e89-b2f5-dff72324003f.png)
- [ ] Disabling the fade effect when scrolling to the end of the toc
heading list at the bottom is still quite abrupt
- [ ] If you reduce the width of the window the padding around the TOC
should be reduced until a "minumum" padding. After that width of the
main text should be reduced. If we have much space available we can have
more padding than the minumum padding for the TOC to make it look nicer.
- [ ] When opening the toc bottom sheet and one of the last sections /
chapters is currently read then the toc section list bounces inside the
bottom sheet.
- [ ] Open TOC button not vertically centered 

![image](https://user-images.githubusercontent.com/29028262/206799789-1e3252f9-5797-4f5b-88b8-fa4c6517640b.png)
- [ ] Widget test that no error is thrown on different layouts when
displaying privacy policy loading placeholder (also test download PDF is
not tappable?)
- [ ] Back button at the top should be at the very left in desktop
layout.
- [ ] Widget test for bottom sheet opening / choosing section / it
closing.
- [ ] Widget test in different layouts loading state (toc cant be opened
/ placeholder shown, etc).
- [ ] Test that the correct layouts appear in the different window sizes
- [ ] Delete code regarding loading privacy policy.
- [ ] Split up classes in `common.dart` into files.
- [ ] Divider on desktop layout not visible?
- [ ] "Datenschutzerklärung" heading is not always centered in desktop
layout.
- [ ] Remote Config value ("kill switch") that disables the internal
privacy policy parsing / display function and instead displays a button
/ dialog to open the privacy policy in a website / webview
- [ ] Replace "Akzeptieren" of the privacy policy in onboarding with
just "forward" (as "Akzeptieren" is wrong and might get us in legal
trouble)
- [x] Navigating to 5b. will highlight wrong subsection (next heading is
already in threshold.) We should scroll the selected to expactly the
threshold I guess?
- [ ] Should the metadata be included in the actual markdown legal
document or be added on the client so we can change the way of
presentation later?
- [ ] Document that files in cloud storage need metadata edited to be
directly downloaded instead of displayed in browser
- [ ] Think about if different expansion behaviors are really necessary
for mobile and desktop
- [x] Add loading state (`GrayShimmer`?). Disable buttons while loading.
- [x] Add loading error state (add button to go to website version of
privacy policy?).
- [ ] Add displaying / rendering error state.
- [x] This error came on mobile:
```
I/flutter (19159): ----------------FIREBASE CRASHLYTICS----------------
I/flutter (19159): Invalid argument(s): Can't find section with id information-ber-die-verarbeitung-personenbezogener-daten inside allSectionsFlattend ([inhaltsverzeichnis, 1-wichtige-begriffe, 2-geltungsbereich, 3-verantwortlichkeit-und-kontakt, 4-hosting-backend-infrastruktur-und-speicherort-fr-eure-daten, 5-deine-rechte, a-recht-auf-auskunft, b-recht-auf-berichtigung, c-recht-auf-lschung, d-recht-auf-einschrnkung-der-verarbeitung, e-recht-auf-widerspruch, f-recht-auf-widerruf, g-recht-auf-datenbertragbarkeit, h-recht-auf-beschwerde, 6-eure-kontaktaufnahme, 7-unser-umgang-mit-euren-daten, 8-account-nickname-und-passwort, a-registrierung-mittels-anonymen-accounts, b-registrierung-mit-e-mail-adresse--passwort-oder-googleapple-sign-in-ab-einem-alter-von-16-jahren-und-lter, 9-verarbeitung-der-ip-adresse, 10-speicherdauer-und-speicherfristen, 11-verarbeitung-des-gewhlten-account-typs-und-des-bundeslandes, 12-anonyme-statistische-auswertung-der-app-nutzung, 13-push-nachrichten, 14-instance-id, firebase-cloud-messaging, firebase-cr
I/flutter (19159): #0      _PrivacyPolicyViewport._computeCurrentlyRead
package:sharezone/…/table_of_contents/currently_reading.dart:147
I/flutter (19159): #1      _PrivacyPolicyViewport.currentlyReadSectionOrNull
package:sharezone/…/table_of_contents/currently_reading.dart:131
I/flutter (19159): #2      new CurrentlyReadingSectionController.<anonymous closure>
package:sharezone/…/table_of_contents/currently_reading.dart:64
I/flutter (19159): #3      ChangeNotifier.notifyListeners
package:flutter/…/foundation/change_notifier.dart:308
I/flutter (19159): #4      ValueNotifier.value=
package:flutter/…/foundation/change_notifier.dart:412
I/flutter (19159): #5      new DocumentSectionController.<anonymous closure>
package:sharezone/…/table_of_contents/table_of_contents_controller.dart:81
I/flutter (19159): #6      ChangeNotifier.notifyListeners
package:flutter/…/foundation/change_notifier.dart:308
I/flutter (19159): #7      ValueNotifier.value= (package:flu
I/flutter (19159): ----------------------------------------------------
```
- [ ] Text should be scrollable if your cursor is anywhere inside the
main text area. Not above the text.
- [ ] Integration/Widget tests that scroll the policy from start to
finish and ensures that all sections in the TOC get highlighted (in the
correct order)
- [ ] Add tickets for an automated testing pipeline:
        - If changes are made in the privacy policy display code
        - If a new privacy policy is written
(Should check all privacy policies with all versions of the privacy
policy display code)
- [ ] Separate privacy policy code in its own package? (For the purposes
above) --> Maybe even own repo because we might use it in the website as
well?
- [x] Appearance dialog settings apply to privacy policy page but not to
the dialog. If e.g. textScaling is changed the text inside the dialog
doesn't change, same for brightness (although the latter is correct if
you close and open the dialog again after changing it)
- [x] Fade-In Color for highlighted toc section looks weird in light
mode (starts with gray?)
- [x] Version should be somewhere in the text
- [x] Jump to section by clicking on the title, only expand it (no
jumping) by clicking on the arrow icon next to it.
- [x] Fix the closing animation (should close smoothly and not just
disappear)
- [ ] Future: Change languages
- [ ] Future: Compare versions
- [ ] Future: Definitions of word can be seen next to a defined word by
clicking on `?` symbol to the right of the word

Need Feedback on:
- [ ] Animation (duration) for expansion / collapse of section headings
in table of contents

Nice to have but not worth it right now (add as issues?):
- [ ] Add widget tests for expansion behavior change when changing
layouts (e.g. from desktop to tablet layout)

Stuff that doesn't work 100% as I want it but I can't or don't want to
fix:
* Desktop TOC bottom fade will not always be disabled when at the bottom
if a section expanded/collapses. (Scroll to bottom and expand and then
collapse a section. At first the fade will be disabled but after
expanding/collapsing it will be there altough it shouldn't be).

---------

Co-authored-by: Nils Reichardt <[email protected]>
github-merge-queue bot pushed a commit that referenced this pull request Sep 8, 2023
This PR fixes the following error:

```
_TypeError (type 'Null' is not a subtype of type 'String')
[log] #0      new Folder.fromData
folder.dart:69
#1      new FileSharingData.fromData.<anonymous closure>
filesharing_data.dart:49
#2      decodeMap.<anonymous closure>
helper_functions.dart:23
#3      MapBase.map (dart:collection/maps.dart:82:28)
#4      decodeMap
helper_functions.dart:23
#5      new FileSharingData.fromData
filesharing_data.dart:48
#6      FileSharingGateway.courseFoldersStream.<anonymous closure>.<anonymous closure>
file_sharing_api.dart:49
#7      MappedListIterable.elementAt (dart:_internal/iterable.dart:415:31)
#8      ListIterator.moveNext (dart:_internal/iterable.dart:344:26)
#9      new _GrowableList._ofEfficientLengthIterable (dart:core-patch/growable_array.dart:189:27)
#10     new _GrowableList.of (dart:core-patch/growable_array.dart:150:28)
#11     new List.of (dart:core-patch/array_patch.dart:47:28)
#12     ListIterable.toList (dart:_internal/iterable.dart:214:7)
#13     FileSharingGateway.courseFoldersStream.<anonymous closure>
```
nilsreichardt added a commit that referenced this pull request Sep 24, 2023
* ci: deploy website on every on `main`

* Update deploy.yml

* Update .github/workflows/deploy.yml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants