mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-06-28 12:29:51 +00:00
Modify Themes Startup Behaviour (#2288)
* feat(themes): Reflect current system theme at the start of the app if the themeMode is system mode * feat(themes): Extract platform awareness for router into a function, and use where needed
This commit is contained in:
parent
df88914628
commit
d342173239
3 changed files with 212 additions and 282 deletions
450
lib/router.dart
450
lib/router.dart
|
@ -150,84 +150,78 @@ import 'src/screens/dashboard/pages/nft_import_page.dart';
|
||||||
|
|
||||||
late RouteSettings currentRouteSettings;
|
late RouteSettings currentRouteSettings;
|
||||||
|
|
||||||
|
Route<dynamic> handleRouteWithPlatformAwareness(
|
||||||
|
Widget Function(BuildContext) builder, {
|
||||||
|
bool fullscreenDialog = false,
|
||||||
|
}) {
|
||||||
|
if (Platform.isIOS) {
|
||||||
|
return CupertinoPageRoute<void>(builder: builder, fullscreenDialog: fullscreenDialog);
|
||||||
|
} else {
|
||||||
|
return MaterialPageRoute<void>(builder: builder, fullscreenDialog: fullscreenDialog);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Route<dynamic> createRoute(RouteSettings settings) {
|
Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
currentRouteSettings = settings;
|
currentRouteSettings = settings;
|
||||||
|
|
||||||
switch (settings.name) {
|
switch (settings.name) {
|
||||||
case Routes.welcome:
|
case Routes.welcome:
|
||||||
return MaterialPageRoute<void>(
|
return MaterialPageRoute<void>(
|
||||||
builder: (_) => CreatePinWelcomePage(SettingsStoreBase.walletPasswordDirectInput));
|
builder: (_) => CreatePinWelcomePage(
|
||||||
|
SettingsStoreBase.walletPasswordDirectInput,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.welcomeWallet:
|
case Routes.welcomeWallet:
|
||||||
if (SettingsStoreBase.walletPasswordDirectInput) {
|
if (SettingsStoreBase.walletPasswordDirectInput) {
|
||||||
return createRoute(RouteSettings(name: Routes.welcomePage));
|
return createRoute(RouteSettings(name: Routes.welcomePage));
|
||||||
}
|
}
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(
|
return handleRouteWithPlatformAwareness(
|
||||||
builder: (_) =>
|
(_) => getIt.get<SetupPinCodePage>(
|
||||||
getIt.get<SetupPinCodePage>(param1: (PinCodeState<PinCodeWidget> context, dynamic _) {
|
param1: (PinCodeState<PinCodeWidget> context, dynamic _) {
|
||||||
Navigator.of(context.context).pushNamed(Routes.welcomePage);
|
Navigator.of(context.context).pushNamed(Routes.welcomePage);
|
||||||
}),
|
},
|
||||||
fullscreenDialog: true);
|
),
|
||||||
else return MaterialPageRoute<void>(
|
fullscreenDialog: true,
|
||||||
builder: (_) =>
|
);
|
||||||
getIt.get<SetupPinCodePage>(param1: (PinCodeState<PinCodeWidget> context, dynamic _) {
|
|
||||||
Navigator.of(context.context).pushNamed(Routes.welcomePage);
|
|
||||||
}),
|
|
||||||
fullscreenDialog: true);
|
|
||||||
|
|
||||||
case Routes.welcomePage:
|
case Routes.welcomePage:
|
||||||
return CupertinoPageRoute<void>(builder: (_) => getIt.get<WelcomePage>());
|
return CupertinoPageRoute<void>(builder: (_) => getIt.get<WelcomePage>());
|
||||||
|
|
||||||
case Routes.newWalletFromWelcome:
|
case Routes.newWalletFromWelcome:
|
||||||
if (isSingleCoin) {
|
if (isSingleCoin) {
|
||||||
return createRoute(
|
return createRoute(
|
||||||
RouteSettings(
|
RouteSettings(
|
||||||
name: Routes.newWallet,
|
name: Routes.newWallet,
|
||||||
arguments: NewWalletArguments(type: availableWalletTypes.first)
|
arguments: NewWalletArguments(type: availableWalletTypes.first)),
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return createRoute(RouteSettings(name: Routes.newWalletType));
|
|
||||||
|
|
||||||
case Routes.newWalletType:
|
|
||||||
if (Platform.isIOS) {
|
|
||||||
return CupertinoPageRoute<void>(
|
|
||||||
builder: (_) => getIt.get<NewWalletTypePage>(
|
|
||||||
param1: NewWalletTypeArguments(
|
|
||||||
onTypeSelected: (BuildContext context, WalletType type) =>
|
|
||||||
Navigator.of(context).pushNamed(
|
|
||||||
Routes.newWallet,
|
|
||||||
arguments: NewWalletArguments(type: type),
|
|
||||||
),
|
|
||||||
isCreate: true,
|
|
||||||
isHardwareWallet: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return MaterialPageRoute<void>(
|
|
||||||
builder: (_) => getIt.get<NewWalletTypePage>(
|
|
||||||
param1: NewWalletTypeArguments(
|
|
||||||
onTypeSelected: (BuildContext context, WalletType type) =>
|
|
||||||
Navigator.of(context).pushNamed(
|
|
||||||
Routes.newWallet,
|
|
||||||
arguments: NewWalletArguments(type: type),
|
|
||||||
),
|
|
||||||
isCreate: true,
|
|
||||||
isHardwareWallet: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
return createRoute(RouteSettings(name: Routes.newWalletType));
|
||||||
|
|
||||||
|
case Routes.newWalletType:
|
||||||
|
return handleRouteWithPlatformAwareness(
|
||||||
|
(_) => getIt.get<NewWalletTypePage>(
|
||||||
|
param1: NewWalletTypeArguments(
|
||||||
|
onTypeSelected: (BuildContext context, WalletType type) =>
|
||||||
|
Navigator.of(context).pushNamed(
|
||||||
|
Routes.newWallet,
|
||||||
|
arguments: NewWalletArguments(type: type),
|
||||||
|
),
|
||||||
|
isCreate: true,
|
||||||
|
isHardwareWallet: false,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.walletGroupsDisplayPage:
|
case Routes.walletGroupsDisplayPage:
|
||||||
final type = settings.arguments as WalletType;
|
final type = settings.arguments as WalletType;
|
||||||
final walletGroupsDisplayVM = getIt.get<WalletGroupsDisplayViewModel>(param1: type);
|
final walletGroupsDisplayVM = getIt.get<WalletGroupsDisplayViewModel>(param1: type);
|
||||||
|
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(builder: (_) => WalletGroupsDisplayPage(walletGroupsDisplayVM));
|
return handleRouteWithPlatformAwareness(
|
||||||
else return MaterialPageRoute<void>(builder: (_) => WalletGroupsDisplayPage(walletGroupsDisplayVM));
|
(_) => WalletGroupsDisplayPage(
|
||||||
|
walletGroupsDisplayVM,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.newWallet:
|
case Routes.newWallet:
|
||||||
final args = settings.arguments as NewWalletArguments;
|
final args = settings.arguments as NewWalletArguments;
|
||||||
|
@ -235,15 +229,8 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
final walletNewVM = getIt.get<WalletNewVM>(param1: args);
|
final walletNewVM = getIt.get<WalletNewVM>(param1: args);
|
||||||
final seedSettingsViewModel = getIt.get<SeedSettingsViewModel>();
|
final seedSettingsViewModel = getIt.get<SeedSettingsViewModel>();
|
||||||
|
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(
|
return handleRouteWithPlatformAwareness(
|
||||||
builder: (_) => NewWalletPage(
|
(_) => NewWalletPage(
|
||||||
walletNewVM,
|
|
||||||
seedSettingsViewModel,
|
|
||||||
isChildWallet: args.isChildWallet,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
else return MaterialPageRoute<void>(
|
|
||||||
builder: (_) => NewWalletPage(
|
|
||||||
walletNewVM,
|
walletNewVM,
|
||||||
seedSettingsViewModel,
|
seedSettingsViewModel,
|
||||||
isChildWallet: args.isChildWallet,
|
isChildWallet: args.isChildWallet,
|
||||||
|
@ -267,27 +254,18 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
callback = settings.arguments as Function(PinCodeState<PinCodeWidget>, String);
|
callback = settings.arguments as Function(PinCodeState<PinCodeWidget>, String);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(builder: (_) => getIt.get<SetupPinCodePage>(param1: callback));
|
return handleRouteWithPlatformAwareness(
|
||||||
else return MaterialPageRoute<void>(builder: (_) => getIt.get<SetupPinCodePage>(param1: callback));
|
(_) => getIt.get<SetupPinCodePage>(param1: callback),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.restoreWalletType:
|
case Routes.restoreWalletType:
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(
|
return handleRouteWithPlatformAwareness(
|
||||||
builder: (_) => getIt.get<NewWalletTypePage>(
|
(_) => getIt.get<NewWalletTypePage>(
|
||||||
param1: NewWalletTypeArguments(
|
param1: NewWalletTypeArguments(
|
||||||
onTypeSelected: (BuildContext context, WalletType type) {
|
onTypeSelected: (BuildContext context, WalletType type) {
|
||||||
final arg = {'walletType': type};
|
final arg = {'walletType': type};
|
||||||
Navigator.of(context).pushNamed(Routes.restoreWallet, arguments: arg);},
|
Navigator.of(context).pushNamed(Routes.restoreWallet, arguments: arg);
|
||||||
isCreate: false,
|
},
|
||||||
isHardwareWallet: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
else return MaterialPageRoute<void>(
|
|
||||||
builder: (_) => getIt.get<NewWalletTypePage>(
|
|
||||||
param1: NewWalletTypeArguments(
|
|
||||||
onTypeSelected: (BuildContext context, WalletType type) {
|
|
||||||
final arg = {'walletType': type};
|
|
||||||
Navigator.of(context).pushNamed(Routes.restoreWallet, arguments: arg);},
|
|
||||||
isCreate: false,
|
isCreate: false,
|
||||||
isHardwareWallet: false,
|
isHardwareWallet: false,
|
||||||
),
|
),
|
||||||
|
@ -300,45 +278,28 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
}
|
}
|
||||||
|
|
||||||
final isNewInstall = settings.arguments as bool;
|
final isNewInstall = settings.arguments as bool;
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<RestoreOptionsPage>(param1: isNewInstall));
|
(context) => getIt.get<RestoreOptionsPage>(param1: isNewInstall),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<RestoreOptionsPage>(param1: isNewInstall));
|
|
||||||
}
|
|
||||||
|
|
||||||
case Routes.restoreWalletFromSeedKeys:
|
case Routes.restoreWalletFromSeedKeys:
|
||||||
if (isSingleCoin) {
|
if (isSingleCoin) {
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<WalletRestorePage>(param1: availableWalletTypes.first));
|
(context) => getIt.get<WalletRestorePage>(param1: availableWalletTypes.first),
|
||||||
} else {
|
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<WalletRestorePage>(param1: availableWalletTypes.first));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (Platform.isIOS) {
|
|
||||||
return CupertinoPageRoute<void>(
|
|
||||||
builder: (_) => getIt.get<NewWalletTypePage>(
|
|
||||||
param1: NewWalletTypeArguments(
|
|
||||||
onTypeSelected: (BuildContext context, WalletType type) {
|
|
||||||
final arg = {'walletType': type};
|
|
||||||
Navigator.of(context).pushNamed(Routes.restoreWallet, arguments: arg);},
|
|
||||||
isCreate: false,
|
|
||||||
isHardwareWallet: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return MaterialPageRoute<void>(
|
|
||||||
builder: (_) => getIt.get<NewWalletTypePage>(
|
|
||||||
param1: NewWalletTypeArguments(
|
|
||||||
onTypeSelected: (BuildContext context, WalletType type) {
|
|
||||||
final arg = {'walletType': type};
|
|
||||||
Navigator.of(context).pushNamed(Routes.restoreWallet, arguments: arg);},
|
|
||||||
isCreate: false,
|
|
||||||
isHardwareWallet: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
return handleRouteWithPlatformAwareness(
|
||||||
|
(context) => getIt.get<NewWalletTypePage>(
|
||||||
|
param1: NewWalletTypeArguments(
|
||||||
|
onTypeSelected: (BuildContext context, WalletType type) {
|
||||||
|
final arg = {'walletType': type};
|
||||||
|
Navigator.of(context).pushNamed(Routes.restoreWallet, arguments: arg);
|
||||||
|
},
|
||||||
|
isCreate: false,
|
||||||
|
isHardwareWallet: false,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.restoreWalletFromHardwareWallet:
|
case Routes.restoreWalletFromHardwareWallet:
|
||||||
if (isSingleCoin) {
|
if (isSingleCoin) {
|
||||||
|
@ -346,10 +307,9 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
builder: (_) => ConnectDevicePage(
|
builder: (_) => ConnectDevicePage(
|
||||||
ConnectDevicePageParams(
|
ConnectDevicePageParams(
|
||||||
walletType: availableWalletTypes.first,
|
walletType: availableWalletTypes.first,
|
||||||
onConnectDevice: (BuildContext context, _) =>
|
onConnectDevice: (BuildContext context, _) => Navigator.of(context).pushNamed(
|
||||||
Navigator.of(context).pushNamed(
|
Routes.chooseHardwareWalletAccount,
|
||||||
Routes.chooseHardwareWalletAccount,
|
arguments: [availableWalletTypes.first]),
|
||||||
arguments: [availableWalletTypes.first]),
|
|
||||||
isReconnect: false,
|
isReconnect: false,
|
||||||
),
|
),
|
||||||
getIt.get<LedgerViewModel>(),
|
getIt.get<LedgerViewModel>(),
|
||||||
|
@ -362,15 +322,12 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
onTypeSelected: (BuildContext context, WalletType type) {
|
onTypeSelected: (BuildContext context, WalletType type) {
|
||||||
final arguments = ConnectDevicePageParams(
|
final arguments = ConnectDevicePageParams(
|
||||||
walletType: type,
|
walletType: type,
|
||||||
onConnectDevice: (BuildContext context, _) =>
|
onConnectDevice: (BuildContext context, _) => Navigator.of(context)
|
||||||
Navigator.of(context).pushNamed(
|
.pushNamed(Routes.chooseHardwareWalletAccount, arguments: [type]),
|
||||||
Routes.chooseHardwareWalletAccount,
|
|
||||||
arguments: [type]),
|
|
||||||
isReconnect: false,
|
isReconnect: false,
|
||||||
);
|
);
|
||||||
|
|
||||||
Navigator.of(context)
|
Navigator.of(context).pushNamed(Routes.connectDevices, arguments: arguments);
|
||||||
.pushNamed(Routes.connectDevices, arguments: arguments);
|
|
||||||
},
|
},
|
||||||
isCreate: false,
|
isCreate: false,
|
||||||
isHardwareWallet: true,
|
isHardwareWallet: true,
|
||||||
|
@ -391,11 +348,9 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
);
|
);
|
||||||
|
|
||||||
case Routes.seed:
|
case Routes.seed:
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<WalletSeedPage>(param1: settings.arguments as bool));
|
(context) => getIt.get<WalletSeedPage>(param1: settings.arguments as bool),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<WalletSeedPage>(param1: settings.arguments as bool));
|
|
||||||
}
|
|
||||||
|
|
||||||
case Routes.restoreWallet:
|
case Routes.restoreWallet:
|
||||||
final args = settings.arguments as Map<String, dynamic>?;
|
final args = settings.arguments as Map<String, dynamic>?;
|
||||||
|
@ -421,29 +376,24 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
final initialPaymentRequest = args?['paymentRequest'] as PaymentRequest?;
|
final initialPaymentRequest = args?['paymentRequest'] as PaymentRequest?;
|
||||||
final coinTypeToSpendFrom = args?['coinTypeToSpendFrom'] as UnspentCoinType?;
|
final coinTypeToSpendFrom = args?['coinTypeToSpendFrom'] as UnspentCoinType?;
|
||||||
|
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<SendPage>(
|
(context) => getIt.get<SendPage>(
|
||||||
param1: initialPaymentRequest,
|
param1: initialPaymentRequest,
|
||||||
param2: coinTypeToSpendFrom,
|
param2: coinTypeToSpendFrom,
|
||||||
));
|
),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<SendPage>(
|
|
||||||
param1: initialPaymentRequest,
|
|
||||||
param2: coinTypeToSpendFrom,
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
case Routes.sendTemplate:
|
case Routes.sendTemplate:
|
||||||
return CupertinoPageRoute<void>(
|
return CupertinoPageRoute<void>(
|
||||||
fullscreenDialog: true, builder: (_) => getIt.get<SendTemplatePage>());
|
fullscreenDialog: true, builder: (_) => getIt.get<SendTemplatePage>());
|
||||||
|
|
||||||
case Routes.receive:
|
case Routes.receive:
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<ReceivePage>());
|
return CupertinoPageRoute<void>(builder: (context) => getIt.get<ReceivePage>());
|
||||||
|
|
||||||
case Routes.addressPage:
|
case Routes.addressPage:
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(builder: (context) => getIt.get<AddressPage>());
|
return handleRouteWithPlatformAwareness(
|
||||||
else return MaterialPageRoute<void>(builder: (context) => getIt.get<AddressPage>());
|
(context) => getIt.get<AddressPage>(),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.transactionDetails:
|
case Routes.transactionDetails:
|
||||||
return CupertinoPageRoute<void>(
|
return CupertinoPageRoute<void>(
|
||||||
|
@ -529,41 +479,39 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
onWillPop: () async => false));
|
onWillPop: () async => false));
|
||||||
|
|
||||||
case Routes.silentPaymentsSettings:
|
case Routes.silentPaymentsSettings:
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(builder: (context) => getIt.get<SilentPaymentsSettingsPage>());
|
return handleRouteWithPlatformAwareness(
|
||||||
else return MaterialPageRoute<void>(builder: (context) => getIt.get<SilentPaymentsSettingsPage>());
|
(context) => getIt.get<SilentPaymentsSettingsPage>(),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.mwebSettings:
|
case Routes.mwebSettings:
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(builder: (context) => getIt.get<MwebSettingsPage>());
|
return handleRouteWithPlatformAwareness(
|
||||||
else return MaterialPageRoute<void>(builder: (context) => getIt.get<MwebSettingsPage>());
|
(context) => getIt.get<MwebSettingsPage>(),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.mwebLogs:
|
case Routes.mwebLogs:
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(builder: (context) => getIt.get<MwebLogsPage>());
|
return handleRouteWithPlatformAwareness(
|
||||||
else return MaterialPageRoute<void>(builder: (context) => getIt.get<MwebLogsPage>());
|
(context) => getIt.get<MwebLogsPage>(),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.mwebNode:
|
case Routes.mwebNode:
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(builder: (context) => getIt.get<MwebNodePage>());
|
return handleRouteWithPlatformAwareness(
|
||||||
else return MaterialPageRoute<void>(builder: (context) => getIt.get<MwebNodePage>());
|
(context) => getIt.get<MwebNodePage>(),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.connectionSync:
|
case Routes.connectionSync:
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<ConnectionSyncPage>());
|
(context) => getIt.get<ConnectionSyncPage>(),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<ConnectionSyncPage>());
|
|
||||||
}
|
|
||||||
|
|
||||||
case Routes.securityBackupPage:
|
case Routes.securityBackupPage:
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<SecurityBackupPage>());
|
(context) => getIt.get<SecurityBackupPage>(),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<SecurityBackupPage>());
|
|
||||||
}
|
|
||||||
|
|
||||||
case Routes.privacyPage:
|
case Routes.privacyPage:
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<PrivacyPage>());
|
(context) => getIt.get<PrivacyPage>(),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<PrivacyPage>());
|
|
||||||
}
|
|
||||||
|
|
||||||
case Routes.trocadorProvidersPage:
|
case Routes.trocadorProvidersPage:
|
||||||
return CupertinoPageRoute<void>(
|
return CupertinoPageRoute<void>(
|
||||||
|
@ -574,18 +522,14 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
fullscreenDialog: true, builder: (_) => getIt.get<DomainLookupsPage>());
|
fullscreenDialog: true, builder: (_) => getIt.get<DomainLookupsPage>());
|
||||||
|
|
||||||
case Routes.displaySettingsPage:
|
case Routes.displaySettingsPage:
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<DisplaySettingsPage>());
|
(context) => getIt.get<DisplaySettingsPage>(),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<DisplaySettingsPage>());
|
|
||||||
}
|
|
||||||
|
|
||||||
case Routes.otherSettingsPage:
|
case Routes.otherSettingsPage:
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<OtherSettingsPage>());
|
(context) => getIt.get<OtherSettingsPage>(),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<OtherSettingsPage>());
|
|
||||||
}
|
|
||||||
|
|
||||||
case Routes.newNode:
|
case Routes.newNode:
|
||||||
final args = settings.arguments as Map<String, dynamic>?;
|
final args = settings.arguments as Map<String, dynamic>?;
|
||||||
|
@ -622,12 +566,9 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
getIt.get<NanoAccountEditOrCreatePage>(param1: settings.arguments as NanoAccount?));
|
getIt.get<NanoAccountEditOrCreatePage>(param1: settings.arguments as NanoAccount?));
|
||||||
|
|
||||||
case Routes.addressBook:
|
case Routes.addressBook:
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<ContactListPage>());
|
(context) => getIt.get<ContactListPage>(),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<ContactListPage>());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
case Routes.pickerAddressBook:
|
case Routes.pickerAddressBook:
|
||||||
final selectedCurrency = settings.arguments as CryptoCurrency?;
|
final selectedCurrency = settings.arguments as CryptoCurrency?;
|
||||||
|
@ -638,19 +579,14 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
return MaterialPageRoute<void>(builder: (_) => getIt.get<AddressListPage>());
|
return MaterialPageRoute<void>(builder: (_) => getIt.get<AddressListPage>());
|
||||||
|
|
||||||
case Routes.addressBookAddContact:
|
case Routes.addressBookAddContact:
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<ContactPage>(param1: settings.arguments as ContactRecord?));
|
(context) => getIt.get<ContactPage>(param1: settings.arguments as ContactRecord?),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<ContactPage>(param1: settings.arguments as ContactRecord?));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
case Routes.showKeys:
|
case Routes.showKeys:
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<WalletKeysPage>());
|
(context) => getIt.get<WalletKeysPage>(),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<WalletKeysPage>());
|
|
||||||
}
|
|
||||||
|
|
||||||
case Routes.exchangeTrade:
|
case Routes.exchangeTrade:
|
||||||
return CupertinoPageRoute<void>(builder: (_) => getIt.get<ExchangeTradePage>());
|
return CupertinoPageRoute<void>(builder: (_) => getIt.get<ExchangeTradePage>());
|
||||||
|
@ -669,11 +605,9 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
|
|
||||||
case Routes.buySellPage:
|
case Routes.buySellPage:
|
||||||
final args = settings.arguments as bool;
|
final args = settings.arguments as bool;
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<BuySellPage>(param1: args));
|
(context) => getIt.get<BuySellPage>(param1: args),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<BuySellPage>(param1: args));
|
|
||||||
}
|
|
||||||
|
|
||||||
case Routes.buyOptionsPage:
|
case Routes.buyOptionsPage:
|
||||||
final args = settings.arguments as List;
|
final args = settings.arguments as List;
|
||||||
|
@ -681,7 +615,8 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
|
|
||||||
case Routes.paymentMethodOptionsPage:
|
case Routes.paymentMethodOptionsPage:
|
||||||
final args = settings.arguments as List;
|
final args = settings.arguments as List;
|
||||||
return MaterialPageRoute<void>(builder: (_) => getIt.get<PaymentMethodOptionsPage>(param1: args));
|
return MaterialPageRoute<void>(
|
||||||
|
builder: (_) => getIt.get<PaymentMethodOptionsPage>(param1: args));
|
||||||
|
|
||||||
case Routes.buyWebView:
|
case Routes.buyWebView:
|
||||||
final args = settings.arguments as List;
|
final args = settings.arguments as List;
|
||||||
|
@ -690,12 +625,9 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
fullscreenDialog: true, builder: (_) => getIt.get<BuyWebViewPage>(param1: args));
|
fullscreenDialog: true, builder: (_) => getIt.get<BuyWebViewPage>(param1: args));
|
||||||
|
|
||||||
case Routes.exchange:
|
case Routes.exchange:
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<ExchangePage>(param1: settings.arguments as PaymentRequest?));
|
(context) => getIt.get<ExchangePage>(param1: settings.arguments as PaymentRequest?),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<ExchangePage>(param1: settings.arguments as PaymentRequest?));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
case Routes.exchangeTemplate:
|
case Routes.exchangeTemplate:
|
||||||
return CupertinoPageRoute<void>(builder: (_) => getIt.get<ExchangeTemplatePage>());
|
return CupertinoPageRoute<void>(builder: (_) => getIt.get<ExchangeTemplatePage>());
|
||||||
|
@ -717,11 +649,9 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
builder: (_) => getIt.get<TransactionSuccessPage>(param1: settings.arguments as String));
|
builder: (_) => getIt.get<TransactionSuccessPage>(param1: settings.arguments as String));
|
||||||
|
|
||||||
case Routes.backup:
|
case Routes.backup:
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<BackupPage>());
|
(context) => getIt.get<BackupPage>(),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<BackupPage>());
|
|
||||||
}
|
|
||||||
|
|
||||||
case Routes.editBackupPassword:
|
case Routes.editBackupPassword:
|
||||||
return CupertinoPageRoute<void>(builder: (_) => getIt.get<EditBackupPasswordPage>());
|
return CupertinoPageRoute<void>(builder: (_) => getIt.get<EditBackupPasswordPage>());
|
||||||
|
@ -731,26 +661,23 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
fullscreenDialog: true, builder: (_) => getIt.get<RestoreFromBackupPage>());
|
fullscreenDialog: true, builder: (_) => getIt.get<RestoreFromBackupPage>());
|
||||||
|
|
||||||
case Routes.support:
|
case Routes.support:
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<SupportPage>());
|
(context) => getIt.get<SupportPage>(),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<SupportPage>());
|
|
||||||
}
|
|
||||||
|
|
||||||
case Routes.supportLiveChat:
|
case Routes.supportLiveChat:
|
||||||
return CupertinoPageRoute<void>(builder: (_) => getIt.get<SupportChatPage>());
|
return CupertinoPageRoute<void>(builder: (_) => getIt.get<SupportChatPage>());
|
||||||
|
|
||||||
case Routes.supportOtherLinks:
|
case Routes.supportOtherLinks:
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<SupportOtherLinksPage>());
|
(context) => getIt.get<SupportOtherLinksPage>(),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<SupportOtherLinksPage>());
|
|
||||||
}
|
|
||||||
|
|
||||||
case Routes.unspentCoinsList:
|
case Routes.unspentCoinsList:
|
||||||
final coinTypeToSpendFrom = settings.arguments as UnspentCoinType?;
|
final coinTypeToSpendFrom = settings.arguments as UnspentCoinType?;
|
||||||
return MaterialPageRoute<void>(
|
return handleRouteWithPlatformAwareness(
|
||||||
builder: (_) => getIt.get<UnspentCoinsListPage>(param1: coinTypeToSpendFrom));
|
(context) => getIt.get<UnspentCoinsListPage>(param1: coinTypeToSpendFrom),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.unspentCoinsDetails:
|
case Routes.unspentCoinsDetails:
|
||||||
final args = settings.arguments as List;
|
final args = settings.arguments as List;
|
||||||
|
@ -765,32 +692,37 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
));
|
));
|
||||||
|
|
||||||
case Routes.cakePayCardsPage:
|
case Routes.cakePayCardsPage:
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(builder: (context) => getIt.get<CakePayCardsPage>());
|
return handleRouteWithPlatformAwareness(
|
||||||
else return MaterialPageRoute<void>(builder: (context) => getIt.get<CakePayCardsPage>());
|
(context) => getIt.get<CakePayCardsPage>(),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.cakePayBuyCardPage:
|
case Routes.cakePayBuyCardPage:
|
||||||
final args = settings.arguments as List;
|
final args = settings.arguments as List;
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(builder: (_) => getIt.get<CakePayBuyCardPage>(param1: args));
|
return handleRouteWithPlatformAwareness(
|
||||||
else return MaterialPageRoute<void>(builder: (_) => getIt.get<CakePayBuyCardPage>(param1: args));
|
(context) => getIt.get<CakePayBuyCardPage>(param1: args),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.cakePayBuyCardDetailPage:
|
case Routes.cakePayBuyCardDetailPage:
|
||||||
final args = settings.arguments as List;
|
final args = settings.arguments as List;
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(builder: (_) => getIt.get<CakePayBuyCardDetailPage>(param1: args));
|
return handleRouteWithPlatformAwareness(
|
||||||
else return MaterialPageRoute<void>(builder: (_) => getIt.get<CakePayBuyCardDetailPage>(param1: args));
|
(context) => getIt.get<CakePayBuyCardDetailPage>(param1: args),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.cakePayWelcomePage:
|
case Routes.cakePayWelcomePage:
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(builder: (_) => getIt.get<CakePayWelcomePage>(),);
|
return handleRouteWithPlatformAwareness(
|
||||||
else return MaterialPageRoute<void>(builder: (_) => getIt.get<CakePayWelcomePage>(),);
|
(context) => getIt.get<CakePayWelcomePage>(),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.cakePayVerifyOtpPage:
|
case Routes.cakePayVerifyOtpPage:
|
||||||
final args = settings.arguments as List;
|
final args = settings.arguments as List;
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(builder: (_) => getIt.get<CakePayVerifyOtpPage>(param1: args));
|
return handleRouteWithPlatformAwareness(
|
||||||
else return MaterialPageRoute<void>(builder: (_) => getIt.get<CakePayVerifyOtpPage>(param1: args));
|
(context) => getIt.get<CakePayVerifyOtpPage>(param1: args),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.cakePayAccountPage:
|
case Routes.cakePayAccountPage:
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(builder: (_) => getIt.get<CakePayAccountPage>());
|
return handleRouteWithPlatformAwareness(
|
||||||
else return MaterialPageRoute<void>(builder: (_) => getIt.get<CakePayAccountPage>());
|
(context) => getIt.get<CakePayAccountPage>(),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.webViewPage:
|
case Routes.webViewPage:
|
||||||
final args = settings.arguments as List;
|
final args = settings.arguments as List;
|
||||||
|
@ -808,28 +740,18 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
final toggleTestnet = args['toggleTestnet'] as Function(bool? val);
|
final toggleTestnet = args['toggleTestnet'] as Function(bool? val);
|
||||||
final restoredWallet = args['restoredWallet'] as RestoredWallet?;
|
final restoredWallet = args['restoredWallet'] as RestoredWallet?;
|
||||||
|
|
||||||
if (Platform.isIOS) return CupertinoPageRoute<void>(
|
return handleRouteWithPlatformAwareness(
|
||||||
builder: (_) => AdvancedPrivacySettingsPage(
|
(context) => AdvancedPrivacySettingsPage(
|
||||||
isFromRestore: isFromRestore,
|
isFromRestore: isFromRestore,
|
||||||
isChildWallet: isChildWallet,
|
isChildWallet: isChildWallet,
|
||||||
useTestnet: useTestnet,
|
useTestnet: useTestnet,
|
||||||
toggleUseTestnet: toggleTestnet,
|
toggleUseTestnet: toggleTestnet,
|
||||||
advancedPrivacySettingsViewModel:
|
advancedPrivacySettingsViewModel:
|
||||||
getIt.get<AdvancedPrivacySettingsViewModel>(param1: type),
|
getIt.get<AdvancedPrivacySettingsViewModel>(param1: type),
|
||||||
nodeViewModel: getIt.get<NodeCreateOrEditViewModel>(param1: type, param2: false),
|
nodeViewModel: getIt.get<NodeCreateOrEditViewModel>(param1: type, param2: false),
|
||||||
seedSettingsViewModel: getIt.get<SeedSettingsViewModel>(),
|
seedSettingsViewModel: getIt.get<SeedSettingsViewModel>(),
|
||||||
));
|
),
|
||||||
else return MaterialPageRoute<void>(
|
);
|
||||||
builder: (_) => AdvancedPrivacySettingsPage(
|
|
||||||
isFromRestore: isFromRestore,
|
|
||||||
isChildWallet: isChildWallet,
|
|
||||||
useTestnet: useTestnet,
|
|
||||||
toggleUseTestnet: toggleTestnet,
|
|
||||||
advancedPrivacySettingsViewModel:
|
|
||||||
getIt.get<AdvancedPrivacySettingsViewModel>(param1: type),
|
|
||||||
nodeViewModel: getIt.get<NodeCreateOrEditViewModel>(param1: type, param2: false),
|
|
||||||
seedSettingsViewModel: getIt.get<SeedSettingsViewModel>(),
|
|
||||||
));
|
|
||||||
|
|
||||||
case Routes.anonPayInvoicePage:
|
case Routes.anonPayInvoicePage:
|
||||||
final args = settings.arguments as List;
|
final args = settings.arguments as List;
|
||||||
|
@ -850,8 +772,8 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
final sessionId = arguments.first as String;
|
final sessionId = arguments.first as String;
|
||||||
final transactionInfo = arguments[1] as TransactionInfo?;
|
final transactionInfo = arguments[1] as TransactionInfo?;
|
||||||
return CupertinoPageRoute<void>(
|
return CupertinoPageRoute<void>(
|
||||||
builder: (_) => getIt.get<PayjoinDetailsPage>(
|
builder: (_) =>
|
||||||
param1: sessionId, param2: transactionInfo));
|
getIt.get<PayjoinDetailsPage>(param1: sessionId, param2: transactionInfo));
|
||||||
|
|
||||||
case Routes.desktop_actions:
|
case Routes.desktop_actions:
|
||||||
return PageRouteBuilder(
|
return PageRouteBuilder(
|
||||||
|
@ -884,7 +806,8 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
return MaterialPageRoute<void>(builder: (_) => getIt.get<Setup2FAInfoPage>());
|
return MaterialPageRoute<void>(builder: (_) => getIt.get<Setup2FAInfoPage>());
|
||||||
|
|
||||||
case Routes.urqrAnimatedPage:
|
case Routes.urqrAnimatedPage:
|
||||||
return MaterialPageRoute<void>(builder: (_) => getIt.get<AnimatedURPage>(param1: settings.arguments));
|
return MaterialPageRoute<void>(
|
||||||
|
builder: (_) => getIt.get<AnimatedURPage>(param1: settings.arguments));
|
||||||
|
|
||||||
case Routes.homeSettings:
|
case Routes.homeSettings:
|
||||||
return CupertinoPageRoute<void>(
|
return CupertinoPageRoute<void>(
|
||||||
|
@ -964,14 +887,15 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
);
|
);
|
||||||
|
|
||||||
case Routes.exchangeTradeExternalSendPage:
|
case Routes.exchangeTradeExternalSendPage:
|
||||||
return MaterialPageRoute<void>(builder: (_) => getIt.get<ExchangeTradeExternalSendPage>(),);
|
return MaterialPageRoute<void>(
|
||||||
|
builder: (_) => getIt.get<ExchangeTradeExternalSendPage>(),
|
||||||
|
);
|
||||||
|
|
||||||
case Routes.backgroundSync:
|
case Routes.backgroundSync:
|
||||||
if (Platform.isIOS) {
|
return handleRouteWithPlatformAwareness(
|
||||||
return CupertinoPageRoute<void>(builder: (context) => getIt.get<BackgroundSyncPage>());
|
(context) => getIt.get<BackgroundSyncPage>(),
|
||||||
} else {
|
);
|
||||||
return MaterialPageRoute<void>(builder: (context) => getIt.get<BackgroundSyncPage>());
|
|
||||||
}
|
|
||||||
case Routes.devMoneroBackgroundSync:
|
case Routes.devMoneroBackgroundSync:
|
||||||
return MaterialPageRoute<void>(
|
return MaterialPageRoute<void>(
|
||||||
builder: (_) => getIt.get<DevMoneroBackgroundSyncPage>(),
|
builder: (_) => getIt.get<DevMoneroBackgroundSyncPage>(),
|
||||||
|
|
|
@ -125,7 +125,6 @@ class BaseTextFormField extends StatelessWidget {
|
||||||
suffix: suffix,
|
suffix: suffix,
|
||||||
suffixIcon: suffixIcon,
|
suffixIcon: suffixIcon,
|
||||||
filled: !hasUnderlineBorder,
|
filled: !hasUnderlineBorder,
|
||||||
//border: !hasUnderlineBorder ? OutlineInputBorder() : null,
|
|
||||||
fillColor:
|
fillColor:
|
||||||
hasUnderlineBorder ? null : fillColor ?? Theme.of(context).colorScheme.surfaceContainer,
|
hasUnderlineBorder ? null : fillColor ?? Theme.of(context).colorScheme.surfaceContainer,
|
||||||
hintStyle: placeholderTextStyle ??
|
hintStyle: placeholderTextStyle ??
|
||||||
|
@ -162,13 +161,6 @@ class BaseTextFormField extends StatelessWidget {
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
// OutlineInputBorder(
|
|
||||||
// borderRadius: BorderRadius.circular(10),
|
|
||||||
// borderSide: BorderSide(
|
|
||||||
// color: Theme.of(context).colorScheme.outlineVariant,
|
|
||||||
// width: 1.5,
|
|
||||||
// )
|
|
||||||
// ),
|
|
||||||
errorBorder: hasUnderlineBorder
|
errorBorder: hasUnderlineBorder
|
||||||
? UnderlineInputBorder(
|
? UnderlineInputBorder(
|
||||||
borderSide: BorderSide(color: Theme.of(context).colorScheme.error),
|
borderSide: BorderSide(color: Theme.of(context).colorScheme.error),
|
||||||
|
|
|
@ -40,17 +40,22 @@ abstract class ThemeStoreBase with Store {
|
||||||
}
|
}
|
||||||
|
|
||||||
@action
|
@action
|
||||||
Future<void> setThemeMode(ThemeMode mode, {bool shouldRefreshTheme = true}) async {
|
Future<void> setThemeMode(ThemeMode mode) async {
|
||||||
if (_themeMode == mode) return;
|
if (_themeMode == mode) return;
|
||||||
|
|
||||||
_themeMode = mode;
|
_themeMode = mode;
|
||||||
await sharedPreferences.setString(PreferencesKey.themeMode, mode.toString());
|
|
||||||
|
|
||||||
if (mode == ThemeMode.system && shouldRefreshTheme) {
|
await _saveThemeModeToPrefs(mode);
|
||||||
|
|
||||||
|
if (mode == ThemeMode.system) {
|
||||||
setTheme(getThemeFromSystem());
|
setTheme(getThemeFromSystem());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> _saveThemeModeToPrefs(ThemeMode mode) async {
|
||||||
|
await sharedPreferences.setString(PreferencesKey.themeMode, mode.toString());
|
||||||
|
}
|
||||||
|
|
||||||
/// Loads the saved theme preferences
|
/// Loads the saved theme preferences
|
||||||
Future<void> loadThemePreferences() async {
|
Future<void> loadThemePreferences() async {
|
||||||
sharedPreferences = await SharedPreferences.getInstance();
|
sharedPreferences = await SharedPreferences.getInstance();
|
||||||
|
@ -95,7 +100,7 @@ abstract class ThemeStoreBase with Store {
|
||||||
/// Handles theme loading for mobile platforms
|
/// Handles theme loading for mobile platforms
|
||||||
Future<void> _handleMobileTheme(bool isNewInstall) async {
|
Future<void> _handleMobileTheme(bool isNewInstall) async {
|
||||||
if (isNewInstall) {
|
if (isNewInstall) {
|
||||||
await _setSystemTheme();
|
await _setSystemTheme(isNewInstall: isNewInstall);
|
||||||
} else {
|
} else {
|
||||||
await loadSavedTheme();
|
await loadSavedTheme();
|
||||||
}
|
}
|
||||||
|
@ -112,27 +117,36 @@ abstract class ThemeStoreBase with Store {
|
||||||
|
|
||||||
final theme = ThemeList.deserialize(raw: savedTheme);
|
final theme = ThemeList.deserialize(raw: savedTheme);
|
||||||
|
|
||||||
if (_currentTheme != theme) {
|
|
||||||
await setTheme(theme);
|
|
||||||
}
|
|
||||||
|
|
||||||
final newThemeMode = _getThemeModeOnStartUp(theme, isFromBackup);
|
final newThemeMode = _getThemeModeOnStartUp(theme, isFromBackup);
|
||||||
|
|
||||||
|
if (newThemeMode == ThemeMode.system) {
|
||||||
|
await _setSystemTheme();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (_themeMode != newThemeMode) {
|
if (_themeMode != newThemeMode) {
|
||||||
await setThemeMode(newThemeMode, shouldRefreshTheme: false);
|
await setThemeMode(newThemeMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_currentTheme != theme) {
|
||||||
|
await setTheme(theme);
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
await _setSystemTheme();
|
await _setSystemTheme();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _setSystemTheme() async {
|
Future<void> _setSystemTheme({bool isNewInstall = false}) async {
|
||||||
final systemTheme = getThemeFromSystem();
|
final systemTheme = getThemeFromSystem();
|
||||||
|
|
||||||
if (_currentTheme != systemTheme) {
|
if (_currentTheme != systemTheme) {
|
||||||
await setTheme(systemTheme);
|
await setTheme(systemTheme);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isNewInstall) {
|
||||||
|
await _saveThemeModeToPrefs(ThemeMode.system);
|
||||||
|
}
|
||||||
|
|
||||||
if (_themeMode != ThemeMode.system) {
|
if (_themeMode != ThemeMode.system) {
|
||||||
await setThemeMode(ThemeMode.system);
|
await setThemeMode(ThemeMode.system);
|
||||||
}
|
}
|
||||||
|
@ -142,7 +156,7 @@ abstract class ThemeStoreBase with Store {
|
||||||
if (isFromBackup || _themeMode != ThemeMode.system) {
|
if (isFromBackup || _themeMode != ThemeMode.system) {
|
||||||
return theme.isDark ? ThemeMode.dark : ThemeMode.light;
|
return theme.isDark ? ThemeMode.dark : ThemeMode.light;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ThemeMode.system;
|
return ThemeMode.system;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue