mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-07 21:48:14 -08:00
feature: Improved about page (#75)
Co-authored-by: PartyDonut <PartyDonut@users.noreply.github.com>
This commit is contained in:
parent
8dc18c8a3d
commit
62143581ac
8 changed files with 273 additions and 111 deletions
|
|
@ -1029,5 +1029,24 @@
|
||||||
"type": "String"
|
"type": "String"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"aboutVersion": "Version: {version}",
|
||||||
|
"@aboutVersion":{
|
||||||
|
"placeholders": {
|
||||||
|
"version":{
|
||||||
|
"type": "String"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"aboutBuild": "Build: {buildNumber}",
|
||||||
|
"@aboutBuild":{
|
||||||
|
"placeholders": {
|
||||||
|
"buildNumber":{
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"aboutCreatedBy": "Created by DonutWare",
|
||||||
|
"aboutSocials": "Socials",
|
||||||
|
"aboutLicenses": "Licenses"
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -96,6 +96,7 @@ final List<AutoRoute> _settingsChildren = [
|
||||||
page: ClientSettingsRoute.page, initial: true, transitionsBuilder: TransitionsBuilders.fadeIn, path: 'client'),
|
page: ClientSettingsRoute.page, initial: true, transitionsBuilder: TransitionsBuilders.fadeIn, path: 'client'),
|
||||||
CustomRoute(page: SecuritySettingsRoute.page, transitionsBuilder: TransitionsBuilders.fadeIn, path: 'security'),
|
CustomRoute(page: SecuritySettingsRoute.page, transitionsBuilder: TransitionsBuilders.fadeIn, path: 'security'),
|
||||||
CustomRoute(page: PlayerSettingsRoute.page, transitionsBuilder: TransitionsBuilders.fadeIn, path: 'player'),
|
CustomRoute(page: PlayerSettingsRoute.page, transitionsBuilder: TransitionsBuilders.fadeIn, path: 'player'),
|
||||||
|
CustomRoute(page: AboutSettingsRoute.page, transitionsBuilder: TransitionsBuilders.fadeIn, path: 'about'),
|
||||||
];
|
];
|
||||||
|
|
||||||
class LockScreenGuard extends AutoRouteGuard {
|
class LockScreenGuard extends AutoRouteGuard {
|
||||||
|
|
|
||||||
|
|
@ -8,32 +8,52 @@
|
||||||
// coverage:ignore-file
|
// coverage:ignore-file
|
||||||
|
|
||||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||||
import 'package:auto_route/auto_route.dart' as _i14;
|
import 'package:auto_route/auto_route.dart' as _i15;
|
||||||
import 'package:fladder/models/item_base_model.dart' as _i15;
|
import 'package:fladder/models/item_base_model.dart' as _i16;
|
||||||
import 'package:fladder/models/items/photos_model.dart' as _i18;
|
import 'package:fladder/models/items/photos_model.dart' as _i19;
|
||||||
import 'package:fladder/models/library_search/library_search_options.dart'
|
import 'package:fladder/models/library_search/library_search_options.dart'
|
||||||
as _i17;
|
as _i18;
|
||||||
import 'package:fladder/routes/nested_details_screen.dart' as _i3;
|
import 'package:fladder/routes/nested_details_screen.dart' as _i4;
|
||||||
import 'package:fladder/screens/dashboard/dashboard_screen.dart' as _i2;
|
import 'package:fladder/screens/dashboard/dashboard_screen.dart' as _i3;
|
||||||
import 'package:fladder/screens/favourites/favourites_screen.dart' as _i4;
|
import 'package:fladder/screens/favourites/favourites_screen.dart' as _i5;
|
||||||
import 'package:fladder/screens/home_screen.dart' as _i5;
|
import 'package:fladder/screens/home_screen.dart' as _i6;
|
||||||
import 'package:fladder/screens/library_search/library_search_screen.dart'
|
import 'package:fladder/screens/library_search/library_search_screen.dart'
|
||||||
as _i6;
|
as _i7;
|
||||||
import 'package:fladder/screens/login/lock_screen.dart' as _i7;
|
import 'package:fladder/screens/login/lock_screen.dart' as _i8;
|
||||||
import 'package:fladder/screens/login/login_screen.dart' as _i8;
|
import 'package:fladder/screens/login/login_screen.dart' as _i9;
|
||||||
import 'package:fladder/screens/settings/client_settings_page.dart' as _i1;
|
import 'package:fladder/screens/settings/about_settings_page.dart' as _i1;
|
||||||
import 'package:fladder/screens/settings/player_settings_page.dart' as _i9;
|
import 'package:fladder/screens/settings/client_settings_page.dart' as _i2;
|
||||||
import 'package:fladder/screens/settings/security_settings_page.dart' as _i10;
|
import 'package:fladder/screens/settings/player_settings_page.dart' as _i10;
|
||||||
import 'package:fladder/screens/settings/settings_screen.dart' as _i11;
|
import 'package:fladder/screens/settings/security_settings_page.dart' as _i11;
|
||||||
import 'package:fladder/screens/splash_screen.dart' as _i12;
|
import 'package:fladder/screens/settings/settings_screen.dart' as _i12;
|
||||||
import 'package:fladder/screens/syncing/synced_screen.dart' as _i13;
|
import 'package:fladder/screens/splash_screen.dart' as _i13;
|
||||||
import 'package:flutter/foundation.dart' as _i16;
|
import 'package:fladder/screens/syncing/synced_screen.dart' as _i14;
|
||||||
import 'package:flutter/material.dart' as _i19;
|
import 'package:flutter/foundation.dart' as _i17;
|
||||||
|
import 'package:flutter/material.dart' as _i20;
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i1.ClientSettingsPage]
|
/// [_i1.AboutSettingsPage]
|
||||||
class ClientSettingsRoute extends _i14.PageRouteInfo<void> {
|
class AboutSettingsRoute extends _i15.PageRouteInfo<void> {
|
||||||
const ClientSettingsRoute({List<_i14.PageRouteInfo>? children})
|
const AboutSettingsRoute({List<_i15.PageRouteInfo>? children})
|
||||||
|
: super(
|
||||||
|
AboutSettingsRoute.name,
|
||||||
|
initialChildren: children,
|
||||||
|
);
|
||||||
|
|
||||||
|
static const String name = 'AboutSettingsRoute';
|
||||||
|
|
||||||
|
static _i15.PageInfo page = _i15.PageInfo(
|
||||||
|
name,
|
||||||
|
builder: (data) {
|
||||||
|
return const _i1.AboutSettingsPage();
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// generated route for
|
||||||
|
/// [_i2.ClientSettingsPage]
|
||||||
|
class ClientSettingsRoute extends _i15.PageRouteInfo<void> {
|
||||||
|
const ClientSettingsRoute({List<_i15.PageRouteInfo>? children})
|
||||||
: super(
|
: super(
|
||||||
ClientSettingsRoute.name,
|
ClientSettingsRoute.name,
|
||||||
initialChildren: children,
|
initialChildren: children,
|
||||||
|
|
@ -41,18 +61,18 @@ class ClientSettingsRoute extends _i14.PageRouteInfo<void> {
|
||||||
|
|
||||||
static const String name = 'ClientSettingsRoute';
|
static const String name = 'ClientSettingsRoute';
|
||||||
|
|
||||||
static _i14.PageInfo page = _i14.PageInfo(
|
static _i15.PageInfo page = _i15.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i1.ClientSettingsPage();
|
return const _i2.ClientSettingsPage();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i2.DashboardScreen]
|
/// [_i3.DashboardScreen]
|
||||||
class DashboardRoute extends _i14.PageRouteInfo<void> {
|
class DashboardRoute extends _i15.PageRouteInfo<void> {
|
||||||
const DashboardRoute({List<_i14.PageRouteInfo>? children})
|
const DashboardRoute({List<_i15.PageRouteInfo>? children})
|
||||||
: super(
|
: super(
|
||||||
DashboardRoute.name,
|
DashboardRoute.name,
|
||||||
initialChildren: children,
|
initialChildren: children,
|
||||||
|
|
@ -60,22 +80,22 @@ class DashboardRoute extends _i14.PageRouteInfo<void> {
|
||||||
|
|
||||||
static const String name = 'DashboardRoute';
|
static const String name = 'DashboardRoute';
|
||||||
|
|
||||||
static _i14.PageInfo page = _i14.PageInfo(
|
static _i15.PageInfo page = _i15.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i2.DashboardScreen();
|
return const _i3.DashboardScreen();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i3.DetailsScreen]
|
/// [_i4.DetailsScreen]
|
||||||
class DetailsRoute extends _i14.PageRouteInfo<DetailsRouteArgs> {
|
class DetailsRoute extends _i15.PageRouteInfo<DetailsRouteArgs> {
|
||||||
DetailsRoute({
|
DetailsRoute({
|
||||||
String id = '',
|
String id = '',
|
||||||
_i15.ItemBaseModel? item,
|
_i16.ItemBaseModel? item,
|
||||||
_i16.Key? key,
|
_i17.Key? key,
|
||||||
List<_i14.PageRouteInfo>? children,
|
List<_i15.PageRouteInfo>? children,
|
||||||
}) : super(
|
}) : super(
|
||||||
DetailsRoute.name,
|
DetailsRoute.name,
|
||||||
args: DetailsRouteArgs(
|
args: DetailsRouteArgs(
|
||||||
|
|
@ -89,7 +109,7 @@ class DetailsRoute extends _i14.PageRouteInfo<DetailsRouteArgs> {
|
||||||
|
|
||||||
static const String name = 'DetailsRoute';
|
static const String name = 'DetailsRoute';
|
||||||
|
|
||||||
static _i14.PageInfo page = _i14.PageInfo(
|
static _i15.PageInfo page = _i15.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
final queryParams = data.queryParams;
|
final queryParams = data.queryParams;
|
||||||
|
|
@ -99,7 +119,7 @@ class DetailsRoute extends _i14.PageRouteInfo<DetailsRouteArgs> {
|
||||||
'id',
|
'id',
|
||||||
'',
|
'',
|
||||||
)));
|
)));
|
||||||
return _i3.DetailsScreen(
|
return _i4.DetailsScreen(
|
||||||
id: args.id,
|
id: args.id,
|
||||||
item: args.item,
|
item: args.item,
|
||||||
key: args.key,
|
key: args.key,
|
||||||
|
|
@ -117,9 +137,9 @@ class DetailsRouteArgs {
|
||||||
|
|
||||||
final String id;
|
final String id;
|
||||||
|
|
||||||
final _i15.ItemBaseModel? item;
|
final _i16.ItemBaseModel? item;
|
||||||
|
|
||||||
final _i16.Key? key;
|
final _i17.Key? key;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
|
|
@ -128,9 +148,9 @@ class DetailsRouteArgs {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i4.FavouritesScreen]
|
/// [_i5.FavouritesScreen]
|
||||||
class FavouritesRoute extends _i14.PageRouteInfo<void> {
|
class FavouritesRoute extends _i15.PageRouteInfo<void> {
|
||||||
const FavouritesRoute({List<_i14.PageRouteInfo>? children})
|
const FavouritesRoute({List<_i15.PageRouteInfo>? children})
|
||||||
: super(
|
: super(
|
||||||
FavouritesRoute.name,
|
FavouritesRoute.name,
|
||||||
initialChildren: children,
|
initialChildren: children,
|
||||||
|
|
@ -138,18 +158,18 @@ class FavouritesRoute extends _i14.PageRouteInfo<void> {
|
||||||
|
|
||||||
static const String name = 'FavouritesRoute';
|
static const String name = 'FavouritesRoute';
|
||||||
|
|
||||||
static _i14.PageInfo page = _i14.PageInfo(
|
static _i15.PageInfo page = _i15.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i4.FavouritesScreen();
|
return const _i5.FavouritesScreen();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i5.HomeScreen]
|
/// [_i6.HomeScreen]
|
||||||
class HomeRoute extends _i14.PageRouteInfo<void> {
|
class HomeRoute extends _i15.PageRouteInfo<void> {
|
||||||
const HomeRoute({List<_i14.PageRouteInfo>? children})
|
const HomeRoute({List<_i15.PageRouteInfo>? children})
|
||||||
: super(
|
: super(
|
||||||
HomeRoute.name,
|
HomeRoute.name,
|
||||||
initialChildren: children,
|
initialChildren: children,
|
||||||
|
|
@ -157,26 +177,26 @@ class HomeRoute extends _i14.PageRouteInfo<void> {
|
||||||
|
|
||||||
static const String name = 'HomeRoute';
|
static const String name = 'HomeRoute';
|
||||||
|
|
||||||
static _i14.PageInfo page = _i14.PageInfo(
|
static _i15.PageInfo page = _i15.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i5.HomeScreen();
|
return const _i6.HomeScreen();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i6.LibrarySearchScreen]
|
/// [_i7.LibrarySearchScreen]
|
||||||
class LibrarySearchRoute extends _i14.PageRouteInfo<LibrarySearchRouteArgs> {
|
class LibrarySearchRoute extends _i15.PageRouteInfo<LibrarySearchRouteArgs> {
|
||||||
LibrarySearchRoute({
|
LibrarySearchRoute({
|
||||||
String? viewModelId,
|
String? viewModelId,
|
||||||
List<String>? folderId,
|
List<String>? folderId,
|
||||||
bool? favourites,
|
bool? favourites,
|
||||||
_i17.SortingOrder? sortOrder,
|
_i18.SortingOrder? sortOrder,
|
||||||
_i17.SortingOptions? sortingOptions,
|
_i18.SortingOptions? sortingOptions,
|
||||||
_i18.PhotoModel? photoToView,
|
_i19.PhotoModel? photoToView,
|
||||||
_i16.Key? key,
|
_i17.Key? key,
|
||||||
List<_i14.PageRouteInfo>? children,
|
List<_i15.PageRouteInfo>? children,
|
||||||
}) : super(
|
}) : super(
|
||||||
LibrarySearchRoute.name,
|
LibrarySearchRoute.name,
|
||||||
args: LibrarySearchRouteArgs(
|
args: LibrarySearchRouteArgs(
|
||||||
|
|
@ -200,7 +220,7 @@ class LibrarySearchRoute extends _i14.PageRouteInfo<LibrarySearchRouteArgs> {
|
||||||
|
|
||||||
static const String name = 'LibrarySearchRoute';
|
static const String name = 'LibrarySearchRoute';
|
||||||
|
|
||||||
static _i14.PageInfo page = _i14.PageInfo(
|
static _i15.PageInfo page = _i15.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
final queryParams = data.queryParams;
|
final queryParams = data.queryParams;
|
||||||
|
|
@ -212,7 +232,7 @@ class LibrarySearchRoute extends _i14.PageRouteInfo<LibrarySearchRouteArgs> {
|
||||||
sortOrder: queryParams.get('sortOrder'),
|
sortOrder: queryParams.get('sortOrder'),
|
||||||
sortingOptions: queryParams.get('sortOptions'),
|
sortingOptions: queryParams.get('sortOptions'),
|
||||||
));
|
));
|
||||||
return _i6.LibrarySearchScreen(
|
return _i7.LibrarySearchScreen(
|
||||||
viewModelId: args.viewModelId,
|
viewModelId: args.viewModelId,
|
||||||
folderId: args.folderId,
|
folderId: args.folderId,
|
||||||
favourites: args.favourites,
|
favourites: args.favourites,
|
||||||
|
|
@ -242,13 +262,13 @@ class LibrarySearchRouteArgs {
|
||||||
|
|
||||||
final bool? favourites;
|
final bool? favourites;
|
||||||
|
|
||||||
final _i17.SortingOrder? sortOrder;
|
final _i18.SortingOrder? sortOrder;
|
||||||
|
|
||||||
final _i17.SortingOptions? sortingOptions;
|
final _i18.SortingOptions? sortingOptions;
|
||||||
|
|
||||||
final _i18.PhotoModel? photoToView;
|
final _i19.PhotoModel? photoToView;
|
||||||
|
|
||||||
final _i16.Key? key;
|
final _i17.Key? key;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
|
|
@ -257,9 +277,9 @@ class LibrarySearchRouteArgs {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i7.LockScreen]
|
/// [_i8.LockScreen]
|
||||||
class LockRoute extends _i14.PageRouteInfo<void> {
|
class LockRoute extends _i15.PageRouteInfo<void> {
|
||||||
const LockRoute({List<_i14.PageRouteInfo>? children})
|
const LockRoute({List<_i15.PageRouteInfo>? children})
|
||||||
: super(
|
: super(
|
||||||
LockRoute.name,
|
LockRoute.name,
|
||||||
initialChildren: children,
|
initialChildren: children,
|
||||||
|
|
@ -267,18 +287,18 @@ class LockRoute extends _i14.PageRouteInfo<void> {
|
||||||
|
|
||||||
static const String name = 'LockRoute';
|
static const String name = 'LockRoute';
|
||||||
|
|
||||||
static _i14.PageInfo page = _i14.PageInfo(
|
static _i15.PageInfo page = _i15.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i7.LockScreen();
|
return const _i8.LockScreen();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i8.LoginScreen]
|
/// [_i9.LoginScreen]
|
||||||
class LoginRoute extends _i14.PageRouteInfo<void> {
|
class LoginRoute extends _i15.PageRouteInfo<void> {
|
||||||
const LoginRoute({List<_i14.PageRouteInfo>? children})
|
const LoginRoute({List<_i15.PageRouteInfo>? children})
|
||||||
: super(
|
: super(
|
||||||
LoginRoute.name,
|
LoginRoute.name,
|
||||||
initialChildren: children,
|
initialChildren: children,
|
||||||
|
|
@ -286,18 +306,18 @@ class LoginRoute extends _i14.PageRouteInfo<void> {
|
||||||
|
|
||||||
static const String name = 'LoginRoute';
|
static const String name = 'LoginRoute';
|
||||||
|
|
||||||
static _i14.PageInfo page = _i14.PageInfo(
|
static _i15.PageInfo page = _i15.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i8.LoginScreen();
|
return const _i9.LoginScreen();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i9.PlayerSettingsPage]
|
/// [_i10.PlayerSettingsPage]
|
||||||
class PlayerSettingsRoute extends _i14.PageRouteInfo<void> {
|
class PlayerSettingsRoute extends _i15.PageRouteInfo<void> {
|
||||||
const PlayerSettingsRoute({List<_i14.PageRouteInfo>? children})
|
const PlayerSettingsRoute({List<_i15.PageRouteInfo>? children})
|
||||||
: super(
|
: super(
|
||||||
PlayerSettingsRoute.name,
|
PlayerSettingsRoute.name,
|
||||||
initialChildren: children,
|
initialChildren: children,
|
||||||
|
|
@ -305,18 +325,18 @@ class PlayerSettingsRoute extends _i14.PageRouteInfo<void> {
|
||||||
|
|
||||||
static const String name = 'PlayerSettingsRoute';
|
static const String name = 'PlayerSettingsRoute';
|
||||||
|
|
||||||
static _i14.PageInfo page = _i14.PageInfo(
|
static _i15.PageInfo page = _i15.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i9.PlayerSettingsPage();
|
return const _i10.PlayerSettingsPage();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i10.SecuritySettingsPage]
|
/// [_i11.SecuritySettingsPage]
|
||||||
class SecuritySettingsRoute extends _i14.PageRouteInfo<void> {
|
class SecuritySettingsRoute extends _i15.PageRouteInfo<void> {
|
||||||
const SecuritySettingsRoute({List<_i14.PageRouteInfo>? children})
|
const SecuritySettingsRoute({List<_i15.PageRouteInfo>? children})
|
||||||
: super(
|
: super(
|
||||||
SecuritySettingsRoute.name,
|
SecuritySettingsRoute.name,
|
||||||
initialChildren: children,
|
initialChildren: children,
|
||||||
|
|
@ -324,18 +344,18 @@ class SecuritySettingsRoute extends _i14.PageRouteInfo<void> {
|
||||||
|
|
||||||
static const String name = 'SecuritySettingsRoute';
|
static const String name = 'SecuritySettingsRoute';
|
||||||
|
|
||||||
static _i14.PageInfo page = _i14.PageInfo(
|
static _i15.PageInfo page = _i15.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i10.SecuritySettingsPage();
|
return const _i11.SecuritySettingsPage();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i11.SettingsScreen]
|
/// [_i12.SettingsScreen]
|
||||||
class SettingsRoute extends _i14.PageRouteInfo<void> {
|
class SettingsRoute extends _i15.PageRouteInfo<void> {
|
||||||
const SettingsRoute({List<_i14.PageRouteInfo>? children})
|
const SettingsRoute({List<_i15.PageRouteInfo>? children})
|
||||||
: super(
|
: super(
|
||||||
SettingsRoute.name,
|
SettingsRoute.name,
|
||||||
initialChildren: children,
|
initialChildren: children,
|
||||||
|
|
@ -343,21 +363,21 @@ class SettingsRoute extends _i14.PageRouteInfo<void> {
|
||||||
|
|
||||||
static const String name = 'SettingsRoute';
|
static const String name = 'SettingsRoute';
|
||||||
|
|
||||||
static _i14.PageInfo page = _i14.PageInfo(
|
static _i15.PageInfo page = _i15.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
return const _i11.SettingsScreen();
|
return const _i12.SettingsScreen();
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i12.SplashScreen]
|
/// [_i13.SplashScreen]
|
||||||
class SplashRoute extends _i14.PageRouteInfo<SplashRouteArgs> {
|
class SplashRoute extends _i15.PageRouteInfo<SplashRouteArgs> {
|
||||||
SplashRoute({
|
SplashRoute({
|
||||||
dynamic Function(bool)? loggedIn,
|
dynamic Function(bool)? loggedIn,
|
||||||
_i19.Key? key,
|
_i20.Key? key,
|
||||||
List<_i14.PageRouteInfo>? children,
|
List<_i15.PageRouteInfo>? children,
|
||||||
}) : super(
|
}) : super(
|
||||||
SplashRoute.name,
|
SplashRoute.name,
|
||||||
args: SplashRouteArgs(
|
args: SplashRouteArgs(
|
||||||
|
|
@ -369,12 +389,12 @@ class SplashRoute extends _i14.PageRouteInfo<SplashRouteArgs> {
|
||||||
|
|
||||||
static const String name = 'SplashRoute';
|
static const String name = 'SplashRoute';
|
||||||
|
|
||||||
static _i14.PageInfo page = _i14.PageInfo(
|
static _i15.PageInfo page = _i15.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
final args =
|
final args =
|
||||||
data.argsAs<SplashRouteArgs>(orElse: () => const SplashRouteArgs());
|
data.argsAs<SplashRouteArgs>(orElse: () => const SplashRouteArgs());
|
||||||
return _i12.SplashScreen(
|
return _i13.SplashScreen(
|
||||||
loggedIn: args.loggedIn,
|
loggedIn: args.loggedIn,
|
||||||
key: args.key,
|
key: args.key,
|
||||||
);
|
);
|
||||||
|
|
@ -390,7 +410,7 @@ class SplashRouteArgs {
|
||||||
|
|
||||||
final dynamic Function(bool)? loggedIn;
|
final dynamic Function(bool)? loggedIn;
|
||||||
|
|
||||||
final _i19.Key? key;
|
final _i20.Key? key;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
|
|
@ -399,12 +419,12 @@ class SplashRouteArgs {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// generated route for
|
/// generated route for
|
||||||
/// [_i13.SyncedScreen]
|
/// [_i14.SyncedScreen]
|
||||||
class SyncedRoute extends _i14.PageRouteInfo<SyncedRouteArgs> {
|
class SyncedRoute extends _i15.PageRouteInfo<SyncedRouteArgs> {
|
||||||
SyncedRoute({
|
SyncedRoute({
|
||||||
_i19.ScrollController? navigationScrollController,
|
_i20.ScrollController? navigationScrollController,
|
||||||
_i19.Key? key,
|
_i20.Key? key,
|
||||||
List<_i14.PageRouteInfo>? children,
|
List<_i15.PageRouteInfo>? children,
|
||||||
}) : super(
|
}) : super(
|
||||||
SyncedRoute.name,
|
SyncedRoute.name,
|
||||||
args: SyncedRouteArgs(
|
args: SyncedRouteArgs(
|
||||||
|
|
@ -416,12 +436,12 @@ class SyncedRoute extends _i14.PageRouteInfo<SyncedRouteArgs> {
|
||||||
|
|
||||||
static const String name = 'SyncedRoute';
|
static const String name = 'SyncedRoute';
|
||||||
|
|
||||||
static _i14.PageInfo page = _i14.PageInfo(
|
static _i15.PageInfo page = _i15.PageInfo(
|
||||||
name,
|
name,
|
||||||
builder: (data) {
|
builder: (data) {
|
||||||
final args =
|
final args =
|
||||||
data.argsAs<SyncedRouteArgs>(orElse: () => const SyncedRouteArgs());
|
data.argsAs<SyncedRouteArgs>(orElse: () => const SyncedRouteArgs());
|
||||||
return _i13.SyncedScreen(
|
return _i14.SyncedScreen(
|
||||||
navigationScrollController: args.navigationScrollController,
|
navigationScrollController: args.navigationScrollController,
|
||||||
key: args.key,
|
key: args.key,
|
||||||
);
|
);
|
||||||
|
|
@ -435,9 +455,9 @@ class SyncedRouteArgs {
|
||||||
this.key,
|
this.key,
|
||||||
});
|
});
|
||||||
|
|
||||||
final _i19.ScrollController? navigationScrollController;
|
final _i20.ScrollController? navigationScrollController;
|
||||||
|
|
||||||
final _i19.Key? key;
|
final _i20.Key? key;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
|
|
|
||||||
116
lib/screens/settings/about_settings_page.dart
Normal file
116
lib/screens/settings/about_settings_page.dart
Normal file
|
|
@ -0,0 +1,116 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import 'package:auto_route/auto_route.dart';
|
||||||
|
import 'package:ficonsax/ficonsax.dart';
|
||||||
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||||
|
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
|
||||||
|
|
||||||
|
import 'package:fladder/screens/settings/settings_scaffold.dart';
|
||||||
|
import 'package:fladder/screens/shared/fladder_icon.dart';
|
||||||
|
import 'package:fladder/screens/shared/media/external_urls.dart';
|
||||||
|
import 'package:fladder/util/application_info.dart';
|
||||||
|
import 'package:fladder/util/list_padding.dart';
|
||||||
|
import 'package:fladder/util/localization_helper.dart';
|
||||||
|
|
||||||
|
class _Socials {
|
||||||
|
final String label;
|
||||||
|
final String url;
|
||||||
|
final IconData icon;
|
||||||
|
|
||||||
|
const _Socials(this.label, this.url, this.icon);
|
||||||
|
}
|
||||||
|
|
||||||
|
const socials = [
|
||||||
|
_Socials(
|
||||||
|
'Github',
|
||||||
|
'https://github.com/DonutWare/Fladder',
|
||||||
|
FontAwesomeIcons.githubAlt,
|
||||||
|
),
|
||||||
|
_Socials(
|
||||||
|
'Weblate',
|
||||||
|
'https://hosted.weblate.org/projects/fladder/',
|
||||||
|
IconsaxOutline.global,
|
||||||
|
),
|
||||||
|
];
|
||||||
|
|
||||||
|
@RoutePage()
|
||||||
|
class AboutSettingsPage extends ConsumerWidget {
|
||||||
|
const AboutSettingsPage({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
|
final applicationInfo = ref.watch(applicationInfoProvider);
|
||||||
|
return Card(
|
||||||
|
child: SettingsScaffold(
|
||||||
|
label: "",
|
||||||
|
items: [
|
||||||
|
Wrap(
|
||||||
|
runAlignment: WrapAlignment.center,
|
||||||
|
alignment: WrapAlignment.center,
|
||||||
|
crossAxisAlignment: WrapCrossAlignment.center,
|
||||||
|
runSpacing: 24,
|
||||||
|
spacing: 24,
|
||||||
|
children: [
|
||||||
|
const FladderIcon(size: 85),
|
||||||
|
Text(
|
||||||
|
"Fladder",
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
style: Theme.of(context).textTheme.displayLarge?.copyWith(fontWeight: FontWeight.bold),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Text(context.localized.aboutVersion(applicationInfo.versionAndPlatform)),
|
||||||
|
Text(context.localized.aboutBuild(applicationInfo.buildNumber)),
|
||||||
|
const SizedBox(height: 16),
|
||||||
|
Text(context.localized.aboutCreatedBy),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
const Divider(),
|
||||||
|
Column(
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
context.localized.aboutSocials,
|
||||||
|
style: Theme.of(context).textTheme.titleLarge,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 6),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: socials
|
||||||
|
.map(
|
||||||
|
(e) => IconButton.filledTonal(
|
||||||
|
onPressed: () => launchUrl(context, e.url),
|
||||||
|
icon: Column(
|
||||||
|
children: [
|
||||||
|
Icon(e.icon),
|
||||||
|
Text(e.label),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.toList()
|
||||||
|
.addInBetween(const SizedBox(width: 16)),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
FilledButton.tonal(
|
||||||
|
onPressed: () => showLicensePage(
|
||||||
|
context: context,
|
||||||
|
applicationIcon: const FladderIcon(size: 85),
|
||||||
|
applicationVersion: applicationInfo.versionPlatformBuild,
|
||||||
|
applicationLegalese: "DonutWare",
|
||||||
|
),
|
||||||
|
child: Text(context.localized.aboutLicenses),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
].addInBetween(const SizedBox(height: 16)),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -12,7 +12,6 @@ import 'package:fladder/screens/settings/settings_list_tile.dart';
|
||||||
import 'package:fladder/screens/settings/settings_scaffold.dart';
|
import 'package:fladder/screens/settings/settings_scaffold.dart';
|
||||||
import 'package:fladder/screens/shared/fladder_icon.dart';
|
import 'package:fladder/screens/shared/fladder_icon.dart';
|
||||||
import 'package:fladder/util/adaptive_layout.dart';
|
import 'package:fladder/util/adaptive_layout.dart';
|
||||||
import 'package:fladder/util/application_info.dart';
|
|
||||||
import 'package:fladder/util/localization_helper.dart';
|
import 'package:fladder/util/localization_helper.dart';
|
||||||
import 'package:fladder/util/router_extension.dart';
|
import 'package:fladder/util/router_extension.dart';
|
||||||
import 'package:fladder/util/theme_extensions.dart';
|
import 'package:fladder/util/theme_extensions.dart';
|
||||||
|
|
@ -136,6 +135,7 @@ class _SettingsScreenState extends ConsumerState<SettingsScreen> {
|
||||||
SettingsListTile(
|
SettingsListTile(
|
||||||
label: Text(context.localized.about),
|
label: Text(context.localized.about),
|
||||||
subLabel: const Text("Fladder"),
|
subLabel: const Text("Fladder"),
|
||||||
|
selected: containsRoute(const AboutSettingsRoute()),
|
||||||
suffix: Opacity(
|
suffix: Opacity(
|
||||||
opacity: 1,
|
opacity: 1,
|
||||||
child: FladderIconOutlined(
|
child: FladderIconOutlined(
|
||||||
|
|
@ -143,12 +143,7 @@ class _SettingsScreenState extends ConsumerState<SettingsScreen> {
|
||||||
color: context.colors.onSurfaceVariant,
|
color: context.colors.onSurfaceVariant,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
onTap: () => showAboutDialog(
|
onTap: () => navigateTo(const AboutSettingsRoute()),
|
||||||
context: context,
|
|
||||||
applicationIcon: const FladderIcon(size: 85),
|
|
||||||
applicationVersion: ref.watch(applicationInfoProvider).versionAndPlatform,
|
|
||||||
applicationLegalese: "Donut Factory",
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
floatingActionButton: Padding(
|
floatingActionButton: Padding(
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,9 @@ class ApplicationInfo with _$ApplicationInfo {
|
||||||
required String os,
|
required String os,
|
||||||
}) = _ApplicationInfo;
|
}) = _ApplicationInfo;
|
||||||
|
|
||||||
String get versionAndPlatform => "$version ($os)\n#$buildNumber";
|
String get versionPlatformBuild => "$version ($os)\n#$buildNumber";
|
||||||
|
|
||||||
|
String get versionAndPlatform => "$version ($os)";
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() => 'ApplicationInfo(name: $name, version: $version, os: $os)';
|
String toString() => 'ApplicationInfo(name: $name, version: $version, os: $os)';
|
||||||
|
|
|
||||||
|
|
@ -714,6 +714,14 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.14.12"
|
version: "0.14.12"
|
||||||
|
font_awesome_flutter:
|
||||||
|
dependency: "direct main"
|
||||||
|
description:
|
||||||
|
name: font_awesome_flutter
|
||||||
|
sha256: "275ff26905134bcb59417cf60ad979136f1f8257f2f449914b2c3e05bbb4cd6f"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "10.7.0"
|
||||||
freezed:
|
freezed:
|
||||||
dependency: "direct dev"
|
dependency: "direct dev"
|
||||||
description:
|
description:
|
||||||
|
|
|
||||||
|
|
@ -86,6 +86,7 @@ dependencies:
|
||||||
flutter_blurhash: ^0.8.2
|
flutter_blurhash: ^0.8.2
|
||||||
extended_image: ^8.1.1
|
extended_image: ^8.1.1
|
||||||
flutter_widget_from_html: ^0.14.11
|
flutter_widget_from_html: ^0.14.11
|
||||||
|
font_awesome_flutter: ^10.7.0
|
||||||
|
|
||||||
# Navigation
|
# Navigation
|
||||||
auto_route: ^9.2.2
|
auto_route: ^9.2.2
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue