更改appName等常量为全局变量

This commit is contained in:
rang 2025-11-14 16:34:42 +08:00
parent 896f8837bd
commit e2aa73c01c
35 changed files with 167 additions and 216 deletions

View file

@ -19,7 +19,7 @@ import 'package:vaani/features/per_book_settings/providers/book_settings_provide
import 'package:vaani/features/player/providers/audiobook_player.dart';
import 'package:vaani/features/player/providers/player_form.dart';
import 'package:vaani/generated/l10n.dart';
import 'package:vaani/main.dart';
import 'package:vaani/globals.dart';
import 'package:vaani/router/router.dart';
import 'package:vaani/settings/api_settings_provider.dart';
import 'package:vaani/settings/app_settings_provider.dart';

View file

@ -9,7 +9,7 @@ import 'package:vaani/api/library_item_provider.dart';
import 'package:vaani/constants/hero_tag_conventions.dart';
import 'package:vaani/features/item_viewer/view/library_item_page.dart';
import 'package:vaani/features/player/providers/audiobook_player.dart';
import 'package:vaani/main.dart';
import 'package:vaani/globals.dart';
import 'package:vaani/router/models/library_item_extras.dart';
import 'package:vaani/settings/app_settings_provider.dart';
import 'package:vaani/shared/extensions/duration_format.dart';
@ -369,9 +369,10 @@ class _BookCover extends HookConsumerWidget {
builder: (context) {
// change theme after 2 seconds
if (themeSettings.useMaterialThemeOnItemPage) {
final theme = ThemeSwitcher.of(context);
Future.delayed(150.ms, () {
try {
ThemeSwitcher.of(context).changeTheme(
theme.changeTheme(
theme: coverColorScheme != null
? ThemeData.from(
colorScheme: coverColorScheme,

View file

@ -1,14 +1,12 @@
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:logging/logging.dart';
import 'package:logging_appenders/logging_appenders.dart';
import 'package:path_provider/path_provider.dart';
import 'package:vaani/globals.dart';
import 'package:vaani/shared/extensions/duration_format.dart';
Future<String> getLoggingFilePath() async {
final Directory directory = await getApplicationDocumentsDirectory();
return '${directory.path}/vaani.log';
// final Directory directory = await getApplicationDocumentsDirectory();
return '${appStorageDir.path}/$appName.log';
}
Future<void> initLogging() async {

View file

@ -4,7 +4,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:logging/logging.dart';
import 'package:share_plus/share_plus.dart';
import 'package:vaani/features/logging/providers/logs_provider.dart';
import 'package:vaani/main.dart';
import 'package:vaani/globals.dart';
class LogsPage extends HookConsumerWidget {
const LogsPage({super.key});

View file

@ -5,8 +5,8 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:vaani/api/api_provider.dart';
import 'package:vaani/features/onboarding/view/user_login.dart';
import 'package:vaani/generated/l10n.dart';
import 'package:vaani/globals.dart';
import 'package:vaani/settings/api_settings_provider.dart';
import 'package:vaani/settings/constants.dart';
import 'package:vaani/shared/utils.dart';
import 'package:vaani/shared/widgets/add_new_server.dart';
@ -79,7 +79,7 @@ class OnboardingBody extends HookConsumerWidget {
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
S.of(context).loginTitle(AppMetadata.appName),
S.of(context).loginTitle(appName),
style: Theme.of(context).textTheme.headlineSmall,
),
),

View file

@ -6,10 +6,9 @@ import 'package:shelfsdk/audiobookshelf_api.dart';
import 'package:vaani/api/api_provider.dart';
import 'package:vaani/features/onboarding/providers/oauth_provider.dart';
import 'package:vaani/features/onboarding/view/user_login_with_password.dart';
import 'package:vaani/main.dart';
import 'package:vaani/globals.dart';
import 'package:vaani/models/error_response.dart';
import 'package:vaani/router/router.dart';
import 'package:vaani/settings/constants.dart';
import 'package:vaani/settings/models/models.dart' as model;
import 'package:vaani/shared/extensions/obfuscation.dart';
import 'package:vaani/shared/utils.dart';
@ -40,9 +39,9 @@ class UserLoginWithOpenID extends HookConsumerWidget {
appLogger.fine('Generated verifier: $verifier\nchallenge: $challenge');
final appRedirectUri =
'${AppMetadata.appScheme}://${Routes.openIDCallback.fullPath.substring(1)}';
'$appScheme://${Routes.openIDCallback.fullPath.substring(1)}';
final (openIDLoginEndpoint, authCookie) = await api.server.oauth2Request(
clientId: AppMetadata.appName,
clientId: appName,
codeChallenge: challenge,
// redirectUri: Uri(
// scheme: AppMetadata.appScheme,

View file

@ -7,10 +7,10 @@ import 'package:shelfsdk/audiobookshelf_api.dart';
import 'package:vaani/api/api_provider.dart';
import 'package:vaani/api/authenticated_users_provider.dart';
import 'package:vaani/generated/l10n.dart';
import 'package:vaani/globals.dart';
import 'package:vaani/hacks/fix_autofill_losing_focus.dart';
import 'package:vaani/models/error_response.dart';
import 'package:vaani/router/router.dart';
import 'package:vaani/settings/constants.dart';
import 'package:vaani/settings/models/models.dart' as model;
import 'package:vaani/shared/utils.dart';
@ -214,10 +214,10 @@ Future<void> handleServerError(
onPressed: () {
// open an issue on the github page
handleLaunchUrl(
AppMetadata.githubRepo
githubRepo
// append the issue url
.replace(
path: '${AppMetadata.githubRepo.path}/issues/new',
path: '${githubRepo.path}/issues/new',
),
);
},

View file

@ -1,11 +1,10 @@
import 'package:package_info_plus/package_info_plus.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:vaani/api/api_provider.dart';
import 'package:vaani/features/playback_reporting/core/playback_reporter.dart'
as core;
import 'package:vaani/features/player/providers/audiobook_player.dart';
import 'package:vaani/globals.dart';
import 'package:vaani/settings/app_settings_provider.dart';
import 'package:vaani/settings/metadata/metadata_provider.dart';
part 'playback_reporter_provider.g.dart';
@ -15,13 +14,7 @@ class PlaybackReporter extends _$PlaybackReporter {
Future<core.PlaybackReporter> build() async {
final playerSettings = ref.watch(appSettingsProvider).playerSettings;
final player = ref.watch(simpleAudiobookPlayerProvider);
final packageInfo = await PackageInfo.fromPlatform();
final api = ref.watch(authenticatedApiProvider);
final deviceName = await ref.watch(deviceNameProvider.future);
final deviceModel = await ref.watch(deviceModelProvider.future);
final deviceSdkVersion = await ref.watch(deviceSdkVersionProvider.future);
final deviceManufacturer =
await ref.watch(deviceManufacturerProvider.future);
final reporter = core.PlaybackReporter(
player,
@ -32,8 +25,8 @@ class PlaybackReporter extends _$PlaybackReporter {
deviceName: deviceName,
deviceModel: deviceModel,
deviceSdkVersion: deviceSdkVersion,
deviceClientName: packageInfo.appName,
deviceClientVersion: packageInfo.version,
deviceClientName: appName,
deviceClientVersion: appVersion,
deviceManufacturer: deviceManufacturer,
);
ref.onDispose(reporter.dispose);

View file

@ -6,7 +6,7 @@ part of 'playback_reporter_provider.dart';
// RiverpodGenerator
// **************************************************************************
String _$playbackReporterHash() => r'f5436d652e51c37bcc684acdaec94e17a97e68e5';
String _$playbackReporterHash() => r'43bde2ac163830b6950303a80cdd915ffcb1943b';
/// See also [PlaybackReporter].
@ProviderFor(PlaybackReporter)

View file

@ -9,7 +9,7 @@ import 'package:vaani/settings/models/app_settings.dart';
Future<void> configurePlayer() async {
// for playing audio on windows, linux
JustAudioMediaKit.ensureInitialized();
JustAudioMediaKit.ensureInitialized(windows: false);
// for configuring how this app will interact with other audio apps
final session = await AudioSession.instance;

View file

@ -8,7 +8,7 @@ import 'package:vaani/features/player/providers/currently_playing_provider.dart'
import 'package:vaani/features/player/view/player_expanded.dart'
show pendingPlayerModals;
import 'package:vaani/features/player/view/widgets/playing_indicator_icon.dart';
import 'package:vaani/main.dart' show appLogger;
import 'package:vaani/globals.dart';
import 'package:vaani/shared/extensions/chapter.dart' show ChapterDuration;
import 'package:vaani/shared/extensions/duration_format.dart'
show DurationFormat;

View file

@ -7,7 +7,7 @@ import 'package:vaani/features/player/view/widgets/speed_selector.dart';
import 'package:vaani/features/sleep_timer/core/sleep_timer.dart';
import 'package:vaani/features/sleep_timer/providers/sleep_timer_provider.dart'
show sleepTimerProvider;
import 'package:vaani/main.dart';
import 'package:vaani/globals.dart';
import 'package:vaani/settings/app_settings_provider.dart';
import 'package:vaani/shared/extensions/duration_format.dart';

View file

@ -12,7 +12,7 @@ import 'package:vaani/features/onboarding/view/user_login.dart'
import 'package:vaani/features/player/view/mini_player_bottom_padding.dart'
show MiniPlayerBottomPadding;
import 'package:vaani/generated/l10n.dart';
import 'package:vaani/main.dart' show appLogger;
import 'package:vaani/globals.dart';
import 'package:vaani/router/router.dart' show Routes;
import 'package:vaani/settings/api_settings_provider.dart'
show apiSettingsProvider;

View file

@ -1,15 +1,15 @@
import 'dart:io' show Platform;
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:shelfsdk/audiobookshelf_api.dart' show Library;
import 'package:vaani/api/library_provider.dart';
import 'package:vaani/generated/l10n.dart';
import 'package:vaani/globals.dart';
import 'package:vaani/settings/api_settings_provider.dart'
show apiSettingsProvider;
import 'package:vaani/shared/icons/abs_icons.dart';
import 'dart:io' show Platform;
import 'package:flutter/foundation.dart';
import 'package:vaani/main.dart' show appLogger;
class LibrarySwitchChip extends HookConsumerWidget {
const LibrarySwitchChip({

View file

@ -6,8 +6,8 @@ import 'package:vaani/api/library_provider.dart' show librariesProvider;
import 'package:vaani/features/player/view/mini_player_bottom_padding.dart';
import 'package:vaani/features/you/view/widgets/library_switch_chip.dart';
import 'package:vaani/generated/l10n.dart';
import 'package:vaani/globals.dart';
import 'package:vaani/router/router.dart';
import 'package:vaani/settings/constants.dart';
import 'package:vaani/shared/utils.dart';
import 'package:vaani/shared/widgets/not_implemented.dart';
import 'package:vaani/shared/widgets/vaani_logo.dart';
@ -141,17 +141,16 @@ class YouPage extends HookConsumerWidget {
),
AboutListTile(
icon: const Icon(Icons.info),
applicationName: AppMetadata.appName,
applicationVersion: AppMetadata.version,
applicationLegalese:
'Made with ❤️ by ${AppMetadata.author}',
applicationName: appName,
applicationVersion: appVersion,
applicationLegalese: 'Made with ❤️ by $appAuthor',
aboutBoxChildren: [
// link to github repo
ListTile(
leading: Icon(Icons.code),
title: Text('Source Code'),
onTap: () {
handleLaunchUrl(AppMetadata.githubRepo);
handleLaunchUrl(githubRepo);
},
),
],