Compare commits

...

2 commits

2 changed files with 52 additions and 73 deletions

View file

@ -5,9 +5,8 @@ This app is still in BETA, so it is missing features and contains bugs.
If you want to report bug or request feature, please open an issue.
## Downloads:
Downloads are currently distributed in [Telegram channel](https://t.me/freezereleases) and the [Freezer website](https://www.freezer.life/)
**You might get Play Protect warning - just select install anyway or disable Play Protect** - it is because the keys used for signing this app are new.
**App not installed** error - try different version (arm32/64) or uninstall old version.
Downloads are distributed in [Telegram channel](https://t.me/+lm3uxdt8exgzODA0).
## Compile from source
@ -15,46 +14,23 @@ Install flutter SDK: https://flutter.dev/docs/get-started/install
(Optional) Generate keys for release build: https://flutter.dev/docs/deployment/android
Download source:
```
git clone https://git.freezer.life/exttex/freezer
git submodule init
git submodule update
git clone https://fem.mint.lgbt/pato05/freezer.git
```
Compile:
```
flutter pub get
flutter build apk
flutter pub run build_runner build
flutter build apk # or windows/linux
```
NOTE: You have to use own keys, or build debug using `flutter build apk --debug`
## Links
Telegram group: https://t.me/freezerandroid
Discord server: https://discord.gg/7ap654Tp3z
## Credits
**Tobs**: Beta tester
**Xandar**: Community manager, helper, tester
**Bas Curtiz**: Icon, Logo, Banner, Design suggestions
**Deemix**: https://git.rip/RemixDev/deemix/
**Annexhack**: Android Auto help and resources
**Huge thanks to all the Crowdin translators and all the contributors to this project <3**
### just_audio, audio_service
This app depends on modified just_audio and audio_service plugins with Deezer support.
Both plugins were originally written by ryanheise, all credits to him.
Forked versions for Freezer:
https://git.rip/freezer/just_audio
https://git.rip/freezer/audio_service
## Support me
BTC: `14hcr4PGbgqeXd3SoXY9QyJFNpyurgrL9y`
ETH: `0xb4D1893195404E1F4b45e5BDA77F202Ac4012288`
## Disclaimer
```
Freezer was not developed for piracy, but educational and private usage.
It may be illegal to use this in your country!

View file

@ -10,7 +10,8 @@ import 'package:window_manager/window_manager.dart';
final sysTray = SysTray._();
class SysTray with TrayListener {
/// Handles system tray and window events
class SysTray with TrayListener, WindowListener {
SysTray._();
static String getIcon({bool forcePng = false}) {
@ -33,6 +34,8 @@ class SysTray with TrayListener {
if (_inited) return;
_inited = true;
windowManager.addListener(this);
updateIcon();
try {
await trayManager.setToolTip('freezer');
@ -65,22 +68,19 @@ class SysTray with TrayListener {
MenuItem.separator(),
MenuItem(
label: 'Previous'.i18n,
onClick: (menuItem) => audioHandler.skipToPrevious()),
onClick: (_) => audioHandler.skipToPrevious()),
playing
? MenuItem(
label: 'Pause'.i18n, onClick: (menuItem) => audioHandler.pause())
: MenuItem(
label: 'Play'.i18n, onClick: (menuItem) => audioHandler.play()),
MenuItem(
label: 'Next'.i18n, onClick: (menuItem) => audioHandler.skipToNext()),
? MenuItem(label: 'Pause'.i18n, onClick: (_) => audioHandler.pause())
: MenuItem(label: 'Play'.i18n, onClick: (_) => audioHandler.play()),
MenuItem(label: 'Next'.i18n, onClick: (_) => audioHandler.skipToNext()),
MenuItem.separator(),
MenuItem(
label: 'Show'.i18n,
// we can safely ignore it if it errors, as it's expected
onClick: (menuItem) => windowManager.show().catchError((e) {})),
onClick: (_) => windowManager.show().catchError((e) {})),
MenuItem(
label: 'Exit'.i18n,
onClick: (menuItem) async {
onClick: (_) async {
await audioHandler.pause();
SystemNavigator.pop();
},
@ -103,5 +103,8 @@ class SysTray with TrayListener {
void onTrayIconRightMouseUp() => trayManager.popUpContextMenu();
@override
void onTrayMenuItemClick(MenuItem menuItem) {}
void onWindowClose() {
// release resources before closing
audioHandler.stop();
}
}