Merge branch 'master' into powersync

# Conflicts:
#	Gemfile.lock
#	android/settings.gradle
#	fastlane/report.xml
#	integration_test/1_dashboard.dart
#	integration_test/2_workout.dart
#	integration_test/3_gym_mode.dart
#	integration_test/5_nutritional_plan.dart
#	integration_test/6_weight.dart
#	lib/helpers/i18n.dart
#	lib/helpers/ui.dart
#	lib/main.dart
#	lib/models/nutrition/meal.g.dart
#	lib/models/nutrition/nutritional_plan.dart
#	lib/providers/auth.dart
#	lib/providers/nutrition.dart
#	lib/screens/add_exercise_screen.dart
#	lib/screens/auth_screen.dart
#	lib/screens/dashboard.dart
#	lib/screens/exercises_screen.dart
#	lib/screens/home_tabs_screen.dart
#	lib/screens/log_meal_screen.dart
#	lib/screens/log_meals_screen.dart
#	lib/screens/nutritional_plan_screen.dart
#	lib/screens/routine_list_screen.dart
#	lib/screens/workout_plan_screen.dart
#	lib/widgets/add_exercise/steps/step1basics.dart
#	lib/widgets/add_exercise/steps/step5images.dart
#	lib/widgets/add_exercise/steps/step_2_variations.dart
#	lib/widgets/add_exercise/steps/step_3_description.dart
#	lib/widgets/add_exercise/steps/step_4_translations.dart
#	lib/widgets/core/about.dart
#	lib/widgets/core/settings.dart
#	lib/widgets/dashboard/calendar.dart
#	lib/widgets/dashboard/widgets.dart
#	lib/widgets/exercises/exercises.dart
#	lib/widgets/gallery/overview.dart
#	lib/widgets/measurements/categories_card.dart
#	lib/widgets/measurements/charts.dart
#	lib/widgets/measurements/entries.dart
#	lib/widgets/measurements/forms.dart
#	lib/widgets/measurements/helpers.dart
#	lib/widgets/nutrition/charts.dart
#	lib/widgets/nutrition/forms.dart
#	lib/widgets/nutrition/helpers.dart
#	lib/widgets/nutrition/meal.dart
#	lib/widgets/nutrition/nutritional_diary_table.dart
#	lib/widgets/nutrition/nutritional_plan_detail.dart
#	lib/widgets/nutrition/nutritional_plans_list.dart
#	lib/widgets/nutrition/widgets.dart
#	lib/widgets/routines/charts.dart
#	lib/widgets/routines/workout_logs.dart
#	lib/widgets/weight/forms.dart
#	lib/widgets/weight/weight_overview.dart
#	lib/widgets/workouts/app_bar.dart
#	lib/widgets/workouts/day.dart
#	lib/widgets/workouts/forms.dart
#	lib/widgets/workouts/gym_mode.dart
#	lib/widgets/workouts/workout_plan_detail.dart
#	lib/widgets/workouts/workout_plans_list.dart
#	linux/flutter/generated_plugin_registrant.cc
#	linux/flutter/generated_plugins.cmake
#	pubspec.lock
#	pubspec.yaml
#	test/auth/auth_screen_test.dart
#	test/core/settings_test.dart
#	test/core/settings_test.mocks.dart
#	test/nutrition/nutritional_meal_form_test.mocks.dart
#	test/nutrition/nutritional_meal_item_form_test.dart
#	test/nutrition/nutritional_plan_form_test.mocks.dart
#	test/nutrition/nutritional_plan_screen_test.dart
#	test/nutrition/nutritional_plans_screen_test.dart
#	test/routine/repetition_unit_form_widget_test.dart
#	test/routine/routine_screen_test.dart
#	test/routine/routines_screen_test.dart
#	test/routine/weight_unit_form_widget_test.dart
#	test/workout/gym_mode_screen_test.dart
#	test/workout/workout_day_form_test.dart
#	test/workout/workout_form_test.dart
#	test/workout/workout_set_form_test.dart
This commit is contained in:
Roland Geider
2025-10-19 14:48:15 +02:00
1019 changed files with 62076 additions and 34475 deletions

View File

@@ -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
View 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

View File

@@ -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.
-->

View 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

View File

@@ -0,0 +1,23 @@
name: 'Flutter common setup'
description: 'Common steps needed to setup the application'
runs:
using: "composite"
steps:
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version: 3.35.5
cache: true
- name: Install Flutter dependencies
run: flutter pub get
shell: bash
- name: Install Flutter dependencies
run: |
dart --version
flutter --version
shell: bash

27
.github/contributing.md vendored Normal file
View File

@@ -0,0 +1,27 @@
# Contributing to wger
🎉 Thanks for showing interest in contributing! 🎉
We have centralized the documentation for contributing to wger in the online
docs, especially for non-code contributions such as documentation, translations,
etc.:
<https://wger.readthedocs.io/en/latest/contributing.html>
## Questions
Are you just using the software and have a question or improvement? Let us know!
* Discord: <https://discord.gg/rPWFv6W>
* Mastodon: <https://fosstodon.org/@wger>
## Issues
If you run into a bug describe the problem as well as you can.
- Steps and any useful information to reproduce the issue
- If you use our server, the time when this happened, we might be able to get some
information from the logs
- Environment details (app type: web / mobile, installation method, OS, etc.)
- Screenshots or logs if applicable
- Git SHA1 if installed from source

View File

@@ -11,6 +11,11 @@ updates:
schedule:
interval: "weekly"
- package-ecosystem: "pub"
directory: "/flatpak/scripts"
schedule:
interval: "weekly"
- package-ecosystem: "github-actions"
directory: "/"
schedule:

View File

@@ -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 .`)
- [ ] Updated/added relevant documentation (doc comments with `///`).
- [ ] Added relevant reviewers.

73
.github/workflows/build-android.yml vendored Normal file
View File

@@ -0,0 +1,73 @@
name: Build Android
on:
workflow_call:
inputs:
ref:
required: true
type: string
secrets:
DECRYPTKEY_PLAYSTORE_SIGNING_KEY:
required: true
DECRYPTKEY_PROPERTIES:
required: true
jobs:
build_android_apk:
name: APK file
runs-on: ubuntu-latest
steps:
- name: Checkout application
uses: actions/checkout@v5
with:
ref: ${{ inputs.ref }}
- name: Common flutter setup
uses: ./.github/actions/flutter-common
- name: Decrypt config files
run: |
cd ./fastlane/metadata/envfiles
chmod +x ./decrypt_secrets.sh
./decrypt_secrets.sh
shell: bash
env:
DECRYPTKEY_PLAYSTORE_SIGNING_KEY: ${{ secrets.DECRYPTKEY_PLAYSTORE_SIGNING_KEY }}
DECRYPTKEY_PROPERTIES: ${{ secrets.DECRYPTKEY_PROPERTIES }}
- name: Build APK
run: flutter build apk --release
- uses: actions/upload-artifact@v4
with:
name: builds-apk
path: build/app/outputs/flutter-apk/app-release.apk
build_android_aab:
name: AAB file
runs-on: ubuntu-latest
steps:
- name: Checkout application
uses: actions/checkout@v5
with:
ref: ${{ inputs.ref }}
- name: Common setup
uses: ./.github/actions/flutter-common
- name: Decrypt config files
run: |
cd ./fastlane/metadata/envfiles
chmod +x ./decrypt_secrets.sh
./decrypt_secrets.sh
shell: bash
env:
DECRYPTKEY_PLAYSTORE: ${{ secrets.DECRYPTKEY_PLAYSTORE }}
DECRYPTKEY_PLAYSTORE_SIGNING_KEY: ${{ secrets.DECRYPTKEY_PLAYSTORE_SIGNING_KEY }}
DECRYPTKEY_PROPERTIES: ${{ secrets.DECRYPTKEY_PROPERTIES }}
- name: Build AAB
run: flutter build appbundle --release
- uses: actions/upload-artifact@v4
with:
name: builds-aab
path: build/app/outputs/bundle/release/app-release.aab

90
.github/workflows/build-apple.yml vendored Normal file
View File

@@ -0,0 +1,90 @@
name: Build Apple
on:
workflow_call:
inputs:
ref:
required: true
type: string
jobs:
build_ios:
name: iOS
runs-on: macos-latest
steps:
- name: Checkout application
uses: actions/checkout@v5
with:
ref: ${{ inputs.ref }}
# This seems to be related to https://github.com/actions/runner-images/issues/12758
# Select appropriate Xcode version from
# https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md#xcode
- name: Xcode setup
run: |
sudo xcode-select --switch /Applications/Xcode_16.4.app
- name: Common flutter setup
uses: ./.github/actions/flutter-common
- name: Build .app
run: |
flutter build ios --release --no-codesign
cd build/ios/iphoneos
zip -r Runner.app.zip Runner.app
- uses: actions/upload-artifact@v4
with:
name: builds-ios
path: build/ios/iphoneos/Runner.app.zip
build_ipa:
name: IPA
runs-on: macos-latest
steps:
- name: Checkout application
uses: actions/checkout@v5
with:
ref: ${{ inputs.ref }}
- name: Common flutter setup
uses: ./.github/actions/flutter-common
# This seems to be related to https://github.com/actions/runner-images/issues/12758
# Select appropriate Xcode version from
# https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md#xcode
- name: Xcode setup
run: |
sudo xcode-select --switch /Applications/Xcode_16.4.app
- name: Build .xcarchive
run: |
flutter build ipa --release --no-codesign
cd build/ios/archive
zip -r Runner.xcarchive.zip Runner.xcarchive
- uses: actions/upload-artifact@v4
with:
name: builds-ipa
path: build/ios/archive/Runner.xcarchive.zip
build_macos:
name: macOS
runs-on: macos-latest
steps:
- name: Checkout application
uses: actions/checkout@v5
with:
ref: ${{ inputs.ref }}
- name: Common flutter setup
uses: ./.github/actions/flutter-common
- name: Build .app
run: |
flutter build macos --release
cd build/macos/Build/Products/Release
zip -r wger.app.zip wger.app
- uses: actions/upload-artifact@v4
with:
name: builds-macos
path: build/macos/Build/Products/Release/wger.app.zip

80
.github/workflows/build-linux.yml vendored Normal file
View File

@@ -0,0 +1,80 @@
name: Build Linux
on:
workflow_call:
inputs:
ref:
required: true
type: string
secrets:
SSH_DEPLOY_KEY:
required: true
jobs:
# TODO: note that we currently only build for x64, as arm64 is not supported by
# subosito/flutter-action@v2 yet and we don't want to install flutter manually
# just for this workflow: https://github.com/subosito/flutter-action/issues/345
build_linux:
name: Build application - ${{ matrix.platform }}
runs-on: ${{ matrix.runner }}
strategy:
matrix:
include:
- platform: x64
runner: ubuntu-latest
# - platform: arm64
# runner: ubuntu-24.04-arm
steps:
- name: Checkout application
uses: actions/checkout@v5
with:
ref: ${{ inputs.ref }}
- name: Common setup
uses: ./.github/actions/flutter-common
# https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md
- name: Build application for linux
run: |
sudo apt update
sudo apt install -y pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev --no-install-recommends
flutter build linux --release
tar -zcvf linux-${{ matrix.platform }}.tar.gz build/linux/${{ matrix.platform }}/release/bundle
- uses: actions/upload-artifact@v4
with:
name: builds-linux
path: |
linux-${{ matrix.platform }}.tar.gz
generate_flathub_manifest:
runs-on: ubuntu-latest
name: Update flathub manifest
# If the job fails just continue, this can be done manually later
continue-on-error: true
needs:
- build_linux
steps:
- name: Checkout flatpak-flathub repo
uses: actions/checkout@v5
with:
repository: wger-project/de.wger.flutter
- name: Bump version and update manifest
run: |
pip install pyyaml toml packaging
git clone https://github.com/TheAppgineer/flatpak-flutter.git --branch 0.7.3 ../flatpak-flutter
python bump-wger-version.py ${{ inputs.ref }}
../flatpak-flutter/flatpak-flutter.py --app-module wger flatpak-flutter.json
- name: Push updated config to flathub repository
uses: cpina/github-action-push-to-another-repository@main
env:
SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }}
with:
destination-github-username: wger-project
destination-repository-name: de.wger.flutter
user-email: github-actions@github.com
target-branch: release-${{ inputs.ref }}
create-target-branch-if-needed: true
commit-message: Update to ${{ inputs.ref }}

View File

@@ -1,131 +0,0 @@
name: Build release artefacts
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
jobs:
deploy_android:
runs-on: ubuntu-latest
steps:
- name: Checkout application code
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'oracle'
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2'
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version: 3.24.x
- name: Flutter info
run: |
dart --version
flutter --version
- name: Install Flutter dependencies
run: flutter pub get
- name: Decrypt config files
run: |
cd ./fastlane/metadata/envfiles
chmod +x ./decrypt_secrets.sh
./decrypt_secrets.sh
env:
DECRYPTKEY_PLAYSTORE: ${{ secrets.DECRYPTKEY_PLAYSTORE }}
DECRYPTKEY_PLAYSTORE_SIGNING_KEY: ${{ secrets.DECRYPTKEY_PLAYSTORE_SIGNING_KEY }}
DECRYPTKEY_PROPERTIES: ${{ secrets.DECRYPTKEY_PROPERTIES }}
- name: Extract version information
run: |
echo "VERSION_V=$(echo $GITHUB_REF | cut -d / -f 3)" >> $GITHUB_ENV
echo "VERSION=$(echo $GITHUB_REF | cut -d / -f 3 | cut -c 2-)" >> $GITHUB_ENV
echo "BUILD=$(flutter pub run cider version | cut -d '+' -f 2)" >> $GITHUB_ENV
- name: Bump pubspec version
run: |
flutter pub run cider version ${{ env.VERSION }}+${{ env.BUILD }}
flutter pub run cider bump build
- name: Build application for linux
run: |
sudo apt update
sudo apt install -y clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev libstdc++-12-dev
flutter build linux --release
cd flatpak/scripts
dart pub get
dart flatpak_packager.dart --meta ../flatpak_meta.json --github --addTodaysVersion ${{ env.VERSION }}
- name: Build AAB
run: flutter build appbundle --release
env:
WGER_API_KEY: ${{ secrets.WGER_API_KEY }}
- name: Build APK
run: flutter build apk --release
env:
WGER_API_KEY: ${{ secrets.WGER_API_KEY }}
- name: Upload build to Play Store
run: |
bundle install
bundle exec fastlane android production
- name: Make Github release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ env.VERSION }}
files: |
build/app/outputs/bundle/release/app-release.aab
build/app/outputs/flutter-apk/app-release.apk
flatpak/scripts/flatpak_generator_exports/wger-linux-x86_64.tar.gz
flatpak/scripts/flatpak_generator_exports/wger-linux-x86_64.sha256
- name: Generate flathub manifest
run: |
cd flatpak/scripts
dart pub get
dart manifest_generator.dart --meta ../flatpak_meta.json --github
mkdir ../../flathub
cp flatpak_generator_exports/de.wger.flutter.json ../../flathub
cp flatpak_generator_exports/flathub.json ../../flathub
- name: Push updated config to flathub repository
uses: cpina/github-action-push-to-another-repository@main
env:
SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }}
with:
source-directory: flathub
destination-github-username: wger-project
destination-repository-name: de.wger.flutter
user-email: github-actions@github.com
target-branch: release-${{ env.VERSION }}
create-target-branch-if-needed: true
commit-message: Update to ${{ env.VERSION }}
# Note: the original tag that triggered the workflow is in the form vX.Y.Z
# but the pubspec.yaml is committed in the commit after that one.
# Since we need the tag to point to the correct commit for other workflows
# such as f-droid we need a way to correct it. Only moving the tag
# would not work, as it would trigger this workflow again. So as
# a workaround, we use the v-tag to trigger this workflow, add a new
# one without the v and push it.
- name: Commit pubspec version and delete tag
run: |
git config user.name Github-Actions
git config user.email github-actions@github.com
git checkout -b release-${{ env.VERSION }}
git add pubspec.yaml
git commit -m "Bump version to $( flutter pub run cider version )"
git push origin --delete ${{ env.VERSION_V }}
git push --set-upstream origin release-${{ env.VERSION }}

31
.github/workflows/build-windows.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: Build Windows
on:
workflow_call:
inputs:
ref:
required: true
type: string
jobs:
# TODO: note that we currently only upload the .exe file, which is not
# sufficient for a proper Windows release. See the documentation
# for what would be necessary (low priority, but nice to have):
# https://docs.flutter.dev/platform-integration/windows/building
build_windows:
name: Windows
runs-on: windows-latest
steps:
- name: Checkout application
uses: actions/checkout@v5
with:
ref: ${{ inputs.ref }}
- name: Common flutter setup
uses: ./.github/actions/flutter-common
- name: Build .exe
run: flutter build windows --release
- uses: actions/upload-artifact@v4
with:
name: builds-windows
path: build\windows\x64\runner\Release\wger.exe

57
.github/workflows/bump-version.yml vendored Normal file
View File

@@ -0,0 +1,57 @@
name: Bump version
on:
workflow_call:
inputs:
app_version:
required: true
type: string
jobs:
determine_version:
name: Create tag
runs-on: ubuntu-latest
steps:
- name: Checkout application
uses: actions/checkout@v5
with:
fetch-depth: 0 # needed to push changes
token: ${{ secrets.GITHUB_TOKEN }}
- name: Common flutter setup
uses: ./.github/actions/flutter-common
- name: Setup uv
uses: astral-sh/setup-uv@v7
- name: Validate version
run: |
RELEASE_VERSION="${{ inputs.app_version }}"
if [[ ! "${{ inputs.app_version }}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "Error: Input version '${{ inputs.app_version }}' is not in X.Y.Z format."
exit 1
fi
# In order to make sure the build number is the same across all platforms,
# increase to the next multiple of 10. This is needed because the iOS process
# is a bit more brittle and might need to be repeated if the App needs
# to be re-submitted.
- name: Bump pubspec version
run: |
CURRENT_BUILD=$(flutter pub run cider version | cut -d '+' -f 2)
NEXT_BUILD=$(( (CURRENT_BUILD / 10 + 1) * 10 ))
flutter pub run cider version ${{ inputs.app_version }}+${NEXT_BUILD}
- name: Bump flatpak version
run: |
cd flatpak
uv run bump-flatpak-version.py ${{ inputs.app_version }}
- name: Tag release and commit pubspec
run: |
git config user.name Github-Actions
git config user.email github-actions@github.com
git add pubspec.yaml flatpak/de.wger.flutter.metainfo.xml
git commit -m "Bump version to ${{ inputs.app_version }}"
git tag ${{ inputs.app_version }}
git push origin HEAD:master --tags

View File

@@ -9,29 +9,32 @@ on:
paths:
- '**.dart'
- 'pubspec.yaml'
workflow_call:
workflow_dispatch:
jobs:
test:
name: Run tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Install Flutter
uses: subosito/flutter-action@v2
with:
cache: true
channel: 'stable'
flutter-version: '3.24.x'
- name: Common flutter setup
uses: ./.github/actions/flutter-common
- run: dart --version
- run: flutter --version
- name: Install app dependencies
run: flutter pub get
- name: Install dependencies
run: |
sudo apt install libsqlite3-dev lcov --no-install-recommends
flutter pub get
# Removing some folders from the coverage since these files are not really
# part of the app code and just get in the way of the report
- name: Test app
run: flutter test --coverage
run: |
flutter test --coverage
lcov --remove coverage/lcov.info 'lib/l10n/generated/*' 'lib/theme/*' -o coverage/lcov.info
- name: Coveralls
uses: coverallsapp/github-action@master
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -26,7 +26,7 @@ jobs:
run: flutter pub get
- name: Check for formatting issues (run "dart format . ")
run: dart format --line-length=100 .
run: dart format .
- name: Push a commit with the changed files
continue-on-error: true

152
.github/workflows/make-release.yml vendored Normal file
View File

@@ -0,0 +1,152 @@
name: Build release artefacts
on:
workflow_dispatch:
inputs:
version:
description: Version to tag and release (X.Y.Z)
required: true
type: string
jobs:
ci:
name: CI
uses: ./.github/workflows/ci.yml
determine_version:
needs: ci
name: Prepare
uses: ./.github/workflows/bump-version.yml
with:
app_version: ${{ github.event.inputs.version }}
build_linux:
name: Linux
needs: determine_version
uses: ./.github/workflows/build-linux.yml
with:
ref: ${{ github.event.inputs.version }}
secrets:
SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }}
build_android:
name: Android
needs: determine_version
uses: ./.github/workflows/build-android.yml
with:
ref: ${{ github.event.inputs.version }}
secrets:
DECRYPTKEY_PLAYSTORE_SIGNING_KEY: ${{ secrets.DECRYPTKEY_PLAYSTORE_SIGNING_KEY }}
DECRYPTKEY_PROPERTIES: ${{ secrets.DECRYPTKEY_PROPERTIES }}
build_apple:
name: Apple
needs: determine_version
uses: ./.github/workflows/build-apple.yml
with:
ref: ${{ github.event.inputs.version }}
build_windows:
name: Microsoft
needs: determine_version
uses: ./.github/workflows/build-windows.yml
with:
ref: ${{ github.event.inputs.version }}
upload_play_store:
name: Upload to Play Store
runs-on: ubuntu-latest
needs:
- build_android
- build_linux
steps:
- name: Checkout application
uses: actions/checkout@v5
with:
ref: ${{ github.event.inputs.version }}
- name: Download builds
uses: actions/download-artifact@v5
with:
path: /tmp/
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.4
- name: Decrypt config files
run: |
cd ./fastlane/metadata/envfiles
chmod +x ./decrypt_secrets.sh
./decrypt_secrets.sh
shell: bash
env:
DECRYPTKEY_PLAYSTORE: ${{ secrets.DECRYPTKEY_PLAYSTORE }}
- name: Upload build to Play Store
run: |
mkdir -p ./build/app/outputs/bundle/release/
cp /tmp/builds-aab/app-release.aab ./build/app/outputs/bundle/release/app-release.aab
bundle install
bundle exec fastlane android production
#
# This is currently commented out since the iOS upload are currently being handled
# by the fastlane script in the ios folder. We use the account of pthaler for this
# and he runs the script manually.
#
# upload_app_store:
# name: Upload to App Store (placeholder)
# runs-on: ubuntu-latest
# needs:
# - build_android
# - build_apple
# steps:
# - name: Checkout application
# uses: actions/checkout@v5
# with:
# ref: feature/build-process
# # ref: ${{ github.event.inputs.version }}
#
# - name: Common flutter setup
# uses: ./.github/actions/flutter-common
#
# - name: Download builds
# uses: actions/download-artifact@v5
# with:
# path: /tmp/
#
# - name: Upload build to App Store
# run: |
# # bundle exec fastlane todo
make_gh_release:
name: Make Github Release
runs-on: ubuntu-latest
needs:
- upload_play_store
- build_linux
- build_windows
- build_apple
steps:
- name: Download builds
uses: actions/download-artifact@v5
- name: Make Github release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
tag_name: ${{ inputs.version }}
files: |
builds-aab/app-release.aab
builds-apk/app-release.apk
builds-linux/linux-x64.tar.gz
builds-ios/Runner.app.zip
builds-ipa/Runner.xcarchive.zip
builds-macos/wger.app.zip
builds-windows/wger.exe

18
.gitignore vendored
View File

@@ -30,12 +30,11 @@
.pub-cache/
.pub/
/build/
/**/build/
/android/app/.cxx
**/failures/*.png
# Web related
lib/generated_plugin_registrant.dart
# Symbolication related
app.*.symbols
@@ -53,3 +52,16 @@ app.*.map.json
# Others
/vendor/bundle/ruby/
/coverage/
/lib/l10n/generated/
# ios build and fastlane
ios/fastlane/.env
ios/fastlane/*.p8
ios/fastlane/test_output
ios/fastlane/screenshots
ios/fastlane/report.xml
ios/fastlane/Preview.html
ios/fastlane/output
ios/Runner.ipa
ios/Runner.app.dSYM.zip

View File

@@ -4,7 +4,42 @@
# This file should be version controlled and should not be manually edited.
version:
revision: bbfbf1770cca2da7c82e887e4e4af910034800b6
channel: stable
revision: "8495dee1fd4aacbe9de707e7581203232f591b2f"
channel: "stable"
project_type: app
# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f
base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f
- platform: android
create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f
base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f
- platform: ios
create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f
base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f
- platform: linux
create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f
base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f
- platform: macos
create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f
base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f
- platform: web
create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f
base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f
- platform: windows
create_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f
base_revision: 8495dee1fd4aacbe9de707e7581203232f591b2f
# User provided section
# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'

View File

@@ -1,4 +1,4 @@
{
"dart.lineLength": 100,
"diffEditor.ignoreTrimWhitespace": true,
"diffEditor.ignoreTrimWhitespace": true
}

View File

@@ -1,81 +1,349 @@
# 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>
## 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>
### Chinese (Traditional Han script)
- German
- Peter Dave Hello - [https://github.com/PeterDaveHello](https://github.com/PeterDaveHello)
- mondstern <mondstern@snopyta.org> (2)
- J. Lavoie <j.lavoie@net-c.ca> (19)
- Roland Geider <roland@geider.net> (142)
### Polish
- English
- 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)
- Roland Geider <roland@geider.net> (3)
- Allan Nordhøy <epost@anotheragency.no> (8)
### Serbian
- Italian
- Mladen Trišić - [https://github.com/mtrisic](https://github.com/mtrisic)
- 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)
### Dutch
- Spanish
- Joey Haalboom - [https://github.com/JoeyHaalboom](https://github.com/JoeyHaalboom)
- Roland Geider <roland@geider.net> (1)
- martingetzel <martingetzel@gmail.com> (119)
### Russian
- French
- Алексей Курышко - [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
- J. Lavoie <j.lavoie@net-c.ca> (92)
- Stefano Rossi <stefanorossi.ti@gmail.com> (94)
### Croatian
- Norwegian Bokmål
- 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)
- Allan Nordhøy <epost@anotheragency.no> (98)
### Portuguese
- Japanese
- 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)
- Kosei TANAKA <wms784.app@gmail.com> (97)
### Italian
- Bahasa Indonesia
- 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)
- Nenza Nurfirmansyah <nnurfirmansyah@gmail.com> (73)
### French
- Croatian
- 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)
- Sandi Milohaic <sandi.milohanic@gmail.com>
### 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)

View File

@@ -1,5 +1,9 @@
source "https://rubygems.org"
gem "fastlane"
gem 'logger'
gem 'mutex_m'
gem 'abbrev'
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)

View File

@@ -5,41 +5,46 @@ GEM
base64
nkf
rexml
abbrev (0.1.2)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.0)
aws-partitions (1.960.0)
aws-sdk-core (3.201.3)
aws-eventstream (1.4.0)
aws-partitions (1.1163.0)
aws-sdk-core (3.232.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.8)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
base64
bigdecimal
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.88.0)
aws-sdk-core (~> 3, >= 3.201.0)
logger
aws-sdk-kms (1.112.0)
aws-sdk-core (~> 3, >= 3.231.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.156.0)
aws-sdk-core (~> 3, >= 3.201.0)
aws-sdk-s3 (1.199.0)
aws-sdk-core (~> 3, >= 3.231.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.9.1)
aws-sigv4 (1.12.1)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.2.0)
base64 (0.3.0)
bigdecimal (3.2.3)
claide (1.1.0)
colored (1.2)
colored2 (3.1.2)
commander (4.6.0)
highline (~> 2.0.0)
declarative (0.0.20)
digest-crc (0.6.5)
digest-crc (0.7.0)
rake (>= 12.0.0, < 14.0.0)
domain_name (0.6.20240107)
dotenv (2.8.1)
emoji_regex (3.2.3)
excon (0.111.0)
faraday (1.10.3)
excon (0.112.0)
faraday (1.10.4)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
@@ -55,20 +60,20 @@ GEM
faraday (>= 0.8.0)
http-cookie (~> 1.0.0)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.0)
faraday-em_synchrony (1.0.1)
faraday-excon (1.1.0)
faraday-httpclient (1.0.1)
faraday-multipart (1.0.4)
multipart-post (~> 2)
faraday-multipart (1.1.1)
multipart-post (~> 2.0)
faraday-net_http (1.0.2)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
faraday-retry (1.0.3)
faraday_middleware (1.2.0)
faraday_middleware (1.2.1)
faraday (~> 1.0)
fastimage (2.3.1)
fastlane (2.222.0)
fastimage (2.4.0)
fastlane (2.228.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
@@ -84,6 +89,7 @@ GEM
faraday-cookie_jar (~> 0.0.6)
faraday_middleware (~> 1.0)
fastimage (>= 2.1.0, < 3.0.0)
fastlane-sirp (>= 1.0.0)
gh_inspector (>= 1.1.2, < 2.0.0)
google-apis-androidpublisher_v3 (~> 0.3)
google-apis-playcustomapp_v1 (~> 0.1)
@@ -107,9 +113,11 @@ GEM
tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0)
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.3.0)
xcpretty (~> 0.4.1)
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
fastlane-plugin-versioning (0.5.2)
fastlane-plugin-versioning (0.7.1)
fastlane-sirp (1.0.0)
sysrandom (~> 1.0)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.54.0)
google-apis-core (>= 0.11.0, < 2.a)
@@ -127,12 +135,12 @@ GEM
google-apis-core (>= 0.11.0, < 2.a)
google-apis-storage_v1 (0.31.0)
google-apis-core (>= 0.11.0, < 2.a)
google-cloud-core (1.7.0)
google-cloud-core (1.8.0)
google-cloud-env (>= 1.0, < 3.a)
google-cloud-errors (~> 1.0)
google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.4.0)
google-cloud-errors (1.5.0)
google-cloud-storage (1.47.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
@@ -148,45 +156,47 @@ GEM
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
highline (2.0.3)
http-cookie (1.0.6)
http-cookie (1.0.8)
domain_name (~> 0.5)
httpclient (2.8.3)
httpclient (2.9.0)
mutex_m
jmespath (1.6.2)
json (2.7.2)
jwt (2.8.2)
json (2.15.0)
jwt (2.10.2)
base64
logger (1.7.0)
mini_magick (4.13.2)
mini_mime (1.1.5)
multi_json (1.15.0)
multi_json (1.17.0)
multipart-post (2.4.1)
nanaimo (0.3.0)
naturally (2.2.1)
mutex_m (0.3.0)
nanaimo (0.4.0)
naturally (2.3.0)
nkf (0.2.0)
optparse (0.5.0)
optparse (0.6.0)
os (1.1.4)
plist (3.7.1)
public_suffix (6.0.1)
rake (13.2.1)
plist (3.7.2)
public_suffix (6.0.2)
rake (13.3.0)
representable (3.2.0)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0)
retriable (3.1.2)
rexml (3.2.9)
strscan
rouge (2.0.7)
rexml (3.4.4)
rouge (3.28.0)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
rubyzip (2.4.1)
security (0.1.5)
signet (0.19.0)
signet (0.21.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0)
jwt (>= 1.5, < 4.0)
multi_json (~> 1.10)
simctl (1.6.10)
CFPropertyList
naturally
strscan (3.1.0)
sysrandom (1.0.5)
terminal-notifier (2.0.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
@@ -196,17 +206,17 @@ GEM
tty-spinner (0.9.3)
tty-cursor (~> 0.7)
uber (0.1.0)
unicode-display_width (2.5.0)
unicode-display_width (2.6.0)
word_wrap (1.0.0)
xcodeproj (1.24.0)
xcodeproj (1.27.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.3.0)
rexml (~> 3.2.4)
xcpretty (0.3.0)
rouge (~> 2.0.7)
nanaimo (~> 0.4.0)
rexml (>= 3.3.6, < 4.0)
xcpretty (0.4.1)
rouge (~> 3.28.0)
xcpretty-travis-formatter (1.0.1)
xcpretty (~> 0.2, >= 0.0.7)
@@ -214,11 +224,15 @@ PLATFORMS
arm64-darwin-21
arm64-darwin-22
arm64-darwin-23
arm64-darwin-24
x86_64-linux
DEPENDENCIES
abbrev
fastlane
fastlane-plugin-versioning
logger
mutex_m
BUNDLED WITH
2.2.32
2.6.9

View File

@@ -1,4 +1,4 @@
# Mobile app for wger Workout Manager
# Mobile app for wger
wger is a free, open-source flutter application that manages and tracks/logs
your exercises and personal workouts, weight, and diet plans. This is the mobile
@@ -7,7 +7,7 @@ app written with Flutter, it talks via REST with the main server.
If you want to contribute, hop on the Discord server and say hi!
<p>
<p align="center">
<img src="https://raw.githubusercontent.com/wger-project/flutter/master/fastlane/metadata/android/en-US/images/phoneScreenshots/01%20-%20dashboard.png" width="200" alt="" />
<img src="https://raw.githubusercontent.com/wger-project/flutter/master/fastlane/metadata/android/en-US/images/phoneScreenshots/04%20-%20measurements.png" width="200" alt="" />
@@ -17,61 +17,45 @@ If you want to contribute, hop on the Discord server and say hi!
## Installation
[<img src="https://play.google.com/intl/en_us/badges/images/generic/en-play-badge.png"
[<img src="https://raw.githubusercontent.com/wger-project/wger/refs/heads/master/wger/core/static/images/logos/play-store/badge.svg"
alt="Get it on Google Play"
height="80">](https://play.google.com/store/apps/details?id=de.wger.flutter)
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
height="55">](https://play.google.com/store/apps/details?id=de.wger.flutter)
[<img src="https://raw.githubusercontent.com/wger-project/wger/refs/heads/master/wger/core/static/images/logos/fdroid/get-it-on.svg"
alt="Get it on F-Droid"
height="80">](https://f-droid.org/packages/de.wger.flutter/)
height="55">](https://f-droid.org/packages/de.wger.flutter/)
[<img src="https://raw.githubusercontent.com/wger-project/wger/refs/heads/master/wger/core/static/images/logos/app-store/black.svg"
alt="Download on the App Store"
height="55">](https://apps.apple.com/us/app/wger-workout-manager/id6502226792)
[<img src="https://raw.githubusercontent.com/wger-project/wger/refs/heads/master/wger/core/static/images/logos/flathub/black.svg"
alt="Get it on Flathub"
height="55">](https://flathub.org/apps/de.wger.flutter)
## Development
## Developing and contributing
### 1
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.
Install the [wger server](https://github.com/wger-project/wger), the easiest way
is to start the development docker-compose: <https://github.com/wger-project/docker>
For this, wed love your help! Whether its code, translations, exercises or
reporting issues and ideas, check out our
[contribution guide](https://wger.readthedocs.io/en/latest/contributing.html)
to get started.
Alternatively, you can use the test server (the db is reset every day):
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`
* API key: `31e2ea0322c07b9df583a9b6d1e794f7139e78d4`
### 2
Install Flutter and all its dependencies, and create a new virtual device:
<https://flutter.dev/docs/get-started/install>.
The app currently uses flutter 3.22
### 3
The application will complain about an API key not being set. You can just
ignore this during development, this is only important if you want to register
directly over the app. If you just want to login, you can skip this section.
If you want to register directly over the app, you need to set a user on the backend
that is allowed to do this. For this, create/register a new user, generate an api key
and run ``python3 manage.py add-user-rest theusername`` (you can later list all the
registered users with ``python3 manage.py list-users-api``).
Then create a new file ``wger.properties`` in ``fastlane/metadata/envfiles/`` and
add the key:
```properties
WGER_API_KEY=123456
```
Alternatively, add the key as an environment variables, e.g. by running the `source`
command on the file.
### 4
Start the application with ``flutter run`` or use your IDE
(please note that depending on how you run your emulator you will need to change the IP address of
the server)
You can run the tests with the ``flutter test``
## Translation

View File

@@ -19,6 +19,10 @@ analyzer:
# Please see https://github.com/flutter/flutter/pull/24528 for details.
sdk_version_async_exported_from_core: ignore
formatter:
page_width: 100
trailing_commas: preserve
linter:
rules:
# These rules are documented on and in the same order as
@@ -165,8 +169,6 @@ dart_code_metrics:
- avoid-passing-self-as-argument: false # fairly harmless. and e.g. drift calls are like this
- avoid-passing-async-when-sync-expected: false # we really like to do this in onTap() etc, and it seems harmless
- prefer-match-file-name: false # dieter wants to enable this. but requires a lot of renames. what does roland think?
formatter:
indent: 0
line-length: 100
cascading-widget-extensions: false

View File

@@ -12,16 +12,6 @@ if (localPropertiesFile.exists()) {
}
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
// Keys for the android play store
def keystoreProperties = new Properties()
@@ -30,57 +20,29 @@ if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
// Key for wger.de REST API
def wgerProperties = new Properties()
def localMapsPropertiesFile = rootProject.file('../fastlane/metadata/envfiles/wger.properties')
if (localMapsPropertiesFile.exists()) {
project.logger.info('Load maps properties from local file')
localMapsPropertiesFile.withReader('UTF-8') { reader ->
wgerProperties.load(reader)
}
} else {
project.logger.info('Load maps properties from environment')
try {
wgerProperties['WGER_API_KEY'] = System.getenv('WGER_API_KEY')
} catch (NullPointerException e) {
project.logger.warn('Failed to load WGER_API_KEY from environment.', e)
}
}
def wgerApiKey = wgerProperties.getProperty('WGER_API_KEY')
if (wgerApiKey == null) {
wgerApiKey = ""
project.logger.error('Wger Api Key not configured. Set it in `/fastlane/metadata/android/envfiles/wger.properties` or in the environment variable `WGER_API_KEY`')
}
android {
compileSdkVersion 34
ndkVersion "25.1.8937393"
namespace = "de.wger.flutter"
compileSdkVersion 36
ndkVersion "28.2.13676358"
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = '1.8'
jvmTarget = '11'
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
// Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "de.wger.flutter"
minSdkVersion 21
targetSdkVersion 34
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
manifestPlaceholders += [WGER_API_KEY: wgerApiKey]
minSdkVersion = flutter.minSdkVersion
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName
}
signingConfigs {
@@ -93,8 +55,6 @@ android {
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.release
}
debug {

View File

@@ -26,15 +26,9 @@
android:name="${applicationName}"
android:label="wger"
android:icon="@mipmap/ic_launcher"
android:enableOnBackInvokedCallback="true"
android:networkSecurityConfig="@xml/network_security_config">
<meta-data
android:name="wger.api_key"
android:value="${WGER_API_KEY}" />
<meta-data
android:name="wger.check_min_app_version"
android:value="true" />
<activity
android:name=".MainActivity"
android:exported="true"

View File

@@ -6,13 +6,66 @@ allprojects {
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
// Workaround for APK builds - https://github.com/flutter/flutter/issues/153281
subprojects {
afterEvaluate { project ->
if (project.extensions.findByName("android") != null) {
Integer pluginCompileSdk = project.android.compileSdk
if (pluginCompileSdk != null && pluginCompileSdk < 31) {
project.logger.error(
"Warning: Overriding compileSdk version in Flutter plugin: "
+ project.name
+ " from "
+ pluginCompileSdk
+ " to 31 (to work around https://issuetracker.google.com/issues/199180389)."
+ "\nIf there is not a new version of " + project.name + ", consider filing an issue against "
+ project.name
+ " to increase their compileSdk to the latest (otherwise try updating to the latest version)."
)
project.android {
compileSdk 34
}
}
}
}
}
// Workaround for " Could not create an instance of type com.android.build.api.variant.impl.LibraryVariantBuilderImpl." error
// Note that this instance seems to be caused by flutter_barcode_scanner, which hasn't been
// updated in three years, might be time to look for a different package
subprojects {
afterEvaluate { project ->
if (project.hasProperty('android')) {
project.android {
if (namespace == null) {
project.logger.error(
"Warning: project "
+ project.name
+ " has no namespace set, this will prevent compilation, "
+ " setting one now to "
+ project.group
+ "\nIf there is not a new version of " + project.name + ", consider filing an issue against "
+ project.name
)
namespace project.group
}
}
}
}
}
subprojects {
project.evaluationDependsOn(':app')
}
tasks.register("clean", Delete) {
delete rootProject.buildDir
}

View File

@@ -1,4 +1,4 @@
org.gradle.jvmargs=-Xmx1536M
org.gradle.jvmargs=-Xmx2048M
android.enableR8=true
android.useAndroidX=true
android.enableJetifier=true

View File

@@ -1,6 +1,5 @@
#Fri Jun 23 08:50:38 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip

View File

@@ -18,8 +18,8 @@ pluginManagement {
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "7.3.1" apply false
id "org.jetbrains.kotlin.android" version "2.0.21" apply false
id "com.android.application" version "8.6.0" apply false
id "org.jetbrains.kotlin.android" version "2.1.20" apply false
}
include ":app"

View File

@@ -1,72 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!-- License: CC0. Made by SVG Repo: https://www.svgrepo.com/svg/150226/meal -->
<svg
version="1.1"
id="Layer_1"
x="0px"
y="0px"
viewBox="0 0 512.002 512.002"
style="enable-background:new 0 0 512.002 512.002;"
xml:space="preserve"
sodipodi:docname="ingredient-add.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs8">
</defs><sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="1.7363213"
inkscape:cx="256.00101"
inkscape:cy="257.15287"
inkscape:window-width="1920"
inkscape:window-height="1155"
inkscape:window-x="0"
inkscape:window-y="45"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" />
<g
id="g2"
transform="matrix(0.76051742,-0.76051742,0.76051742,0.76051742,-160.62472,302.94989)">
<path
class="st0"
d="m 345.114,155.163 c -13.113,-21.232 -35.755,-26.934 -50.43,-26.934 h -77.44 c -14.599,0 -37.318,5.702 -50.354,26.934 -12.022,19.752 -19.44,38.094 -23.656,54.958 -2.18,8.821 -3.507,17.252 -4.132,25.371 -3.361,40.596 10.46,71.586 15.378,93.054 1.25,5.542 3.202,12.412 5.695,20.142 2.424,7.73 5.313,16.314 8.516,25.371 12.8,36.38 29.976,79.24 37.858,97.582 15.612,36.456 35.052,40.359 49.415,40.359 14.439,0 33.879,-3.903 49.492,-40.359 11.633,-27.323 44.187,-109.292 51.993,-143.095 1.403,-6.167 3.59,-13.113 5.855,-20.843 2.264,-7.73 4.604,-16.162 6.48,-25.371 6.633,-32.553 7.181,-74.864 -24.67,-127.169 z m -57.535,127.169 c -7.021,0 -12.724,5.702 -12.724,12.724 0,6.944 5.702,12.647 12.724,12.647 h 43.18 c -1.395,4.742 -2.721,9.347 -3.735,13.814 -7.106,30.754 -38.43,110.016 -50.27,137.835 -9.179,21.422 -15.888,21.422 -20.79,21.422 -4.872,0 -11.535,0 -20.729,-21.46 -7.136,-16.62 -21.484,-52.352 -33.384,-85.255 h 18.358 c 7.029,0 12.724,-5.702 12.724,-12.647 0,-7.021 -5.695,-12.724 -12.724,-12.724 h -27.201 c -1.09,-3.294 -2.165,-6.541 -3.118,-9.582 -2.218,-6.9 -3.934,-12.922 -4.97,-17.527 -1.364,-5.954 -3.156,-12.03 -5.055,-18.456 -5.504,-18.632 -11.74,-39.75 -9.628,-65.236 0.061,-0.792 0.214,-1.6 0.29,-2.394 h 67.248 c 7.029,0 12.647,-5.702 12.647,-12.724 0,-6.945 -5.618,-12.648 -12.647,-12.648 H 175.78 c 3.957,-12.686 9.827,-25.653 17.725,-38.621 7.037,-11.466 21.011,-12.045 23.74,-12.045 h 77.44 c 3.842,0 16.917,0.877 23.763,11.946 27.94,45.887 25.76,80.055 20.736,104.702 -0.442,2.158 -0.968,4.155 -1.456,6.229 z"
id="path1"
style="fill:#000000" />
<polygon
class="st0"
points="259.501,20.515 260.545,71.822 248.836,71.822 248.836,0 210.062,3.423 213.965,36.478 224.371,75.245 216.565,78.668 197.049,31.927 169.718,42.189 194.7,110.588 315.451,110.588 336.263,50.163 305.036,47.876 298.534,87.786 288.127,85.506 292.031,25.082 "
id="polygon1"
style="fill:#000000" />
</g><circle
id="path2"
style="fill:#000000;stroke:#000000;stroke-width:0.2"
cx="521.88666"
cy="45.191727"
r="0.0043425169" /><g
id="Page-1"
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
transform="matrix(29.995699,0,0,29.995699,241.90437,1.6845255)"><g
id="Dribbble-Light-Preview"
transform="translate(-345,-206)"
fill="#000000"><g
id="icons"
transform="translate(56,160)"><polygon
id="plus_mini-[#1523]"
points="298,49 298,51 294.625,51 294.625,54 292.375,54 292.375,51 289,51 289,49 292.375,49 292.375,46 294.625,46 294.625,49 " /></g></g></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="Layer_1" x="0" y="0" version="1.1" viewBox="0 0 512.002 512.002" xml:space="preserve" style="enable-background:new 0 0 512.002 512.002"><g id="g2" transform="matrix(0.76051742,-0.76051742,0.76051742,0.76051742,-160.62472,302.94989)"><path id="path1" d="m 345.114,155.163 c -13.113,-21.232 -35.755,-26.934 -50.43,-26.934 h -77.44 c -14.599,0 -37.318,5.702 -50.354,26.934 -12.022,19.752 -19.44,38.094 -23.656,54.958 -2.18,8.821 -3.507,17.252 -4.132,25.371 -3.361,40.596 10.46,71.586 15.378,93.054 1.25,5.542 3.202,12.412 5.695,20.142 2.424,7.73 5.313,16.314 8.516,25.371 12.8,36.38 29.976,79.24 37.858,97.582 15.612,36.456 35.052,40.359 49.415,40.359 14.439,0 33.879,-3.903 49.492,-40.359 11.633,-27.323 44.187,-109.292 51.993,-143.095 1.403,-6.167 3.59,-13.113 5.855,-20.843 2.264,-7.73 4.604,-16.162 6.48,-25.371 6.633,-32.553 7.181,-74.864 -24.67,-127.169 z m -57.535,127.169 c -7.021,0 -12.724,5.702 -12.724,12.724 0,6.944 5.702,12.647 12.724,12.647 h 43.18 c -1.395,4.742 -2.721,9.347 -3.735,13.814 -7.106,30.754 -38.43,110.016 -50.27,137.835 -9.179,21.422 -15.888,21.422 -20.79,21.422 -4.872,0 -11.535,0 -20.729,-21.46 -7.136,-16.62 -21.484,-52.352 -33.384,-85.255 h 18.358 c 7.029,0 12.724,-5.702 12.724,-12.647 0,-7.021 -5.695,-12.724 -12.724,-12.724 h -27.201 c -1.09,-3.294 -2.165,-6.541 -3.118,-9.582 -2.218,-6.9 -3.934,-12.922 -4.97,-17.527 -1.364,-5.954 -3.156,-12.03 -5.055,-18.456 -5.504,-18.632 -11.74,-39.75 -9.628,-65.236 0.061,-0.792 0.214,-1.6 0.29,-2.394 h 67.248 c 7.029,0 12.647,-5.702 12.647,-12.724 0,-6.945 -5.618,-12.648 -12.647,-12.648 H 175.78 c 3.957,-12.686 9.827,-25.653 17.725,-38.621 7.037,-11.466 21.011,-12.045 23.74,-12.045 h 77.44 c 3.842,0 16.917,0.877 23.763,11.946 27.94,45.887 25.76,80.055 20.736,104.702 -0.442,2.158 -0.968,4.155 -1.456,6.229 z" class="st0" style="fill:#000"/><polygon id="polygon1" points="259.501 20.515 260.545 71.822 248.836 71.822 248.836 0 210.062 3.423 213.965 36.478 224.371 75.245 216.565 78.668 197.049 31.927 169.718 42.189 194.7 110.588 315.451 110.588 336.263 50.163 305.036 47.876 298.534 87.786 288.127 85.506 292.031 25.082" class="st0" style="fill:#000"/></g><circle id="path2" cx="521.887" cy="45.192" r=".004" style="fill:#000;stroke:#000;stroke-width:.2"/><g id="Page-1" fill="none" fill-rule="evenodd" stroke="none" stroke-width="1" transform="matrix(29.995699,0,0,29.995699,241.90437,1.6845255)"><g id="Dribbble-Light-Preview" fill="#000" transform="translate(-345,-206)"><g id="icons" transform="translate(56,160)"><polygon id="plus_mini-[#1523]" points="298 49 298 51 294.625 51 294.625 54 292.375 54 292.375 51 289 51 289 49 292.375 49 292.375 46 294.625 46 294.625 49"/></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1,65 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!-- License: CC0. Made by SVG Repo: https://www.svgrepo.com/svg/150226/meal -->
<svg
version="1.1"
id="Layer_1"
x="0px"
y="0px"
viewBox="0 0 512.002 512.002"
style="enable-background:new 0 0 512.002 512.002;"
xml:space="preserve"
sodipodi:docname="ingredient-check.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs8">
</defs><sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="1.7363213"
inkscape:cx="274.43077"
inkscape:cy="257.15287"
inkscape:window-width="1920"
inkscape:window-height="1155"
inkscape:window-x="0"
inkscape:window-y="45"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" />
<g
id="g2"
transform="matrix(0.76051742,-0.76051742,0.76051742,0.76051742,-160.62472,302.94989)">
<path
class="st0"
d="m 345.114,155.163 c -13.113,-21.232 -35.755,-26.934 -50.43,-26.934 h -77.44 c -14.599,0 -37.318,5.702 -50.354,26.934 -12.022,19.752 -19.44,38.094 -23.656,54.958 -2.18,8.821 -3.507,17.252 -4.132,25.371 -3.361,40.596 10.46,71.586 15.378,93.054 1.25,5.542 3.202,12.412 5.695,20.142 2.424,7.73 5.313,16.314 8.516,25.371 12.8,36.38 29.976,79.24 37.858,97.582 15.612,36.456 35.052,40.359 49.415,40.359 14.439,0 33.879,-3.903 49.492,-40.359 11.633,-27.323 44.187,-109.292 51.993,-143.095 1.403,-6.167 3.59,-13.113 5.855,-20.843 2.264,-7.73 4.604,-16.162 6.48,-25.371 6.633,-32.553 7.181,-74.864 -24.67,-127.169 z m -57.535,127.169 c -7.021,0 -12.724,5.702 -12.724,12.724 0,6.944 5.702,12.647 12.724,12.647 h 43.18 c -1.395,4.742 -2.721,9.347 -3.735,13.814 -7.106,30.754 -38.43,110.016 -50.27,137.835 -9.179,21.422 -15.888,21.422 -20.79,21.422 -4.872,0 -11.535,0 -20.729,-21.46 -7.136,-16.62 -21.484,-52.352 -33.384,-85.255 h 18.358 c 7.029,0 12.724,-5.702 12.724,-12.647 0,-7.021 -5.695,-12.724 -12.724,-12.724 h -27.201 c -1.09,-3.294 -2.165,-6.541 -3.118,-9.582 -2.218,-6.9 -3.934,-12.922 -4.97,-17.527 -1.364,-5.954 -3.156,-12.03 -5.055,-18.456 -5.504,-18.632 -11.74,-39.75 -9.628,-65.236 0.061,-0.792 0.214,-1.6 0.29,-2.394 h 67.248 c 7.029,0 12.647,-5.702 12.647,-12.724 0,-6.945 -5.618,-12.648 -12.647,-12.648 H 175.78 c 3.957,-12.686 9.827,-25.653 17.725,-38.621 7.037,-11.466 21.011,-12.045 23.74,-12.045 h 77.44 c 3.842,0 16.917,0.877 23.763,11.946 27.94,45.887 25.76,80.055 20.736,104.702 -0.442,2.158 -0.968,4.155 -1.456,6.229 z"
id="path1"
style="fill:#000000" />
<polygon
class="st0"
points="259.501,20.515 260.545,71.822 248.836,71.822 248.836,0 210.062,3.423 213.965,36.478 224.371,75.245 216.565,78.668 197.049,31.927 169.718,42.189 194.7,110.588 315.451,110.588 336.263,50.163 305.036,47.876 298.534,87.786 288.127,85.506 292.031,25.082 "
id="polygon1"
style="fill:#000000" />
</g><circle
id="path2"
style="fill:#000000;stroke:#000000;stroke-width:0.2"
cx="521.88666"
cy="45.191727"
r="0.0043425169" /><path
clip-rule="evenodd"
d="M 515.875,51.622857 349.49393,218.00373 253.80627,122.31651 303.7942,72.328499 349.49393,118.02824 465.88752,1.6348403 Z"
fill="#030708"
fill-rule="evenodd"
id="path1-3"
style="stroke-width:17.6734" /></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="Layer_1" x="0" y="0" version="1.1" viewBox="0 0 512.002 512.002" xml:space="preserve" style="enable-background:new 0 0 512.002 512.002"><g id="g2" transform="matrix(0.76051742,-0.76051742,0.76051742,0.76051742,-160.62472,302.94989)"><path id="path1" d="m 345.114,155.163 c -13.113,-21.232 -35.755,-26.934 -50.43,-26.934 h -77.44 c -14.599,0 -37.318,5.702 -50.354,26.934 -12.022,19.752 -19.44,38.094 -23.656,54.958 -2.18,8.821 -3.507,17.252 -4.132,25.371 -3.361,40.596 10.46,71.586 15.378,93.054 1.25,5.542 3.202,12.412 5.695,20.142 2.424,7.73 5.313,16.314 8.516,25.371 12.8,36.38 29.976,79.24 37.858,97.582 15.612,36.456 35.052,40.359 49.415,40.359 14.439,0 33.879,-3.903 49.492,-40.359 11.633,-27.323 44.187,-109.292 51.993,-143.095 1.403,-6.167 3.59,-13.113 5.855,-20.843 2.264,-7.73 4.604,-16.162 6.48,-25.371 6.633,-32.553 7.181,-74.864 -24.67,-127.169 z m -57.535,127.169 c -7.021,0 -12.724,5.702 -12.724,12.724 0,6.944 5.702,12.647 12.724,12.647 h 43.18 c -1.395,4.742 -2.721,9.347 -3.735,13.814 -7.106,30.754 -38.43,110.016 -50.27,137.835 -9.179,21.422 -15.888,21.422 -20.79,21.422 -4.872,0 -11.535,0 -20.729,-21.46 -7.136,-16.62 -21.484,-52.352 -33.384,-85.255 h 18.358 c 7.029,0 12.724,-5.702 12.724,-12.647 0,-7.021 -5.695,-12.724 -12.724,-12.724 h -27.201 c -1.09,-3.294 -2.165,-6.541 -3.118,-9.582 -2.218,-6.9 -3.934,-12.922 -4.97,-17.527 -1.364,-5.954 -3.156,-12.03 -5.055,-18.456 -5.504,-18.632 -11.74,-39.75 -9.628,-65.236 0.061,-0.792 0.214,-1.6 0.29,-2.394 h 67.248 c 7.029,0 12.647,-5.702 12.647,-12.724 0,-6.945 -5.618,-12.648 -12.647,-12.648 H 175.78 c 3.957,-12.686 9.827,-25.653 17.725,-38.621 7.037,-11.466 21.011,-12.045 23.74,-12.045 h 77.44 c 3.842,0 16.917,0.877 23.763,11.946 27.94,45.887 25.76,80.055 20.736,104.702 -0.442,2.158 -0.968,4.155 -1.456,6.229 z" class="st0" style="fill:#000"/><polygon id="polygon1" points="259.501 20.515 260.545 71.822 248.836 71.822 248.836 0 210.062 3.423 213.965 36.478 224.371 75.245 216.565 78.668 197.049 31.927 169.718 42.189 194.7 110.588 315.451 110.588 336.263 50.163 305.036 47.876 298.534 87.786 288.127 85.506 292.031 25.082" class="st0" style="fill:#000"/></g><circle id="path2" cx="521.887" cy="45.192" r=".004" style="fill:#000;stroke:#000;stroke-width:.2"/><path id="path1-3" fill="#030708" fill-rule="evenodd" d="M 515.875,51.622857 349.49393,218.00373 253.80627,122.31651 303.7942,72.328499 349.49393,118.02824 465.88752,1.6348403 Z" clip-rule="evenodd" style="stroke-width:17.6734"/></svg>

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -1,86 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!-- License: CC0. Made by SVG Repo: https://www.svgrepo.com/svg/150226/meal -->
<svg
version="1.1"
id="Layer_1"
x="0px"
y="0px"
viewBox="0 0 512.002 512.002"
style="enable-background:new 0 0 512.002 512.002;"
xml:space="preserve"
sodipodi:docname="ingredient-diary.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs8">
</defs><sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="1.7363213"
inkscape:cx="256.57694"
inkscape:cy="257.15287"
inkscape:window-width="1920"
inkscape:window-height="1155"
inkscape:window-x="0"
inkscape:window-y="45"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" />
<g
id="g2"
transform="matrix(0.76051742,-0.76051742,0.76051742,0.76051742,-160.62472,302.94989)">
<path
class="st0"
d="m 345.114,155.163 c -13.113,-21.232 -35.755,-26.934 -50.43,-26.934 h -77.44 c -14.599,0 -37.318,5.702 -50.354,26.934 -12.022,19.752 -19.44,38.094 -23.656,54.958 -2.18,8.821 -3.507,17.252 -4.132,25.371 -3.361,40.596 10.46,71.586 15.378,93.054 1.25,5.542 3.202,12.412 5.695,20.142 2.424,7.73 5.313,16.314 8.516,25.371 12.8,36.38 29.976,79.24 37.858,97.582 15.612,36.456 35.052,40.359 49.415,40.359 14.439,0 33.879,-3.903 49.492,-40.359 11.633,-27.323 44.187,-109.292 51.993,-143.095 1.403,-6.167 3.59,-13.113 5.855,-20.843 2.264,-7.73 4.604,-16.162 6.48,-25.371 6.633,-32.553 7.181,-74.864 -24.67,-127.169 z m -57.535,127.169 c -7.021,0 -12.724,5.702 -12.724,12.724 0,6.944 5.702,12.647 12.724,12.647 h 43.18 c -1.395,4.742 -2.721,9.347 -3.735,13.814 -7.106,30.754 -38.43,110.016 -50.27,137.835 -9.179,21.422 -15.888,21.422 -20.79,21.422 -4.872,0 -11.535,0 -20.729,-21.46 -7.136,-16.62 -21.484,-52.352 -33.384,-85.255 h 18.358 c 7.029,0 12.724,-5.702 12.724,-12.647 0,-7.021 -5.695,-12.724 -12.724,-12.724 h -27.201 c -1.09,-3.294 -2.165,-6.541 -3.118,-9.582 -2.218,-6.9 -3.934,-12.922 -4.97,-17.527 -1.364,-5.954 -3.156,-12.03 -5.055,-18.456 -5.504,-18.632 -11.74,-39.75 -9.628,-65.236 0.061,-0.792 0.214,-1.6 0.29,-2.394 h 67.248 c 7.029,0 12.647,-5.702 12.647,-12.724 0,-6.945 -5.618,-12.648 -12.647,-12.648 H 175.78 c 3.957,-12.686 9.827,-25.653 17.725,-38.621 7.037,-11.466 21.011,-12.045 23.74,-12.045 h 77.44 c 3.842,0 16.917,0.877 23.763,11.946 27.94,45.887 25.76,80.055 20.736,104.702 -0.442,2.158 -0.968,4.155 -1.456,6.229 z"
id="path1"
style="fill:#000000" />
<polygon
class="st0"
points="259.501,20.515 260.545,71.822 248.836,71.822 248.836,0 210.062,3.423 213.965,36.478 224.371,75.245 216.565,78.668 197.049,31.927 169.718,42.189 194.7,110.588 315.451,110.588 336.263,50.163 305.036,47.876 298.534,87.786 288.127,85.506 292.031,25.082 "
id="polygon1"
style="fill:#000000" />
</g><circle
id="path2"
style="fill:#000000;stroke:#000000;stroke-width:0.2"
cx="521.88666"
cy="45.191727"
r="0.0043425169" /><g
id="g8-6"
transform="matrix(0.4527684,0,0,0.4527684,296.76275,1.8149751)">
<g
id="g7-7">
<g
id="g6-5">
<path
d="m 380.68,372.453 c -13.938,0 -25.284,11.342 -25.284,25.301 v 54.441 l 80.034,-79.742 z"
id="path1-3" />
<path
d="m 433.745,492.197 c 23.156,0 41.912,-18.76 41.912,-41.898 V 379.285 L 362.338,492.197 Z"
id="path2-5" />
<path
d="M 433.745,0 H 100.255 C 77.537,0 59.15,18.11 58.486,40.653 h 39.691 c 9.479,-7.013 21.051,-10.876 33.139,-10.876 30.785,0 55.84,25.055 55.84,55.84 0,30.784 -25.055,55.826 -55.84,55.826 -11.992,0 -23.527,-3.863 -33.059,-10.84 H 58.355 v 70.543 h 39.822 c 9.479,-7.008 21.051,-10.871 33.139,-10.871 30.785,0 55.84,25.055 55.84,55.84 0,30.783 -25.055,55.84 -55.84,55.84 -11.992,0 -23.547,-3.859 -33.072,-10.854 H 58.355 v 70.543 h 39.822 c 9.492,-6.995 21.064,-10.857 33.139,-10.857 30.785,0 55.84,25.042 55.84,55.825 0,30.784 -25.055,55.84 -55.84,55.84 -11.992,0 -23.527,-3.861 -33.059,-10.84 h -39.77 c 0.715,22.524 19.082,40.586 41.77,40.586 h 221.904 v -94.445 c 0,-32.281 26.258,-58.537 58.52,-58.537 H 475.66 V 41.901 C 475.659,18.761 456.903,0 433.745,0 Z"
id="path3-6" />
<path
d="m 36.577,105.68 h 71.213 c 5.68,6.588 14.115,10.84 23.527,10.84 17.07,0 30.916,-13.827 30.916,-30.902 0,-17.071 -13.846,-30.912 -30.916,-30.912 -9.412,0 -17.848,4.14 -23.527,10.872 H 36.577 c -11.066,0 -20.039,8.974 -20.039,20.04 -0.001,11.101 8.972,20.062 20.039,20.062 z"
id="path4-2" />
<path
d="m 36.577,266.172 h 71.213 c 5.68,6.606 14.115,10.858 23.527,10.858 17.07,0 30.916,-13.846 30.916,-30.915 0,-17.072 -13.846,-30.916 -30.916,-30.916 -9.412,0 -17.848,4.139 -23.527,10.875 H 36.577 c -11.066,0 -20.039,8.975 -20.039,20.059 0,11.084 8.972,20.039 20.039,20.039 z"
id="path5-9" />
<path
d="m 131.316,437.523 c 17.07,0 30.916,-13.839 30.916,-30.91 0,-17.074 -13.846,-30.902 -30.916,-30.902 -9.412,0 -17.848,4.141 -23.527,10.857 H 36.577 c -11.066,0 -20.039,8.975 -20.039,20.059 0,11.084 8.973,20.06 20.039,20.06 h 71.213 c 5.679,6.584 14.115,10.836 23.526,10.836 z"
id="path6-1" />
</g>
</g>
</g></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="Layer_1" x="0" y="0" version="1.1" viewBox="0 0 512.002 512.002" xml:space="preserve" style="enable-background:new 0 0 512.002 512.002"><g id="g2" transform="matrix(0.76051742,-0.76051742,0.76051742,0.76051742,-160.62472,302.94989)"><path id="path1" d="m 345.114,155.163 c -13.113,-21.232 -35.755,-26.934 -50.43,-26.934 h -77.44 c -14.599,0 -37.318,5.702 -50.354,26.934 -12.022,19.752 -19.44,38.094 -23.656,54.958 -2.18,8.821 -3.507,17.252 -4.132,25.371 -3.361,40.596 10.46,71.586 15.378,93.054 1.25,5.542 3.202,12.412 5.695,20.142 2.424,7.73 5.313,16.314 8.516,25.371 12.8,36.38 29.976,79.24 37.858,97.582 15.612,36.456 35.052,40.359 49.415,40.359 14.439,0 33.879,-3.903 49.492,-40.359 11.633,-27.323 44.187,-109.292 51.993,-143.095 1.403,-6.167 3.59,-13.113 5.855,-20.843 2.264,-7.73 4.604,-16.162 6.48,-25.371 6.633,-32.553 7.181,-74.864 -24.67,-127.169 z m -57.535,127.169 c -7.021,0 -12.724,5.702 -12.724,12.724 0,6.944 5.702,12.647 12.724,12.647 h 43.18 c -1.395,4.742 -2.721,9.347 -3.735,13.814 -7.106,30.754 -38.43,110.016 -50.27,137.835 -9.179,21.422 -15.888,21.422 -20.79,21.422 -4.872,0 -11.535,0 -20.729,-21.46 -7.136,-16.62 -21.484,-52.352 -33.384,-85.255 h 18.358 c 7.029,0 12.724,-5.702 12.724,-12.647 0,-7.021 -5.695,-12.724 -12.724,-12.724 h -27.201 c -1.09,-3.294 -2.165,-6.541 -3.118,-9.582 -2.218,-6.9 -3.934,-12.922 -4.97,-17.527 -1.364,-5.954 -3.156,-12.03 -5.055,-18.456 -5.504,-18.632 -11.74,-39.75 -9.628,-65.236 0.061,-0.792 0.214,-1.6 0.29,-2.394 h 67.248 c 7.029,0 12.647,-5.702 12.647,-12.724 0,-6.945 -5.618,-12.648 -12.647,-12.648 H 175.78 c 3.957,-12.686 9.827,-25.653 17.725,-38.621 7.037,-11.466 21.011,-12.045 23.74,-12.045 h 77.44 c 3.842,0 16.917,0.877 23.763,11.946 27.94,45.887 25.76,80.055 20.736,104.702 -0.442,2.158 -0.968,4.155 -1.456,6.229 z" class="st0" style="fill:#000"/><polygon id="polygon1" points="259.501 20.515 260.545 71.822 248.836 71.822 248.836 0 210.062 3.423 213.965 36.478 224.371 75.245 216.565 78.668 197.049 31.927 169.718 42.189 194.7 110.588 315.451 110.588 336.263 50.163 305.036 47.876 298.534 87.786 288.127 85.506 292.031 25.082" class="st0" style="fill:#000"/></g><circle id="path2" cx="521.887" cy="45.192" r=".004" style="fill:#000;stroke:#000;stroke-width:.2"/><g id="g8-6" transform="matrix(0.4527684,0,0,0.4527684,296.76275,1.8149751)"><g id="g7-7"><g id="g6-5"><path id="path1-3" d="m 380.68,372.453 c -13.938,0 -25.284,11.342 -25.284,25.301 v 54.441 l 80.034,-79.742 z"/><path id="path2-5" d="m 433.745,492.197 c 23.156,0 41.912,-18.76 41.912,-41.898 V 379.285 L 362.338,492.197 Z"/><path id="path3-6" d="M 433.745,0 H 100.255 C 77.537,0 59.15,18.11 58.486,40.653 h 39.691 c 9.479,-7.013 21.051,-10.876 33.139,-10.876 30.785,0 55.84,25.055 55.84,55.84 0,30.784 -25.055,55.826 -55.84,55.826 -11.992,0 -23.527,-3.863 -33.059,-10.84 H 58.355 v 70.543 h 39.822 c 9.479,-7.008 21.051,-10.871 33.139,-10.871 30.785,0 55.84,25.055 55.84,55.84 0,30.783 -25.055,55.84 -55.84,55.84 -11.992,0 -23.547,-3.859 -33.072,-10.854 H 58.355 v 70.543 h 39.822 c 9.492,-6.995 21.064,-10.857 33.139,-10.857 30.785,0 55.84,25.042 55.84,55.825 0,30.784 -25.055,55.84 -55.84,55.84 -11.992,0 -23.527,-3.861 -33.059,-10.84 h -39.77 c 0.715,22.524 19.082,40.586 41.77,40.586 h 221.904 v -94.445 c 0,-32.281 26.258,-58.537 58.52,-58.537 H 475.66 V 41.901 C 475.659,18.761 456.903,0 433.745,0 Z"/><path id="path4-2" d="m 36.577,105.68 h 71.213 c 5.68,6.588 14.115,10.84 23.527,10.84 17.07,0 30.916,-13.827 30.916,-30.902 0,-17.071 -13.846,-30.912 -30.916,-30.912 -9.412,0 -17.848,4.14 -23.527,10.872 H 36.577 c -11.066,0 -20.039,8.974 -20.039,20.04 -0.001,11.101 8.972,20.062 20.039,20.062 z"/><path id="path5-9" d="m 36.577,266.172 h 71.213 c 5.68,6.606 14.115,10.858 23.527,10.858 17.07,0 30.916,-13.846 30.916,-30.915 0,-17.072 -13.846,-30.916 -30.916,-30.916 -9.412,0 -17.848,4.139 -23.527,10.875 H 36.577 c -11.066,0 -20.039,8.975 -20.039,20.059 0,11.084 8.972,20.039 20.039,20.039 z"/><path id="path6-1" d="m 131.316,437.523 c 17.07,0 30.916,-13.839 30.916,-30.91 0,-17.074 -13.846,-30.902 -30.916,-30.902 -9.412,0 -17.848,4.141 -23.527,10.857 H 36.577 c -11.066,0 -20.039,8.975 -20.039,20.059 0,11.084 8.973,20.06 20.039,20.06 h 71.213 c 5.679,6.584 14.115,10.836 23.526,10.836 z"/></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -1,68 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!-- License: CC0. Made by SVG Repo: https://www.svgrepo.com/svg/150226/meal -->
<svg
version="1.1"
id="Layer_1"
x="0px"
y="0px"
viewBox="0 0 512.002 512.002"
style="enable-background:new 0 0 512.002 512.002;"
xml:space="preserve"
sodipodi:docname="ingredient-write.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs8">
</defs><sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="1.7363213"
inkscape:cx="256.57694"
inkscape:cy="256.57694"
inkscape:window-width="1920"
inkscape:window-height="1155"
inkscape:window-x="0"
inkscape:window-y="45"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" />
<g
id="g2"
transform="matrix(0.76051742,-0.76051742,0.76051742,0.76051742,-160.62472,302.94989)">
<path
class="st0"
d="m 345.114,155.163 c -13.113,-21.232 -35.755,-26.934 -50.43,-26.934 h -77.44 c -14.599,0 -37.318,5.702 -50.354,26.934 -12.022,19.752 -19.44,38.094 -23.656,54.958 -2.18,8.821 -3.507,17.252 -4.132,25.371 -3.361,40.596 10.46,71.586 15.378,93.054 1.25,5.542 3.202,12.412 5.695,20.142 2.424,7.73 5.313,16.314 8.516,25.371 12.8,36.38 29.976,79.24 37.858,97.582 15.612,36.456 35.052,40.359 49.415,40.359 14.439,0 33.879,-3.903 49.492,-40.359 11.633,-27.323 44.187,-109.292 51.993,-143.095 1.403,-6.167 3.59,-13.113 5.855,-20.843 2.264,-7.73 4.604,-16.162 6.48,-25.371 6.633,-32.553 7.181,-74.864 -24.67,-127.169 z m -57.535,127.169 c -7.021,0 -12.724,5.702 -12.724,12.724 0,6.944 5.702,12.647 12.724,12.647 h 43.18 c -1.395,4.742 -2.721,9.347 -3.735,13.814 -7.106,30.754 -38.43,110.016 -50.27,137.835 -9.179,21.422 -15.888,21.422 -20.79,21.422 -4.872,0 -11.535,0 -20.729,-21.46 -7.136,-16.62 -21.484,-52.352 -33.384,-85.255 h 18.358 c 7.029,0 12.724,-5.702 12.724,-12.647 0,-7.021 -5.695,-12.724 -12.724,-12.724 h -27.201 c -1.09,-3.294 -2.165,-6.541 -3.118,-9.582 -2.218,-6.9 -3.934,-12.922 -4.97,-17.527 -1.364,-5.954 -3.156,-12.03 -5.055,-18.456 -5.504,-18.632 -11.74,-39.75 -9.628,-65.236 0.061,-0.792 0.214,-1.6 0.29,-2.394 h 67.248 c 7.029,0 12.647,-5.702 12.647,-12.724 0,-6.945 -5.618,-12.648 -12.647,-12.648 H 175.78 c 3.957,-12.686 9.827,-25.653 17.725,-38.621 7.037,-11.466 21.011,-12.045 23.74,-12.045 h 77.44 c 3.842,0 16.917,0.877 23.763,11.946 27.94,45.887 25.76,80.055 20.736,104.702 -0.442,2.158 -0.968,4.155 -1.456,6.229 z"
id="path1"
style="fill:#000000" />
<polygon
class="st0"
points="259.501,20.515 260.545,71.822 248.836,71.822 248.836,0 210.062,3.423 213.965,36.478 224.371,75.245 216.565,78.668 197.049,31.927 169.718,42.189 194.7,110.588 315.451,110.588 336.263,50.163 305.036,47.876 298.534,87.786 288.127,85.506 292.031,25.082 "
id="polygon1"
style="fill:#000000" />
</g><circle
id="path2"
style="fill:#000000;stroke:#000000;stroke-width:0.2"
cx="521.88666"
cy="45.191727"
r="0.0043425169" /><path
d="M 576,657 H -64 c -24,0 -40,-16 -40,-40 0,-24 16,-40 40,-40 h 640 c 24,0 40,16 40,40 0,24 -16,40 -40,40 z"
id="path1-3"
style="stroke-width:40" /><g
id="g2-7"
transform="matrix(0,-3.2840933,3.2840933,0,211.59523,296.53997)">
<path
d="M 88.79,29.297 70.702,11.209 c -1.052,-1.052 -2.756,-1.052 -3.808,0 l -49.505,49.504 0.109,0.109 -0.171,-0.046 -6.772,25.272 0.004,0.001 c -0.309,0.935 -0.103,2.004 0.642,2.748 0.822,0.822 2.038,0.993 3.033,0.531 l 0.002,0.009 25.027,-6.706 -0.016,-0.059 0.038,0.038 49.505,-49.505 c 1.052,-1.052 1.052,-2.756 0,-3.808 z m -69.998,51.85 4.022,-15.009 10.988,10.988 z"
id="path1-5" />
</g></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="Layer_1" x="0" y="0" version="1.1" viewBox="0 0 512.002 512.002" xml:space="preserve" style="enable-background:new 0 0 512.002 512.002"><g id="g2" transform="matrix(0.76051742,-0.76051742,0.76051742,0.76051742,-160.62472,302.94989)"><path id="path1" d="m 345.114,155.163 c -13.113,-21.232 -35.755,-26.934 -50.43,-26.934 h -77.44 c -14.599,0 -37.318,5.702 -50.354,26.934 -12.022,19.752 -19.44,38.094 -23.656,54.958 -2.18,8.821 -3.507,17.252 -4.132,25.371 -3.361,40.596 10.46,71.586 15.378,93.054 1.25,5.542 3.202,12.412 5.695,20.142 2.424,7.73 5.313,16.314 8.516,25.371 12.8,36.38 29.976,79.24 37.858,97.582 15.612,36.456 35.052,40.359 49.415,40.359 14.439,0 33.879,-3.903 49.492,-40.359 11.633,-27.323 44.187,-109.292 51.993,-143.095 1.403,-6.167 3.59,-13.113 5.855,-20.843 2.264,-7.73 4.604,-16.162 6.48,-25.371 6.633,-32.553 7.181,-74.864 -24.67,-127.169 z m -57.535,127.169 c -7.021,0 -12.724,5.702 -12.724,12.724 0,6.944 5.702,12.647 12.724,12.647 h 43.18 c -1.395,4.742 -2.721,9.347 -3.735,13.814 -7.106,30.754 -38.43,110.016 -50.27,137.835 -9.179,21.422 -15.888,21.422 -20.79,21.422 -4.872,0 -11.535,0 -20.729,-21.46 -7.136,-16.62 -21.484,-52.352 -33.384,-85.255 h 18.358 c 7.029,0 12.724,-5.702 12.724,-12.647 0,-7.021 -5.695,-12.724 -12.724,-12.724 h -27.201 c -1.09,-3.294 -2.165,-6.541 -3.118,-9.582 -2.218,-6.9 -3.934,-12.922 -4.97,-17.527 -1.364,-5.954 -3.156,-12.03 -5.055,-18.456 -5.504,-18.632 -11.74,-39.75 -9.628,-65.236 0.061,-0.792 0.214,-1.6 0.29,-2.394 h 67.248 c 7.029,0 12.647,-5.702 12.647,-12.724 0,-6.945 -5.618,-12.648 -12.647,-12.648 H 175.78 c 3.957,-12.686 9.827,-25.653 17.725,-38.621 7.037,-11.466 21.011,-12.045 23.74,-12.045 h 77.44 c 3.842,0 16.917,0.877 23.763,11.946 27.94,45.887 25.76,80.055 20.736,104.702 -0.442,2.158 -0.968,4.155 -1.456,6.229 z" class="st0" style="fill:#000"/><polygon id="polygon1" points="259.501 20.515 260.545 71.822 248.836 71.822 248.836 0 210.062 3.423 213.965 36.478 224.371 75.245 216.565 78.668 197.049 31.927 169.718 42.189 194.7 110.588 315.451 110.588 336.263 50.163 305.036 47.876 298.534 87.786 288.127 85.506 292.031 25.082" class="st0" style="fill:#000"/></g><circle id="path2" cx="521.887" cy="45.192" r=".004" style="fill:#000;stroke:#000;stroke-width:.2"/><path id="path1-3" d="M 576,657 H -64 c -24,0 -40,-16 -40,-40 0,-24 16,-40 40,-40 h 640 c 24,0 40,16 40,40 0,24 -16,40 -40,40 z" style="stroke-width:40"/><g id="g2-7" transform="matrix(0,-3.2840933,3.2840933,0,211.59523,296.53997)"><path id="path1-5" d="M 88.79,29.297 70.702,11.209 c -1.052,-1.052 -2.756,-1.052 -3.808,0 l -49.505,49.504 0.109,0.109 -0.171,-0.046 -6.772,25.272 0.004,0.001 c -0.309,0.935 -0.103,2.004 0.642,2.748 0.822,0.822 2.038,0.993 3.033,0.531 l 0.002,0.009 25.027,-6.706 -0.016,-0.059 0.038,0.038 49.505,-49.505 c 1.052,-1.052 1.052,-2.756 0,-3.808 z m -69.998,51.85 4.022,-15.009 10.988,10.988 z"/></g></svg>

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@@ -1,68 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!-- License: CC0. Made by SVG Repo: https://www.svgrepo.com/svg/150226/meal -->
<svg
version="1.1"
id="Layer_1"
x="0px"
y="0px"
viewBox="0 0 512.002 512.002"
style="enable-background:new 0 0 512.002 512.002;"
xml:space="preserve"
sodipodi:docname="meal-add.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs8">
</defs><sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="1.7363213"
inkscape:cx="256.00101"
inkscape:cy="257.15287"
inkscape:window-width="1920"
inkscape:window-height="1155"
inkscape:window-x="0"
inkscape:window-y="45"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" />
<circle
id="path2"
style="fill:#000000;stroke:#000000;stroke-width:0.2"
cx="521.88666"
cy="45.191727"
r="0.0043425169" /><g
id="Page-1"
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
transform="matrix(29.995699,0,0,29.995699,241.90437,1.6845255)"><g
id="Dribbble-Light-Preview"
transform="translate(-345,-206)"
fill="#000000"><g
id="icons"
transform="translate(56,160)"><polygon
id="plus_mini-[#1523]"
points="298,49 298,51 294.625,51 294.625,54 292.375,54 292.375,51 289,51 289,49 292.375,49 292.375,46 294.625,46 294.625,49 " /></g></g></g><g
id="g3"
transform="matrix(0.95088529,0,0,0.95088529,6.6189799,110.996)">
<g
id="g2">
<path
d="M 494.434,315.678 H 463.697 C 455.367,216.327 377.063,136.575 278.357,126.001 283.158,110.85 271.813,95.459 256,95.459 c -15.83,0 -27.153,15.407 -22.357,30.542 -98.707,10.574 -177.01,90.327 -185.34,189.677 H 17.566 C 7.865,315.678 0,323.543 0,333.244 c 0,9.701 7.865,17.565 17.566,17.565 h 29.99 v 13.612 c 0,28.738 23.381,52.119 52.12,52.119 h 312.648 c 28.74,0 52.12,-23.381 52.12,-52.119 v -13.612 h 29.99 c 9.701,0 17.565,-7.865 17.565,-17.565 10e-4,-9.701 -7.864,-17.566 -17.565,-17.566 z M 112.028,273.83 c 15.615,-37.716 46.155,-68.42 83.79,-84.238 8.943,-3.761 19.24,0.444 22.999,9.387 3.759,8.944 -0.444,19.241 -9.387,23 -29.17,12.261 -52.841,36.057 -64.942,65.29 -3.706,8.953 -13.973,13.224 -22.949,9.51 -8.963,-3.712 -13.221,-13.987 -9.511,-22.949 z m 317.285,90.591 c 0,9.367 -7.621,16.988 -16.989,16.988 H 99.676 c -9.368,0 -16.989,-7.621 -16.989,-16.988 v -13.612 h 346.626 z"
id="path1" />
</g>
</g></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="Layer_1" x="0" y="0" version="1.1" viewBox="0 0 512.002 512.002" xml:space="preserve" style="enable-background:new 0 0 512.002 512.002"><circle id="path2" cx="521.887" cy="45.192" r=".004" style="fill:#000;stroke:#000;stroke-width:.2"/><g id="Page-1" fill="none" fill-rule="evenodd" stroke="none" stroke-width="1" transform="matrix(29.995699,0,0,29.995699,241.90437,1.6845255)"><g id="Dribbble-Light-Preview" fill="#000" transform="translate(-345,-206)"><g id="icons" transform="translate(56,160)"><polygon id="plus_mini-[#1523]" points="298 49 298 51 294.625 51 294.625 54 292.375 54 292.375 51 289 51 289 49 292.375 49 292.375 46 294.625 46 294.625 49"/></g></g></g><g id="g3" transform="matrix(0.95088529,0,0,0.95088529,6.6189799,110.996)"><g id="g2"><path id="path1" d="M 494.434,315.678 H 463.697 C 455.367,216.327 377.063,136.575 278.357,126.001 283.158,110.85 271.813,95.459 256,95.459 c -15.83,0 -27.153,15.407 -22.357,30.542 -98.707,10.574 -177.01,90.327 -185.34,189.677 H 17.566 C 7.865,315.678 0,323.543 0,333.244 c 0,9.701 7.865,17.565 17.566,17.565 h 29.99 v 13.612 c 0,28.738 23.381,52.119 52.12,52.119 h 312.648 c 28.74,0 52.12,-23.381 52.12,-52.119 v -13.612 h 29.99 c 9.701,0 17.565,-7.865 17.565,-17.565 10e-4,-9.701 -7.864,-17.566 -17.565,-17.566 z M 112.028,273.83 c 15.615,-37.716 46.155,-68.42 83.79,-84.238 8.943,-3.761 19.24,0.444 22.999,9.387 3.759,8.944 -0.444,19.241 -9.387,23 -29.17,12.261 -52.841,36.057 -64.942,65.29 -3.706,8.953 -13.973,13.224 -22.949,9.51 -8.963,-3.712 -13.221,-13.987 -9.511,-22.949 z m 317.285,90.591 c 0,9.367 -7.621,16.988 -16.989,16.988 H 99.676 c -9.368,0 -16.989,-7.621 -16.989,-16.988 v -13.612 h 346.626 z"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -1,61 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!-- License: CC0. Made by SVG Repo: https://www.svgrepo.com/svg/150226/meal -->
<svg
version="1.1"
id="Layer_1"
x="0px"
y="0px"
viewBox="0 0 512.002 512.002"
style="enable-background:new 0 0 512.002 512.002;"
xml:space="preserve"
sodipodi:docname="meal-check.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs8">
</defs><sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="1.7363213"
inkscape:cx="274.43077"
inkscape:cy="257.7288"
inkscape:window-width="1920"
inkscape:window-height="1155"
inkscape:window-x="0"
inkscape:window-y="45"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" />
<circle
id="path2"
style="fill:#000000;stroke:#000000;stroke-width:0.2"
cx="521.88666"
cy="45.191727"
r="0.0043425169" /><path
clip-rule="evenodd"
d="M 515.875,51.622857 349.49393,218.00373 253.80627,122.31651 303.7942,72.328499 349.49393,118.02824 465.88752,1.6348403 Z"
fill="#030708"
fill-rule="evenodd"
id="path1-3"
style="stroke-width:17.6734" /><g
id="g3"
transform="matrix(0.96951671,0,0,0.95088529,8.306314,109.89053)">
<g
id="g2">
<path
d="M 494.434,315.678 H 463.697 C 455.367,216.327 377.063,136.575 278.357,126.001 283.158,110.85 271.813,95.459 256,95.459 c -15.83,0 -27.153,15.407 -22.357,30.542 -98.707,10.574 -177.01,90.327 -185.34,189.677 H 17.566 C 7.865,315.678 0,323.543 0,333.244 c 0,9.701 7.865,17.565 17.566,17.565 h 29.99 v 13.612 c 0,28.738 23.381,52.119 52.12,52.119 h 312.648 c 28.74,0 52.12,-23.381 52.12,-52.119 v -13.612 h 29.99 c 9.701,0 17.565,-7.865 17.565,-17.565 10e-4,-9.701 -7.864,-17.566 -17.565,-17.566 z M 112.028,273.83 c 15.615,-37.716 46.155,-68.42 83.79,-84.238 8.943,-3.761 19.24,0.444 22.999,9.387 3.759,8.944 -0.444,19.241 -9.387,23 -29.17,12.261 -52.841,36.057 -64.942,65.29 -3.706,8.953 -13.973,13.224 -22.949,9.51 -8.963,-3.712 -13.221,-13.987 -9.511,-22.949 z m 317.285,90.591 c 0,9.367 -7.621,16.988 -16.989,16.988 H 99.676 c -9.368,0 -16.989,-7.621 -16.989,-16.988 v -13.612 h 346.626 z"
id="path1" />
</g>
</g></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="Layer_1" x="0" y="0" version="1.1" viewBox="0 0 512.002 512.002" xml:space="preserve" style="enable-background:new 0 0 512.002 512.002"><circle id="path2" cx="521.887" cy="45.192" r=".004" style="fill:#000;stroke:#000;stroke-width:.2"/><path id="path1-3" fill="#030708" fill-rule="evenodd" d="M 515.875,51.622857 349.49393,218.00373 253.80627,122.31651 303.7942,72.328499 349.49393,118.02824 465.88752,1.6348403 Z" clip-rule="evenodd" style="stroke-width:17.6734"/><g id="g3" transform="matrix(0.96951671,0,0,0.95088529,8.306314,109.89053)"><g id="g2"><path id="path1" d="M 494.434,315.678 H 463.697 C 455.367,216.327 377.063,136.575 278.357,126.001 283.158,110.85 271.813,95.459 256,95.459 c -15.83,0 -27.153,15.407 -22.357,30.542 -98.707,10.574 -177.01,90.327 -185.34,189.677 H 17.566 C 7.865,315.678 0,323.543 0,333.244 c 0,9.701 7.865,17.565 17.566,17.565 h 29.99 v 13.612 c 0,28.738 23.381,52.119 52.12,52.119 h 312.648 c 28.74,0 52.12,-23.381 52.12,-52.119 v -13.612 h 29.99 c 9.701,0 17.565,-7.865 17.565,-17.565 10e-4,-9.701 -7.864,-17.566 -17.565,-17.566 z M 112.028,273.83 c 15.615,-37.716 46.155,-68.42 83.79,-84.238 8.943,-3.761 19.24,0.444 22.999,9.387 3.759,8.944 -0.444,19.241 -9.387,23 -29.17,12.261 -52.841,36.057 -64.942,65.29 -3.706,8.953 -13.973,13.224 -22.949,9.51 -8.963,-3.712 -13.221,-13.987 -9.511,-22.949 z m 317.285,90.591 c 0,9.367 -7.621,16.988 -16.989,16.988 H 99.676 c -9.368,0 -16.989,-7.621 -16.989,-16.988 v -13.612 h 346.626 z"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -1,82 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!-- License: CC0. Made by SVG Repo: https://www.svgrepo.com/svg/150226/meal -->
<svg
version="1.1"
id="Layer_1"
x="0px"
y="0px"
viewBox="0 0 512.002 512.002"
style="enable-background:new 0 0 512.002 512.002;"
xml:space="preserve"
sodipodi:docname="meal-diary.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs8">
</defs><sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="1.7363213"
inkscape:cx="257.15287"
inkscape:cy="257.7288"
inkscape:window-width="1920"
inkscape:window-height="1155"
inkscape:window-x="0"
inkscape:window-y="45"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" />
<circle
id="path2"
style="fill:#000000;stroke:#000000;stroke-width:0.2"
cx="521.88666"
cy="45.191727"
r="0.0043425169" /><g
id="g8-6"
transform="matrix(0.4527684,0,0,0.4527684,296.76275,1.8149751)">
<g
id="g7-7">
<g
id="g6-5">
<path
d="m 380.68,372.453 c -13.938,0 -25.284,11.342 -25.284,25.301 v 54.441 l 80.034,-79.742 z"
id="path1-3" />
<path
d="m 433.745,492.197 c 23.156,0 41.912,-18.76 41.912,-41.898 V 379.285 L 362.338,492.197 Z"
id="path2-5" />
<path
d="M 433.745,0 H 100.255 C 77.537,0 59.15,18.11 58.486,40.653 h 39.691 c 9.479,-7.013 21.051,-10.876 33.139,-10.876 30.785,0 55.84,25.055 55.84,55.84 0,30.784 -25.055,55.826 -55.84,55.826 -11.992,0 -23.527,-3.863 -33.059,-10.84 H 58.355 v 70.543 h 39.822 c 9.479,-7.008 21.051,-10.871 33.139,-10.871 30.785,0 55.84,25.055 55.84,55.84 0,30.783 -25.055,55.84 -55.84,55.84 -11.992,0 -23.547,-3.859 -33.072,-10.854 H 58.355 v 70.543 h 39.822 c 9.492,-6.995 21.064,-10.857 33.139,-10.857 30.785,0 55.84,25.042 55.84,55.825 0,30.784 -25.055,55.84 -55.84,55.84 -11.992,0 -23.527,-3.861 -33.059,-10.84 h -39.77 c 0.715,22.524 19.082,40.586 41.77,40.586 h 221.904 v -94.445 c 0,-32.281 26.258,-58.537 58.52,-58.537 H 475.66 V 41.901 C 475.659,18.761 456.903,0 433.745,0 Z"
id="path3-6" />
<path
d="m 36.577,105.68 h 71.213 c 5.68,6.588 14.115,10.84 23.527,10.84 17.07,0 30.916,-13.827 30.916,-30.902 0,-17.071 -13.846,-30.912 -30.916,-30.912 -9.412,0 -17.848,4.14 -23.527,10.872 H 36.577 c -11.066,0 -20.039,8.974 -20.039,20.04 -0.001,11.101 8.972,20.062 20.039,20.062 z"
id="path4-2" />
<path
d="m 36.577,266.172 h 71.213 c 5.68,6.606 14.115,10.858 23.527,10.858 17.07,0 30.916,-13.846 30.916,-30.915 0,-17.072 -13.846,-30.916 -30.916,-30.916 -9.412,0 -17.848,4.139 -23.527,10.875 H 36.577 c -11.066,0 -20.039,8.975 -20.039,20.059 0,11.084 8.972,20.039 20.039,20.039 z"
id="path5-9" />
<path
d="m 131.316,437.523 c 17.07,0 30.916,-13.839 30.916,-30.91 0,-17.074 -13.846,-30.902 -30.916,-30.902 -9.412,0 -17.848,4.141 -23.527,10.857 H 36.577 c -11.066,0 -20.039,8.975 -20.039,20.059 0,11.084 8.973,20.06 20.039,20.06 h 71.213 c 5.679,6.584 14.115,10.836 23.526,10.836 z"
id="path6-1" />
</g>
</g>
</g><g
id="g3"
transform="matrix(0.96722928,0,0,0.95088529,9.377261,111.69164)">
<g
id="g2">
<path
d="M 494.434,315.678 H 463.697 C 455.367,216.327 377.063,136.575 278.357,126.001 283.158,110.85 271.813,95.459 256,95.459 c -15.83,0 -27.153,15.407 -22.357,30.542 -98.707,10.574 -177.01,90.327 -185.34,189.677 H 17.566 C 7.865,315.678 0,323.543 0,333.244 c 0,9.701 7.865,17.565 17.566,17.565 h 29.99 v 13.612 c 0,28.738 23.381,52.119 52.12,52.119 h 312.648 c 28.74,0 52.12,-23.381 52.12,-52.119 v -13.612 h 29.99 c 9.701,0 17.565,-7.865 17.565,-17.565 10e-4,-9.701 -7.864,-17.566 -17.565,-17.566 z M 112.028,273.83 c 15.615,-37.716 46.155,-68.42 83.79,-84.238 8.943,-3.761 19.24,0.444 22.999,9.387 3.759,8.944 -0.444,19.241 -9.387,23 -29.17,12.261 -52.841,36.057 -64.942,65.29 -3.706,8.953 -13.973,13.224 -22.949,9.51 -8.963,-3.712 -13.221,-13.987 -9.511,-22.949 z m 317.285,90.591 c 0,9.367 -7.621,16.988 -16.989,16.988 H 99.676 c -9.368,0 -16.989,-7.621 -16.989,-16.988 v -13.612 h 346.626 z"
id="path1" />
</g>
</g></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="Layer_1" x="0" y="0" version="1.1" viewBox="0 0 512.002 512.002" xml:space="preserve" style="enable-background:new 0 0 512.002 512.002"><circle id="path2" cx="521.887" cy="45.192" r=".004" style="fill:#000;stroke:#000;stroke-width:.2"/><g id="g8-6" transform="matrix(0.4527684,0,0,0.4527684,296.76275,1.8149751)"><g id="g7-7"><g id="g6-5"><path id="path1-3" d="m 380.68,372.453 c -13.938,0 -25.284,11.342 -25.284,25.301 v 54.441 l 80.034,-79.742 z"/><path id="path2-5" d="m 433.745,492.197 c 23.156,0 41.912,-18.76 41.912,-41.898 V 379.285 L 362.338,492.197 Z"/><path id="path3-6" d="M 433.745,0 H 100.255 C 77.537,0 59.15,18.11 58.486,40.653 h 39.691 c 9.479,-7.013 21.051,-10.876 33.139,-10.876 30.785,0 55.84,25.055 55.84,55.84 0,30.784 -25.055,55.826 -55.84,55.826 -11.992,0 -23.527,-3.863 -33.059,-10.84 H 58.355 v 70.543 h 39.822 c 9.479,-7.008 21.051,-10.871 33.139,-10.871 30.785,0 55.84,25.055 55.84,55.84 0,30.783 -25.055,55.84 -55.84,55.84 -11.992,0 -23.547,-3.859 -33.072,-10.854 H 58.355 v 70.543 h 39.822 c 9.492,-6.995 21.064,-10.857 33.139,-10.857 30.785,0 55.84,25.042 55.84,55.825 0,30.784 -25.055,55.84 -55.84,55.84 -11.992,0 -23.527,-3.861 -33.059,-10.84 h -39.77 c 0.715,22.524 19.082,40.586 41.77,40.586 h 221.904 v -94.445 c 0,-32.281 26.258,-58.537 58.52,-58.537 H 475.66 V 41.901 C 475.659,18.761 456.903,0 433.745,0 Z"/><path id="path4-2" d="m 36.577,105.68 h 71.213 c 5.68,6.588 14.115,10.84 23.527,10.84 17.07,0 30.916,-13.827 30.916,-30.902 0,-17.071 -13.846,-30.912 -30.916,-30.912 -9.412,0 -17.848,4.14 -23.527,10.872 H 36.577 c -11.066,0 -20.039,8.974 -20.039,20.04 -0.001,11.101 8.972,20.062 20.039,20.062 z"/><path id="path5-9" d="m 36.577,266.172 h 71.213 c 5.68,6.606 14.115,10.858 23.527,10.858 17.07,0 30.916,-13.846 30.916,-30.915 0,-17.072 -13.846,-30.916 -30.916,-30.916 -9.412,0 -17.848,4.139 -23.527,10.875 H 36.577 c -11.066,0 -20.039,8.975 -20.039,20.059 0,11.084 8.972,20.039 20.039,20.039 z"/><path id="path6-1" d="m 131.316,437.523 c 17.07,0 30.916,-13.839 30.916,-30.91 0,-17.074 -13.846,-30.902 -30.916,-30.902 -9.412,0 -17.848,4.141 -23.527,10.857 H 36.577 c -11.066,0 -20.039,8.975 -20.039,20.059 0,11.084 8.973,20.06 20.039,20.06 h 71.213 c 5.679,6.584 14.115,10.836 23.526,10.836 z"/></g></g></g><g id="g3" transform="matrix(0.96722928,0,0,0.95088529,9.377261,111.69164)"><g id="g2"><path id="path1" d="M 494.434,315.678 H 463.697 C 455.367,216.327 377.063,136.575 278.357,126.001 283.158,110.85 271.813,95.459 256,95.459 c -15.83,0 -27.153,15.407 -22.357,30.542 -98.707,10.574 -177.01,90.327 -185.34,189.677 H 17.566 C 7.865,315.678 0,323.543 0,333.244 c 0,9.701 7.865,17.565 17.566,17.565 h 29.99 v 13.612 c 0,28.738 23.381,52.119 52.12,52.119 h 312.648 c 28.74,0 52.12,-23.381 52.12,-52.119 v -13.612 h 29.99 c 9.701,0 17.565,-7.865 17.565,-17.565 10e-4,-9.701 -7.864,-17.566 -17.565,-17.566 z M 112.028,273.83 c 15.615,-37.716 46.155,-68.42 83.79,-84.238 8.943,-3.761 19.24,0.444 22.999,9.387 3.759,8.944 -0.444,19.241 -9.387,23 -29.17,12.261 -52.841,36.057 -64.942,65.29 -3.706,8.953 -13.973,13.224 -22.949,9.51 -8.963,-3.712 -13.221,-13.987 -9.511,-22.949 z m 317.285,90.591 c 0,9.367 -7.621,16.988 -16.989,16.988 H 99.676 c -9.368,0 -16.989,-7.621 -16.989,-16.988 v -13.612 h 346.626 z"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -1,64 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!-- License: CC0. Made by SVG Repo: https://www.svgrepo.com/svg/150226/meal -->
<svg
version="1.1"
id="Layer_1"
x="0px"
y="0px"
viewBox="0 0 512.002 512.002"
style="enable-background:new 0 0 512.002 512.002;"
xml:space="preserve"
sodipodi:docname="meal-edit.svg"
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs8">
</defs><sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="1.7363213"
inkscape:cx="257.15287"
inkscape:cy="257.15287"
inkscape:window-width="1920"
inkscape:window-height="1155"
inkscape:window-x="0"
inkscape:window-y="45"
inkscape:window-maximized="1"
inkscape:current-layer="Layer_1" />
<circle
id="path2"
style="fill:#000000;stroke:#000000;stroke-width:0.2"
cx="521.88666"
cy="45.191727"
r="0.0043425169" /><path
d="M 576,657 H -64 c -24,0 -40,-16 -40,-40 0,-24 16,-40 40,-40 h 640 c 24,0 40,16 40,40 0,24 -16,40 -40,40 z"
id="path1-3"
style="stroke-width:40" /><g
id="g2-7"
transform="matrix(0,-3.2840933,3.2840933,0,211.59523,296.53997)">
<path
d="M 88.79,29.297 70.702,11.209 c -1.052,-1.052 -2.756,-1.052 -3.808,0 l -49.505,49.504 0.109,0.109 -0.171,-0.046 -6.772,25.272 0.004,0.001 c -0.309,0.935 -0.103,2.004 0.642,2.748 0.822,0.822 2.038,0.993 3.033,0.531 l 0.002,0.009 25.027,-6.706 -0.016,-0.059 0.038,0.038 49.505,-49.505 c 1.052,-1.052 1.052,-2.756 0,-3.808 z m -69.998,51.85 4.022,-15.009 10.988,10.988 z"
id="path1-5" />
</g><g
id="g3"
transform="matrix(0.96951671,0,0,0.95088529,6.988638,111.33001)">
<g
id="g2">
<path
d="M 494.434,315.678 H 463.697 C 455.367,216.327 377.063,136.575 278.357,126.001 283.158,110.85 271.813,95.459 256,95.459 c -15.83,0 -27.153,15.407 -22.357,30.542 -98.707,10.574 -177.01,90.327 -185.34,189.677 H 17.566 C 7.865,315.678 0,323.543 0,333.244 c 0,9.701 7.865,17.565 17.566,17.565 h 29.99 v 13.612 c 0,28.738 23.381,52.119 52.12,52.119 h 312.648 c 28.74,0 52.12,-23.381 52.12,-52.119 v -13.612 h 29.99 c 9.701,0 17.565,-7.865 17.565,-17.565 10e-4,-9.701 -7.864,-17.566 -17.565,-17.566 z M 112.028,273.83 c 15.615,-37.716 46.155,-68.42 83.79,-84.238 8.943,-3.761 19.24,0.444 22.999,9.387 3.759,8.944 -0.444,19.241 -9.387,23 -29.17,12.261 -52.841,36.057 -64.942,65.29 -3.706,8.953 -13.973,13.224 -22.949,9.51 -8.963,-3.712 -13.221,-13.987 -9.511,-22.949 z m 317.285,90.591 c 0,9.367 -7.621,16.988 -16.989,16.988 H 99.676 c -9.368,0 -16.989,-7.621 -16.989,-16.988 v -13.612 h 346.626 z"
id="path1" />
</g>
</g></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="Layer_1" x="0" y="0" version="1.1" viewBox="0 0 512.002 512.002" xml:space="preserve" style="enable-background:new 0 0 512.002 512.002"><circle id="path2" cx="521.887" cy="45.192" r=".004" style="fill:#000;stroke:#000;stroke-width:.2"/><path id="path1-3" d="M 576,657 H -64 c -24,0 -40,-16 -40,-40 0,-24 16,-40 40,-40 h 640 c 24,0 40,16 40,40 0,24 -16,40 -40,40 z" style="stroke-width:40"/><g id="g2-7" transform="matrix(0,-3.2840933,3.2840933,0,211.59523,296.53997)"><path id="path1-5" d="M 88.79,29.297 70.702,11.209 c -1.052,-1.052 -2.756,-1.052 -3.808,0 l -49.505,49.504 0.109,0.109 -0.171,-0.046 -6.772,25.272 0.004,0.001 c -0.309,0.935 -0.103,2.004 0.642,2.748 0.822,0.822 2.038,0.993 3.033,0.531 l 0.002,0.009 25.027,-6.706 -0.016,-0.059 0.038,0.038 49.505,-49.505 c 1.052,-1.052 1.052,-2.756 0,-3.808 z m -69.998,51.85 4.022,-15.009 10.988,10.988 z"/></g><g id="g3" transform="matrix(0.96951671,0,0,0.95088529,6.988638,111.33001)"><g id="g2"><path id="path1" d="M 494.434,315.678 H 463.697 C 455.367,216.327 377.063,136.575 278.357,126.001 283.158,110.85 271.813,95.459 256,95.459 c -15.83,0 -27.153,15.407 -22.357,30.542 -98.707,10.574 -177.01,90.327 -185.34,189.677 H 17.566 C 7.865,315.678 0,323.543 0,333.244 c 0,9.701 7.865,17.565 17.566,17.565 h 29.99 v 13.612 c 0,28.738 23.381,52.119 52.12,52.119 h 312.648 c 28.74,0 52.12,-23.381 52.12,-52.119 v -13.612 h 29.99 c 9.701,0 17.565,-7.865 17.565,-17.565 10e-4,-9.701 -7.864,-17.566 -17.565,-17.566 z M 112.028,273.83 c 15.615,-37.716 46.155,-68.42 83.79,-84.238 8.943,-3.761 19.24,0.444 22.999,9.387 3.759,8.944 -0.444,19.241 -9.387,23 -29.17,12.261 -52.841,36.057 -64.942,65.29 -3.706,8.953 -13.973,13.224 -22.949,9.51 -8.963,-3.712 -13.221,-13.987 -9.511,-22.949 z m 317.285,90.591 c 0,9.367 -7.621,16.988 -16.989,16.988 H 99.676 c -9.368,0 -16.989,-7.621 -16.989,-16.988 v -13.612 h 346.626 z"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

2
dart_test.yaml Normal file
View File

@@ -0,0 +1,2 @@
tags:
golden: { }

3
devtools_options.yaml Normal file
View File

@@ -0,0 +1,3 @@
extensions:
- drift: true
- provider: true

View File

@@ -1,2 +1,2 @@
json_key_file("fastlane/metadata/android/envfiles/playstore.json")
package_name("de.wger.flutter")
package_name("de.wger.flutter")

View File

@@ -1,45 +1,3 @@
# Release process
## 1. Update flutter version
If we use a new version, update the version used by
* Github Actions in `android-release.yaml` in this repository
* Fdroid build recipe
in [their repo](https://gitlab.com/fdroid/fdroiddata/-/blob/master/metadata/de.wger.flutter.yml).
Since this can potentially take some time, it should happen well in advance
## 2. Dry-run release before uploading
* Increase build nr in pubspec.yaml (revert after the dry-run was successful)
* `flutter build appbundle --release`
* `bundle install`
* `bundle update fastlane`
* `bundle exec fastlane android test_configuration` (needs the different keys available)
It might be necessary to repeat these steps if upload_to_play_store returns any errors
such as a missing title or similar.
Also note that if a language was added over the weblate UI, it might be necessary
to set the correct language code:
<https://support.google.com/googleplay/android-developer/answer/9844778?hl=en#zippy=%2Cview-list-of-available-languages>
## 3. Push tags to trigger release
Make sure that the commit that will be tagged was already pushed or didn't change
any dart code, otherwise the automatic linter might push a "correction" commit
and the build step will fail.
Set the vX.Y.Z tag locally, push it and delete it. It will get recreated to X.Y.Z.
by github actions.
`TAG=vX.Y.Z && git tag $TAG && git push origin $TAG && git tag -d $TAG`
## 4. Edit release
If necessary, edit the created release on github
## 5. Merge pull requests
* in the flathub repo: https://github.com/flathub/de.wger.flutter
* in the flutter repo: https://github.com/wger-project/flutter/branches
Moved to <https://wger.readthedocs.io/en/latest/development/mobile_app.html>

View File

@@ -0,0 +1,39 @@
من عُشاق اللياقة إلى عُشاق اللياقة حان الوقت لتنظيم صحتك مع WGER، رفيقك المثالي لإدارة تمارينك!
هل وجدت تطبيقك الرياضي المفضل، وتستمتع بابتكار برامجك التدريبية الخاصة؟ مهما كان شغفك بالرياضة يجمعنا قاسم مشترك: وهو شغفنا بمتابعة بياناتنا الصحية <3
لا تقلق إن كنت لا تزال تدير رحلتك الرياضية بدفتر ملاحظاتك التقليدي، ولكن ندعوك للانضمام إلى مستقبل اللياقة في 2025!
طورنا لك تطبيقًا رقميًا مجانيًا 100% لمتابعة صحتك ولياقتك، يركز على أهم الميزات الأساسية لتسهيل حياتك. ابدأ الآن، واصل تدريبك، واحتفل بكل إنجاز تحققه!
wger مشروع مفتوح المصدر، يتمحور حول:
صحة جسمك
برامجك التدريبية
تطورك وإنجازاتك
بياناتك الخاصة
صحة جسمك:
لا داعي للبحث عن مكونات أطعمتك المفضلة، اختر وجباتك اليومية من قاعدة بيانات تضم أكثر من 78000 منتج، واطّلع على قيمها الغذائية. أضف وجباتك إلى خطتك الغذائية وتابع نظامك الغذائي بسهولة عبر التقويم.
برامجك التدريبية:
أنت أدرى بما يناسب جسمك. صمّم برامجك التدريبية الخاصة بالاختيار من بين أكثر من 200 تمرين متنوع ومتجدد. ثم، استخدم "وضع النادي الرياضي" ليرشدك خلال التمرين، وسجّل أوزانك بضغطة زر واحدة.
تطورك وإنجازاتك:
اجعل أهدافك نصب عينيك دائمًا. تابع وزنك وسجل إحصاءاتك بانتظام.
بياناتك الخاصة:
wger بمثابة سجلك الرياضي الشخصي ولكن بياناتك ملكك وحدك. استخدم واجهة برمجة التطبيقات (REST API) للوصول إليها واستثمارها كما تشاء.
ملاحظة هامة: هذا التطبيق مجاني تمامًا ولا يعتمد على أي تمويل إضافي، كما أننا لا نطلب أي تبرعات. الأهم من ذلك، أنه مشروع مجتمعي يتطور باستمرار. لذا، ترقبوا ميزات جديدة ومثيرة في أي وقت!
#مفتوح_المصدر ما المقصود بذلك؟
مفتوح المصدر يعني أن الشفرة المصدرية الكاملة للتطبيق والخادم الخاص به متاحة ومجانية للجميع:
هل ترغب في تشغيل wger على خادمك الخاص أو لصالح ناديك الرياضي المحلي؟ لا تتردد!
هل هناك ميزة تفتقدها وتريد إضافتها؟ يمكنك البدء فورًا!
هل تريد التأكد من أن بياناتك لا تُرسل إلى أي جهة خارجية؟ لك ذلك!
انضم إلى مجتمعنا وكن واحدًا من عشاق الرياضة وخبراء التقنية من كل أنحاء العالم. نعمل باستمرار على تطوير وتحسين التطبيق ليلائم احتياجاتنا. نرحب دائمًا بمساهماتك، فلا تتردد في مشاركتنا مقترحاتك وأفكارك في أي وقت!
-> تجدون الشفرة المصدرية على: https://github.com/wger-project
-> لطرح استفساراتكم أو حتى لإلقاء التحية، انضموا إلينا على خادم ديسكورد: https://discord.gg/rPWFv6W

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

View File

@@ -0,0 +1 @@
متتبع التمارين الرياضية، التغذية، ومراقبة الوزن

View File

@@ -0,0 +1 @@
wger Workout Manager

View File

@@ -2,7 +2,7 @@ From fitness lovers to fitness lovers get your health organized with WGER, y
Have you already found your #1 fitness app and do you love to create your own sports routines? No matter what type of sporty beast you are we all have something in common: We love to keep track of our health data <3
So we dont judge you for still managing your fitness journey with your handy little workout log book but welcome to 2024!
So we dont judge you for still managing your fitness journey with your handy little workout log book but welcome to 2025!
We have developed a 100% free digital health and fitness tracker app for you, sized down to the most relevant features to make your life easier. Get started, keep training and celebrate your progress!

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 KiB

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 KiB

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 187 KiB

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 188 KiB

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 KiB

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 KiB

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 188 KiB

After

Width:  |  Height:  |  Size: 176 KiB

Some files were not shown because too many files have changed in this diff Show More