From 4b0220faa6c964d38bae77c212c4df76dc453cf4 Mon Sep 17 00:00:00 2001 From: "Alexander \"PapaTutuWawa" Date: Sun, 10 May 2026 22:57:51 +0200 Subject: [PATCH] feat: Add a button to MAL --- assets/i18n/strings_en.i18n.json | 1 + lib/src/ui/pages/details.dart | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/assets/i18n/strings_en.i18n.json b/assets/i18n/strings_en.i18n.json index 7a738f6..004161d 100644 --- a/assets/i18n/strings_en.i18n.json +++ b/assets/i18n/strings_en.i18n.json @@ -49,6 +49,7 @@ "episodes": "Episodes", "chapters": "Chapters", "volumesOwned": "Volumes owned", + "mal": "MAL", "details": { "titleJa": "Japanese Title" } diff --git a/lib/src/ui/pages/details.dart b/lib/src/ui/pages/details.dart index f047d28..934f1c6 100644 --- a/lib/src/ui/pages/details.dart +++ b/lib/src/ui/pages/details.dart @@ -10,6 +10,7 @@ import 'package:anitrack/src/ui/widgets/integer_input.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:get_it/get_it.dart'; +import 'package:url_launcher/url_launcher.dart'; class DetailsPage extends StatelessWidget { const DetailsPage({ @@ -207,6 +208,28 @@ class DetailsPage extends StatelessWidget { ], ), ), + Padding( + padding: const EdgeInsets.only( + top: 6, + ), + child: Row( + children: [ + ElevatedButton( + onPressed: () async { + final url = switch (state.trackingType) { + TrackingMediumType.anime => 'https://myanimelist.net/anime/${state.data!.id}', + TrackingMediumType.manga => 'https://myanimelist.net/manga/${state.data!.id}', + }; + await launchUrl( + Uri.parse(url), + mode: LaunchMode.externalApplication, + ); + }, + child: Text(t.details.mal), + ), + ], + ), + ), ], ), ),