Skip to content
This repository was archived by the owner on Apr 3, 2025. It is now read-only.

Commit 9cb3fab

Browse files
committed
refactor: refactored in-app purchase interface
1 parent 11015f3 commit 9cb3fab

File tree

21 files changed

+314
-283
lines changed

21 files changed

+314
-283
lines changed

lib/core.dart

-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ export 'core/router/router.dart';
2020
export 'core/services/the_movie_db.dart';
2121
export 'core/state/module_state.dart';
2222
export 'core/state/state.dart';
23-
export 'core/system/in_app_purchases.dart';
2423
export 'core/system/profile.dart';
2524
export 'core/utilities/changelog.dart';
2625
export 'core/utilities/dialogs.dart';

lib/core/models/logs/log_type.dart

+15-20
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,26 @@ import 'package:lunasea/system/flavor.dart';
44

55
part 'log_type.g.dart';
66

7+
const TYPE_DEBUG = 'debug';
8+
const TYPE_WARNING = 'warning';
9+
const TYPE_ERROR = 'error';
10+
const TYPE_CRITICAL = 'critical';
11+
712
@HiveType(typeId: 24, adapterName: 'LunaLogTypeAdapter')
813
enum LunaLogType {
914
@HiveField(0)
10-
WARNING,
15+
WARNING(TYPE_WARNING),
1116
@HiveField(1)
12-
ERROR,
17+
ERROR(TYPE_ERROR),
1318
@HiveField(2)
14-
CRITICAL,
19+
CRITICAL(TYPE_CRITICAL),
1520
@HiveField(3)
16-
DEBUG,
17-
}
21+
DEBUG(TYPE_DEBUG);
1822

19-
extension LunaLogTypeExtension on LunaLogType {
20-
LunaLogType? fromKey(String key) {
23+
final String key;
24+
const LunaLogType(this.key);
25+
26+
static LunaLogType? fromKey(String key) {
2127
switch (key) {
2228
case 'warning':
2329
return LunaLogType.WARNING;
@@ -30,20 +36,9 @@ extension LunaLogTypeExtension on LunaLogType {
3036
}
3137
return null;
3238
}
39+
}
3340

34-
String get key {
35-
switch (this) {
36-
case LunaLogType.WARNING:
37-
return 'warning';
38-
case LunaLogType.ERROR:
39-
return 'error';
40-
case LunaLogType.CRITICAL:
41-
return 'critical';
42-
case LunaLogType.DEBUG:
43-
return 'debug';
44-
}
45-
}
46-
41+
extension LunaLogTypeExtension on LunaLogType {
4742
bool get enabled {
4843
switch (this) {
4944
case LunaLogType.WARNING:

lib/core/models/types/links.dart

+14-40
Original file line numberDiff line numberDiff line change
@@ -2,46 +2,20 @@ import 'package:lunasea/core.dart';
22
import 'package:lunasea/extensions/string_links.dart';
33

44
enum LunaLinks {
5-
BUILDS,
6-
CHANGELOG,
7-
DISCORD,
8-
DOCUMENTATION,
9-
FEEDBACK_BOARD,
10-
GITHUB,
11-
NOTIFICATIONS_GETTING_STARTED,
12-
REDDIT,
13-
BUILD_CHANNELS,
14-
WEBLATE,
15-
WEBSITE,
16-
}
5+
CHANGELOG('https://www.lunasea.app/changelog'),
6+
BUILD_CHANNELS('https://www.lunasea.app/build-channels'),
7+
BUILDS('https://www.lunasea.app/builds'),
8+
DISCORD('https://www.lunasea.app/discord'),
9+
DOCUMENTATION('https://www.lunasea.app/docs'),
10+
FEEDBACK_BOARD('https://www.lunasea.app/feedback'),
11+
GITHUB('https://www.lunasea.app/github'),
12+
NOTIFICATIONS_DOC('https://docs.lunasea.app/lunasea/notifications'),
13+
REDDIT('https://www.lunasea.app/reddit'),
14+
WEBLATE('https:/www.lunasea.app/translate'),
15+
WEBSITE('https://www.lunasea.app');
1716

18-
extension LunaLinksExtension on LunaLinks {
19-
String get url {
20-
switch (this) {
21-
case LunaLinks.BUILDS:
22-
return 'https://www.lunasea.app/builds';
23-
case LunaLinks.CHANGELOG:
24-
return 'https://www.lunasea.app/changelog';
25-
case LunaLinks.DISCORD:
26-
return 'https://www.lunasea.app/discord';
27-
case LunaLinks.DOCUMENTATION:
28-
return 'https://www.lunasea.app/docs';
29-
case LunaLinks.FEEDBACK_BOARD:
30-
return 'https://www.lunasea.app/feedback';
31-
case LunaLinks.GITHUB:
32-
return 'https://www.lunasea.app/github';
33-
case LunaLinks.REDDIT:
34-
return 'https://www.lunasea.app/reddit';
35-
case LunaLinks.BUILD_CHANNELS:
36-
return 'https://www.lunasea.app/build-channels';
37-
case LunaLinks.WEBLATE:
38-
return 'https:/www.lunasea.app/translate';
39-
case LunaLinks.WEBSITE:
40-
return 'https://www.lunasea.app';
41-
case LunaLinks.NOTIFICATIONS_GETTING_STARTED:
42-
return 'https://docs.lunasea.app/lunasea/notifications';
43-
}
44-
}
17+
final String url;
18+
const LunaLinks(this.url);
4519

46-
Future<void> launch() async => this.url.openLink();
20+
Future<void> launch() async => url.openLink();
4721
}

lib/core/models/types/list_view_option.dart

+18-14
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,31 @@ import 'package:lunasea/core.dart';
33

44
part 'list_view_option.g.dart';
55

6+
const _BLOCK_VIEW = 'BLOCK_VIEW';
7+
const _GRID_VIEW = 'GRID_VIEW';
8+
69
@HiveType(typeId: 29, adapterName: 'LunaListViewOptionAdapter')
710
enum LunaListViewOption {
811
@HiveField(0)
9-
BLOCK_VIEW,
12+
BLOCK_VIEW(_BLOCK_VIEW),
1013
@HiveField(1)
11-
GRID_VIEW,
14+
GRID_VIEW(_GRID_VIEW);
15+
16+
final String key;
17+
const LunaListViewOption(this.key);
18+
19+
static LunaListViewOption? fromKey(String? key) {
20+
switch (key) {
21+
case _BLOCK_VIEW:
22+
return LunaListViewOption.BLOCK_VIEW;
23+
case _GRID_VIEW:
24+
return LunaListViewOption.GRID_VIEW;
25+
}
26+
return null;
27+
}
1228
}
1329

1430
extension LunaListViewOptionExtension on LunaListViewOption {
15-
String get key => this.name;
16-
1731
String get readable {
1832
switch (this) {
1933
case LunaListViewOption.BLOCK_VIEW:
@@ -31,14 +45,4 @@ extension LunaListViewOptionExtension on LunaListViewOption {
3145
return Icons.grid_view_rounded;
3246
}
3347
}
34-
35-
LunaListViewOption? fromKey(String? key) {
36-
switch (key) {
37-
case 'BLOCK_VIEW':
38-
return LunaListViewOption.BLOCK_VIEW;
39-
case 'GRID_VIEW':
40-
return LunaListViewOption.GRID_VIEW;
41-
}
42-
return null;
43-
}
4448
}

lib/core/system/in_app_purchases.dart

-96
This file was deleted.

lib/database/tables/radarr.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ enum RadarrDatabase<T> with LunaTableMixin<T> {
101101
return;
102102
}
103103
if (this == RadarrDatabase.DEFAULT_VIEW_MOVIES) {
104-
final item = LunaListViewOption.GRID_VIEW.fromKey(value.toString());
104+
final item = LunaListViewOption.fromKey(value.toString());
105105
if (item != null) update(item as T);
106106
return;
107107
}

lib/database/tables/sonarr.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ enum SonarrDatabase<T> with LunaTableMixin<T> {
103103
return;
104104
}
105105
if (this == SonarrDatabase.DEFAULT_VIEW_SERIES) {
106-
final item = LunaListViewOption.GRID_VIEW.fromKey(value.toString());
106+
final item = LunaListViewOption.fromKey(value.toString());
107107
if (item != null) update(item as T);
108108
return;
109109
}

lib/main.dart

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import 'package:lunasea/firebase/firestore.dart';
1111
import 'package:lunasea/firebase/messaging.dart';
1212
import 'package:lunasea/modules/dashboard/routes/dashboard/route.dart'
1313
show HomeRouter;
14+
import 'package:lunasea/system/in_app_purchase/in_app_purchase.dart';
1415
import 'package:lunasea/system/localization.dart';
1516
import 'package:lunasea/system/network/network.dart';
1617
import 'package:lunasea/system/quick_actions/quick_actions.dart';
@@ -33,7 +34,7 @@ Future<void> main() async {
3334
if (LunaNetwork.isSupported) LunaNetwork().initialize();
3435
if (LunaImageCache.isSupported) LunaImageCache().initialize();
3536
LunaRouter().initialize();
36-
await LunaInAppPurchases().initialize();
37+
if (LunaInAppPurchase.isSupported) LunaInAppPurchase().initialize();
3738
await LunaLocalization().initialize();
3839
// Run application
3940
return runApp(const LunaBIOS());

lib/modules/settings/core/router.dart

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'package:lunasea/core.dart';
33
import 'package:lunasea/firebase/core.dart';
44
import 'package:lunasea/firebase/messaging.dart';
55
import 'package:lunasea/modules/settings.dart';
6+
import 'package:lunasea/system/in_app_purchase/in_app_purchase.dart';
67

78
class SettingsRouter extends LunaModuleRouter {
89
@override
@@ -18,7 +19,7 @@ class SettingsRouter extends LunaModuleRouter {
1819
SettingsNotificationsRouter().defineRoute(router);
1920
}
2021
// Donations
21-
if (LunaInAppPurchases.isSupported) {
22+
if (LunaInAppPurchase.isSupported) {
2223
SettingsDonationsRouter().defineRoute(router);
2324
SettingsDonationsThankYouRouter().defineRoute(router);
2425
}

0 commit comments

Comments
 (0)