mirror of
https://github.com/wger-project/flutter.git
synced 2026-02-18 23:42:00 +01:00
Merge branch 'master' into yhm/issue-731
This commit is contained in:
34
.github/ISSUE_TEMPLATE/1_bug.md
vendored
34
.github/ISSUE_TEMPLATE/1_bug.md
vendored
@@ -1,34 +0,0 @@
|
||||
---
|
||||
name: I found a problem with wger
|
||||
about: While using wger the application crashes or throws an exception, a
|
||||
widget is buggy, or something looks wrong.
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
## Steps to Reproduce
|
||||
|
||||
<!-- Please include as many steps to reproduce so that we can replicate the problem. -->
|
||||
|
||||
1. ... <!-- describe how to reproduce the problem -->
|
||||
2. ...
|
||||
3. ...
|
||||
|
||||
**Expected results:** <!-- what did you expect to see? -->
|
||||
|
||||
**Actual results:** <!-- what did you see? -->
|
||||
|
||||
<details>
|
||||
<summary>Logs</summary>
|
||||
|
||||
<!--
|
||||
Any logs you think would be useful (if you have a local instance)
|
||||
-->
|
||||
|
||||
```
|
||||
```
|
||||
|
||||
|
||||
</details>
|
||||
53
.github/ISSUE_TEMPLATE/1_bug.yml
vendored
Normal file
53
.github/ISSUE_TEMPLATE/1_bug.yml
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms
|
||||
# https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema
|
||||
|
||||
name: Bug report
|
||||
description: Report an error or unexpected behavior
|
||||
type: bug
|
||||
body:
|
||||
- type: dropdown
|
||||
id: priority
|
||||
attributes:
|
||||
label: Priority/Impact
|
||||
description: How severe is the issue?
|
||||
options:
|
||||
- Low (minor inconvenience)
|
||||
- Medium (affects some functionality)
|
||||
- High (critical issue, blocks workflow)
|
||||
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: |
|
||||
A clear and concise description of the bug.
|
||||
placeholder: |
|
||||
Please include any information you think is relevant to the issue you are experiencing.
|
||||
This could include any steps to reproduce it (if it happens consistently), expected vs.
|
||||
actual behavior, logs, screenshots, links to related issues, etc.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: server-version
|
||||
attributes:
|
||||
label: Server version
|
||||
description: |
|
||||
What version of wger are you using and how did you install it (you use our server,
|
||||
docker compose, manual installation, etc)?
|
||||
placeholder: |
|
||||
Check https://<server>/software/about-us or the git sha1 of the last commit you pulled
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: input
|
||||
id: app-version
|
||||
attributes:
|
||||
label: Mobile app version
|
||||
description: |
|
||||
What version of the mobile app are you using and how did you install it
|
||||
(Play Store, App Store, Flathub, self compiled, etc.)?
|
||||
placeholder: |
|
||||
Check the "about wger" dialog
|
||||
validations:
|
||||
required: false
|
||||
26
.github/ISSUE_TEMPLATE/2_feature_request.md
vendored
26
.github/ISSUE_TEMPLATE/2_feature_request.md
vendored
@@ -1,26 +0,0 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest a new idea for wger.
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
## Use case
|
||||
|
||||
<!--
|
||||
Please tell us the problem you are running into that led to you wanting
|
||||
a new feature.
|
||||
|
||||
Is your feature request related to a problem? Please give a clear and
|
||||
concise description of what the problem is.
|
||||
-->
|
||||
|
||||
## Proposal
|
||||
|
||||
<!--
|
||||
Briefly but precisely describe what you would like wger to be able to do.
|
||||
|
||||
Consider attaching images showing what you are imagining.
|
||||
-->
|
||||
33
.github/ISSUE_TEMPLATE/2_feature_request.yml
vendored
Normal file
33
.github/ISSUE_TEMPLATE/2_feature_request.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
name: Feature request
|
||||
description: Suggest a new idea for wger
|
||||
type: enhancement
|
||||
body:
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Use case
|
||||
description: |
|
||||
A description of what new feature or behavior you would like to see.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: proposal
|
||||
attributes:
|
||||
label: Proposal
|
||||
description: |
|
||||
Why is this feature needed? What problems does it solve?
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
id: additional-context
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: |
|
||||
Any extra details, related issues, or mockups
|
||||
placeholder: |
|
||||
Screenshots or mockups, links to similar features in other applications, or other relevant
|
||||
information.
|
||||
validations:
|
||||
required: false
|
||||
22
.github/pull_request_template.md
vendored
22
.github/pull_request_template.md
vendored
@@ -1,25 +1,17 @@
|
||||
## Description (Proposed Changes)
|
||||
(Please try to mention in bullet points.)
|
||||
# Proposed Changes
|
||||
|
||||
-
|
||||
-
|
||||
|
||||
## Link to the issue :
|
||||
## Related Issue(s)
|
||||
|
||||
(Add link of the issue you have proposed changes to)
|
||||
If applicable, please link to any related issues (`Closes #123`,
|
||||
`Closes wger-project/other-repo#123`, `See also #123`, etc.)
|
||||
|
||||
- Link :
|
||||
## Please check that the PR fulfills these requirements
|
||||
|
||||
## Tests
|
||||
|
||||
Please make sure to add tests when implementing new features.
|
||||
|
||||
## Checklist
|
||||
|
||||
Please check that the PR fulfills all requirements listed below by checking the relevant checkboxes (`[x]`). This will ensure a smooth and quick review process.
|
||||
|
||||
- [ ] Set a 100 character limit in your editor/IDE to avoid white space diffs in the PR
|
||||
- [ ] Tests for the changes have been added (for bug fixes / features)
|
||||
- [ ] Added yourself to AUTHORS.md
|
||||
- [ ] Set a 100 character limit in your editor/IDE to avoid white space diffs in the PR
|
||||
(run `dart format --line-length=100 .`)
|
||||
- [ ] Updated/added relevant documentation (doc comments with `///`).
|
||||
- [ ] Added relevant reviewers.
|
||||
|
||||
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
@@ -35,6 +35,6 @@ jobs:
|
||||
run: flutter test --coverage
|
||||
|
||||
- name: Coveralls
|
||||
uses: coverallsapp/github-action@master
|
||||
uses: coverallsapp/github-action@v2
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
389
AUTHORS.md
389
AUTHORS.md
@@ -1,85 +1,350 @@
|
||||
# Authors
|
||||
# Contributors and translators to this repository
|
||||
|
||||
## Developers
|
||||
Thank you all for contributing to the project, you are true heroes! 🫶
|
||||
|
||||
- Jigar Prajapati - <https://github.com/Jiggy9>
|
||||
- Roland Geider – <https://github.com/rolandgeider>
|
||||
- Dylan Aird - <https://github.com/Dolaned>
|
||||
- Jannik Norden - <https://github.com/Jannik-dev>
|
||||
- Arun Muralidharan - <https://github.com/arun-muralidharan>
|
||||
- Khushbu Bora - <https://github.com/KhushbuBora>
|
||||
- Patrick Witter - <https://github.com/patrickwitter>
|
||||
- Tomer Ben-Rachel - <https://github.com/tomerpacific>
|
||||
- Thilina Herath - <https://github.com/ThilinaTCH>
|
||||
- Marko Milosevic - <https://github.com/TaarnStar>
|
||||
- Karthik Reddy (Axel) - <https://github.com/AxelBlaz3>
|
||||
- Ogundoyin Toluwani - <https://github.com/Tolu007>
|
||||
- Nenza Nurfirmansyah - <https://github.com/nenzan>
|
||||
- Florian Schmitz - <https://github.com/floodoo>
|
||||
- Adam Bujdoš - <https://github.com/bujdy>
|
||||
- Aman Negi - <https://github.com/AmanNegi>
|
||||
- Sandi Milohanic - <https://github.com/sandimilohanic>
|
||||
- Miroslav Mazel - <https://gitlab.com/12people>
|
||||
- artchiee - <https://github.com/artchiee>
|
||||
- Tejas Bir Singh - <https://github.com/tejasbirsingh>
|
||||
- Abhishek Saini - <https://github.com/Abhisheksainii>
|
||||
- Hanaa Allohibi - <https://github.com/hn-n>
|
||||
- Shey Alnasrawi - <https://github.com/Milksheyke>
|
||||
- Costas Korai - <https://github.com/watcher6280>
|
||||
- Bassam Mutairi - <https://github.com/mutairibassam>
|
||||
- Dieter Plaetinck - <https://github.com/Dieterbe>
|
||||
- Dennis van Peer - <https://github.com/Denpeer>
|
||||
- sizzlesloth - <https://github.com/sizzlesloth>
|
||||
- Arya Singh - <https://github.com/ARYPROGRAMMER>
|
||||
- Xianglin Zeng - <https://github.com/FutureYL3>
|
||||
- Sangharsh Sulke - <https://github.com/Sangharshdeveloper>
|
||||
- Yashas H Majmudar - <https://github.com/yashas-hm>
|
||||
## Contributors
|
||||
|
||||
- thisisyoussef - [https://github.com/thisisyoussef](https://github.com/thisisyoussef)
|
||||
- Roland Geider - [https://github.com/rolandgeider](https://github.com/rolandgeider)
|
||||
- Yashas H Majmudar - [https://github.com/yashas-hm](https://github.com/yashas-hm)
|
||||
- Github-actions - [https://github.com/invalid-email-address](https://github.com/invalid-email-address)
|
||||
- Christijan - [https://github.com/ChrispyM](https://github.com/ChrispyM)
|
||||
- Jackpkn - [https://github.com/Jackpkn](https://github.com/Jackpkn)
|
||||
- sangharshdeveloper - [https://github.com/Sangharshdeveloper](https://github.com/Sangharshdeveloper)
|
||||
- ImgBotApp - [https://github.com/ImgBotApp](https://github.com/ImgBotApp)
|
||||
- தமிழ்நேரம் - [https://github.com/TamilNeram](https://github.com/TamilNeram)
|
||||
- Xianglin Zeng - [https://github.com/FutureYL3](https://github.com/FutureYL3)
|
||||
- Arya Pratap Singh - [https://github.com/ARYPROGRAMMER](https://github.com/ARYPROGRAMMER)
|
||||
- ARYPROGRAMMER - [https://github.com/ARYPROGRAMMER](https://github.com/ARYPROGRAMMER)
|
||||
- Dieter Plaetinck - [https://github.com/Dieterbe](https://github.com/Dieterbe)
|
||||
- szalas - [https://github.com/szalas](https://github.com/szalas)
|
||||
- dan - [https://github.com/sizzlesloth](https://github.com/sizzlesloth)
|
||||
- DVPeer - [https://github.com/Denpeer](https://github.com/Denpeer)
|
||||
- Marco Rimoldi - [https://github.com/marcor](https://github.com/marcor)
|
||||
- Licaon_Kter - [https://github.com/licaon-kter](https://github.com/licaon-kter)
|
||||
- Bassam A - [https://github.com/mutairibassam](https://github.com/mutairibassam)
|
||||
- Costas Korai
|
||||
- null - [https://github.com/hn-n](https://github.com/hn-n)
|
||||
- Miroslav Mazel
|
||||
- Milksheyke - [https://github.com/sheyaln](https://github.com/sheyaln)
|
||||
- Abhishek Saini - [https://github.com/Abhisheksainii](https://github.com/Abhisheksainii)
|
||||
- dimii27 - [https://github.com/dimii27](https://github.com/dimii27)
|
||||
- Antonis-geo - [https://github.com/Antonis-geo](https://github.com/Antonis-geo)
|
||||
- artchiee - [https://github.com/artchiee](https://github.com/artchiee)
|
||||
- artchiee - [https://github.com/artchiee](https://github.com/artchiee)
|
||||
- Jigar Prajapati - [https://github.com/Jiggy9](https://github.com/Jiggy9)
|
||||
- Dalton Scavassa
|
||||
- Jigar - [https://github.com/Jiggy9](https://github.com/Jiggy9)
|
||||
- Deepanshu - [https://github.com/Deepanshu-Sharma-18](https://github.com/Deepanshu-Sharma-18)
|
||||
- tejasbirsingh - [https://github.com/tejasbirsingh](https://github.com/tejasbirsingh)
|
||||
- Freddy Cunningham - [https://github.com/freddy-c](https://github.com/freddy-c)
|
||||
- Freddy Cunningham - [https://github.com/freddy-c](https://github.com/freddy-c)
|
||||
- Malay Pandit - [https://github.com/DeveloperMalay](https://github.com/DeveloperMalay)
|
||||
- Mirek Mazel - [https://github.com/12people](https://github.com/12people)
|
||||
- Miroslav Mazel
|
||||
- Roman Kalivoda - [https://github.com/RKCZ](https://github.com/RKCZ)
|
||||
- Tiisetso Dinoko - [https://github.com/Dinokojt7](https://github.com/Dinokojt7)
|
||||
- Harshit - [https://github.com/Harshit933](https://github.com/Harshit933)
|
||||
- Harshit - [https://github.com/Harshit933](https://github.com/Harshit933)
|
||||
- Raman Tank - [https://github.com/raman04-byte](https://github.com/raman04-byte)
|
||||
- Mohammad Rafigh - [https://github.com/mohammadrafigh](https://github.com/mohammadrafigh)
|
||||
- Edmundo Meyer - [https://github.com/e-meyer](https://github.com/e-meyer)
|
||||
- Bujdy - [https://github.com/bujdy](https://github.com/bujdy)
|
||||
- amannegi - [https://github.com/AmanNegi](https://github.com/AmanNegi)
|
||||
- Aman Negi - [https://github.com/AmanNegi](https://github.com/AmanNegi)
|
||||
- Aaliya Ali - [https://github.com/Aaliya-Ali](https://github.com/Aaliya-Ali)
|
||||
- Aaliya Ali - [https://github.com/Aaliya-Ali](https://github.com/Aaliya-Ali)
|
||||
- Sandi Milohanic
|
||||
- Hissabat Manager - [https://github.com/Chinguetti-Quizz](https://github.com/Chinguetti-Quizz)
|
||||
- Nenza Nurfirmansyah - [https://github.com/nenzan](https://github.com/nenzan)
|
||||
- Vinod - [https://github.com/skdotv](https://github.com/skdotv)
|
||||
- Aditya - [https://github.com/adeeteya](https://github.com/adeeteya)
|
||||
- JustinBenito - [https://github.com/JustinBenito](https://github.com/JustinBenito)
|
||||
- Florian Schmitz - [https://github.com/floodoo](https://github.com/floodoo)
|
||||
- avinash - [https://github.com/HeyAvi](https://github.com/HeyAvi)
|
||||
- Tolu ogundoyin - [https://github.com/Tolu007](https://github.com/Tolu007)
|
||||
- Daniil Kovalev - [https://github.com/kovdan01](https://github.com/kovdan01)
|
||||
- Saint Gabriel - [https://github.com/saintgabriel0](https://github.com/saintgabriel0)
|
||||
- Artem - [https://github.com/defaultpage](https://github.com/defaultpage)
|
||||
- WMs784 - [https://github.com/WMs784](https://github.com/WMs784)
|
||||
- KenXRan - [https://github.com/kenxran](https://github.com/kenxran)
|
||||
- João Goulart - [https://github.com/usehalter](https://github.com/usehalter)
|
||||
- yaseenagwan - [https://github.com/agwanyaseen](https://github.com/agwanyaseen)
|
||||
- G. Buendía - [https://github.com/gbuendia](https://github.com/gbuendia)
|
||||
- Sylvia van Os - [https://github.com/TheLastProject](https://github.com/TheLastProject)
|
||||
- Debayan Sutradhar - [https://github.com/rnayabed](https://github.com/rnayabed)
|
||||
- Poussinou - [https://github.com/Poussinou](https://github.com/Poussinou)
|
||||
- Nikita Epifanov
|
||||
- Ady - [https://github.com/adyhnat](https://github.com/adyhnat)
|
||||
- Adrian Halko
|
||||
- Tomáš Konkoľ - [https://github.com/TomasKonkol](https://github.com/TomasKonkol)
|
||||
- Marko Milosevic - [https://github.com/TaarnStar](https://github.com/TaarnStar)
|
||||
- Sandi Milohanić - [https://github.com/sandimilohanic](https://github.com/sandimilohanic)
|
||||
- AxelBlaz3 - [https://github.com/AxelBlaz3](https://github.com/AxelBlaz3)
|
||||
- Marvin M - [https://github.com/M123-dev](https://github.com/M123-dev)
|
||||
- himikat89 - [https://github.com/himikat89](https://github.com/himikat89)
|
||||
- infiniteoverflow - [https://github.com/infiniteoverflow](https://github.com/infiniteoverflow)
|
||||
- Tomer Ben Rachel - [https://github.com/TomerPacific](https://github.com/TomerPacific)
|
||||
- Thilina TCH - [https://github.com/ThilinaTCH](https://github.com/ThilinaTCH)
|
||||
- Thilina Herath - [https://github.com/thilinatnt](https://github.com/thilinatnt)
|
||||
- ToldYouThat
|
||||
- Yair Chen - [https://github.com/chenyair](https://github.com/chenyair)
|
||||
- henok3878 - [https://github.com/henok3878](https://github.com/henok3878)
|
||||
- Patrick Witter - [https://github.com/patrickwitter](https://github.com/patrickwitter)
|
||||
- ton-An - [https://github.com/ton-An](https://github.com/ton-An)
|
||||
- Prakash Shekhar - [https://github.com/prakash-shekhar](https://github.com/prakash-shekhar)
|
||||
- Khushbu Bora - [https://github.com/KhushbuBora](https://github.com/KhushbuBora)
|
||||
- Arun Muralidharan - [https://github.com/arun-muralidharan](https://github.com/arun-muralidharan)
|
||||
- yiter
|
||||
- Henio Szewczyk - [https://github.com/hszewczyk](https://github.com/hszewczyk)
|
||||
- Jannik Norden
|
||||
- Allan Nordhøy - [https://github.com/comradekingu](https://github.com/comradekingu)
|
||||
- Stefano Rossi - [https://github.com/stefanorossiti](https://github.com/stefanorossiti)
|
||||
- Dylan Aird - [https://github.com/Dolaned](https://github.com/Dolaned)
|
||||
|
||||
## Translators
|
||||
|
||||
- Saudi Arabian
|
||||
- Hanaa Allohibi <Gmail: programmerHanaa>
|
||||
|
||||
- German
|
||||
### Chinese (Traditional Han script)
|
||||
|
||||
- mondstern <mondstern@snopyta.org> (2)
|
||||
- J. Lavoie <j.lavoie@net-c.ca> (19)
|
||||
- Roland Geider <roland@geider.net> (142)
|
||||
- Peter Dave Hello - [https://github.com/PeterDaveHello](https://github.com/PeterDaveHello)
|
||||
|
||||
- English
|
||||
### Polish
|
||||
|
||||
- Roland Geider <roland@geider.net> (3)
|
||||
- Allan Nordhøy <epost@anotheragency.no> (8)
|
||||
- Karol Solecki - [https://github.com/karolsol](https://github.com/karolsol)
|
||||
- Piotr Strebski - [https://github.com/strebski](https://github.com/strebski)
|
||||
- Dawid Panyło
|
||||
- Anonymous - [https://github.com/weblate](https://github.com/weblate)
|
||||
- Marcin Schoenknecht
|
||||
- Patryk - [https://github.com/byakurau](https://github.com/byakurau)
|
||||
- Michał Homza - [https://github.com/HagiaHaya](https://github.com/HagiaHaya)
|
||||
- Jacob - [https://github.com/devzom](https://github.com/devzom)
|
||||
|
||||
- Italian
|
||||
### Serbian
|
||||
|
||||
- mondstern <mondstern@snopyta.org> (2)
|
||||
- DT <semperpeppe@tracciabi.li> (4)
|
||||
- J. Lavoie <j.lavoie@net-c.ca> (24)
|
||||
- Stefano Rossi <stefanorossi.ti@gmail.com> (120)
|
||||
- Mladen Trišić - [https://github.com/mtrisic](https://github.com/mtrisic)
|
||||
|
||||
- Spanish
|
||||
### Dutch
|
||||
|
||||
- Roland Geider <roland@geider.net> (1)
|
||||
- martingetzel <martingetzel@gmail.com> (119)
|
||||
- Joey Haalboom - [https://github.com/JoeyHaalboom](https://github.com/JoeyHaalboom)
|
||||
|
||||
- French
|
||||
### Russian
|
||||
|
||||
- J. Lavoie <j.lavoie@net-c.ca> (92)
|
||||
- Stefano Rossi <stefanorossi.ti@gmail.com> (94)
|
||||
- Алексей Курышко - [https://github.com/alexkuryshko](https://github.com/alexkuryshko)
|
||||
- lightningcpu - [https://github.com/lightningcpu](https://github.com/lightningcpu)
|
||||
- Кирилл Александрович Злобин - [https://github.com/gungstarbeiter](https://github.com/gungstarbeiter)
|
||||
- Ivan Katkov - [https://github.com/Porphyrion](https://github.com/Porphyrion)
|
||||
- Nikita Epifanov
|
||||
|
||||
- Norwegian Bokmål
|
||||
### Croatian
|
||||
|
||||
- Allan Nordhøy <epost@anotheragency.no> (98)
|
||||
- Milo Ivir - [https://github.com/milotype](https://github.com/milotype)
|
||||
- Roland Geider - [https://github.com/rolandgeider](https://github.com/rolandgeider)
|
||||
- SMilohanic - [https://github.com/sandimilohanic](https://github.com/sandimilohanic)
|
||||
|
||||
- Japanese
|
||||
### Portuguese
|
||||
|
||||
- Kosei TANAKA <wms784.app@gmail.com> (97)
|
||||
- Edson Wolf - [https://github.com/edsonblwolf](https://github.com/edsonblwolf)
|
||||
- Anonymous - [https://github.com/weblate](https://github.com/weblate)
|
||||
- Wilton Rodrigues
|
||||
- Guilherme Salomão - [https://github.com/salomaoparkour](https://github.com/salomaoparkour)
|
||||
- Bruno de Moura - [https://github.com/bruunomooura](https://github.com/bruunomooura)
|
||||
- Dalton Scavassa
|
||||
- Stefan Taiguara - [https://github.com/Teitei011](https://github.com/Teitei011)
|
||||
- Eduardo Menges Mattje - [https://github.com/EduMenges](https://github.com/EduMenges)
|
||||
- Edu Cavalheiro - [https://github.com/EduCavalheiro](https://github.com/EduCavalheiro)
|
||||
- João Goulart - [https://github.com/usehalter](https://github.com/usehalter)
|
||||
|
||||
- Bahasa Indonesia
|
||||
### Italian
|
||||
|
||||
- Nenza Nurfirmansyah <nnurfirmansyah@gmail.com> (73)
|
||||
- Antenore Gatta - [https://github.com/antenore](https://github.com/antenore)
|
||||
- Gab Gat
|
||||
- Anonymous - [https://github.com/weblate](https://github.com/weblate)
|
||||
- Federico Pierantoni - [https://github.com/F3FFO](https://github.com/F3FFO)
|
||||
- oarion - [https://github.com/oarion](https://github.com/oarion)
|
||||
- Alessandro Faucci - [https://github.com/Dhy19971](https://github.com/Dhy19971)
|
||||
- Sfizio Purea
|
||||
- Mirko Ferrati - [https://github.com/MirkoFerrati](https://github.com/MirkoFerrati)
|
||||
- Stefano Camillo - [https://github.com/djste](https://github.com/djste)
|
||||
- MARCO ACORTE - [https://github.com/marco-acorte](https://github.com/marco-acorte)
|
||||
- J. Lavoie
|
||||
- DT
|
||||
- mondstern
|
||||
- Stefano Rossi - [https://github.com/stefanorossiti](https://github.com/stefanorossiti)
|
||||
|
||||
- Croatian
|
||||
### French
|
||||
|
||||
- Sandi Milohaic <sandi.milohanic@gmail.com>
|
||||
- William - [https://github.com/WilliamR312](https://github.com/WilliamR312)
|
||||
- florent4014 - [https://github.com/florent4014](https://github.com/florent4014)
|
||||
- Anonymous - [https://github.com/weblate](https://github.com/weblate)
|
||||
- Xav Basco
|
||||
- David Olewski - [https://github.com/Arigowin](https://github.com/Arigowin)
|
||||
- yoyomax80400 - [https://github.com/yoyomax80400](https://github.com/yoyomax80400)
|
||||
- loued - [https://github.com/Loued](https://github.com/Loued)
|
||||
- Célian
|
||||
- MrSniikyz - [https://github.com/BabyGeek](https://github.com/BabyGeek)
|
||||
- Roland Geider - [https://github.com/rolandgeider](https://github.com/rolandgeider)
|
||||
- J. Lavoie
|
||||
- Antoine Vibien - [https://github.com/r1llettes](https://github.com/r1llettes)
|
||||
- Stefano Rossi - [https://github.com/stefanorossiti](https://github.com/stefanorossiti)
|
||||
|
||||
### Ukrainian
|
||||
|
||||
- Максим Горпиніч - [https://github.com/Maksim2005UA](https://github.com/Maksim2005UA)
|
||||
- Roland Geider - [https://github.com/rolandgeider](https://github.com/rolandgeider)
|
||||
- Максим Горпиніч
|
||||
- Anonymous - [https://github.com/weblate](https://github.com/weblate)
|
||||
- Dan - [https://github.com/Kefir2105](https://github.com/Kefir2105)
|
||||
- Dan
|
||||
- Tymofii Lytvynenko
|
||||
- Artem - [https://github.com/defaultpage](https://github.com/defaultpage)
|
||||
|
||||
### Portuguese (Brazil)
|
||||
|
||||
- Ricardo Lima - [https://github.com/rhrlima](https://github.com/rhrlima)
|
||||
- Clerton Araujo - [https://github.com/clertonraf](https://github.com/clertonraf)
|
||||
- Anonymous - [https://github.com/weblate](https://github.com/weblate)
|
||||
- Wilton Rodrigues
|
||||
- Nao interessa
|
||||
- Lucas Mezêncio - [https://github.com/lucasmezencio](https://github.com/lucasmezencio)
|
||||
- Felipe Antônio Rodrigues Cardoso
|
||||
- Luigi Henrick Feitoza Silva - [https://github.com/luigihenrick](https://github.com/luigihenrick)
|
||||
- João Hortêncio Moraes - [https://github.com/joaohortencio](https://github.com/joaohortencio)
|
||||
|
||||
### Tamil
|
||||
|
||||
- தமிழ்நேரம் - [https://github.com/TamilNeram](https://github.com/TamilNeram)
|
||||
|
||||
### Chinese (Simplified Han script)
|
||||
|
||||
- Herb Huang
|
||||
|
||||
### Hindi
|
||||
|
||||
- pavan arun bagwe - [https://github.com/pavanb0](https://github.com/pavanb0)
|
||||
- Anonymous - [https://github.com/weblate](https://github.com/weblate)
|
||||
- Debayan Sutradhar - [https://github.com/rnayabed](https://github.com/rnayabed)
|
||||
|
||||
### Turkish
|
||||
|
||||
- Oğuz Ersen - [https://github.com/oersen](https://github.com/oersen)
|
||||
- Roland Geider - [https://github.com/rolandgeider](https://github.com/rolandgeider)
|
||||
- Cem Avcı - [https://github.com/cem256](https://github.com/cem256)
|
||||
- Oğuz Ersen
|
||||
- Cenk Cidecio - [https://github.com/ccidecio](https://github.com/ccidecio)
|
||||
- ToldYouThat
|
||||
|
||||
### German
|
||||
|
||||
- kvnrmnn - [https://github.com/rmnn92](https://github.com/rmnn92)
|
||||
- Anonymous - [https://github.com/weblate](https://github.com/weblate)
|
||||
- Roland Geider - [https://github.com/rolandgeider](https://github.com/rolandgeider)
|
||||
- Victor Jouhoff - [https://github.com/jouhoffv](https://github.com/jouhoffv)
|
||||
- m4skedbyte
|
||||
- Axel Steinbrecher
|
||||
- Christoph Suesser - [https://github.com/TheFitzZZ](https://github.com/TheFitzZZ)
|
||||
- Luis Lüscher - [https://github.com/lslschr](https://github.com/lslschr)
|
||||
- mondstern
|
||||
- J. Lavoie
|
||||
- Marvin M - [https://github.com/M123-dev](https://github.com/M123-dev)
|
||||
- Lydia
|
||||
- Allan Nordhøy - [https://github.com/comradekingu](https://github.com/comradekingu)
|
||||
|
||||
### Indonesian
|
||||
|
||||
- aryakdaniswara - [https://github.com/aryakdaniswara](https://github.com/aryakdaniswara)
|
||||
- Anonymous - [https://github.com/weblate](https://github.com/weblate)
|
||||
- Debi Maulana Ahsan Halla
|
||||
- Roland Geider - [https://github.com/rolandgeider](https://github.com/rolandgeider)
|
||||
|
||||
### Catalan
|
||||
|
||||
- Zixu Sun - [https://github.com/ziixu](https://github.com/ziixu)
|
||||
- Anonymous - [https://github.com/weblate](https://github.com/weblate)
|
||||
- guillem - [https://github.com/gbuendia](https://github.com/gbuendia)
|
||||
|
||||
### Chinese (Simplified)
|
||||
|
||||
- 纪颖志 - [https://github.com/jiyingzhi](https://github.com/jiyingzhi)
|
||||
- Yi-Han Hsiung - [https://github.com/AaronHsiung](https://github.com/AaronHsiung)
|
||||
- Tsz Hong CHAN - [https://github.com/tomyan112](https://github.com/tomyan112)
|
||||
- Eddie Tang - [https://github.com/EDED2314](https://github.com/EDED2314)
|
||||
- Jing - [https://github.com/jingcheng16](https://github.com/jingcheng16)
|
||||
- sr-c - [https://github.com/sr-c](https://github.com/sr-c)
|
||||
- tony - [https://github.com/tonyxxliu](https://github.com/tonyxxliu)
|
||||
- yiter
|
||||
|
||||
### Greek
|
||||
|
||||
- Dimitrys Meliates
|
||||
- Antonis-geo - [https://github.com/Antonis-geo](https://github.com/Antonis-geo)
|
||||
|
||||
### Czech
|
||||
|
||||
- Fjuro - [https://github.com/Fjuro](https://github.com/Fjuro)
|
||||
- Fjuro
|
||||
- CaptainDolphy - [https://github.com/CaptainDolphy](https://github.com/CaptainDolphy)
|
||||
- Roman Kalivoda - [https://github.com/RKCZ](https://github.com/RKCZ)
|
||||
|
||||
### Arabic
|
||||
|
||||
- Anonymous - [https://github.com/weblate](https://github.com/weblate)
|
||||
- Hanaa - [https://github.com/hn-n](https://github.com/hn-n)
|
||||
- Ahmed zein - [https://github.com/Ahmed-Zein](https://github.com/Ahmed-Zein)
|
||||
|
||||
### Hebrew
|
||||
|
||||
- Anonymous - [https://github.com/weblate](https://github.com/weblate)
|
||||
- n,rdo
|
||||
- Tomer Ben Rachel - [https://github.com/TomerPacific](https://github.com/TomerPacific)
|
||||
|
||||
### Japanese
|
||||
|
||||
- Anonymous - [https://github.com/weblate](https://github.com/weblate)
|
||||
- Tsz Hong CHAN - [https://github.com/tomyan112](https://github.com/tomyan112)
|
||||
- sasukeiscool - [https://github.com/sasukeiscool](https://github.com/sasukeiscool)
|
||||
- yiter
|
||||
|
||||
### Spanish
|
||||
|
||||
- Anonymous - [https://github.com/weblate](https://github.com/weblate)
|
||||
- Roberto Iglesias - [https://github.com/iglesiasroberto14](https://github.com/iglesiasroberto14)
|
||||
- c06c3abb8f
|
||||
- Javier - [https://github.com/dysk0zero](https://github.com/dysk0zero)
|
||||
- facu-d - [https://github.com/facu-d](https://github.com/facu-d)
|
||||
- Biologia Libros - [https://github.com/bio201922](https://github.com/bio201922)
|
||||
- guillem - [https://github.com/gbuendia](https://github.com/gbuendia)
|
||||
- Chris Klempau - [https://github.com/yoinkers1337](https://github.com/yoinkers1337)
|
||||
- Roland Geider - [https://github.com/rolandgeider](https://github.com/rolandgeider)
|
||||
- martingetzel - [https://github.com/martingetzel](https://github.com/martingetzel)
|
||||
|
||||
### Chinese (Traditional)
|
||||
|
||||
- hugoalh
|
||||
- Tsz Hong CHAN - [https://github.com/tomyan112](https://github.com/tomyan112)
|
||||
- Chung-Wei Chung - [https://github.com/webb790709](https://github.com/webb790709)
|
||||
- HY Cheng
|
||||
|
||||
### Portuguese (Portugal)
|
||||
|
||||
- Anonymous - [https://github.com/weblate](https://github.com/weblate)
|
||||
|
||||
### Romanian
|
||||
|
||||
- Bogdan Bujor - [https://github.com/qSharpy](https://github.com/qSharpy)
|
||||
- dimii27 - [https://github.com/dimii27](https://github.com/dimii27)
|
||||
|
||||
### English
|
||||
|
||||
- guillem - [https://github.com/gbuendia](https://github.com/gbuendia)
|
||||
- Allan Nordhøy - [https://github.com/comradekingu](https://github.com/comradekingu)
|
||||
- Roland Geider - [https://github.com/rolandgeider](https://github.com/rolandgeider)
|
||||
|
||||
### Norwegian Bokmål
|
||||
|
||||
- Roland Geider - [https://github.com/rolandgeider](https://github.com/rolandgeider)
|
||||
- Allan Nordhøy - [https://github.com/comradekingu](https://github.com/comradekingu)
|
||||
|
||||
### Amharic
|
||||
|
||||
- henok3878 - [https://github.com/henok3878](https://github.com/henok3878)
|
||||
|
||||
29
README.md
29
README.md
@@ -24,20 +24,33 @@ height="80">](https://play.google.com/store/apps/details?id=de.wger.flutter)
|
||||
alt="Get it on F-Droid"
|
||||
height="80">](https://f-droid.org/packages/de.wger.flutter/)
|
||||
|
||||
## Development
|
||||
## Developing and contributing
|
||||
|
||||
This is a regular flutter application, so you basically just run `flutter run` in
|
||||
the root directory of the project, and optionally use the test server to login
|
||||
(the db is reset daily):
|
||||
Our goal is to build an awesome and flexible fitness and nutrition manager,
|
||||
along with a comprehensive list of exercises and ingredients, all released
|
||||
under a free license.
|
||||
|
||||
For this, we’d love your help! Whether it’s code, translations, exercises or
|
||||
reporting issues and ideas, check out our
|
||||
[contribution guide](https://wger.readthedocs.io/en/latest/contributing.html)
|
||||
to get started.
|
||||
|
||||
A huge thank you to everyone who has contributed so far! ❤️ See the full list
|
||||
in [AUTHORS.md](AUTHORS.md).
|
||||
|
||||
**TLDR**
|
||||
|
||||
```bash
|
||||
flutter run
|
||||
```
|
||||
|
||||
This is a regular flutter application, so there's no magic. You will need a backend
|
||||
for this, so feel free to use the test server for this (the db is reset daily):
|
||||
|
||||
* URL: `https://wger-master.rge.uber.space`
|
||||
* username: `user`
|
||||
* password: `flutteruser`
|
||||
|
||||
For more information consult the development documentation:
|
||||
|
||||
<https://wger.readthedocs.io/en/latest/development/mobile_app.html>
|
||||
|
||||
## Translation
|
||||
|
||||
Translate the app to your language on [Weblate](https://hosted.weblate.org/engage/wger/).
|
||||
|
||||
@@ -2,8 +2,6 @@ PODS:
|
||||
- camera_avfoundation (0.0.1):
|
||||
- Flutter
|
||||
- Flutter (1.0.0)
|
||||
- flutter_barcode_scanner (2.0.0):
|
||||
- Flutter
|
||||
- flutter_keyboard_visibility (0.0.1):
|
||||
- Flutter
|
||||
- flutter_zxing (0.0.1):
|
||||
@@ -24,23 +22,26 @@ PODS:
|
||||
- shared_preferences_foundation (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- sqlite3 (3.48.0):
|
||||
- sqlite3/common (= 3.48.0)
|
||||
- sqlite3/common (3.48.0)
|
||||
- sqlite3/dbstatvtab (3.48.0):
|
||||
- sqlite3 (3.49.1):
|
||||
- sqlite3/common (= 3.49.1)
|
||||
- sqlite3/common (3.49.1)
|
||||
- sqlite3/dbstatvtab (3.49.1):
|
||||
- sqlite3/common
|
||||
- sqlite3/fts5 (3.48.0):
|
||||
- sqlite3/fts5 (3.49.1):
|
||||
- sqlite3/common
|
||||
- sqlite3/perf-threadsafe (3.48.0):
|
||||
- sqlite3/math (3.49.1):
|
||||
- sqlite3/common
|
||||
- sqlite3/rtree (3.48.0):
|
||||
- sqlite3/perf-threadsafe (3.49.1):
|
||||
- sqlite3/common
|
||||
- sqlite3/rtree (3.49.1):
|
||||
- sqlite3/common
|
||||
- sqlite3_flutter_libs (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- sqlite3 (~> 3.48.0)
|
||||
- sqlite3 (~> 3.49.1)
|
||||
- sqlite3/dbstatvtab
|
||||
- sqlite3/fts5
|
||||
- sqlite3/math
|
||||
- sqlite3/perf-threadsafe
|
||||
- sqlite3/rtree
|
||||
- url_launcher_ios (0.0.1):
|
||||
@@ -52,7 +53,6 @@ PODS:
|
||||
DEPENDENCIES:
|
||||
- camera_avfoundation (from `.symlinks/plugins/camera_avfoundation/ios`)
|
||||
- Flutter (from `Flutter`)
|
||||
- flutter_barcode_scanner (from `.symlinks/plugins/flutter_barcode_scanner/ios`)
|
||||
- flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`)
|
||||
- flutter_zxing (from `.symlinks/plugins/flutter_zxing/ios`)
|
||||
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
|
||||
@@ -75,8 +75,6 @@ EXTERNAL SOURCES:
|
||||
:path: ".symlinks/plugins/camera_avfoundation/ios"
|
||||
Flutter:
|
||||
:path: Flutter
|
||||
flutter_barcode_scanner:
|
||||
:path: ".symlinks/plugins/flutter_barcode_scanner/ios"
|
||||
flutter_keyboard_visibility:
|
||||
:path: ".symlinks/plugins/flutter_keyboard_visibility/ios"
|
||||
flutter_zxing:
|
||||
@@ -105,7 +103,6 @@ EXTERNAL SOURCES:
|
||||
SPEC CHECKSUMS:
|
||||
camera_avfoundation: 04b44aeb14070126c6529e5ab82cc7c9fca107cf
|
||||
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
|
||||
flutter_barcode_scanner: c5aa9f51c150a6242fa392386bd52b64bb27fcb5
|
||||
flutter_keyboard_visibility: 4625131e43015dbbe759d9b20daaf77e0e3f6619
|
||||
flutter_zxing: e741c4f3335db8910e5c396c4291cdfb320859dc
|
||||
image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a
|
||||
@@ -115,8 +112,8 @@ SPEC CHECKSUMS:
|
||||
pointer_interceptor_ios: ec847ef8b0915778bed2b2cef636f4d177fa8eed
|
||||
rive_common: dd421daaf9ae69f0125aa761dd96abd278399952
|
||||
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
|
||||
sqlite3: 3da10a59910c809fb584a93aa46a3f05b785e12e
|
||||
sqlite3_flutter_libs: c26d86af4ad88f1465dc4e07e6dc6931eef228e4
|
||||
sqlite3: fc1400008a9b3525f5914ed715a5d1af0b8f4983
|
||||
sqlite3_flutter_libs: f6acaa2172e6bb3e2e70c771661905080e8ebcf2
|
||||
url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
|
||||
video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b
|
||||
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
|
||||
3845DFE0762714C6680D5DFA /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFA44D9DB464FB85F130C5B5 /* Pods_Runner.framework */; };
|
||||
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
|
||||
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
|
||||
78C727F12E8C2C2BF5ED5703 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DAC1C25406C5CD78CE59E547 /* Pods_Runner.framework */; };
|
||||
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
|
||||
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
|
||||
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
|
||||
@@ -30,14 +30,14 @@
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
0661B42137D743038BB7032F /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
0AA56188CB2769B47E250516 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
|
||||
0ED96167FF623FAB319C6E99 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
|
||||
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
|
||||
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
|
||||
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
|
||||
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
|
||||
89F44165E15E0A7B109A05EB /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
|
||||
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
|
||||
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
|
||||
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
@@ -45,8 +45,8 @@
|
||||
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
C19FA8F529BB2B899AB0C23A /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
|
||||
DAC1C25406C5CD78CE59E547 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
AFA44D9DB464FB85F130C5B5 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
C71BAD15819A771165D784B0 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -54,17 +54,17 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
78C727F12E8C2C2BF5ED5703 /* Pods_Runner.framework in Frameworks */,
|
||||
3845DFE0762714C6680D5DFA /* Pods_Runner.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
631B4307BD65C9D08E514EBB /* Frameworks */ = {
|
||||
23E168F95D2790D29E207E68 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
DAC1C25406C5CD78CE59E547 /* Pods_Runner.framework */,
|
||||
AFA44D9DB464FB85F130C5B5 /* Pods_Runner.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
@@ -87,7 +87,7 @@
|
||||
97C146F01CF9000F007C117D /* Runner */,
|
||||
97C146EF1CF9000F007C117D /* Products */,
|
||||
BB0286322FD60C00014F981C /* Pods */,
|
||||
631B4307BD65C9D08E514EBB /* Frameworks */,
|
||||
23E168F95D2790D29E207E68 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
@@ -117,9 +117,9 @@
|
||||
BB0286322FD60C00014F981C /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
0661B42137D743038BB7032F /* Pods-Runner.debug.xcconfig */,
|
||||
C19FA8F529BB2B899AB0C23A /* Pods-Runner.release.xcconfig */,
|
||||
0AA56188CB2769B47E250516 /* Pods-Runner.profile.xcconfig */,
|
||||
C71BAD15819A771165D784B0 /* Pods-Runner.debug.xcconfig */,
|
||||
0ED96167FF623FAB319C6E99 /* Pods-Runner.release.xcconfig */,
|
||||
89F44165E15E0A7B109A05EB /* Pods-Runner.profile.xcconfig */,
|
||||
);
|
||||
path = Pods;
|
||||
sourceTree = "<group>";
|
||||
@@ -131,14 +131,14 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
|
||||
buildPhases = (
|
||||
55A9F1D1670043D7444258F2 /* [CP] Check Pods Manifest.lock */,
|
||||
49A79EC3F389C902853B9186 /* [CP] Check Pods Manifest.lock */,
|
||||
9740EEB61CF901F6004384FC /* Run Script */,
|
||||
97C146EA1CF9000F007C117D /* Sources */,
|
||||
97C146EB1CF9000F007C117D /* Frameworks */,
|
||||
97C146EC1CF9000F007C117D /* Resources */,
|
||||
9705A1C41CF9048500538489 /* Embed Frameworks */,
|
||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
|
||||
8D4C3EABCD024FF4FF37C7E4 /* [CP] Embed Pods Frameworks */,
|
||||
0A9E38C31DF3DC192213822E /* [CP] Embed Pods Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@@ -197,6 +197,23 @@
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
0A9E38C31DF3DC192213822E /* [CP] Embed Pods Frameworks */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
||||
);
|
||||
name = "[CP] Embed Pods Frameworks";
|
||||
outputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
alwaysOutOfDate = 1;
|
||||
@@ -213,7 +230,7 @@
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
|
||||
};
|
||||
55A9F1D1670043D7444258F2 /* [CP] Check Pods Manifest.lock */ = {
|
||||
49A79EC3F389C902853B9186 /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
@@ -235,23 +252,6 @@
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
8D4C3EABCD024FF4FF37C7E4 /* [CP] Embed Pods Frameworks */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
||||
);
|
||||
name = "[CP] Embed Pods Frameworks";
|
||||
outputFileListPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
9740EEB61CF901F6004384FC /* Run Script */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
alwaysOutOfDate = 1;
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
enableGPUValidationMode = "1"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
|
||||
1
ios/build/.last_build_id
Normal file
1
ios/build/.last_build_id
Normal file
@@ -0,0 +1 @@
|
||||
ce49e7d90cd902197f9a9cbc84219d23
|
||||
@@ -28,7 +28,7 @@ String repText(
|
||||
RepetitionUnit? repetitionUnitObj,
|
||||
num? weight,
|
||||
WeightUnit? weightUnitObj,
|
||||
String? rir,
|
||||
num? rir,
|
||||
) {
|
||||
// TODO(x): how to (easily?) translate strings like the units or 'RiR'
|
||||
|
||||
|
||||
@@ -49,11 +49,11 @@ class Log {
|
||||
@JsonKey(required: true, name: 'slot_entry')
|
||||
int? slotEntryId;
|
||||
|
||||
@JsonKey(required: false)
|
||||
String? rir;
|
||||
@JsonKey(required: false, fromJson: stringToNum)
|
||||
num? rir;
|
||||
|
||||
@JsonKey(required: false, name: 'rir_target')
|
||||
String? rirTarget;
|
||||
@JsonKey(required: false, fromJson: stringToNum, name: 'rir_target')
|
||||
num? rirTarget;
|
||||
|
||||
@JsonKey(required: true, fromJson: stringToNum, name: 'repetitions')
|
||||
num? repetitions;
|
||||
@@ -121,10 +121,6 @@ class Log {
|
||||
repetitionsUnitId = repetitionUnit?.id;
|
||||
}
|
||||
|
||||
void setRir(String rir) {
|
||||
this.rir = rir;
|
||||
}
|
||||
|
||||
/// Returns the text representation for a single setting, used in the gym mode
|
||||
String get singleLogRepTextNoNl {
|
||||
return repText(repetitions, repetitionsUnitObj, weight, weightUnitObj, rir)
|
||||
|
||||
@@ -34,8 +34,8 @@ Log _$LogFromJson(Map<String, dynamic> json) {
|
||||
repetitions: stringToNum(json['repetitions'] as String?),
|
||||
repetitionsTarget: stringToNum(json['repetitions_target'] as String?),
|
||||
repetitionsUnitId: (json['repetitions_unit'] as num?)?.toInt() ?? REP_UNIT_REPETITIONS_ID,
|
||||
rir: json['rir'] as String?,
|
||||
rirTarget: json['rir_target'] as String?,
|
||||
rir: stringToNum(json['rir'] as String?),
|
||||
rirTarget: stringToNum(json['rir_target'] as String?),
|
||||
weight: stringToNum(json['weight'] as String?),
|
||||
weightTarget: stringToNum(json['weight_target'] as String?),
|
||||
weightUnitId: (json['weight_unit'] as num?)?.toInt() ?? WEIGHT_UNIT_KG,
|
||||
|
||||
@@ -78,14 +78,14 @@ class SetConfigData {
|
||||
@JsonKey(required: true, name: 'repetitions_rounding', fromJson: stringToNumNull)
|
||||
late num? repetitionsRounding;
|
||||
|
||||
@JsonKey(required: true)
|
||||
late String? rir;
|
||||
@JsonKey(required: true, fromJson: stringToNumNull)
|
||||
late num? rir;
|
||||
|
||||
@JsonKey(required: true, name: 'max_rir')
|
||||
late String? maxRir;
|
||||
@JsonKey(required: true, name: 'max_rir', fromJson: stringToNumNull)
|
||||
late num? maxRir;
|
||||
|
||||
@JsonKey(required: true)
|
||||
late String? rpe;
|
||||
late num? rpe;
|
||||
|
||||
@JsonKey(required: true, name: 'rest', fromJson: stringToNumNull)
|
||||
late num? restTime;
|
||||
|
||||
@@ -50,9 +50,9 @@ SetConfigData _$SetConfigDataFromJson(Map<String, dynamic> json) {
|
||||
repetitionsRounding: json['repetitions_rounding'] == null
|
||||
? 1
|
||||
: stringToNumNull(json['repetitions_rounding'] as String?),
|
||||
rir: json['rir'] as String?,
|
||||
maxRir: json['max_rir'] as String?,
|
||||
rpe: json['rpe'] as String?,
|
||||
rir: stringToNumNull(json['rir'] as String?),
|
||||
maxRir: stringToNumNull(json['max_rir'] as String?),
|
||||
rpe: json['rpe'] as num?,
|
||||
restTime: stringToNumNull(json['rest'] as String?),
|
||||
maxRestTime: stringToNumNull(json['max_rest'] as String?),
|
||||
comment: json['comment'] as String? ?? '',
|
||||
|
||||
@@ -160,7 +160,10 @@ class AuthProvider with ChangeNotifier {
|
||||
await initVersions(serverUrl);
|
||||
|
||||
// If update is required don't log in user
|
||||
if (await applicationUpdateRequired()) {
|
||||
if (await applicationUpdateRequired(
|
||||
applicationVersion!.version,
|
||||
{MANIFEST_KEY_CHECK_UPDATE: 'true'},
|
||||
)) {
|
||||
return {'action': LoginActions.update};
|
||||
}
|
||||
|
||||
|
||||
@@ -193,7 +193,10 @@ class ExerciseDetail extends StatelessWidget {
|
||||
// TODO: add carousel for the other images
|
||||
final List<Widget> out = [];
|
||||
if (_exercise.getMainImage != null) {
|
||||
out.add(ExerciseImageWidget(image: _exercise.getMainImage));
|
||||
out.add(ExerciseImageWidget(
|
||||
image: _exercise.getMainImage,
|
||||
height: 250,
|
||||
));
|
||||
out.add(const SizedBox(height: PADDING));
|
||||
}
|
||||
|
||||
@@ -346,7 +349,7 @@ class MuscleWidget extends StatelessWidget {
|
||||
children: [
|
||||
SvgPicture.asset('assets/images/muscles/$background.svg'),
|
||||
...muscles.map((m) => SvgPicture.asset('assets/images/muscles/main/muscle-${m.id}.svg')),
|
||||
...musclesSecondary.map((m) => SvgPicture.asset(
|
||||
...musclesSecondary.where((m) => !muscles.contains(m)).map((m) => SvgPicture.asset(
|
||||
'assets/images/muscles/secondary/muscle-${m.id}.svg',
|
||||
)),
|
||||
],
|
||||
|
||||
@@ -48,7 +48,7 @@ class _ExerciseFilterModalBodyState extends State<ExerciseFilterModalBody> {
|
||||
dividerColor: Colors.transparent,
|
||||
expansionCallback: (panelIndex, isExpanded) {
|
||||
setState(() {
|
||||
filters.filterCategories[panelIndex].isExpanded = !isExpanded;
|
||||
filters.filterCategories[panelIndex].isExpanded = isExpanded;
|
||||
});
|
||||
},
|
||||
elevation: 0,
|
||||
|
||||
@@ -20,9 +20,10 @@ import 'package:flutter/widgets.dart';
|
||||
import 'package:wger/models/exercises/image.dart';
|
||||
|
||||
class ExerciseImageWidget extends StatelessWidget {
|
||||
const ExerciseImageWidget({this.image});
|
||||
const ExerciseImageWidget({this.image, this.height});
|
||||
|
||||
final ExerciseImage? image;
|
||||
final double? height;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@@ -32,6 +33,7 @@ class ExerciseImageWidget extends StatelessWidget {
|
||||
image: NetworkImage(image!.url),
|
||||
fit: BoxFit.cover,
|
||||
imageSemanticLabel: 'Exercise image',
|
||||
height: height,
|
||||
)
|
||||
: const Image(
|
||||
image: AssetImage('assets/images/placeholder.png'),
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:wger/helpers/misc.dart';
|
||||
import 'package:wger/l10n/generated/app_localizations.dart';
|
||||
@@ -10,13 +12,62 @@ Widget ingredientImage(String url, BuildContext context) {
|
||||
final height = MediaQuery.sizeOf(context).height;
|
||||
final width = MediaQuery.sizeOf(context).width;
|
||||
final smallest = height < width ? height : width;
|
||||
if (smallest < 400) {
|
||||
radius = smallest / 4;
|
||||
if (smallest > 400) {
|
||||
radius = smallest / 2.5;
|
||||
}
|
||||
|
||||
final imageProvider = NetworkImage(url);
|
||||
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(bottom: 12),
|
||||
child: CircleAvatar(backgroundImage: NetworkImage(url), radius: radius),
|
||||
child: ClipRRect(
|
||||
borderRadius: BorderRadius.circular(15),
|
||||
child: Container(
|
||||
height: radius,
|
||||
width: width,
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(15),
|
||||
),
|
||||
child: Stack(
|
||||
children: [
|
||||
Image(
|
||||
image: imageProvider,
|
||||
height: radius,
|
||||
width: width,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
BackdropFilter(
|
||||
filter: ImageFilter.blur(
|
||||
sigmaY: 5,
|
||||
sigmaX: 5,
|
||||
),
|
||||
child: Container(
|
||||
height: radius,
|
||||
width: width,
|
||||
color: Colors.transparent,
|
||||
),
|
||||
),
|
||||
Center(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(10),
|
||||
child: Container(
|
||||
clipBehavior: Clip.hardEdge,
|
||||
decoration: const BoxDecoration(shape: BoxShape.circle),
|
||||
child: Image(
|
||||
image: imageProvider,
|
||||
height: radius,
|
||||
width: width,
|
||||
fit: BoxFit.contain,
|
||||
),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
// CircleAvatar(backgroundImage: NetworkImage(url), radius: radius)
|
||||
}
|
||||
|
||||
class IngredientDetails extends StatelessWidget {
|
||||
|
||||
@@ -16,21 +16,19 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_html/flutter_html.dart';
|
||||
import 'package:wger/helpers/i18n.dart';
|
||||
import 'package:wger/models/exercises/exercise.dart';
|
||||
import 'package:wger/widgets/exercises/images.dart';
|
||||
import 'package:wger/widgets/exercises/exercises.dart';
|
||||
import 'package:wger/widgets/routines/gym_mode/navigation.dart';
|
||||
|
||||
class ExerciseOverview extends StatelessWidget {
|
||||
final PageController _controller;
|
||||
final Exercise _exerciseBase;
|
||||
final Exercise _exercise;
|
||||
final double _ratioCompleted;
|
||||
final Map<Exercise, int> _exercisePages;
|
||||
|
||||
const ExerciseOverview(
|
||||
this._controller,
|
||||
this._exerciseBase,
|
||||
this._exercise,
|
||||
this._ratioCompleted,
|
||||
this._exercisePages,
|
||||
);
|
||||
@@ -40,43 +38,17 @@ class ExerciseOverview extends StatelessWidget {
|
||||
return Column(
|
||||
children: [
|
||||
NavigationHeader(
|
||||
_exerciseBase.getTranslation(Localizations.localeOf(context).languageCode).name,
|
||||
_exercise.getTranslation(Localizations.localeOf(context).languageCode).name,
|
||||
_controller,
|
||||
exercisePages: _exercisePages,
|
||||
),
|
||||
const Divider(),
|
||||
Expanded(
|
||||
child: ListView(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 15),
|
||||
children: [
|
||||
Text(
|
||||
getTranslation(_exerciseBase.category!.name, context),
|
||||
semanticsLabel: getTranslation(_exerciseBase.category!.name, context),
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
..._exerciseBase.equipment.map((e) => Text(
|
||||
getTranslation(e.name, context),
|
||||
style: Theme.of(context).textTheme.titleLarge,
|
||||
textAlign: TextAlign.center,
|
||||
)),
|
||||
if (_exerciseBase.images.isNotEmpty)
|
||||
SizedBox(
|
||||
width: double.infinity,
|
||||
height: 200,
|
||||
child: ListView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
children: [
|
||||
..._exerciseBase.images.map((e) => ExerciseImageWidget(image: e)),
|
||||
],
|
||||
),
|
||||
),
|
||||
Html(
|
||||
data: _exerciseBase
|
||||
.getTranslation(Localizations.localeOf(context).languageCode)
|
||||
.description,
|
||||
),
|
||||
],
|
||||
child: SingleChildScrollView(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 10),
|
||||
child: ExerciseDetail(_exercise),
|
||||
),
|
||||
),
|
||||
),
|
||||
NavigationFooter(_controller, _ratioCompleted),
|
||||
|
||||
@@ -274,7 +274,7 @@ class _LogPageState extends State<LogPage> {
|
||||
),
|
||||
if (_detailed)
|
||||
RiRInputWidget(
|
||||
widget._log.rir == null ? null : num.parse(widget._log.rir!),
|
||||
widget._log.rir,
|
||||
onChanged: (v) => {},
|
||||
),
|
||||
SwitchListTile(
|
||||
|
||||
48
pubspec.lock
48
pubspec.lock
@@ -21,10 +21,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: archive
|
||||
sha256: "0c64e928dcbefddecd234205422bcfc2b5e6d31be0b86fef0d0dd48d7b4c9742"
|
||||
sha256: "7dcbd0f87fe5f61cb28da39a1a8b70dbc106e2fe0516f7836eb7bb2948481a12"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.4"
|
||||
version: "4.0.5"
|
||||
args:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -133,18 +133,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: camera_avfoundation
|
||||
sha256: "3057ada0b30402e3a9b6dffec365c9736a36edbf04abaecc67c4309eadc86b49"
|
||||
sha256: ba48b65a3a97004276ede882e6b838d9667642ff462c95a8bb57ca8a82b6bd25
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.9.18+9"
|
||||
version: "0.9.18+11"
|
||||
camera_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: camera_platform_interface
|
||||
sha256: "953e7baed3a7c8fae92f7200afeb2be503ff1a17c3b4e4ed7b76f008c2810a31"
|
||||
sha256: "2f757024a48696ff4814a789b0bd90f5660c0fb25f393ab4564fb483327930e2"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.9.0"
|
||||
version: "2.10.0"
|
||||
camera_web:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -317,10 +317,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: ffi
|
||||
sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6"
|
||||
sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.3"
|
||||
version: "2.1.4"
|
||||
file:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -381,10 +381,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flex_color_scheme
|
||||
sha256: ae638050fceb35b6040a43cf67892f9b956022068e736284919d93322fdd4ba2
|
||||
sha256: "3344f8f6536c6ce0473b98e9f084ef80ca89024ad3b454f9c32cf840206f4387"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.1.1"
|
||||
version: "8.2.0"
|
||||
flex_seed_scheme:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -402,10 +402,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_calendar_carousel
|
||||
sha256: "675a2331da6ecd7ba180ba7cd6551a18d41861187bb7537c11859a2df72d1646"
|
||||
sha256: "2fd1b58cefbefe0504ca7d0080a9e63be96041acc93b0c7f340ef0a55b9808fe"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.4"
|
||||
version: "2.5.3"
|
||||
flutter_driver:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
@@ -651,10 +651,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: image
|
||||
sha256: "13d3349ace88f12f4a0d175eb5c12dcdd39d35c4c109a8a13dfeb6d0bd9e31c3"
|
||||
sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.5.3"
|
||||
version: "4.5.4"
|
||||
image_picker:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -744,10 +744,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: js
|
||||
sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf
|
||||
sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.1"
|
||||
version: "0.7.2"
|
||||
json_annotation:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -984,10 +984,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: petitparser
|
||||
sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27
|
||||
sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.0.2"
|
||||
version: "6.1.0"
|
||||
platform:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1245,10 +1245,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: sqlite3_flutter_libs
|
||||
sha256: "7adb4cc96dc08648a5eb1d80a7619070796ca6db03901ff2b6dcb15ee30468f3"
|
||||
sha256: "1a96b59227828d9eb1463191d684b37a27d66ee5ed7597fcf42eee6452c88a14"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.31"
|
||||
version: "0.5.32"
|
||||
sqlparser:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1549,10 +1549,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: win32
|
||||
sha256: daf97c9d80197ed7b619040e86c8ab9a9dad285e7671ee7390f9180cc828a51e
|
||||
sha256: dc6ecaa00a7c708e5b4d10ee7bec8c270e9276dfcab1783f57e9962d7884305f
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.10.1"
|
||||
version: "5.12.0"
|
||||
xdg_directories:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1578,5 +1578,5 @@ packages:
|
||||
source: hosted
|
||||
version: "3.1.3"
|
||||
sdks:
|
||||
dart: ">=3.7.0-0 <4.0.0"
|
||||
flutter: ">=3.27.0"
|
||||
dart: ">=3.7.0 <4.0.0"
|
||||
flutter: ">=3.29.0"
|
||||
|
||||
2
test/fixtures/routines/routine_logs.json
vendored
2
test/fixtures/routines/routine_logs.json
vendored
@@ -161,7 +161,7 @@
|
||||
"weight": "90.00",
|
||||
"weight_target": "80.00",
|
||||
"rir": "0.5",
|
||||
"rir_target": null,
|
||||
"rir_target": "0.5",
|
||||
"rest": 121,
|
||||
"rest_target": 120
|
||||
},
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 173 KiB After Width: | Height: | Size: 175 KiB |
@@ -86,6 +86,10 @@ void main() {
|
||||
testWidgets('Test the widgets on the gym mode screen', (WidgetTester tester) async {
|
||||
when(mockExerciseProvider.findExerciseById(1)).thenReturn(testExercises[0]);
|
||||
when(mockExerciseProvider.findExerciseById(6)).thenReturn(testExercises[5]);
|
||||
when(mockExerciseProvider.findExercisesByVariationId(
|
||||
null,
|
||||
exerciseIdToExclude: anyNamed('exerciseIdToExclude'),
|
||||
)).thenReturn([]);
|
||||
|
||||
await tester.pumpWidget(renderGymMode());
|
||||
await tester.tap(find.byType(TextButton));
|
||||
|
||||
@@ -32,7 +32,7 @@ void main() {
|
||||
routineId: 100,
|
||||
exerciseId: 1,
|
||||
repetitions: 10,
|
||||
rir: '1.5',
|
||||
rir: 1.5,
|
||||
repetitionsUnitId: 1,
|
||||
weight: 20,
|
||||
weightUnitId: 1,
|
||||
@@ -45,7 +45,7 @@ void main() {
|
||||
routineId: 42,
|
||||
exerciseId: 1,
|
||||
repetitions: 10,
|
||||
rir: '1.5',
|
||||
rir: 1.5,
|
||||
repetitionsUnitId: 1,
|
||||
weight: 20,
|
||||
weightUnitId: 1,
|
||||
|
||||
@@ -50,7 +50,7 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
..iteration = 2
|
||||
..slotEntryId = 3
|
||||
..weight = 10
|
||||
..rir = '1.5'
|
||||
..rir = 1.5
|
||||
..date = DateTime(2021, 5, 1)
|
||||
..repetitions = 10
|
||||
..routineId = 1;
|
||||
@@ -63,7 +63,7 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
..iteration = 4
|
||||
..slotEntryId = 1
|
||||
..weight = 10
|
||||
..rir = '2'
|
||||
..rir = 2
|
||||
..date = DateTime(2021, 5, 1)
|
||||
..repetitions = 12
|
||||
..routineId = 1;
|
||||
@@ -76,7 +76,7 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
..iteration = 5
|
||||
..slotEntryId = 1
|
||||
..weight = 50
|
||||
..rir = ''
|
||||
..rir = null
|
||||
..date = DateTime(2021, 5, 2)
|
||||
..repetitions = 8
|
||||
..routineId = 1;
|
||||
@@ -248,8 +248,8 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
weight: 100,
|
||||
weightUnit: testWeightUnit1,
|
||||
restTime: 120,
|
||||
rir: '1.5',
|
||||
rpe: '8',
|
||||
rir: 1.5,
|
||||
rpe: 8,
|
||||
textRepr: '3x100kg',
|
||||
),
|
||||
SetConfigData(
|
||||
@@ -262,8 +262,8 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
weight: 100,
|
||||
weightUnit: testWeightUnit1,
|
||||
restTime: 120,
|
||||
rir: '1.5',
|
||||
rpe: '8',
|
||||
rir: 1.5,
|
||||
rpe: 8,
|
||||
textRepr: '3x100kg',
|
||||
),
|
||||
SetConfigData(
|
||||
@@ -276,8 +276,8 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
weight: 100,
|
||||
weightUnit: testWeightUnit1,
|
||||
restTime: 120,
|
||||
rir: '1.5',
|
||||
rpe: '8',
|
||||
rir: 1.5,
|
||||
rpe: 8,
|
||||
textRepr: '3x100kg',
|
||||
),
|
||||
],
|
||||
@@ -297,8 +297,8 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
weight: 10,
|
||||
weightUnit: testWeightUnit1,
|
||||
restTime: null,
|
||||
rir: '',
|
||||
rpe: '',
|
||||
rir: null,
|
||||
rpe: null,
|
||||
textRepr: '12x10kg',
|
||||
),
|
||||
SetConfigData(
|
||||
@@ -311,8 +311,8 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
weight: 10,
|
||||
weightUnit: testWeightUnit1,
|
||||
restTime: null,
|
||||
rir: '',
|
||||
rpe: '',
|
||||
rir: null,
|
||||
rpe: null,
|
||||
textRepr: '12x10kg',
|
||||
),
|
||||
SetConfigData(
|
||||
@@ -325,8 +325,8 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
weight: 10,
|
||||
weightUnit: testWeightUnit1,
|
||||
restTime: null,
|
||||
rir: '',
|
||||
rpe: '',
|
||||
rir: null,
|
||||
rpe: null,
|
||||
textRepr: '12x10kg',
|
||||
),
|
||||
],
|
||||
@@ -354,8 +354,8 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
weight: 100,
|
||||
weightUnit: testWeightUnit1,
|
||||
restTime: 120,
|
||||
rir: '1.5',
|
||||
rpe: '8',
|
||||
rir: 1.5,
|
||||
rpe: 8,
|
||||
textRepr: '3x100kg',
|
||||
),
|
||||
SetConfigData(
|
||||
@@ -368,8 +368,8 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
weight: 100,
|
||||
weightUnit: testWeightUnit1,
|
||||
restTime: 120,
|
||||
rir: '1.5',
|
||||
rpe: '8',
|
||||
rir: 1.5,
|
||||
rpe: 8,
|
||||
textRepr: '3x100kg',
|
||||
),
|
||||
SetConfigData(
|
||||
@@ -382,8 +382,8 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
weight: 100,
|
||||
weightUnit: testWeightUnit1,
|
||||
restTime: 120,
|
||||
rir: '1.5',
|
||||
rpe: '8',
|
||||
rir: 1.5,
|
||||
rpe: 8,
|
||||
textRepr: '3x100kg',
|
||||
),
|
||||
],
|
||||
@@ -414,8 +414,8 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
weight: 100,
|
||||
weightUnit: testWeightUnit1,
|
||||
restTime: 120,
|
||||
rir: '1.5',
|
||||
rpe: '8',
|
||||
rir: 1.5,
|
||||
rpe: 8,
|
||||
textRepr: '4 sets 3x100kg',
|
||||
),
|
||||
],
|
||||
@@ -435,8 +435,8 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
weight: 10,
|
||||
weightUnit: testWeightUnit1,
|
||||
restTime: 60,
|
||||
rir: '',
|
||||
rpe: '',
|
||||
rir: null,
|
||||
rpe: null,
|
||||
textRepr: '4 sets 12x10kg',
|
||||
),
|
||||
],
|
||||
@@ -464,8 +464,8 @@ Routine getTestRoutine({List<Exercise>? exercises}) {
|
||||
weight: 100,
|
||||
weightUnit: testWeightUnit1,
|
||||
restTime: 120,
|
||||
rir: '1.5',
|
||||
rpe: '8',
|
||||
rir: 1.5,
|
||||
rpe: 8,
|
||||
textRepr: '4 sets 3x100kg',
|
||||
),
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user