2022-10-14 10:30:23 +02:00
|
|
|
import NimQml, sequtils, sugar, chronicles
|
2021-10-06 22:05:13 +02:00
|
|
|
|
2022-01-10 12:03:28 +01:00
|
|
|
import ../../app_service/service/general/service as general_service
|
2021-10-16 18:14:08 +02:00
|
|
|
import ../../app_service/service/keychain/service as keychain_service
|
2022-07-21 13:29:18 +02:00
|
|
|
import ../../app_service/service/keycard/service as keycard_service
|
2021-10-12 15:48:09 +02:00
|
|
|
import ../../app_service/service/accounts/service as accounts_service
|
2021-10-21 15:13:13 -04:00
|
|
|
import ../../app_service/service/contacts/service as contacts_service
|
2021-10-21 14:37:21 -04:00
|
|
|
import ../../app_service/service/language/service as language_service
|
2021-10-06 22:05:13 +02:00
|
|
|
import ../../app_service/service/chat/service as chat_service
|
|
|
|
import ../../app_service/service/community/service as community_service
|
2021-10-29 13:10:17 +02:00
|
|
|
import ../../app_service/service/message/service as message_service
|
2021-10-14 09:58:28 +02:00
|
|
|
import ../../app_service/service/token/service as token_service
|
2021-10-15 10:24:32 +02:00
|
|
|
import ../../app_service/service/transaction/service as transaction_service
|
2021-10-15 11:12:48 +02:00
|
|
|
import ../../app_service/service/collectible/service as collectible_service
|
2021-10-18 13:00:56 +02:00
|
|
|
import ../../app_service/service/wallet_account/service as wallet_account_service
|
2021-10-14 10:29:33 -04:00
|
|
|
import ../../app_service/service/bookmarks/service as bookmark_service
|
2021-10-21 10:46:24 -04:00
|
|
|
import ../../app_service/service/dapp_permissions/service as dapp_permissions_service
|
2021-10-22 14:26:11 -04:00
|
|
|
import ../../app_service/service/privacy/service as privacy_service
|
2021-10-26 10:36:31 -04:00
|
|
|
import ../../app_service/service/provider/service as provider_service
|
2021-11-15 13:17:41 +03:00
|
|
|
import ../../app_service/service/node/service as node_service
|
2021-10-13 17:31:04 -04:00
|
|
|
import ../../app_service/service/profile/service as profile_service
|
|
|
|
import ../../app_service/service/settings/service as settings_service
|
2021-11-25 12:12:19 -05:00
|
|
|
import ../../app_service/service/stickers/service as stickers_service
|
2021-10-13 17:31:04 -04:00
|
|
|
import ../../app_service/service/about/service as about_service
|
2021-11-24 13:09:15 +01:00
|
|
|
import ../../app_service/service/node_configuration/service as node_configuration_service
|
2021-11-25 12:12:19 -05:00
|
|
|
import ../../app_service/service/network/service as network_service
|
2021-12-13 14:52:55 -05:00
|
|
|
import ../../app_service/service/activity_center/service as activity_center_service
|
2021-12-14 09:55:16 +01:00
|
|
|
import ../../app_service/service/saved_address/service as saved_address_service
|
2021-12-27 12:04:10 +01:00
|
|
|
import ../../app_service/service/devices/service as devices_service
|
2021-12-27 17:40:46 +01:00
|
|
|
import ../../app_service/service/mailservers/service as mailservers_service
|
2022-01-13 09:58:42 +01:00
|
|
|
import ../../app_service/service/gif/service as gif_service
|
2022-01-17 09:56:44 +01:00
|
|
|
import ../../app_service/service/ens/service as ens_service
|
2022-10-14 10:30:23 +02:00
|
|
|
import ../../app_service/common/account_constants
|
2021-10-29 13:10:17 +02:00
|
|
|
|
2021-10-06 22:05:13 +02:00
|
|
|
import ../modules/startup/module as startup_module
|
|
|
|
import ../modules/main/module as main_module
|
2022-02-25 14:45:52 -05:00
|
|
|
import ../core/notifications/notifications_manager
|
2021-10-06 22:05:13 +02:00
|
|
|
|
2021-11-16 14:49:51 +01:00
|
|
|
import ../global/global_singleton
|
2021-10-06 22:05:13 +02:00
|
|
|
|
2021-11-23 14:44:33 +01:00
|
|
|
import ../core/[main]
|
|
|
|
|
2022-05-19 12:24:53 +02:00
|
|
|
logScope:
|
|
|
|
topics = "app-controller"
|
|
|
|
|
2022-02-09 10:43:23 +01:00
|
|
|
type
|
|
|
|
AppController* = ref object of RootObj
|
2022-10-14 10:30:23 +02:00
|
|
|
storeKeyPair: bool
|
2021-11-17 14:13:20 +01:00
|
|
|
statusFoundation: StatusFoundation
|
2022-02-25 14:45:52 -05:00
|
|
|
notificationsManager*: NotificationsManager
|
2022-02-09 10:43:23 +01:00
|
|
|
|
2021-11-17 13:57:19 +01:00
|
|
|
# Global
|
2022-05-10 15:15:56 +02:00
|
|
|
appSettingsVariant: QVariant
|
2021-11-17 13:57:19 +01:00
|
|
|
localAppSettingsVariant: QVariant
|
|
|
|
localAccountSettingsVariant: QVariant
|
|
|
|
localAccountSensitiveSettingsVariant: QVariant
|
|
|
|
userProfileVariant: QVariant
|
2021-12-14 17:11:31 +01:00
|
|
|
globalUtilsVariant: QVariant
|
2021-11-17 13:57:19 +01:00
|
|
|
|
2021-10-06 22:05:13 +02:00
|
|
|
# Services
|
2022-01-10 12:03:28 +01:00
|
|
|
generalService: general_service.Service
|
2022-07-21 13:29:18 +02:00
|
|
|
keycardService*: keycard_service.Service
|
2021-10-16 18:14:08 +02:00
|
|
|
keychainService: keychain_service.Service
|
2021-10-12 15:48:09 +02:00
|
|
|
accountsService: accounts_service.Service
|
2021-10-21 15:13:13 -04:00
|
|
|
contactsService: contacts_service.Service
|
2021-10-06 22:05:13 +02:00
|
|
|
chatService: chat_service.Service
|
|
|
|
communityService: community_service.Service
|
2021-10-29 13:10:17 +02:00
|
|
|
messageService: message_service.Service
|
2021-10-14 09:58:28 +02:00
|
|
|
tokenService: token_service.Service
|
2021-10-15 10:24:32 +02:00
|
|
|
transactionService: transaction_service.Service
|
2021-10-15 11:12:48 +02:00
|
|
|
collectibleService: collectible_service.Service
|
2021-10-18 13:00:56 +02:00
|
|
|
walletAccountService: wallet_account_service.Service
|
2021-10-14 10:29:33 -04:00
|
|
|
bookmarkService: bookmark_service.Service
|
2021-10-21 10:46:24 -04:00
|
|
|
dappPermissionsService: dapp_permissions_service.Service
|
2021-10-26 10:36:31 -04:00
|
|
|
providerService: provider_service.Service
|
2021-10-13 17:31:04 -04:00
|
|
|
profileService: profile_service.Service
|
|
|
|
settingsService: settings_service.Service
|
2021-11-25 12:12:19 -05:00
|
|
|
stickersService: stickers_service.Service
|
2021-10-13 17:31:04 -04:00
|
|
|
aboutService: about_service.Service
|
2021-11-25 12:12:19 -05:00
|
|
|
networkService: network_service.Service
|
2021-12-13 14:52:55 -05:00
|
|
|
activityCenterService: activity_center_service.Service
|
2021-10-21 14:37:21 -04:00
|
|
|
languageService: language_service.Service
|
2021-12-30 13:39:47 +01:00
|
|
|
# mnemonicService: mnemonic_service.Service
|
2021-10-22 14:26:11 -04:00
|
|
|
privacyService: privacy_service.Service
|
2021-11-24 13:09:15 +01:00
|
|
|
nodeConfigurationService: node_configuration_service.Service
|
2021-12-14 09:55:16 +01:00
|
|
|
savedAddressService: saved_address_service.Service
|
2021-12-27 12:04:10 +01:00
|
|
|
devicesService: devices_service.Service
|
2021-12-27 17:40:46 +01:00
|
|
|
mailserversService: mailservers_service.Service
|
2021-11-15 13:17:41 +03:00
|
|
|
nodeService: node_service.Service
|
2022-01-13 09:58:42 +01:00
|
|
|
gifService: gif_service.Service
|
2022-01-17 09:56:44 +01:00
|
|
|
ensService: ens_service.Service
|
2021-10-20 11:50:50 +02:00
|
|
|
|
2021-10-13 17:31:04 -04:00
|
|
|
# Modules
|
2021-10-19 09:19:03 +02:00
|
|
|
startupModule: startup_module.AccessInterface
|
2021-10-13 17:31:04 -04:00
|
|
|
mainModule: main_module.AccessInterface
|
2021-10-06 22:05:13 +02:00
|
|
|
|
|
|
|
#################################################
|
|
|
|
# Forward declaration section
|
2021-10-29 19:27:14 +02:00
|
|
|
proc load(self: AppController)
|
|
|
|
proc buildAndRegisterLocalAccountSensitiveSettings(self: AppController)
|
|
|
|
proc buildAndRegisterUserProfile(self: AppController)
|
2021-10-06 22:05:13 +02:00
|
|
|
|
|
|
|
# Startup Module Delegate Interface
|
|
|
|
proc startupDidLoad*(self: AppController)
|
2021-10-15 21:47:43 +02:00
|
|
|
proc userLoggedIn*(self: AppController)
|
2022-12-01 18:26:16 -04:00
|
|
|
proc logout*(self: AppController)
|
2022-10-14 10:30:23 +02:00
|
|
|
proc storeKeyPairForNewKeycardUser*(self: AppController)
|
2021-10-06 22:05:13 +02:00
|
|
|
|
|
|
|
# Main Module Delegate Interface
|
|
|
|
proc mainDidLoad*(self: AppController)
|
|
|
|
#################################################
|
|
|
|
|
2021-10-16 16:42:40 +02:00
|
|
|
proc connect(self: AppController) =
|
2022-01-10 12:03:28 +01:00
|
|
|
self.statusFoundation.events.once("nodeStopped") do(a: Args):
|
|
|
|
# not sure, but maybe we should take some actions when node stops
|
|
|
|
discard
|
2021-10-06 22:05:13 +02:00
|
|
|
|
2021-11-17 14:13:20 +01:00
|
|
|
proc newAppController*(statusFoundation: StatusFoundation): AppController =
|
2021-10-06 22:05:13 +02:00
|
|
|
result = AppController()
|
2022-10-14 10:30:23 +02:00
|
|
|
result.storeKeyPair = false
|
2021-11-17 14:13:20 +01:00
|
|
|
result.statusFoundation = statusFoundation
|
2022-05-10 15:15:56 +02:00
|
|
|
|
|
|
|
# Preparing settings service to be exposed later as global QObject
|
2022-06-14 13:27:23 +02:00
|
|
|
result.settingsService = settings_service.newService(statusFoundation.events)
|
2022-05-10 15:15:56 +02:00
|
|
|
result.appSettingsVariant = newQVariant(result.settingsService)
|
|
|
|
result.notificationsManager = newNotificationsManager(statusFoundation.events, result.settingsService)
|
2021-11-17 13:57:19 +01:00
|
|
|
|
|
|
|
# Global
|
|
|
|
result.localAppSettingsVariant = newQVariant(singletonInstance.localAppSettings)
|
|
|
|
result.localAccountSettingsVariant = newQVariant(singletonInstance.localAccountSettings)
|
|
|
|
result.localAccountSensitiveSettingsVariant = newQVariant(singletonInstance.localAccountSensitiveSettings)
|
|
|
|
result.userProfileVariant = newQVariant(singletonInstance.userProfile)
|
2022-05-10 15:15:56 +02:00
|
|
|
result.globalUtilsVariant = newQVariant(singletonInstance.utils)
|
2021-11-17 13:57:19 +01:00
|
|
|
|
2021-10-06 22:05:13 +02:00
|
|
|
# Services
|
2022-07-21 13:29:18 +02:00
|
|
|
result.generalService = general_service.newService()
|
2022-09-30 20:49:54 +04:00
|
|
|
result.activityCenterService = activity_center_service.newService(statusFoundation.events, statusFoundation.threadpool)
|
2022-07-21 13:29:18 +02:00
|
|
|
result.keycardService = keycard_service.newService(statusFoundation.events, statusFoundation.threadpool)
|
2022-02-09 10:43:23 +01:00
|
|
|
result.nodeConfigurationService = node_configuration_service.newService(statusFoundation.fleetConfiguration,
|
2022-11-21 13:51:39 +01:00
|
|
|
result.settingsService, statusFoundation.events)
|
2022-01-10 12:03:28 +01:00
|
|
|
result.keychainService = keychain_service.newService(statusFoundation.events)
|
2022-11-14 11:24:16 +01:00
|
|
|
result.accountsService = accounts_service.newService(statusFoundation.events, statusFoundation.threadpool,
|
|
|
|
statusFoundation.fleetConfiguration)
|
2022-02-17 10:15:37 +01:00
|
|
|
result.networkService = network_service.newService(statusFoundation.events, result.settingsService)
|
2022-02-08 14:32:21 +01:00
|
|
|
result.contactsService = contacts_service.newService(
|
2022-09-30 20:49:54 +04:00
|
|
|
statusFoundation.events, statusFoundation.threadpool, result.networkService, result.settingsService,
|
|
|
|
result.activityCenterService
|
2022-02-08 14:32:21 +01:00
|
|
|
)
|
2022-01-10 12:03:28 +01:00
|
|
|
result.chatService = chat_service.newService(statusFoundation.events, result.contactsService)
|
2022-02-08 14:32:21 +01:00
|
|
|
result.tokenService = token_service.newService(
|
2022-04-04 14:11:39 +02:00
|
|
|
statusFoundation.events, statusFoundation.threadpool, result.networkService
|
2022-02-08 14:32:21 +01:00
|
|
|
)
|
2022-11-15 10:13:08 +01:00
|
|
|
result.collectibleService = collectible_service.newService(statusFoundation.events, statusFoundation.threadpool, result.networkService)
|
2022-02-10 13:10:56 +01:00
|
|
|
result.walletAccountService = wallet_account_service.newService(
|
2022-05-12 17:24:03 +02:00
|
|
|
statusFoundation.events, statusFoundation.threadpool, result.settingsService, result.accountsService,
|
|
|
|
result.tokenService, result.networkService,
|
2022-02-10 13:10:56 +01:00
|
|
|
)
|
2022-03-21 11:32:53 +01:00
|
|
|
result.messageService = message_service.newService(
|
|
|
|
statusFoundation.events, statusFoundation.threadpool, result.contactsService, result.tokenService, result.walletAccountService, result.networkService
|
|
|
|
)
|
2022-12-06 15:18:42 -05:00
|
|
|
result.communityService = community_service.newService(statusFoundation.events,
|
|
|
|
statusFoundation.threadpool, result.chatService, result.activityCenterService, result.messageService)
|
2022-06-07 15:57:09 +02:00
|
|
|
result.transactionService = transaction_service.newService(statusFoundation.events, statusFoundation.threadpool, result.networkService, result.settingsService, result.tokenService)
|
2022-06-08 21:40:02 +02:00
|
|
|
result.bookmarkService = bookmark_service.newService(statusFoundation.events)
|
2022-05-19 12:24:53 +02:00
|
|
|
result.profileService = profile_service.newService(result.contactsService, result.settingsService)
|
2021-11-25 12:12:19 -05:00
|
|
|
result.stickersService = stickers_service.newService(
|
2022-01-10 12:03:28 +01:00
|
|
|
statusFoundation.events,
|
2021-11-25 12:12:19 -05:00
|
|
|
statusFoundation.threadpool,
|
|
|
|
result.settingsService,
|
|
|
|
result.walletAccountService,
|
|
|
|
result.transactionService,
|
|
|
|
result.networkService,
|
2022-02-14 19:27:23 -04:00
|
|
|
result.chatService,
|
|
|
|
result.tokenService
|
2021-11-25 12:12:19 -05:00
|
|
|
)
|
2022-05-31 11:36:05 +02:00
|
|
|
result.aboutService = about_service.newService(statusFoundation.events, statusFoundation.threadpool)
|
2021-10-21 10:46:24 -04:00
|
|
|
result.dappPermissionsService = dapp_permissions_service.newService()
|
2022-07-22 14:23:11 +02:00
|
|
|
result.languageService = language_service.newService(statusFoundation.events)
|
2021-12-30 13:39:47 +01:00
|
|
|
# result.mnemonicService = mnemonic_service.newService()
|
2022-02-09 10:43:23 +01:00
|
|
|
result.privacyService = privacy_service.newService(statusFoundation.events, result.settingsService,
|
2021-12-30 13:39:47 +01:00
|
|
|
result.accountsService)
|
2022-10-20 15:33:23 +02:00
|
|
|
result.savedAddressService = saved_address_service.newService(statusFoundation.events, result.networkService)
|
2022-01-10 12:03:28 +01:00
|
|
|
result.devicesService = devices_service.newService(statusFoundation.events, result.settingsService)
|
2022-02-09 10:43:23 +01:00
|
|
|
result.mailserversService = mailservers_service.newService(statusFoundation.events, statusFoundation.threadpool,
|
2022-01-28 19:18:30 -04:00
|
|
|
result.settingsService, result.nodeConfigurationService, statusFoundation.fleetConfiguration)
|
2022-02-09 10:43:23 +01:00
|
|
|
result.nodeService = node_service.newService(statusFoundation.events, statusFoundation.threadpool,
|
2022-11-30 14:47:57 -04:00
|
|
|
result.settingsService, result.nodeConfigurationService)
|
2022-01-13 09:58:42 +01:00
|
|
|
result.gifService = gif_service.newService(result.settingsService)
|
2022-03-09 11:27:32 +01:00
|
|
|
result.ensService = ens_service.newService(statusFoundation.events, statusFoundation.threadpool,
|
2022-03-21 11:32:53 +01:00
|
|
|
result.settingsService, result.walletAccountService, result.transactionService,
|
2022-02-09 11:39:10 -05:00
|
|
|
result.networkService, result.tokenService)
|
2022-03-29 12:21:12 +02:00
|
|
|
result.providerService = provider_service.newService(statusFoundation.events, statusFoundation.threadpool, result.ensService)
|
2021-10-14 09:58:28 +02:00
|
|
|
|
2021-10-06 22:05:13 +02:00
|
|
|
# Modules
|
2021-10-19 09:19:03 +02:00
|
|
|
result.startupModule = startup_module.newModule[AppController](
|
|
|
|
result,
|
2022-01-10 12:03:28 +01:00
|
|
|
statusFoundation.events,
|
2022-02-09 10:43:23 +01:00
|
|
|
result.keychainService,
|
2022-03-22 10:29:59 +01:00
|
|
|
result.accountsService,
|
2022-07-20 14:34:44 +02:00
|
|
|
result.generalService,
|
2022-07-21 13:29:18 +02:00
|
|
|
result.profileService,
|
|
|
|
result.keycardService
|
2021-10-19 09:19:03 +02:00
|
|
|
)
|
2021-10-15 10:24:32 +02:00
|
|
|
result.mainModule = main_module.newModule[AppController](
|
2021-12-14 09:55:16 +01:00
|
|
|
result,
|
2022-01-10 12:03:28 +01:00
|
|
|
statusFoundation.events,
|
2022-10-20 11:05:10 +02:00
|
|
|
statusFoundation.urlsManager,
|
2021-10-15 10:24:32 +02:00
|
|
|
result.keychainService,
|
2021-12-14 09:55:16 +01:00
|
|
|
result.accountsService,
|
2021-10-15 10:24:32 +02:00
|
|
|
result.chatService,
|
|
|
|
result.communityService,
|
2021-10-29 13:10:17 +02:00
|
|
|
result.messageService,
|
2021-10-15 10:24:32 +02:00
|
|
|
result.tokenService,
|
2021-10-15 11:12:48 +02:00
|
|
|
result.transactionService,
|
2021-10-18 13:00:56 +02:00
|
|
|
result.collectibleService,
|
2021-10-19 11:03:52 +02:00
|
|
|
result.walletAccountService,
|
2021-10-14 10:29:33 -04:00
|
|
|
result.bookmarkService,
|
2021-10-13 17:31:04 -04:00
|
|
|
result.profileService,
|
|
|
|
result.settingsService,
|
2021-10-21 15:13:13 -04:00
|
|
|
result.contactsService,
|
2021-10-13 17:31:04 -04:00
|
|
|
result.aboutService,
|
2021-10-21 10:46:24 -04:00
|
|
|
result.dappPermissionsService,
|
2021-10-21 18:31:41 -04:00
|
|
|
result.languageService,
|
2021-12-30 13:39:47 +01:00
|
|
|
# result.mnemonicService,
|
2021-10-26 10:36:31 -04:00
|
|
|
result.privacyService,
|
|
|
|
result.providerService,
|
2021-12-13 14:52:55 -05:00
|
|
|
result.stickersService,
|
2021-12-14 09:55:16 +01:00
|
|
|
result.activityCenterService,
|
2021-12-14 19:47:32 +01:00
|
|
|
result.savedAddressService,
|
2021-12-27 12:04:10 +01:00
|
|
|
result.nodeConfigurationService,
|
2021-12-27 17:40:46 +01:00
|
|
|
result.devicesService,
|
2021-11-15 13:17:41 +03:00
|
|
|
result.mailserversService,
|
2022-01-13 09:58:42 +01:00
|
|
|
result.nodeService,
|
|
|
|
result.gifService,
|
2022-02-11 10:44:49 +01:00
|
|
|
result.ensService,
|
|
|
|
result.networkService,
|
2022-08-16 11:19:15 +02:00
|
|
|
result.generalService,
|
|
|
|
result.keycardService
|
2021-10-15 10:24:32 +02:00
|
|
|
)
|
2021-10-06 22:05:13 +02:00
|
|
|
|
2021-12-13 11:49:54 +01:00
|
|
|
# Do connections
|
2021-10-16 16:42:40 +02:00
|
|
|
result.connect()
|
2021-10-06 22:05:13 +02:00
|
|
|
|
|
|
|
proc delete*(self: AppController) =
|
2022-01-12 00:16:17 +01:00
|
|
|
singletonInstance.delete
|
2022-02-25 14:45:52 -05:00
|
|
|
self.notificationsManager.delete
|
2021-12-30 13:39:47 +01:00
|
|
|
self.keychainService.delete
|
2021-10-21 15:13:13 -04:00
|
|
|
self.contactsService.delete
|
2021-10-14 10:29:33 -04:00
|
|
|
self.bookmarkService.delete
|
2022-01-13 09:58:42 +01:00
|
|
|
self.gifService.delete
|
2022-09-02 13:03:40 +02:00
|
|
|
if not self.startupModule.isNil:
|
|
|
|
self.startupModule.delete
|
2021-10-06 22:05:13 +02:00
|
|
|
self.mainModule.delete
|
2021-12-29 10:53:56 +01:00
|
|
|
self.languageService.delete
|
2022-02-09 10:43:23 +01:00
|
|
|
|
2022-05-10 15:15:56 +02:00
|
|
|
self.appSettingsVariant.delete
|
2021-10-20 12:55:10 +02:00
|
|
|
self.localAppSettingsVariant.delete
|
2021-10-16 21:54:00 +02:00
|
|
|
self.localAccountSettingsVariant.delete
|
2021-10-20 11:50:50 +02:00
|
|
|
self.localAccountSensitiveSettingsVariant.delete
|
2021-10-29 19:27:14 +02:00
|
|
|
self.userProfileVariant.delete
|
2021-12-14 17:11:31 +01:00
|
|
|
self.globalUtilsVariant.delete
|
2021-10-16 21:54:00 +02:00
|
|
|
|
2021-10-12 15:48:09 +02:00
|
|
|
self.accountsService.delete
|
|
|
|
self.chatService.delete
|
|
|
|
self.communityService.delete
|
2021-10-19 09:19:03 +02:00
|
|
|
self.tokenService.delete
|
|
|
|
self.transactionService.delete
|
|
|
|
self.collectibleService.delete
|
|
|
|
self.walletAccountService.delete
|
2021-10-13 17:31:04 -04:00
|
|
|
self.aboutService.delete
|
2021-11-25 12:12:19 -05:00
|
|
|
self.networkService.delete
|
2021-12-13 14:52:55 -05:00
|
|
|
self.activityCenterService.delete
|
2021-10-21 10:46:24 -04:00
|
|
|
self.dappPermissionsService.delete
|
2021-10-26 10:36:31 -04:00
|
|
|
self.providerService.delete
|
2021-11-24 13:09:15 +01:00
|
|
|
self.nodeConfigurationService.delete
|
2021-11-15 13:17:41 +03:00
|
|
|
self.nodeService.delete
|
2021-11-25 12:12:19 -05:00
|
|
|
self.settingsService.delete
|
|
|
|
self.stickersService.delete
|
2021-12-14 09:55:16 +01:00
|
|
|
self.savedAddressService.delete
|
2021-12-27 12:04:10 +01:00
|
|
|
self.devicesService.delete
|
2021-12-27 17:40:46 +01:00
|
|
|
self.mailserversService.delete
|
2021-12-30 13:39:47 +01:00
|
|
|
self.messageService.delete
|
|
|
|
self.privacyService.delete
|
|
|
|
self.profileService.delete
|
2022-01-10 12:03:28 +01:00
|
|
|
self.generalService.delete
|
2022-01-17 09:56:44 +01:00
|
|
|
self.ensService.delete
|
2022-01-26 20:31:45 +01:00
|
|
|
self.gifService.delete
|
2022-07-21 13:29:18 +02:00
|
|
|
self.keycardService.delete
|
2021-10-06 22:05:13 +02:00
|
|
|
|
|
|
|
proc startupDidLoad*(self: AppController) =
|
2021-10-20 12:55:10 +02:00
|
|
|
singletonInstance.engine.setRootContextProperty("localAppSettings", self.localAppSettingsVariant)
|
2021-10-20 11:50:50 +02:00
|
|
|
singletonInstance.engine.setRootContextProperty("localAccountSettings", self.localAccountSettingsVariant)
|
2022-03-01 20:14:20 -04:00
|
|
|
singletonInstance.engine.setRootContextProperty("globalUtils", self.globalUtilsVariant)
|
2021-10-16 16:42:40 +02:00
|
|
|
singletonInstance.engine.load(newQUrl("qrc:///main.qml"))
|
2021-10-06 22:05:13 +02:00
|
|
|
|
2021-12-29 10:53:56 +01:00
|
|
|
# We need to init a language service once qml is loaded
|
|
|
|
self.languageService.init()
|
2022-01-27 16:29:17 +01:00
|
|
|
# We need this to set app width/height appropriatelly on the app start.
|
|
|
|
self.startupModule.startUpUIRaised()
|
2021-10-20 12:55:10 +02:00
|
|
|
|
2021-10-06 22:05:13 +02:00
|
|
|
proc mainDidLoad*(self: AppController) =
|
2021-10-14 10:04:15 +02:00
|
|
|
self.startupModule.moveToAppState()
|
2022-12-16 16:04:03 +02:00
|
|
|
self.startupModule.checkForStoringPasswordToKeychain()
|
2021-10-16 21:03:01 +02:00
|
|
|
|
2021-10-06 22:05:13 +02:00
|
|
|
proc start*(self: AppController) =
|
2022-07-21 13:29:18 +02:00
|
|
|
self.keycardService.init()
|
2022-01-27 16:29:17 +01:00
|
|
|
self.keychainService.init()
|
2022-01-10 12:03:28 +01:00
|
|
|
self.generalService.init()
|
2021-10-12 15:48:09 +02:00
|
|
|
self.accountsService.init()
|
2022-02-09 10:43:23 +01:00
|
|
|
|
2021-10-12 15:48:09 +02:00
|
|
|
self.startupModule.load()
|
2021-10-06 22:05:13 +02:00
|
|
|
|
2021-11-22 16:31:10 +01:00
|
|
|
proc load(self: AppController) =
|
2022-02-25 14:45:52 -05:00
|
|
|
self.notificationsManager.init()
|
|
|
|
|
2021-11-22 19:40:03 +01:00
|
|
|
self.settingsService.init()
|
2021-11-24 13:09:15 +01:00
|
|
|
self.nodeConfigurationService.init()
|
2022-11-03 09:03:10 -04:00
|
|
|
self.mailserversService.init()
|
2021-10-21 15:13:13 -04:00
|
|
|
self.contactsService.init()
|
2021-10-06 22:05:13 +02:00
|
|
|
self.chatService.init()
|
2022-01-05 13:50:01 -05:00
|
|
|
self.messageService.init()
|
2021-10-06 22:05:13 +02:00
|
|
|
self.communityService.init()
|
2021-10-14 10:29:33 -04:00
|
|
|
self.bookmarkService.init()
|
2021-10-21 10:46:24 -04:00
|
|
|
self.dappPermissionsService.init()
|
2021-10-26 10:36:31 -04:00
|
|
|
self.providerService.init()
|
2021-10-20 10:02:17 +02:00
|
|
|
self.transactionService.init()
|
2021-11-25 12:12:19 -05:00
|
|
|
self.stickersService.init()
|
2021-12-13 14:52:55 -05:00
|
|
|
self.activityCenterService.init()
|
2021-12-14 09:55:16 +01:00
|
|
|
self.savedAddressService.init()
|
2021-12-20 13:21:21 -05:00
|
|
|
self.aboutService.init()
|
2021-12-27 12:04:10 +01:00
|
|
|
self.devicesService.init()
|
2022-01-17 09:56:44 +01:00
|
|
|
self.ensService.init()
|
2022-01-26 20:31:45 +01:00
|
|
|
self.gifService.init()
|
2021-10-29 19:27:14 +02:00
|
|
|
|
2022-05-10 15:15:56 +02:00
|
|
|
# Accessible after user login
|
|
|
|
singletonInstance.engine.setRootContextProperty("appSettings", self.appSettingsVariant)
|
2021-12-14 17:11:31 +01:00
|
|
|
singletonInstance.engine.setRootContextProperty("globalUtils", self.globalUtilsVariant)
|
2022-03-17 11:28:38 +01:00
|
|
|
|
2022-02-09 10:43:23 +01:00
|
|
|
self.buildAndRegisterLocalAccountSensitiveSettings()
|
2021-10-29 19:27:14 +02:00
|
|
|
self.buildAndRegisterUserProfile()
|
2022-03-17 11:28:38 +01:00
|
|
|
|
2022-03-10 10:51:12 +01:00
|
|
|
self.networkService.init()
|
|
|
|
self.tokenService.init()
|
|
|
|
self.walletAccountService.init()
|
2021-10-29 19:27:14 +02:00
|
|
|
|
|
|
|
# load main module
|
2021-11-25 12:12:19 -05:00
|
|
|
self.mainModule.load(
|
2022-01-10 12:03:28 +01:00
|
|
|
self.statusFoundation.events,
|
2021-12-21 10:26:13 +01:00
|
|
|
self.settingsService,
|
2022-11-30 14:47:57 -04:00
|
|
|
self.nodeConfigurationService,
|
2021-11-30 15:49:45 +01:00
|
|
|
self.contactsService,
|
2021-11-25 12:12:19 -05:00
|
|
|
self.chatService,
|
|
|
|
self.communityService,
|
2022-01-13 09:58:42 +01:00
|
|
|
self.messageService,
|
|
|
|
self.gifService,
|
2022-03-09 11:27:32 +01:00
|
|
|
self.mailserversService,
|
2021-11-25 12:12:19 -05:00
|
|
|
)
|
2021-10-14 10:04:15 +02:00
|
|
|
|
2021-10-15 21:47:43 +02:00
|
|
|
proc userLoggedIn*(self: AppController) =
|
2022-01-10 12:03:28 +01:00
|
|
|
self.generalService.startMessenger()
|
2021-10-14 10:29:33 -04:00
|
|
|
self.load()
|
2022-07-13 11:48:12 -04:00
|
|
|
self.statusFoundation.userLoggedIn()
|
2021-10-29 19:27:14 +02:00
|
|
|
|
2021-12-30 13:39:47 +01:00
|
|
|
# Once user is logged in and main module is loaded we need to check if it gets here importing mnemonic or not
|
|
|
|
# and delete mnemonic in the first case.
|
|
|
|
let importedAccount = self.accountsService.getImportedAccount()
|
|
|
|
if(importedAccount.isValid()):
|
|
|
|
self.privacyService.removeMnemonic()
|
|
|
|
|
2022-09-02 13:03:40 +02:00
|
|
|
if not self.startupModule.isNil:
|
|
|
|
self.startupModule.delete
|
|
|
|
|
2022-12-01 18:26:16 -04:00
|
|
|
proc logout*(self: AppController) =
|
|
|
|
self.generalService.logout()
|
|
|
|
|
2022-02-09 10:43:23 +01:00
|
|
|
proc buildAndRegisterLocalAccountSensitiveSettings(self: AppController) =
|
2021-11-22 19:40:03 +01:00
|
|
|
var pubKey = self.settingsService.getPublicKey()
|
2021-10-29 19:27:14 +02:00
|
|
|
singletonInstance.localAccountSensitiveSettings.setFileName(pubKey)
|
|
|
|
singletonInstance.engine.setRootContextProperty("localAccountSensitiveSettings", self.localAccountSensitiveSettingsVariant)
|
|
|
|
|
2022-02-09 10:43:23 +01:00
|
|
|
proc buildAndRegisterUserProfile(self: AppController) =
|
2021-11-22 19:40:03 +01:00
|
|
|
let pubKey = self.settingsService.getPublicKey()
|
2022-05-19 12:24:53 +02:00
|
|
|
let alias = self.settingsService.getName()
|
2022-12-13 12:37:27 +03:00
|
|
|
var preferredName = self.settingsService.getPreferredName()
|
|
|
|
let displayName = self.settingsService.getDisplayName()
|
2021-12-29 16:09:29 +01:00
|
|
|
let ensUsernames = self.settingsService.getEnsUsernames()
|
|
|
|
let firstEnsName = if (ensUsernames.len > 0): ensUsernames[0] else: ""
|
2022-06-10 11:01:31 +02:00
|
|
|
let currentUserStatus = self.settingsService.getCurrentUserStatus()
|
2021-11-22 19:40:03 +01:00
|
|
|
|
|
|
|
let loggedInAccount = self.accountsService.getLoggedInAccount()
|
|
|
|
var thumbnail, large: string
|
|
|
|
for img in loggedInAccount.images:
|
|
|
|
if(img.imgType == "large"):
|
|
|
|
large = img.uri
|
|
|
|
elif(img.imgType == "thumbnail"):
|
|
|
|
thumbnail = img.uri
|
|
|
|
|
2022-09-26 13:01:26 +02:00
|
|
|
singletonInstance.userProfile.setFixedData(alias, loggedInAccount.keyUid, pubKey, loggedInAccount.keycardPairing.len > 0)
|
2022-03-01 20:14:20 -04:00
|
|
|
singletonInstance.userProfile.setDisplayName(displayName)
|
2021-12-29 16:09:29 +01:00
|
|
|
singletonInstance.userProfile.setPreferredName(preferredName)
|
2021-11-22 19:40:03 +01:00
|
|
|
singletonInstance.userProfile.setThumbnailImage(thumbnail)
|
|
|
|
singletonInstance.userProfile.setLargeImage(large)
|
2022-06-10 11:01:31 +02:00
|
|
|
singletonInstance.userProfile.setCurrentUserStatus(currentUserStatus.statusType.int)
|
2021-10-29 19:27:14 +02:00
|
|
|
|
2022-01-26 20:31:45 +01:00
|
|
|
singletonInstance.engine.setRootContextProperty("userProfile", self.userProfileVariant)
|
2022-10-14 10:30:23 +02:00
|
|
|
|
|
|
|
if self.storeKeyPair and singletonInstance.userProfile.getIsKeycardUser():
|
|
|
|
let allAccounts = self.walletAccountService.fetchAccounts()
|
|
|
|
let defaultWalletAccounts = allAccounts.filter(a =>
|
|
|
|
a.walletType == WalletTypeDefaultStatusAccount and
|
|
|
|
a.path == account_constants.PATH_DEFAULT_WALLET and
|
|
|
|
not a.isChat and
|
|
|
|
a.isWallet
|
|
|
|
)
|
|
|
|
if defaultWalletAccounts.len == 0:
|
|
|
|
error "default wallet account was not generated"
|
|
|
|
return
|
|
|
|
let defaultWalletAddress = defaultWalletAccounts[0].address
|
|
|
|
let keyPair = KeyPairDto(keycardUid: self.keycardService.getLastReceivedKeycardData().flowEvent.instanceUID,
|
|
|
|
keycardName: displayName,
|
|
|
|
keycardLocked: false,
|
|
|
|
accountsAddresses: @[defaultWalletAddress],
|
|
|
|
keyUid: loggedInAccount.keyUid)
|
2022-11-08 14:37:52 +01:00
|
|
|
let keystoreDir = self.accountsService.getKeyStoreDir()
|
|
|
|
discard self.walletAccountService.addMigratedKeyPair(keyPair, keystoreDir)
|
2022-10-14 10:30:23 +02:00
|
|
|
|
|
|
|
proc storeKeyPairForNewKeycardUser*(self: AppController) =
|
|
|
|
self.storeKeyPair = true
|