diff --git a/.env.example b/.env.example
index af1b481f..920fe826 100644
--- a/.env.example
+++ b/.env.example
@@ -1,7 +1,11 @@
-POCKETBASE_URL=
-USERNAME=
-PASSWORD=
+SUPABASE_URL=
+SUPABASE_API_KEY=
# The format:
# SPOTIFY_SECRETS=clintId1:clientSecret1,clientId2:clientSecret2
-SPOTIFY_SECRETS=
\ No newline at end of file
+SPOTIFY_SECRETS=
+
+# 0 or 1
+# 0 = disable
+# 1 = enable
+ENABLE_UPDATE_CHECK=
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 8a480132..816c7b89 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -46,7 +46,7 @@ body:
attributes:
label: Spotube version
description: In which version of Spotube did you encounter this bug?
- placeholder: (e.g.) v2.7.1
+ placeholder: (e.g.) v3.0.0
- type: dropdown
attributes:
label: Installation source
diff --git a/.github/workflows/spotube-publish-binary.yml b/.github/workflows/spotube-publish-binary.yml
index 31e262a6..93ded44c 100644
--- a/.github/workflows/spotube-publish-binary.yml
+++ b/.github/workflows/spotube-publish-binary.yml
@@ -4,7 +4,7 @@ on:
inputs:
version:
description: Version to publish (x.x.x)
- default: 2.7.1
+ default: 3.0.0
required: true
dry_run:
description: Dry run
diff --git a/.github/workflows/spotube-release-binary.yml b/.github/workflows/spotube-release-binary.yml
index 2335b682..754dfb8d 100644
--- a/.github/workflows/spotube-release-binary.yml
+++ b/.github/workflows/spotube-release-binary.yml
@@ -4,7 +4,7 @@ on:
inputs:
version:
description: Version to release (x.x.x)
- default: 2.7.1
+ default: 3.0.0
required: true
channel:
type: choice
@@ -14,12 +14,20 @@ on:
- stable
- nightly
default: nightly
+ debug:
+ description: Debug on failed when channel is nightly
+ required: true
+ type: boolean
+ default: false
dry_run:
description: Dry run
required: true
type: boolean
default: true
+env:
+ FLUTTER_VERSION: '3.10.0'
+
jobs:
windows:
runs-on: windows-latest
@@ -28,6 +36,7 @@ jobs:
- uses: subosito/flutter-action@v2.10.0
with:
cache: true
+ flutter-version: ${{ env.FLUTTER_VERSION }}
- name: Replace pubspec version and BUILD_VERSION Env (nightly)
if: ${{ inputs.channel == 'nightly' }}
@@ -61,7 +70,7 @@ jobs:
run: |
flutter config --enable-windows-desktop
flutter pub get
- flutter pub run build_runner build --delete-conflicting-outputs
+ dart run build_runner build --delete-conflicting-outputs --enable-experiment=records,patterns
- name: Build Windows Executable
run: |
@@ -78,6 +87,12 @@ jobs:
make choco
mv dist/spotube.*.nupkg dist/Spotube-windows-x86_64.nupkg
+ - name: Debug With SSH When fails
+ if: ${{ failure() && inputs.debug && inputs.channel == 'nightly' }}
+ uses: mxschmitt/action-tmate@v3
+ with:
+ limit-access-to-actor: true
+
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
@@ -91,6 +106,7 @@ jobs:
- uses: subosito/flutter-action@v2.10.0
with:
cache: true
+ flutter-version: ${{ env.FLUTTER_VERSION }}
- name: Get current date
id: date
@@ -99,7 +115,7 @@ jobs:
- name: Install Dependencies
run: |
sudo apt-get update -y
- sudo apt-get install -y tar clang cmake ninja-build pkg-config libgtk-3-dev make python3-pip python3-setuptools patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace fuse libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libunwind-dev locate patchelf libsecret-1-0 libjsoncpp25 libsecret-1-dev libjsoncpp-dev
+ sudo apt-get install -y tar clang cmake ninja-build pkg-config libgtk-3-dev make python3-pip python3-setuptools desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace fuse libunwind-dev locate patchelf gir1.2-appindicator3-0.1 libappindicator3-1 libappindicator3-dev libsecret-1-0 libjsoncpp1 libsecret-1-dev libjsoncpp-dev libnotify-bin libnotify-dev mpv libmpv-dev
- name: Install AppImage Tool
run: |
@@ -136,15 +152,15 @@ jobs:
run: |
flutter config --enable-linux-desktop
flutter pub get
- flutter pub run build_runner build --delete-conflicting-outputs
+ dart run build_runner build --delete-conflicting-outputs --enable-experiment=records,patterns
- name: Build Linux Packages
run: |
dart pub global activate flutter_distributor
alias dpkg-deb="dpkg-deb --Zxz"
+ flutter_distributor package --platform=linux --targets=deb
flutter_distributor package --platform=linux --targets=appimage
flutter_distributor package --platform=linux --targets=rpm
- flutter_distributor package --platform=linux --targets=deb
- name: Create tar.xz (stable)
if: ${{ inputs.channel == 'stable' }}
@@ -161,18 +177,25 @@ jobs:
mv dist/**/spotube-*-linux.rpm dist/Spotube-linux-x86_64.rpm
mv dist/**/spotube-*-linux.AppImage dist/Spotube-linux-x86_64.AppImage
+ - name: Debug With SSH When fails
+ if: ${{ failure() && inputs.debug && inputs.channel == 'nightly' }}
+ uses: mxschmitt/action-tmate@v3
+ with:
+ limit-access-to-actor: true
+
- uses: actions/upload-artifact@v3
with:
name: Spotube-Release-Binaries
path: dist/
android:
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2.10.0
with:
cache: true
+ flutter-version: ${{ env.FLUTTER_VERSION }}
- name: Install Dependencies
run: |
@@ -203,7 +226,7 @@ jobs:
- name: Generate Secrets
run: |
flutter pub get
- flutter pub run build_runner build --delete-conflicting-outputs
+ dart run build_runner build --delete-conflicting-outputs --enable-experiment=records,patterns
- name: Sign Apk
run: |
@@ -215,6 +238,12 @@ jobs:
flutter build apk
mv build/app/outputs/apk/release/app-release.apk build/Spotube-android-all-arch.apk
+ - name: Debug With SSH When fails
+ if: ${{ failure() && inputs.debug && inputs.channel == 'nightly' }}
+ uses: mxschmitt/action-tmate@v3
+ with:
+ limit-access-to-actor: true
+
- uses: actions/upload-artifact@v3
with:
name: Spotube-Release-Binaries
@@ -228,6 +257,7 @@ jobs:
- uses: subosito/flutter-action@v2.10.0
with:
cache: true
+ flutter-version: ${{ env.FLUTTER_VERSION }}
- name: Replace pubspec version and BUILD_VERSION Env (nightly)
if: ${{ inputs.channel == 'nightly' }}
@@ -253,7 +283,8 @@ jobs:
- name: Generate Secrets
run: |
flutter pub get
- flutter pub run build_runner build --delete-conflicting-outputs
+ flutter pub remove media_kit_native_event_loop
+ dart run build_runner build --delete-conflicting-outputs --enable-experiment=records,patterns
- name: Build Macos App
run: |
@@ -265,16 +296,22 @@ jobs:
run: |
npm install -g appdmg
mkdir -p build/${{ env.BUILD_VERSION }}
- appdmg appdmg.json build/Spotube-macos-x86_64.dmg
+ appdmg appdmg.json build/Spotube-macos-universal.dmg
+
+ - name: Debug With SSH When fails
+ if: ${{ failure() && inputs.debug && inputs.channel == 'nightly' }}
+ uses: mxschmitt/action-tmate@v3
+ with:
+ limit-access-to-actor: true
- uses: actions/upload-artifact@v3
with:
name: Spotube-Release-Binaries
path: |
- build/Spotube-macos-x86_64.dmg
+ build/Spotube-macos-universal.dmg
upload:
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-latest
needs:
- windows
- linux
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 6c0bb0d8..3c8209ff 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -2,11 +2,25 @@
"version": "0.2.0",
"configurations": [
{
- "name": "Flutter",
+ "name": "spotube",
"type": "dart",
"request": "launch",
- "program": "${workspaceFolder}/lib/main.dart"
+ "program": "lib/main.dart"
},
+ {
+ "name": "spotube (profile)",
+ "type": "dart",
+ "request": "launch",
+ "program": "lib/main.dart",
+ "flutterMode": "profile"
+ },
+ {
+ "name": "spotube (release)",
+ "type": "dart",
+ "request": "launch",
+ "program": "lib/main.dart",
+ "flutterMode": "release"
+ }
],
"compounds": []
}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 1b5691af..fa4f1f51 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,7 +1,11 @@
{
"cmake.configureOnOpen": false,
"cSpell.words": [
+ "acousticness",
+ "danceability",
+ "instrumentalness",
"Mpris",
+ "speechiness",
"Spotube",
"winget"
]
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8aee5918..03610611 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,158 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+## [3.0.0](https://github.com/KRTirtho/spotube/compare/v2.7.1...v3.0.0) (2023-07-02)
+
+
+### Features
+
+* adaptive controllers ([c8b7de0](https://github.com/KRTirtho/spotube/commit/c8b7de087917ec3037c015d5b55693cb3dbdecca))
+* adaptive popup and bottom sheet list widget ([ddc1c5f](https://github.com/KRTirtho/spotube/commit/ddc1c5f373a4d72cc231c35dd70c3d577b84f7f5))
+* add generated to playlist(s) ([c91d8c8](https://github.com/KRTirtho/spotube/commit/c91d8c8efa8b526c64881fa829992b8c250e7c89))
+* add german locale ([ba3f428](https://github.com/KRTirtho/spotube/commit/ba3f4281f1a6bc7ddf38775e9d40dad863ed3692))
+* add piped search mode ([17a25a5](https://github.com/KRTirtho/spotube/commit/17a25a501e0d5e2512d8de0921fd602ea906d30f))
+* add sleep timer support ([4a75f3d](https://github.com/KRTirtho/spotube/commit/4a75f3dbd1e7e6f68899de001df70e809533f142))
+* adjust lyric page blurriness and player playbutton ([54d5907](https://github.com/KRTirtho/spotube/commit/54d5907f14df04f3f983ba2b0401ba05785da03b))
+* album art dominant color as accent color ([#447](https://github.com/KRTirtho/spotube/issues/447)) ([31b9249](https://github.com/KRTirtho/spotube/commit/31b9249cc8f7313a132a514a9ca825c2ae1e2256))
+* **android:** add splash screen ([c232fcc](https://github.com/KRTirtho/spotube/commit/c232fcc6dd1479ed33a8baa9887de2702a8ea22e))
+* **android:** disable battery optimization for better playback ([fe5b429](https://github.com/KRTirtho/spotube/commit/fe5b429ddacc576fc9fdb5e66718782cda163b27))
+* artist card redesign ([92a418c](https://github.com/KRTirtho/spotube/commit/92a418c8a8a9df99e27407b628e5e3cc9ccb4115))
+* Better download manager with download progress ([6752adc](https://github.com/KRTirtho/spotube/commit/6752adc9398818f51b69fced226b4b8410fb9e9b))
+* better language picker, adaptive select tile and settings section contrast ([6430a25](https://github.com/KRTirtho/spotube/commit/6430a2587075aa24483ab26ce6f0f6b2b630e139))
+* cache encryption for sensitive data ([b110d83](https://github.com/KRTirtho/spotube/commit/b110d834561ac53129ac9ec80238c014c84832ec))
+* color scheme picker dialog vertical list view instead of wrap ([bb60b01](https://github.com/KRTirtho/spotube/commit/bb60b01ef2f2ba3da8f6fe3a19add168b2ee8a4e))
+* compact and adaptive playbutton card design ([eeb8cab](https://github.com/KRTirtho/spotube/commit/eeb8cabf491d5242bd434b3c71c39363f24bdcf9))
+* compact button tabbar ([67380f6](https://github.com/KRTirtho/spotube/commit/67380f68765f18e4dcd3d60117083c7e9c6761c2))
+* create a basic installer script ([1763a36](https://github.com/KRTirtho/spotube/commit/1763a36a262178306df61d4588c17ff795a32790))
+* curved navigation bar ([776edf8](https://github.com/KRTirtho/spotube/commit/776edf84afcf99f96cf6e337b0c84ed89034ca8e))
+* custom error toast ([96f04c1](https://github.com/KRTirtho/spotube/commit/96f04c17565c0ab7f115d5c1f167f6660a69480d))
+* custom playlist generator ([f4b0d13](https://github.com/KRTirtho/spotube/commit/f4b0d134ca724b75bf65b885bce4dba206f1e090))
+* desktop mini player support ([471812d](https://github.com/KRTirtho/spotube/commit/471812d789eb2c861268ab8451d50104ac2fbe2e))
+* **desktop:** close button for minimize notification ([1688f99](https://github.com/KRTirtho/spotube/commit/1688f99096af940ead65e67832c6f061a6f635ac))
+* **desktop:** show minimized to system tray notification ([296f96c](https://github.com/KRTirtho/spotube/commit/296f96cf17cf21ff09b406cc24952ff60da52d5e))
+* disable/enable smtc on demand ([7fa50e5](https://github.com/KRTirtho/spotube/commit/7fa50e5c5ee9ca3ba95dca55f8a4831047f17570))
+* download button on each track ([925fa86](https://github.com/KRTirtho/spotube/commit/925fa86271fa10ff77b8137ba8d09b8067d0e819))
+* enable caching of queue ([ec11af5](https://github.com/KRTirtho/spotube/commit/ec11af53a16c435fbea3d0c81910dca371be9ce7))
+* heart button animation ([8432dc6](https://github.com/KRTirtho/spotube/commit/8432dc6286fbdfda52bbeb39c6d4ababa05881bc))
+* improved track item API and UI ([617aa89](https://github.com/KRTirtho/spotube/commit/617aa89409ce29eb3c197aee5c1189d763a3913c))
+* **installer:** get latest version from Github API ([957c085](https://github.com/KRTirtho/spotube/commit/957c085e1243ec0af5bc45d38691c74e2ba91ad8))
+* **local_tracks:** delete local track ([#484](https://github.com/KRTirtho/spotube/issues/484)) ([52835b2](https://github.com/KRTirtho/spotube/commit/52835b2ce2212925f80e1a1595c0ca30e6860a8d))
+* locale category/genre title ([88137f0](https://github.com/KRTirtho/spotube/commit/88137f01b27150b306327a01e67ec8a35a60e82e))
+* **locale:** add bengali translations for search page ([a1cdbad](https://github.com/KRTirtho/spotube/commit/a1cdbad18782a74b43f0625facfe3e35c516bf43))
+* **locale:** localize search, library, lyrics, artist with both Bengali and English ([11fe9ec](https://github.com/KRTirtho/spotube/commit/11fe9ec74462441b67a0ab0df73824f36dd15e2d))
+* **locale:** player, playlist view, track tile bengali and english translations ([c55133d](https://github.com/KRTirtho/spotube/commit/c55133dc8bba307823e5b67a30cfab03c923cb7f))
+* localize settings, about, login, player queue with Bengali and English translations ([a5c36bb](https://github.com/KRTirtho/spotube/commit/a5c36bbb20cc69d609bfb5ab973c7e288c1ea9de))
+* logs page in settings ([b78e7f5](https://github.com/KRTirtho/spotube/commit/b78e7f57a05db344aae59206cbb0f43b3ee199a9))
+* macos title bar spacing and lyrics page margin separate ([a0b3771](https://github.com/KRTirtho/spotube/commit/a0b377104f9822561d3b46dbc6551bb561842480))
+* make snackbar floating ([9dbb817](https://github.com/KRTirtho/spotube/commit/9dbb8171a6d6b81120ca7ccd74577e5c890ff930))
+* merge floating player with nav bar and nav bar translucent bg ([a90261e](https://github.com/KRTirtho/spotube/commit/a90261ed199f6cff9e8d0fe24934f8f1d8e9ed98))
+* **mini_player:** remove window shadow ([6259014](https://github.com/KRTirtho/spotube/commit/625901482ada4b441b838f640c0ab7167119b321))
+* **mini_player:** show/hide UI on hover toggle ([2e8b647](https://github.com/KRTirtho/spotube/commit/2e8b647a51f87840c2bd39f0a1dc25ddc91528fc))
+* new sidebar widget and translucent bottom player ([4ba1e70](https://github.com/KRTirtho/spotube/commit/4ba1e70636b4ba43697663128fc5422b1d0b2a2f))
+* newly released albums of user followed artist ([33cb794](https://github.com/KRTirtho/spotube/commit/33cb7947d63d0a2692a004f87a2ccd5777bf054e))
+* optimize image load + genre page and reduce page size of loaded categories ([7131efa](https://github.com/KRTirtho/spotube/commit/7131efa07fdbcf17965fc59ff635a6198b0e5e25))
+* persistent volume percentage ([3724bd5](https://github.com/KRTirtho/spotube/commit/3724bd5a10eef7a099d6f596fd038e6fea228359))
+* personal playlist recommendations ([ae820a2](https://github.com/KRTirtho/spotube/commit/ae820a22f291082c49554d621c25cc62212a6708))
+* piped instance picker on settings ([bed0d3b](https://github.com/KRTirtho/spotube/commit/bed0d3bd70438df413633ee03fd258a2ca4a1688))
+* platform specific title bar buttons ([6267720](https://github.com/KRTirtho/spotube/commit/62677209a23172162defb7a8e542d981569eba08))
+* **playback:** integrate android, ios, macos with JustAudio ([d487fe5](https://github.com/KRTirtho/spotube/commit/d487fe55630993e2b729050ebd0bf4e1e4be1fb3))
+* **playback:** use assets_audio_player to fix macos double duration problems and android high loading latency ([1fff0f1](https://github.com/KRTirtho/spotube/commit/1fff0f1bd0d811c348f293f733cbcb7cd57e02f8))
+* player details dialog and separate location of lyrics button in player page ([ce38233](https://github.com/KRTirtho/spotube/commit/ce38233de8f4775018a1d01e951b1635776fe743))
+* **player:** add playlist related methods to audio player ([f1080e1](https://github.com/KRTirtho/spotube/commit/f1080e1675aee1208d05658adfabfbed04ff45b6))
+* **player:** animated gradient background ([49b5d0e](https://github.com/KRTirtho/spotube/commit/49b5d0e6948d80abb8ee09203e0d655d68377245))
+* **player:** custom playlist implementation for media_kit to replace unpredictable playlist of mpv ([eaf65b6](https://github.com/KRTirtho/spotube/commit/eaf65b6db208aaad745821d4d42afc05f51cee7c))
+* **player:** proper coloring of elements ([b2c4ea1](https://github.com/KRTirtho/spotube/commit/b2c4ea13f6157c2b7bec3957e1f7f50fbf0002c7))
+* **player:** replace bg blur with gradient, proper fg color and align title and artist name ([159f03e](https://github.com/KRTirtho/spotube/commit/159f03e7ca62e6b3b86389e2795da84de61fba78))
+* playlist create support for generated playlist ([91c72f9](https://github.com/KRTirtho/spotube/commit/91c72f9ec9556f301c5d129fc82e19e791a02fbe))
+* playlist generation all parameters support ([9877d5f](https://github.com/KRTirtho/spotube/commit/9877d5f51736db03d5839dadf164d11d0cce82f0))
+* **playlist,album page:** play and shuffle take full width on smaller screens, add new xs breakpoint ([dce1b88](https://github.com/KRTirtho/spotube/commit/dce1b88694cfcb6b7e63d6ee614ac1dbbd017f6e))
+* **queue:** add track(s) for playing next ([#460](https://github.com/KRTirtho/spotube/issues/460)) ([cac8ea6](https://github.com/KRTirtho/spotube/commit/cac8ea638812f5d9cb4305144b6351141a2cf407))
+* **queue:** reorder tracks support ([441b43b](https://github.com/KRTirtho/spotube/commit/441b43bef6b92fd7df6c4e1bef39d67b4a76cd22))
+* re-designed playlist/album page ([0cedc7a](https://github.com/KRTirtho/spotube/commit/0cedc7a4187771efce8152003f890e242116c78c))
+* re-introduce youtube API along with piped ([b54ee96](https://github.com/KRTirtho/spotube/commit/b54ee96233b29d7517eba66e3f8dd9270c2790df))
+* reactive volume slider and slicker bottom bar with lowered height ([9d14517](https://github.com/KRTirtho/spotube/commit/9d14517202d5c9d993a947808bf0c6520ed54ea3))
+* remove SponsorBlock in favor of YT Music and remove pocketbase backend track support ([fb780da](https://github.com/KRTirtho/spotube/commit/fb780da327a213d7a82cbc3b567ece858dc2f0e8))
+* repeat button all 3 mode and disable player controls when track is fetching ([1418378](https://github.com/KRTirtho/spotube/commit/14183781dd3f1e16c121e78ad637a326de7b5dcf))
+* replace YouTube API with piped API ([1ecc36d](https://github.com/KRTirtho/spotube/commit/1ecc36da57af61fd9c2ca928589088cd4325f605))
+* responsive playlist generate page and scrollable multi autocomplete ([d57aad5](https://github.com/KRTirtho/spotube/commit/d57aad5612f7622dcd638ea8c0ec4d96f741de2b))
+* search alternative track source ([dfea195](https://github.com/KRTirtho/spotube/commit/dfea195ec178de733717cfe3226cede7521ee2d3))
+* setup localization (l10n) and language switcher, add sidebar and navbar locale ([f12d812](https://github.com/KRTirtho/spotube/commit/f12d81259f9e7005e681a7ca9867291d9228a8b1))
+* show album release year ([#387](https://github.com/KRTirtho/spotube/issues/387)) and fix layout of artist's album ([6a6ddf6](https://github.com/KRTirtho/spotube/commit/6a6ddf6e1f6dc72b794cae49adf8348da272babd))
+* show country code piped instance list ([60328a6](https://github.com/KRTirtho/spotube/commit/60328a6bafcbff1b7d0ee5099825f0e3d545b60f))
+* show loading when track metadata is being fetched, android, ios, macos enable shuffling ([bf59570](https://github.com/KRTirtho/spotube/commit/bf59570251720a80efe0aa6be481899864da5079))
+* sort tracks by newest and oldest dates ([b4713e3](https://github.com/KRTirtho/spotube/commit/b4713e377a938cbebe70089874216f86fe550c34))
+* supabase integration ([8bcce92](https://github.com/KRTirtho/spotube/commit/8bcce9282eae08c5996a27f16f89cbc187a06823))
+* system tray support ([#31](https://github.com/KRTirtho/spotube/issues/31)) ([06a0437](https://github.com/KRTirtho/spotube/commit/06a043764d9f65fb448fcf088ccf2737145e23e8))
+* track populate sibling support ([3aeb026](https://github.com/KRTirtho/spotube/commit/3aeb026776716b6e2eb89c8406a4996a86c7ca60))
+* **translation:** add hindi and french translations using ChatGPT ([6d836bd](https://github.com/KRTirtho/spotube/commit/6d836bdb658c180ca8e2c71e7e290fafa3520727))
+* **translation:** add Japanase locale ([4b52a71](https://github.com/KRTirtho/spotube/commit/4b52a71c0914bda6c831d8f637a5934f7bcf8fcb))
+* use system color scheme ([862c4b8](https://github.com/KRTirtho/spotube/commit/862c4b8faf2c751d803e373e29981a116bf08ed5))
+* volume slider in player page ([7abe2c1](https://github.com/KRTirtho/spotube/commit/7abe2c10735bc38c644487139557a731d25e80e6))
+* windows OS media control panel support ([f0b426a](https://github.com/KRTirtho/spotube/commit/f0b426ae89f2e01f4a9c8757ef4e0b4a21b50c7b))
+
+
+### Bug Fixes
+
+* add to playlist dialog not showing playlist name ([8944581](https://github.com/KRTirtho/spotube/commit/8944581c09eec0162220e7ff684205484fafb599))
+* album sync not working ([74906f3](https://github.com/KRTirtho/spotube/commit/74906f393250934c36530a73ad7312f59f8627ed))
+* alternative track source not playing new source ([a9b5a71](https://github.com/KRTirtho/spotube/commit/a9b5a714e47d40407d799966ae95f84338f9b59a))
+* **android:** use multi assetAudioPlayer instance fix patch and disable Pre-download and play by default in Android too ([cdb3268](https://github.com/KRTirtho/spotube/commit/cdb32685e4bbb899706ed16d58ef9a3a074e283a))
+* **artist:** follower count shows as float when < 1000 ([#482](https://github.com/KRTirtho/spotube/issues/482)) ([fd1846e](https://github.com/KRTirtho/spotube/commit/fd1846eecf9632e59e4b70fb70e97c556b6374f5))
+* bottom navbar first item icon color not changing on primary color change ([6eb4244](https://github.com/KRTirtho/spotube/commit/6eb4244f3244a96fe6858261534cc03eb3de803c))
+* cached currently playing track infinite loading ([9401718](https://github.com/KRTirtho/spotube/commit/94017189c6b9bf55ec62cbf29cd6b0e9fffca42a))
+* cached queue tracks expired stream ([ed29ab5](https://github.com/KRTirtho/spotube/commit/ed29ab5137416d9fb2e7e9fe840f56ef52df6f61))
+* collection currently playing state persist on restart ([1c89e3e](https://github.com/KRTirtho/spotube/commit/1c89e3efb0f05c648fc1c8e09039e62333de18d1))
+* color not syncing and add new screenshot ([6205501](https://github.com/KRTirtho/spotube/commit/62055018feade0b895663a0bfc5f85f265ae2154))
+* content going below bottom player or nav bar ([1bdce9f](https://github.com/KRTirtho/spotube/commit/1bdce9fe964de88a667bb160846c11dc70b77c00))
+* disable background_downloader due to android build failures ([7d23bee](https://github.com/KRTirtho/spotube/commit/7d23beec5ef07c4d649185a69e7a2b9697dc6953))
+* disable play when loading track and buffering event ([30c933c](https://github.com/KRTirtho/spotube/commit/30c933cdf3d4524be164e171094afdd27b0252b7))
+* error log ([e3d8239](https://github.com/KRTirtho/spotube/commit/e3d8239b9f5700bfb17c4758d95ba1db1f0e718a))
+* excessive repaints caused by Player progress bar ([09b24cf](https://github.com/KRTirtho/spotube/commit/09b24cf1fd1644c549f85904545db54b39cc2431))
+* failed download no error icon ([1266a3f](https://github.com/KRTirtho/spotube/commit/1266a3f1607de11e793a294071850996527d494a))
+* **home:** bottom player transparency ([20c424c](https://github.com/KRTirtho/spotube/commit/20c424c77fe273a693213ebf88d50e4025bc8608))
+* language changer not working ([7b7b1f2](https://github.com/KRTirtho/spotube/commit/7b7b1f2647591b7cd4cc7841526716c6a2877e55))
+* less frequent position updates ([0a49b56](https://github.com/KRTirtho/spotube/commit/0a49b56566abd00cf7703e4207cfa90f93c381fd))
+* linux mpris not showing up and overall media notification service ([1abcad1](https://github.com/KRTirtho/spotube/commit/1abcad1de510c209a34196f2de17045af4dd3bc2))
+* local tracks getting fetched on first load ([73c012c](https://github.com/KRTirtho/spotube/commit/73c012c71ab5050636f79e010d654b4390978ee7))
+* local tracks not working when there's a invalid music file in the folder ([5855820](https://github.com/KRTirtho/spotube/commit/5855820569dfad7cd26f1e0f0c985babd0d9485d))
+* lyrics page blur in player and cut off text when line too big ([6b4584e](https://github.com/KRTirtho/spotube/commit/6b4584e91bd4f4aee0c56e48a7aec7015c7c418b))
+* macos build by removing media_kit native event loop ([62fc773](https://github.com/KRTirtho/spotube/commit/62fc7739b508f0e874978408a2bab0a1d422deb6))
+* macos build error, mobile player duration and playing state and background disposal of player ([be91e33](https://github.com/KRTirtho/spotube/commit/be91e33828630c7062886cd15e4d57496daaa4d5))
+* **macos,ios:** use regular shared prefs ([1b5bfec](https://github.com/KRTirtho/spotube/commit/1b5bfec27fbcfe9faabff64d46296bdeebe00161))
+* memoize child of animated widget and make player bg animation faster ([fcb5c8f](https://github.com/KRTirtho/spotube/commit/fcb5c8f8dabd0d4e3033f80ea3e5d006243cdfb5))
+* mini player not working in release mode ([28ff321](https://github.com/KRTirtho/spotube/commit/28ff3216efee81184798eedfbb10ba66395bbf36))
+* **mkPlayer:** remove method and wrong active index on modifying playlist ([3bafa7b](https://github.com/KRTirtho/spotube/commit/3bafa7b80c963fa52b90ed4cb1393fb121cac713))
+* mobile audio notification not working ([8f9303b](https://github.com/KRTirtho/spotube/commit/8f9303bc0fddb9d179303a1f0eb76dd5b02410e7))
+* multiple instance of theme ([4ec0424](https://github.com/KRTirtho/spotube/commit/4ec04240a5bde6af5c920a61ab6260e7a93bfc54))
+* navigation to settings not working ([ce10aa1](https://github.com/KRTirtho/spotube/commit/ce10aa1fe2c95d4738835687f613930cf7829f3a))
+* no progress update when track changed ([6ae8964](https://github.com/KRTirtho/spotube/commit/6ae896441a787fce1bc6e5eb5379856dc2f4e96d))
+* null exception on proxy playlist and audio player ([a455a89](https://github.com/KRTirtho/spotube/commit/a455a89c5861fd455f6950c7b68beae24bdcc6ed))
+* overflowing clickable artists links ([4077fac](https://github.com/KRTirtho/spotube/commit/4077fac39fb667b87e959e53d2dcaceefb63cd2d))
+* personalized playlists not loading ([caa3408](https://github.com/KRTirtho/spotube/commit/caa340803fdf3859fe5a8a996abae1502ef2e4e7))
+* playback not moving to next track after a track ends ([27e8acb](https://github.com/KRTirtho/spotube/commit/27e8acbfe75a37c0a8fa69a444fdd86e92dbe4f0))
+* **player:** gradient bg not taking full height ([62ad86e](https://github.com/KRTirtho/spotube/commit/62ad86e88d74b5114af78138b221314192e5a801))
+* **player:** playback element placement ([5e47faa](https://github.com/KRTirtho/spotube/commit/5e47faa6060d7a8aa0d143060e812dc06b8dd790))
+* **player:** queue button not showing when not logged in ([6c2d655](https://github.com/KRTirtho/spotube/commit/6c2d65587b0e6e167be1d0b086df103c7e72d4b2))
+* **player:** volume slider, prefetching of media_kit and stuttering on sponsorblock skip ([1f32554](https://github.com/KRTirtho/spotube/commit/1f3255481f058c50968561db88172e56b58494f4))
+* playlist generate slider shape ([2b35c04](https://github.com/KRTirtho/spotube/commit/2b35c044adb15a97a58692e7880694a251899732))
+* pop sheet list not scrollable ([cca5625](https://github.com/KRTirtho/spotube/commit/cca5625df7e432da8581a4504306baad154deb48))
+* re-enable add to queue and play next support, favorite button query exceptions ([e529c79](https://github.com/KRTirtho/spotube/commit/e529c79c4f0cd964b7d89e010d3fe51378ea7222))
+* re-enable download manager ([ea45c4f](https://github.com/KRTirtho/spotube/commit/ea45c4f42ae89b8991e470e84a5290b3be3b0f36))
+* remove unnecessary broadcast stream conversions ([bf04962](https://github.com/KRTirtho/spotube/commit/bf04962e90ea5345a2bc0d4793999f7db712cab2))
+* remove useBreakpoints as it clogs up memory with unnecessary state updates ([e1c0f5c](https://github.com/KRTirtho/spotube/commit/e1c0f5cf1e4cece2c4aa235bfbf8511ad7b1fe59))
+* replace download multiple pops and add translations ([4a21249](https://github.com/KRTirtho/spotube/commit/4a21249ee386426b0974451542a93e84f532fb3f))
+* screen breakpoints and persist lyrics delay across screens ([df79638](https://github.com/KRTirtho/spotube/commit/df79638fb622a55aaa2b36c9a1425c2d9c4a8e52))
+* sidebar task counter badge and bottom player play button progress color ([af278d8](https://github.com/KRTirtho/spotube/commit/af278d8feaa08c14528627766bce6d724b846954))
+* status bar color of playlist/album page ([65fa3cb](https://github.com/KRTirtho/spotube/commit/65fa3cb624c240360de5a06778a1f72ad10bbe2d))
+* system color scheme not persisting on restart when system color scheme changed ([e04515d](https://github.com/KRTirtho/spotube/commit/e04515d8e213b4c7f85d11385959a33b042bd9b1))
+* track collection view status bar not transparent ([9251121](https://github.com/KRTirtho/spotube/commit/9251121ba0154599975e33819a43719477c644f8))
+* track doesn't play after change ([17e5ab6](https://github.com/KRTirtho/spotube/commit/17e5ab611cc417cce7c17cafc7045f5aa2eb970e))
+* track stops at last second ([f554f6d](https://github.com/KRTirtho/spotube/commit/f554f6d43bb714f662a27977f501d7ad44b070c3))
+* **track_collection_view:** keyboard focus on scroll and no space for search results in playlist/album ([7a8bd92](https://github.com/KRTirtho/spotube/commit/7a8bd921047e3766dbbf24449e2873afe3dbecf8))
+* track_table_view table headers ([d88d287](https://github.com/KRTirtho/spotube/commit/d88d287fc586ec33351de9f3b4359f189054868b))
+* track_tile active and blacklist color, playbutton card action positioning ([3f5a1b9](https://github.com/KRTirtho/spotube/commit/3f5a1b9587efe9b7b2c69008345867933f79ec67))
+* use id based source getters instead of index ([a074463](https://github.com/KRTirtho/spotube/commit/a0744630ba2dc713babdb8db6500f9dd0f1e6096))
+
### [2.7.1](https://github.com/KRTirtho/spotube/compare/v2.7.0...v2.7.1) (2023-04-10)
diff --git a/CONTRIBUTION.md b/CONTRIBUTION.md
index c19d8ff1..da630db0 100644
--- a/CONTRIBUTION.md
+++ b/CONTRIBUTION.md
@@ -118,26 +118,26 @@ Enhancement suggestions are tracked as [GitHub issues](https://github.com/KRTirt
Do the following:
-- Download the latest Flutter SDK (>=2.15.1) & enable desktop support
+- Download the latest Flutter SDK (>=3.10.0) & enable desktop support
- Install Development dependencies in linux
- - Debian/Ubuntu
+ - Debian (>=12/Bookworm)/Ubuntu
```bash
- $ apt-get install libjsoncpp1 libjsoncpp-dev libsecret-1-0 libsecret-1-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
+ $ apt-get install mpv libmpv-dev libappindicator3-1 gir1.2-appindicator3-0.1 libappindicator3-dev libsecret-1-0 libjsoncpp1 libsecret-1-dev libjsoncpp-dev libnotify-bin libnotify-dev
```
- Use `libjsoncpp25` instead of `libjsoncpp1` (for Ubuntu >= 22.04)
- Arch/Manjaro
```bash
- yay -S libsecret jsoncpp gstreamer gst-libav gst-plugins-base gst-plugins-good
+ yay -S mpv libappindicator-gtk3 libsecret jsoncpp libnotify
```
- Fedora
```bash
- dnf install libsecret libsecret-devel jsoncpp gstreamer1-devel gstreamer1-plugins-base-tools gstreamer1-doc gstreamer1-plugins-base-devel gstreamer1-plugins-good gstreamer1-plugins-good-extras
+ dnf install mpv mpv-devel libappindicator-gtk3 libappindicator-gtk3-devel libsecret libsecret-devel jsoncpp jsoncpp-devel libnotify libnotify-devel
```
- Clone the Repo
- Create a `.env` in root of the project following the `.env.example` template
- Now run the following to bootstrap the project
```bash
- flutter pub get && flutter pub run build_runner build --delete-conflicting-outputs
+ flutter pub get && dart run build_runner build --delete-conflicting-outputs --enable-experiment=records,patterns
```
- Finally run these following commands in the root of the project to start the Spotube Locally
```bash
diff --git a/LICENSE b/LICENSE
index 5119c222..f965af85 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
BSD-4-Clause License
-Copyright (c) 2022 Kingkor Roy Tirtho. All rights reserved.
+Copyright (c) 2023 Kingkor Roy Tirtho. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
diff --git a/README.md b/README.md
index 14ac5697..177e4c21 100644
--- a/README.md
+++ b/README.md
@@ -1,158 +1,214 @@
-

+
+

-
- spotube.netlify.app
-
+ An open source, cross-platform Spotify client that doesn't require Premium nor uses Electron!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+

+

+

+

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

-####
Desktop
+ ---
-
+

-####
Mobile
+
-
+## 🌃 Features
-
-
-
-
-
+- 🚫 No ads, thanks to the use of public & free Spotify and YT Music APIs¹
+- ⬇️ Downloadable tracks
+- 🖥️ 📱 Cross-platform support
+- 🪶 Small size & less data usage
+- 🕵️ Anonymous/guest login
+- 🕒 Time synced lyrics
+- ✋ No telemetry, diagnostics or user data collection
+- 🚀 Native performance
+- 📖 Open source/libre software
+- 🔉 Playback control is done locally, not on the server
-# Features
+**¹** It is still **recommended** to support the creators by watching/liking/subscribing to the artists' YouTube channels or liking their tracks on Spotify (or purchasing a Spotify Premium subscription too).
-Following are the features that currently Spotube offers:
+### ❌ Unsupported features
-- Open source/libre software
-- Anonymous/guest login
-- Cross platform support
-- No telemetry, diagnostics or user data collection
-- Lightweight & resource-friendly
-- Native performance (Thanks to Flutter+Skia)
-- Playback control is done locally instead of on the server
-- Small size & less data usage
-- 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.)
-- Time synced lyrics
-- Downloadable tracks
+- 🗣️ **Spotify Shows & Podcasts:** Shows and Podcasts can **never be supported** because the audio tracks are _only_ available on Spotify and accessing them would require Spotify Premium.
+- 🎧 **Spotify Listen Along:** [Coming soon!](https://github.com/KRTirtho/spotube/issues/8)
-# Support development
+## 📜 ⬇️ Installation guide
-
-[](https://opencollective.com/spotube)
-[](https://www.buymeacoffee.com/krtirtho)
+New releases usually appear after 3-4 months.
+This handy table lists all methods you can use to install Spotube:
-# Installation
+
+
+ Platform |
+ Package/Installation Method |
+
+
+ Windows |
+
+
+
+
+ |
+
+ MacOS |
+
+
+
+
+ |
+
+
+ Android |
+
+
+
+
+
+
+
+
+ |
+
+
+ Flatpak |
+
+ flatpak install com.github.KRTirtho.Spotube
+
+
+
+ |
+
+
+ AppImage |
+
+
+
+
+ Note: AppimageLauncher is required!
+ |
+
+
+ Debian/Ubuntu |
+
+
+
+
+ Then run: sudo apt install Spotube-linux-x86_64.deb
+ |
+
+
+ Arch/Manjaro |
+
+ With pamac: sudo pamac install spotube-bin
+ With yay: yay -Sy spotube-bin
+ |
+
+
+ Fedora/OpenSuse |
+
+
+
+
+ For Fedora: sudo dnf install ./Spotube-linux-x86_64.rpm
+ For OpenSuse: sudo zypper in ./Spotube-linux-x86_64.rpm
+ |
+
+
+ Linux (tarball) |
+
+
+
+
+ |
+
+
+ Windows - Chocolatey |
+
+ choco install spotube
+ |
+
+
+ Windows - Scoop |
+
+ scoop bucket add extras
+ scoop install spotube
+ |
+
+
+ Windows - WinGet |
+
+ winget install --id KRTirtho.Spotube
+ |
+
+
-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!
+### 🔄 Nightly Builds
-| Platform | Package/Installation Method |
-| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Android | [
][android-dlink]
[
][fdroid-dlink] |
-| Debian/Ubuntu | [
][deb-dlink]
Then run: `sudo apt install Spotube-linux-x86_64.deb` |
-| Fedora/OpenSuse | [
][rpm-dlink]
For Fedora: `sudo dnf install ./Spotube-linux-x86_64.rpm`
For OpenSuse: `sudo zypper in ./Spotube-linux-x86_64.rpm` |
-| Flatpak | `flatpak install com.github.KRTirtho.Spotube`
|
-| Arch/Manjaro | pamac: `pamac install spotube-bin`
yay: `yay -Sy spotube-bin` |
-| AppImage | [
][appimage-dlink]
**Note**: AppImages require [appimage-launcher](https://github.com/TheAssassin/AppImageLauncher) to be installed |
-| Linux (tarball) | [
][linux-dlink] |
-| Windows | [
][win32-dlink] |
-| Windows (Chocolatey) | `choco install spotube` |
-| Windows (Scoop) | `scoop bucket add extras`
`scoop install spotube` |
-| Windows (WinGet) | `winget install --id KRTirtho.Spotube` |
-| MacOS | [
][mac-dlink] |
+Grab the latest nightly builds of Spotube [from the GitHub Releases](https://github.com/KRTirtho/spotube/releases/tag/nightly).
-> **Note!:** If you don't understand this download table. You can read [installation instructions][wiki-installation-instructions] from the wiki
+## 🕳️ Building from source
-## Nightly Builds
-Get the latest nightly builds of Spotube [here](https://github.com/KRTirtho/spotube/releases/tag/nightly).
+
-# TODO:
-- [ ] Windows OS Media Control & Media Keys Support
-- [ ] Spotify Listen Along
-- [x] Skip non-music sections from Audio Track
-- [ ] Language Translations/Localization
+You can compile Spotube's source code by [following these instructions](CONTRIBUTION.md#your-first-code-contribution).
-# Building from source
+## 👥 The Spotube team
-You can find the details [here](CONTRIBUTION.md#your-first-code-contribution).
+- [Kingkor Roy Tirtho](https://github.com/KRTirtho) - The Founder, Maintainer and Lead Developer
+- [Owen Connor](https://github.com/owencz1998) - The Cool Discord Moderator
+- [Piotr Rogowski](https://github.com/karniv00l) - The MacOS Developer
+- [RaptaG](https://github.com/RaptaG) - The GitHub Moderator and Community Manager
+- [Rusty Apple](https://github.com/RustyApple) - The Mysterious Unknown Guy
-# Things that do not work
+## 💼 License
-- Shows & Podcasts are not supported, as a premium subscription would be needed for that functionality.
+Spotube is open source and licensed under the [BSD-4-Clause](/LICENSE) License.
-# License
+If you are concerned, feel free to [read the reason of choosing this license](https://dev.to/krtirtho/choosing-open-source-license-wisely-1m3p).
-[BSD-4-Clause](/LICENSE)
+
+
+ [Click to show]
🙏 Library/Plugin/Framework Credits
+
-But why? You can learn about it [here](https://dev.to/krtirtho/choosing-open-source-license-wisely-1m3p).
-
-# Financial contributors
-## Backers
-
-
-
-## Sponsors
-
-
-
-
-# Library/Plugin/Framework Credits
-
-1. [Flutter](https://flutter.dev/) - Flutter transforms the app development process. Build, test, and deploy beautiful mobile, web, desktop, and embedded apps from a single codebase
-1. [Spotify API](https://developer.spotify.com/documentation/web-api/) - The Spotify Web API is a RESTful API that provides access to Spotify data
-1. [Linux](https://www.linux.org/) - Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged in a Linux distribution
-1. [AUR](https://aur.archlinux.org/) - AUR stands for Arch User Repository. It is a community-driven repository for Arch-based Linux distributions users
-1. [Flatpak](https://flatpak.org/) - Flatpak is a utility for software deployment and package management for Linux
-1. [rentanadviser](https://www.rentanadviser.com/) - Generous Synced lyrics API provider service
-1. [SponsorBlock](https://sponsor.ajay.app/) - SponsorBlock is an open-source crowdsourced browser extension and open API for skipping sponsor segments in YouTube videos.
+1. [Flutter](https://flutter.dev) - Flutter transforms the app development process. Build, test, and deploy beautiful mobile, web, desktop, and embedded apps from a single codebase
+1. [Spotify API](https://developer.spotify.com/documentation/web-api) - The Spotify Web API is a RESTful API that provides access to Spotify data
+1. [Piped](https://piped-docs.kavin.rocks/) - Piped is a privacy friendly alternative YouTube frontend, which is efficient and scalable by design.
+1. [YouTube](https://youtube.com/) - YouTube is an American online video-sharing platform headquartered in San Bruno, California. Three former PayPal employees—Chad Hurley, Steve Chen, and Jawed Karim—created the service in February 2005
+1. [Linux](https://www.linux.org) - Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged in a Linux distribution
+1. [AUR](https://aur.archlinux.org) - AUR stands for Arch User Repository. It is a community-driven repository for Arch-based Linux distributions users
+1. [Flatpak](https://flatpak.org) - Flatpak is a utility for software deployment and package management for Linux
+1. [SponsorBlock](https://sponsor.ajay.app) - SponsorBlock is an open-source crowdsourced browser extension and open API for skipping sponsor segments in YouTube videos.
1. [Inno Setup](https://jrsoftware.org/isinfo.php) - Inno Setup is a free installer for Windows programs by Jordan Russell and Martijn Laan
-1. [F-Droid](https://f-droid.org/) - F-Droid is an installable catalogue of FOSS (Free and Open Source Software) applications for the Android platform. The client makes it easy to browse, install, and keep track of updates on your device
-
-1. [adwaita](https://github.com/gtk-flutter/adwaita) - Adwaita style - The default theme for GTK+ for your Flutter app.
+1. [F-Droid](https://f-droid.org) - F-Droid is an installable catalogue of FOSS (Free and Open Source Software) applications for the Android platform. The client makes it easy to browse, install, and keep track of updates on your device
1. [args](https://pub.dev/packages/args) - Library for defining parsers for parsing raw command-line arguments into a set of options and values using GNU and POSIX style options.
1. [async](https://pub.dev/packages/async) - Utility functions and classes related to the 'dart:async' library.
1. [audio_service](https://github.com/ryanheise/audio_service/tree/master/audio_service) - Flutter plugin to play audio in the background while the screen is off.
1. [audio_session](https://github.com/ryanheise/audio_session) - Sets the iOS audio session category and Android audio attributes for your app, and manages your app's audio focus, mixing and ducking behaviour.
-1. [audioplayers](https://github.com/bluefireteam/audioplayers) - A Flutter plugin to play multiple audio files simultaneously
1. [auto_size_text](https://github.com/leisim/auto_size_text) - Flutter widget that automatically resizes text to fit perfectly within its bounds.
-1. [badges](https://pub.dev/packages/badges) - A package for creating badges. Badges can be used for an additional marker for any widget, e.g. show a number of items in a shopping cart.
+1. [buttons_tabbar](https://afonsoraposo.com) - A Flutter package that implements a TabBar where each label is a toggle button.
1. [cached_network_image](https://github.com/Baseflow/flutter_cached_network_image) - Flutter library to load and cache network images. Can also be used with placeholder and error widgets.
1. [collection](https://pub.dev/packages/collection) - Collections and utilities functions and classes related to collections.
1. [cupertino_icons](https://pub.dev/packages/cupertino_icons) - Default icons asset for Cupertino widgets based on Apple styled icons
-1. [dbus](https://github.com/canonical/dbus.dart) - A native Dart implementation of the D-Bus message bus client. This package allows Dart applications to directly access services on the Linux desktop.
+1. [curved_navigation_bar](https://github.com/rafalbednarczuk/curved_navigation_bar) - Stunning Animating Curved Shape Navigation Bar. Adjustable color, background color, animation curve, animation duration.
+1. [envied](https://github.com/petercinibulk/envied) - Explicitly reads environment variables into a dart file from a .env file for more security and faster start up times.
1. [file_picker](https://github.com/miguelpruivo/plugins_flutter_file_picker) - A package that allows you to use a native file explorer to pick single or multiple absolute file paths, with extension filtering support.
1. [fl_query](https://fl-query.vercel.app) - Asynchronous data caching, refetching & invalidation library for Flutter
1. [fl_query_hooks](https://fl-query.vercel.app) - Elite flutter_hooks compatible library for fl_query, the Asynchronous data caching, refetching & invalidation library for Flutter
-1. [fluent_ui](https://github.com/bdlukaa/fluent_ui) - Implements Windows UI in Flutter. Based on the official documentation
+1. [fl_query_connectivity_plus_adapter](https://fl-query.vercel.app) - Connectivity Plus adapter for FlQuery Connectivity
1. [fluentui_system_icons](https://github.com/microsoft/fluentui-system-icons/tree/main) - Fluent UI System Icons are a collection of familiar, friendly and modern icons from Microsoft.
1. [flutter_cache_manager](https://github.com/Baseflow/flutter_cache_manager/tree/master/flutter_cache_manager) - Generic cache manager for flutter. Saves web files on the storages of the device and saves the cache info using sqflite.
-1. [flutter_dotenv](https://github.com/java-james/flutter_dotenv) - Easily configure any flutter application with global variables using a `.env` file.
1. [flutter_feather_icons](https://github.com/muj-programmer/flutter_feather_icons) - Feather is a collection of simply beautiful open source icons. Each icon is designed on a 24x24 grid with an emphasis on simplicity, consistency and usability.
1. [flutter_hooks](https://github.com/rrousselGit/flutter_hooks) - A flutter implementation of React hooks. It adds a new kind of widget with enhanced code reuse.
1. [flutter_inappwebview](https://inappwebview.dev/) - A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window.
+1. [flutter_native_splash](https://pub.dev/packages/flutter_native_splash) - Customize Flutter's default white native splash screen with background color and splash image. Supports dark mode, full screen, and more.
1. [flutter_riverpod](https://riverpod.dev) - A simple way to access state from anywhere in your application while robust and testable.
+1. [flutter_secure_storage](https://pub.dev/packages/flutter_secure_storage) - Flutter Secure Storage provides API to store data in secure storage. Keychain is used in iOS, KeyStore based solution is used in Android.
1. [flutter_svg](https://pub.dev/packages/flutter_svg) - An SVG rendering and widget library for Flutter, which allows painting and displaying Scalable Vector Graphics 1.1 files.
1. [fuzzywuzzy](https://github.com/sphericalkat/dart-fuzzywuzzy) - An implementation of the popular fuzzywuzzy package in Dart, to suit all your fuzzy string matching/searching needs!
1. [go_router](https://pub.dev/packages/go_router) - A declarative router for Flutter based on Navigation 2 supporting deep linking, data-driven routes and more
@@ -161,13 +217,16 @@ But why? You can learn about it [here](https://dev.to/krtirtho/choosing-open-sou
1. [hooks_riverpod](https://riverpod.dev) - A simple way to access state from anywhere in your application while robust and testable.
1. [html](https://pub.dev/packages/html) - APIs for parsing and manipulating HTML content outside the browser.
1. [http](https://pub.dev/packages/http) - A composable, multi-platform, Future-based API for HTTP requests.
+1. [intl](https://pub.dev/packages/intl) - Contains code to deal with internationalized/localized messages, date and number formatting and parsing, bi-directional text, and other internationalization issues.
1. [introduction_screen](https://github.com/pyozer/introduction_screen) - Introduction/Onboarding package for flutter app with some customizations possibilities
1. [json_annotation](https://pub.dev/packages/json_annotation) - Classes and helper functions that support JSON code generation via the `json_serializable` package.
-1. [json_serializable](https://pub.dev/packages/json_serializable) - Automatically generate code for converting to and from JSON by annotating Dart classes.
-1. [libadwaita](https://github.com/gtk-flutter/libadwaita) - Libadwaita's widgets for Flutter. Following Gnome HIG and available on all platforms.
1. [logger](https://pub.dev/packages/logger) - Small, easy to use and extensible logger which prints beautiful logs.
-1. [macos_ui](https://macosui.dev) - Flutter widgets and themes implementing the current macOS design language.
-1. [marquee](https://pub.dev/packages/marquee) - A Flutter widget that scrolls text infinitely. Provides many customizations including custom scroll directions, durations, curves as well as pauses after every round.
+1. [media_kit](https://github.com/alexmercerind/media_kit) - A complete video & audio playback library for Flutter & Dart. Performant, stable, feature-proof & modular.
+1. [media_kit_libs_android_audio](https://github.com/alexmercerind/media_kit.git) - Android package providing audio (only) native libraries for package:media_kit.
+1. [media_kit_libs_ios_audio](https://github.com/alexmercerind/media_kit.git) - iOS package providing audio native libraries for package:media_kit.
+1. [media_kit_libs_linux](https://github.com/alexmercerind/media_kit.git) - GNU/Linux dependency package for package:media_kit. Necessary for initialization.
+1. [media_kit_libs_macos_audio](https://github.com/alexmercerind/media_kit.git) - macOS package providing audio native libraries for package:media_kit.
+1. [media_kit_libs_windows_audio](https://github.com/alexmercerind/media_kit.git) - Windows package providing audio (only) native libraries for package:media_kit.
1. [metadata_god](https://github.com/KRTirtho/metadata_god) - Plugin for retrieving and writing audio tags/metadata from audio files
1. [mime](https://pub.dev/packages/mime) - Utilities for handling media (MIME) types, including determining a type from a file extension and file contents.
1. [package_info_plus](https://plus.fluttercommunity.dev/) - Flutter plugin for querying information about the application package, such as CFBundleVersion on iOS or versionCode on Android.
@@ -175,54 +234,43 @@ But why? You can learn about it [here](https://dev.to/krtirtho/choosing-open-sou
1. [path](https://pub.dev/packages/path) - A string-based path manipulation library. All of the path operations you know and love, with solid support for Windows, POSIX (Linux and Mac OS X), and the web.
1. [path_provider](https://pub.dev/packages/path_provider) - Flutter plugin for getting commonly used locations on host platform file systems, such as the temp and app data directories.
1. [permission_handler](https://pub.dev/packages/permission_handler) - Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
-1. [pocketbase](https://pub.dev/packages/pocketbase) - Multi-platform Dart SDK for PocketBase, an open source realtime backend in 1 file.
1. [popover](https://github.com/minikin/popover) - A popover is a transient view that appears above other content onscreen when you tap a control or in an area.
-1. [queue](https://github.com/rknell/dart_queue) - Queue up futures from multiple sources and await their return anywhere in your code.
1. [scroll_to_index](https://github.com/quire-io/scroll-to-index) - Scroll to a specific child of any scrollable widget in Flutter
1. [shared_preferences](https://pub.dev/packages/shared_preferences) - Flutter plugin for reading and writing simple key-value pairs. Wraps NSUserDefaults on iOS and SharedPreferences on Android.
+1. [sidebarx](https://github.com/Frezyx/sidebarx) - flutter multiplatform navigation sidebar / side navigationbar / drawer widget
1. [skeleton_text](https://github.com/101Loop/Skeleton-Text) - A package that provides an easy way to add skeleton text loading animation in Flutter project. This project is a part of 101Loop community.
-1. [tuple](https://pub.dev/packages/tuple) - A library providing a tuple data structure.
+1. [smtc_windows](https://github.com/KRTirtho/smtc_windows) - Windows `SystemMediaTransportControls` implementation for Flutter giving access to Windows OS Media Control applet.
+1. [spotify](https://github.com/rinukkusu/spotify-dart) - An incomplete dart library for interfacing with the Spotify Web API.
+1. [system_theme](https://pub.dev/packages/system_theme) - A plugin to get the current system theme info. Supports Android, Web, Windows, Linux and macOS
+1. [titlebar_buttons](https://github.com/gtk-flutter/titlebar_buttons) - A package which provides most of the titlebar buttons from windows, linux and macos.
1. [url_launcher](https://pub.dev/packages/url_launcher) - Flutter plugin for launching a URL. Supports web, phone, SMS, and email schemes.
1. [uuid](https://github.com/Daegalus/dart-uuid) - RFC4122 (v1, v4, v5) UUID Generator and Parser for all Dart platforms (Web, VM, Flutter)
1. [version](https://github.com/dartninja/version) - Provides a simple class for parsing and comparing semantic versions as defined by http://semver.org/
1. [visibility_detector](https://pub.dev/packages/visibility_detector) - A widget that detects the visibility of its child and notifies a callback.
1. [window_manager](https://github.com/leanflutter/window_manager) - This plugin allows Flutter desktop apps to resizing and repositioning the window.
+1. [piped_client](https://github.com/KRTirtho/piped_client) - API Client for piped.video
+1. [supabase_flutter](https://supabase.com) - Flutter integration for Supabase. This package makes it simple for developers to build secure and scalable products.
+1. [device_preview](https://github.com/aloisdeniel/flutter_device_preview) - Approximate how your Flutter app looks and performs on another device.
+1. [media_kit_native_event_loop](https://github.com/alexmercerind/media_kit) - Platform specific threaded event handling for media_kit. Enables support for higher number of concurrent instances.
+1. [dbus](https://github.com/canonical/dbus.dart) - A native Dart implementation of the D-Bus message bus client. This package allows Dart applications to directly access services on the Linux desktop.
+1. [background_downloader](https://pub.dev/packages/background_downloader) - A multi-platform background file downloader and uploader. Define the task, enqueue and monitor progress
+1. [duration](https://github.com/desktop-dart/duration) - Utilities to make working with 'Duration's easier. Formats duration in human readable form and also parses duration in human readable form to Dart's Duration.
+1. [disable_battery_optimization](https://github.com/pvsvamsi/Disable-Battery-Optimizations) - Flutter plugin to check and disable battery optimizations. Also shows custom steps to disable the optimizations in devices like mi, xiaomi, samsung, oppo, huawei, oneplus etc
1. [youtube_explode_dart](https://github.com/Hexer10/youtube_explode_dart) - A port in dart of the youtube explode library. Supports several API functions without the need of Youtube API Key.
1. [build_runner](https://pub.dev/packages/build_runner) - A build system for Dart code generation and modular compilation.
-1. [flutter_distributor](https://github.com/leanflutter/flutter_distributor) - A complete tool for packaging and publishing your Flutter apps.
+1. [envied_generator](https://github.com/petercinibulk/envied) - Generator for the Envied package. See https://pub.dev/packages/envied.
+1. [flutter_distributor](https://distributor.leanflutter.org) - A complete tool for packaging and publishing your Flutter apps.
1. [flutter_gen_runner](https://github.com/FlutterGen/flutter_gen) - The Flutter code generator for your assets, fonts, colors, … — Get rid of all String-based APIs.
1. [flutter_launcher_icons](https://github.com/fluttercommunity/flutter_launcher_icons) - A package which simplifies the task of updating your Flutter app's launcher icon.
1. [flutter_lints](https://pub.dev/packages/flutter_lints) - Recommended lints for Flutter apps, packages, and plugins to encourage good coding practices.
1. [hive_generator](https://github.com/hivedb/hive/tree/master/hive_generator) - Extension for Hive. Automatically generates TypeAdapters to store any class.
+1. [json_serializable](https://pub.dev/packages/json_serializable) - Automatically generate code for converting to and from JSON by annotating Dart classes.
1. [pub_api_client](https://github.com/leoafarias/pub_api_client) - An API Client for Pub to interact with public package information.
1. [pubspec_parse](https://pub.dev/packages/pubspec_parse) - Simple package for parsing pubspec.yaml files with a type-safe API and rich error reporting.
1. [catcher](https://github.com/jhomlala/catcher) - Plugin for error catching which provides multiple handlers for dealing with errors when they are not caught by the developer.
-1. [platform_ui](https://github.com/KRTirtho/platform_ui) - Platform specific Widgets and UI toolkit
-1. [spotify](https://github.com/rinukkusu/spotify-dart) - An incomplete dart library for interfacing with the Spotify Web API.
+1. [flutter_desktop_tools](https://github.com/KRTirtho/flutter_desktop_tools) - Essential collection of tools for flutter desktop app development
1. [window_size](https://github.com/google/flutter-desktop-embedding.git) - Allows resizing and repositioning the window containing Flutter.
-# The team
+
-- [Kingkor Roy Tirtho](https://github.com/KRTirtho) - The Founder, Maintainer and Lead Developer
-- [Owen Conor](https://github.com/owencz1998) - The Cool Discord Moderator
-- [Piotr Rogowski](https://github.com/karniv00l) - The MacOS Developer
-- [RaptaG](https://github.com/raptag) - The GitHub Moderator and Community Manager
-- [Rusty Apple](https://github.com/RustyApple) - The Mysterious Unknown Guy
-
-# Social platforms
-
-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.
-
-© 2023 Spotube
-
-
-[win32-dlink]: https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-windows-x86_64-setup.exe
-[deb-dlink]: https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-linux-x86_64.deb
-[rpm-dlink]: https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-linux-x86_64.rpm
-[linux-dlink]: https://github.com/KRTirtho/spotube/releases/latest
-[appimage-dlink]: https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-linux-x86_64.AppImage
-[mac-dlink]: https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-macos-x86_64.dmg
-[android-dlink]: https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-android-all-arch.apk
-[fdroid-dlink]: https://f-droid.org/packages/oss.krtirtho.spotube/
-
-[wiki-installation-instructions]: https://github.com/KRTirtho/spotube/wiki/Installation-Instrcutions
+© Copyright Spotube 2023
diff --git a/analysis_options.yaml b/analysis_options.yaml
index d1b7c95f..4f0718e4 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -28,3 +28,7 @@ linter:
# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
+analyzer:
+ enable-experiment:
+ - records
+ - patterns
\ No newline at end of file
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 1d519014..d05a90a1 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -34,6 +34,8 @@ if (keystorePropertiesFile.exists()) {
android {
compileSdkVersion 33
+ ndkVersion "21.4.7075529"
+
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
@@ -50,7 +52,7 @@ android {
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "oss.krtirtho.spotube"
- minSdkVersion 19
+ minSdkVersion 24
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
@@ -77,6 +79,17 @@ flutter {
}
dependencies {
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
+ implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
+ constraints {
+ implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version") {
+ because("kotlin-stdlib-jdk7 is now a part of kotlin-stdlib")
+ }
+ implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version") {
+ because("kotlin-stdlib-jdk8 is now a part of kotlin-stdlib")
+ }
+ }
+ implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
+
+ // other deps so just ignore
implementation 'com.android.support:multidex:2.0.1'
}
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 523f66b9..f47bab2e 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -24,7 +24,7 @@
android:requestLegacyExternalStorage="true"
>
-
+
+
-
-
+
+
diff --git a/android/app/src/main/res/drawable-hdpi-v31/android12branding.png b/android/app/src/main/res/drawable-hdpi-v31/android12branding.png
new file mode 100644
index 00000000..9e62c813
Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi-v31/android12branding.png differ
diff --git a/android/app/src/main/res/drawable-hdpi/android12splash.png b/android/app/src/main/res/drawable-hdpi/android12splash.png
new file mode 100644
index 00000000..0d4e1c68
Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/android12splash.png differ
diff --git a/android/app/src/main/res/drawable-hdpi/branding.png b/android/app/src/main/res/drawable-hdpi/branding.png
new file mode 100644
index 00000000..9e62c813
Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/branding.png differ
diff --git a/android/app/src/main/res/drawable-hdpi/splash.png b/android/app/src/main/res/drawable-hdpi/splash.png
new file mode 100644
index 00000000..0979b5e4
Binary files /dev/null and b/android/app/src/main/res/drawable-hdpi/splash.png differ
diff --git a/android/app/src/main/res/drawable-mdpi-v31/android12branding.png b/android/app/src/main/res/drawable-mdpi-v31/android12branding.png
new file mode 100644
index 00000000..80579983
Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi-v31/android12branding.png differ
diff --git a/android/app/src/main/res/drawable-mdpi/android12splash.png b/android/app/src/main/res/drawable-mdpi/android12splash.png
new file mode 100644
index 00000000..5d9760d4
Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/android12splash.png differ
diff --git a/android/app/src/main/res/drawable-mdpi/branding.png b/android/app/src/main/res/drawable-mdpi/branding.png
new file mode 100644
index 00000000..80579983
Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/branding.png differ
diff --git a/android/app/src/main/res/drawable-mdpi/splash.png b/android/app/src/main/res/drawable-mdpi/splash.png
new file mode 100644
index 00000000..c5e4aca0
Binary files /dev/null and b/android/app/src/main/res/drawable-mdpi/splash.png differ
diff --git a/android/app/src/main/res/drawable-night-hdpi-v31/android12branding.png b/android/app/src/main/res/drawable-night-hdpi-v31/android12branding.png
new file mode 100644
index 00000000..9e62c813
Binary files /dev/null and b/android/app/src/main/res/drawable-night-hdpi-v31/android12branding.png differ
diff --git a/android/app/src/main/res/drawable-night-hdpi/android12splash.png b/android/app/src/main/res/drawable-night-hdpi/android12splash.png
new file mode 100644
index 00000000..0d4e1c68
Binary files /dev/null and b/android/app/src/main/res/drawable-night-hdpi/android12splash.png differ
diff --git a/android/app/src/main/res/drawable-night-mdpi-v31/android12branding.png b/android/app/src/main/res/drawable-night-mdpi-v31/android12branding.png
new file mode 100644
index 00000000..80579983
Binary files /dev/null and b/android/app/src/main/res/drawable-night-mdpi-v31/android12branding.png differ
diff --git a/android/app/src/main/res/drawable-night-mdpi/android12splash.png b/android/app/src/main/res/drawable-night-mdpi/android12splash.png
new file mode 100644
index 00000000..5d9760d4
Binary files /dev/null and b/android/app/src/main/res/drawable-night-mdpi/android12splash.png differ
diff --git a/android/app/src/main/res/drawable-night-xhdpi-v31/android12branding.png b/android/app/src/main/res/drawable-night-xhdpi-v31/android12branding.png
new file mode 100644
index 00000000..0bcf138d
Binary files /dev/null and b/android/app/src/main/res/drawable-night-xhdpi-v31/android12branding.png differ
diff --git a/android/app/src/main/res/drawable-night-xhdpi/android12splash.png b/android/app/src/main/res/drawable-night-xhdpi/android12splash.png
new file mode 100644
index 00000000..8e5ceb0a
Binary files /dev/null and b/android/app/src/main/res/drawable-night-xhdpi/android12splash.png differ
diff --git a/android/app/src/main/res/drawable-night-xxhdpi-v31/android12branding.png b/android/app/src/main/res/drawable-night-xxhdpi-v31/android12branding.png
new file mode 100644
index 00000000..c7d01776
Binary files /dev/null and b/android/app/src/main/res/drawable-night-xxhdpi-v31/android12branding.png differ
diff --git a/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png b/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png
new file mode 100644
index 00000000..fb89da37
Binary files /dev/null and b/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png differ
diff --git a/android/app/src/main/res/drawable-night-xxxhdpi-v31/android12branding.png b/android/app/src/main/res/drawable-night-xxxhdpi-v31/android12branding.png
new file mode 100644
index 00000000..5477b799
Binary files /dev/null and b/android/app/src/main/res/drawable-night-xxxhdpi-v31/android12branding.png differ
diff --git a/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png b/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png
new file mode 100644
index 00000000..38e4a12c
Binary files /dev/null and b/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png differ
diff --git a/android/app/src/main/res/drawable-v21/background.png b/android/app/src/main/res/drawable-v21/background.png
new file mode 100644
index 00000000..203fc77a
Binary files /dev/null and b/android/app/src/main/res/drawable-v21/background.png differ
diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml
index f74085f3..52e8749e 100644
--- a/android/app/src/main/res/drawable-v21/launch_background.xml
+++ b/android/app/src/main/res/drawable-v21/launch_background.xml
@@ -1,12 +1,12 @@
-
-
-
-
-
+ -
+
+
+ -
+
+
+ -
+
+
diff --git a/android/app/src/main/res/drawable-xhdpi-v31/android12branding.png b/android/app/src/main/res/drawable-xhdpi-v31/android12branding.png
new file mode 100644
index 00000000..0bcf138d
Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi-v31/android12branding.png differ
diff --git a/android/app/src/main/res/drawable-xhdpi/android12splash.png b/android/app/src/main/res/drawable-xhdpi/android12splash.png
new file mode 100644
index 00000000..8e5ceb0a
Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/android12splash.png differ
diff --git a/android/app/src/main/res/drawable-xhdpi/branding.png b/android/app/src/main/res/drawable-xhdpi/branding.png
new file mode 100644
index 00000000..0bcf138d
Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/branding.png differ
diff --git a/android/app/src/main/res/drawable-xhdpi/splash.png b/android/app/src/main/res/drawable-xhdpi/splash.png
new file mode 100644
index 00000000..41222c6c
Binary files /dev/null and b/android/app/src/main/res/drawable-xhdpi/splash.png differ
diff --git a/android/app/src/main/res/drawable-xxhdpi-v31/android12branding.png b/android/app/src/main/res/drawable-xxhdpi-v31/android12branding.png
new file mode 100644
index 00000000..c7d01776
Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi-v31/android12branding.png differ
diff --git a/android/app/src/main/res/drawable-xxhdpi/android12splash.png b/android/app/src/main/res/drawable-xxhdpi/android12splash.png
new file mode 100644
index 00000000..fb89da37
Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/android12splash.png differ
diff --git a/android/app/src/main/res/drawable-xxhdpi/branding.png b/android/app/src/main/res/drawable-xxhdpi/branding.png
new file mode 100644
index 00000000..c7d01776
Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/branding.png differ
diff --git a/android/app/src/main/res/drawable-xxhdpi/splash.png b/android/app/src/main/res/drawable-xxhdpi/splash.png
new file mode 100644
index 00000000..5ab19d32
Binary files /dev/null and b/android/app/src/main/res/drawable-xxhdpi/splash.png differ
diff --git a/android/app/src/main/res/drawable-xxxhdpi-v31/android12branding.png b/android/app/src/main/res/drawable-xxxhdpi-v31/android12branding.png
new file mode 100644
index 00000000..5477b799
Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi-v31/android12branding.png differ
diff --git a/android/app/src/main/res/drawable-xxxhdpi/android12splash.png b/android/app/src/main/res/drawable-xxxhdpi/android12splash.png
new file mode 100644
index 00000000..38e4a12c
Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/android12splash.png differ
diff --git a/android/app/src/main/res/drawable-xxxhdpi/branding.png b/android/app/src/main/res/drawable-xxxhdpi/branding.png
new file mode 100644
index 00000000..5477b799
Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/branding.png differ
diff --git a/android/app/src/main/res/drawable-xxxhdpi/splash.png b/android/app/src/main/res/drawable-xxxhdpi/splash.png
new file mode 100644
index 00000000..a6d40b89
Binary files /dev/null and b/android/app/src/main/res/drawable-xxxhdpi/splash.png differ
diff --git a/android/app/src/main/res/drawable/background.png b/android/app/src/main/res/drawable/background.png
new file mode 100644
index 00000000..203fc77a
Binary files /dev/null and b/android/app/src/main/res/drawable/background.png differ
diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml
index 304732f8..52e8749e 100644
--- a/android/app/src/main/res/drawable/launch_background.xml
+++ b/android/app/src/main/res/drawable/launch_background.xml
@@ -1,12 +1,12 @@
-
-
-
-
-
+ -
+
+
+ -
+
+
+ -
+
+
diff --git a/android/app/src/main/res/values-night-v31/styles.xml b/android/app/src/main/res/values-night-v31/styles.xml
new file mode 100644
index 00000000..96980835
--- /dev/null
+++ b/android/app/src/main/res/values-night-v31/styles.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/android/app/src/main/res/values-v31/styles.xml b/android/app/src/main/res/values-v31/styles.xml
new file mode 100644
index 00000000..981a07a9
--- /dev/null
+++ b/android/app/src/main/res/values-v31/styles.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml
index d460d1e9..0fdc7036 100644
--- a/android/app/src/main/res/values/styles.xml
+++ b/android/app/src/main/res/values/styles.xml
@@ -5,6 +5,10 @@
- @drawable/launch_background
+ - false
+ - false
+ - false
+ - shortEdges
+
diff --git a/macos/Runner/Release.entitlements b/macos/Runner/Release.entitlements
index db95233f..4a447fde 100644
--- a/macos/Runner/Release.entitlements
+++ b/macos/Runner/Release.entitlements
@@ -4,10 +4,16 @@
com.apple.security.app-sandbox
- com.apple.security.network.client
-
com.apple.security.network.server
+ com.apple.security.network.client
+
+
+
diff --git a/metadata/en-US/full_description.txt b/metadata/en-US/full_description.txt
index db8cd81c..a30d10c7 100644
--- a/metadata/en-US/full_description.txt
+++ b/metadata/en-US/full_description.txt
@@ -2,14 +2,13 @@ Open source Spotify client that doesn't require Premium nor uses Electron! Avail
Features:
-* Open source/libre software
-* Anonymous/guest login
-* Cross platform support
-* No telemetry, diagnostics or user data collection
-* Lightweight & resource-friendly
-* Native performance (Thanks to Flutter+Skia)
-* Playback control is done locally instead of on the server
-* Small size & less data usage
-* 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.)
-* Time synced lyrics
+* No ads, thanks to the use of public & free Spotify and YT Music APIs¹
* Downloadable tracks
+* Cross-platform support
+* Small size & less data usage
+* Anonymous/guest login
+* Time synced lyrics
+* No telemetry, diagnostics or user data collection
+* Native performance
+* Open source/libre software
+* Playback control is done locally, not on the server
diff --git a/metadata/en-US/images/phoneScreenshots/screenshot-home-dark.jpg b/metadata/en-US/images/phoneScreenshots/screenshot-home-dark.jpg
index 2912649c..bdad74f8 100644
Binary files a/metadata/en-US/images/phoneScreenshots/screenshot-home-dark.jpg and b/metadata/en-US/images/phoneScreenshots/screenshot-home-dark.jpg differ
diff --git a/metadata/en-US/images/phoneScreenshots/screenshot-home-light.jpg b/metadata/en-US/images/phoneScreenshots/screenshot-home-light.jpg
new file mode 100644
index 00000000..930d496a
Binary files /dev/null and b/metadata/en-US/images/phoneScreenshots/screenshot-home-light.jpg differ
diff --git a/metadata/en-US/images/phoneScreenshots/screenshot-lockscreen.jpg b/metadata/en-US/images/phoneScreenshots/screenshot-lockscreen.jpg
index 402a4fb0..a826c68c 100644
Binary files a/metadata/en-US/images/phoneScreenshots/screenshot-lockscreen.jpg and b/metadata/en-US/images/phoneScreenshots/screenshot-lockscreen.jpg differ
diff --git a/metadata/en-US/images/phoneScreenshots/screenshot-player-view.jpg b/metadata/en-US/images/phoneScreenshots/screenshot-player-view.jpg
index 60b0a663..3bad761e 100644
Binary files a/metadata/en-US/images/phoneScreenshots/screenshot-player-view.jpg and b/metadata/en-US/images/phoneScreenshots/screenshot-player-view.jpg differ
diff --git a/metadata/en-US/images/phoneScreenshots/screentshot-home-light.jpg b/metadata/en-US/images/phoneScreenshots/screentshot-home-light.jpg
deleted file mode 100644
index 021c8e2d..00000000
Binary files a/metadata/en-US/images/phoneScreenshots/screentshot-home-light.jpg and /dev/null differ
diff --git a/pubspec.lock b/pubspec.lock
index d059d5e5..e830beba 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -9,14 +9,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "52.0.0"
- adwaita:
- dependency: "direct main"
- description:
- name: adwaita
- sha256: "535781747357779fa2830815e0a1b6b7888c8c538194ba73ac4fc8d82412baec"
- url: "https://pub.dev"
- source: hosted
- version: "0.5.2"
analyzer:
dependency: transitive
description:
@@ -25,6 +17,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "5.4.0"
+ app_links:
+ dependency: transitive
+ description:
+ name: app_links
+ sha256: d572dcdff49c4cfcfa6f315e2683e518ec6eb54e084d01e51d9631a4dcc1b5e8
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.4.2"
app_package_maker:
dependency: transitive
description:
@@ -93,26 +93,26 @@ packages:
dependency: transitive
description:
name: archive
- sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d
+ sha256: "80e5141fafcb3361653ce308776cfd7d45e6e9fbb429e14eec571382c0c5fecb"
url: "https://pub.dev"
source: hosted
- version: "3.3.6"
+ version: "3.3.2"
args:
dependency: "direct main"
description:
name: args
- sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611"
+ sha256: c372bb384f273f0c2a8aaaa226dad84dc27c8519a691b888725dec59518ad53a
url: "https://pub.dev"
source: hosted
- version: "2.3.2"
+ version: "2.4.1"
async:
dependency: "direct main"
description:
name: async
- sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0
+ sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
url: "https://pub.dev"
source: hosted
- version: "2.10.0"
+ version: "2.11.0"
audio_service:
dependency: "direct main"
description:
@@ -145,62 +145,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.1.13"
- audioplayers:
- dependency: "direct main"
- description:
- name: audioplayers
- sha256: "16451eab798b23ad9307aef6f9ca62bb8fb06542af8810eead0d236d3fd40a42"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.1"
- audioplayers_android:
- dependency: transitive
- description:
- name: audioplayers_android
- sha256: b2c833e6f718b6b030454e329931229afafe9327fdb002874dd544dc8bf2484d
- url: "https://pub.dev"
- source: hosted
- version: "2.0.0"
- audioplayers_darwin:
- dependency: transitive
- description:
- name: audioplayers_darwin
- sha256: e7a3c8759bf11ecfe4b20df338bf9f3d37c7719a5761c46a3833aba0ceeaacff
- url: "https://pub.dev"
- source: hosted
- version: "3.0.1"
- audioplayers_linux:
- dependency: transitive
- description:
- name: audioplayers_linux
- sha256: e95b65e1f4d4764601dac5e65f8d8186fc29401043ab020f1dacec483d708707
- url: "https://pub.dev"
- source: hosted
- version: "1.0.4"
- audioplayers_platform_interface:
- dependency: transitive
- description:
- name: audioplayers_platform_interface
- sha256: "178581a44cb685fd798d2108111d2e98cca3400e30b9c3a05546f124fb37f600"
- url: "https://pub.dev"
- source: hosted
- version: "4.0.0"
- audioplayers_web:
- dependency: transitive
- description:
- name: audioplayers_web
- sha256: "859ba09be2a57e57a787273f18c8cf0d9b61383870c5ee4b5632fe9adbc37edf"
- url: "https://pub.dev"
- source: hosted
- version: "2.2.0"
- audioplayers_windows:
- dependency: transitive
- description:
- name: audioplayers_windows
- sha256: "622e01c4c357c2aaf1b956c3a0f89d97c3cb40315c03f16e3b6c2a31ff9c38bc"
- url: "https://pub.dev"
- source: hosted
- version: "1.1.3"
auto_size_text:
dependency: "direct main"
description:
@@ -209,14 +153,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.0"
- badges:
+ background_downloader:
dependency: "direct main"
description:
- name: badges
- sha256: "727580d938b7a1ff47ea42df730d581415606b4224cfa708671c10287f8d3fe6"
+ name: background_downloader
+ sha256: "5e38a1d5d88a5cfea35c44cb376b89427688070518471ee52f6b04d07d85668e"
url: "https://pub.dev"
source: hosted
- version: "2.0.3"
+ version: "7.4.0"
boolean_selector:
dependency: transitive
description:
@@ -297,6 +241,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "8.4.3"
+ buttons_tabbar:
+ dependency: "direct main"
+ description:
+ name: buttons_tabbar
+ sha256: d8a53cd3be0ce5b662d01378b1cd842eb44ee68da5abeeff3c081ee3bf614160
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.3.6"
cached_network_image:
dependency: "direct main"
description:
@@ -326,18 +278,26 @@ packages:
description:
path: "."
ref: HEAD
- resolved-ref: "5ccf7c0d8bbb07329667cff561aede1a9bee4934"
+ resolved-ref: "5c91db2578abd0c1609dc409ee3daee168d8b20e"
url: "https://github.com/ThexXTURBOXx/catcher"
source: git
- version: "0.7.1"
+ version: "0.8.0"
+ change_case:
+ dependency: transitive
+ description:
+ name: change_case
+ sha256: f4e08feaa845e75e4f5ad2b0e15f24813d7ea6c27e7b78252f0c17f752cf1157
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.0"
characters:
dependency: transitive
description:
name: characters
- sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c
+ sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
url: "https://pub.dev"
source: hosted
- version: "1.2.1"
+ version: "1.3.0"
checked_yaml:
dependency: transitive
description:
@@ -350,10 +310,10 @@ packages:
dependency: transitive
description:
name: cli_util
- sha256: "66f86e916d285c1a93d3b79587d94bd71984a66aac4ff74e524cfa7877f1395c"
+ sha256: b8db3080e59b2503ca9e7922c3df2072cf13992354d5e944074ffa836fba43b7
url: "https://pub.dev"
source: hosted
- version: "0.3.5"
+ version: "0.4.0"
clock:
dependency: transitive
description:
@@ -374,10 +334,10 @@ packages:
dependency: "direct main"
description:
name: collection
- sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0
+ sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
url: "https://pub.dev"
source: hosted
- version: "1.17.0"
+ version: "1.17.1"
color:
dependency: transitive
description:
@@ -394,6 +354,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.0"
+ connectivity_plus:
+ dependency: transitive
+ description:
+ name: connectivity_plus
+ sha256: "8599ae9edca5ff96163fca3e36f8e481ea917d1e71cdad912c084b5579913f34"
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.0.1"
+ connectivity_plus_platform_interface:
+ dependency: transitive
+ description:
+ name: connectivity_plus_platform_interface
+ sha256: cf1d1c28f4416f8c654d7dc3cd638ec586076255d407cef3ddbdaf178272a71a
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.2.4"
convert:
dependency: transitive
description:
@@ -426,6 +402,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.5"
+ curved_navigation_bar:
+ dependency: "direct main"
+ description:
+ name: curved_navigation_bar
+ sha256: ea6412d00c5d83501bbf1cf9d1ac2ff11a20fbaf910c103c95ace7de82910334
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.3"
dart_style:
dependency: transitive
description:
@@ -450,14 +434,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.7.8"
+ device_frame:
+ dependency: transitive
+ description:
+ name: device_frame
+ sha256: afe76182aec178d171953d9b4a50a43c57c7cf3c77d8b09a48bf30c8fa04dd9d
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.0"
device_info_plus:
dependency: transitive
description:
name: device_info_plus
- sha256: "1d6e5a61674ba3a68fb048a7c7b4ff4bebfed8d7379dbe8f2b718231be9a7c95"
+ sha256: "9b1a0c32b2a503f8fe9f8764fac7b5fcd4f6bd35d8f49de5350bccf9e2a33b8a"
url: "https://pub.dev"
source: hosted
- version: "8.1.0"
+ version: "9.0.0"
device_info_plus_platform_interface:
dependency: transitive
description:
@@ -466,14 +458,30 @@ packages:
url: "https://pub.dev"
source: hosted
version: "7.0.0"
+ device_preview:
+ dependency: "direct main"
+ description:
+ name: device_preview
+ sha256: "2f097bf31b929e15e6756dbe0ec1bcb63952ab9ed51c25dc5a2c722d2b21fdaf"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.0"
dio:
dependency: transitive
description:
name: dio
- sha256: "7d328c4d898a61efc3cd93655a0955858e29a0aa647f0f9e02d59b3bb275e2e8"
+ sha256: "347d56c26d63519552ef9a569f2a593dda99a81fdbdff13c584b7197cfe05059"
url: "https://pub.dev"
source: hosted
- version: "4.0.6"
+ version: "5.1.2"
+ disable_battery_optimization:
+ dependency: "direct main"
+ description:
+ name: disable_battery_optimization
+ sha256: b3441975ab2a3ab0c19ed78e909a88d245ce689d43d17f9b23582b1ed41c047b
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.0+1"
dots_indicator:
dependency: transitive
description:
@@ -482,30 +490,30 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.0"
+ duration:
+ dependency: "direct main"
+ description:
+ name: duration
+ sha256: d0b29d0a345429e3986ac56d60e4aef65b37d11e653022b2b9a4b361332b777f
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.12"
envied:
dependency: "direct main"
description:
name: envied
- sha256: d5d978fbd578b5c00123003609c39185e0b1ddf9d2ac460d710dd0eb2fc223d7
+ sha256: "60d3f5606c7b35bc6ef493e650d916b34351d8af2e58b7ac45881ba59dfcf039"
url: "https://pub.dev"
source: hosted
- version: "0.3.0"
+ version: "0.3.0+3"
envied_generator:
dependency: "direct dev"
description:
name: envied_generator
- sha256: "6c5a98c27c5eae925807692eb252ccac2b8e81f09bace1f07207c47dfb6a4eb0"
+ sha256: dfdbe5dc52863e54c036a4c4042afbdf1bd528cb4c1e638ecba26228ba72e9e5
url: "https://pub.dev"
source: hosted
- version: "0.3.0"
- fading_edge_scrollview:
- dependency: transitive
- description:
- name: fading_edge_scrollview
- sha256: c25c2231652ce774cc31824d0112f11f653881f43d7f5302c05af11942052031
- url: "https://pub.dev"
- source: hosted
- version: "3.0.0"
+ version: "0.3.0+3"
fake_async:
dependency: transitive
description:
@@ -534,10 +542,10 @@ packages:
dependency: "direct main"
description:
name: file_picker
- sha256: d090ae03df98b0247b82e5928f44d1b959867049d18d73635e2e0bc3f49542b9
+ sha256: c7a8e25ca60e7f331b153b0cb3d405828f18d3e72a6fa1d9440c86556fffc877
url: "https://pub.dev"
source: hosted
- version: "5.2.5"
+ version: "5.3.0"
fixnum:
dependency: transitive
description:
@@ -550,26 +558,26 @@ packages:
dependency: "direct main"
description:
name: fl_query
- sha256: b119e0d7e4cb615780f6cab00e7b40f88f8f549d9f8d20f6e1076e08cbf97c42
+ sha256: "64f482fc09eb1166adca232f68772b2b11c616d88bce3208b2753c940ebc9f71"
url: "https://pub.dev"
source: hosted
- version: "1.0.0-alpha.2"
+ version: "1.0.0-alpha.3"
+ fl_query_connectivity_plus_adapter:
+ dependency: "direct main"
+ description:
+ name: fl_query_connectivity_plus_adapter
+ sha256: a0e69615e25f6dfe74d1e5a0909aeeb865e93c65dd4e0b236f0846f9e54f758b
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.1.0-alpha.2"
fl_query_hooks:
dependency: "direct main"
description:
name: fl_query_hooks
- sha256: "9a4263cc5e1ef6e246089602256011172a9d3be212c41c08d67bc365ce6fec22"
+ sha256: b0ffc81fb047cbcedd9766776f9c72b95382730ce173226f0695c3f45774b0bc
url: "https://pub.dev"
source: hosted
- version: "1.0.0-alpha.2"
- fluent_ui:
- dependency: "direct main"
- description:
- name: fluent_ui
- sha256: ff172e78492faad2c9eca01b24ea8341f2bd6e1ce6986b15d4886fd2e7c3fb09
- url: "https://pub.dev"
- source: hosted
- version: "4.3.0"
+ version: "1.0.0-alpha.3"
fluentui_system_icons:
dependency: "direct main"
description:
@@ -615,6 +623,15 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.3.0"
+ flutter_desktop_tools:
+ dependency: "direct main"
+ description:
+ path: "."
+ ref: "1f0bec3283626dcbd8ee2f54e238d096d8dea50e"
+ resolved-ref: "1f0bec3283626dcbd8ee2f54e238d096d8dea50e"
+ url: "https://github.com/KRTirtho/flutter_desktop_tools.git"
+ source: git
+ version: "0.0.1"
flutter_distributor:
dependency: "direct dev"
description:
@@ -623,6 +640,11 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.0.2"
+ flutter_driver:
+ dependency: transitive
+ description: flutter
+ source: sdk
+ version: "0.0.0"
flutter_feather_icons:
dependency: "direct main"
description:
@@ -667,10 +689,10 @@ packages:
dependency: "direct dev"
description:
name: flutter_launcher_icons
- sha256: ce0e501cfc258907842238e4ca605e74b7fd1cdf04b3b43e86c43f3e40a1592c
+ sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea"
url: "https://pub.dev"
source: hosted
- version: "0.11.0"
+ version: "0.13.1"
flutter_lints:
dependency: "direct dev"
description:
@@ -680,7 +702,7 @@ packages:
source: hosted
version: "2.0.1"
flutter_localizations:
- dependency: transitive
+ dependency: "direct main"
description: flutter
source: sdk
version: "0.0.0"
@@ -692,14 +714,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.0.2"
+ flutter_native_splash:
+ dependency: "direct main"
+ description:
+ name: flutter_native_splash
+ sha256: af665ef80a213a9ed502845a3d7a61b9acca4100ee7e9f067a7440bc3acd6730
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.2.19"
flutter_plugin_android_lifecycle:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
- sha256: "60fc7b78455b94e6de2333d2f95196d32cf5c22f4b0b0520a628804cb463503b"
+ sha256: "96af49aa6b57c10a312106ad6f71deed5a754029c24789bbf620ba784f0bd0b0"
url: "https://pub.dev"
source: hosted
- version: "2.0.7"
+ version: "2.0.14"
flutter_riverpod:
dependency: "direct main"
description:
@@ -806,6 +836,19 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.2.0"
+ fuchsia_remote_debug_protocol:
+ dependency: transitive
+ description: flutter
+ source: sdk
+ version: "0.0.0"
+ functions_client:
+ dependency: transitive
+ description:
+ name: functions_client
+ sha256: "26059c5fb000ffd0986ae3144d43c2a6f54931610fd61c2584e18e308c7eaa52"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.2.1"
fuzzywuzzy:
dependency: "direct main"
description:
@@ -830,6 +873,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "6.0.6"
+ gotrue:
+ dependency: transitive
+ description:
+ name: gotrue
+ sha256: c08f5ac76dcae2dd06cc7f8e80a8ede12c66454fef06caac3b191c8c7a603811
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.7.1"
graphs:
dependency: transitive
description:
@@ -882,10 +933,10 @@ packages:
dependency: "direct main"
description:
name: html
- sha256: d9793e10dbe0e6c364f4c59bf3e01fb33a9b2a674bc7a1081693dba0614b6269
+ sha256: "58e3491f7bf0b6a4ea5110c0c688877460d1a6366731155c4a4580e7ded773e8"
url: "https://pub.dev"
source: hosted
- version: "0.15.1"
+ version: "0.15.3"
http:
dependency: "direct main"
description:
@@ -914,18 +965,23 @@ packages:
dependency: transitive
description:
name: image
- sha256: "8e9d133755c3e84c73288363e6343157c383a0c6c56fc51afcc5d4d7180306d6"
+ sha256: a72242c9a0ffb65d03de1b7113bc4e189686fc07c7147b8b41811d0dd0e0d9bf
url: "https://pub.dev"
source: hosted
- version: "3.3.0"
+ version: "4.0.17"
+ integration_test:
+ dependency: "direct dev"
+ description: flutter
+ source: sdk
+ version: "0.0.0"
intl:
- dependency: transitive
+ dependency: "direct main"
description:
name: intl
- sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91"
+ sha256: a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6
url: "https://pub.dev"
source: hosted
- version: "0.17.0"
+ version: "0.18.0"
introduction_screen:
dependency: "direct main"
description:
@@ -946,42 +1002,34 @@ packages:
dependency: transitive
description:
name: js
- sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7"
+ sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev"
source: hosted
- version: "0.6.5"
+ version: "0.6.7"
json_annotation:
dependency: "direct main"
description:
name: json_annotation
- sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317
+ sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467
url: "https://pub.dev"
source: hosted
- version: "4.8.0"
+ version: "4.8.1"
json_serializable:
- dependency: "direct main"
+ dependency: "direct dev"
description:
name: json_serializable
- sha256: dadc08bd61f72559f938dd08ec20dbfec6c709bba83515085ea943d2078d187a
+ sha256: "43793352f90efa5d8b251893a63d767b2f7c833120e3cc02adad55eefec04dc7"
url: "https://pub.dev"
source: hosted
- version: "6.6.1"
- libadwaita:
- dependency: "direct main"
- description:
- name: libadwaita
- sha256: de4dba194e6ba468af70988891164cc616126dc7ccbc4f42756851be93aa6de6
- url: "https://pub.dev"
- source: hosted
- version: "1.2.5"
- libadwaita_core:
+ version: "6.6.2"
+ jwt_decode:
dependency: transitive
description:
- name: libadwaita_core
- sha256: "1a7689e4130e96be4b0ec615863fded25cd86c2b95a682e7cec9659d420de37c"
+ name: jwt_decode
+ sha256: d2e9f68c052b2225130977429d30f187aa1981d789c76ad104a32243cfdebfbb
url: "https://pub.dev"
source: hosted
- version: "0.5.4"
+ version: "0.3.1"
lints:
dependency: transitive
description:
@@ -990,6 +1038,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.0.1"
+ local_notifier:
+ dependency: transitive
+ description:
+ name: local_notifier
+ sha256: cc855aa6362c8840e3d3b35b1c3b058a3a8becdb2b03d5a9aa3f3a1e861f0a03
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.1.5"
logger:
dependency: "direct main"
description:
@@ -1006,14 +1062,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.1.1"
- macos_ui:
- dependency: "direct main"
- description:
- name: macos_ui
- sha256: "2b31858b56d44e807cf192c58cf6660b584c997f4746496d4892a903c1c27a49"
- url: "https://pub.dev"
- source: hosted
- version: "1.9.1"
mailer:
dependency: transitive
description:
@@ -1022,22 +1070,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "6.0.0"
- marquee:
- dependency: "direct main"
- description:
- name: marquee
- sha256: "4b5243d2804373bdc25fc93d42c3b402d6ec1f4ee8d0bb72276edd04ae7addb8"
- url: "https://pub.dev"
- source: hosted
- version: "2.2.3"
matcher:
dependency: transitive
description:
name: matcher
- sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72"
+ sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
url: "https://pub.dev"
source: hosted
- version: "0.12.13"
+ version: "0.12.15"
material_color_utilities:
dependency: transitive
description:
@@ -1046,22 +1086,78 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.2.0"
+ media_kit:
+ dependency: "direct main"
+ description:
+ name: media_kit
+ sha256: d9a32b3f6eafdfbba6aff2e37045a3a80009b6dfbdeec638d51d85e8b254a6a2
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.0.7+1"
+ media_kit_libs_android_audio:
+ dependency: "direct main"
+ description:
+ name: media_kit_libs_android_audio
+ sha256: e16292bbb1d737ce026fa68154b2fcf5c6f88d6fa752bdb4c0d079c98a82b523
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.4"
+ media_kit_libs_ios_audio:
+ dependency: "direct main"
+ description:
+ name: media_kit_libs_ios_audio
+ sha256: bb18ed87e8a155fc1d2ee4bf59462ca04d02a0eeb38d0b454facee6d32441ce7
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.4"
+ media_kit_libs_linux:
+ dependency: "direct main"
+ description:
+ name: media_kit_libs_linux
+ sha256: "21acc71cbae3518b3aeef9023a6a3a3decb579a40153764333814987ccd61040"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.2"
+ media_kit_libs_macos_audio:
+ dependency: "direct main"
+ description:
+ name: media_kit_libs_macos_audio
+ sha256: b9f4a2995396fd5cc243901e618c0586d4f1781eecf2302999b77d6faee8b250
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.5"
+ media_kit_libs_windows_audio:
+ dependency: "direct main"
+ description:
+ name: media_kit_libs_windows_audio
+ sha256: f6ad5a1b910a6748a7350360756cd99a718fc9661a9583a7fd86a308d068dd81
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.3"
+ media_kit_native_event_loop:
+ dependency: "direct main"
+ description:
+ name: media_kit_native_event_loop
+ sha256: "521125e534603c3f603b93283db3938f557f33ecc383fbd62edd4beb3bf73747"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.4"
meta:
dependency: transitive
description:
name: meta
- sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42"
+ sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3"
url: "https://pub.dev"
source: hosted
- version: "1.8.0"
+ version: "1.9.1"
metadata_god:
dependency: "direct main"
description:
name: metadata_god
- sha256: "02de939fc2dcfdc959ed34768eecc97038b6e95ebaa3415f9f7582d71a2ad047"
+ sha256: "562c223d83a7bbf0a289ed0d5ed6a8cf8d94d673263203e9ff4930b44bd2f066"
url: "https://pub.dev"
source: hosted
- version: "0.4.1"
+ version: "0.5.0"
mime:
dependency: "direct main"
description:
@@ -1078,6 +1174,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.1"
+ nested:
+ dependency: transitive
+ description:
+ name: nested
+ sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.0"
+ nm:
+ dependency: transitive
+ description:
+ name: nm
+ sha256: "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.5.0"
oauth2:
dependency: transitive
description:
@@ -1130,10 +1242,10 @@ packages:
dependency: "direct main"
description:
name: path
- sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b
+ sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
url: "https://pub.dev"
source: hosted
- version: "1.8.2"
+ version: "1.8.3"
path_drawing:
dependency: transitive
description:
@@ -1194,10 +1306,10 @@ packages:
dependency: transitive
description:
name: path_provider_windows
- sha256: bcabbe399d4042b8ee687e17548d5d3f527255253b4a639f5f8d2094a9c2b45c
+ sha256: d3f80b32e83ec208ac95253e0cd4d298e104fbc63cb29c5c69edaed43b0c69d6
url: "https://pub.dev"
source: hosted
- version: "2.1.3"
+ version: "2.1.6"
pedantic:
dependency: transitive
description:
@@ -1254,6 +1366,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "5.1.0"
+ piped_client:
+ dependency: "direct main"
+ description:
+ name: piped_client
+ sha256: "8b96e1f9d8533c1da7eff7fbbd4bf188256fc76a20900d378b52be09418ea771"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.1.0"
platform:
dependency: transitive
description:
@@ -1262,39 +1382,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.1.0"
- platform_ui:
- dependency: "direct main"
- description:
- path: "."
- ref: "339ea7922d2f881d9a72b565aeebc7e2c4b22509"
- resolved-ref: "339ea7922d2f881d9a72b565aeebc7e2c4b22509"
- url: "https://github.com/KRTirtho/platform_ui.git"
- source: git
- version: "0.1.0"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
- sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a
+ sha256: "6a2128648c854906c53fa8e33986fc0247a1116122f9534dd20e3ab9e16a32bc"
url: "https://pub.dev"
source: hosted
- version: "2.1.3"
- pocketbase:
- dependency: "direct main"
- description:
- name: pocketbase
- sha256: "125e32fe39393cc54436ce518ccfd5649419f15879a1278599f2f58564e5231c"
- url: "https://pub.dev"
- source: hosted
- version: "0.7.1+1"
- pointycastle:
- dependency: transitive
- description:
- name: pointycastle
- sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346
- url: "https://pub.dev"
- source: hosted
- version: "3.6.2"
+ version: "2.1.4"
pool:
dependency: transitive
description:
@@ -1311,14 +1406,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.2.8+1"
- popover_gtk:
+ postgrest:
dependency: transitive
description:
- name: popover_gtk
- sha256: c293bfa3bcb9436fe189f20f6397199ce996ba40d4b081e26793adcf3ceac45b
+ name: postgrest
+ sha256: "7b91eb7b40621d07aaae687f47f3032f30e1b86a9ccebfcfca52d001223f8b6e"
url: "https://pub.dev"
source: hosted
- version: "0.2.6+3"
+ version: "1.2.4"
process:
dependency: transitive
description:
@@ -1327,6 +1422,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "4.2.4"
+ provider:
+ dependency: transitive
+ description:
+ name: provider
+ sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f
+ url: "https://pub.dev"
+ source: hosted
+ version: "6.0.5"
pub_api_client:
dependency: "direct dev"
description:
@@ -1367,14 +1470,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.22.0"
- queue:
- dependency: "direct main"
- description:
- name: queue
- sha256: "9a41ecadc15db79010108c06eae229a45c56b18db699760f34e8c9ac9b831ff9"
- url: "https://pub.dev"
- source: hosted
- version: "3.1.0+2"
quiver:
dependency: transitive
description:
@@ -1383,14 +1478,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.2.1"
- recase:
+ realtime_client:
dependency: transitive
description:
- name: recase
- sha256: e4eb4ec2dcdee52dcf99cb4ceabaffc631d7424ee55e56f280bc039737f89213
+ name: realtime_client
+ sha256: "0f2614f72e5639ddd7abc3dede336f23554f9f744d0b064d41009f9ca94a53d2"
url: "https://pub.dev"
source: hosted
- version: "4.1.0"
+ version: "1.0.4"
+ retry:
+ dependency: transitive
+ description:
+ name: retry
+ sha256: a8a1e475a100a0bdc73f529ca8ea1e9c9c76bec8ad86a1f47780139a34ce7aea
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.1.1"
riverpod:
dependency: transitive
description:
@@ -1407,6 +1510,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.27.7"
+ safe_local_storage:
+ dependency: transitive
+ description:
+ name: safe_local_storage
+ sha256: ede4eb6cb7d88a116b3d3bf1df70790b9e2038bc37cb19112e381217c74d9440
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.2"
screen_retriever:
dependency: transitive
description:
@@ -1415,14 +1526,6 @@ packages:
url: "https://pub.dev"
source: hosted
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:
dependency: "direct main"
description:
@@ -1435,66 +1538,66 @@ packages:
dependency: transitive
description:
name: sentry
- sha256: "81c1f32496ff04476d6ddfe5894215b1034d185301d2e3dffd272853392c5ea7"
+ sha256: "1c5498c8d1754dbf4fa51ca14d31c8c34ea0a0f897ff666ecd516dbd588dad6a"
url: "https://pub.dev"
source: hosted
- version: "6.20.1"
+ version: "7.5.2"
shared_preferences:
dependency: "direct main"
description:
name: shared_preferences
- sha256: "5949029e70abe87f75cfe59d17bf5c397619c4b74a099b10116baeb34786fad9"
+ sha256: "858aaa72d8f61637d64e776aca82e1c67e6d9ee07979123c5d17115031c1b13b"
url: "https://pub.dev"
source: hosted
- version: "2.0.17"
+ version: "2.1.0"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
- sha256: "955e9736a12ba776bdd261cf030232b30eadfcd9c79b32a3250dd4a494e8c8f7"
+ sha256: "8304d8a1f7d21a429f91dee552792249362b68a331ac5c3c1caf370f658873f6"
url: "https://pub.dev"
source: hosted
- version: "2.0.15"
+ version: "2.1.0"
shared_preferences_foundation:
dependency: transitive
description:
name: shared_preferences_foundation
- sha256: "2b55c18636a4edc529fa5cd44c03d3f3100c00513f518c5127c951978efcccd0"
+ sha256: cf2a42fb20148502022861f71698db12d937c7459345a1bdaa88fc91a91b3603
url: "https://pub.dev"
source: hosted
- version: "2.1.3"
+ version: "2.2.0"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
- sha256: f8ea038aa6da37090093974ebdcf4397010605fd2ff65c37a66f9d28394cb874
+ sha256: "9d387433ca65717bbf1be88f4d5bb18f10508917a8fa2fb02e0fd0d7479a9afa"
url: "https://pub.dev"
source: hosted
- version: "2.1.3"
+ version: "2.2.0"
shared_preferences_platform_interface:
dependency: transitive
description:
name: shared_preferences_platform_interface
- sha256: da9431745ede5ece47bc26d5d73a9d3c6936ef6945c101a5aca46f62e52c1cf3
+ sha256: fb5cf25c0235df2d0640ac1b1174f6466bd311f621574997ac59018a6664548d
url: "https://pub.dev"
source: hosted
- version: "2.1.0"
+ version: "2.2.0"
shared_preferences_web:
dependency: transitive
description:
name: shared_preferences_web
- sha256: a4b5bc37fe1b368bbc81f953197d55e12f49d0296e7e412dfe2d2d77d6929958
+ sha256: "74083203a8eae241e0de4a0d597dbedab3b8fef5563f33cf3c12d7e93c655ca5"
url: "https://pub.dev"
source: hosted
- version: "2.0.4"
+ version: "2.1.0"
shared_preferences_windows:
dependency: transitive
description:
name: shared_preferences_windows
- sha256: "5eaf05ae77658d3521d0e993ede1af962d4b326cd2153d312df716dc250f00c9"
+ sha256: "5e588e2efef56916a3b229c3bfe81e6a525665a454519ca51dbcc4236a274173"
url: "https://pub.dev"
source: hosted
- version: "2.1.3"
+ version: "2.2.0"
shelf:
dependency: transitive
description:
@@ -1519,6 +1622,38 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.3"
+ sidebarx:
+ dependency: "direct main"
+ description:
+ name: sidebarx
+ sha256: "26a8392ceddb659c8f2c688beba6c04bcbf520b4d5decb143c5fd7253653081f"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.15.0"
+ sign_in_with_apple:
+ dependency: transitive
+ description:
+ name: sign_in_with_apple
+ sha256: ac3b113767dfdd765078c507dad9d4d9fe96b669cc7bd88fc36fc15376fb3400
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.3.0"
+ sign_in_with_apple_platform_interface:
+ dependency: transitive
+ description:
+ name: sign_in_with_apple_platform_interface
+ sha256: a5883edee09ed6be19de19e7d9f618a617fe41a6fa03f76d082dfb787e9ea18d
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.0"
+ sign_in_with_apple_web:
+ dependency: transitive
+ description:
+ name: sign_in_with_apple_web
+ sha256: "44b66528f576e77847c14999d5e881e17e7223b7b0625a185417829e5306f47a"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.1"
skeleton_text:
dependency: "direct main"
description:
@@ -1532,6 +1667,14 @@ packages:
description: flutter
source: sdk
version: "0.0.99"
+ smtc_windows:
+ dependency: "direct main"
+ description:
+ name: smtc_windows
+ sha256: dd86d0f29b5a73ffed5650279e6abee01846017b9bc16c07c708e129648c08ac
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.1.0"
source_gen:
dependency: transitive
description:
@@ -1559,12 +1702,11 @@ packages:
spotify:
dependency: "direct main"
description:
- path: "."
- ref: "9e8ef4556942d42d74874de5491253156e7e6f43"
- resolved-ref: "9e8ef4556942d42d74874de5491253156e7e6f43"
- url: "https://github.com/rinukkusu/spotify-dart"
- source: git
- version: "0.9.0"
+ name: spotify
+ sha256: c7c3f157f052143f713477bd5a764b080a0023ed084428bd0cf5a9e3bc260cc6
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.11.0"
sqflite:
dependency: transitive
description:
@@ -1597,6 +1739,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.7.2+1"
+ storage_client:
+ dependency: transitive
+ description:
+ name: storage_client
+ sha256: "4ed4dc8a990d178c96962319d6d8c267c3e206fca2c2b98660bad6e001220ffc"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.3.1"
stream_channel:
dependency: transitive
description:
@@ -1621,14 +1771,62 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.2.0"
+ supabase:
+ dependency: transitive
+ description:
+ name: supabase
+ sha256: "403739cdfea48ba633450e5b191ceeaae81ac10ec89166c0e109235b3e1532f3"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.8.1"
+ supabase_flutter:
+ dependency: "direct main"
+ description:
+ name: supabase_flutter
+ sha256: "7cbdd9a7264dd5b7ab5a6e2da63346054b8e5ddf358467c7f2bc23d5c14d732c"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.9.1"
+ sync_http:
+ dependency: transitive
+ description:
+ name: sync_http
+ sha256: "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.3.1"
synchronized:
dependency: transitive
description:
name: synchronized
- sha256: "33b31b6beb98100bf9add464a36a8dd03eb10c7a8cf15aeec535e9b054aaf04b"
+ sha256: "5fcbd27688af6082f5abd611af56ee575342c30e87541d0245f7ff99faa02c60"
url: "https://pub.dev"
source: hosted
- version: "3.0.1"
+ version: "3.1.0"
+ system_theme:
+ dependency: "direct main"
+ description:
+ name: system_theme
+ sha256: "28bb63b997c252eee7fea6dc9e3528a9a6bf4b566ccbc8b49926389ca3e2c96b"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.1.0"
+ system_theme_web:
+ dependency: transitive
+ description:
+ name: system_theme_web
+ sha256: "7566f5a928f6d28d7a60c97bea8a851d1c6bc9b86a4df2366230a97458489219"
+ url: "https://pub.dev"
+ source: hosted
+ version: "0.0.2"
+ system_tray:
+ dependency: transitive
+ description:
+ name: system_tray
+ sha256: "087edb877f22f286d82d42f330fa640138c192e98aa9d20c2b83aa4e406bb432"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.2"
term_glyph:
dependency: transitive
description:
@@ -1641,10 +1839,10 @@ packages:
dependency: transitive
description:
name: test_api
- sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206
+ sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
url: "https://pub.dev"
source: hosted
- version: "0.4.16"
+ version: "0.5.1"
time:
dependency: transitive
description:
@@ -1661,8 +1859,16 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.1"
- tuple:
+ titlebar_buttons:
dependency: "direct main"
+ description:
+ name: titlebar_buttons
+ sha256: babf62b48b80f290b9ef8b0135df7d9e9bebcb9c27e8380a53df9bb72f3fb03c
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.0"
+ tuple:
+ dependency: transitive
description:
name: tuple
sha256: "0ea99cd2f9352b2586583ab2ce6489d1f95a5f6de6fb9492faaf97ae2060f0aa"
@@ -1681,10 +1887,10 @@ packages:
dependency: transitive
description:
name: universal_io
- sha256: "79f78ddad839ee3aae3ec7c01eb4575faf0d5c860f8e5223bc9f9c17f7f03cef"
+ sha256: "06866290206d196064fd61df4c7aea1ffe9a4e7c4ccaa8fcded42dd41948005d"
url: "https://pub.dev"
source: hosted
- version: "2.0.4"
+ version: "2.2.0"
uri:
dependency: transitive
description:
@@ -1693,6 +1899,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.0"
+ uri_parser:
+ dependency: transitive
+ description:
+ name: uri_parser
+ sha256: "6543c9fd86d2862fac55d800a43e67c0dcd1a41677cb69c2f8edfe73bbcf1835"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.0.2"
url_launcher:
dependency: "direct main"
description:
@@ -1789,6 +2003,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "0.3.3"
+ vm_service:
+ dependency: transitive
+ description:
+ name: vm_service
+ sha256: f6deed8ed625c52864792459709183da231ebf66ff0cf09e69b573227c377efe
+ url: "https://pub.dev"
+ source: hosted
+ version: "11.3.0"
watcher:
dependency: transitive
description:
@@ -1805,14 +2027,62 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.3.0"
+ webdriver:
+ dependency: transitive
+ description:
+ name: webdriver
+ sha256: "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.0.2"
+ webview_flutter:
+ dependency: transitive
+ description:
+ name: webview_flutter
+ sha256: "1a37bdbaaf5fbe09ad8579ab09ecfd473284ce482f900b5aea27cf834386a567"
+ url: "https://pub.dev"
+ source: hosted
+ version: "4.2.0"
+ webview_flutter_android:
+ dependency: transitive
+ description:
+ name: webview_flutter_android
+ sha256: "1acea8def62592123e2fbbca164ed8681a98a890bdcbb88f916d5b4a22687759"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.7.0"
+ webview_flutter_platform_interface:
+ dependency: transitive
+ description:
+ name: webview_flutter_platform_interface
+ sha256: "78715dc442b7849dbde74e92bb67de1cecf5addf95531c5fb474e72f5fe9a507"
+ url: "https://pub.dev"
+ source: hosted
+ version: "2.3.0"
+ webview_flutter_wkwebview:
+ dependency: transitive
+ description:
+ name: webview_flutter_wkwebview
+ sha256: "4646bb68297803bdbb96d46853e8fcb560d6cb5e04153fa64581535767875dfe"
+ url: "https://pub.dev"
+ source: hosted
+ version: "3.4.3"
win32:
dependency: transitive
description:
name: win32
- sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46
+ sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c"
url: "https://pub.dev"
source: hosted
- version: "3.1.3"
+ version: "4.1.4"
+ win32_registry:
+ dependency: transitive
+ description:
+ name: win32_registry
+ sha256: "1c52f994bdccb77103a6231ad4ea331a244dbcef5d1f37d8462f713143b0bfae"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.1.0"
window_manager:
dependency: "direct main"
description:
@@ -1854,14 +2124,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.1.1"
+ yet_another_json_isolate:
+ dependency: transitive
+ description:
+ name: yet_another_json_isolate
+ sha256: "94ba4947ac1ce44bd6a1634d9df712e07b9b5025ba12abd6750be77ba5c08f18"
+ url: "https://pub.dev"
+ source: hosted
+ version: "1.0.4"
youtube_explode_dart:
dependency: "direct main"
description:
name: youtube_explode_dart
- sha256: "3e2eb05dedc072a6275e8a061c675d9a53b7c6123265f0aa4ee1e6d50644dbd2"
+ sha256: "07889a6229a63e78f8d45a3b852897c2e0fa42e96c4daa38d411be211575bc38"
url: "https://pub.dev"
source: hosted
- version: "1.12.3"
+ version: "1.12.4"
sdks:
- dart: ">=2.19.2 <3.0.0"
- flutter: ">=3.7.0"
+ dart: ">=3.0.0 <4.0.0"
+ flutter: ">=3.10.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index 7ffa368c..20df062c 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,39 +3,45 @@ description: Open source Spotify client that doesn't require Premium nor uses El
publish_to: "none"
-version: 2.7.1+18
+version: 3.0.0+19
environment:
- sdk: ">=2.17.0 <3.0.0"
+ sdk: ">=3.0.0 <4.0.0"
+ flutter: ">=3.10.0"
dependencies:
- adwaita: ^0.5.2
args: ^2.3.2
async: ^2.9.0
audio_service: ^0.18.9
audio_session: ^0.1.13
- audioplayers: ^3.0.1
auto_size_text: ^3.0.0
- badges: ^2.0.3
+ buttons_tabbar: ^1.3.6
cached_network_image: ^3.2.2
catcher:
git:
url: https://github.com/ThexXTURBOXx/catcher
collection: ^1.15.0
cupertino_icons: ^1.0.5
- dbus: ^0.7.8
+ curved_navigation_bar: ^1.0.3
envied: ^0.3.0
file_picker: ^5.2.2
- fl_query: ^1.0.0-alpha.2
- fl_query_hooks: ^1.0.0-alpha.2
- fluent_ui: 4.3.0
+ fl_query: ^1.0.0-alpha.3
+ fl_query_hooks: ^1.0.0-alpha.3
+ fl_query_connectivity_plus_adapter: ^0.1.0-alpha.2
fluentui_system_icons: ^1.1.189
flutter:
sdk: flutter
flutter_cache_manager: ^3.3.0
+ flutter_desktop_tools:
+ git:
+ url: https://github.com/KRTirtho/flutter_desktop_tools.git
+ ref: 1f0bec3283626dcbd8ee2f54e238d096d8dea50e
flutter_feather_icons: ^2.0.0+1
flutter_hooks: ^0.18.2+1
flutter_inappwebview: ^5.7.2+3
+ flutter_localizations:
+ sdk: flutter
+ flutter_native_splash: ^2.2.19
flutter_riverpod: ^2.1.1
flutter_secure_storage: ^8.0.0
flutter_svg: ^1.1.6
@@ -46,35 +52,32 @@ dependencies:
hooks_riverpod: ^2.1.1
html: ^0.15.1
http: ^0.13.5
+ intl: ^0.18.0
introduction_screen: ^3.0.2
- json_annotation: ^4.8.0
- json_serializable: ^6.6.0
- libadwaita: ^1.2.5
+ json_annotation: ^4.8.1
logger: ^1.1.0
- macos_ui: ^1.9.0
- marquee: ^2.2.3
- metadata_god: ^0.4.1
+ media_kit: ^0.0.7+1
+ media_kit_libs_android_audio: ^1.0.4
+ media_kit_libs_ios_audio: ^1.0.4
+ media_kit_libs_linux: ^1.0.2
+ media_kit_libs_macos_audio: ^1.0.5
+ media_kit_libs_windows_audio: ^1.0.3
+ metadata_god: ^0.5.0
mime: ^1.0.2
package_info_plus: ^3.0.2
palette_generator: ^0.3.3
path: ^1.8.0
path_provider: ^2.0.8
permission_handler: ^10.2.0
- platform_ui:
- git:
- url: https://github.com/KRTirtho/platform_ui.git
- ref: 339ea7922d2f881d9a72b565aeebc7e2c4b22509
- pocketbase: ^0.7.1+1
popover: ^0.2.6+3
- queue: ^3.1.0+1
scroll_to_index: ^3.0.1
shared_preferences: ^2.0.11
+ sidebarx: ^0.15.0
skeleton_text: ^3.0.0
- spotify:
- git:
- url: https://github.com/rinukkusu/spotify-dart
- ref: 9e8ef4556942d42d74874de5491253156e7e6f43
- tuple: ^2.0.1
+ smtc_windows: ^0.1.0
+ spotify: ^0.11.0
+ system_theme: ^2.1.0
+ titlebar_buttons: ^1.0.0
url_launcher: ^6.1.7
uuid: ^3.0.7
version: ^3.0.2
@@ -85,18 +88,29 @@ dependencies:
url: https://github.com/google/flutter-desktop-embedding.git
ref: a738913c8ce2c9f47515382d40827e794a334274
path: plugins/window_size
- youtube_explode_dart: ^1.12.1
+ piped_client: ^0.1.0
+ supabase_flutter: ^1.9.1
+ device_preview: ^1.1.0
+ media_kit_native_event_loop: ^1.0.4
+ dbus: ^0.7.8
+ background_downloader: ^7.4.0
+ duration: ^3.0.12
+ disable_battery_optimization: ^1.1.0+1
+ youtube_explode_dart: ^1.12.4
dev_dependencies:
build_runner: ^2.3.2
- envied_generator: ^0.3.0
+ envied_generator: ^0.3.0+3
flutter_distributor: ^0.0.2
flutter_gen_runner: ^5.1.0+1
- flutter_launcher_icons: ^0.11.0
+ flutter_launcher_icons: ^0.13.1
flutter_lints: ^2.0.1
flutter_test:
sdk: flutter
+ integration_test:
+ sdk: flutter
hive_generator: ^2.0.0
+ json_serializable: ^6.6.2
pub_api_client: ^2.4.0
pubspec_parse: ^1.2.2
@@ -104,10 +118,12 @@ dependency_overrides:
package_info_plus: ^3.0.2
flutter:
+ generate: true
uses-material-design: true
assets:
- assets/
- assets/tutorial/
+ - LICENSE
flutter_icons:
android: true
@@ -124,3 +140,14 @@ flutter_icons:
flutter_gen:
output: lib/collections
+
+flutter_native_splash:
+ background_image: assets/bengali-patterns-bg.jpg
+ image: assets/spotube-logo.png
+ branding: assets/branding.png
+ android_12:
+ image: assets/spotube-logo_android12.png
+ branding: assets/branding.png
+ color: "#000000"
+ icon_background_color: "#000000"
+ web: false
diff --git a/scripts/install.sh b/scripts/install.sh
new file mode 100755
index 00000000..52526f95
--- /dev/null
+++ b/scripts/install.sh
@@ -0,0 +1,182 @@
+#!/bin/bash
+
+
+INSTLLATION_DIR=/usr/share/spotube
+DESKTOP_FILE_PATH=/usr/share/applications/spotube.desktop
+APP_DATA_PATH=/usr/share/appdata/spotube.appdata.xml
+ICON_PATH=/usr/share/icons/spotube/spotube-logo.png
+BIN_SYMLINK_PATH=/usr/bin/spotube
+
+TEMP_DIR=/tmp/spotube-installer
+
+# get latest version from github api
+VERSION=$(curl --silent "https://api.github.com/repos/KRTirtho/spotube/releases/latest" \
+ | grep -Po '"tag_name": "\K.*?(?=")')
+
+function spotube_help(){
+ # available flags are -v or --version to specify what version to download
+ echo "Usage: ./install.sh [flags]"
+ echo "Flags:"
+ echo " -v, --version Specify what version to download. Default: $VERSION"
+ echo " -h, --help Show this help message"
+ echo " -r, --remove Remove spotube from your system"
+ exit 0
+}
+
+# a function to check if a given command exists or not and returns bool
+function command_exists() {
+ command -v "$@" >/dev/null 2>&1
+}
+
+function install_deps(){
+ local DEBIAN_DEPS="curl tar mpv libappindicator3-1 gir1.2-appindicator3-0.1 libsecret-1-0 libnotify-bin libjsoncpp25"
+ local RPM_DEPS="curl tar mpv libappindicator jsoncpp libsecret libnotify"
+ local ARCH_DEPS="curl tar mpv libappindicator-gtk3 libsecret jsoncpp libnotify"
+
+ if command_exists apt; then
+ sudo apt install -y $DEBIAN_DEPS
+ elif command_exists dnf; then
+ sudo dnf install -y $RPM_DEPS
+ elif command_exists yum; then
+ sudo yum install -y $RPM_DEPS
+ elif command_exists zypper; then
+ sudo zypper install -y $RPM_DEPS
+ elif command_exists pacman; then
+ sudo pacman -Sy $ARCH_DEPS
+ else
+ echo "Your package manager is not supported by this script. Please install the dependencies manually."
+ echo "The dependencies are: curl, tar, mpv, appindicator, libsecret, jsoncpp, libnotify"
+fi
+}
+
+function download_extract_spotube(){
+ local TAR_PATH=/tmp/spotube-$VERSION.tar.xz
+ local DOWNLOAD_URL=https://github.com/KRTirtho/spotube/releases/download/v$VERSION/spotube-linux-$VERSION-x86_64.tar.xz
+
+ # check if version is nightly
+
+ if [ "$VERSION" = "nightly" ]; then
+ DOWNLOAD_URL=https://github.com/KRTirtho/spotube/releases/download/nightly/spotube-linux-nightly-x86_64.tar.xz
+ fi
+
+
+ rm -rf $TEMP_DIR
+ mkdir -p $TEMP_DIR
+
+
+ # check if already exists downloaded file
+ if [ -f $TAR_PATH ]; then
+ echo "Found spotube-$VERSION.tar.xz in /tmp. Skipping download..."
+ else
+ echo "Downloading spotube-$VERSION.tar.xz..."
+ curl -L $DOWNLOAD_URL -o $TAR_PATH
+ fi
+
+ # Extract the tarball
+ tar -xf $TAR_PATH -C $TEMP_DIR
+
+ # check if $TEMP_DIR empty or not
+
+ if [ ! "$(ls -A $TEMP_DIR)" ]; then
+ echo "Failed to extract the tarball. Redownloading..."
+ rm -f $TAR_PATH
+ curl -L $DOWNLOAD_URL -o $TAR_PATH
+ tar -xf $TAR_PATH -C $TEMP_DIR
+ fi
+
+ # checking one last time
+ if [ ! "$(ls -A $TEMP_DIR)" ]; then
+ echo "Failed to extract the tarball. Aborting installation..."
+ exit 1
+ fi
+}
+
+function install_spotube(){
+ # check if exists and uninstall if user allows
+
+ if [ -d $INSTLLATION_DIR ]; then
+ echo "Spotube is already installed. Do you want to uninstall it and then install? [y/N]"
+ read -r uninstall
+ if [ "$uninstall" = "y" ] || [ "$uninstall" = "Y" ]; then
+ uninstall_spotube
+ else
+ echo "Aborting installation..."
+ exit 1
+ fi
+ fi
+
+ # Move the files to /usr/share/spotube
+
+ sudo mkdir -p $INSTLLATION_DIR
+
+ sudo mv $TEMP_DIR/data $INSTLLATION_DIR
+ sudo mv $TEMP_DIR/lib $INSTLLATION_DIR
+ sudo mv $TEMP_DIR/spotube $INSTLLATION_DIR
+
+ # Move the desktop file to /usr/share/applications
+
+ sudo mv $TEMP_DIR/spotube.desktop $DESKTOP_FILE_PATH
+
+ # Move the appdata file to /usr/share/appdata
+
+ sudo mv $TEMP_DIR/com.github.KRTirtho.Spotube.appdata.xml $APP_DATA_PATH
+
+ # Move the logo to /usr/share/icons/spotube
+
+ sudo mkdir -p /usr/share/icons/spotube
+
+ sudo mv $TEMP_DIR/spotube-logo.png $ICON_PATH
+
+ # Create a symlink to /usr/bin
+
+ sudo ln -s /usr/share/spotube/spotube $BIN_SYMLINK_PATH
+
+ # Clean up
+
+ rm -rf $TEMP_DIR
+
+ echo "Spotube $VERSION has been installed successfully!"
+}
+
+function uninstall_spotube(){
+ # confirm
+
+ echo "Are you sure you want to uninstall Spotube?"
+ echo
+ echo "This will remove following files and directories:"
+ echo " $INSTLLATION_DIR"
+ echo " $DESKTOP_FILE_PATH"
+ echo " $APP_DATA_PATH"
+ echo " $ICON_PATH"
+ echo " $BIN_SYMLINK_PATH"
+ echo
+ echo "[y/N]"
+
+ read -r CONFIRMATION
+
+ if [[ "$CONFIRMATION" != "y" ]]; then
+ echo "Aborting uninstallation..."
+ exit 0
+ fi
+
+ # remove the files
+
+
+ sudo rm -rf $INSTLLATION_DIR $DESKTOP_FILE_PATH $APP_DATA_PATH $ICON_PATH $BIN_SYMLINK_PATH
+}
+
+# parse arguments -v, --version, -r, --remove, -h, --help
+
+while [[ "$#" -gt 0 ]]; do
+ case $1 in
+ -v|--version) VERSION="$2"; shift ;;
+ -r|--remove) uninstall_spotube; exit 0 ;;
+ -h|--help) spotube_help; exit 0 ;;
+ *) echo "Unknown parameter passed: $1"; spotube_help; exit 1 ;;
+ esac
+ shift
+done
+
+install_deps
+download_extract_spotube
+install_spotube
\ No newline at end of file
diff --git a/scripts/update_flathub_version.py b/scripts/update_flathub_version.py
index 27d6682d..3ac5d6f7 100644
--- a/scripts/update_flathub_version.py
+++ b/scripts/update_flathub_version.py
@@ -15,6 +15,7 @@ with open(YAML_FILENAME, mode="r", encoding="utf-8") as input:
# Requires the 2nd VERSION argument to be passed
version = sys.argv[1:][0]
+
tar_url = f"https://github.com/{REPO}/releases/download/v{version}/spotube-linux-{version}-x86_64.tar.xz"
tar_sha256 = hashlib.sha256()
print(f"Downloading file {tar_url} to generete sha256 sum")
@@ -23,7 +24,7 @@ for chunk in tar.iter_content():
if chunk:
tar_sha256.update(chunk)
-tar_source = config["modules"][0]["sources"][0]
+tar_source = config["modules"][-1]["sources"][0]
tar_source["url"] = tar_url
tar_source["sha256"] = tar_sha256.hexdigest()
diff --git a/untranslated_messages.json b/untranslated_messages.json
new file mode 100644
index 00000000..9e26dfee
--- /dev/null
+++ b/untranslated_messages.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/website/components/DownloadButton.tsx b/website/components/DownloadButton.tsx
index 4805640b..1aa43e70 100644
--- a/website/components/DownloadButton.tsx
+++ b/website/components/DownloadButton.tsx
@@ -50,7 +50,7 @@ const DownloadLinks = Object.freeze({
[Platform.mac]: [
{
name: "dmg",
- url: baseURL + "Spotube-macos-x86_64.dmg",
+ url: baseURL + "Spotube-macos-universal.dmg",
icon: ,
},
],
diff --git a/website/posts/getting-started-with-spotube.md b/website/posts/getting-started-with-spotube.md
index 81a8712e..e0da2574 100644
--- a/website/posts/getting-started-with-spotube.md
+++ b/website/posts/getting-started-with-spotube.md
@@ -1,6 +1,6 @@
---
title: Getting Started With Spotube
-cover_image: https://github.com/KRTirtho/spotube/raw/master/assets/spotube-screenshot.jpg
+cover_image: https://github.com/KRTirtho/spotube/raw/master/assets/spotube-screenshot.png
date: "July 16, 2022"
author: Kingkor Roy Tirtho
author_avatar_url: https://avatars.githubusercontent.com/u/61944859?v=4
diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc
index 552e8d72..93029f40 100644
--- a/windows/flutter/generated_plugin_registrant.cc
+++ b/windows/flutter/generated_plugin_registrant.cc
@@ -6,26 +6,41 @@
#include "generated_plugin_registrant.h"
-#include
+#include
#include
+#include
#include
+#include
+#include
#include
#include
+#include
+#include
#include
#include
#include
void RegisterPlugins(flutter::PluginRegistry* registry) {
- AudioplayersWindowsPluginRegisterWithRegistrar(
- registry->GetRegistrarForPlugin("AudioplayersWindowsPlugin"));
+ AppLinksPluginCApiRegisterWithRegistrar(
+ registry->GetRegistrarForPlugin("AppLinksPluginCApi"));
CatcherPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("CatcherPlugin"));
+ ConnectivityPlusWindowsPluginRegisterWithRegistrar(
+ registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin"));
FlutterSecureStorageWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin"));
+ LocalNotifierPluginRegisterWithRegistrar(
+ registry->GetRegistrarForPlugin("LocalNotifierPlugin"));
+ MediaKitLibsWindowsAudioPluginCApiRegisterWithRegistrar(
+ registry->GetRegistrarForPlugin("MediaKitLibsWindowsAudioPluginCApi"));
PermissionHandlerWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin"));
ScreenRetrieverPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("ScreenRetrieverPlugin"));
+ SystemThemePluginRegisterWithRegistrar(
+ registry->GetRegistrarForPlugin("SystemThemePlugin"));
+ SystemTrayPluginRegisterWithRegistrar(
+ registry->GetRegistrarForPlugin("SystemTrayPlugin"));
UrlLauncherWindowsRegisterWithRegistrar(
registry->GetRegistrarForPlugin("UrlLauncherWindows"));
WindowManagerPluginRegisterWithRegistrar(
diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake
index aedb0000..eeb98007 100644
--- a/windows/flutter/generated_plugins.cmake
+++ b/windows/flutter/generated_plugins.cmake
@@ -3,18 +3,25 @@
#
list(APPEND FLUTTER_PLUGIN_LIST
- audioplayers_windows
+ app_links
catcher
+ connectivity_plus
flutter_secure_storage_windows
+ local_notifier
+ media_kit_libs_windows_audio
permission_handler_windows
screen_retriever
+ system_theme
+ system_tray
url_launcher_windows
window_manager
window_size
)
list(APPEND FLUTTER_FFI_PLUGIN_LIST
+ media_kit_native_event_loop
metadata_god
+ smtc_windows
)
set(PLUGIN_BUNDLED_LIBRARIES)