This commit is contained in:
Shantanu Sharma 2026-10-11 00:41:53 +05:30 committed by GitHub
commit 56b0963fe1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 15 additions and 5 deletions

View File

@ -1,5 +1,7 @@
import 'package:auto_route/auto_route.dart';
import 'package:dio/dio.dart';
import 'package:flutter/services.dart';
import 'package:spotube/collections/routes.gr.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:shadcn_flutter/shadcn_flutter.dart';
import 'package:shadcn_flutter/shadcn_flutter_extension.dart';
@ -121,7 +123,15 @@ class ErrorBox extends StatelessWidget {
},
child: Text(context.l10n.view_logs),
),
if (onRetry != null)
if (error is DioException && error.response?.statusCode == 401)
Button.text(
leading: const Icon(SpotubeIcons.settings),
onPressed: () {
context.navigateTo(const SettingsMetadataProviderRoute());
},
child: Text(context.l10n.install_a_metadata_provider),
)
else if (onRetry != null)
Button.text(
leading: const Icon(SpotubeIcons.refresh),
onPressed: onRetry,

View File

@ -83,7 +83,7 @@ class MetadataInstalledPluginItem extends HookConsumerWidget {
final repoOwner = repoUrl?.pathSegments.firstOrNull;
final isOfficial =
repoUrl?.host == "github.com" && repoOwner == "KRTirtho";
repoUrl?.host == "github.com" && ["KRTirtho", "spotube"].contains(repoOwner);
return Basic(
leading: snapshot.hasData

View File

@ -57,7 +57,7 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
.downloadAndCachePlugin(pluginRepo.repoUrl);
if (!context.mounted) return;
final isOfficialPlugin = pluginRepo.owner == "KRTirtho";
final isOfficialPlugin = ["KRTirtho", "spotube"].contains(pluginRepo.owner);
final isAllowed = isOfficialPlugin
? true
@ -157,7 +157,7 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
child: Text(context.l10n.install),
),
),
if (pluginRepo.owner != "KRTirtho")
if (!["KRTirtho", "spotube"].contains(pluginRepo.owner))
Text.rich(
TextSpan(
children: [
@ -181,7 +181,7 @@ class MetadataPluginRepositoryItem extends HookConsumerWidget {
spacing: 8,
runSpacing: 8,
children: [
if (pluginRepo.owner == "KRTirtho")
if (["KRTirtho", "spotube"].contains(pluginRepo.owner))
PrimaryBadge(
leading: const Icon(SpotubeIcons.done),
child: Text(context.l10n.official),