├── .fvm
└── fvm_config.json
├── .fvmrc
├── .github
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ ├── bug-report.md
│ ├── code-refactoring-request.md
│ └── feature_request.md
├── actions
│ ├── setup_flutter
│ │ └── action.yml
│ └── setup_jdk
│ │ └── action.yml
└── workflows
│ ├── _analyze.yml
│ ├── _check.yml
│ ├── _test.yml
│ ├── _test_report.yml
│ ├── app-release.yml
│ ├── mr-check-post.yml
│ └── mr-check.yml
├── .gitignore
├── .gitmodules
├── .metadata
├── .vscode
├── extensions.json
├── launch.json
└── settings.json
├── CHANGELOG.md
├── LICENSE
├── LICENSE_THIRDPARTY.md
├── PRIVACY.md
├── README.md
├── analysis_options.yaml
├── android
├── .gitignore
├── app
│ ├── build.gradle
│ └── src
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ ├── f_dev
│ │ └── res
│ │ │ ├── values-zh-rTW
│ │ │ └── strings.xml
│ │ │ ├── values-zh
│ │ │ └── strings.xml
│ │ │ └── values
│ │ │ └── strings.xml
│ │ ├── f_generic
│ │ └── res
│ │ │ ├── values-ar
│ │ │ └── strings.xml
│ │ │ ├── values-cs
│ │ │ └── strings.xml
│ │ │ ├── values-de
│ │ │ └── strings.xml
│ │ │ ├── values-es
│ │ │ └── strings.xml
│ │ │ ├── values-fa
│ │ │ └── strings.xml
│ │ │ ├── values-fr
│ │ │ └── strings.xml
│ │ │ ├── values-he
│ │ │ └── strings.xml
│ │ │ ├── values-it
│ │ │ └── strings.xml
│ │ │ ├── values-nb
│ │ │ └── strings.xml
│ │ │ ├── values-night
│ │ │ └── styles.xml
│ │ │ ├── values-pl
│ │ │ └── strings.xml
│ │ │ ├── values-pt-rBR
│ │ │ └── strings.xml
│ │ │ ├── values-ru
│ │ │ └── strings.xml
│ │ │ ├── values-tr
│ │ │ └── strings.xml
│ │ │ ├── values-uk
│ │ │ └── strings.xml
│ │ │ ├── values-vi
│ │ │ └── strings.xml
│ │ │ ├── values-zh-rTW
│ │ │ └── strings.xml
│ │ │ └── values-zh
│ │ │ └── strings.xml
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── kotlin
│ │ │ └── io
│ │ │ │ └── github
│ │ │ │ └── friesi23
│ │ │ │ └── mhabit
│ │ │ │ └── MainActivity.kt
│ │ └── res
│ │ │ ├── drawable-hdpi-v31
│ │ │ └── android12branding.png
│ │ │ ├── drawable-hdpi
│ │ │ ├── android12splash.png
│ │ │ ├── ic_launcher_background.png
│ │ │ ├── ic_launcher_foreground.png
│ │ │ └── splash.png
│ │ │ ├── drawable-mdpi-v31
│ │ │ └── android12branding.png
│ │ │ ├── drawable-mdpi
│ │ │ ├── android12splash.png
│ │ │ ├── ic_launcher_background.png
│ │ │ ├── ic_launcher_foreground.png
│ │ │ └── splash.png
│ │ │ ├── drawable-night-hdpi-v31
│ │ │ └── android12branding.png
│ │ │ ├── drawable-night-hdpi
│ │ │ └── android12splash.png
│ │ │ ├── drawable-night-mdpi-v31
│ │ │ └── android12branding.png
│ │ │ ├── drawable-night-mdpi
│ │ │ └── android12splash.png
│ │ │ ├── drawable-night-v21
│ │ │ ├── background.png
│ │ │ └── launch_background.xml
│ │ │ ├── drawable-night-xhdpi-v31
│ │ │ └── android12branding.png
│ │ │ ├── drawable-night-xhdpi
│ │ │ └── android12splash.png
│ │ │ ├── drawable-night-xxhdpi-v31
│ │ │ └── android12branding.png
│ │ │ ├── drawable-night-xxhdpi
│ │ │ └── android12splash.png
│ │ │ ├── drawable-night-xxxhdpi-v31
│ │ │ └── android12branding.png
│ │ │ ├── drawable-night-xxxhdpi
│ │ │ └── android12splash.png
│ │ │ ├── drawable-night
│ │ │ ├── background.png
│ │ │ └── launch_background.xml
│ │ │ ├── drawable-v21
│ │ │ ├── background.png
│ │ │ └── launch_background.xml
│ │ │ ├── drawable-xhdpi-v31
│ │ │ └── android12branding.png
│ │ │ ├── drawable-xhdpi
│ │ │ ├── android12splash.png
│ │ │ ├── ic_launcher_background.png
│ │ │ ├── ic_launcher_foreground.png
│ │ │ └── splash.png
│ │ │ ├── drawable-xxhdpi-v31
│ │ │ └── android12branding.png
│ │ │ ├── drawable-xxhdpi
│ │ │ ├── android12splash.png
│ │ │ ├── ic_launcher_background.png
│ │ │ ├── ic_launcher_foreground.png
│ │ │ └── splash.png
│ │ │ ├── drawable-xxxhdpi-v31
│ │ │ └── android12branding.png
│ │ │ ├── drawable-xxxhdpi
│ │ │ ├── android12splash.png
│ │ │ ├── ic_launcher_background.png
│ │ │ ├── ic_launcher_foreground.png
│ │ │ └── splash.png
│ │ │ ├── drawable
│ │ │ ├── background.png
│ │ │ └── launch_background.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ └── ic_launcher.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_monochrome.png
│ │ │ └── ic_notification.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_monochrome.png
│ │ │ └── ic_notification.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_monochrome.png
│ │ │ └── ic_notification.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_monochrome.png
│ │ │ └── ic_notification.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_monochrome.png
│ │ │ └── ic_notification.png
│ │ │ ├── raw
│ │ │ └── keep.xml
│ │ │ ├── values-night-v31
│ │ │ └── styles.xml
│ │ │ ├── values-night
│ │ │ └── styles.xml
│ │ │ ├── values-v31
│ │ │ └── styles.xml
│ │ │ ├── values
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ │ └── xml
│ │ │ └── locales_config.xml
│ │ └── profile
│ │ └── AndroidManifest.xml
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
└── settings.gradle
├── assets
├── fonts
│ ├── cal_icons.ttf
│ ├── common_icons.ttf
│ ├── progress_icons.ttf
│ └── sort_icons.ttf
├── icons
│ ├── calendar_icons
│ │ ├── calendar-create.svg
│ │ └── calendar-modify.svg
│ ├── common_icons
│ │ ├── beta.license
│ │ ├── beta.svg
│ │ └── la_donate.svg
│ ├── progress_icons
│ │ ├── numeric-1-circle-outline.svg
│ │ ├── numeric-1.svg
│ │ ├── numeric-2-circle-outline.svg
│ │ ├── numeric-2.svg
│ │ ├── numeric-3-circle-outline.svg
│ │ ├── numeric-3.svg
│ │ ├── progress-100%.svg
│ │ └── progress-50%.svg
│ └── sort_icons
│ │ ├── sort-alphabetical-ascending.svg
│ │ ├── sort-alphabetical-descending.svg
│ │ ├── sort-ascending.svg
│ │ ├── sort-bool-ascending-variant.svg
│ │ ├── sort-bool-ascending.svg
│ │ ├── sort-bool-descending-variant.svg
│ │ ├── sort-bool-descending.svg
│ │ ├── sort-calendar-ascending.svg
│ │ ├── sort-calendar-descending.svg
│ │ ├── sort-clock-ascending-outline.svg
│ │ ├── sort-clock-descending-outline.svg
│ │ ├── sort-descending.svg
│ │ ├── sort-variant.svg
│ │ └── sort.svg
├── images
│ ├── donate-alipay.jpg
│ ├── donate-wechatpay.png
│ ├── empty-habits.svg
│ ├── empty-habits.svg.template
│ ├── not-found.svg
│ └── not-found.svg.template
├── l10n
│ ├── _untranslated.json
│ ├── ar.arb
│ ├── cs.arb
│ ├── de.arb
│ ├── en.arb
│ ├── es.arb
│ ├── fa.arb
│ ├── fr.arb
│ ├── he.arb
│ ├── it.arb
│ ├── nb.arb
│ ├── pl.arb
│ ├── pt.arb
│ ├── ru.arb
│ ├── tr.arb
│ ├── uk.arb
│ ├── vi.arb
│ ├── zh.arb
│ └── zh_hant.arb
├── logo
│ ├── background-1024x1024.png
│ ├── background.svg
│ ├── foreground-1024x1024.png
│ ├── foreground-noshadow-1024x1024.png
│ ├── foreground-noshadow.svg
│ ├── foreground.svg
│ ├── icon-1024x1024.png
│ ├── icon-ios-dark-1024x1024.png
│ ├── icon-ios-dark.svg
│ ├── icon-ios-grey-1024x1024.png
│ ├── icon-ios-grey.svg
│ ├── icon-momo-1024x1024.png
│ ├── icon-momo.svg
│ ├── icon-notification-1024x1024.png
│ ├── icon-notification.svg
│ ├── icon.svg
│ ├── macos-1024x1024.png
│ └── macos.svg
├── others
│ └── transparent-512x512.png
└── sql
│ ├── indexes.sql
│ ├── mh_habits.sql
│ ├── mh_records.sql
│ ├── mh_sync.sql
│ └── mh_sync_indexes.sql
├── build.yaml
├── configs
├── about_info.json
├── contributors.json
├── flutter_launcher_incons
│ ├── flutter_launcher_icons.yaml
│ ├── flutter_launcher_momo_icons.yaml
│ ├── flutter_launcher_notification_icons.yaml
│ └── ic_launcher.xml
├── flutter_native_splash
│ └── flutter_native_splash.yaml
├── l10n.yaml
└── package_rename_config
│ ├── package_rename_config.yaml
│ └── package_rename_config_v2.yaml
├── demo
└── habit_group_curve_demo.py
├── devtools_options.yaml
├── docs
├── CHANGELOG
│ └── zh.md
├── README
│ └── images
│ │ ├── check-habit-detail-tb.gif
│ │ ├── check-habit-detail.gif
│ │ ├── create-new-habit-tb.gif
│ │ ├── create-new-habit.gif
│ │ ├── donate-alipay.jpg
│ │ ├── donate-wechatpay.png
│ │ ├── export-and-import-tb.gif
│ │ ├── export-and-import.gif
│ │ ├── fdroid-get-it-on.png
│ │ ├── github-get-it-on.png
│ │ ├── habit-display-op-tb.gif
│ │ ├── habit-display-op.gif
│ │ ├── habit-display-page-tb.gif
│ │ ├── habit-display-page.gif
│ │ ├── habit-heatmap-tb.gif
│ │ ├── habit-heatmap.gif
│ │ ├── l10n-stat.svg
│ │ ├── lzzyondroid-get-it-on.png
│ │ └── testflight-get-it-on.png
├── add_new_locale_support.md
├── code_errata.md
├── faq.md
├── push_to_new_version.md
├── release.md
└── webdav_sync_design.md
├── fastlane
└── metadata
│ └── android
│ ├── en-US
│ ├── changelogs
│ │ ├── 1.txt
│ │ ├── 10.txt
│ │ ├── 11.txt
│ │ ├── 12.txt
│ │ ├── 13.txt
│ │ ├── 14.txt
│ │ ├── 15.txt
│ │ ├── 16.txt
│ │ ├── 17.txt
│ │ ├── 18.txt
│ │ ├── 19.txt
│ │ ├── 2.txt
│ │ ├── 20.txt
│ │ ├── 21.txt
│ │ ├── 22.txt
│ │ ├── 23.txt
│ │ ├── 24.txt
│ │ ├── 25.txt
│ │ ├── 26.txt
│ │ ├── 27.txt
│ │ ├── 28.txt
│ │ ├── 29.txt
│ │ ├── 3.txt
│ │ ├── 30.txt
│ │ ├── 31.txt
│ │ ├── 32.txt
│ │ ├── 33.txt
│ │ ├── 34.txt
│ │ ├── 35.txt
│ │ ├── 36.txt
│ │ ├── 37.txt
│ │ ├── 39.txt
│ │ ├── 4.txt
│ │ ├── 42.txt
│ │ ├── 45.txt
│ │ ├── 47.txt
│ │ ├── 49.txt
│ │ ├── 5.txt
│ │ ├── 52.txt
│ │ ├── 54.txt
│ │ ├── 56.txt
│ │ ├── 57.txt
│ │ ├── 6.txt
│ │ ├── 61.txt
│ │ ├── 62.txt
│ │ ├── 66.txt
│ │ ├── 7.txt
│ │ ├── 70.txt
│ │ ├── 74.txt
│ │ ├── 77.txt
│ │ ├── 78.txt
│ │ ├── 8.txt
│ │ ├── 83.txt
│ │ └── 9.txt
│ ├── full_description.txt
│ ├── images
│ │ ├── featureGraphic.png
│ │ ├── icon.png
│ │ ├── phoneScreenshots
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ ├── 3.png
│ │ │ ├── 4.png
│ │ │ ├── 5.png
│ │ │ ├── 6.png
│ │ │ └── 7.png
│ │ ├── sevenInchScreenshots
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ ├── 3.png
│ │ │ ├── 4.png
│ │ │ ├── 5.png
│ │ │ └── 6.png
│ │ └── tenInchScreenshots
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ ├── 3.png
│ │ │ ├── 4.png
│ │ │ ├── 5.png
│ │ │ └── 6.png
│ ├── short_description.txt
│ └── title.txt
│ ├── ru
│ ├── full_description.txt
│ ├── short_description.txt
│ └── title.txt
│ └── zh-CN
│ ├── changelogs
│ ├── 1.txt
│ ├── 10.txt
│ ├── 11.txt
│ ├── 12.txt
│ ├── 13.txt
│ ├── 14.txt
│ ├── 15.txt
│ ├── 16.txt
│ ├── 17.txt
│ ├── 18.txt
│ ├── 19.txt
│ ├── 2.txt
│ ├── 20.txt
│ ├── 21.txt
│ ├── 22.txt
│ ├── 23.txt
│ ├── 24.txt
│ ├── 25.txt
│ ├── 26.txt
│ ├── 27.txt
│ ├── 28.txt
│ ├── 29.txt
│ ├── 3.txt
│ ├── 30.txt
│ ├── 31.txt
│ ├── 32.txt
│ ├── 33.txt
│ ├── 34.txt
│ ├── 35.txt
│ ├── 36.txt
│ ├── 37.txt
│ ├── 39.txt
│ ├── 4.txt
│ ├── 42.txt
│ ├── 45.txt
│ ├── 47.txt
│ ├── 49.txt
│ ├── 5.txt
│ ├── 52.txt
│ ├── 54.txt
│ ├── 56.txt
│ ├── 57.txt
│ ├── 6.txt
│ ├── 61.txt
│ ├── 62.txt
│ ├── 66.txt
│ ├── 7.txt
│ ├── 70.txt
│ ├── 74.txt
│ ├── 77.txt
│ ├── 78.txt
│ ├── 8.txt
│ ├── 83.txt
│ └── 9.txt
│ ├── full_description.txt
│ ├── short_description.txt
│ └── title.txt
├── flutter_launcher_icons.yaml
├── flutter_launcher_momo_icons.yaml
├── flutter_launcher_notification_icons.yaml
├── installers
├── dmg_creator
│ ├── config.json
│ └── icon.icns
└── macos_exporter
│ └── GithubExportOptions.plist
├── ios
├── .gitignore
├── Flutter
│ ├── AppFrameworkInfo.plist
│ ├── Debug.xcconfig
│ └── Release.xcconfig
├── Localizations
│ ├── ar.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── cs.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── de.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── en.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── es.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── fa.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── fr.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── he.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── it.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── nb.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── pl.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── pt.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── ru.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── tr.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── uk.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── vi.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── zh-Hans.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ ├── zh-Hant.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ └── zh.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
├── Podfile
├── Podfile.lock
├── Runner.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ ├── IDEWorkspaceChecks.plist
│ │ │ └── WorkspaceSettings.xcsettings
│ └── xcshareddata
│ │ └── xcschemes
│ │ ├── Runner.xcscheme
│ │ ├── f_dev.xcscheme
│ │ ├── f_generic.xcscheme
│ │ └── f_store.xcscheme
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── IDEWorkspaceChecks.plist
│ │ └── WorkspaceSettings.xcsettings
├── Runner
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ ├── Icon-App-20x20@1x.png
│ │ │ ├── Icon-App-20x20@2x.png
│ │ │ ├── Icon-App-20x20@3x.png
│ │ │ ├── Icon-App-29x29@1x.png
│ │ │ ├── Icon-App-29x29@2x.png
│ │ │ ├── Icon-App-29x29@3x.png
│ │ │ ├── Icon-App-38x38@2x.png
│ │ │ ├── Icon-App-38x38@3x.png
│ │ │ ├── Icon-App-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-50x50@1x.png
│ │ │ ├── Icon-App-50x50@2x.png
│ │ │ ├── Icon-App-57x57@1x.png
│ │ │ ├── Icon-App-57x57@2x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-64x64@2x.png
│ │ │ ├── Icon-App-64x64@3x.png
│ │ │ ├── Icon-App-68x68@2x.png
│ │ │ ├── Icon-App-72x72@1x.png
│ │ │ ├── Icon-App-72x72@2x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ ├── Icon-App-83.5x83.5@2x.png
│ │ │ ├── Icon-App-Dark-1024x1024@1x.png
│ │ │ ├── Icon-App-Dark-20x20@2x.png
│ │ │ ├── Icon-App-Dark-20x20@3x.png
│ │ │ ├── Icon-App-Dark-29x29@2x.png
│ │ │ ├── Icon-App-Dark-29x29@3x.png
│ │ │ ├── Icon-App-Dark-38x38@2x.png
│ │ │ ├── Icon-App-Dark-38x38@3x.png
│ │ │ ├── Icon-App-Dark-40x40@2x.png
│ │ │ ├── Icon-App-Dark-40x40@3x.png
│ │ │ ├── Icon-App-Dark-60x60@2x.png
│ │ │ ├── Icon-App-Dark-60x60@3x.png
│ │ │ ├── Icon-App-Dark-64x64@2x.png
│ │ │ ├── Icon-App-Dark-64x64@3x.png
│ │ │ ├── Icon-App-Dark-68x68@2x.png
│ │ │ ├── Icon-App-Dark-76x76@2x.png
│ │ │ ├── Icon-App-Dark-83.5x83.5@2x.png
│ │ │ ├── Icon-App-Tinted-1024x1024@1x.png
│ │ │ ├── Icon-App-Tinted-20x20@2x.png
│ │ │ ├── Icon-App-Tinted-20x20@3x.png
│ │ │ ├── Icon-App-Tinted-29x29@2x.png
│ │ │ ├── Icon-App-Tinted-29x29@3x.png
│ │ │ ├── Icon-App-Tinted-38x38@2x.png
│ │ │ ├── Icon-App-Tinted-38x38@3x.png
│ │ │ ├── Icon-App-Tinted-40x40@2x.png
│ │ │ ├── Icon-App-Tinted-40x40@3x.png
│ │ │ ├── Icon-App-Tinted-60x60@2x.png
│ │ │ ├── Icon-App-Tinted-60x60@3x.png
│ │ │ ├── Icon-App-Tinted-64x64@2x.png
│ │ │ ├── Icon-App-Tinted-64x64@3x.png
│ │ │ ├── Icon-App-Tinted-68x68@2x.png
│ │ │ ├── Icon-App-Tinted-76x76@2x.png
│ │ │ └── Icon-App-Tinted-83.5x83.5@2x.png
│ │ ├── LaunchBackground.imageset
│ │ │ ├── Contents.json
│ │ │ ├── background.png
│ │ │ └── darkbackground.png
│ │ └── LaunchImage.imageset
│ │ │ ├── Contents.json
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ ├── LaunchImageDark.png
│ │ │ ├── LaunchImageDark@2x.png
│ │ │ ├── LaunchImageDark@3x.png
│ │ │ └── README.md
│ ├── Base.lproj
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ ├── Info.plist
│ ├── Runner-Bridging-Header.h
│ ├── Runner.entitlements
│ ├── dev-Info.plist
│ └── generic-Info.plist
└── RunnerTests
│ └── RunnerTests.swift
├── l10n.yaml
├── lib
├── annotation
│ ├── _json_annotation.dart
│ ├── contributor_converter.dart
│ ├── epoch_date_time_converter.dart
│ ├── epoch_habit_date_converter.dart
│ ├── habit_display_op_config.dart
│ ├── normalizing_list_converter.dart
│ ├── proxy_annotation.dart
│ └── time_of_day_converter.dart
├── assets
│ ├── assets.dart
│ ├── assets.gen.dart
│ └── fonts.gen.dart
├── builders
│ └── proxy_generator.dart
├── common
│ ├── _debug.dart
│ ├── app_info.dart
│ ├── async.dart
│ ├── clipper.dart
│ ├── consts.dart
│ ├── enums.dart
│ ├── exceptions.dart
│ ├── global.dart
│ ├── math.dart
│ ├── re.dart
│ ├── rules.dart
│ ├── types.dart
│ └── utils.dart
├── component
│ ├── animation.dart
│ ├── animations
│ │ └── animate.dart
│ ├── helper.dart
│ ├── provider.dart
│ ├── widget.dart
│ └── widgets
│ │ ├── animated_linear_progress.dart
│ │ ├── beta_badge.dart
│ │ ├── chip_list.dart
│ │ ├── color_display_chip.dart
│ │ ├── crypto_donate_button.dart
│ │ ├── data_arrow_container.dart
│ │ ├── data_container.dart
│ │ ├── date_change.dart
│ │ ├── date_picker.dart
│ │ ├── enhanced_safe_area.dart
│ │ ├── expanded_section.dart
│ │ ├── group_title_list_tile.dart
│ │ ├── habit_calendar_space_bar.dart
│ │ ├── habit_daily_status_container.dart
│ │ ├── habit_form_flexible_space_bar.dart
│ │ ├── habit_freq_chart.dart
│ │ ├── habit_list_tile.dart
│ │ ├── habit_progress_indicator.dart
│ │ ├── habit_score_chart.dart
│ │ ├── l10n_builder.dart
│ │ ├── markdown_body.dart
│ │ ├── month_picker_cell.dart
│ │ ├── page_back_button.dart
│ │ ├── scroll_physics.dart
│ │ ├── scrollable_chart.dart
│ │ ├── scrolling_fab.dart
│ │ ├── svg_template_image.dart
│ │ ├── theme_with_custom_colors.dart
│ │ └── week_picker_cell.dart
├── extension
│ ├── async_extensions.dart
│ ├── color_extensions.dart
│ ├── colorscheme_extensions.dart
│ ├── context_extensions.dart
│ ├── custom_color_extensions.dart
│ ├── datetime_extensions.dart
│ ├── iterable_extensions.dart
│ ├── locale_exntensions.dart
│ ├── navigator_extensions.dart
│ ├── notification_extensions.dart
│ ├── num_extensions.dart
│ ├── string_extensions.dart
│ ├── textscale_extensions.dart
│ └── webdav_extensions.dart
├── l10n
│ ├── localizations.dart
│ ├── localizations.g.dart
│ ├── localizations_ar.g.dart
│ ├── localizations_cs.g.dart
│ ├── localizations_de.g.dart
│ ├── localizations_en.g.dart
│ ├── localizations_es.g.dart
│ ├── localizations_fa.g.dart
│ ├── localizations_fr.g.dart
│ ├── localizations_he.g.dart
│ ├── localizations_it.g.dart
│ ├── localizations_nb.g.dart
│ ├── localizations_pl.g.dart
│ ├── localizations_pt.g.dart
│ ├── localizations_ru.g.dart
│ ├── localizations_tr.g.dart
│ ├── localizations_uk.g.dart
│ ├── localizations_vi.g.dart
│ └── localizations_zh.g.dart
├── logging
│ ├── extension.dart
│ ├── handler
│ │ ├── console_output.dart
│ │ ├── console_printer.dart
│ │ └── filter.dart
│ ├── helper.dart
│ ├── level.dart
│ ├── logger
│ │ ├── app_sync_logger.dart
│ │ ├── text_logger.dart
│ │ ├── value_change_logger.dart
│ │ └── widget_logger.dart
│ ├── logger_manager.dart
│ ├── logger_message.dart
│ ├── logger_stack.dart
│ ├── logger_type.dart
│ └── logger_utils.dart
├── main.dart
├── model
│ ├── _app_sync_tasks
│ │ ├── app_sync_task.dart
│ │ ├── basic_app_sync_task.dart
│ │ ├── webdav_app_sync_models.dart
│ │ ├── webdav_app_sync_models.g.dart
│ │ ├── webdav_app_sync_subtasks.dart
│ │ ├── webdav_app_sync_task.dart
│ │ └── webdav_app_sync_task_status.dart
│ ├── _score
│ │ ├── calculator.dart
│ │ ├── data.dart
│ │ └── score.dart
│ ├── app_reminder_config.dart
│ ├── app_reminder_config.g.dart
│ ├── app_sync_options.dart
│ ├── app_sync_server.dart
│ ├── app_sync_server.g.dart
│ ├── app_sync_task.dart
│ ├── app_sync_timer.dart
│ ├── cache.dart
│ ├── common.dart
│ ├── contributor.dart
│ ├── contributor.g.dart
│ ├── custom_date_format.dart
│ ├── custom_date_format.g.dart
│ ├── habit_daily_goal.dart
│ ├── habit_daily_record_form.dart
│ ├── habit_date.dart
│ ├── habit_detail.dart
│ ├── habit_detail_chart.dart
│ ├── habit_display.dart
│ ├── habit_display.g.dart
│ ├── habit_export.dart
│ ├── habit_export.g.dart
│ ├── habit_form.dart
│ ├── habit_freq.dart
│ ├── habit_import.dart
│ ├── habit_reminder.dart
│ ├── habit_reminder.g.dart
│ ├── habit_score.dart
│ ├── habit_stat.dart
│ ├── habit_stat.g.dart
│ ├── habit_status.dart
│ ├── habit_summary.dart
│ ├── habit_summary.g.dart
│ ├── material_localizations.dart
│ ├── material_localizations.g.dart
│ └── progress_percent.dart
├── persistent
│ ├── db_helper_builder.dart
│ ├── db_helper_provider.dart
│ ├── local
│ │ ├── db_cell.dart
│ │ ├── db_helper.dart
│ │ ├── handler
│ │ │ ├── habit.dart
│ │ │ ├── habit.g.dart
│ │ │ ├── record.dart
│ │ │ ├── record.g.dart
│ │ │ ├── sync.dart
│ │ │ └── sync.g.dart
│ │ ├── sql.dart
│ │ └── table.dart
│ ├── profile
│ │ ├── converter.dart
│ │ ├── handler
│ │ │ ├── app_experimental_feature.dart
│ │ │ ├── app_language.dart
│ │ │ ├── app_reminder.dart
│ │ │ ├── app_sync.dart
│ │ │ ├── app_theme_main_color.dart
│ │ │ ├── app_theme_type.dart
│ │ │ ├── collect_logs_switcher.dart
│ │ │ ├── compact_ui_switcher.dart
│ │ │ ├── display_calendar_bar_occupy_prt.dart
│ │ │ ├── display_calendar_scroll_mode.dart
│ │ │ ├── display_habits_filter.dart
│ │ │ ├── display_sort_mode.dart
│ │ │ ├── first_day.dart
│ │ │ ├── habit_cell_gesture_mode.dart
│ │ │ ├── input_fill_cache.dart
│ │ │ ├── logging_level.dart
│ │ │ └── show_data_format.dart
│ │ ├── handlers.dart
│ │ └── profile_helper.dart
│ ├── profile_builder.dart
│ ├── profile_provider.dart
│ └── utils.dart
├── provider
│ ├── _utils
│ │ ├── habit_chart_utils.dart
│ │ └── habit_record_utils.dart
│ ├── about_info.dart
│ ├── about_info.g.dart
│ ├── app_caches.dart
│ ├── app_compact_ui_switcher.dart
│ ├── app_custom_date_format.dart
│ ├── app_debugger.dart
│ ├── app_developer.dart
│ ├── app_first_day.dart
│ ├── app_language.dart
│ ├── app_reminder.dart
│ ├── app_sync.dart
│ ├── app_sync.g.dart
│ ├── app_sync_server_form.dart
│ ├── app_theme.dart
│ ├── commons.dart
│ ├── global.dart
│ ├── habit_detail.dart
│ ├── habit_detail_freqchart.dart
│ ├── habit_detail_scorechart.dart
│ ├── habit_form.dart
│ ├── habit_op_config.dart
│ ├── habit_status_changer.dart
│ ├── habit_status_changer.g.dart
│ ├── habit_summary.dart
│ ├── habit_summary.g.dart
│ ├── habits_file_exporter.dart
│ ├── habits_file_importer.dart
│ ├── habits_filter.dart
│ ├── habits_record_scroll_behavior.dart
│ ├── habits_sort.dart
│ └── utils.dart
├── reminders
│ ├── notification_channel.dart
│ ├── notification_data.dart
│ ├── notification_data.g.dart
│ ├── notification_id_range.dart
│ ├── notification_service.dart
│ └── notification_tap_handler.dart
├── theme
│ ├── _colors
│ │ ├── colors.dart
│ │ ├── crypto_colors.dart
│ │ ├── custom_color.g.dart
│ │ └── userdefined_color.dart
│ ├── _icons
│ │ ├── cal_icons.g.dart
│ │ ├── common_icons.g.dart
│ │ ├── progress_icons.g.dart
│ │ └── sort_icons.g.dart
│ ├── color.dart
│ └── icon.dart
├── utils
│ ├── app_path_provider.dart
│ ├── app_sync.dart
│ ├── async_debouncer.dart
│ ├── debug_info.dart
│ ├── habit_date.dart
│ ├── local_timezone.dart
│ └── safe_sliver_tools.dart
└── view
│ ├── _debug.dart
│ ├── app.dart
│ ├── common
│ ├── _dialog.dart
│ ├── _mixin.dart
│ ├── _widget.dart
│ ├── app_sync_confirm_dialog.dart
│ ├── app_ui_layout_builder.dart
│ ├── appbar_combined_action.dart
│ ├── colorful_navibar.dart
│ ├── confirm_dialog.dart
│ ├── contributor_tile.dart
│ ├── custom_datetime_format_picker.dart
│ ├── date_changer.dart
│ ├── donate_dialog.dart
│ ├── exporter_confirm_dialog.dart
│ ├── fixed_page_place_holder.dart
│ ├── habit_divider.dart
│ ├── habit_record_number_picker.dart
│ ├── habit_record_reason_modifier.dart
│ ├── habit_summary_list_tile.dart
│ ├── loglevel_changer_tile.dart
│ ├── not_found_image.dart
│ ├── not_found_image.g.dart
│ ├── notification_activated.dart
│ ├── notification_pending_requests.dart
│ ├── page_loading_indicator.dart
│ ├── sync_loading_indicator.dart
│ ├── sync_now_tile.dart
│ └── xshare.dart
│ ├── for_app
│ ├── _widget.dart
│ └── app_providers.dart
│ ├── for_app_about
│ ├── _widget.dart
│ ├── app_about_contact_email_tile.dart
│ ├── app_about_donate_tile.dart
│ ├── app_about_issue_tracker_tile.dart
│ ├── app_about_license_thirdparty_tile.dart
│ ├── app_about_license_tile.dart
│ ├── app_about_privay_tile.dart
│ ├── app_about_source_code_tile.dart
│ ├── app_about_version_tile.dart
│ └── page_providers.dart
│ ├── for_app_debugger
│ ├── _widget.dart
│ └── change_logs_switcher_tile.dart
│ ├── for_app_setting
│ ├── _dialog.dart
│ ├── _widget.dart
│ ├── app_language_changer.dart
│ ├── app_setting_calbar_occupy_tile.dart
│ ├── app_setting_clear_cache.dart
│ ├── app_setting_confirm_clear_db.dart
│ ├── app_setting_date_display_format.dart
│ ├── app_setting_develop_subgroup.dart
│ ├── app_setting_display_op_tile.dart
│ ├── app_setting_first_day.dart
│ ├── app_setting_reminder_tile.dart
│ ├── app_setting_sync_failed_tile.dart
│ └── import_habits_confirm.dart
│ ├── for_app_sync
│ ├── _dialog.dart
│ ├── _widget.dart
│ ├── app_sync_fail_logs_tile.dart
│ ├── app_sync_fetch_interval.dart
│ └── app_sync_summary_tile.dart
│ ├── for_app_sync_server_editor
│ ├── _widget.dart
│ ├── app_sync_server_buttons.dart
│ ├── app_sync_server_conn_timeout.dart
│ ├── app_sync_server_delete_button.dart
│ ├── app_sync_server_ignoressl.dart
│ ├── app_sync_server_network_type.dart
│ ├── app_sync_server_password.dart
│ ├── app_sync_server_path.dart
│ ├── app_sync_server_timeout.dart
│ ├── app_sync_server_type.dart
│ ├── app_sync_server_username.dart
│ └── page_providers.dart
│ ├── for_habit_detail
│ ├── _dialog.dart
│ ├── _mixin.dart
│ ├── _widget.dart
│ ├── habit_desc_cell_tile.dart
│ ├── habit_detail_appbar.dart
│ ├── habit_detail_chart_title.dart
│ ├── habit_detail_fab.dart
│ ├── habit_detail_freq_chart.dart
│ ├── habit_detail_popup_menu.dart
│ ├── habit_detail_score_chart.dart
│ ├── habit_detail_summary_tile.dart
│ ├── habit_edit_repl_rcd_cal.dart
│ ├── habit_heatmap.dart
│ ├── habit_other_info_tile.dart
│ └── page_providers.dart
│ ├── for_habit_edit
│ ├── _dialogs.dart
│ ├── _widget.dart
│ ├── habit_color_picker.dart
│ ├── habit_date_picker.dart
│ ├── habit_edit_app_bar.dart
│ ├── habit_edit_color_tile.dart
│ ├── habit_edit_create_and_modify_tile.dart
│ ├── habit_edit_daily_goal_extra_tile.dart
│ ├── habit_edit_daily_goal_tile.dart
│ ├── habit_edit_daily_goal_unit_tile.dart
│ ├── habit_edit_desc_tile.dart
│ ├── habit_edit_frequency_tile.dart
│ ├── habit_edit_habit_type_tile.dart
│ ├── habit_edit_start_date_tile.dart
│ ├── habit_edit_target_days_tile.dart
│ ├── habit_frequency_picker.dart
│ ├── habit_reminder_tiles.dart
│ ├── habit_reminder_type_picker.dart
│ ├── habit_target_days_picker.dart
│ ├── habit_type_picker.dart
│ └── page_providers.dart
│ ├── for_habits_display
│ ├── _dialog.dart
│ ├── _widget.dart
│ ├── habit_display_appbar_edit_mode.dart
│ ├── habit_display_appbar_view_mode.dart
│ ├── habit_display_develop_list.dart
│ ├── habit_display_edit_mode_action.dart
│ ├── habit_display_empty_image.dart
│ ├── habit_display_empty_image.g.dart
│ ├── habit_display_fab.dart
│ ├── habit_display_list_tile.dart
│ ├── habit_display_loading_indicator.dart
│ ├── habit_display_main_menu.dart
│ ├── habit_display_sort_type_picker.dart
│ ├── habit_display_stats_menu.dart
│ ├── page_providers.dart
│ └── sliver_calendar_bar.dart
│ ├── for_habits_status_changer
│ ├── _widget.dart
│ ├── confirm_button.dart
│ ├── date_picker_tile.dart
│ ├── habit_viewed_tile.dart
│ ├── page_framework.dart
│ ├── page_providers.dart
│ ├── record_status_change_tile.dart
│ └── record_status_skip_reason_tile.dart
│ ├── page_app_about.dart
│ ├── page_app_debugger.dart
│ ├── page_app_error.dart
│ ├── page_app_setting.dart
│ ├── page_app_sync.dart
│ ├── page_app_sync_server_editor.dart
│ ├── page_expermental_features.dart
│ ├── page_habit_detail.dart
│ ├── page_habit_edit.dart
│ ├── page_habits_display.dart
│ └── page_habits_status_changer.dart
├── linux
├── .gitignore
├── CMakeLists.txt
├── flutter
│ ├── CMakeLists.txt
│ ├── generated_plugin_registrant.cc
│ ├── generated_plugin_registrant.h
│ └── generated_plugins.cmake
├── main.cc
├── my_application.cc
└── my_application.h
├── macos
├── .gitignore
├── Flutter
│ ├── Flutter-Debug.xcconfig
│ ├── Flutter-Release.xcconfig
│ └── GeneratedPluginRegistrant.swift
├── Localizations
│ ├── en.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
│ └── zh-Hans.lproj
│ │ ├── dev-InfoPlist.strings
│ │ └── generic-InfoPlist.strings
├── Podfile
├── Podfile.lock
├── Runner.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ ├── Runner.xcscheme
│ │ ├── f_dev.xcscheme
│ │ └── f_generic.xcscheme
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Runner
│ ├── AppDelegate.swift
│ ├── Assets.xcassets
│ │ └── AppIcon.appiconset
│ │ │ ├── Contents.json
│ │ │ ├── app_icon_1024.png
│ │ │ ├── app_icon_128.png
│ │ │ ├── app_icon_16.png
│ │ │ ├── app_icon_256.png
│ │ │ ├── app_icon_32.png
│ │ │ ├── app_icon_512.png
│ │ │ └── app_icon_64.png
│ ├── Base.lproj
│ │ └── MainMenu.xib
│ ├── Configs
│ │ ├── AppInfo.xcconfig
│ │ ├── Debug.xcconfig
│ │ ├── Release.xcconfig
│ │ └── Warnings.xcconfig
│ ├── DebugProfile.entitlements
│ ├── Info.plist
│ ├── MainFlutterWindow.swift
│ ├── Release.entitlements
│ ├── dev-Info.plist
│ └── generic-Info.plist
└── RunnerTests
│ └── RunnerTests.swift
├── package_rename_config.yaml
├── pubspec.lock
├── pubspec.yaml
├── scripts
├── build_dmg.sh
├── build_msix.cmd
├── build_runner.cmd
├── build_runner.sh
├── gen_changelogs.sh
├── gen_covhtml.cmd
├── gen_covhtml.sh
├── gen_fastlane_changelog.py
├── gen_icons.cmd
├── gen_icons.sh
├── gen_logo.cmd
├── gen_logo.sh
├── gen_screen_launcher.sh
├── gen_translate_graph.py
├── gen_translate_graph.sh
├── git_set_commit_template.cmd
├── git_set_commit_template.sh
├── normalize_arb.py
├── normalize_arb.sh
└── rename_app.sh
├── templates
└── git
│ ├── commit-bugfix.template
│ ├── commit-bumpversion.template
│ ├── commit-zh.template
│ └── commit.template
├── test
├── common_test
│ ├── math_test.dart
│ └── utils_test.dart
├── debug
│ ├── habitrecord_automark.dart
│ └── habitrecord_calc_totalscore.dart
├── extension_test
│ └── iterable_extensions_test.dart
├── model_test
│ ├── basic_app_sync_task_test.dart
│ ├── basic_app_sync_task_test.mocks.dart
│ ├── contributor_test.dart
│ ├── custom_date_format_test.dart
│ ├── habit_reminder_test.dart
│ ├── habits_test.dart
│ ├── records_test.dart
│ ├── score_test.dart
│ ├── webdav_app_sync_task_test.dart
│ └── webdav_app_sync_task_test.mocks.dart
├── persistent_test
│ └── utils_test.dart
├── stub
│ └── habit_score.dart
├── utils.dart
├── utils_test
│ └── async_debouncer_test.dart
├── viewmodel_test
│ ├── app_theme_test.dart
│ └── habit_form_test.dart
└── webdav_server
│ ├── bytemark_webdav
│ └── compose.yml
│ └── nextcloud
│ └── compose.yml
└── windows
├── .gitignore
├── CMakeLists.txt
├── certificate
├── publish.crt
└── publish.csr
├── external
├── README.md
└── sqlite3.dll
├── flutter
├── CMakeLists.txt
├── generated_plugin_registrant.cc
├── generated_plugin_registrant.h
└── generated_plugins.cmake
└── runner
├── CMakeLists.txt
├── Runner.rc
├── flutter_window.cpp
├── flutter_window.h
├── main.cpp
├── resource.h
├── resources
└── app_icon.ico
├── runner.exe.manifest
├── utils.cpp
├── utils.h
├── win32_window.cpp
└── win32_window.h
/.fvm/fvm_config.json:
--------------------------------------------------------------------------------
1 | {
2 | "flutterSdkVersion": "3.24.5",
3 | "flavors": {
4 | "release": "3.24.5"
5 | }
6 | }
--------------------------------------------------------------------------------
/.fvmrc:
--------------------------------------------------------------------------------
1 | ./.fvm/fvm_config.json
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
12 | polar: # Replace with a single Polar username
13 | buy_me_a_coffee: d49cb87qgww
14 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
15 | - "https://github.com/FriesI23/mhabit?tab=readme-ov-file#donate"
16 |
17 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/code-refactoring-request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Code Refactoring Request
3 | about: Create a suggestion or idea related to code refactoring
4 | title: "[CODE_REFACTORING]"
5 | labels: code quality, suggestion
6 | assignees: FriesI23
7 |
8 | ---
9 |
10 | **Description**
11 | Describe the issue or code section that needs refactoring briefly.
12 |
13 | **Refactoring Objective**
14 | State the main goal of this refactoring.
15 |
16 | **Suggested Approach**
17 | Provide any suggested approaches or ideas for the refactoring.
18 |
19 | **Code Sample**
20 | If applicable, include a code snippet related to the issue.
21 |
22 | **Expected Improvements**
23 | Describe the expected improvements after the refactoring.
24 |
25 | **Additional Context**
26 | Provide any additional context or information that might be relevant.
27 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: "[FEATURE]"
5 | labels: suggestion
6 | assignees: Miaaaim
7 |
8 | ---
9 |
10 |
12 | **Is your feature request related to a problem? Please describe.**
13 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
14 |
15 | **Describe the solution you'd like**
16 | A clear and concise description of what you want to happen.
17 |
18 | **Describe alternatives you've considered**
19 | A clear and concise description of any alternative solutions or features you've considered.
20 |
21 | **Additional context**
22 | Add any other context or screenshots about the feature request here.
23 |
--------------------------------------------------------------------------------
/.github/actions/setup_flutter/action.yml:
--------------------------------------------------------------------------------
1 | name: Setup Flutter
2 | description: setup shared Flutter environment for common use.
3 |
4 | runs:
5 | using: "composite"
6 |
7 | steps:
8 | - name: Update Flutter submodule
9 | run: git submodule update --init --recursive
10 | shell: bash
11 | - name : Add Flutter to syspath
12 | run: |
13 | echo "${{ github.workspace }}/.flutter/bin:$PATH" >> $GITHUB_PATH
14 | shell: bash
15 | - name: Get Flutter packages
16 | run: |
17 | echo $GITHUB_PATH
18 | flutter pub get
19 | shell: bash
20 |
--------------------------------------------------------------------------------
/.github/actions/setup_jdk/action.yml:
--------------------------------------------------------------------------------
1 | name: Setup Java SDK
2 | description: setup shared JDK environment for build use.
3 |
4 | runs:
5 | using: "composite"
6 | steps:
7 | - uses: actions/setup-java@v4
8 | with:
9 | distribution: temurin
10 | java-version: 17
11 |
--------------------------------------------------------------------------------
/.github/workflows/_analyze.yml:
--------------------------------------------------------------------------------
1 | name: Analyze CI
2 |
3 | on:
4 | workflow_call:
5 |
6 | jobs:
7 | analyze:
8 | name: Analyze
9 | runs-on: ubuntu-latest
10 | steps:
11 | - uses: actions/checkout@v4
12 | - uses: ./.github/actions/setup_flutter
13 | - uses: FriesI23/github-actions-analyze-dart@v3.1.0
14 | with:
15 | ignore-suffixes: '.g.dart|.gen.dart|.mock.dart'
16 |
--------------------------------------------------------------------------------
/.github/workflows/_test.yml:
--------------------------------------------------------------------------------
1 | name: Test CI
2 |
3 | on:
4 | workflow_call:
5 | inputs:
6 | with-artifact:
7 | required: false
8 | type: boolean
9 | default: false
10 |
11 | jobs:
12 | unittest:
13 | name: Unit Test
14 | runs-on: ubuntu-latest
15 | steps:
16 | - uses: actions/checkout@v4
17 | - uses: ./.github/actions/setup_flutter
18 | - run: |
19 | set -o pipefail
20 | flutter test --machine | tee test_report.log
21 | set +o pipefail
22 | - uses: actions/upload-artifact@v4
23 | if: success() || failure()
24 | with:
25 | name: flutter-unitTest-output
26 | path: test_report.log
27 |
--------------------------------------------------------------------------------
/.github/workflows/_test_report.yml:
--------------------------------------------------------------------------------
1 | # see: https://github.com/dorny/test-reporter#recommended-setup-for-public-repositories
2 | name: "Test CI Report"
3 |
4 | on:
5 | workflow_call:
6 |
7 | permissions:
8 | contents: read
9 | actions: read
10 | checks: write
11 |
12 | jobs:
13 | report:
14 | runs-on: ubuntu-latest
15 | steps:
16 | - uses: dorny/test-reporter@v1
17 | with:
18 | artifact: flutter-unitTest-output
19 | name: "flutter test"
20 | path: "test_report.log"
21 | reporter: "flutter-json"
22 |
--------------------------------------------------------------------------------
/.github/workflows/mr-check-post.yml:
--------------------------------------------------------------------------------
1 | name: Post Merge request checking
2 |
3 | on:
4 | workflow_run:
5 | workflows:
6 | - Merge request checking
7 | types:
8 | - completed
9 |
10 | permissions:
11 | contents: read
12 | actions: read
13 | checks: write
14 |
15 | jobs:
16 | report:
17 | uses: ./.github/workflows/_test_report.yml
18 |
--------------------------------------------------------------------------------
/.github/workflows/mr-check.yml:
--------------------------------------------------------------------------------
1 | name: Merge request checking
2 |
3 | on:
4 | workflow_call:
5 | push:
6 | branches:
7 | - main
8 | - github-action-dev
9 | pull_request:
10 | branches:
11 | - main
12 |
13 | jobs:
14 | analyzing:
15 | uses: ./.github/workflows/_analyze.yml
16 |
17 | checking:
18 | uses: ./.github/workflows/_check.yml
19 |
20 | testing:
21 | uses: ./.github/workflows/_test.yml
22 | with:
23 | with-artifact: true
24 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "flutter"]
2 | path = .flutter
3 | url = https://github.com/flutter/flutter.git
4 | tag = 3.24.5
5 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": [
3 | "dart-code.flutter",
4 | "dart-code.dart-code",
5 | "luanpotter.dart-import",
6 | "alexcvzz.vscode-sqlite",
7 | "ymotongpoo.licenser",
8 | "maptz.regionfolder",
9 | "ryanluker.vscode-coverage-gutters",
10 | "flutterando.flutter-coverage",
11 | "google.arb-editor"
12 | ]
13 | }
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
9 | # Remember to never publicly share your keystore.
10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11 | key.properties
12 | **/*.keystore
13 | **/*.jks
14 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/android/app/src/f_dev/res/values-zh-rTW/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 桌上習慣 開發版
4 |
--------------------------------------------------------------------------------
/android/app/src/f_dev/res/values-zh/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 桌上习惯 开发版
4 |
--------------------------------------------------------------------------------
/android/app/src/f_dev/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Table Habit Dev
4 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-ar/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Table Habit
4 |
5 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-cs/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Table Habit
4 |
5 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-de/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Table Habit
4 |
5 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-es/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Table Habit
4 |
5 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-fa/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Table Habit
4 |
5 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-fr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Table Habit
4 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-he/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Table Habit
4 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-it/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Table Habit
4 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-nb/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Table Habit
4 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-pl/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Table Habit
4 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-pt-rBR/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Table Habit
4 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-ru/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Таблица Привычек
4 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-tr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Table Habit
4 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-uk/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Table Habit
4 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-vi/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Table Habit
4 |
5 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-zh-rTW/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 桌上習慣
4 |
--------------------------------------------------------------------------------
/android/app/src/f_generic/res/values-zh/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 桌上习惯
4 |
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/io/github/friesi23/mhabit/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package io.github.friesi23.mhabit
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-hdpi-v31/android12branding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-hdpi-v31/android12branding.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-hdpi/android12splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-hdpi/android12splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-hdpi/ic_launcher_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-hdpi/ic_launcher_background.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-hdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-hdpi/splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi-v31/android12branding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-mdpi-v31/android12branding.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/android12splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-mdpi/android12splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/ic_launcher_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-mdpi/ic_launcher_background.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-mdpi/splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-night-hdpi-v31/android12branding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-night-hdpi-v31/android12branding.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-night-hdpi/android12splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-night-hdpi/android12splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-night-mdpi-v31/android12branding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-night-mdpi-v31/android12branding.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-night-mdpi/android12splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-night-mdpi/android12splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-night-v21/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-night-v21/background.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-night-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 | -
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-night-xhdpi-v31/android12branding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-night-xhdpi-v31/android12branding.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-night-xhdpi/android12splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-night-xhdpi/android12splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-night-xxhdpi-v31/android12branding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-night-xxhdpi-v31/android12branding.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-night-xxxhdpi-v31/android12branding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-night-xxxhdpi-v31/android12branding.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-night/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-night/background.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-night/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 | -
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-v21/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-v21/background.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-v21/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 | -
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi-v31/android12branding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-xhdpi-v31/android12branding.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi/android12splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-xhdpi/android12splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-xhdpi/ic_launcher_background.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-xhdpi/splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi-v31/android12branding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-xxhdpi-v31/android12branding.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi/android12splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-xxhdpi/android12splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-xxhdpi/ic_launcher_background.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-xxhdpi/splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi-v31/android12branding.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-xxxhdpi-v31/android12branding.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/android12splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-xxxhdpi/android12splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_background.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable-xxxhdpi/splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/drawable/background.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 | -
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/mipmap-hdpi/ic_notification.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/mipmap-mdpi/ic_notification.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/mipmap-xhdpi/ic_notification.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/mipmap-xxhdpi/ic_notification.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/android/app/src/main/res/mipmap-xxxhdpi/ic_notification.png
--------------------------------------------------------------------------------
/android/app/src/main/res/raw/keep.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Table Habit
4 |
--------------------------------------------------------------------------------
/android/app/src/main/res/xml/locales_config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | /* groovylint-disable CompileStatic */
2 |
3 | allprojects {
4 | repositories {
5 | google()
6 | mavenCentral()
7 | }
8 | }
9 |
10 | rootProject.buildDir = '../build'
11 | subprojects {
12 | project.buildDir = "${rootProject.buildDir}/${project.name}"
13 | project.evaluationDependsOn(':app')
14 | }
15 |
16 | tasks.register('clean', Delete) {
17 | delete rootProject.buildDir
18 | }
19 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.useAndroidX=true
3 | android.enableJetifier=true
4 | #android.defaults.buildfeatures.buildconfig=true
5 | android.nonTransitiveRClass=false
6 | android.nonFinalResIds=false
7 | # fixup: flutter_local_notifications plugin not compatible with R8 full mode.
8 | # see issue #118,#135 on github.
9 | android.enableR8.fullMode = false
10 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-all.zip
4 | distributionSha256Sum=258e722ec21e955201e31447b0aed14201765a3bfbae296a46cf60b70e66db70
5 | networkTimeout=10000
6 | validateDistributionUrl=true
7 | zipStoreBase=GRADLE_USER_HOME
8 | zipStorePath=wrapper/dists
9 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | /* groovylint-disable CompileStatic, ImplicitClosureParameter, NoDef, VariableTypeRequired */
2 |
3 | pluginManagement {
4 | def flutterSdkPath = {
5 | def properties = new Properties()
6 | file('local.properties').withInputStream { properties.load(it) }
7 | def flutterSdkPath = properties.getProperty('flutter.sdk')
8 | assert flutterSdkPath != null, 'flutter.sdk not set in local.properties'
9 | return flutterSdkPath
10 | }()
11 |
12 | includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
13 |
14 | repositories {
15 | google()
16 | mavenCentral()
17 | gradlePluginPortal()
18 | }
19 | }
20 |
21 | plugins {
22 | id 'dev.flutter.flutter-plugin-loader' version '1.0.0'
23 | id 'com.android.application' version '8.7.0' apply false
24 | id 'org.jetbrains.kotlin.android' version '1.8.22' apply false
25 | }
26 |
27 | include ':app'
28 |
--------------------------------------------------------------------------------
/assets/fonts/cal_icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/assets/fonts/cal_icons.ttf
--------------------------------------------------------------------------------
/assets/fonts/common_icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/assets/fonts/common_icons.ttf
--------------------------------------------------------------------------------
/assets/fonts/progress_icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/assets/fonts/progress_icons.ttf
--------------------------------------------------------------------------------
/assets/fonts/sort_icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/assets/fonts/sort_icons.ttf
--------------------------------------------------------------------------------
/assets/icons/calendar_icons/calendar-create.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/assets/icons/calendar_icons/calendar-modify.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/assets/icons/progress_icons/numeric-1-circle-outline.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/progress_icons/numeric-1.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/progress_icons/numeric-2.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/progress_icons/numeric-3.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/progress_icons/progress-100%.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/progress_icons/progress-50%.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/sort_icons/sort-alphabetical-ascending.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/sort_icons/sort-alphabetical-descending.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/sort_icons/sort-ascending.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/sort_icons/sort-bool-ascending-variant.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/sort_icons/sort-bool-ascending.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/sort_icons/sort-bool-descending-variant.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/sort_icons/sort-bool-descending.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/sort_icons/sort-calendar-ascending.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/sort_icons/sort-calendar-descending.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/sort_icons/sort-clock-ascending-outline.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/sort_icons/sort-clock-descending-outline.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/sort_icons/sort-descending.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/sort_icons/sort-variant.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/icons/sort_icons/sort.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/images/donate-alipay.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/assets/images/donate-alipay.jpg
--------------------------------------------------------------------------------
/assets/images/donate-wechatpay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/assets/images/donate-wechatpay.png
--------------------------------------------------------------------------------
/assets/l10n/he.arb:
--------------------------------------------------------------------------------
1 | {
2 | "@@locale": "he",
3 | "localeScriptName": "עִברִית",
4 | "@localeScriptName": {
5 | "description": "I'm not sure if this is the correct local name for Hebrew, please verify."
6 | },
7 | "appName": "🚧(he) - Table Habit",
8 | "@appName": {}
9 | }
--------------------------------------------------------------------------------
/assets/l10n/nb.arb:
--------------------------------------------------------------------------------
1 | {
2 | "@@locale": "nb",
3 | "localeScriptName": "Norsk Bokmål",
4 | "@localeScriptName": {
5 | "description": "The human-readable name of the language used for the locale."
6 | },
7 | "appName": "🚧(nb_NO) - Table Habit",
8 | "@appName": {}
9 | }
--------------------------------------------------------------------------------
/assets/l10n/pl.arb:
--------------------------------------------------------------------------------
1 | {
2 | "@@locale": "pl",
3 | "localeScriptName": "Polski",
4 | "@localeScriptName": {
5 | "description": "The human-readable name of the language used for the locale."
6 | },
7 | "appName": "Table Habit",
8 | "@appName": {},
9 | "habitEdit_saveButton_text": "Zapisz",
10 | "@habitEdit_saveButton_text": {},
11 | "habitEdit_habitName_hintText": "Nazwa Nawyku ...",
12 | "@habitEdit_habitName_hintText": {},
13 | "habitEdit_colorPicker_title": "Wybierz kolor",
14 | "@habitEdit_colorPicker_title": {}
15 | }
--------------------------------------------------------------------------------
/assets/logo/background-1024x1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/assets/logo/background-1024x1024.png
--------------------------------------------------------------------------------
/assets/logo/background.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/assets/logo/foreground-1024x1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/assets/logo/foreground-1024x1024.png
--------------------------------------------------------------------------------
/assets/logo/foreground-noshadow-1024x1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/assets/logo/foreground-noshadow-1024x1024.png
--------------------------------------------------------------------------------
/assets/logo/icon-1024x1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/assets/logo/icon-1024x1024.png
--------------------------------------------------------------------------------
/assets/logo/icon-ios-dark-1024x1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/assets/logo/icon-ios-dark-1024x1024.png
--------------------------------------------------------------------------------
/assets/logo/icon-ios-grey-1024x1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/assets/logo/icon-ios-grey-1024x1024.png
--------------------------------------------------------------------------------
/assets/logo/icon-momo-1024x1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/assets/logo/icon-momo-1024x1024.png
--------------------------------------------------------------------------------
/assets/logo/icon-momo.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/assets/logo/icon-notification-1024x1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/assets/logo/icon-notification-1024x1024.png
--------------------------------------------------------------------------------
/assets/logo/icon-notification.svg:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/assets/logo/macos-1024x1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/assets/logo/macos-1024x1024.png
--------------------------------------------------------------------------------
/assets/others/transparent-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/assets/others/transparent-512x512.png
--------------------------------------------------------------------------------
/assets/sql/indexes.sql:
--------------------------------------------------------------------------------
1 | CREATE INDEX IF NOT EXISTS habit_status ON mh_habits (status);
2 | CREATE UNIQUE INDEX IF NOT EXISTS habit_uuid ON mh_habits (uuid);
3 | CREATE INDEX IF NOT EXISTS habit_start_date ON mh_habits (start_date);
4 | CREATE INDEX IF NOT EXISTS record_status ON mh_records (parent_id);
5 | CREATE INDEX IF NOT EXISTS record_status ON mh_records (record_date);
6 | CREATE INDEX IF NOT EXISTS record_status ON mh_records (parent_id, record_date);
7 | CREATE UNIQUE INDEX IF NOT EXISTS record_uuid ON mh_records (uuid);
--------------------------------------------------------------------------------
/assets/sql/mh_habits.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS mh_habits (
2 | id_ INTEGER PRIMARY KEY AUTOINCREMENT,
3 | type_ INTEGER NOT NULL,
4 | create_t INTEGER NOT NULL DEFAULT (cast(strftime('%s','now') as int)),
5 | modify_t INTEGER NOT NULL DEFAULT (cast(strftime('%s','now') as int)),
6 | uuid TEXT NOT NULL UNIQUE,
7 | status INTEGER NOT NULL,
8 | name TEXT,
9 | desc TEXT,
10 | color INTEGER,
11 | daily_goal REAL NOT NULL,
12 | daily_goal_unit TEXT NOT NULL,
13 | daily_goal_extra REAL,
14 | freq_type INTEGER,
15 | freq_custom TEXT,
16 | start_date INTEGER NOT NULL,
17 | target_days INTEGER,
18 | remind_cutsom TEXT,
19 | remind_question TEXT,
20 | sort_position REAL NOT NULL DEFAULT 9e999
21 | );
22 |
--------------------------------------------------------------------------------
/assets/sql/mh_records.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS mh_records (
2 | id_ INTEGER PRIMARY KEY AUTOINCREMENT,
3 | parent_id INTEGER NOT NULL REFERENCES mh_habits(id_),
4 | record_date INTEGER NOT NULL,
5 | record_type INTEGER NOT NULL,
6 | record_value REAL NOT NULL DEFAULT 0,
7 | create_t INTEGER NOT NULL DEFAULT (cast(strftime('%s','now') as int)),
8 | modify_t INTEGER NOT NULL DEFAULT (cast(strftime('%s','now') as int)),
9 | uuid TEXT NOT NULL UNIQUE,
10 | parent_uuid TEXT NOT NULL REFERENCES mh_habits(uuid),
11 | reason TEXT NOT NULL DEFAULT ''
12 | );
13 |
--------------------------------------------------------------------------------
/assets/sql/mh_sync.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE IF NOT EXISTS mh_sync (
2 | id_ INTEGER PRIMARY KEY AUTOINCREMENT,
3 | create_t INTEGER NOT NULL DEFAULT (cast(strftime('%s','now') as int)),
4 | modify_t INTEGER NOT NULL DEFAULT (cast(strftime('%s','now') as int)),
5 | habit_uuid TEXT UNIQUE REFERENCES mh_habits(uuid),
6 | record_uuid TEXT UNIQUE REFERENCES mh_records(uuid),
7 | dirty INTEGER NOT NULL DEFAULT 1,
8 | dirty_total INTEGER,
9 | last_config_uuid TEXT,
10 | last_session_uuid TEXT,
11 | last_mark TEXT,
12 | last_mark_2 TEXT,
13 | CHECK (
14 | (habit_uuid IS NOT NULL) + (record_uuid IS NOT NULL) <= 1
15 | )
16 | );
--------------------------------------------------------------------------------
/assets/sql/mh_sync_indexes.sql:
--------------------------------------------------------------------------------
1 | CREATE UNIQUE INDEX IF NOT EXISTS idx_mh_sync_habit_uuid ON mh_sync (habit_uuid, record_uuid);
2 | CREATE UNIQUE INDEX IF NOT EXISTS idx_mh_sync_record_uuid ON mh_sync (record_uuid);
3 | CREATE INDEX IF NOT EXISTS idx_mh_sync_dirty ON mh_sync (dirty, dirty_total);
4 | CREATE INDEX IF NOT EXISTS idx_mh_sync_dirty_total ON mh_sync (dirty_total);
--------------------------------------------------------------------------------
/build.yaml:
--------------------------------------------------------------------------------
1 | targets:
2 | $default:
3 | builders:
4 | mhabit|proxy_generator:
5 | enabled: true
6 | generate_for:
7 | include:
8 | - lib/**/*.dart
9 | source_gen|combining_builder:
10 | enabled: true
11 |
12 | builders:
13 | proxy_generator:
14 | import: "package:mhabit/builders/proxy_generator.dart"
15 | builder_factories: ["proxyGenerator"]
16 | build_extensions: { ".dart": ["proxy_generator.g.part"] }
17 | auto_apply: dependents
18 | build_to: cache
19 | applies_builders: ["source_gen|combining_builder"]
20 |
--------------------------------------------------------------------------------
/configs/about_info.json:
--------------------------------------------------------------------------------
1 | {
2 | "sourceCodeUrl": "https://github.com/FriesI23/mhabit",
3 | "issueTrackerUrl": "https://github.com/FriesI23/mhabit/issues",
4 | "contactEmail": "FriesI23@outlook.com",
5 | "donateBuyMeACoffeeToken": "d49cb87qgww",
6 | "donatePaypalToken": "",
7 | "donateCryptoBTCAddr": "bc1qz2vjews2fcscmvmcm5ctv47mj6236x9p26zk49",
8 | "donateCryptoETHAddr": "0x35FC877Ef0234FbeABc51ad7fC64D9c1bE161f8F",
9 | "donateCryptoBNBAddr": "0x35FC877Ef0234FbeABc51ad7fC64D9c1bE161f8F",
10 | "donateCryptoAVAXAddr": "0x35FC877Ef0234FbeABc51ad7fC64D9c1bE161f8F",
11 | "donateCryptoFTMAddr": "0x35FC877Ef0234FbeABc51ad7fC64D9c1bE161f8F"
12 | }
13 |
--------------------------------------------------------------------------------
/configs/flutter_launcher_incons/flutter_launcher_icons.yaml:
--------------------------------------------------------------------------------
1 | flutter_launcher_icons:
2 | # Android
3 | android: true
4 | image_path_android: "assets/logo/icon-1024x1024.png"
5 | adaptive_icon_background: "assets/logo/background-1024x1024.png"
6 | adaptive_icon_foreground: "assets/logo/foreground-1024x1024.png"
7 | # iOS
8 | ios: true
9 | image_path_ios: "assets/logo/icon-1024x1024.png"
10 | image_path_ios_dark_transparent: "assets/logo/icon-ios-dark-1024x1024.png"
11 | image_path_ios_tinted_grayscale: "assets/logo/icon-ios-grey-1024x1024.png"
12 | remove_alpha_ios: true
13 | # MacOS
14 | macos:
15 | generate: true
16 | image_path: "assets/logo/macos-1024x1024.png"
17 |
--------------------------------------------------------------------------------
/configs/flutter_launcher_incons/flutter_launcher_momo_icons.yaml:
--------------------------------------------------------------------------------
1 | flutter_launcher_icons:
2 | # Android
3 | android: "ic_launcher_monochrome"
4 | image_path_android: "assets/logo/icon-momo-1024x1024.png"
5 |
--------------------------------------------------------------------------------
/configs/flutter_launcher_incons/flutter_launcher_notification_icons.yaml:
--------------------------------------------------------------------------------
1 | flutter_launcher_icons:
2 | # Android
3 | android: "ic_notification"
4 | image_path_android: "assets/logo/icon-notification-1024x1024.png"
5 |
--------------------------------------------------------------------------------
/configs/flutter_launcher_incons/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/configs/flutter_native_splash/flutter_native_splash.yaml:
--------------------------------------------------------------------------------
1 | flutter_native_splash:
2 | color: "#FFFAFA"
3 | color_dark: "#000505"
4 |
5 | android: true
6 | image_android: assets/logo/macos-1024x1024.png
7 | android_12:
8 | color: "#458EF7"
9 | color_dark: "#1E4C8F"
10 | image: assets/logo/foreground-noshadow-1024x1024.png
11 | branding: assets/others/transparent-512x512.png
12 |
13 | ios: true
14 | image_ios: assets/logo/macos-1024x1024.png
15 | image_dark_ios: assets/logo/icon-ios-dark-1024x1024.png
16 |
17 | web: false
18 | fullscreen: true
19 | info_plist_files:
20 | - ios/Runner/Info.plist
21 | - ios/Runner/dev-Info.plist
22 | - ios/Runner/generic-Info.plist
23 |
--------------------------------------------------------------------------------
/configs/l10n.yaml:
--------------------------------------------------------------------------------
1 | arb-dir: assets/l10n
2 | template-arb-file: en.arb
3 | output-dir: lib/l10n
4 | output-class: L10n
5 | output-localization-file: localizations.g.dart
6 | synthetic-package: false
7 | untranslated-messages-file: assets/l10n/_untranslated.json
8 |
--------------------------------------------------------------------------------
/configs/package_rename_config/package_rename_config.yaml:
--------------------------------------------------------------------------------
1 | package_rename_config:
2 | android:
3 | app_name: Table Habit
4 | package_name: org.friesi23.app.mhabit
5 | override_old_package: com.example.mhabit
6 | lang: kotlin
7 |
8 | ios:
9 | app_name: Table Habit
10 | bundle_name: mhabit
11 | package_name: org.friesi23.app.mhabit
12 |
--------------------------------------------------------------------------------
/configs/package_rename_config/package_rename_config_v2.yaml:
--------------------------------------------------------------------------------
1 | package_rename_config:
2 | android:
3 | package_name: io.github.friesi23.mhabit
4 | override_old_package: org.friesi23.app.mhabit
5 | lang: kotlin
6 |
7 | ios:
8 | package_name: io.github.friesi23.mhabit
9 |
--------------------------------------------------------------------------------
/devtools_options.yaml:
--------------------------------------------------------------------------------
1 | extensions:
2 |
--------------------------------------------------------------------------------
/docs/README/images/check-habit-detail-tb.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/check-habit-detail-tb.gif
--------------------------------------------------------------------------------
/docs/README/images/check-habit-detail.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/check-habit-detail.gif
--------------------------------------------------------------------------------
/docs/README/images/create-new-habit-tb.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/create-new-habit-tb.gif
--------------------------------------------------------------------------------
/docs/README/images/create-new-habit.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/create-new-habit.gif
--------------------------------------------------------------------------------
/docs/README/images/donate-alipay.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/donate-alipay.jpg
--------------------------------------------------------------------------------
/docs/README/images/donate-wechatpay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/donate-wechatpay.png
--------------------------------------------------------------------------------
/docs/README/images/export-and-import-tb.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/export-and-import-tb.gif
--------------------------------------------------------------------------------
/docs/README/images/export-and-import.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/export-and-import.gif
--------------------------------------------------------------------------------
/docs/README/images/fdroid-get-it-on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/fdroid-get-it-on.png
--------------------------------------------------------------------------------
/docs/README/images/github-get-it-on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/github-get-it-on.png
--------------------------------------------------------------------------------
/docs/README/images/habit-display-op-tb.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/habit-display-op-tb.gif
--------------------------------------------------------------------------------
/docs/README/images/habit-display-op.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/habit-display-op.gif
--------------------------------------------------------------------------------
/docs/README/images/habit-display-page-tb.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/habit-display-page-tb.gif
--------------------------------------------------------------------------------
/docs/README/images/habit-display-page.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/habit-display-page.gif
--------------------------------------------------------------------------------
/docs/README/images/habit-heatmap-tb.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/habit-heatmap-tb.gif
--------------------------------------------------------------------------------
/docs/README/images/habit-heatmap.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/habit-heatmap.gif
--------------------------------------------------------------------------------
/docs/README/images/lzzyondroid-get-it-on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/lzzyondroid-get-it-on.png
--------------------------------------------------------------------------------
/docs/README/images/testflight-get-it-on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/docs/README/images/testflight-get-it-on.png
--------------------------------------------------------------------------------
/docs/code_errata.md:
--------------------------------------------------------------------------------
1 | # Code Errata
2 |
3 | The purpose of this errata is primarily to note spelling errors or mistakes in source code.
4 | These errors may not affect the program's functionality and may not be immediately fixed.
5 | However, they need to be listed here for reference.
6 |
7 | ## Complete / Complate
8 |
9 | e.g. `isAutoComplated`, `_complate`
10 |
--------------------------------------------------------------------------------
/docs/push_to_new_version.md:
--------------------------------------------------------------------------------
1 | # Bump version
2 |
3 | 1. Modify `pubspec.yaml` and change `version` param
4 | 2. Add new release change log in `CHANGELOG.md`
5 | 1. (Optional) Add translation text at `docs/CHANGELOG/.md`
6 | 3. (For android) Copy current version code change log from `CHANGELOG.md` to `{versionCode}.txt` (create a new file if not exist) at `fastlane/metadata/android/en-us/changelogs`.
7 | 1. (Optional) Add translation text at `fastlane/metadata/android//changelogs`
8 | 2. (Optional) Or run `./scripts/gen_changelogs.sh` to auto generate changelogs from `CHANGELOG.md`
9 |
--------------------------------------------------------------------------------
/docs/release.md:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | # Pre-Release
7 |
8 | ## 1.16.15+84
9 |
10 |
11 |
12 | **🌐 Localization**
13 |
14 | - Update Russian l10n translation, thanks to Yurt Page's contribution on Weblate.
15 | - Update Turkish l10n translation, thanks to Bora Atıcı and Soykan Aydın for their contributions on Weblate.
16 | - Update Ukrainian l10n translation, thank for Preck757's contribution on Github.
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/1.txt:
--------------------------------------------------------------------------------
1 | - Change package domain to `github.io`
2 | - New release
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/10.txt:
--------------------------------------------------------------------------------
1 | - fix fastlane/zh-CN app title name
2 | - fix some spelling errors
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/11.txt:
--------------------------------------------------------------------------------
1 | - add feature to export habit without records
2 | - update `readme`
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/12.txt:
--------------------------------------------------------------------------------
1 | - fixed filter issue, see [#38](https://github.com/FriesI23/mhabit/issues/38)
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/13.txt:
--------------------------------------------------------------------------------
1 | - fixed misspelling in theme change button
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/14.txt:
--------------------------------------------------------------------------------
1 | - add two faster input buttons to change the daily goal value
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/15.txt:
--------------------------------------------------------------------------------
1 | - fixed: FAB display overlap with habit
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/16.txt:
--------------------------------------------------------------------------------
1 | - add custom datetime format picker
2 | - fixed wrong use of create date icon
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/17.txt:
--------------------------------------------------------------------------------
1 | - add compact UI on habits page
2 | - add a slider to adjust the habits check area radio
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/18.txt:
--------------------------------------------------------------------------------
1 | - fixed summary text show negative number
2 | - add new target days option
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/19.txt:
--------------------------------------------------------------------------------
1 | - Add negative habit
2 | - Refactor some of the code
3 | - Add CI
4 |
5 | **IMPORTANT**: Please make a full backup before updating this version.
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/2.txt:
--------------------------------------------------------------------------------
1 | - Feature:
2 | - Add skip reason dialog on heatmap.
3 | - Add 'Maximum Daily Goal' value in Change Goal Dialog.
4 | - Add custom color on skipReason/changeGoal dialog.
5 | - Fixed:
6 | - Provide remaining text for translation.
7 | - int like 1 shouldn't display decimal point.
8 | - Other:
9 | - Change app logo style.
10 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/20.txt:
--------------------------------------------------------------------------------
1 | - Show Memo on Habit detail page
2 | - Support Markdown formatter on Habit memo
3 | - Fixed positive habit's daily goal set to 0 problem in edit page
4 | - Fixed unable to switch habitType when editting exsit habit
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/21.txt:
--------------------------------------------------------------------------------
1 | - Add support for Persian language, Thanks for @chromer030's translation contribution🎉
2 | - Fixed some display issues with UI style under RTL layout
3 | - Add translation statistics graph in `readme`
4 | - Split apk per ABI when releasing new version, only supporting `GitHub/Releases` currently.
5 | - Optimize file structure of CI scripts
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/22.txt:
--------------------------------------------------------------------------------
1 | - Add 'Habit Template' feature
2 | - Refactor `Appbar` section of code
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/23.txt:
--------------------------------------------------------------------------------
1 | - Fixed use the user-entered value for auto-complete instead of using dailyGoal (#85)
2 | - Fixed Included archived habit in most popular habit section (#83)
3 | - Fixed incorrect markdown colors on memo string on dark mode (#79)
4 | - Fixed unclear color for '?' and '×' buttong in dark mode (#75)
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/24.txt:
--------------------------------------------------------------------------------
1 | - Add Themed icon (#89)
2 | - Store the last filled number of target days (#88)
3 | - Show completed habits even when archived (#87)
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/25.txt:
--------------------------------------------------------------------------------
1 | - Change new app icon (#92)
2 | - Fixed chart bars may overlap problem (#94)
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/26.txt:
--------------------------------------------------------------------------------
1 | - Add donate button for crypto currency (#102)
2 | - Fixed filtering to correctly hide completed habits (#104)
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/27.txt:
--------------------------------------------------------------------------------
1 | - Optimize donate dialog (#113)
2 | - Fixed month name alignment (#114)
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/28.txt:
--------------------------------------------------------------------------------
1 | - Upgrade Flutter version to 3.13.9
2 | - Upgrade dependency packages
3 | - Modify app release action to use the submodule from the project
4 | - Fixed some bugs
5 |
6 | see changes in [#115](https://github.com/FriesI23/mhabit/pull/115) for
7 | complete overview.
8 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/29.txt:
--------------------------------------------------------------------------------
1 | - Add German translation
2 | - Add Custom tap actions for Habit Record
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/3.txt:
--------------------------------------------------------------------------------
1 | - Add Fastlane file structure
2 | - Add android app signing
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/30.txt:
--------------------------------------------------------------------------------
1 | - Add Vietnamese translation (#121)
2 | - Update for German translation (#123)
3 | - Fix Habit filter (#125)
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/31.txt:
--------------------------------------------------------------------------------
1 | - Add French translation (#130)
2 | - Add Arabic translation (#132)
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/32.txt:
--------------------------------------------------------------------------------
1 | - Fix incorrect default language (#133)
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/33.txt:
--------------------------------------------------------------------------------
1 | - Freeze score if habit archived (#138)
2 | - Fix not reminding issue on android (#140)
3 | - Fix typo issue in project (#137)
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/34.txt:
--------------------------------------------------------------------------------
1 | - Fix not reminding issue on android (#144)
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/35.txt:
--------------------------------------------------------------------------------
1 | - Update dart SDK dependency to >=3.0.0
2 | - Refactor logging module
3 | - Specify provider dependencies on pages
4 | - Remove dependency with summary and detail page
5 | - Rewrite `context.maybeRead` method
6 | - Fix habit's revert operation
7 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/36.txt:
--------------------------------------------------------------------------------
1 | - Add contributor page
2 | - Fixed where pressing back button would exit app in edit mode
3 | - Refactor code pertaining to `db` / `profile` / `provider` / `view`, etc.
4 | - Add lint options to `analysis_options.yaml`
5 |
6 | **WARNING**: Strongly recommend backup habits before updating this version.
7 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/37.txt:
--------------------------------------------------------------------------------
1 | - Add Batch Check-in feature
2 |
3 | After long press to select multi habits, `Batch Check-in` feature can be
4 | accessed by clicking `FAB` button at bottom right of screen.
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/39.txt:
--------------------------------------------------------------------------------
1 | - Add Russian translation. (#169, thanks for @yurtpage's contribution)
2 | - Add Italian translation. (from Weblate, thanks for @spar34vi's translation)
3 | - Add support for the Windows platform. (#164)
4 | - Add support for `dmg` build on macOS. (#168, thanks for @rxzheng's contribution)
5 | - Add `pre-release` version build process. (#171)
6 | - Fixed issue in `OpenContainer` raise exception when navigating via `Tooltips` enabled. (#166)
7 | - Update iOS dependency package versions.
8 | - Optimize code quality.
9 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/4.txt:
--------------------------------------------------------------------------------
1 | - Fix fastlane locale folder case
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/42.txt:
--------------------------------------------------------------------------------
1 | - Add In-App Language Switching
2 | - Add Debug log Collection feature.
3 | - Fixed: Notification icon wasn't shown on native Android platform.
4 | - Fixed: Localization for batched check-in's changed snackbar text.
5 | - Bump dependencies' versions.
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/45.txt:
--------------------------------------------------------------------------------
1 | - Update Translation file (vi)
2 | - Add linux platform support (#174)
3 | - Fix test reporter action HTTP Error (#181)
4 | - Bump dependencies version
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/47.txt:
--------------------------------------------------------------------------------
1 | - Upgrade flutter to 3.19.6.
2 | - Add Spain translation, thank for Andres Blasco Arnáiz's contribution on weblate.
3 |
4 | full changes on this realese see: [release.md](https://github.com/FriesI23/mhabit/blob/v1.13.1%2B47/docs/release.md)
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/49.txt:
--------------------------------------------------------------------------------
1 | - Update Spain translation, thank for Andres Blasco Arnáiz and gallegonovato's contribution on weblate.
2 | - Fix show black screen when back from main screen.
3 |
4 | full changes on this realese see: [release.md](https://github.com/FriesI23/mhabit/blob/v1.13.3%2B49/docs/release.md)
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/5.txt:
--------------------------------------------------------------------------------
1 | - fix artifact path with appbundle
2 | - fix app signed progress
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/52.txt:
--------------------------------------------------------------------------------
1 | - Add Polish translation (need translate).
2 | - Add Tranditional Chinese translation, thank for PeterDaveHello's contribution on Github.
3 | - Add Ukrainian translation, thank for Fqwe1's contribution on Weblate.
4 | - Update Spanish translation, thank for gallegonovato's contribution on Weblate.
5 | - Update Italian translation, thank for glemco's contribution on Weblate.
6 | - Update Persian translation, thank for ulracte's contribution on Weblate.
7 | - Bump dependencies version, see [here](https://github.com/FriesI23/mhabit/commit/204922af8eaf0c025739623aad85a12f14cefce5) for more information.
8 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/54.txt:
--------------------------------------------------------------------------------
1 | - Add Turkey translation, Thanks for S. Aydın's contribution on weblate.
2 | - Bump Dependencies versions on Android.
3 | - Keep `@mipmap/ic_notification` to prevent it from being removed by `shrinkResources`,
4 | see [https://stackoverflow.com/a/50703322](https://stackoverflow.com/a/50703322).
5 |
6 | full changes on this realese see: [release.md](https://github.com/FriesI23/mhabit/blob/v1.14.1%2B54/docs/release.md)
7 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/56.txt:
--------------------------------------------------------------------------------
1 | - Add Windows MSIX Installer.
2 | - Add separate error page when app crashes during startup.
3 | - Fix issues with incorrect usage of `Completer`.
4 | - Change debug log path to `Cache` directory.
5 | - Change database path to `Support` directory on non-android platforms.
6 | - Update Ukrainian translation, thank for Максим Горпиніч's contribution on Weblate.
7 |
8 | **WARNING**: Because changing database path will involve file migration,
9 | it's strongly recommended to backup (export) habits before upgrading.
10 |
11 | full changes on this realese see: [release.md](https://github.com/FriesI23/mhabit/blob/v1.14.3%2B56/docs/release.md)
12 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/57.txt:
--------------------------------------------------------------------------------
1 | - Strip `DependenciesInfo` block from android, resolve [#205](https://github.com/FriesI23/mhabit/issues/205).
2 |
3 | full changes on this realese see: [release.md](https://github.com/FriesI23/mhabit/blob/v1.14.4%2B57/docs/release.md)
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/6.txt:
--------------------------------------------------------------------------------
1 | - Add distributionSha256Sum, see [here](https://gitlab.com/fdroid/fdroiddata/-/merge_requests/13058#note_1404993220)
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/61.txt:
--------------------------------------------------------------------------------
1 | - Upgrade `flutter` version to 3.24.5.
2 | - Upgrade dependencies version.
3 | - Migrate from `file_picker` to `file_selector`.
4 | - Unifying saveFile and shareXFiles across platforms.
5 | - Use "saveFile": Windows / MacOS / Linux.
6 | - Use "shareXFiles": Android / iOS(iPadOS).
7 | - Optimize page return logic implementation.
8 | - Fix TextFiled's text UI sinking on `Frequency` and `Target Days` picker.
9 | - Fix Habits Exporter function in display page on iPadOS.
10 | - Fix serveral Export related functions on Linux.
11 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/62.txt:
--------------------------------------------------------------------------------
1 | - L10n: Add Czech translation, thank for Jirka Čapek's contribution on Weblate.
2 | - CI: Normalize translation ARB Files.
3 | - CI: Add Code checking Github Action.
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/7.txt:
--------------------------------------------------------------------------------
1 | - Add flutter as submodule
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/77.txt:
--------------------------------------------------------------------------------
1 | **🐛 Bug Fixes**
2 |
3 | - Show notification bar once app is loaded on iOS
4 | - Process duplicate uuid when re-calc habit record uuid (#269)
5 |
6 | **🌐 Localization**
7 |
8 | - Update Spanish l10n translation, thanks to Patricio Carrau's contribution on Weblate.
9 |
10 | **🧹 Others**
11 |
12 | - chore: bump dependencies (#267)
13 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/78.txt:
--------------------------------------------------------------------------------
1 | **🍎 iOS**
2 |
3 | - Add support for iOS app-language preference.
4 |
5 | **📝 Documentation**
6 |
7 | - Add Privacy Policy file.
8 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/8.txt:
--------------------------------------------------------------------------------
1 | - Fix `pubspec.lock` file changed when run `flutter pub get`
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/9.txt:
--------------------------------------------------------------------------------
1 | - remove iternet permission on android
2 | - change launchUrl mode to externel appilication
3 | - bump flutter_donation_buttons to 0.2.7
4 | - fix export habits in the order determined by the manual sort position
5 | - add auto generate changlog python script
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/full_description.txt:
--------------------------------------------------------------------------------
1 | "Table Habit" is an app that helps you establish and track your own micro habit. Its includes a complete set of growth curves and charts to help you establish habits more effectively.
2 |
3 | Moreover, this app completely open source and include features below:
4 |
5 | - A scoring system to help develop your own micro habits.
6 | - An easy-to-use interface for habit check in.
7 | - Different colors used to distinguish between various habits.
8 | - Easily export and import habits using a human-readable format (JSON).
9 | - Adapt to Material3 and Dynamic Color for Android 12 and later versions.
10 | - Adaptation for landscape and large screen devices.
11 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/featureGraphic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/featureGraphic.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/icon.png:
--------------------------------------------------------------------------------
1 | ../../../../../android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/sevenInchScreenshots/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/sevenInchScreenshots/1.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/sevenInchScreenshots/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/sevenInchScreenshots/2.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/sevenInchScreenshots/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/sevenInchScreenshots/3.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/sevenInchScreenshots/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/sevenInchScreenshots/4.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/sevenInchScreenshots/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/sevenInchScreenshots/5.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/sevenInchScreenshots/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/sevenInchScreenshots/6.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/tenInchScreenshots/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/tenInchScreenshots/1.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/tenInchScreenshots/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/tenInchScreenshots/2.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/tenInchScreenshots/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/tenInchScreenshots/3.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/tenInchScreenshots/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/tenInchScreenshots/4.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/tenInchScreenshots/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/tenInchScreenshots/5.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/tenInchScreenshots/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/fastlane/metadata/android/en-US/images/tenInchScreenshots/6.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/short_description.txt:
--------------------------------------------------------------------------------
1 | Boost your own habit growth with charts.
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/title.txt:
--------------------------------------------------------------------------------
1 | Table Habit
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru/full_description.txt:
--------------------------------------------------------------------------------
1 | Таблица Привычек это приложение которое помогает вам установить и отслеживать вашу собственную микро привычку. Он включает в себя полный набор кривых и диаграмм роста, чтобы помочь вам более эффективно прививать привычки.
2 |
3 | Более того, это приложение полностью свободное и имеет такие возможности:
4 |
5 | - Система оценок которая помогает разработать свои собственные микро привычки.
6 | - Простой в использовании интерфейс для регистрации привычки.
7 | - Разные цвета используемые для различных привычек.
8 | - Легко экспортировать и импортировать привычки в человекочитаемый формат (JSON).
9 | - Адаптировано к Material3 и Динамическим цветам для версий Android 12 и старше.
10 | - Адаптация для альбомной ориентации и больших экранов.
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru/short_description.txt:
--------------------------------------------------------------------------------
1 | Прививайте свою привычку с помощью диаграмм.
--------------------------------------------------------------------------------
/fastlane/metadata/android/ru/title.txt:
--------------------------------------------------------------------------------
1 | Таблица Привычек
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/1.txt:
--------------------------------------------------------------------------------
1 | - 将 `package` 域名更改为 `github.io`
2 | - 发布新版本
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/10.txt:
--------------------------------------------------------------------------------
1 | - 修复 Fastlane/zh-CN 应用程序标题名称
2 | - 修复一些拼写错误
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/11.txt:
--------------------------------------------------------------------------------
1 | - 添加无记录导出习惯的功能
2 | - 更新`Readme`文档
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/12.txt:
--------------------------------------------------------------------------------
1 | - 修复筛选器错误, [#38](https://github.com/FriesI23/mhabit/issues/38)
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/13.txt:
--------------------------------------------------------------------------------
1 | - 修复主题更改按钮中的拼写错误
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/14.txt:
--------------------------------------------------------------------------------
1 | - 添加两个更快改变每日目标数值的按钮
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/15.txt:
--------------------------------------------------------------------------------
1 | - 修复 FAB 按钮与习惯重叠的问题
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/16.txt:
--------------------------------------------------------------------------------
1 | - 添加自定义日期时间格式选择弹窗
2 | - 修复创建日期图标的错误使用的问题
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/17.txt:
--------------------------------------------------------------------------------
1 | - 在习惯页面上添加紧凑型用户界面
2 | - 添加滑块来调整习惯勾选区域的占比
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/18.txt:
--------------------------------------------------------------------------------
1 | - 修复总览中显示负数的问题
2 | - 添加新的目标天数选项
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/19.txt:
--------------------------------------------------------------------------------
1 | - 添加负面习惯
2 | - 重构部分代码
3 | - 增加 CI
4 |
5 | **重要**:在更新此版本之前,请进行全量备份。
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/2.txt:
--------------------------------------------------------------------------------
1 | - 新功能:
2 | - 在`Heatmap`上添加跳过原因的`Dialog`。
3 | - 在目标更改`Dialog`中添加“每日最大目标”选项。
4 | - 在跳过原因和目标更改`Dialog`中添加自定义颜色。
5 | - 修复:
6 | - 补充部分文本翻译。
7 | - 整数如`1`不应显示小数点。
8 | - 其他:
9 | - 更改应用图表样式。
10 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/20.txt:
--------------------------------------------------------------------------------
1 | - 在习惯详情页面显示备忘录
2 | - 支持在习惯备忘录中使用 Markdown 格式
3 | - 修复编辑页面中正向习惯目标设为 0 的问题
4 | - 修复编辑已存在习惯时不能切换 habitType 的问题
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/21.txt:
--------------------------------------------------------------------------------
1 | - 增加对波斯语的支持,感谢 @chromer030 的翻译贡献 🎉
2 | - 修复在 RTL 布局下 UI 的显示问题
3 | - 在 `readme` 中添加翻译统计图
4 | - 在发布新版本时按 ABI 拆分 APK,目前仅支持 `GitHub/Releases`
5 | - 优化 CI 脚本的文件组织结构
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/22.txt:
--------------------------------------------------------------------------------
1 | - 增加“习惯模板”功能
2 | - 重构 `Appbar` 部分代码
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/23.txt:
--------------------------------------------------------------------------------
1 | - 修复使用用户输入的值而不是每日目标值计算自动完成数值 (#85)
2 | - 修复在最受欢迎的习惯部分中包含已归档习惯的问题 (#83)
3 | - 修复暗模式下备忘录字符串使用错误的 Markdown 颜色 (#79)
4 | - 修复暗模式下 '?' 和 '×' 按钮颜色不清楚的问题 (#75)
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/24.txt:
--------------------------------------------------------------------------------
1 | - 添加主题图标 (#89)
2 | - 存储上次填写的目标天数 (#88)
3 | - 即使已归档,仍显示已完成习惯 (#87)
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/25.txt:
--------------------------------------------------------------------------------
1 | - 更换新的应用程序图标 (#92)
2 | - 修复了图表柱可能重叠的问题 (#94)
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/26.txt:
--------------------------------------------------------------------------------
1 | - 增加加密货币捐赠按钮(#102)
2 | - 修复筛选正确隐藏已完成习惯(#104)
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/27.txt:
--------------------------------------------------------------------------------
1 | - 优化 捐赠 Dialog (#113)
2 | - 修正 Heatmap 月份名称对齐 (#114)
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/28.txt:
--------------------------------------------------------------------------------
1 | - 升级 Flutter 版本至 3.13.9
2 | - 升级依赖包
3 | - 修改应用发布操作,使用项目中的子模块
4 | - 修复了一些 bug
5 |
6 | 查看完整变更内容,请参见 [#115](https://github.com/FriesI23/mhabit/pull/115).
7 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/29.txt:
--------------------------------------------------------------------------------
1 | - 添加德语翻译
2 | - 增加习惯记录自定义点击操作
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/3.txt:
--------------------------------------------------------------------------------
1 | - 添加 Fastlane 文件结构
2 | - 添加 Android 应用程序签名
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/30.txt:
--------------------------------------------------------------------------------
1 | - 添加越南语翻译 (#121)
2 | - 更新德语翻译 (#123)
3 | - 修复习惯 Filter (#125)
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/31.txt:
--------------------------------------------------------------------------------
1 | - 增加法语翻译 (#130)
2 | - 增加阿拉伯语翻译 (#132)
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/32.txt:
--------------------------------------------------------------------------------
1 | - 修复错误的默认语言 (#133)
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/33.txt:
--------------------------------------------------------------------------------
1 | - 如果习惯已归档,则冻结分数(#138)
2 | - 修复安卓上不提醒的问题(#140)
3 | - 修复项目中的拼写错误问题(#137)
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/34.txt:
--------------------------------------------------------------------------------
1 | - 修复安卓上不提醒的问题(#144)
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/35.txt:
--------------------------------------------------------------------------------
1 | - 更新 Dart SDK 依赖 >=3.0.0
2 | - 重构日志模块
3 | - 明确页面中的 `Provider` 依赖
4 | - 移除摘要和详细页面间的依赖关系
5 | - 重写 `context.maybeRead` 方法
6 | - 修复习惯的撤销操作
7 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/36.txt:
--------------------------------------------------------------------------------
1 | - 添加贡献者页面
2 | - 修复在编辑模式下按返回按钮会退出应用的问题
3 | - 重构与 `db` / `profile` / `provider` / `view` 等相关代码
4 | - `analysis_options.yaml` 中添加相关代码检查选项
5 |
6 | **警告**: 强烈建议在更新此版本之前备份。
7 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/37.txt:
--------------------------------------------------------------------------------
1 | - 新增批量打卡功能
2 |
3 | 长按选择多个习惯后,可以通过点击屏幕右下角的 `FAB` 来访问 `批量打卡` 功能。
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/39.txt:
--------------------------------------------------------------------------------
1 | - 添加俄语翻译。 (#169, 感谢 @yurtpage 的贡献)
2 | - 添加意大利语翻译。 (来自 Weblate,感谢 @spar34vi 的翻译)
3 | - 添加对 Windows 支持。 (#164)
4 | - 添加对 macOS 上 dmg 支持。 (#168, 感谢 @rxzheng 的贡献)
5 | - 添加 `pre-release` 版本构建流程。 (#171)
6 | - 修复了通过 `OpenContainer` 导航时, 如果启用 `Tooltips` 会引发异常的问题。 (#166)
7 | - 更新 iOS 依赖版本。
8 | - 优化代码质量。
9 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/4.txt:
--------------------------------------------------------------------------------
1 | - 修复 Fastlane 的本地化文件夹大小写问题
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/42.txt:
--------------------------------------------------------------------------------
1 | - 添加应用内语言切换功能。
2 | - 添加调试日志收集功能。
3 | - 修复:原生 Android 平台上不显示通知图标。
4 | - 修复:本地化批量签到的 `snackbar` 文本。
5 | - 升级依赖项的版本。
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/45.txt:
--------------------------------------------------------------------------------
1 | - 更新翻译文件。(越南语)
2 | - 增加对 Linux 平台的支持。(#174)
3 | - 修复 Github Action 测试报告程序的 HTTP 错误。(#181)
4 | - 升级依赖项的版本。
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/47.txt:
--------------------------------------------------------------------------------
1 | - 升级 Flutter 到 3.19.6 版本。
2 | - 添加西班牙语翻译,感谢 Andres Blasco Arnáiz 在 weblate 上的贡献。
3 |
4 | 完整的更新内容详见:[release.md](https://github.com/FriesI23/mhabit/blob/v1.13.1%2B47/docs/release.md)
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/49.txt:
--------------------------------------------------------------------------------
1 | - 更新西班牙语翻译,感谢 Andres Blasco Arnáiz 和 gallegonovato 在 Weblate 上的贡献。
2 | - 修复从主屏幕返回时黑屏的问题。
3 |
4 | 完整的更新内容详见:[release.md](https://github.com/FriesI23/mhabit/blob/v1.13.3%2B49/docs/release.md)
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/5.txt:
--------------------------------------------------------------------------------
1 | - 修复 appbundle 构件路径
2 | - 修复应用程序构建签名
3 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/52.txt:
--------------------------------------------------------------------------------
1 | - 添加波兰语翻译(需要翻译)。
2 | - 添加繁体中文翻译,感谢 PeterDaveHello 在 GitHub 上的贡献。
3 | - 添加乌克兰语翻译,感谢 Fqwe1 在 Weblate 上的贡献。
4 | - 更新西班牙语翻译,感谢 gallegonovato 在 Weblate 上的贡献。
5 | - 更新意大利语翻译,感谢 glemco 在 Weblate 上的贡献。
6 | - 更新波斯语翻译,感谢 ulracte 在 Weblate 上的贡献。
7 | - 更新依赖项版本, 更多信息请参见[此处](https://github.com/FriesI23/mhabit/commit/204922af8eaf0c025739623aad85a12f14cefce5)。
8 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/54.txt:
--------------------------------------------------------------------------------
1 | - 添加土耳其语翻译,感谢 S. Aydın 在 Weblate 上的贡献。
2 | - 更新了 Android 端对应依赖版本。
3 | - 保留 `@mipmap/ic_notification`,以防被 `shrinkResources` 移除,
4 | 详见 [https://stackoverflow.com/a/50703322](https://stackoverflow.com/a/50703322)。
5 |
6 | 完整的更新内容详见:[release.md](https://github.com/FriesI23/mhabit/blob/v1.14.1%2B54/docs/release.md)
7 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/56.txt:
--------------------------------------------------------------------------------
1 | - 添加 Windows MSIX 安装程序。
2 | - 在应用启动期间崩溃时添加单独的错误页面。
3 | - 修复部分 `Completer` 使用不当的问题。
4 | - 将调试日志路径更改为 `Cache` 目录。
5 | - 将数据库路径 (非安卓平台)更改为 `Support` 目录。
6 | - 更新乌克兰语翻译,感谢 Максим Горпиніч 在 Weblate 上的贡献。
7 |
8 | **警告**:由于更改数据库路径将涉及文件迁移,强烈建议在升级前备份(导出)习惯数据。
9 |
10 | 完整的更新内容详见:[release.md](https://github.com/FriesI23/mhabit/blob/v1.14.3%2B56/docs/release.md)
11 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/57.txt:
--------------------------------------------------------------------------------
1 | - 从安卓去除 `DependenciesInfo` 块, 解决 [#205](https://github.com/FriesI23/mhabit/issues/205).
2 |
3 | 完整的更新内容详见:[release.md](https://github.com/FriesI23/mhabit/blob/v1.14.4%2B57/docs/release.md)
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/6.txt:
--------------------------------------------------------------------------------
1 | - 添加 distributionSha256Sum,详见[此处](https://gitlab.com/fdroid/fdroiddata/-/merge_requests/13058#note_1404993220)
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/61.txt:
--------------------------------------------------------------------------------
1 | - 升级 `flutter` 版本到 3.24.5。
2 | - 升级依赖版本。
3 | - 将 `file_picker` 迁移到 `file_selector`。
4 | - 统一跨平台的 `saveFile` 和 `shareXFiles` 功能实现:
5 | - Windows / MacOS / Linux 平台使用 `saveFile`。
6 | - Android / iOS(含 iPadOS)平台使用 `shareXFiles`。
7 | - 优化页面返回逻辑实现。
8 | - 修复 `Frequency` 和 `Target Days` 选项中 `TextField` 文本下沉的问题。
9 | - 修复 iPadOS 中显示页面的习惯导出功能。
10 | - 修复 Linux 上多个与导出相关的功能。
11 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/62.txt:
--------------------------------------------------------------------------------
1 | - 本地化:添加捷克语翻译,感谢 Jirka Čapek 在 Weblate 上的贡献。
2 | - CI:标准化翻译 ARB 文件。
3 | - CI:添加代码检查的 GitHub Action。
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/66.txt:
--------------------------------------------------------------------------------
1 | - 更新繁体中文翻译,感谢 Peter Dave Hello 在 GitHub 上的贡献。
2 | - 更新土耳其语翻译,感谢 Bora Atıcı 在 Weblate 上的贡献。
3 | - 更新波兰语翻译,感谢 Bartek Skrzypek 在 Weblate 上的贡献。
4 | - 为 `Proxy` 设计模式相关类添加代码生成器/注解(#228)。
5 | - 确保 `firstday` 配置应用到日历选择(#222,#228)。
6 | - 导出时也导出跳过原因(#227)。
7 | - 修复数据库操作中的若干问题:
8 | - 自定义 SQL 中的变量名拼写错误。
9 | - 使用正确的字段类型:`Record.reason`。
10 | - 在插入多条记录时使用 "update" 而不是 "replace"。
11 | - 插入多条记录时使用事务。
12 | - 修复批量习惯更改页面中无法修改今天状态的问题。
13 | - 修复页面初始化时 `loadData` 被执行多次的问题(#230)。
14 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/7.txt:
--------------------------------------------------------------------------------
1 | - 将 flutter 引入为 submodule
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/70.txt:
--------------------------------------------------------------------------------
1 | **✨ 新功能**
2 |
3 | - 添加 WebDav 网络同步功能(实验性)。
4 | - 添加自动同步功能。
5 | - 添加实验性功能开关。
6 |
7 | > **警告**:WebDav 网络同步会修改数据库字段。
8 | > 请务必先使用 **“导出”** 功能备份当前习惯数据。
9 | >
10 | > **警告**:此功能为实验性,可能包含恶性 BUG。
11 | > 使用时请谨慎操作。
12 |
13 | 1. 前往 `设置 -> 实验性功能` 并启用 `"习惯云同步"` 以显示该功能入口。
14 | 2. 前往 `设置 -> 同步选项` 启用并配置新的服务器。
15 | 3. 点击 `立即同步` 或在主页下拉以与服务器同步,同步进度将在设置中显示。
16 |
17 | 如遇 BUG,请描述当前网络环境,并导出对应的(或全部)同步失败日志。
18 |
19 | **🐛 BUG 修复**
20 |
21 | - 删除习惯后显示正确的底部提示信息。(#247)
22 | - 修复开始日期早于今天的习惯时,分数计算错误的问题。(#248)
23 | - **“全选”** 仅选择当前可见的习惯。(#249)
24 | - (Android)明确声明网络权限。
25 | - (Android)移除不必要的 `READ_EXTERNAL_STORAGE` 权限。
26 |
27 | **🌐 本地化**
28 |
29 | - 更新俄语翻译,感谢 Bora Yurt Page 在 Weblate 上的贡献。
30 | - 更新乌克兰语翻译,感谢 Максим Горпиніч 在 Weblate 上的贡献。
31 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/74.txt:
--------------------------------------------------------------------------------
1 | **✨ 新功能**
2 |
3 | - 添加 iOS 和 Android 启动屏幕图片。
4 | - 默认启用应用同步功能(#264)。
5 |
6 | **🐛 Bug 修复**
7 |
8 | - 选择备份文件后导入未开始的问题(#257)。
9 | - 西里尔字母和表情符号编码错误的问题(#254)。
10 |
11 | **🍎 iOS**
12 |
13 | - **添加构建 Flavor:**
14 | - `f_dev`:用于 iOS 开发构建。
15 | - `f_generic`:用于 iOS 发布构建。
16 | - `f_store`:用于 iOS App Store 发布构建。
17 | - **生成 Logo 变体:**
18 | - 深色版
19 | - 淡色版
20 | - [更多信息](https://developer.apple.com/design/human-interface-guidelines/app-icons#iOS-iPadOS)
21 | - **CI:**
22 | - 添加 iOS 发布 CI(生成未签名 IPA 文件)。
23 |
24 | **🍏 macOS**
25 |
26 | - **添加构建 Flavor:**
27 | - `f_dev`:用于 macOS 开发构建。
28 | - `f_generic`:用于 macOS 发布构建。
29 |
30 | **🪟 Windows**
31 |
32 | - 修复 Windows MSIX 打包问题(#261)。
33 |
34 | **🌐 本地化**
35 |
36 | - 更新西班牙语本地化翻译,感谢 Patricio Carrau 在 Weblate 上的贡献。
37 |
38 | **📝 文档**
39 |
40 | - 更新 **README.md** 中 iOS / macOS 的构建说明。
41 | - 更新 **README.md** 中 iOS Testflight 的说明。
42 | - 更新 **add_new_locale_support.md**。
43 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/77.txt:
--------------------------------------------------------------------------------
1 | **🐛 BUG 修复**
2 |
3 | - 在 iOS 上加载应用后显示通知栏
4 | - 在重新计算习惯记录 UUID 时处理重复的 UUID(#269)
5 |
6 | **🌐 本地化**
7 |
8 | - 更新西班牙语翻译,感谢 Patricio Carrau 在 Weblate 上的贡献。
9 |
10 | **🧹 其他**
11 |
12 | - chore:升级依赖项(#267)
13 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/78.txt:
--------------------------------------------------------------------------------
1 | **🍎 iOS**
2 |
3 | - 支持 iOS 应用语言偏好。
4 |
5 | **📝 文档**
6 |
7 | - 添加隐私政策文件。
8 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/8.txt:
--------------------------------------------------------------------------------
1 | - 修复执行 `flutter pub get` 导致 `pubspec.lock` 被修改的问题
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/changelogs/9.txt:
--------------------------------------------------------------------------------
1 | - 移除应用程序互联网权限
2 | - 修改 `launchUrl` 模式为外部应用程序
3 | - 升级 `flutter_donation_buttons` 至 0.2.7
4 | - 修改导出习惯使其根据手动排序导出
5 | - 添加自动生成变更日志的 Python 脚本
6 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/full_description.txt:
--------------------------------------------------------------------------------
1 | "桌上习惯" 是一款帮助你建立和追踪个人微习惯的应用。它包括一套完整的成长曲线和图表,帮助你更有效地养成习惯。
2 |
3 | 此外,这个应用完全开源,并包含以下功能:
4 |
5 | - 一个评分系统,帮助你发展个人微习惯。
6 | - 简单易用的界面,用于打卡签到习惯。
7 | - 使用不同的颜色来区分不同的习惯。
8 | - 可以使用人类可读的格式(JSON)轻松导出和导入习惯。
9 | - 适配 Material3 和 Android 12 及更高版本的动态颜色。
10 | - 适配横屏和大屏设备。
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/short_description.txt:
--------------------------------------------------------------------------------
1 | 以图表和分数的方式帮助养成个人习惯
--------------------------------------------------------------------------------
/fastlane/metadata/android/zh-CN/title.txt:
--------------------------------------------------------------------------------
1 | Table Habit
--------------------------------------------------------------------------------
/flutter_launcher_icons.yaml:
--------------------------------------------------------------------------------
1 | ./configs/flutter_launcher_incons/flutter_launcher_icons.yaml
--------------------------------------------------------------------------------
/flutter_launcher_momo_icons.yaml:
--------------------------------------------------------------------------------
1 | ./configs/flutter_launcher_incons/flutter_launcher_momo_icons.yaml
--------------------------------------------------------------------------------
/flutter_launcher_notification_icons.yaml:
--------------------------------------------------------------------------------
1 | configs/flutter_launcher_incons/flutter_launcher_notification_icons.yaml
--------------------------------------------------------------------------------
/installers/dmg_creator/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Table Habit",
3 | "icon": "./icon.icns",
4 | "icon-size": 100,
5 | "window": {
6 | "size": {
7 | "width": 400,
8 | "height": 100
9 | }
10 | },
11 | "contents": [
12 | { "x": 250, "y": 80, "type": "link", "path": "/Applications" },
13 | { "x": 50, "y": 80, "type": "file", "path": "../../build/macos/Build/Products/Release/mhabit.app" }
14 | ]
15 | }
--------------------------------------------------------------------------------
/installers/dmg_creator/icon.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/installers/dmg_creator/icon.icns
--------------------------------------------------------------------------------
/installers/macos_exporter/GithubExportOptions.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | manageAppVersionAndBuildNumber
6 |
7 | method
8 | developer-id
9 | teamID
10 | ${APPLE_TEAM_ID}
11 |
12 |
13 |
--------------------------------------------------------------------------------
/ios/.gitignore:
--------------------------------------------------------------------------------
1 | **/dgph
2 | *.mode1v3
3 | *.mode2v3
4 | *.moved-aside
5 | *.pbxuser
6 | *.perspectivev3
7 | **/*sync/
8 | .sconsign.dblite
9 | .tags*
10 | **/.vagrant/
11 | **/DerivedData/
12 | Icon?
13 | **/Pods/
14 | **/.symlinks/
15 | profile
16 | xcuserdata
17 | **/.generated/
18 | Flutter/App.framework
19 | Flutter/Flutter.framework
20 | Flutter/Flutter.podspec
21 | Flutter/Generated.xcconfig
22 | Flutter/ephemeral/
23 | Flutter/app.flx
24 | Flutter/app.zip
25 | Flutter/flutter_assets/
26 | Flutter/flutter_export_environment.sh
27 | ServiceDefinitions.json
28 | Runner/GeneratedPluginRegistrant.*
29 |
30 | # build dir
31 | build/
32 |
33 | # Exceptions to above rules.
34 | !default.mode1v3
35 | !default.mode2v3
36 | !default.pbxuser
37 | !default.perspectivev3
38 |
--------------------------------------------------------------------------------
/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | App
9 | CFBundleIdentifier
10 | io.flutter.flutter.app
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | App
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | MinimumOSVersion
24 | 12.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/ios/Localizations/ar.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/ar.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/cs.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/cs.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/de.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/de.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/en.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/en.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/es.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/es.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/fa.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/fa.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/fr.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/fr.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/he.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/he.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/it.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/it.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/nb.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/nb.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/pl.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/pl.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/pt.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/pt.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/ru.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/ru.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/tr.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/tr.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/uk.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/uk.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/vi.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/vi.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/zh-Hans.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "桌上习惯 开发版";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/zh-Hans.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "桌上习惯";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/zh-Hant.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "桌上習慣 開發版";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/zh-Hant.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "桌上習慣";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/zh.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 |
--------------------------------------------------------------------------------
/ios/Localizations/zh.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @main
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | if #available(iOS 10.0, *) {
11 | UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
12 | }
13 |
14 | GeneratedPluginRegistrant.register(with: self)
15 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-38x38@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-38x38@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-38x38@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-38x38@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-64x64@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-64x64@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-64x64@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-64x64@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-68x68@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-68x68@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-1024x1024@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-20x20@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-20x20@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-29x29@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-29x29@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-38x38@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-38x38@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-38x38@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-38x38@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-40x40@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-40x40@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-60x60@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-60x60@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-64x64@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-64x64@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-64x64@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-64x64@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-68x68@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-68x68@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Dark-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-1024x1024@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-20x20@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-20x20@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-29x29@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-29x29@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-38x38@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-38x38@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-38x38@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-38x38@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-40x40@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-40x40@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-60x60@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-60x60@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-64x64@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-64x64@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-64x64@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-64x64@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-68x68@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-68x68@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-76x76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-Tinted-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "background.png",
5 | "idiom" : "universal"
6 | },
7 | {
8 | "appearances" : [
9 | {
10 | "appearance" : "luminosity",
11 | "value" : "dark"
12 | }
13 | ],
14 | "filename" : "darkbackground.png",
15 | "idiom" : "universal"
16 | }
17 | ],
18 | "info" : {
19 | "author" : "xcode",
20 | "version" : 1
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchBackground.imageset/darkbackground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/LaunchBackground.imageset/darkbackground.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImageDark@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/ios/Runner/Runner.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | keychain-access-groups
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/RunnerTests/RunnerTests.swift:
--------------------------------------------------------------------------------
1 | import Flutter
2 | import UIKit
3 | import XCTest
4 |
5 | class RunnerTests: XCTestCase {
6 |
7 | func testExample() {
8 | // If you add code to the Runner application, consider adding tests here.
9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/l10n.yaml:
--------------------------------------------------------------------------------
1 | ./configs/l10n.yaml
--------------------------------------------------------------------------------
/lib/annotation/_json_annotation.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2023 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export './epoch_date_time_converter.dart';
16 | export './epoch_habit_date_converter.dart';
17 | export './normalizing_list_converter.dart';
18 | export './time_of_day_converter.dart';
19 |
--------------------------------------------------------------------------------
/lib/annotation/proxy_annotation.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2025 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // https://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | class Proxy {
16 | final Type targetClass;
17 | final bool useAnnotatedName;
18 |
19 | const Proxy(this.targetClass, {this.useAnnotatedName = false});
20 | }
21 |
--------------------------------------------------------------------------------
/lib/assets/assets.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2024 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // https://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export './assets.gen.dart';
16 | export './fonts.gen.dart';
17 |
--------------------------------------------------------------------------------
/lib/assets/fonts.gen.dart:
--------------------------------------------------------------------------------
1 | /// GENERATED CODE - DO NOT MODIFY BY HAND
2 | /// *****************************************************
3 | /// FlutterGen
4 | /// *****************************************************
5 |
6 | // coverage:ignore-file
7 | // ignore_for_file: type=lint
8 | // ignore_for_file: directives_ordering,unnecessary_import,implicit_dynamic_list_literal,deprecated_member_use
9 |
10 | class FontFamily {
11 | FontFamily._();
12 |
13 | /// Font family: CommonIcons
14 | static const String commonIcons = 'CommonIcons';
15 |
16 | /// Font family: HabitCalIcons
17 | static const String habitCalIcons = 'HabitCalIcons';
18 |
19 | /// Font family: HabitProgressIcons
20 | static const String habitProgressIcons = 'HabitProgressIcons';
21 |
22 | /// Font family: HabitSortIcons
23 | static const String habitSortIcons = 'HabitSortIcons';
24 | }
25 |
--------------------------------------------------------------------------------
/lib/common/async.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2023 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | abstract interface class AsyncInitialization {
16 | Future init();
17 | }
18 |
--------------------------------------------------------------------------------
/lib/common/re.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2023 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | import 'package:flutter/services.dart';
16 |
17 | class TextFormatterCustom {
18 | static final decimalr2 =
19 | FilteringTextInputFormatter.allow(RegExp(r'^\d+\.?\d{0,2}'));
20 | }
21 |
--------------------------------------------------------------------------------
/lib/component/animation.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2023 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export './animations/animate.dart';
16 |
--------------------------------------------------------------------------------
/lib/component/provider.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2024 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // https://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export './widgets/date_change.dart' show DateChangeNotifier;
16 |
--------------------------------------------------------------------------------
/lib/extension/context_extensions.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2023 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | import 'package:flutter/material.dart';
16 | import 'package:provider/provider.dart';
17 |
18 | extension ProviderReadExtension on BuildContext {
19 | T? maybeRead() => Provider.of(this, listen: false);
20 | }
21 |
--------------------------------------------------------------------------------
/lib/extension/string_extensions.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2023 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | extension UUIDStringExtensions on String {
16 | int toUUIDInt() => int.parse(replaceAll('-', ''), radix: 16);
17 | }
18 |
--------------------------------------------------------------------------------
/lib/extension/textscale_extensions.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2024 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // https://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | import 'package:flutter/material.dart';
16 |
17 | extension TextScaleExtension on TextScaler {
18 | Size scaleForSize(T size) =>
19 | Size(scale(size.width), scale(size.height));
20 | }
21 |
--------------------------------------------------------------------------------
/lib/logging/helper.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2024 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // https://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | import 'logger_manager.dart';
16 |
17 | final appLog = AppLoggerMananger();
18 |
--------------------------------------------------------------------------------
/lib/logging/logger_message.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2024 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // https://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | import 'logger_type.dart';
16 |
17 | abstract interface class AppLoggerMessage {
18 | LoggerType get type;
19 | bool get forceLogging;
20 |
21 | Iterable toLogPrinterMessage();
22 | }
23 |
--------------------------------------------------------------------------------
/lib/model/contributor.g.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 |
3 | part of 'contributor.dart';
4 |
5 | // **************************************************************************
6 | // JsonSerializableGenerator
7 | // **************************************************************************
8 |
9 | ContributorInfo _$ContributorInfoFromJson(Map json) =>
10 | ContributorInfo(
11 | id: (json['id'] as num?)?.toInt(),
12 | name: json['name'] as String,
13 | url: json['url'] as String?,
14 | );
15 |
--------------------------------------------------------------------------------
/lib/model/habit_score.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2023 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export './_score/calculator.dart'
16 | show ArchivedHabitScoreCalculator, HabitScoreCalculator;
17 | export './_score/data.dart' show HabitScoreChangedProtoData;
18 | export '_score/score.dart';
19 |
--------------------------------------------------------------------------------
/lib/persistent/local/db_cell.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2024 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // https://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | abstract mixin class DBCell {
16 | factory DBCell.fromJson(Map json) =>
17 | throw UnimplementedError;
18 | Map toJson();
19 |
20 | @override
21 | String toString() {
22 | return "$runtimeType(${toJson()})";
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/lib/persistent/local/table.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2024 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // https://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | class TableName {
16 | static const records = 'mh_records';
17 | static const habits = 'mh_habits';
18 | static const sync = 'mh_sync';
19 | }
20 |
--------------------------------------------------------------------------------
/lib/provider/utils.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2023 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export '_utils/habit_chart_utils.dart';
16 | export '_utils/habit_record_utils.dart';
17 |
--------------------------------------------------------------------------------
/lib/theme/_colors/crypto_colors.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2023 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | import 'package:flutter/material.dart';
16 |
17 | const Color colorBTC = Color(0xFFF7931A);
18 | const Color colorETH = Color(0xFF627EEA);
19 | const Color colorBNB = Color(0xFFFFA500);
20 | const Color colorAVAX = Color(0xFF0000FF);
21 | const Color colorFTM = Color(0xFF00FF00);
22 |
--------------------------------------------------------------------------------
/lib/theme/_icons/cal_icons.g.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 |
3 | import 'package:flutter/widgets.dart';
4 |
5 | @immutable
6 | class _HabitCalIconsData extends IconData {
7 | const _HabitCalIconsData(int codePoint)
8 | : super(
9 | codePoint,
10 | fontFamily: 'HabitCalIcons',
11 | );
12 | }
13 |
14 | @immutable
15 | class HabitCalIcons {
16 | const HabitCalIcons._();
17 |
18 | static const IconData calendar_create = _HabitCalIconsData(0xf101);
19 | static const IconData calendar_modify = _HabitCalIconsData(0xf102);
20 | }
21 |
--------------------------------------------------------------------------------
/lib/theme/_icons/common_icons.g.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 |
3 | import 'package:flutter/widgets.dart';
4 |
5 | @immutable
6 | class _CommonIconsData extends IconData {
7 | const _CommonIconsData(int codePoint)
8 | : super(
9 | codePoint,
10 | fontFamily: 'CommonIcons',
11 | );
12 | }
13 |
14 | @immutable
15 | class CommonIcons {
16 | const CommonIcons._();
17 |
18 | static const IconData beta = _CommonIconsData(0xf101);
19 | static const IconData la_donate = _CommonIconsData(0xf102);
20 | }
21 |
--------------------------------------------------------------------------------
/lib/theme/icon.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2023 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export '_icons/cal_icons.g.dart';
16 | export '_icons/common_icons.g.dart';
17 | export '_icons/progress_icons.g.dart';
18 | export '_icons/sort_icons.g.dart';
19 |
--------------------------------------------------------------------------------
/lib/view/common/_mixin.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2023 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export './xshare.dart' show XShare;
16 |
--------------------------------------------------------------------------------
/lib/view/for_app/_widget.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2024 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // https://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export './app_providers.dart';
16 |
--------------------------------------------------------------------------------
/lib/view/for_app_debugger/_widget.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2024 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // https://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export './change_logs_switcher_tile.dart' show ChangeLogsSwitcherTile;
16 |
--------------------------------------------------------------------------------
/lib/view/for_app_sync/_dialog.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2025 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // https://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export './app_sync_fetch_interval.dart'
16 | show AppSyncFetchIntervalSwitchDialog, showAppSyncFetchIntervalSwitchDialog;
17 |
--------------------------------------------------------------------------------
/lib/view/for_app_sync/_widget.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2025 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // https://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export './app_sync_fail_logs_tile.dart';
16 | export './app_sync_fetch_interval.dart' show AppSyncFetchIntervalTile;
17 | export './app_sync_summary_tile.dart';
18 |
--------------------------------------------------------------------------------
/lib/view/for_habit_detail/_dialog.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2023 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export './habit_edit_repl_rcd_cal.dart'
16 | show
17 | HabitEditReplacementRecordCalendarDialog,
18 | showHabitEditReplacementRecordCalendarDialog;
19 |
--------------------------------------------------------------------------------
/lib/view/for_habits_display/_dialog.dart:
--------------------------------------------------------------------------------
1 | // Copyright 2023 Fries_I23
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | export 'habit_display_main_menu.dart';
16 | export 'habit_display_sort_type_picker.dart';
17 | export 'habit_display_stats_menu.dart';
18 |
--------------------------------------------------------------------------------
/linux/.gitignore:
--------------------------------------------------------------------------------
1 | flutter/ephemeral
2 |
--------------------------------------------------------------------------------
/linux/flutter/generated_plugin_registrant.h:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // clang-format off
6 |
7 | #ifndef GENERATED_PLUGIN_REGISTRANT_
8 | #define GENERATED_PLUGIN_REGISTRANT_
9 |
10 | #include
11 |
12 | // Registers Flutter plugins.
13 | void fl_register_plugins(FlPluginRegistry* registry);
14 |
15 | #endif // GENERATED_PLUGIN_REGISTRANT_
16 |
--------------------------------------------------------------------------------
/linux/main.cc:
--------------------------------------------------------------------------------
1 | #include "my_application.h"
2 |
3 | int main(int argc, char** argv) {
4 | g_autoptr(MyApplication) app = my_application_new();
5 | return g_application_run(G_APPLICATION(app), argc, argv);
6 | }
7 |
--------------------------------------------------------------------------------
/linux/my_application.h:
--------------------------------------------------------------------------------
1 | #ifndef FLUTTER_MY_APPLICATION_H_
2 | #define FLUTTER_MY_APPLICATION_H_
3 |
4 | #include
5 |
6 | G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION,
7 | GtkApplication)
8 |
9 | /**
10 | * my_application_new:
11 | *
12 | * Creates a new Flutter-based application.
13 | *
14 | * Returns: a new #MyApplication.
15 | */
16 | MyApplication* my_application_new();
17 |
18 | #endif // FLUTTER_MY_APPLICATION_H_
19 |
--------------------------------------------------------------------------------
/macos/.gitignore:
--------------------------------------------------------------------------------
1 | # Flutter-related
2 | **/Flutter/ephemeral/
3 | **/Pods/
4 |
5 | # Xcode-related
6 | **/dgph
7 | **/xcuserdata/
8 |
--------------------------------------------------------------------------------
/macos/Flutter/Flutter-Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/macos/Flutter/Flutter-Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "ephemeral/Flutter-Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/macos/Localizations/en.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit (Dev)";
2 | CFBundleName = "Table Habit (Dev)";
3 |
--------------------------------------------------------------------------------
/macos/Localizations/en.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "Table Habit";
2 | CFBundleName = "Table Habit";
3 |
--------------------------------------------------------------------------------
/macos/Localizations/zh-Hans.lproj/dev-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "桌上习惯 开发版";
2 | CFBundleName = "桌上习惯 开发版";
3 |
--------------------------------------------------------------------------------
/macos/Localizations/zh-Hans.lproj/generic-InfoPlist.strings:
--------------------------------------------------------------------------------
1 | CFBundleDisplayName = "桌上习惯";
2 | CFBundleName = "桌上习惯";
3 |
--------------------------------------------------------------------------------
/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/macos/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/macos/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import Cocoa
2 | import FlutterMacOS
3 |
4 | @main
5 | class AppDelegate: FlutterAppDelegate {
6 | override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
7 | return true
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png
--------------------------------------------------------------------------------
/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/FriesI23/mhabit/25d93f91425a09350142967a61f1d2d213c14139/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png
--------------------------------------------------------------------------------
/macos/Runner/Configs/AppInfo.xcconfig:
--------------------------------------------------------------------------------
1 | // Application-level settings for the Runner target.
2 | //
3 | // This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the
4 | // future. If not, the values below would default to using the project name when this becomes a
5 | // 'flutter create' template.
6 |
7 | // The application's name. By default this is also the title of the Flutter window.
8 | PRODUCT_NAME = mhabit
9 |
10 | // The application's bundle identifier
11 | PRODUCT_BUNDLE_IDENTIFIER = io.github.friesi23.mhabit
12 |
13 | // The copyright displayed in application information
14 | PRODUCT_COPYRIGHT = Copyright © 2024 io.github.friesi23. All rights reserved.
15 |
--------------------------------------------------------------------------------
/macos/Runner/Configs/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Debug.xcconfig"
2 | #include "Warnings.xcconfig"
3 |
--------------------------------------------------------------------------------
/macos/Runner/Configs/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "../../Flutter/Flutter-Release.xcconfig"
2 | #include "Warnings.xcconfig"
3 |
--------------------------------------------------------------------------------
/macos/Runner/Configs/Warnings.xcconfig:
--------------------------------------------------------------------------------
1 | WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings
2 | GCC_WARN_UNDECLARED_SELECTOR = YES
3 | CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES
4 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE
5 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES
6 | CLANG_WARN_PRAGMA_PACK = YES
7 | CLANG_WARN_STRICT_PROTOTYPES = YES
8 | CLANG_WARN_COMMA = YES
9 | GCC_WARN_STRICT_SELECTOR_MATCH = YES
10 | CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES
11 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES
12 | GCC_WARN_SHADOW = YES
13 | CLANG_WARN_UNREACHABLE_CODE = YES
14 |
--------------------------------------------------------------------------------
/macos/Runner/DebugProfile.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.cs.allow-jit
8 |
9 | com.apple.security.network.server
10 |
11 | com.apple.security.network.client
12 |
13 | com.apple.security.files.user-selected.read-write
14 |
15 | keychain-access-groups
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/macos/Runner/MainFlutterWindow.swift:
--------------------------------------------------------------------------------
1 | import Cocoa
2 | import FlutterMacOS
3 |
4 | class MainFlutterWindow: NSWindow {
5 | override func awakeFromNib() {
6 | let flutterViewController = FlutterViewController()
7 | let windowFrame = self.frame
8 | self.contentViewController = flutterViewController
9 | self.setFrame(windowFrame, display: true)
10 |
11 | RegisterGeneratedPlugins(registry: flutterViewController)
12 |
13 | super.awakeFromNib()
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/macos/Runner/Release.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.files.user-selected.read-write
8 |
9 | com.apple.security.network.client
10 |
11 | keychain-access-groups
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/macos/RunnerTests/RunnerTests.swift:
--------------------------------------------------------------------------------
1 | import FlutterMacOS
2 | import Cocoa
3 | import XCTest
4 |
5 | class RunnerTests: XCTestCase {
6 |
7 | func testExample() {
8 | // If you add code to the Runner application, consider adding tests here.
9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest.
10 | }
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/package_rename_config.yaml:
--------------------------------------------------------------------------------
1 | ./configs/package_rename_config/package_rename_config_v2.yaml
--------------------------------------------------------------------------------
/scripts/build_msix.cmd:
--------------------------------------------------------------------------------
1 | @rem Copyright 2024 Fries_I23
2 | @rem
3 | @rem Licensed under the Apache License, Version 2.0 (the "License");
4 | @rem you may not use this file except in compliance with the License.
5 | @rem You may obtain a copy of the License at
6 | @rem
7 | @rem https://www.apache.org/licenses/LICENSE-2.0
8 | @rem
9 | @rem Unless required by applicable law or agreed to in writing, software
10 | @rem distributed under the License is distributed on an "AS IS" BASIS,
11 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | @rem See the License for the specific language governing permissions and
13 | @rem limitations under the License.
14 | @echo off
15 |
16 | set VERSION="unknown"
17 | for /f "tokens=2 delims=:" %%a in ('findstr /R "^version:" pubspec.yaml') do set VERSION=%%a
18 | set VERSION=%VERSION: =%
19 |
20 | echo "Building %VERSION%"
21 | dart run msix:create --architecture x64 --output-name mhabit_%VERSION%_x64
22 |
--------------------------------------------------------------------------------
/scripts/build_runner.cmd:
--------------------------------------------------------------------------------
1 | @rem Copyright 2023 Fries_I23
2 | @rem
3 | @rem Licensed under the Apache License, Version 2.0 (the "License");
4 | @rem you may not use this file except in compliance with the License.
5 | @rem You may obtain a copy of the License at
6 | @rem
7 | @rem http://www.apache.org/licenses/LICENSE-2.0
8 | @rem
9 | @rem Unless required by applicable law or agreed to in writing, software
10 | @rem distributed under the License is distributed on an "AS IS" BASIS,
11 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | @rem See the License for the specific language governing permissions and
13 | @rem limitations under the License.
14 |
15 | (
16 | flutter pub run build_runner build --delete-conflicting-outputs
17 | ) & (
18 | flutter gen-l10n
19 | )
--------------------------------------------------------------------------------
/scripts/build_runner.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # Copyright 2023 Fries_I23
4 | #
5 | # Licensed under the Apache License, Version 2.0 (the "License");
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 |
17 | flutter pub run build_runner build --delete-conflicting-outputs
18 | flutter gen-l10n
--------------------------------------------------------------------------------
/scripts/gen_covhtml.cmd:
--------------------------------------------------------------------------------
1 | @rem Copyright 2023 Fries_I23
2 | @rem
3 | @rem Licensed under the Apache License, Version 2.0 (the "License");
4 | @rem you may not use this file except in compliance with the License.
5 | @rem You may obtain a copy of the License at
6 | @rem
7 | @rem http://www.apache.org/licenses/LICENSE-2.0
8 | @rem
9 | @rem Unless required by applicable law or agreed to in writing, software
10 | @rem distributed under the License is distributed on an "AS IS" BASIS,
11 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | @rem See the License for the specific language governing permissions and
13 | @rem limitations under the License.
14 |
15 | set PERL=C:\Strawberry\perl\bin\perl.exe
16 | set GENTHML=C:\ProgramData\chocolatey\lib\lcov\tools\bin\genhtml
17 |
18 | (
19 | flutter test --coverage
20 | ) & (
21 | %PERL% %GENTHML% -o coverage\html coverage\lcov.info
22 | start coverage\html\index.html
23 | )
24 |
--------------------------------------------------------------------------------
/scripts/gen_covhtml.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | #
3 | # Copyright 2023 Fries_I23
4 | #
5 | # Licensed under the Apache License, Version 2.0 (the "License");
6 | # you may not use this file except in compliance with the License.
7 | # You may obtain a copy of the License at
8 | #
9 | # http://www.apache.org/licenses/LICENSE-2.0
10 | #
11 | # Unless required by applicable law or agreed to in writing, software
12 | # distributed under the License is distributed on an "AS IS" BASIS,
13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | # See the License for the specific language governing permissions and
15 | # limitations under the License.
16 |
17 | export PERL=/usr/bin/perl
18 | export GENTHML=/usr/local/bin/genhtml
19 |
20 | flutter test --coverage
21 |
22 | $PERL $GENTHML -o coverage/html coverage/lcov.info && \
23 | open coverage/html/index.html
24 |
--------------------------------------------------------------------------------
/scripts/gen_translate_graph.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Copyright 2023 Fries_I23
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 | SCRIPT_PATH=$(dirname $0)
16 | echo "Generating localized translation statistics"
17 | $SCRIPT_PATH/gen_translate_graph.py -p $SCRIPT_PATH/../assets/l10n/ --img-outpath $SCRIPT_PATH/../docs/README/images/l10n-stat.svg
--------------------------------------------------------------------------------
/scripts/git_set_commit_template.cmd:
--------------------------------------------------------------------------------
1 | @rem Copyright 2023 Fries_I23
2 | @rem
3 | @rem Licensed under the Apache License, Version 2.0 (the "License");
4 | @rem you may not use this file except in compliance with the License.
5 | @rem You may obtain a copy of the License at
6 | @rem
7 | @rem http://www.apache.org/licenses/LICENSE-2.0
8 | @rem
9 | @rem Unless required by applicable law or agreed to in writing, software
10 | @rem distributed under the License is distributed on an "AS IS" BASIS,
11 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | @rem See the License for the specific language governing permissions and
13 | @rem limitations under the License.
14 |
15 | git config commit.template templates/git/commit.template
--------------------------------------------------------------------------------
/scripts/git_set_commit_template.sh:
--------------------------------------------------------------------------------
1 | # Copyright 2023 Fries_I23
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | git config commit.template templates/git/commit.template
--------------------------------------------------------------------------------
/scripts/rename_app.sh:
--------------------------------------------------------------------------------
1 | # Copyright 2023 Fries_I23
2 | #
3 | # Licensed under the Apache License, Version 2.0 (the "License");
4 | # you may not use this file except in compliance with the License.
5 | # You may obtain a copy of the License at
6 | #
7 | # http://www.apache.org/licenses/LICENSE-2.0
8 | #
9 | # Unless required by applicable law or agreed to in writing, software
10 | # distributed under the License is distributed on an "AS IS" BASIS,
11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | # See the License for the specific language governing permissions and
13 | # limitations under the License.
14 |
15 | flutter pub run package_rename:set
16 |
--------------------------------------------------------------------------------
/templates/git/commit-bumpversion.template:
--------------------------------------------------------------------------------
1 | # Type():
2 | # chore: Bump version to
3 |
4 | #
5 |
6 | #