mirror of
https://github.com/Dr-Blank/Vaani.git
synced 2025-12-06 11:09:28 +00:00
change name to vaani
This commit is contained in:
parent
3f496c57c4
commit
d0f1f01dde
59 changed files with 244 additions and 239 deletions
|
|
@ -42,7 +42,7 @@ android {
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||||
applicationId "com.example.whispering_pages"
|
applicationId "dr.blank.vaani"
|
||||||
// You can update the following values to match your application needs.
|
// You can update the following values to match your application needs.
|
||||||
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
|
||||||
minSdkVersion 23
|
minSdkVersion 23
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@ import 'dart:convert';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:whispering_pages/db/cache_manager.dart';
|
import 'package:vaani/db/cache_manager.dart';
|
||||||
import 'package:whispering_pages/settings/api_settings_provider.dart';
|
import 'package:vaani/settings/api_settings_provider.dart';
|
||||||
|
|
||||||
part 'api_provider.g.dart';
|
part 'api_provider.g.dart';
|
||||||
|
|
||||||
|
|
@ -28,9 +28,6 @@ AudiobookshelfApi audiobookshelfApi(AudiobookshelfApiRef ref, Uri? baseUrl) {
|
||||||
// try to get the base url from app settings
|
// try to get the base url from app settings
|
||||||
final apiSettings = ref.watch(apiSettingsProvider);
|
final apiSettings = ref.watch(apiSettingsProvider);
|
||||||
baseUrl ??= apiSettings.activeServer?.serverUrl;
|
baseUrl ??= apiSettings.activeServer?.serverUrl;
|
||||||
if (baseUrl == null) {
|
|
||||||
throw ArgumentError.notNull('baseUrl');
|
|
||||||
}
|
|
||||||
return AudiobookshelfApi(
|
return AudiobookshelfApi(
|
||||||
baseUrl: makeBaseUrl(baseUrl.toString()),
|
baseUrl: makeBaseUrl(baseUrl.toString()),
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ part of 'api_provider.dart';
|
||||||
// RiverpodGenerator
|
// RiverpodGenerator
|
||||||
// **************************************************************************
|
// **************************************************************************
|
||||||
|
|
||||||
String _$audiobookshelfApiHash() => r'de9cbf9ec0647ac84366e0dc0a175f069d112c0a';
|
String _$audiobookshelfApiHash() => r'2c310ea77fea9918ccf96180a92075acd037bd95';
|
||||||
|
|
||||||
/// Copied from Dart SDK
|
/// Copied from Dart SDK
|
||||||
class _SystemHash {
|
class _SystemHash {
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
import 'package:whispering_pages/api/server_provider.dart'
|
import 'package:vaani/api/server_provider.dart'
|
||||||
show audiobookShelfServerProvider;
|
show audiobookShelfServerProvider;
|
||||||
import 'package:whispering_pages/db/storage.dart';
|
import 'package:vaani/db/storage.dart';
|
||||||
import 'package:whispering_pages/settings/api_settings_provider.dart';
|
import 'package:vaani/settings/api_settings_provider.dart';
|
||||||
import 'package:whispering_pages/settings/models/audiobookshelf_server.dart';
|
import 'package:vaani/settings/models/audiobookshelf_server.dart';
|
||||||
import 'package:whispering_pages/settings/models/authenticated_user.dart'
|
import 'package:vaani/settings/models/authenticated_user.dart'
|
||||||
as model;
|
as model;
|
||||||
|
|
||||||
part 'authenticated_user_provider.g.dart';
|
part 'authenticated_user_provider.g.dart';
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@ import 'dart:typed_data';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:whispering_pages/api/api_provider.dart';
|
import 'package:vaani/api/api_provider.dart';
|
||||||
import 'package:whispering_pages/db/cache_manager.dart';
|
import 'package:vaani/db/cache_manager.dart';
|
||||||
|
|
||||||
/// provides cover images for the audiobooks
|
/// provides cover images for the audiobooks
|
||||||
///
|
///
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,10 @@ import 'dart:convert';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart' as shelfsdk;
|
import 'package:shelfsdk/audiobookshelf_api.dart' as shelfsdk;
|
||||||
import 'package:whispering_pages/api/api_provider.dart';
|
import 'package:vaani/api/api_provider.dart';
|
||||||
import 'package:whispering_pages/db/cache/cache_key.dart';
|
import 'package:vaani/db/cache/cache_key.dart';
|
||||||
import 'package:whispering_pages/db/cache_manager.dart';
|
import 'package:vaani/db/cache_manager.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/model_conversions.dart';
|
import 'package:vaani/shared/extensions/model_conversions.dart';
|
||||||
|
|
||||||
part 'library_item_provider.g.dart';
|
part 'library_item_provider.g.dart';
|
||||||
|
|
||||||
|
|
@ -30,7 +30,8 @@ class LibraryItem extends _$LibraryItem {
|
||||||
await apiResponseCacheManager.getFileFromCache(key);
|
await apiResponseCacheManager.getFileFromCache(key);
|
||||||
if (cachedFile != null) {
|
if (cachedFile != null) {
|
||||||
_logger.fine(
|
_logger.fine(
|
||||||
'LibraryItemProvider reading from cache for $id from ${cachedFile.file}');
|
'LibraryItemProvider reading from cache for $id from ${cachedFile.file}',
|
||||||
|
);
|
||||||
// read file as json
|
// read file as json
|
||||||
final cachedItem = shelfsdk.LibraryItemExpanded.fromJson(
|
final cachedItem = shelfsdk.LibraryItemExpanded.fromJson(
|
||||||
jsonDecode(await cachedFile.file.readAsString()),
|
jsonDecode(await cachedFile.file.readAsString()),
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
import 'package:whispering_pages/api/authenticated_user_provider.dart';
|
import 'package:vaani/api/authenticated_user_provider.dart';
|
||||||
import 'package:whispering_pages/db/storage.dart';
|
import 'package:vaani/db/storage.dart';
|
||||||
import 'package:whispering_pages/settings/api_settings_provider.dart';
|
import 'package:vaani/settings/api_settings_provider.dart';
|
||||||
import 'package:whispering_pages/settings/models/audiobookshelf_server.dart'
|
import 'package:vaani/settings/models/audiobookshelf_server.dart'
|
||||||
as model;
|
as model;
|
||||||
|
|
||||||
part 'server_provider.g.dart';
|
part 'server_provider.g.dart';
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/foundation.dart' show immutable;
|
import 'package:flutter/foundation.dart' show immutable;
|
||||||
import 'package:hive/hive.dart';
|
import 'package:hive/hive.dart';
|
||||||
import 'package:whispering_pages/settings/models/models.dart';
|
import 'package:vaani/settings/models/models.dart';
|
||||||
|
|
||||||
@immutable
|
@immutable
|
||||||
class AvailableHiveBoxes {
|
class AvailableHiveBoxes {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
|
import 'package:flutter_cache_manager/flutter_cache_manager.dart';
|
||||||
import 'package:whispering_pages/settings/constants.dart';
|
import 'package:vaani/settings/constants.dart';
|
||||||
|
|
||||||
final imageCacheManager = CacheManager(
|
final imageCacheManager = CacheManager(
|
||||||
Config(
|
Config(
|
||||||
|
|
|
||||||
|
|
@ -6,14 +6,14 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:hive/hive.dart';
|
import 'package:hive/hive.dart';
|
||||||
import 'package:path/path.dart' as p;
|
import 'package:path/path.dart' as p;
|
||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
import 'package:whispering_pages/settings/constants.dart';
|
import 'package:vaani/settings/constants.dart';
|
||||||
|
|
||||||
import 'register_models.dart';
|
import 'register_models.dart';
|
||||||
|
|
||||||
Future initStorage() async {
|
Future initStorage() async {
|
||||||
final dir = await getApplicationDocumentsDirectory();
|
final dir = await getApplicationDocumentsDirectory();
|
||||||
|
|
||||||
// use whispering_pages as the directory for hive
|
// use vaani as the directory for hive
|
||||||
final storageDir = Directory(p.join(
|
final storageDir = Directory(p.join(
|
||||||
dir.path,
|
dir.path,
|
||||||
AppMetadata.appNameLowerCase,
|
AppMetadata.appNameLowerCase,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:hive/hive.dart';
|
import 'package:hive/hive.dart';
|
||||||
import 'package:whispering_pages/settings/models/models.dart';
|
import 'package:vaani/settings/models/models.dart';
|
||||||
|
|
||||||
// register all models to Hive for serialization
|
// register all models to Hive for serialization
|
||||||
Future registerModels() async {
|
Future registerModels() async {
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import 'package:background_downloader/background_downloader.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:path_provider/path_provider.dart';
|
import 'package:path_provider/path_provider.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/model_conversions.dart';
|
import 'package:vaani/shared/extensions/model_conversions.dart';
|
||||||
|
|
||||||
final _logger = Logger('AudiobookDownloadManager');
|
final _logger = Logger('AudiobookDownloadManager');
|
||||||
final tq = MemoryTaskQueue();
|
final tq = MemoryTaskQueue();
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
import 'package:background_downloader/background_downloader.dart';
|
import 'package:background_downloader/background_downloader.dart';
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:whispering_pages/api/api_provider.dart';
|
import 'package:vaani/api/api_provider.dart';
|
||||||
import 'package:whispering_pages/features/downloads/core/download_manager.dart'
|
import 'package:vaani/features/downloads/core/download_manager.dart'
|
||||||
as core;
|
as core;
|
||||||
import 'package:whispering_pages/settings/app_settings_provider.dart';
|
import 'package:vaani/settings/app_settings_provider.dart';
|
||||||
|
|
||||||
part 'download_manager.g.dart';
|
part 'download_manager.g.dart';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:whispering_pages/features/downloads/providers/download_manager.dart';
|
import 'package:vaani/features/downloads/providers/download_manager.dart';
|
||||||
|
|
||||||
class DownloadsPage extends HookConsumerWidget {
|
class DownloadsPage extends HookConsumerWidget {
|
||||||
const DownloadsPage({super.key});
|
const DownloadsPage({super.key});
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:whispering_pages/api/api_provider.dart';
|
import 'package:vaani/api/api_provider.dart';
|
||||||
import 'package:whispering_pages/settings/api_settings_provider.dart';
|
import 'package:vaani/settings/api_settings_provider.dart';
|
||||||
|
|
||||||
part 'search_result_provider.g.dart';
|
part 'search_result_provider.g.dart';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,17 +5,17 @@ import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:whispering_pages/api/api_provider.dart';
|
import 'package:vaani/api/api_provider.dart';
|
||||||
import 'package:whispering_pages/api/image_provider.dart';
|
import 'package:vaani/api/image_provider.dart';
|
||||||
import 'package:whispering_pages/api/library_item_provider.dart';
|
import 'package:vaani/api/library_item_provider.dart';
|
||||||
import 'package:whispering_pages/constants/hero_tag_conventions.dart';
|
import 'package:vaani/constants/hero_tag_conventions.dart';
|
||||||
import 'package:whispering_pages/features/explore/providers/search_controller.dart';
|
import 'package:vaani/features/explore/providers/search_controller.dart';
|
||||||
import 'package:whispering_pages/features/explore/view/search_result_page.dart';
|
import 'package:vaani/features/explore/view/search_result_page.dart';
|
||||||
import 'package:whispering_pages/router/router.dart';
|
import 'package:vaani/router/router.dart';
|
||||||
import 'package:whispering_pages/settings/api_settings_provider.dart';
|
import 'package:vaani/settings/api_settings_provider.dart';
|
||||||
import 'package:whispering_pages/settings/app_settings_provider.dart';
|
import 'package:vaani/settings/app_settings_provider.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/model_conversions.dart';
|
import 'package:vaani/shared/extensions/model_conversions.dart';
|
||||||
import 'package:whispering_pages/shared/widgets/shelves/book_shelf.dart';
|
import 'package:vaani/shared/widgets/shelves/book_shelf.dart';
|
||||||
|
|
||||||
const Duration debounceDuration = Duration(milliseconds: 500);
|
const Duration debounceDuration = Duration(milliseconds: 500);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:whispering_pages/features/explore/providers/search_result_provider.dart';
|
import 'package:vaani/features/explore/providers/search_result_provider.dart';
|
||||||
import 'package:whispering_pages/features/explore/view/explore_page.dart';
|
import 'package:vaani/features/explore/view/explore_page.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/model_conversions.dart';
|
import 'package:vaani/shared/extensions/model_conversions.dart';
|
||||||
|
|
||||||
enum SearchResultCategory {
|
enum SearchResultCategory {
|
||||||
books,
|
books,
|
||||||
|
|
|
||||||
|
|
@ -3,22 +3,22 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart' as shelfsdk;
|
import 'package:shelfsdk/audiobookshelf_api.dart' as shelfsdk;
|
||||||
import 'package:whispering_pages/api/library_item_provider.dart';
|
import 'package:vaani/api/library_item_provider.dart';
|
||||||
import 'package:whispering_pages/constants/hero_tag_conventions.dart';
|
import 'package:vaani/constants/hero_tag_conventions.dart';
|
||||||
import 'package:whispering_pages/features/downloads/providers/download_manager.dart'
|
import 'package:vaani/features/downloads/providers/download_manager.dart'
|
||||||
show
|
show
|
||||||
downloadHistoryProvider,
|
downloadHistoryProvider,
|
||||||
downloadStatusProvider,
|
downloadStatusProvider,
|
||||||
simpleDownloadManagerProvider;
|
simpleDownloadManagerProvider;
|
||||||
import 'package:whispering_pages/features/item_viewer/view/library_item_page.dart';
|
import 'package:vaani/features/item_viewer/view/library_item_page.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/audiobook_player.dart';
|
import 'package:vaani/features/player/providers/audiobook_player.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/player_form.dart';
|
import 'package:vaani/features/player/providers/player_form.dart';
|
||||||
import 'package:whispering_pages/main.dart';
|
import 'package:vaani/main.dart';
|
||||||
import 'package:whispering_pages/router/router.dart';
|
import 'package:vaani/router/router.dart';
|
||||||
import 'package:whispering_pages/settings/api_settings_provider.dart';
|
import 'package:vaani/settings/api_settings_provider.dart';
|
||||||
import 'package:whispering_pages/settings/app_settings_provider.dart';
|
import 'package:vaani/settings/app_settings_provider.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/model_conversions.dart';
|
import 'package:vaani/shared/extensions/model_conversions.dart';
|
||||||
import 'package:whispering_pages/shared/utils.dart';
|
import 'package:vaani/shared/utils.dart';
|
||||||
|
|
||||||
class LibraryItemActions extends HookConsumerWidget {
|
class LibraryItemActions extends HookConsumerWidget {
|
||||||
LibraryItemActions({
|
LibraryItemActions({
|
||||||
|
|
|
||||||
|
|
@ -4,16 +4,16 @@ import 'package:flutter_animate/flutter_animate.dart';
|
||||||
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart' as shelfsdk;
|
import 'package:shelfsdk/audiobookshelf_api.dart' as shelfsdk;
|
||||||
import 'package:whispering_pages/api/image_provider.dart';
|
import 'package:vaani/api/image_provider.dart';
|
||||||
import 'package:whispering_pages/constants/hero_tag_conventions.dart';
|
import 'package:vaani/constants/hero_tag_conventions.dart';
|
||||||
import 'package:whispering_pages/features/item_viewer/view/library_item_page.dart';
|
import 'package:vaani/features/item_viewer/view/library_item_page.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/audiobook_player.dart';
|
import 'package:vaani/features/player/providers/audiobook_player.dart';
|
||||||
import 'package:whispering_pages/main.dart';
|
import 'package:vaani/main.dart';
|
||||||
import 'package:whispering_pages/router/models/library_item_extras.dart';
|
import 'package:vaani/router/models/library_item_extras.dart';
|
||||||
import 'package:whispering_pages/settings/app_settings_provider.dart';
|
import 'package:vaani/settings/app_settings_provider.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/duration_format.dart';
|
import 'package:vaani/shared/extensions/duration_format.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/model_conversions.dart';
|
import 'package:vaani/shared/extensions/model_conversions.dart';
|
||||||
import 'package:whispering_pages/shared/widgets/shelves/book_shelf.dart';
|
import 'package:vaani/shared/widgets/shelves/book_shelf.dart';
|
||||||
|
|
||||||
class LibraryItemHeroSection extends HookConsumerWidget {
|
class LibraryItemHeroSection extends HookConsumerWidget {
|
||||||
const LibraryItemHeroSection({
|
const LibraryItemHeroSection({
|
||||||
|
|
|
||||||
|
|
@ -4,14 +4,14 @@ import 'package:animated_theme_switcher/animated_theme_switcher.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_animate/flutter_animate.dart';
|
import 'package:flutter_animate/flutter_animate.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:whispering_pages/api/library_item_provider.dart';
|
import 'package:vaani/api/library_item_provider.dart';
|
||||||
import 'package:whispering_pages/features/item_viewer/view/library_item_sliver_app_bar.dart';
|
import 'package:vaani/features/item_viewer/view/library_item_sliver_app_bar.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/player_form.dart';
|
import 'package:vaani/features/player/providers/player_form.dart';
|
||||||
import 'package:whispering_pages/router/models/library_item_extras.dart';
|
import 'package:vaani/router/models/library_item_extras.dart';
|
||||||
import 'package:whispering_pages/settings/app_settings_provider.dart';
|
import 'package:vaani/settings/app_settings_provider.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/model_conversions.dart';
|
import 'package:vaani/shared/extensions/model_conversions.dart';
|
||||||
import 'package:whispering_pages/shared/widgets/expandable_description.dart';
|
import 'package:vaani/shared/widgets/expandable_description.dart';
|
||||||
import 'package:whispering_pages/theme/theme_from_cover_provider.dart';
|
import 'package:vaani/theme/theme_from_cover_provider.dart';
|
||||||
|
|
||||||
import 'library_item_actions.dart';
|
import 'library_item_actions.dart';
|
||||||
import 'library_item_hero_section.dart';
|
import 'library_item_hero_section.dart';
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:whispering_pages/router/router.dart';
|
import 'package:vaani/router/router.dart';
|
||||||
|
|
||||||
class LibraryBrowserPage extends HookConsumerWidget {
|
class LibraryBrowserPage extends HookConsumerWidget {
|
||||||
const LibraryBrowserPage({super.key});
|
const LibraryBrowserPage({super.key});
|
||||||
|
|
|
||||||
|
|
@ -3,15 +3,15 @@ import 'package:flutter_animate/flutter_animate.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:whispering_pages/api/api_provider.dart';
|
import 'package:vaani/api/api_provider.dart';
|
||||||
import 'package:whispering_pages/api/authenticated_user_provider.dart';
|
import 'package:vaani/api/authenticated_user_provider.dart';
|
||||||
import 'package:whispering_pages/api/server_provider.dart';
|
import 'package:vaani/api/server_provider.dart';
|
||||||
import 'package:whispering_pages/features/onboarding/view/user_login.dart';
|
import 'package:vaani/features/onboarding/view/user_login.dart';
|
||||||
import 'package:whispering_pages/router/router.dart';
|
import 'package:vaani/router/router.dart';
|
||||||
import 'package:whispering_pages/settings/api_settings_provider.dart';
|
import 'package:vaani/settings/api_settings_provider.dart';
|
||||||
import 'package:whispering_pages/settings/models/models.dart' as model;
|
import 'package:vaani/settings/models/models.dart' as model;
|
||||||
import 'package:whispering_pages/shared/utils.dart';
|
import 'package:vaani/shared/utils.dart';
|
||||||
import 'package:whispering_pages/shared/widgets/add_new_server.dart';
|
import 'package:vaani/shared/widgets/add_new_server.dart';
|
||||||
|
|
||||||
class OnboardingSinglePage extends HookConsumerWidget {
|
class OnboardingSinglePage extends HookConsumerWidget {
|
||||||
const OnboardingSinglePage({
|
const OnboardingSinglePage({
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:lottie/lottie.dart';
|
import 'package:lottie/lottie.dart';
|
||||||
import 'package:whispering_pages/hacks/fix_autofill_losing_focus.dart';
|
import 'package:vaani/hacks/fix_autofill_losing_focus.dart';
|
||||||
|
|
||||||
class UserLogin extends HookConsumerWidget {
|
class UserLogin extends HookConsumerWidget {
|
||||||
UserLogin({
|
UserLogin({
|
||||||
|
|
@ -57,7 +57,7 @@ class UserLogin extends HookConsumerWidget {
|
||||||
labelStyle: TextStyle(
|
labelStyle: TextStyle(
|
||||||
color: Theme.of(context)
|
color: Theme.of(context)
|
||||||
.colorScheme
|
.colorScheme
|
||||||
.onBackground
|
.onSurface
|
||||||
.withOpacity(0.8),
|
.withOpacity(0.8),
|
||||||
),
|
),
|
||||||
border: const OutlineInputBorder(),
|
border: const OutlineInputBorder(),
|
||||||
|
|
@ -79,7 +79,7 @@ class UserLogin extends HookConsumerWidget {
|
||||||
labelStyle: TextStyle(
|
labelStyle: TextStyle(
|
||||||
color: Theme.of(context)
|
color: Theme.of(context)
|
||||||
.colorScheme
|
.colorScheme
|
||||||
.onBackground
|
.onSurface
|
||||||
.withOpacity(0.8),
|
.withOpacity(0.8),
|
||||||
),
|
),
|
||||||
border: const OutlineInputBorder(),
|
border: const OutlineInputBorder(),
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import 'dart:async';
|
||||||
|
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:whispering_pages/features/player/core/audiobook_player.dart';
|
import 'package:vaani/features/player/core/audiobook_player.dart';
|
||||||
|
|
||||||
final _logger = Logger('PlaybackReporter');
|
final _logger = Logger('PlaybackReporter');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
import 'package:package_info_plus/package_info_plus.dart';
|
import 'package:package_info_plus/package_info_plus.dart';
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
import 'package:whispering_pages/api/api_provider.dart';
|
import 'package:vaani/api/api_provider.dart';
|
||||||
import 'package:whispering_pages/features/playback_reporting/core/playback_reporter.dart'
|
import 'package:vaani/features/playback_reporting/core/playback_reporter.dart'
|
||||||
as core;
|
as core;
|
||||||
import 'package:whispering_pages/features/player/providers/audiobook_player.dart';
|
import 'package:vaani/features/player/providers/audiobook_player.dart';
|
||||||
import 'package:whispering_pages/settings/app_settings_provider.dart';
|
import 'package:vaani/settings/app_settings_provider.dart';
|
||||||
import 'package:whispering_pages/settings/metadata/metadata_provider.dart';
|
import 'package:vaani/settings/metadata/metadata_provider.dart';
|
||||||
|
|
||||||
part 'playback_reporter_provider.g.dart';
|
part 'playback_reporter_provider.g.dart';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:whispering_pages/features/player/playlist.dart';
|
import 'package:vaani/features/player/playlist.dart';
|
||||||
|
|
||||||
part 'playlist_provider.g.dart';
|
part 'playlist_provider.g.dart';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
import 'package:whispering_pages/api/api_provider.dart';
|
import 'package:vaani/api/api_provider.dart';
|
||||||
import 'package:whispering_pages/features/player/core/audiobook_player.dart'
|
import 'package:vaani/features/player/core/audiobook_player.dart'
|
||||||
as core;
|
as core;
|
||||||
|
|
||||||
part 'audiobook_player.g.dart';
|
part 'audiobook_player.g.dart';
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/audiobook_player.dart';
|
import 'package:vaani/features/player/providers/audiobook_player.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/model_conversions.dart';
|
import 'package:vaani/shared/extensions/model_conversions.dart';
|
||||||
|
|
||||||
part 'currently_playing_provider.g.dart';
|
part 'currently_playing_provider.g.dart';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,15 +6,15 @@ import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:just_audio/just_audio.dart';
|
import 'package:just_audio/just_audio.dart';
|
||||||
import 'package:miniplayer/miniplayer.dart';
|
import 'package:miniplayer/miniplayer.dart';
|
||||||
import 'package:whispering_pages/api/image_provider.dart';
|
import 'package:vaani/api/image_provider.dart';
|
||||||
import 'package:whispering_pages/api/library_item_provider.dart';
|
import 'package:vaani/api/library_item_provider.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/audiobook_player.dart';
|
import 'package:vaani/features/player/providers/audiobook_player.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/currently_playing_provider.dart';
|
import 'package:vaani/features/player/providers/currently_playing_provider.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/player_form.dart';
|
import 'package:vaani/features/player/providers/player_form.dart';
|
||||||
import 'package:whispering_pages/settings/app_settings_provider.dart';
|
import 'package:vaani/settings/app_settings_provider.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/inverse_lerp.dart';
|
import 'package:vaani/shared/extensions/inverse_lerp.dart';
|
||||||
import 'package:whispering_pages/shared/widgets/shelves/book_shelf.dart';
|
import 'package:vaani/shared/widgets/shelves/book_shelf.dart';
|
||||||
import 'package:whispering_pages/theme/theme_from_cover_provider.dart';
|
import 'package:vaani/theme/theme_from_cover_provider.dart';
|
||||||
|
|
||||||
import 'player_when_expanded.dart';
|
import 'player_when_expanded.dart';
|
||||||
import 'player_when_minimized.dart';
|
import 'player_when_minimized.dart';
|
||||||
|
|
|
||||||
|
|
@ -3,16 +3,16 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:miniplayer/miniplayer.dart';
|
import 'package:miniplayer/miniplayer.dart';
|
||||||
import 'package:whispering_pages/constants/sizes.dart';
|
import 'package:vaani/constants/sizes.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/currently_playing_provider.dart';
|
import 'package:vaani/features/player/providers/currently_playing_provider.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/player_form.dart';
|
import 'package:vaani/features/player/providers/player_form.dart';
|
||||||
import 'package:whispering_pages/features/player/view/audiobook_player.dart';
|
import 'package:vaani/features/player/view/audiobook_player.dart';
|
||||||
import 'package:whispering_pages/features/sleep_timer/core/sleep_timer.dart';
|
import 'package:vaani/features/sleep_timer/core/sleep_timer.dart';
|
||||||
import 'package:whispering_pages/features/sleep_timer/providers/sleep_timer_provider.dart'
|
import 'package:vaani/features/sleep_timer/providers/sleep_timer_provider.dart'
|
||||||
show sleepTimerProvider;
|
show sleepTimerProvider;
|
||||||
import 'package:whispering_pages/settings/app_settings_provider.dart';
|
import 'package:vaani/settings/app_settings_provider.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/inverse_lerp.dart';
|
import 'package:vaani/shared/extensions/inverse_lerp.dart';
|
||||||
import 'package:whispering_pages/shared/widgets/not_implemented.dart';
|
import 'package:vaani/shared/widgets/not_implemented.dart';
|
||||||
|
|
||||||
import 'widgets/audiobook_player_seek_button.dart';
|
import 'widgets/audiobook_player_seek_button.dart';
|
||||||
import 'widgets/audiobook_player_seek_chapter_button.dart';
|
import 'widgets/audiobook_player_seek_chapter_button.dart';
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,11 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:whispering_pages/constants/sizes.dart';
|
import 'package:vaani/constants/sizes.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/audiobook_player.dart';
|
import 'package:vaani/features/player/providers/audiobook_player.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/currently_playing_provider.dart';
|
import 'package:vaani/features/player/providers/currently_playing_provider.dart';
|
||||||
import 'package:whispering_pages/features/player/view/audiobook_player.dart';
|
import 'package:vaani/features/player/view/audiobook_player.dart';
|
||||||
import 'package:whispering_pages/router/router.dart';
|
import 'package:vaani/router/router.dart';
|
||||||
|
|
||||||
class PlayerWhenMinimized extends HookConsumerWidget {
|
class PlayerWhenMinimized extends HookConsumerWidget {
|
||||||
const PlayerWhenMinimized({
|
const PlayerWhenMinimized({
|
||||||
|
|
@ -92,7 +92,7 @@ class PlayerWhenMinimized extends HookConsumerWidget {
|
||||||
style: Theme.of(context).textTheme.bodyMedium!.copyWith(
|
style: Theme.of(context).textTheme.bodyMedium!.copyWith(
|
||||||
color: Theme.of(context)
|
color: Theme.of(context)
|
||||||
.colorScheme
|
.colorScheme
|
||||||
.onBackground
|
.onSurface
|
||||||
.withOpacity(0.7),
|
.withOpacity(0.7),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:whispering_pages/constants/sizes.dart';
|
import 'package:vaani/constants/sizes.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/audiobook_player.dart';
|
import 'package:vaani/features/player/providers/audiobook_player.dart';
|
||||||
|
|
||||||
class AudiobookPlayerSeekButton extends HookConsumerWidget {
|
class AudiobookPlayerSeekButton extends HookConsumerWidget {
|
||||||
const AudiobookPlayerSeekButton({
|
const AudiobookPlayerSeekButton({
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:whispering_pages/constants/sizes.dart';
|
import 'package:vaani/constants/sizes.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/audiobook_player.dart';
|
import 'package:vaani/features/player/providers/audiobook_player.dart';
|
||||||
|
|
||||||
class AudiobookPlayerSeekChapterButton extends HookConsumerWidget {
|
class AudiobookPlayerSeekChapterButton extends HookConsumerWidget {
|
||||||
const AudiobookPlayerSeekChapterButton({
|
const AudiobookPlayerSeekChapterButton({
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_animate/flutter_animate.dart';
|
import 'package:flutter_animate/flutter_animate.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/audiobook_player.dart';
|
import 'package:vaani/features/player/providers/audiobook_player.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/currently_playing_provider.dart';
|
import 'package:vaani/features/player/providers/currently_playing_provider.dart';
|
||||||
import 'package:whispering_pages/features/player/view/player_when_expanded.dart';
|
import 'package:vaani/features/player/view/player_when_expanded.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/chapter.dart';
|
import 'package:vaani/shared/extensions/chapter.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/duration_format.dart';
|
import 'package:vaani/shared/extensions/duration_format.dart';
|
||||||
import 'package:whispering_pages/shared/hooks.dart';
|
import 'package:vaani/shared/hooks.dart';
|
||||||
|
|
||||||
class ChapterSelectionButton extends HookConsumerWidget {
|
class ChapterSelectionButton extends HookConsumerWidget {
|
||||||
const ChapterSelectionButton({
|
const ChapterSelectionButton({
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/audiobook_player.dart';
|
import 'package:vaani/features/player/providers/audiobook_player.dart';
|
||||||
import 'package:whispering_pages/features/player/view/player_when_expanded.dart';
|
import 'package:vaani/features/player/view/player_when_expanded.dart';
|
||||||
import 'package:whispering_pages/features/player/view/widgets/speed_selector.dart';
|
import 'package:vaani/features/player/view/widgets/speed_selector.dart';
|
||||||
|
|
||||||
final _logger = Logger('PlayerSpeedAdjustButton');
|
final _logger = Logger('PlayerSpeedAdjustButton');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:list_wheel_scroll_view_nls/list_wheel_scroll_view_nls.dart';
|
import 'package:list_wheel_scroll_view_nls/list_wheel_scroll_view_nls.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/audiobook_player.dart';
|
import 'package:vaani/features/player/providers/audiobook_player.dart';
|
||||||
import 'package:whispering_pages/settings/app_settings_provider.dart';
|
import 'package:vaani/settings/app_settings_provider.dart';
|
||||||
|
|
||||||
class SpeedSelector extends HookConsumerWidget {
|
class SpeedSelector extends HookConsumerWidget {
|
||||||
const SpeedSelector({
|
const SpeedSelector({
|
||||||
|
|
@ -106,7 +106,7 @@ class SpeedSelector extends HookConsumerWidget {
|
||||||
? 2
|
? 2
|
||||||
: 0.5,
|
: 0.5,
|
||||||
color:
|
color:
|
||||||
Theme.of(context).colorScheme.onBackground,
|
Theme.of(context).colorScheme.onSurface,
|
||||||
),
|
),
|
||||||
// the speed text but only at .5 increments of speed
|
// the speed text but only at .5 increments of speed
|
||||||
if (speed % 0.25 == 0)
|
if (speed % 0.25 == 0)
|
||||||
|
|
@ -115,7 +115,7 @@ class SpeedSelector extends HookConsumerWidget {
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: Theme.of(context)
|
color: Theme.of(context)
|
||||||
.colorScheme
|
.colorScheme
|
||||||
.onBackground,
|
.onSurface,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import 'dart:async';
|
||||||
import 'package:flutter_animate/flutter_animate.dart';
|
import 'package:flutter_animate/flutter_animate.dart';
|
||||||
import 'package:just_audio/just_audio.dart';
|
import 'package:just_audio/just_audio.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:whispering_pages/features/player/core/audiobook_player.dart';
|
import 'package:vaani/features/player/core/audiobook_player.dart';
|
||||||
|
|
||||||
/// this timer pauses the music player after a certain duration
|
/// this timer pauses the music player after a certain duration
|
||||||
///
|
///
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,9 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/audiobook_player.dart';
|
import 'package:vaani/features/player/providers/audiobook_player.dart';
|
||||||
import 'package:whispering_pages/features/sleep_timer/core/sleep_timer.dart'
|
import 'package:vaani/features/sleep_timer/core/sleep_timer.dart'
|
||||||
as core;
|
as core;
|
||||||
import 'package:whispering_pages/settings/app_settings_provider.dart';
|
import 'package:vaani/settings/app_settings_provider.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/time_of_day.dart';
|
|
||||||
|
|
||||||
part 'sleep_timer_provider.g.dart';
|
part 'sleep_timer_provider.g.dart';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,13 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:whispering_pages/api/api_provider.dart';
|
import 'package:vaani/api/api_provider.dart';
|
||||||
import 'package:whispering_pages/api/authenticated_user_provider.dart';
|
import 'package:vaani/api/authenticated_user_provider.dart';
|
||||||
import 'package:whispering_pages/api/server_provider.dart';
|
import 'package:vaani/api/server_provider.dart';
|
||||||
import 'package:whispering_pages/router/router.dart';
|
import 'package:vaani/router/router.dart';
|
||||||
import 'package:whispering_pages/settings/api_settings_provider.dart';
|
import 'package:vaani/settings/api_settings_provider.dart';
|
||||||
import 'package:whispering_pages/settings/models/models.dart' as model;
|
import 'package:vaani/settings/models/models.dart' as model;
|
||||||
import 'package:whispering_pages/shared/widgets/add_new_server.dart';
|
import 'package:vaani/shared/widgets/add_new_server.dart';
|
||||||
|
|
||||||
class ServerManagerPage extends HookConsumerWidget {
|
class ServerManagerPage extends HookConsumerWidget {
|
||||||
const ServerManagerPage({
|
const ServerManagerPage({
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:whispering_pages/api/api_provider.dart';
|
import 'package:vaani/api/api_provider.dart';
|
||||||
import 'package:whispering_pages/router/router.dart';
|
import 'package:vaani/router/router.dart';
|
||||||
import 'package:whispering_pages/shared/utils.dart';
|
import 'package:vaani/shared/utils.dart';
|
||||||
import 'package:whispering_pages/shared/widgets/not_implemented.dart';
|
import 'package:vaani/shared/widgets/not_implemented.dart';
|
||||||
|
|
||||||
class YouPage extends HookConsumerWidget {
|
class YouPage extends HookConsumerWidget {
|
||||||
const YouPage({
|
const YouPage({
|
||||||
|
|
|
||||||
|
|
@ -6,20 +6,20 @@ import 'package:just_audio_background/just_audio_background.dart'
|
||||||
import 'package:just_audio_media_kit/just_audio_media_kit.dart'
|
import 'package:just_audio_media_kit/just_audio_media_kit.dart'
|
||||||
show JustAudioMediaKit;
|
show JustAudioMediaKit;
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:whispering_pages/api/server_provider.dart';
|
import 'package:vaani/api/server_provider.dart';
|
||||||
import 'package:whispering_pages/db/storage.dart';
|
import 'package:vaani/db/storage.dart';
|
||||||
import 'package:whispering_pages/features/downloads/core/download_manager.dart';
|
import 'package:vaani/features/downloads/core/download_manager.dart';
|
||||||
import 'package:whispering_pages/features/downloads/providers/download_manager.dart';
|
import 'package:vaani/features/downloads/providers/download_manager.dart';
|
||||||
import 'package:whispering_pages/features/playback_reporting/providers/playback_reporter_provider.dart';
|
import 'package:vaani/features/playback_reporting/providers/playback_reporter_provider.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/audiobook_player.dart';
|
import 'package:vaani/features/player/providers/audiobook_player.dart';
|
||||||
import 'package:whispering_pages/features/sleep_timer/providers/sleep_timer_provider.dart';
|
import 'package:vaani/features/sleep_timer/providers/sleep_timer_provider.dart';
|
||||||
import 'package:whispering_pages/router/router.dart';
|
import 'package:vaani/router/router.dart';
|
||||||
import 'package:whispering_pages/settings/api_settings_provider.dart';
|
import 'package:vaani/settings/api_settings_provider.dart';
|
||||||
import 'package:whispering_pages/settings/app_settings_provider.dart';
|
import 'package:vaani/settings/app_settings_provider.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/duration_format.dart';
|
import 'package:vaani/shared/extensions/duration_format.dart';
|
||||||
import 'package:whispering_pages/theme/theme.dart';
|
import 'package:vaani/theme/theme.dart';
|
||||||
|
|
||||||
final appLogger = Logger('whispering_pages');
|
final appLogger = Logger('vaani');
|
||||||
|
|
||||||
void main() async {
|
void main() async {
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
|
|
@ -44,7 +44,7 @@ void main() async {
|
||||||
|
|
||||||
// for playing audio in the background
|
// for playing audio in the background
|
||||||
await JustAudioBackground.init(
|
await JustAudioBackground.init(
|
||||||
androidNotificationChannelId: 'com.whispering_pages.bg_demo.channel.audio',
|
androidNotificationChannelId: 'com.vaani.bg_demo.channel.audio',
|
||||||
androidNotificationChannelName: 'Audio playback',
|
androidNotificationChannelName: 'Audio playback',
|
||||||
androidNotificationOngoing: true,
|
androidNotificationOngoing: true,
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:whispering_pages/api/api_provider.dart';
|
import 'package:vaani/api/api_provider.dart';
|
||||||
import 'package:whispering_pages/settings/app_settings_provider.dart';
|
import 'package:vaani/settings/app_settings_provider.dart';
|
||||||
|
|
||||||
import '../shared/widgets/shelves/home_shelf.dart';
|
import '../shared/widgets/shelves/home_shelf.dart';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:whispering_pages/api/api_provider.dart';
|
import 'package:vaani/api/api_provider.dart';
|
||||||
import 'package:whispering_pages/settings/api_settings_provider.dart';
|
import 'package:vaani/settings/api_settings_provider.dart';
|
||||||
|
|
||||||
import '../shared/widgets/drawer.dart';
|
import '../shared/widgets/drawer.dart';
|
||||||
import '../shared/widgets/shelves/home_shelf.dart';
|
import '../shared/widgets/shelves/home_shelf.dart';
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,16 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:whispering_pages/features/downloads/view/downloads_page.dart';
|
import 'package:vaani/features/downloads/view/downloads_page.dart';
|
||||||
import 'package:whispering_pages/features/explore/view/explore_page.dart';
|
import 'package:vaani/features/explore/view/explore_page.dart';
|
||||||
import 'package:whispering_pages/features/explore/view/search_result_page.dart';
|
import 'package:vaani/features/explore/view/search_result_page.dart';
|
||||||
import 'package:whispering_pages/features/item_viewer/view/library_item_page.dart';
|
import 'package:vaani/features/item_viewer/view/library_item_page.dart';
|
||||||
import 'package:whispering_pages/features/library_browser/view/library_browser_page.dart';
|
import 'package:vaani/features/library_browser/view/library_browser_page.dart';
|
||||||
import 'package:whispering_pages/features/onboarding/view/onboarding_single_page.dart';
|
import 'package:vaani/features/onboarding/view/onboarding_single_page.dart';
|
||||||
import 'package:whispering_pages/features/you/view/server_manager.dart';
|
import 'package:vaani/features/you/view/server_manager.dart';
|
||||||
import 'package:whispering_pages/features/you/view/you_page.dart';
|
import 'package:vaani/features/you/view/you_page.dart';
|
||||||
import 'package:whispering_pages/pages/home_page.dart';
|
import 'package:vaani/pages/home_page.dart';
|
||||||
import 'package:whispering_pages/settings/view/app_settings_page.dart';
|
import 'package:vaani/settings/view/app_settings_page.dart';
|
||||||
import 'package:whispering_pages/settings/view/auto_sleep_timer_settings_page.dart';
|
import 'package:vaani/settings/view/auto_sleep_timer_settings_page.dart';
|
||||||
|
|
||||||
import 'scaffold_with_nav_bar.dart';
|
import 'scaffold_with_nav_bar.dart';
|
||||||
import 'transitions/slide.dart';
|
import 'transitions/slide.dart';
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,10 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:miniplayer/miniplayer.dart';
|
import 'package:miniplayer/miniplayer.dart';
|
||||||
import 'package:whispering_pages/features/explore/providers/search_controller.dart';
|
import 'package:vaani/features/explore/providers/search_controller.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/player_form.dart';
|
import 'package:vaani/features/player/providers/player_form.dart';
|
||||||
import 'package:whispering_pages/features/player/view/audiobook_player.dart';
|
import 'package:vaani/features/player/view/audiobook_player.dart';
|
||||||
import 'package:whispering_pages/features/player/view/player_when_expanded.dart';
|
import 'package:vaani/features/player/view/player_when_expanded.dart';
|
||||||
|
|
||||||
// stack to track changes in navigationShell.currentIndex
|
// stack to track changes in navigationShell.currentIndex
|
||||||
// home is always at index 0 and at the start and should be the last before popping
|
// home is always at index 0 and at the start and should be the last before popping
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
import 'package:whispering_pages/db/available_boxes.dart';
|
import 'package:vaani/db/available_boxes.dart';
|
||||||
import 'package:whispering_pages/settings/models/api_settings.dart' as model;
|
import 'package:vaani/settings/models/api_settings.dart' as model;
|
||||||
|
|
||||||
part 'api_settings_provider.g.dart';
|
part 'api_settings_provider.g.dart';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
import 'package:whispering_pages/db/available_boxes.dart';
|
import 'package:vaani/db/available_boxes.dart';
|
||||||
import 'package:whispering_pages/settings/models/app_settings.dart' as model;
|
import 'package:vaani/settings/models/app_settings.dart' as model;
|
||||||
|
|
||||||
part 'app_settings_provider.g.dart';
|
part 'app_settings_provider.g.dart';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
// a freezed class to store the settings of the app
|
// a freezed class to store the settings of the app
|
||||||
|
|
||||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||||
import 'package:whispering_pages/settings/models/audiobookshelf_server.dart';
|
import 'package:vaani/settings/models/audiobookshelf_server.dart';
|
||||||
import 'package:whispering_pages/settings/models/authenticated_user.dart';
|
import 'package:vaani/settings/models/authenticated_user.dart';
|
||||||
|
|
||||||
part 'api_settings.freezed.dart';
|
part 'api_settings.freezed.dart';
|
||||||
part 'api_settings.g.dart';
|
part 'api_settings.g.dart';
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
import 'package:freezed_annotation/freezed_annotation.dart';
|
||||||
import 'package:whispering_pages/settings/models/audiobookshelf_server.dart';
|
import 'package:vaani/settings/models/audiobookshelf_server.dart';
|
||||||
|
|
||||||
part 'authenticated_user.freezed.dart';
|
part 'authenticated_user.freezed.dart';
|
||||||
part 'authenticated_user.g.dart';
|
part 'authenticated_user.g.dart';
|
||||||
|
|
|
||||||
|
|
@ -6,11 +6,11 @@ import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:flutter_settings_ui/flutter_settings_ui.dart';
|
import 'package:flutter_settings_ui/flutter_settings_ui.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:whispering_pages/api/authenticated_user_provider.dart';
|
import 'package:vaani/api/authenticated_user_provider.dart';
|
||||||
import 'package:whispering_pages/api/server_provider.dart';
|
import 'package:vaani/api/server_provider.dart';
|
||||||
import 'package:whispering_pages/router/router.dart';
|
import 'package:vaani/router/router.dart';
|
||||||
import 'package:whispering_pages/settings/app_settings_provider.dart';
|
import 'package:vaani/settings/app_settings_provider.dart';
|
||||||
import 'package:whispering_pages/settings/models/app_settings.dart' as model;
|
import 'package:vaani/settings/models/app_settings.dart' as model;
|
||||||
|
|
||||||
class AppSettingsPage extends HookConsumerWidget {
|
class AppSettingsPage extends HookConsumerWidget {
|
||||||
const AppSettingsPage({
|
const AppSettingsPage({
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_settings_ui/flutter_settings_ui.dart';
|
import 'package:flutter_settings_ui/flutter_settings_ui.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:whispering_pages/settings/app_settings_provider.dart';
|
import 'package:vaani/settings/app_settings_provider.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/time_of_day.dart';
|
import 'package:vaani/shared/extensions/time_of_day.dart';
|
||||||
|
|
||||||
class AutoSleepTimerSettingsPage extends HookConsumerWidget {
|
class AutoSleepTimerSettingsPage extends HookConsumerWidget {
|
||||||
const AutoSleepTimerSettingsPage({
|
const AutoSleepTimerSettingsPage({
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:whispering_pages/api/api_provider.dart';
|
import 'package:vaani/api/api_provider.dart';
|
||||||
|
|
||||||
class AddNewServer extends HookConsumerWidget {
|
class AddNewServer extends HookConsumerWidget {
|
||||||
const AddNewServer({
|
const AddNewServer({
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
import 'package:whispering_pages/features/you/view/server_manager.dart';
|
import 'package:vaani/features/you/view/server_manager.dart';
|
||||||
import 'package:whispering_pages/router/router.dart';
|
import 'package:vaani/router/router.dart';
|
||||||
|
|
||||||
|
|
||||||
class MyDrawer extends StatelessWidget {
|
class MyDrawer extends StatelessWidget {
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/model_conversions.dart';
|
import 'package:vaani/shared/extensions/model_conversions.dart';
|
||||||
import 'package:whispering_pages/shared/widgets/shelves/home_shelf.dart';
|
import 'package:vaani/shared/widgets/shelves/home_shelf.dart';
|
||||||
|
|
||||||
/// A shelf that displays Authors on the home page
|
/// A shelf that displays Authors on the home page
|
||||||
class AuthorHomeShelf extends HookConsumerWidget {
|
class AuthorHomeShelf extends HookConsumerWidget {
|
||||||
|
|
|
||||||
|
|
@ -6,19 +6,19 @@ import 'package:go_router/go_router.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:shimmer/shimmer.dart' show Shimmer;
|
import 'package:shimmer/shimmer.dart' show Shimmer;
|
||||||
import 'package:whispering_pages/api/api_provider.dart';
|
import 'package:vaani/api/api_provider.dart';
|
||||||
import 'package:whispering_pages/api/image_provider.dart';
|
import 'package:vaani/api/image_provider.dart';
|
||||||
import 'package:whispering_pages/api/library_item_provider.dart'
|
import 'package:vaani/api/library_item_provider.dart'
|
||||||
show libraryItemProvider;
|
show libraryItemProvider;
|
||||||
import 'package:whispering_pages/constants/hero_tag_conventions.dart';
|
import 'package:vaani/constants/hero_tag_conventions.dart';
|
||||||
import 'package:whispering_pages/features/item_viewer/view/library_item_actions.dart';
|
import 'package:vaani/features/item_viewer/view/library_item_actions.dart';
|
||||||
import 'package:whispering_pages/features/player/providers/audiobook_player.dart';
|
import 'package:vaani/features/player/providers/audiobook_player.dart';
|
||||||
import 'package:whispering_pages/router/models/library_item_extras.dart';
|
import 'package:vaani/router/models/library_item_extras.dart';
|
||||||
import 'package:whispering_pages/router/router.dart';
|
import 'package:vaani/router/router.dart';
|
||||||
import 'package:whispering_pages/settings/app_settings_provider.dart';
|
import 'package:vaani/settings/app_settings_provider.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/model_conversions.dart';
|
import 'package:vaani/shared/extensions/model_conversions.dart';
|
||||||
import 'package:whispering_pages/shared/widgets/shelves/home_shelf.dart';
|
import 'package:vaani/shared/widgets/shelves/home_shelf.dart';
|
||||||
import 'package:whispering_pages/theme/theme_from_cover_provider.dart';
|
import 'package:vaani/theme/theme_from_cover_provider.dart';
|
||||||
|
|
||||||
/// A shelf that displays books on the home page
|
/// A shelf that displays books on the home page
|
||||||
class BookHomeShelf extends HookConsumerWidget {
|
class BookHomeShelf extends HookConsumerWidget {
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@ import 'dart:math';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:whispering_pages/shared/extensions/model_conversions.dart';
|
import 'package:vaani/shared/extensions/model_conversions.dart';
|
||||||
import 'package:whispering_pages/shared/widgets/shelves/author_shelf.dart';
|
import 'package:vaani/shared/widgets/shelves/author_shelf.dart';
|
||||||
import 'package:whispering_pages/shared/widgets/shelves/book_shelf.dart';
|
import 'package:vaani/shared/widgets/shelves/book_shelf.dart';
|
||||||
|
|
||||||
/// A shelf that displays books/authors/series on the home page
|
/// A shelf that displays books/authors/series on the home page
|
||||||
///
|
///
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import 'package:flutter_animate/flutter_animate.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
import 'package:riverpod_annotation/riverpod_annotation.dart';
|
||||||
import 'package:shelfsdk/audiobookshelf_api.dart';
|
import 'package:shelfsdk/audiobookshelf_api.dart';
|
||||||
import 'package:whispering_pages/api/image_provider.dart';
|
import 'package:vaani/api/image_provider.dart';
|
||||||
|
|
||||||
part 'theme_from_cover_provider.g.dart';
|
part 'theme_from_cover_provider.g.dart';
|
||||||
|
|
||||||
|
|
|
||||||
16
pubspec.lock
16
pubspec.lock
|
|
@ -843,9 +843,11 @@ packages:
|
||||||
miniplayer:
|
miniplayer:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
path: "../miniplayer"
|
path: "."
|
||||||
relative: true
|
ref: feat-notifier-for-percent-dismissed
|
||||||
source: path
|
resolved-ref: "480f7933deaf0225ceb3a97162efca53610ba840"
|
||||||
|
url: "https://github.com/Dr-Blank/miniplayer.git"
|
||||||
|
source: git
|
||||||
version: "1.0.3"
|
version: "1.0.3"
|
||||||
numberpicker:
|
numberpicker:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
|
|
@ -1090,9 +1092,11 @@ packages:
|
||||||
shelfsdk:
|
shelfsdk:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
path: "../../_dart/shelfsdk"
|
path: "."
|
||||||
relative: true
|
ref: main
|
||||||
source: path
|
resolved-ref: de1ca8c4b1ec83ceafa285558244922959fe447a
|
||||||
|
url: "https://github.com/Dr-Blank/shelfsdk"
|
||||||
|
source: git
|
||||||
version: "1.0.0"
|
version: "1.0.0"
|
||||||
shimmer:
|
shimmer:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
|
|
|
||||||
14
pubspec.yaml
14
pubspec.yaml
|
|
@ -1,5 +1,5 @@
|
||||||
name: whispering_pages
|
name: vaani
|
||||||
description: "A new Flutter project."
|
description: "Audiobookshelf client"
|
||||||
# The following line prevents the package from being accidentally published to
|
# The following line prevents the package from being accidentally published to
|
||||||
# pub.dev using `flutter pub publish`. This is preferred for private packages.
|
# pub.dev using `flutter pub publish`. This is preferred for private packages.
|
||||||
publish_to: "none" # Remove this line if you wish to publish to pub.dev
|
publish_to: "none" # Remove this line if you wish to publish to pub.dev
|
||||||
|
|
@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
|
||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||||
# In Windows, build-name is used as the major, minor, and patch parts
|
# In Windows, build-name is used as the major, minor, and patch parts
|
||||||
# of the product and file versions while build-number is used as the build suffix.
|
# of the product and file versions while build-number is used as the build suffix.
|
||||||
version: 1.0.0+1
|
version: 0.1.0+1
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=3.3.4 <4.0.0"
|
sdk: ">=3.3.4 <4.0.0"
|
||||||
|
|
@ -67,7 +67,9 @@ dependencies:
|
||||||
media_kit_libs_linux: any
|
media_kit_libs_linux: any
|
||||||
media_kit_libs_windows_audio: any
|
media_kit_libs_windows_audio: any
|
||||||
miniplayer:
|
miniplayer:
|
||||||
path: ../miniplayer
|
git:
|
||||||
|
url: https://github.com/Dr-Blank/miniplayer.git
|
||||||
|
ref: feat-notifier-for-percent-dismissed
|
||||||
numberpicker: ^2.1.2
|
numberpicker: ^2.1.2
|
||||||
package_info_plus: ^8.0.0
|
package_info_plus: ^8.0.0
|
||||||
path: ^1.9.0
|
path: ^1.9.0
|
||||||
|
|
@ -77,7 +79,9 @@ dependencies:
|
||||||
scroll_loop_auto_scroll: ^0.0.5
|
scroll_loop_auto_scroll: ^0.0.5
|
||||||
sensors_plus: ^5.0.1
|
sensors_plus: ^5.0.1
|
||||||
shelfsdk:
|
shelfsdk:
|
||||||
path: ../../_dart/shelfsdk
|
git:
|
||||||
|
url: https://github.com/Dr-Blank/shelfsdk
|
||||||
|
ref: main
|
||||||
shimmer: ^3.0.0
|
shimmer: ^3.0.0
|
||||||
url_launcher: ^6.2.6
|
url_launcher: ^6.2.6
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue