Skip to content

Commit

Permalink
Upgrade project
Browse files Browse the repository at this point in the history
  • Loading branch information
xiprox committed Oct 6, 2023
1 parent 40fa5e9 commit 7a8fb3e
Show file tree
Hide file tree
Showing 18 changed files with 429 additions and 353 deletions.
1 change: 1 addition & 0 deletions .fvm/flutter_sdk
4 changes: 4 additions & 0 deletions .fvm/fvm_config.json
@@ -0,0 +1,4 @@
{
"flutterSdkVersion": "stable",
"flavors": {}
}
1 change: 1 addition & 0 deletions .github/workflows/deploy.yml
Expand Up @@ -12,6 +12,7 @@ jobs:
- uses: subosito/flutter-action@v2
- run: flutter config --enable-web
- run: flutter pub get
- run: ./do gen
- run: flutter build web --release
- uses: easingthemes/ssh-deploy@v2.1.2
env:
Expand Down
1 change: 0 additions & 1 deletion .gitignore
Expand Up @@ -32,7 +32,6 @@
/build/

# Web related
lib/generated_plugin_registrant.dart

# Symbolication related
app.*.symbols
Expand Down
13 changes: 13 additions & 0 deletions .vscode/settings.json
@@ -0,0 +1,13 @@
{
"dart.flutterSdkPath": ".fvm/flutter_sdk",
"search.exclude": {
"**/.fvm": true
},
"files.watcherExclude": {
"**/.fvm": true,
},
"files.exclude": {
"**/*.g.dart": true,
"**/*.gr.dart": true,
}
}
4 changes: 2 additions & 2 deletions run → do
@@ -1,7 +1,7 @@
#!/bin/sh

# Runs code generation. Use: `./run generate` or `./run generate watch`` in project dir.
if [[ $1 == "generate" ]]; then
# Runs code generation. Use: `./do gen` or `./do gen watch`` in project dir.
if [[ $1 == "gen" ]]; then
if [[ $2 == "watch" ]]; then
flutter pub run build_runner watch --delete-conflicting-outputs
else
Expand Down
8 changes: 4 additions & 4 deletions lib/data/remote/api.dart
@@ -1,17 +1,17 @@
import 'dart:isolate';

import 'package:api_call/api_call.dart';
import 'package:dio/dio.dart';
import 'package:website/data/models/track.dart';
import 'package:website/services/exported_services.dart';

class Api {
final _client = Dio(BaseOptions(baseUrl: 'https://api.ihsan.dev'));

Future<Resource<List<Track>>> getTracks() async {
final response = await _client.get<List<dynamic>>('/music');
if (response.statusCode == 200) {
final tracks = await Executor().execute(
arg1: response.data,
fun1: (json) => (json as List).map((it) => Track.fromJson(it)).toList(),
final tracks = await Isolate.run(
() => (response.data as List).map((it) => Track.fromJson(it)).toList(),
);
return Resource.success(tracks);
} else {
Expand Down
2 changes: 0 additions & 2 deletions lib/init.dart
@@ -1,4 +1,3 @@
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:url_strategy/url_strategy.dart';
import 'package:veee/veee.dart';
Expand All @@ -8,7 +7,6 @@ import 'package:website/widgets/player/player_vm.dart';
import 'app.dart';

Future init() async {
await Executor().warmUp(log: kDebugMode);
await Services.init();
setPathUrlStrategy();
runApp(const _Providers(App()));
Expand Down
1 change: 0 additions & 1 deletion lib/navigation/navigation.dart
@@ -1,3 +1,2 @@
export 'package:auto_route/src/router/auto_router_x.dart';
export 'router.dart';
export 'router.gr.dart';
19 changes: 11 additions & 8 deletions lib/navigation/router.dart
@@ -1,15 +1,18 @@
import 'package:auto_route/auto_route.dart';
import 'package:website/pages/home/home_wrapper.dart';

@CustomAutoRouter(
replaceInRouteName: 'Page,Route',
routes: [
part 'router.gr.dart';

@AutoRouterConfig(
replaceInRouteName: 'Page|Wrapper,Route',
)
class AppRouter extends _$AppRouter {
@override
final List<AutoRoute> routes = [
AutoRoute(
initial: true,
path: '/',
name: 'HomeRoute',
page: HomeWrapper,
page: HomeRoute.page,
),
],
)
class $AppRouter {}
];
}
47 changes: 21 additions & 26 deletions lib/navigation/router.gr.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions lib/pages/home/home_page.dart
Expand Up @@ -10,9 +10,9 @@ class HomePage extends ViewModelWidget<HomeViewModel> {

@override
Widget build(BuildContext context, HomeViewModel vm) {
return Scaffold(
return const Scaffold(
body: Stack(
children: const [
children: [
HomeContent(),
Align(
alignment: Alignment.bottomRight,
Expand Down
2 changes: 2 additions & 0 deletions lib/pages/home/home_wrapper.dart
@@ -1,9 +1,11 @@
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
import 'package:veee/veee.dart';
import 'package:website/pages/home/home_vm.dart';

import 'home_page.dart';

@RoutePage()
class HomeWrapper extends StatelessWidget {
const HomeWrapper({Key? key}) : super(key: key);

Expand Down
2 changes: 0 additions & 2 deletions lib/services/exported_services.dart
@@ -1,5 +1,3 @@
export 'package:worker_manager/worker_manager.dart';

export 'package:website/data/remote/api.dart';

export 'audio_player.dart';
2 changes: 1 addition & 1 deletion lib/theme/theme.dart
Expand Up @@ -17,9 +17,9 @@ class AppTheme {
);
return theme.copyWith(
colorScheme: colors,
backgroundColor: colors.background,
scaffoldBackgroundColor: colors.surfaceVariant,
textTheme: textTheme,
useMaterial3: true,
);
}

Expand Down
28 changes: 10 additions & 18 deletions lib/widgets/player/player_vm.dart
@@ -1,7 +1,7 @@
import 'package:api_call/resource.dart';
import 'package:flextensions/flextensions.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:veee/veee.dart';
import 'package:supercharged/supercharged.dart';
import 'package:website/data/models/track.dart';
import 'package:website/services/services.dart';

Expand Down Expand Up @@ -57,7 +57,7 @@ class PlayerViewModel extends ViewModel with BusyViewModel {
}

void _playNext() {
if (_trackIndex == tracks?.data?.lastIndex) {
if (_trackIndex == tracks?.data?.length.minus(1)) {
_trackIndex = 0;
tracks?.data?.shuffle();
} else {
Expand All @@ -71,24 +71,16 @@ class PlayerViewModel extends ViewModel with BusyViewModel {
_playNext();
}

void onSongPress() {
final url = currentTrack?.externalUrl;
if (url != null) {
launch(url);
}
}
void onSongPress() => _launchUri(currentTrack?.externalUrl);

void onAlbumPress() {
final url = currentTrack?.albumExternalUrl;
if (url != null) {
launch(url);
}
}
void onAlbumPress() => _launchUri(currentTrack?.albumExternalUrl);

void onArtistPress() => _launchUri(currentTrack?.artistExternalUrl);

void onArtistPress() {
final url = currentTrack?.artistExternalUrl;
if (url != null) {
launch(url);
void _launchUri(String? url) {
final uri = Uri.tryParse(url ?? '');
if (uri != null) {
launchUrl(uri);
}
}

Expand Down

0 comments on commit 7a8fb3e

Please sign in to comment.