mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-14 16:25:16 +00:00
Merge branch 'master' into dev
This commit is contained in:
commit
287a54474f
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"flutterSdkVersion": "3.3.8",
|
"flutterSdkVersion": "3.7.3",
|
||||||
"flavors": {}
|
"flavors": {}
|
||||||
}
|
}
|
70
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
70
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -1,82 +1,61 @@
|
|||||||
name: 🐛 Bug
|
name: 🐛 Bug
|
||||||
description: Report a bug or incorrect behavior
|
description: Report a bug or an incorrect behavior
|
||||||
title: "[Bug] <title>"
|
title: "Write the title here"
|
||||||
labels:
|
labels:
|
||||||
- bug
|
- bug
|
||||||
- good first issue
|
|
||||||
assignees:
|
|
||||||
- KRTirtho
|
|
||||||
body:
|
body:
|
||||||
- type: checkboxes
|
- type: checkboxes
|
||||||
attributes:
|
attributes:
|
||||||
label: Is there an existing issue for this?
|
label: Is there an existing issue for this?
|
||||||
description: Please search to see if an issue already exists for the bug you encountered.
|
description: Make sure to check if this issue is a duplicate.
|
||||||
options:
|
options:
|
||||||
- label: I have searched the existing issues
|
- label: I have searched the existing issues
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Current Behavior
|
label: Current Behavior
|
||||||
description: Tell us what you're experiencing concisely.
|
description: Write what you are experiencing currently.
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Expected Behavior
|
label: Expected Behavior
|
||||||
description: Let us know what you expected to happen concisely.
|
description: Write what you expected to happen.
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Steps To Reproduce
|
label: Steps to reproduce
|
||||||
description: Steps to reproduce the behavior.
|
description: Steps to reproduce the issue. A not well written description might delay the resolve of it.
|
||||||
placeholder: |
|
placeholder: |
|
||||||
1. In this environment...
|
1. I opened the app
|
||||||
2. With this config...
|
2. I did this
|
||||||
3. Run '...'
|
3. And that
|
||||||
4. See error...
|
4. Then this happened
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: true
|
||||||
- type: input
|
- type: input
|
||||||
attributes:
|
|
||||||
label: Spotube Version
|
|
||||||
description: In which version of Spotube did you encounter this bug?
|
|
||||||
placeholder: e.g. v2.3.0
|
|
||||||
- type: dropdown
|
|
||||||
attributes:
|
attributes:
|
||||||
label: Operating System
|
label: Operating System
|
||||||
description: In which OS you're experiencing the bug?
|
description: The OS in which you used Spotube to face the issue.
|
||||||
multiple: true
|
placeholder: Android, Linux, macOS or Windows? Make sure to include the version too.
|
||||||
options:
|
|
||||||
- "Android"
|
|
||||||
- "Linux"
|
|
||||||
- "Windows"
|
|
||||||
- "Mac OS"
|
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: input
|
- type: input
|
||||||
attributes:
|
attributes:
|
||||||
label: Linux Distribution (if applicable)
|
label: Spotube version
|
||||||
description: Tell us in what Linux Distribution you're experiencing the bug.
|
description: In which version of Spotube did you encounter this bug?
|
||||||
placeholder: Arch Linux
|
placeholder: (e.g.) v2.7.0
|
||||||
validations:
|
|
||||||
required: false
|
|
||||||
- type: input
|
|
||||||
attributes:
|
|
||||||
label: Operating System Version
|
|
||||||
description: In which version of your OS you're experiencing the bug?
|
|
||||||
placeholder: e.g. Android 10
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
attributes:
|
attributes:
|
||||||
label: Installation Source
|
label: Installation source
|
||||||
description: How did you install Spotube?
|
description: Where did you install Spotube from?
|
||||||
multiple: true
|
multiple: true
|
||||||
options:
|
options:
|
||||||
- "Official Website (spotube.netlify.app)"
|
- "Website (spotube.netlify.app)"
|
||||||
- "Github Release (Binary)"
|
- "GitHub Releases (Binary)"
|
||||||
- "Github Actions (Nightly Binary)"
|
- "GitHub Actions (Nightly Binary)"
|
||||||
- "F-Droid (Android)"
|
- "F-Droid (Android)"
|
||||||
- "Arch User Repository (AUR)"
|
- "Arch User Repository (AUR)"
|
||||||
- "Flathub (Flatpak)"
|
- "Flathub (Flatpak)"
|
||||||
@ -85,10 +64,9 @@ body:
|
|||||||
- "Scoop (Windows)"
|
- "Scoop (Windows)"
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Additional information
|
label: Additional information
|
||||||
description: Anything else you'd like to add?
|
description: Anything else you'd like to include?
|
||||||
validations:
|
validations:
|
||||||
required: false
|
required: false
|
||||||
|
43
.github/ISSUE_TEMPLATE/new_feature.yml
vendored
43
.github/ISSUE_TEMPLATE/new_feature.yml
vendored
@ -1,53 +1,38 @@
|
|||||||
name: ✨ New Feature
|
name: ✨ New Feature
|
||||||
assignees:
|
|
||||||
- KRTirtho
|
|
||||||
description: Suggest an idea
|
description: Suggest an idea
|
||||||
title: "[Feature] <title>"
|
title: "Write the title here"
|
||||||
labels:
|
labels:
|
||||||
- enhancement
|
- enhancement
|
||||||
- good first issue
|
|
||||||
|
|
||||||
body:
|
body:
|
||||||
- type: checkboxes
|
- type: checkboxes
|
||||||
attributes:
|
attributes:
|
||||||
label: Is there an existing issue for this?
|
label: Is there an existing issue for this?
|
||||||
description: Please search to see if an issue already exists for the bug you encountered.
|
description: Make sure to check if this issue is a duplicate.
|
||||||
options:
|
options:
|
||||||
- label: I have searched the existing issues
|
- label: I have searched the existing issues
|
||||||
required: true
|
required: true
|
||||||
- type: dropdown
|
|
||||||
attributes:
|
|
||||||
label: Category of the Feature
|
|
||||||
description: In which category you think your feature belongs to.
|
|
||||||
multiple: true
|
|
||||||
options:
|
|
||||||
- UI Improvements
|
|
||||||
- Logical Improvements
|
|
||||||
- More Efficiency
|
|
||||||
- Performance Improvements
|
|
||||||
- UX Improvements
|
|
||||||
- Code Refactor
|
|
||||||
- Unable to categorize
|
|
||||||
- type: input
|
|
||||||
attributes:
|
|
||||||
label: Credits
|
|
||||||
description: Who've contributed to this idea of this feature?
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Pain
|
label: Pain
|
||||||
description: Explain the pain you're experiencing.
|
description: Explain the pain you're experiencing.
|
||||||
placeholder: e.g. I don't like that I've to do this...
|
placeholder: I don't like that I've to do this / I'd like to have that
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Suggested Solution
|
label: Suggested solution
|
||||||
description: Tell us about your solution
|
description: Tell us about a solution you can think of
|
||||||
|
placeholder: You could add that / change this / use that
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
attributes:
|
attributes:
|
||||||
label: Useful resources/references
|
label: Useful resources
|
||||||
description: Provide us with some useful resources/references which will help us implement your solution.
|
description: Provide us with some useful resource which could help us implement your suggestion.
|
||||||
|
- type: textarea
|
||||||
|
attributes:
|
||||||
|
label: Additional information
|
||||||
|
description: Anything else you'd like to include?
|
||||||
|
validations:
|
||||||
|
required: false
|
70
README.md
70
README.md
@ -26,7 +26,7 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
Spotube is a [Flutter](https://flutter.dev) based lightweight spotify client. It utilizes the power of Spotify & Youtube's public API & creates a hazardless, performant & resource friendly User Experience
|
Spotube is a [Flutter](https://flutter.dev) based lightweight Spotify client. It utilizes the power of Spotify & Youtube's public APIs to create a reliable, robust & resource-light user experience.
|
||||||
|
|
||||||
#### <p align="center">Desktop</p>
|
#### <p align="center">Desktop</p>
|
||||||
|
|
||||||
@ -44,21 +44,21 @@ Spotube is a [Flutter](https://flutter.dev) based lightweight spotify client. It
|
|||||||
|
|
||||||
# Features
|
# Features
|
||||||
|
|
||||||
Following are the features that currently spotube offers:
|
Following are the features that currently Spotube offers:
|
||||||
|
|
||||||
- Open Source
|
- Open source/libre software
|
||||||
- Anonymous/Guest Login
|
- Anonymous/guest login
|
||||||
- Cross platform
|
- Cross platform support
|
||||||
- No telemetry, diagnostics or user data collection
|
- No telemetry, diagnostics or user data collection
|
||||||
- Lightweight & resource friendly
|
- Lightweight & resource-friendly
|
||||||
- Native performance (Thanks to Flutter+Skia)
|
- Native performance (Thanks to Flutter+Skia)
|
||||||
- Playback control is on user's machine instead of server based
|
- Playback control is done locally instead of on the server
|
||||||
- Small size & less data hungry
|
- Small size & less data usage
|
||||||
- No spotify or youtube ads since it uses all public & free APIs (But it's recommended to support the creators by watching/liking/subscribing to the artists youtube channel or add as favourite track in spotify. Mostly buying spotify premium is the best way to support their valuable creations)
|
- No Spotify or YouTube ads since it uses all public & free APIs (It is still recommended to support the creators by watching/liking/subscribing to the artists' YouTube channels or liking their tracks on Spotify. Purchasing Spotify Premium is usually the best way to support their valuable creations.)
|
||||||
- Synced Lyrics
|
- Time synced lyrics
|
||||||
- Downloadable track
|
- Downloadable tracks
|
||||||
|
|
||||||
# Support this project
|
# Support development
|
||||||
|
|
||||||
<a href="https://patreon.com/krtirtho"><img src="https://user-images.githubusercontent.com/61944859/180249027-678b01b8-c336-451e-b147-6d84a5b9d0e7.png" width="250"/></a>
|
<a href="https://patreon.com/krtirtho"><img src="https://user-images.githubusercontent.com/61944859/180249027-678b01b8-c336-451e-b147-6d84a5b9d0e7.png" width="250"/></a>
|
||||||
[](https://opencollective.com/spotube)
|
[](https://opencollective.com/spotube)
|
||||||
@ -66,27 +66,27 @@ Following are the features that currently spotube offers:
|
|||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
I'm always releasing newer versions of binary of the software each 2-3 month with minor changes & each 6-8 month with major changes. Grab the binaries
|
I'm always releasing newer versions of binaries of the software every 2-3 months with minor changes & every 6-8 months with major changes. Grab them!
|
||||||
|
|
||||||
| Platform | Package/Installation Method |
|
| Platform | Package/Installation Method |
|
||||||
| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| Android | [<img width='240' alt='Android Download' src='https://www.remcsteuben.com/sites/default/files/images/apkdaddy%20download.png'/>][android-dlink]<br/>[<img width='240' alt='Android Download' src='https://user-images.githubusercontent.com/61944859/174589876-bace24c0-b3fd-4c4a-bdb4-6fa82b5853ec.png'/>][fdroid-dlink] |
|
| Android | [<img width='220' alt='Android Download' src='https://user-images.githubusercontent.com/114044633/223920025-83687de0-e463-4c5d-8122-e06e4bb7d40c.png'/>][android-dlink]<br/>[<img width='220' alt='Android Download' src='https://user-images.githubusercontent.com/61944859/174589876-bace24c0-b3fd-4c4a-bdb4-6fa82b5853ec.png'/>][fdroid-dlink] |
|
||||||
| Debian/Ubuntu | [<img width='240' alt='Linux Debian/Ubuntu Download' src='https://user-images.githubusercontent.com/61944859/169097994-e92aff78-fd75-4c93-b6e4-f072a4b5a7ed.png'/>][deb-dlink] <br/> Then run: `sudo apt install Spotube-linux-x86_64.deb` |
|
| Debian/Ubuntu | [<img width='220' alt='Linux Debian/Ubuntu Download' src='https://user-images.githubusercontent.com/61944859/169097994-e92aff78-fd75-4c93-b6e4-f072a4b5a7ed.png'/>][deb-dlink] <br/> Then run: `sudo apt install Spotube-linux-x86_64.deb` |
|
||||||
| Fedora/OpenSuse | [<img width='240' alt='Linux Fedora/OpenSuse Download' src='https://user-images.githubusercontent.com/61944859/223638350-5926b9da-04d6-4edd-931d-ad533e4ff058.png'/>][rpm-dlink] <br/> For Fedora: `sudo dnf install ./Spotube-linux-x86_64.rpm`<br/> For OpenSuse: `sudo zypper in ./Spotube-linux-x86_64.rpm` |
|
| Fedora/OpenSuse | [<img width='220' alt='Linux Fedora/OpenSuse Download' src='https://user-images.githubusercontent.com/61944859/223638350-5926b9da-04d6-4edd-931d-ad533e4ff058.png'/>][rpm-dlink] <br/> For Fedora: `sudo dnf install ./Spotube-linux-x86_64.rpm`<br/> For OpenSuse: `sudo zypper in ./Spotube-linux-x86_64.rpm` |
|
||||||
| Flatpak | `flatpak install com.github.KRTirtho.Spotube` <br/> <a href='https://flathub.org/apps/details/com.github.KRTirtho.Spotube'><img width='240' alt='Download on Flathub' src='https://flathub.org/assets/badges/flathub-badge-en.png'/></a> |
|
| Flatpak | `flatpak install com.github.KRTirtho.Spotube` <br/> <a href='https://flathub.org/apps/details/com.github.KRTirtho.Spotube'><img width='220' alt='Download on Flathub' src='https://flathub.org/assets/badges/flathub-badge-en.png'/></a> |
|
||||||
| Arch/Manjaro | pamac: `pamac install spotube-bin` <br/> yay: `yay -Sy spotube-bin` |
|
| Arch/Manjaro | pamac: `pamac install spotube-bin` <br/> yay: `yay -Sy spotube-bin` |
|
||||||
| AppImage | [<img width='240' alt='AppImage Download' src='https://user-images.githubusercontent.com/61944859/169455015-13385466-8901-48fe-ba90-b62d58b0be64.png'/>][appimage-dlink]<br/> **Note**: AppImages require [appimage-launcher](https://github.com/TheAssassin/AppImageLauncher) to be installed |
|
| AppImage | [<img width='220' alt='AppImage Download' src='https://user-images.githubusercontent.com/61944859/169455015-13385466-8901-48fe-ba90-b62d58b0be64.png'/>][appimage-dlink]<br/> **Note**: AppImages require [appimage-launcher](https://github.com/TheAssassin/AppImageLauncher) to be installed |
|
||||||
| Linux (tarball) | [<img width='240' alt='Tarball Download' src='https://user-images.githubusercontent.com/61944859/169456985-e0ba1fd4-10e8-4cc0-ab94-337acc6e0295.png'/>][linux-dlink] |
|
| Linux (tarball) | [<img width='220' alt='Tarball Download' src='https://user-images.githubusercontent.com/61944859/169456985-e0ba1fd4-10e8-4cc0-ab94-337acc6e0295.png'/>][linux-dlink] |
|
||||||
| Windows | [<img width='240' alt='Windows Download' src='https://get.todoist.help/hc/article_attachments/4403191721234/WindowsButton.svg'/>][win32-dlink] |
|
| Windows | [<img width='220' alt='Windows Download' src='https://get.todoist.help/hc/article_attachments/4403191721234/WindowsButton.svg'/>][win32-dlink] |
|
||||||
| Windows (Chocolatey) | `choco install spotube` |
|
| Windows (<a href="https://chocolatey.org">Chocolatey</a>) | `choco install spotube` |
|
||||||
| Windows (<a href="https://scoop.sh/">Scoop</a>) | `scoop bucket add extras` <br/> `scoop install spotube` |
|
| Windows (<a href="https://scoop.sh/">Scoop</a>) | `scoop bucket add extras` <br/> `scoop install spotube` |
|
||||||
| Windows (WinGet) | `winget install --id KRTirtho.Spotube` |
|
| Windows (<a href="https://github.com/microsoft/winget-cli">WinGet</a>) | `winget install --id KRTirtho.Spotube` |
|
||||||
| MacOS | [<img width='240' alt='MacOS Download' src='https://reachify.io/wp-content/uploads/2018/09/mac-download-button-1.png'/>][mac-dlink] |
|
| MacOS | [<img width='220' alt='MacOS Download' src='https://reachify.io/wp-content/uploads/2018/09/mac-download-button-1.png'/>][mac-dlink] |
|
||||||
|
|
||||||
> **Note!:** If you don't understand this download table. You can read [installation instructions][wiki-installation-instructions] from the wiki
|
> **Note!:** If you don't understand this download table. You can read [installation instructions][wiki-installation-instructions] from the wiki
|
||||||
|
|
||||||
## Nightly Builds
|
## Nightly Builds
|
||||||
Get the latest nightly builds of Spotube [here](https://github.com/KRTirtho/spotube/releases/tag/nightly)
|
Get the latest nightly builds of Spotube [here](https://github.com/KRTirtho/spotube/releases/tag/nightly).
|
||||||
|
|
||||||
# TODO:
|
# TODO:
|
||||||
- [ ] Windows OS Media Control & Media Keys Support
|
- [ ] Windows OS Media Control & Media Keys Support
|
||||||
@ -96,26 +96,26 @@ Get the latest nightly builds of Spotube [here](https://github.com/KRTirtho/spot
|
|||||||
|
|
||||||
# Building from source
|
# Building from source
|
||||||
|
|
||||||
You can find the details [here](CONTRIBUTION.md#your-first-code-contribution)
|
You can find the details [here](CONTRIBUTION.md#your-first-code-contribution).
|
||||||
|
|
||||||
# Things that don't work
|
# Things that do not work
|
||||||
|
|
||||||
- Shows & Podcasts aren't supported as it'd require premium anyway
|
- Shows & Podcasts are not supported, as a premium subscription would be needed for that functionality.
|
||||||
|
|
||||||
# License
|
# License
|
||||||
|
|
||||||
[BSD-4-Clause](/LICENSE)
|
[BSD-4-Clause](/LICENSE)
|
||||||
|
|
||||||
But why? You can learn about it [here](https://dev.to/krtirtho/choosing-open-source-license-wisely-1m3p)
|
But why? You can learn about it [here](https://dev.to/krtirtho/choosing-open-source-license-wisely-1m3p).
|
||||||
|
|
||||||
# Financial Contributors
|
# Financial contributors
|
||||||
## Backers
|
## Backers
|
||||||

|

|
||||||

|

|
||||||
|
|
||||||
## Sponsors
|
## Sponsors
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="https://opencollective.com/spotube/tiers/sponsor.svg" alt="Sponsor Spotube" width="69%">
|
<img src="https://opencollective.com/spotube/tiers/sponsor.svg" alt="Sponsor Spotube" width="69%"> <!-- nice. -->
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
# Library/Plugin/Framework Credits
|
# Library/Plugin/Framework Credits
|
||||||
@ -201,20 +201,18 @@ But why? You can learn about it [here](https://dev.to/krtirtho/choosing-open-sou
|
|||||||
1. [spotify](https://github.com/rinukkusu/spotify-dart) - An incomplete dart library for interfacing with the Spotify Web API.
|
1. [spotify](https://github.com/rinukkusu/spotify-dart) - An incomplete dart library for interfacing with the Spotify Web API.
|
||||||
1. [window_size](https://github.com/google/flutter-desktop-embedding.git) - Allows resizing and repositioning the window containing Flutter.
|
1. [window_size](https://github.com/google/flutter-desktop-embedding.git) - Allows resizing and repositioning the window containing Flutter.
|
||||||
|
|
||||||
# The Team
|
# The team
|
||||||
|
|
||||||
- [Kingkor Roy Tirtho](https://github.com/KRTirtho) - The Founder, Maintainer and Lead Developer
|
- [Kingkor Roy Tirtho](https://github.com/KRTirtho) - The Founder, Maintainer and Lead Developer
|
||||||
- [Owen Conor](https://github.com/owencz1998) - The Cool Discord Moderator
|
- [Owen Conor](https://github.com/owencz1998) - The Cool Discord Moderator
|
||||||
- [Piotr Rogowski](https://github.com/karniv00l) - The MacOS Developer
|
- [Piotr Rogowski](https://github.com/karniv00l) - The MacOS Developer
|
||||||
- [Rusty Apple](https://github.com/RustyApple) - The Mysterious Unknown Guy
|
- [Rusty Apple](https://github.com/RustyApple) - The Mysterious Unknown Guy
|
||||||
|
|
||||||
# Social handlers
|
# Social platforms
|
||||||
|
|
||||||
Follow me on [Twitter](https://twitter.com/@krtirtho) for newer updates about this application
|
Follow me on [Twitter](https://twitter.com/@krtirtho), or join our amazing [Discord](https://discord.gg/uJ94vxB6vg) server to always get newer updates about the application.
|
||||||
|
|
||||||
|
|
||||||
<p align="center">© 2022 Spotube</p>
|
|
||||||
|
|
||||||
|
<b><p align="center">© 2023 Spotube</p></b>
|
||||||
|
|
||||||
<!-- Variables/Text References -->
|
<!-- Variables/Text References -->
|
||||||
[win32-dlink]: https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-windows-x86_64-setup.exe
|
[win32-dlink]: https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-windows-x86_64-setup.exe
|
||||||
|
@ -15,8 +15,8 @@ InfiniteQuery<DataType, ErrorType, PageType>
|
|||||||
required WidgetRef ref,
|
required WidgetRef ref,
|
||||||
required InfiniteQueryNextPage<DataType, PageType> nextPage,
|
required InfiniteQueryNextPage<DataType, PageType> nextPage,
|
||||||
required PageType initialPage,
|
required PageType initialPage,
|
||||||
RetryConfig retryConfig = DefaultConstants.retryConfig,
|
RetryConfig? retryConfig,
|
||||||
RefreshConfig refreshConfig = DefaultConstants.refreshConfig,
|
RefreshConfig? refreshConfig,
|
||||||
JsonConfig<DataType>? jsonConfig,
|
JsonConfig<DataType>? jsonConfig,
|
||||||
ValueChanged<PageEvent<DataType, PageType>>? onData,
|
ValueChanged<PageEvent<DataType, PageType>>? onData,
|
||||||
ValueChanged<PageEvent<ErrorType, PageType>>? onError,
|
ValueChanged<PageEvent<ErrorType, PageType>>? onError,
|
||||||
|
@ -10,7 +10,7 @@ Mutation<DataType, ErrorType, VariablesType>
|
|||||||
Future<DataType> Function(VariablesType variables, SpotifyApi spotify)
|
Future<DataType> Function(VariablesType variables, SpotifyApi spotify)
|
||||||
mutationFn, {
|
mutationFn, {
|
||||||
required WidgetRef ref,
|
required WidgetRef ref,
|
||||||
RetryConfig retryConfig = DefaultConstants.retryConfig,
|
RetryConfig? retryConfig,
|
||||||
MutationOnDataFn<DataType, RecoveryType>? onData,
|
MutationOnDataFn<DataType, RecoveryType>? onData,
|
||||||
MutationOnErrorFn<ErrorType, RecoveryType>? onError,
|
MutationOnErrorFn<ErrorType, RecoveryType>? onError,
|
||||||
MutationOnMutationFn<VariablesType, RecoveryType>? onMutate,
|
MutationOnMutationFn<VariablesType, RecoveryType>? onMutate,
|
||||||
|
@ -16,8 +16,8 @@ Query<DataType, ErrorType> useSpotifyQuery<DataType, ErrorType>(
|
|||||||
final SpotifyQueryFn<DataType> queryFn, {
|
final SpotifyQueryFn<DataType> queryFn, {
|
||||||
required WidgetRef ref,
|
required WidgetRef ref,
|
||||||
final DataType? initial,
|
final DataType? initial,
|
||||||
final RetryConfig retryConfig = DefaultConstants.retryConfig,
|
final RetryConfig? retryConfig,
|
||||||
final RefreshConfig refreshConfig = DefaultConstants.refreshConfig,
|
final RefreshConfig? refreshConfig,
|
||||||
final JsonConfig<DataType>? jsonConfig,
|
final JsonConfig<DataType>? jsonConfig,
|
||||||
final ValueChanged<DataType>? onData,
|
final ValueChanged<DataType>? onData,
|
||||||
final ValueChanged<ErrorType>? onError,
|
final ValueChanged<ErrorType>? onError,
|
||||||
|
@ -171,6 +171,7 @@ void main(List<String> rawArgs) async {
|
|||||||
)
|
)
|
||||||
],
|
],
|
||||||
child: QueryClientProvider(
|
child: QueryClientProvider(
|
||||||
|
staleDuration: const Duration(minutes: 30),
|
||||||
child: const Spotube(),
|
child: const Spotube(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import 'package:fl_query/fl_query.dart';
|
import 'package:fl_query/fl_query.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:spotify/spotify.dart';
|
import 'package:spotify/spotify.dart';
|
||||||
import 'package:spotube/hooks/use_spotify_infinite_query.dart';
|
import 'package:spotube/hooks/use_spotify_infinite_query.dart';
|
||||||
@ -9,8 +8,6 @@ class CategoryQueries {
|
|||||||
|
|
||||||
InfiniteQuery<Page<Category>, dynamic, int> list(
|
InfiniteQuery<Page<Category>, dynamic, int> list(
|
||||||
WidgetRef ref, String recommendationMarket) {
|
WidgetRef ref, String recommendationMarket) {
|
||||||
final context = useContext();
|
|
||||||
|
|
||||||
return useSpotifyInfiniteQuery<Page<Category>, dynamic, int>(
|
return useSpotifyInfiniteQuery<Page<Category>, dynamic, int>(
|
||||||
"category-playlists",
|
"category-playlists",
|
||||||
(pageParam, spotify) async {
|
(pageParam, spotify) async {
|
||||||
@ -30,10 +27,6 @@ class CategoryQueries {
|
|||||||
}
|
}
|
||||||
return lastPageData.nextOffset;
|
return lastPageData.nextOffset;
|
||||||
},
|
},
|
||||||
refreshConfig: RefreshConfig.withDefaults(
|
|
||||||
context,
|
|
||||||
staleDuration: const Duration(minutes: 30),
|
|
||||||
),
|
|
||||||
ref: ref,
|
ref: ref,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
39
pubspec.lock
39
pubspec.lock
@ -534,18 +534,26 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: fl_query
|
name: fl_query
|
||||||
sha256: d9ebed8f024ef8e1eb9770d632ed738539dc576374a3498d5344d6ab27708563
|
sha256: b119e0d7e4cb615780f6cab00e7b40f88f8f549d9f8d20f6e1076e08cbf97c42
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.0-alpha.1"
|
version: "1.0.0-alpha.2"
|
||||||
fl_query_hooks:
|
fl_query_hooks:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: fl_query_hooks
|
name: fl_query_hooks
|
||||||
sha256: "868974a332ff28ffd837edf995b8c579dac0e590215d8f4d13ce84c7b6f2e53c"
|
sha256: "9a4263cc5e1ef6e246089602256011172a9d3be212c41c08d67bc365ce6fec22"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.0.0-alpha.1"
|
version: "1.0.0-alpha.2"
|
||||||
|
fluent_ui:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: fluent_ui
|
||||||
|
sha256: "29d85b74ee8d051bed9b5234afd50af4a693fef91f4e79657644051c23d789fb"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "4.4.1"
|
||||||
fluentui_system_icons:
|
fluentui_system_icons:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@ -663,6 +671,11 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "2.0.1"
|
version: "2.0.1"
|
||||||
|
flutter_localizations:
|
||||||
|
dependency: transitive
|
||||||
|
description: flutter
|
||||||
|
source: sdk
|
||||||
|
version: "0.0.0"
|
||||||
flutter_mailer:
|
flutter_mailer:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -1257,6 +1270,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.2.1"
|
version: "3.2.1"
|
||||||
|
recase:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: recase
|
||||||
|
sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "4.1.0"
|
||||||
riverpod:
|
riverpod:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
@ -1281,6 +1302,14 @@ packages:
|
|||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.1.6"
|
version: "0.1.6"
|
||||||
|
scroll_pos:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: scroll_pos
|
||||||
|
sha256: cfca311b6b8d51538ff90e206fbe6ce3b36e7125ea6da4a40eb626c7f9f083b1
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.3.0"
|
||||||
scroll_to_index:
|
scroll_to_index:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
@ -1738,4 +1767,4 @@ packages:
|
|||||||
version: "1.12.3"
|
version: "1.12.3"
|
||||||
sdks:
|
sdks:
|
||||||
dart: ">=2.19.0 <3.0.0"
|
dart: ">=2.19.0 <3.0.0"
|
||||||
flutter: ">=3.3.0"
|
flutter: ">=3.7.0"
|
||||||
|
@ -26,8 +26,9 @@ dependencies:
|
|||||||
curved_navigation_bar: ^1.0.3
|
curved_navigation_bar: ^1.0.3
|
||||||
dbus: ^0.7.8
|
dbus: ^0.7.8
|
||||||
file_picker: ^5.2.2
|
file_picker: ^5.2.2
|
||||||
fl_query: ^1.0.0-alpha.0
|
fl_query: ^1.0.0-alpha.2
|
||||||
fl_query_hooks: ^1.0.0-alpha.0
|
fl_query_hooks: ^1.0.0-alpha.2
|
||||||
|
fluent_ui: ^4.3.0
|
||||||
fluentui_system_icons: ^1.1.189
|
fluentui_system_icons: ^1.1.189
|
||||||
flutter:
|
flutter:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
Loading…
Reference in New Issue
Block a user