Skip to content

Commit

Permalink
refactor: remove riverpod state management
Browse files Browse the repository at this point in the history
  • Loading branch information
JagandeepBrar committed Mar 30, 2023
1 parent b65af75 commit 2f94c42
Show file tree
Hide file tree
Showing 29 changed files with 74 additions and 186 deletions.
2 changes: 1 addition & 1 deletion lib/core.dart
@@ -1,7 +1,7 @@
/// This file is deprecated and should no longer be actively used.
/// All imports should happen directly and canonical export files will not be used anymore.
export 'state/state.dart';
export 'system/state.dart';
export 'types/loading_state.dart';
export 'database/box.dart';
export 'database/models/profile.dart';
Expand Down
4 changes: 2 additions & 2 deletions lib/modules.dart
Expand Up @@ -17,7 +17,7 @@ import 'package:lunasea/modules/sabnzbd.dart';
import 'package:lunasea/modules/nzbget.dart';
import 'package:lunasea/modules/tautulli.dart';

import 'package:lunasea/modules/dashboard/core/state.dart' as dashboard_state;
import 'package:lunasea/modules/dashboard/core/state.dart';
import 'package:lunasea/api/wake_on_lan/wake_on_lan.dart';
import 'package:lunasea/system/flavor.dart';

Expand Down Expand Up @@ -484,7 +484,7 @@ extension LunaModuleExtension on LunaModule {
case LunaModule.WAKE_ON_LAN:
return null;
case LunaModule.DASHBOARD:
return context.read<dashboard_state.ModuleState>();
return context.read<DashboardState>();
case LunaModule.SETTINGS:
return context.read<SettingsState>();
case LunaModule.SEARCH:
Expand Down
6 changes: 3 additions & 3 deletions lib/modules/dashboard/core/state.dart
Expand Up @@ -4,11 +4,11 @@ import 'package:lunasea/modules/dashboard/core/adapters/calendar_starting_size.d
import 'package:lunasea/modules/dashboard/core/adapters/calendar_starting_type.dart';
import 'package:lunasea/modules/dashboard/core/api/api.dart';
import 'package:lunasea/modules/dashboard/core/api/data/abstract.dart';
import 'package:lunasea/state/state.dart';
import 'package:lunasea/system/state.dart';
import 'package:lunasea/vendor.dart';

class ModuleState extends LunaModuleState {
ModuleState() {
class DashboardState extends LunaModuleState {
DashboardState() {
reset();
}

Expand Down
9 changes: 4 additions & 5 deletions lib/modules/dashboard/routes/dashboard/pages/calendar.dart
@@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

import 'package:lunasea/widgets/ui.dart';
import 'package:lunasea/system/logger.dart';
Expand All @@ -26,8 +25,8 @@ class _State extends State<CalendarPage>

@override
Future<void> loadCallback() async {
context.read<ModuleState>().resetToday();
context.read<ModuleState>().resetUpcoming();
context.read<DashboardState>().resetToday();
context.read<DashboardState>().resetUpcoming();
}

@override
Expand All @@ -38,7 +37,7 @@ class _State extends State<CalendarPage>
key: _refreshKey,
onRefresh: loadCallback,
child: FutureBuilder(
future: context.watch<ModuleState>().upcoming,
future: context.watch<DashboardState>().upcoming,
builder: (
BuildContext context,
AsyncSnapshot<Map<DateTime, List<CalendarData>>> snapshot,
Expand All @@ -55,7 +54,7 @@ class _State extends State<CalendarPage>
if (snapshot.connectionState == ConnectionState.done &&
snapshot.hasData) {
final events = snapshot.data!;
return Selector<ModuleState, CalendarStartingType>(
return Selector<DashboardState, CalendarStartingType>(
selector: (_, s) => s.calendarType,
builder: (context, type, _) {
if (type == CalendarStartingType.CALENDAR)
Expand Down
Expand Up @@ -44,7 +44,7 @@ class _State extends State<CalendarView> {

void _onDaySelected(DateTime selected, DateTime focused) {
HapticFeedback.selectionClick();
context.read<ModuleState>().selected = selected.floor();
context.read<DashboardState>().selected = selected.floor();
}

@override
Expand Down Expand Up @@ -108,10 +108,10 @@ class _State extends State<CalendarView> {
DashboardDatabase.CALENDAR_STARTING_SIZE,
],
builder: (context, _) {
DateTime firstDay = context.watch<ModuleState>().today.subtract(
DateTime firstDay = context.watch<DashboardState>().today.subtract(
Duration(days: DashboardDatabase.CALENDAR_DAYS_PAST.read()),
);
DateTime lastDay = context.watch<ModuleState>().today.add(
DateTime lastDay = context.watch<DashboardState>().today.add(
Duration(days: DashboardDatabase.CALENDAR_DAYS_FUTURE.read()),
);
return SafeArea(
Expand All @@ -124,7 +124,7 @@ class _State extends State<CalendarView> {
),
rowHeight: 48.0,
rangeSelectionMode: RangeSelectionMode.disabled,
focusedDay: context.watch<ModuleState>().selected,
focusedDay: context.watch<DashboardState>().selected,
firstDay: firstDay,
lastDay: lastDay,
//events: widget.events,
Expand All @@ -142,7 +142,8 @@ class _State extends State<CalendarView> {
startingDayOfWeek:
DashboardDatabase.CALENDAR_STARTING_DAY.read().data,
selectedDayPredicate: (date) {
return date.floor() == context.read<ModuleState>().selected;
return date.floor() ==
context.read<DashboardState>().selected;
},
calendarStyle: CalendarStyle(
markersMaxCount: 1,
Expand Down Expand Up @@ -170,7 +171,7 @@ class _State extends State<CalendarView> {
todayTextStyle: dayStyle,
),
onFormatChanged: (format) {
context.read<ModuleState>().calendarFormat = format;
context.read<DashboardState>().calendarFormat = format;
},
daysOfWeekStyle: DaysOfWeekStyle(
weekendStyle: weekdayStyle,
Expand All @@ -180,7 +181,7 @@ class _State extends State<CalendarView> {
if (widget.events.isEmpty) return [];
return widget.events[date.floor()] ?? [];
},
calendarFormat: context.watch<ModuleState>().calendarFormat,
calendarFormat: context.watch<DashboardState>().calendarFormat,
availableCalendarFormats: const {
CalendarFormat.month: 'Month',
CalendarFormat.twoWeeks: '2 Weeks',
Expand Down Expand Up @@ -228,7 +229,7 @@ class _State extends State<CalendarView> {
}

Widget _calendarList() {
final selected = context.read<ModuleState>().selected;
final selected = context.read<DashboardState>().selected;
final events = widget.events[selected.floor()] ?? [];
if (events.isEmpty) {
return Expanded(
Expand Down
Expand Up @@ -62,7 +62,7 @@ class _State extends State<ScheduleView> {
keys.sort();

for (final key in keys) {
final selected = context.read<ModuleState>().selected;
final selected = context.read<DashboardState>().selected;
if (key.isBefore(selected) || key.isAtSameMomentAs(selected)) {
offsetOfSelected = offset;
}
Expand Down
@@ -1,5 +1,4 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

import 'package:lunasea/widgets/ui.dart';
import 'package:lunasea/vendor.dart';
Expand Down Expand Up @@ -44,14 +43,14 @@ class _State extends State<SwitchViewAction> with LunaLoadCallbackMixin {

@override
Widget build(BuildContext context) {
return Selector<ModuleState, CalendarStartingType>(
return Selector<DashboardState, CalendarStartingType>(
selector: (_, state) => state.calendarType,
builder: (context, view, _) {
if (_showButton) {
return LunaIconButton.appBar(
icon: view.icon,
onPressed: () {
final state = context.read<ModuleState>();
final state = context.read<DashboardState>();
if (view == CalendarStartingType.CALENDAR)
state.calendarType = CalendarStartingType.SCHEDULE;
else
Expand Down
2 changes: 1 addition & 1 deletion lib/modules/settings/core/dialogs.dart
Expand Up @@ -4,7 +4,7 @@ import 'package:lunasea/database/tables/lunasea.dart';
import 'package:lunasea/firebase/types.dart';
import 'package:lunasea/modules.dart';
import 'package:lunasea/modules/settings/core/types/header.dart';
import 'package:lunasea/state/state.dart';
import 'package:lunasea/system/state.dart';
import 'package:lunasea/system/localization.dart';
import 'package:lunasea/vendor.dart';
import 'package:lunasea/widgets/ui.dart';
Expand Down
6 changes: 3 additions & 3 deletions lib/modules/settings/routes/account/pages/password_reset.dart
Expand Up @@ -3,7 +3,7 @@ import 'package:lunasea/core.dart';
import 'package:lunasea/firebase/auth.dart';
import 'package:lunasea/utils/validator.dart';

class AccountPasswordResetRoute extends ConsumerStatefulWidget {
class AccountPasswordResetRoute extends StatefulWidget {
const AccountPasswordResetRoute({
Key? key,
}) : super(key: key);
Expand All @@ -12,7 +12,7 @@ class AccountPasswordResetRoute extends ConsumerStatefulWidget {
_State createState() => _State();
}

class _State extends ConsumerState<AccountPasswordResetRoute>
class _State extends State<AccountPasswordResetRoute>
with LunaScrollControllerMixin {
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
final TextEditingController _emailController = TextEditingController();
Expand Down Expand Up @@ -99,7 +99,7 @@ class _State extends ConsumerState<AccountPasswordResetRoute>
}

bool _validateEmailAddress({bool showSnackBarOnFailure = true}) {
if (!ref.watch(validatorProvider).email(_emailController.text)) {
if (!LunaValidator().email(_emailController.text)) {
if (showSnackBarOnFailure) {
showLunaErrorSnackBar(
title: 'settings.InvalidEmail'.tr(),
Expand Down
6 changes: 3 additions & 3 deletions lib/modules/settings/routes/account/pages/signed_out.dart
Expand Up @@ -4,7 +4,7 @@ import 'package:lunasea/firebase/auth.dart';
import 'package:lunasea/router/routes/settings.dart';
import 'package:lunasea/utils/validator.dart';

class SettingsAccountSignedOutPage extends ConsumerStatefulWidget {
class SettingsAccountSignedOutPage extends StatefulWidget {
final ScrollController scrollController;

const SettingsAccountSignedOutPage({
Expand All @@ -16,7 +16,7 @@ class SettingsAccountSignedOutPage extends ConsumerStatefulWidget {
_State createState() => _State();
}

class _State extends ConsumerState<SettingsAccountSignedOutPage> {
class _State extends State<SettingsAccountSignedOutPage> {
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
final TextEditingController _emailController = TextEditingController();
final TextEditingController _passwordController = TextEditingController();
Expand Down Expand Up @@ -124,7 +124,7 @@ class _State extends ConsumerState<SettingsAccountSignedOutPage> {
}

bool _validateEmailAddress({bool showSnackBarOnFailure = true}) {
if (!ref.watch(validatorProvider).email(_emailController.text)) {
if (!LunaValidator().email(_emailController.text)) {
if (showSnackBarOnFailure)
showLunaErrorSnackBar(
title: 'settings.InvalidEmail'.tr(),
Expand Down
Expand Up @@ -7,7 +7,7 @@ import 'package:lunasea/modules/settings.dart';
import 'package:lunasea/utils/encryption.dart';
import 'package:lunasea/utils/uuid.dart';

class SettingsAccountBackupConfigurationTile extends ConsumerStatefulWidget {
class SettingsAccountBackupConfigurationTile extends StatefulWidget {
const SettingsAccountBackupConfigurationTile({
Key? key,
}) : super(key: key);
Expand All @@ -16,7 +16,7 @@ class SettingsAccountBackupConfigurationTile extends ConsumerStatefulWidget {
_State createState() => _State();
}

class _State extends ConsumerState<SettingsAccountBackupConfigurationTile> {
class _State extends State<SettingsAccountBackupConfigurationTile> {
LunaLoadingState _loadingState = LunaLoadingState.INACTIVE;

void updateState(LunaLoadingState state) {
Expand Down Expand Up @@ -44,12 +44,10 @@ class _State extends ConsumerState<SettingsAccountBackupConfigurationTile> {
Tuple2<bool, String> _values =
await SettingsDialogs().backupConfiguration(context);
if (_values.item1) {
final encryption = ref.watch(encryptionProvider);

String decrypted = LunaConfig().export();
String encrypted = encryption.encrypt(_values.item2, decrypted);
String encrypted = LunaEncryption().encrypt(_values.item2, decrypted);
int timestamp = DateTime.now().millisecondsSinceEpoch;
String id = ref.watch(uuidProvider).generate();
String id = LunaUUID().generate();
String format = 'MMMM dd, yyyy\nhh:mm:ss a';
String title = DateFormat(format).format(DateTime.now());

Expand Down
Expand Up @@ -6,7 +6,7 @@ import 'package:lunasea/firebase/storage.dart';
import 'package:lunasea/modules/settings.dart';
import 'package:lunasea/utils/encryption.dart';

class SettingsAccountRestoreConfigurationTile extends ConsumerStatefulWidget {
class SettingsAccountRestoreConfigurationTile extends StatefulWidget {
const SettingsAccountRestoreConfigurationTile({
Key? key,
}) : super(key: key);
Expand All @@ -15,7 +15,7 @@ class SettingsAccountRestoreConfigurationTile extends ConsumerStatefulWidget {
_State createState() => _State();
}

class _State extends ConsumerState<SettingsAccountRestoreConfigurationTile> {
class _State extends State<SettingsAccountRestoreConfigurationTile> {
LunaLoadingState _loadingState = LunaLoadingState.INACTIVE;

void updateState(LunaLoadingState state) {
Expand Down Expand Up @@ -61,8 +61,7 @@ class _State extends ConsumerState<SettingsAccountRestoreConfigurationTile> {
Tuple2<bool, String> _key = await SettingsDialogs().decryptBackup(context);
if (_key.item1) {
try {
final encryption = ref.watch(encryptionProvider);
String decrypted = encryption.decrypt(_key.item2, encrypted);
String decrypted = LunaEncryption().decrypt(_key.item2, encrypted);
await LunaConfig().import(context, decrypted);
showLunaSuccessSnackBar(
title: 'settings.RestoreFromCloudSuccess'.tr(),
Expand Down
11 changes: 5 additions & 6 deletions lib/modules/settings/routes/system/widgets/backup_tile.dart
Expand Up @@ -5,28 +5,27 @@ import 'package:lunasea/modules/settings.dart';
import 'package:lunasea/system/filesystem/filesystem.dart';
import 'package:lunasea/utils/encryption.dart';

class SettingsSystemBackupRestoreBackupTile extends ConsumerWidget {
class SettingsSystemBackupRestoreBackupTile extends StatelessWidget {
const SettingsSystemBackupRestoreBackupTile({
Key? key,
}) : super(key: key);

@override
Widget build(BuildContext context, WidgetRef ref) {
Widget build(BuildContext context) {
return LunaBlock(
title: 'settings.BackupToDevice'.tr(),
body: [TextSpan(text: 'settings.BackupToDeviceDescription'.tr())],
trailing: const LunaIconButton(icon: Icons.upload_rounded),
onTap: () async => _backup(context, ref),
onTap: () async => _backup(context),
);
}

Future<void> _backup(BuildContext context, WidgetRef ref) async {
Future<void> _backup(BuildContext context) async {
try {
final _values = await SettingsDialogs().backupConfiguration(context);
if (_values.item1) {
final encryption = ref.watch(encryptionProvider);
String data = LunaConfig().export();
String encrypted = encryption.encrypt(_values.item2, data);
String encrypted = LunaEncryption().encrypt(_values.item2, data);
String name = DateFormat('y-MM-dd kk-mm-ss').format(DateTime.now());
bool result = await LunaFileSystem().save(
context,
Expand Down
6 changes: 3 additions & 3 deletions lib/modules/settings/routes/system/widgets/build_details.dart
Expand Up @@ -8,14 +8,14 @@ import 'package:lunasea/vendor.dart';
import 'package:lunasea/widgets/sheets/changelog/sheet.dart';
import 'package:lunasea/widgets/ui.dart';

class BuildDetails extends ConsumerStatefulWidget {
class BuildDetails extends StatefulWidget {
const BuildDetails({Key? key}) : super(key: key);

@override
ConsumerState<BuildDetails> createState() => _State();
State<BuildDetails> createState() => _State();
}

class _State extends ConsumerState<BuildDetails> {
class _State extends State<BuildDetails> {
Future<PackageInfo> packageInfo = PackageInfo.fromPlatform();
Future<Tuple2<bool, int?>> checkUpdates = LunaBuild().isLatestBuildNumber();

Expand Down

0 comments on commit 2f94c42

Please sign in to comment.