├── assets
├── l10n
│ ├── intl_sr.arb
│ ├── intl_hr.arb
│ ├── intl_km.arb
│ ├── intl_cy.arb
│ ├── intl_sk.arb
│ ├── intl_mnc.arb
│ ├── intl_nb.arb
│ ├── intl_sr_Latn.arb
│ ├── intl_zh_Hant.arb
│ ├── intl_hi.arb
│ ├── intl_bn.arb
│ ├── intl_oc.arb
│ └── intl_th.arb
├── app_icon.png
├── adaptive_icon_fg.png
├── app_icon.svg
└── readme_icon.svg
├── linux
├── .gitignore
├── main.cc
├── flutter
│ ├── generated_plugin_registrant.h
│ ├── generated_plugin_registrant.cc
│ └── generated_plugins.cmake
└── my_application.h
├── fastlane
├── metadata
│ └── android
│ │ ├── de-DE
│ │ ├── title.txt
│ │ ├── full_description.txt
│ │ └── short_description.txt
│ │ └── en-US
│ │ ├── title.txt
│ │ ├── short_description.txt
│ │ ├── images
│ │ ├── icon.png
│ │ ├── featureGraphic.png
│ │ └── phoneScreenshots
│ │ │ ├── 1.png
│ │ │ ├── 2.png
│ │ │ ├── 3.png
│ │ │ ├── 4.png
│ │ │ ├── 5.png
│ │ │ └── 6.png
│ │ ├── changelogs
│ │ ├── 14.txt
│ │ ├── 17.txt
│ │ ├── 19.txt
│ │ ├── 16.txt
│ │ ├── 13.txt
│ │ ├── 11.txt
│ │ ├── 15.txt
│ │ ├── 18.txt
│ │ └── 12.txt
│ │ └── full_description.txt
├── Gemfile
├── Fastfile
└── README.md
├── ios
├── Flutter
│ ├── .last_build_id
│ ├── Debug.xcconfig
│ ├── Release.xcconfig
│ └── AppFrameworkInfo.plist
├── Runner
│ ├── Runner-Bridging-Header.h
│ ├── Assets.xcassets
│ │ ├── Contents.json
│ │ ├── LaunchImage.imageset
│ │ │ ├── phone-dark.png
│ │ │ ├── phone-light.png
│ │ │ ├── universal-dark.png
│ │ │ ├── universal-light.png
│ │ │ ├── README.md
│ │ │ └── Contents.json
│ │ └── AppIcon.appiconset
│ │ │ ├── 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-40x40@1x.png
│ │ │ ├── Icon-App-40x40@2x.png
│ │ │ ├── Icon-App-40x40@3x.png
│ │ │ ├── Icon-App-60x60@2x.png
│ │ │ ├── Icon-App-60x60@3x.png
│ │ │ ├── Icon-App-76x76@1x.png
│ │ │ ├── Icon-App-76x76@2x.png
│ │ │ ├── Icon-App-1024x1024@1x.png
│ │ │ └── Icon-App-83.5x83.5@2x.png
│ ├── AppDelegate.swift
│ ├── Base.lproj
│ │ └── Main.storyboard
│ └── Info.plist
├── Runner.xcodeproj
│ └── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ ├── WorkspaceSettings.xcsettings
│ │ └── IDEWorkspaceChecks.plist
├── Runner.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ ├── WorkspaceSettings.xcsettings
│ │ └── IDEWorkspaceChecks.plist
├── .gitignore
└── Podfile
├── lib
├── widgets
│ ├── post
│ │ ├── post_status.dart
│ │ ├── save_post_button.dart
│ │ ├── post_media.dart
│ │ ├── post_actions.dart
│ │ ├── post_voting.dart
│ │ ├── post_title.dart
│ │ └── post_link_preview.dart
│ ├── markdown_mode_icon.dart
│ ├── pull_to_refresh.dart
│ ├── bottom_safe.dart
│ ├── fullscreenable_image.dart
│ ├── failed_to_load.dart
│ ├── user_tile.dart
│ ├── reveal_after_scroll.dart
│ ├── report_dialog.dart
│ ├── post_list_options.dart
│ ├── info_table_popup.dart
│ ├── tile_action.dart
│ ├── editor
│ │ ├── editor_toolbar_store.dart
│ │ ├── editor_toolbar_store.g.dart
│ │ └── editor.dart
│ ├── avatar.dart
│ ├── cached_network_image.dart
│ ├── radio_picker.dart
│ ├── markdown_text.dart
│ └── bottom_modal.dart
├── util
│ ├── pictrs.dart
│ ├── extensions
│ │ ├── brightness.dart
│ │ ├── iterators.dart
│ │ ├── spaced.dart
│ │ ├── context.dart
│ │ └── api.dart
│ ├── icons.dart
│ ├── text_color.dart
│ ├── cleanup_url.dart
│ ├── files.dart
│ ├── hot_rank.dart
│ ├── delayed_action.dart
│ ├── share.dart
│ ├── mobx_provider.dart
│ ├── async_store_listener.dart
│ ├── observer_consumers.dart
│ ├── text_lines_iterator.dart
│ └── goto.dart
├── app_config.dart
├── main_dev.dart
├── main_prod.dart
├── hooks
│ ├── infinite_scroll.dart
│ ├── memo_future.dart
│ ├── stores.dart
│ ├── debounce.dart
│ ├── delayed_loading.dart
│ ├── refreshable.dart
│ └── logged_in_action.dart
├── resources
│ └── links.dart
├── pages
│ ├── log_console
│ │ ├── log_console_page_store.dart
│ │ └── log_console_page_store.g.dart
│ ├── settings
│ │ └── blocks
│ │ │ ├── user_block_store.dart
│ │ │ ├── community_block_store.dart
│ │ │ ├── user_block_store.g.dart
│ │ │ ├── community_block_store.g.dart
│ │ │ └── block_tile.dart
│ ├── create_post
│ │ ├── create_post_fab.dart
│ │ ├── create_post_instance_picker.dart
│ │ └── create_post_url_field.dart
│ ├── instance
│ │ ├── instance_store.dart
│ │ ├── instance_store.g.dart
│ │ └── instance_more_menu.dart
│ ├── community
│ │ ├── community_store.g.dart
│ │ ├── community_follow_button.dart
│ │ ├── community_store.dart
│ │ └── community_more_menu.dart
│ ├── modlog
│ │ ├── modlog_page_store.dart
│ │ └── modlog_page_store.g.dart
│ ├── users_list.dart
│ ├── communities_list.dart
│ ├── saved_page.dart
│ ├── home_page.dart
│ ├── search_tab.dart
│ └── user.dart
├── app.dart
├── l10n
│ ├── timeago
│ │ └── pl.dart
│ └── l10n_api.dart
├── stores
│ └── accounts_store.g.dart
├── gen
│ └── assets.gen.dart
└── comment_tree.dart
├── .github
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ ├── ---feature-request.md
│ └── ---bug-report.md
└── workflows
│ └── weblate.yml
├── windows
├── runner
│ ├── resources
│ │ └── app_icon.ico
│ ├── utils.h
│ ├── resource.h
│ ├── utils.cpp
│ ├── CMakeLists.txt
│ ├── runner.exe.manifest
│ ├── run_loop.h
│ ├── main.cpp
│ ├── flutter_window.h
│ ├── flutter_window.cpp
│ └── run_loop.cpp
├── .gitignore
└── flutter
│ ├── generated_plugin_registrant.h
│ ├── generated_plugin_registrant.cc
│ └── generated_plugins.cmake
├── android
├── gradle.properties
├── app
│ └── src
│ │ ├── main
│ │ ├── res
│ │ │ ├── drawable-hdpi
│ │ │ │ ├── splash.png
│ │ │ │ └── ic_launcher_foreground.png
│ │ │ ├── drawable-mdpi
│ │ │ │ ├── splash.png
│ │ │ │ └── ic_launcher_foreground.png
│ │ │ ├── drawable-xhdpi
│ │ │ │ ├── splash.png
│ │ │ │ └── ic_launcher_foreground.png
│ │ │ ├── drawable-xxhdpi
│ │ │ │ ├── splash.png
│ │ │ │ └── ic_launcher_foreground.png
│ │ │ ├── drawable-xxxhdpi
│ │ │ │ ├── splash.png
│ │ │ │ └── ic_launcher_foreground.png
│ │ │ ├── mipmap-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── values-night
│ │ │ │ └── colors.xml
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ └── styles.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ │ └── ic_launcher.xml
│ │ │ └── drawable
│ │ │ │ └── splash_screen.xml
│ │ ├── kotlin
│ │ │ └── com
│ │ │ │ └── krawieck
│ │ │ │ └── lemmur
│ │ │ │ └── MainActivity.kt
│ │ └── AndroidManifest.xml
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ └── profile
│ │ └── AndroidManifest.xml
├── .gitignore
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
├── settings.gradle
└── build.gradle
├── .vscode
├── settings.json
├── launch.json
├── tasks.json
└── lemmur.code-snippets
├── PRIVACY_POLICY.md
├── l10n.yaml
├── .metadata
├── scripts
├── common.dart
└── gen_l10n_from_string.dart
├── .gitignore
└── test
└── pages
└── modlog
└── modlog_page_test.dart
/assets/l10n/intl_sr.arb:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/linux/.gitignore:
--------------------------------------------------------------------------------
1 | flutter/ephemeral
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/de-DE/title.txt:
--------------------------------------------------------------------------------
1 | lemmur
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/title.txt:
--------------------------------------------------------------------------------
1 | lemmur
2 |
--------------------------------------------------------------------------------
/assets/l10n/intl_hr.arb:
--------------------------------------------------------------------------------
1 | {
2 | "@@locale": "hr"
3 | }
4 |
--------------------------------------------------------------------------------
/assets/l10n/intl_km.arb:
--------------------------------------------------------------------------------
1 | {
2 | "@@locale": "km"
3 | }
4 |
--------------------------------------------------------------------------------
/ios/Flutter/.last_build_id:
--------------------------------------------------------------------------------
1 | 20ad19f2b9a812ac7774ca58ddf04b2e
--------------------------------------------------------------------------------
/lib/widgets/post/post_status.dart:
--------------------------------------------------------------------------------
1 | typedef IsFullPost = bool;
2 |
--------------------------------------------------------------------------------
/fastlane/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | gem "fastlane"
4 |
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
2 |
--------------------------------------------------------------------------------
/assets/app_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/assets/app_icon.png
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | patreon: lemmur
2 | custom:
3 | - https://www.buymeacoffee.com/lemmur
4 |
--------------------------------------------------------------------------------
/assets/adaptive_icon_fg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/assets/adaptive_icon_fg.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/short_description.txt:
--------------------------------------------------------------------------------
1 | A mobile client for lemmy - a federated reddit alternative
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/de-DE/full_description.txt:
--------------------------------------------------------------------------------
1 | Ein mobiler Client für Lemmy - eine föderierte Reddit-Alternative
2 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/de-DE/short_description.txt:
--------------------------------------------------------------------------------
1 | Ein mobiler Client für Lemmy - eine föderierte Reddit-Alternative
2 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/windows/runner/resources/app_icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/windows/runner/resources/app_icon.ico
--------------------------------------------------------------------------------
/assets/l10n/intl_cy.arb:
--------------------------------------------------------------------------------
1 | {
2 | "@@locale": "cy",
3 | "posts": "Postiadau",
4 | "comments": "Sylwadau",
5 | "post": "post"
6 | }
7 |
--------------------------------------------------------------------------------
/lib/util/pictrs.dart:
--------------------------------------------------------------------------------
1 | String pathToPictrs(String instanceHost, String imgId) =>
2 | 'https://$instanceHost/pictrs/image/$imgId';
3 |
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.enableR8=true
3 | android.useAndroidX=true
4 | android.enableJetifier=true
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/fastlane/metadata/android/en-US/images/icon.png
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/lib/app_config.dart:
--------------------------------------------------------------------------------
1 | class AppConfig {
2 | final bool debugMode;
3 |
4 | const AppConfig({
5 | required this.debugMode,
6 | });
7 | }
8 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-hdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/android/app/src/main/res/drawable-hdpi/splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/android/app/src/main/res/drawable-mdpi/splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/android/app/src/main/res/drawable-xhdpi/splash.png
--------------------------------------------------------------------------------
/android/.gitignore:
--------------------------------------------------------------------------------
1 | gradle-wrapper.jar
2 | /.gradle
3 | /captures/
4 | /gradlew
5 | /gradlew.bat
6 | /local.properties
7 | GeneratedPluginRegistrant.java
8 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/android/app/src/main/res/drawable-xxhdpi/splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/android/app/src/main/res/drawable-xxxhdpi/splash.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/lib/main_dev.dart:
--------------------------------------------------------------------------------
1 | import 'app_config.dart';
2 | import 'main_common.dart';
3 |
4 | void main() {
5 | mainCommon(const AppConfig(debugMode: true));
6 | }
7 |
--------------------------------------------------------------------------------
/lib/main_prod.dart:
--------------------------------------------------------------------------------
1 | import 'app_config.dart';
2 | import 'main_common.dart';
3 |
4 | void main() {
5 | mainCommon(const AppConfig(debugMode: false));
6 | }
7 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/14.txt:
--------------------------------------------------------------------------------
1 | ### Fixed
2 |
3 | - Some actions would pass the wrong user id around causing infinite spinners, this is now fixed
4 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/featureGraphic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/fastlane/metadata/android/en-US/images/featureGraphic.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/17.txt:
--------------------------------------------------------------------------------
1 | ### Added
2 |
3 | - Support for Lemmy v0.12.0
4 | - Show cake day on a user's profile and next to their name in a comment
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/phone-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/phone-dark.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/phone-light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/phone-light.png
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "files.associations": {
3 | "*.arb": "json"
4 | },
5 | "dart.showTodos": false,
6 | "xml.format.preserveAttributeLineBreaks": true
7 | }
8 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/android/app/src/main/res/drawable-hdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/android/app/src/main/res/drawable-mdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/android/app/src/main/res/drawable-xhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/android/app/src/main/res/drawable-xxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/android/app/src/main/res/drawable-xxxhdpi/ic_launcher_foreground.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/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/LemmurOrg/lemmur/HEAD/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/LemmurOrg/lemmur/HEAD/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/LemmurOrg/lemmur/HEAD/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/LemmurOrg/lemmur/HEAD/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/LemmurOrg/lemmur/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/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/LemmurOrg/lemmur/HEAD/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/LemmurOrg/lemmur/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/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/LemmurOrg/lemmur/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/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/LemmurOrg/lemmur/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/universal-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/universal-dark.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/universal-light.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/universal-light.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values-night/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #303030
4 |
5 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/19.txt:
--------------------------------------------------------------------------------
1 | ### Added
2 |
3 | - Support for Lemmy v0.15.0
4 |
5 | ### Changed
6 |
7 | - "Time ago" strings, dates, and compact numbers are now localized
8 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/LemmurOrg/lemmur/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
--------------------------------------------------------------------------------
/assets/l10n/intl_sk.arb:
--------------------------------------------------------------------------------
1 | {
2 | "@@locale": "sk",
3 | "posts": "Príspevky",
4 | "comments": "Komentáre",
5 | "post": "Poslať",
6 | "communities": "Komunity",
7 | "users": "Užívatelia"
8 | }
9 |
--------------------------------------------------------------------------------
/PRIVACY_POLICY.md:
--------------------------------------------------------------------------------
1 | # Privacy Policy
2 |
3 | We don't store your data. We don't use any intermediary services that could store your data.
4 |
5 | For any questions contact us at lemmurapp@protonmail.com
6 |
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/com/krawieck/lemmur/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.krawieck.lemmur
2 |
3 | import io.flutter.embedding.android.FlutterActivity
4 |
5 | class MainActivity: FlutterActivity() {
6 | }
7 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/lib/util/extensions/brightness.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | extension ReverseBrightness on Brightness {
4 | Brightness get reverse =>
5 | this == Brightness.dark ? Brightness.light : Brightness.dark;
6 | }
7 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #ffffff
4 | #fafafa
5 |
6 |
--------------------------------------------------------------------------------
/l10n.yaml:
--------------------------------------------------------------------------------
1 | arb-dir: assets/l10n
2 | output-dir: lib/l10n/gen
3 | template-arb-file: intl_en.arb
4 | output-localization-file: l10n.dart
5 | preferred-supported-locales: [en]
6 | output-class: L10n
7 | synthetic-package: false
8 | nullable-getter: false
9 |
--------------------------------------------------------------------------------
/lib/hooks/infinite_scroll.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter_hooks/flutter_hooks.dart';
2 |
3 | import '../widgets/infinite_scroll.dart';
4 |
5 | InfiniteScrollController useInfiniteScrollController() =>
6 | useMemoized(InfiniteScrollController.new);
7 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/full_description.txt:
--------------------------------------------------------------------------------
1 | Lemmur aims to provide a seamless experience when browsing different Lemmy instances.
2 |
3 | You can have multiple multiple instances added at the same time without having to awkwardly switch between them.
4 |
--------------------------------------------------------------------------------
/lib/util/extensions/iterators.dart:
--------------------------------------------------------------------------------
1 | extension ExtraIterators on Iterable {
2 | /// A `.map` but with an index as the second argument
3 | Iterable mapWithIndex(T f(E e, int i)) {
4 | var i = 0;
5 | return map((e) => f(e, i++));
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/windows/runner/utils.h:
--------------------------------------------------------------------------------
1 | #ifndef RUNNER_UTILS_H_
2 | #define RUNNER_UTILS_H_
3 |
4 | // Creates a console for the process, and redirects stdout and stderr to
5 | // it for both the runner and the Flutter library.
6 | void CreateAndAttachConsole();
7 |
8 | #endif // RUNNER_UTILS_H_
9 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jun 23 08:50:38 CEST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip
7 |
--------------------------------------------------------------------------------
/lib/resources/links.dart:
--------------------------------------------------------------------------------
1 | const lemmurRepositoryUrl = 'https://github.com/LemmurOrg/lemmur';
2 | const patreonUrl = 'https://patreon.com/lemmur';
3 | const buyMeACoffeeUrl = 'https://buymeacoff.ee/lemmur';
4 | const markdownGuide =
5 | 'https://join-lemmy.org/docs/en/about/guide.html#using-markdown';
6 |
--------------------------------------------------------------------------------
/lib/util/icons.dart:
--------------------------------------------------------------------------------
1 | import 'dart:io' show Platform;
2 |
3 | import 'package:flutter/material.dart';
4 |
5 | final _isApple = Platform.isIOS || Platform.isMacOS;
6 |
7 | final moreIcon = _isApple ? Icons.more_horiz : Icons.more_vert;
8 |
9 | final shareIcon = _isApple ? Icons.ios_share : Icons.share;
10 |
--------------------------------------------------------------------------------
/fastlane/Fastfile:
--------------------------------------------------------------------------------
1 | platform :android do
2 | desc "Deploy a new version to the Google Play"
3 | lane :prod do
4 | upload_to_play_store(
5 | package_name: "com.krawieck.lemmur",
6 | json_key: ENV["GOOGLE_SERVICE_ACCOUNT_KEY_PATH"],
7 | aab: ENV["ABB_PATH"]
8 | )
9 | end
10 | end
11 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PreviewsEnabled
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/assets/l10n/intl_mnc.arb:
--------------------------------------------------------------------------------
1 | {
2 | "@@locale": "mnc",
3 | "posts": "ᡧᡠ",
4 | "comments": "ᠯᡝᠣᠯᡝᠨ",
5 | "post": "ᡧ",
6 | "number_of_comments": "{formattedCount,plural, =1{{formattedCount} ᠯᡝᠣᠯᡝᠨ} other{{formattedCount} ᠯᡝᠣᠯᡝᠨ}}",
7 | "number_of_posts": "{formattedCount,plural, =1{{formattedCount} ᡧᡠ} other{{formattedCount} ᡧᡠ}}"
8 | }
9 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/lib/util/extensions/spaced.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | /// Creates gaps between given widgets
4 | extension SpaceWidgets on List {
5 | List spaced(double gap) => expand((item) sync* {
6 | yield SizedBox(width: gap, height: gap);
7 | yield item;
8 | }).skip(1).toList();
9 | }
10 |
--------------------------------------------------------------------------------
/lib/util/text_color.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | /// Given the background color, returns a text color
4 | /// with a good contrast ratio
5 | Color textColorBasedOnBackground(Color color) {
6 | if (color.computeLuminance() > 0.5) {
7 | return Colors.black;
8 | } else {
9 | return Colors.white;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 8af6b2f038c1172e61d418869363a28dffec3cb4
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/windows/.gitignore:
--------------------------------------------------------------------------------
1 | flutter/ephemeral/
2 |
3 | # Visual Studio user-specific files.
4 | *.suo
5 | *.user
6 | *.userosscache
7 | *.sln.docstates
8 |
9 | # Visual Studio build-related files.
10 | x64/
11 | x86/
12 |
13 | # Visual Studio cache files
14 | # files ending in .cache can be ignored
15 | *.[Cc]ache
16 | # but keep track of directories ending in .cache
17 | !*.[Cc]ache/
18 |
--------------------------------------------------------------------------------
/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.
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/splash_screen.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | -
6 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/windows/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 RegisterPlugins(flutter::PluginRegistry* registry);
14 |
15 | #endif // GENERATED_PLUGIN_REGISTRANT_
16 |
--------------------------------------------------------------------------------
/windows/flutter/generated_plugin_registrant.cc:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // clang-format off
6 |
7 | #include "generated_plugin_registrant.h"
8 |
9 | #include
10 |
11 | void RegisterPlugins(flutter::PluginRegistry* registry) {
12 | UrlLauncherWindowsRegisterWithRegistrar(
13 | registry->GetRegistrarForPlugin("UrlLauncherWindows"));
14 | }
15 |
--------------------------------------------------------------------------------
/lib/util/extensions/context.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:lemmy_api_client/v3.dart';
3 |
4 | import '../../stores/accounts_store.dart';
5 | import '../observer_consumers.dart';
6 |
7 | extension BuildContextExtensions on BuildContext {
8 | /// Get default [Jwt] for an instance
9 | Jwt? defaultJwt(String instanceHost) =>
10 | read().defaultUserDataFor(instanceHost)?.jwt;
11 | }
12 |
--------------------------------------------------------------------------------
/scripts/common.dart:
--------------------------------------------------------------------------------
1 | // ignore_for_file: avoid_print
2 | import 'dart:io';
3 |
4 | void confirm(String message) {
5 | stdout.write('$message [y/n] ');
6 |
7 | switch (stdin.readLineSync()) {
8 | case 'y':
9 | case 'yes':
10 | break;
11 | default:
12 | print('Exiting');
13 | exit(1);
14 | }
15 | }
16 |
17 | Never printError(String message) {
18 | stderr.writeln('\x1B[31m$message\x1B[0m');
19 |
20 | exit(1);
21 | }
22 |
--------------------------------------------------------------------------------
/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @UIApplicationMain
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | GeneratedPluginRegistrant.register(with: self)
11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/lib/widgets/markdown_mode_icon.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 |
3 | /// shows either brush icon if fancy is true, or build icon if it's false
4 | /// used mostly for pages where markdown editor is used
5 | ///
6 | /// brush icon is rotated to look similarly to build icon
7 | Widget markdownModeIcon({required bool fancy}) => fancy
8 | ? const Icon(Icons.build)
9 | : const RotatedBox(
10 | quarterTurns: 1,
11 | child: Icon(Icons.brush),
12 | );
13 |
--------------------------------------------------------------------------------
/fastlane/metadata/android/en-US/changelogs/16.txt:
--------------------------------------------------------------------------------
1 | ### Added
2 |
3 | - Editing posts
4 | - Editing comments
5 | - Show avatars setting toggle
6 | - Show scores setting toggle
7 | - Default sort type setting
8 | - Default listing type setting
9 | - Import Lemmy settings: long press an account in account settings then choose the import option
10 | - Support lemmy v0.11.0
11 |
12 | ### Fixed
13 |
14 | - Added deduplication in infinite scrolls
15 | - Fixed bug where creating post would crash after uploading a picture
16 |
--------------------------------------------------------------------------------
/windows/runner/resource.h:
--------------------------------------------------------------------------------
1 | //{{NO_DEPENDENCIES}}
2 | // Microsoft Visual C++ generated include file.
3 | // Used by Runner.rc
4 | //
5 | #define IDI_APP_ICON 101
6 |
7 | // Next default values for new objects
8 | //
9 | #ifdef APSTUDIO_INVOKED
10 | #ifndef APSTUDIO_READONLY_SYMBOLS
11 | #define _APS_NEXT_RESOURCE_VALUE 102
12 | #define _APS_NEXT_COMMAND_VALUE 40001
13 | #define _APS_NEXT_CONTROL_VALUE 1001
14 | #define _APS_NEXT_SYMED_VALUE 101
15 | #endif
16 | #endif
17 |
--------------------------------------------------------------------------------
/linux/flutter/generated_plugin_registrant.cc:
--------------------------------------------------------------------------------
1 | //
2 | // Generated file. Do not edit.
3 | //
4 |
5 | // clang-format off
6 |
7 | #include "generated_plugin_registrant.h"
8 |
9 | #include
10 |
11 | void fl_register_plugins(FlPluginRegistry* registry) {
12 | g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
13 | fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
14 | url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
15 | }
16 |
--------------------------------------------------------------------------------
/lib/hooks/memo_future.dart:
--------------------------------------------------------------------------------
1 | import 'package:flutter/material.dart';
2 | import 'package:flutter_hooks/flutter_hooks.dart';
3 |
4 | /// creates an [AsyncSnapshot] from the Future returned from the valueBuilder.
5 | /// [keys] can be used to rebuild the Future
6 | AsyncSnapshot useMemoFuture(
7 | Future Function() valueBuilder, [
8 | List