diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 4e0477610..000000000 --- a/.travis.yml +++ /dev/null @@ -1,13 +0,0 @@ -language: swift -osx_image: xcode11.6 -xcode_workspace: station.xcworkspace -xcode_scheme: station -script: - - xcodebuild clean build -sdk iphonesimulator -workspace station.xcworkspace -scheme station CODE_SIGNING_REQUIRED=NO | xcpretty -branches: - only: - - master -before_install: - - bundle install - - pod repo update - - pod install diff --git a/station/Resources/Plists/Info.plist b/Apps/RuuviStation/Info.plist similarity index 100% rename from station/Resources/Plists/Info.plist rename to Apps/RuuviStation/Info.plist diff --git a/intents/Info.plist b/Apps/RuuviStation/Intents/Info.plist similarity index 100% rename from intents/Info.plist rename to Apps/RuuviStation/Intents/Info.plist diff --git a/intents/IntentHandler.swift b/Apps/RuuviStation/Intents/Sources/IntentHandler.swift similarity index 100% rename from intents/IntentHandler.swift rename to Apps/RuuviStation/Intents/Sources/IntentHandler.swift diff --git a/ruuvi_widgets.entitlements b/Apps/RuuviStation/Intents/Sources/Intents.entitlements similarity index 100% rename from ruuvi_widgets.entitlements rename to Apps/RuuviStation/Intents/Sources/Intents.entitlements diff --git a/intents.yml b/Apps/RuuviStation/Intents/target.yml similarity index 85% rename from intents.yml rename to Apps/RuuviStation/Intents/target.yml index 070846e13..e7fb5fd84 100644 --- a/intents.yml +++ b/Apps/RuuviStation/Intents/target.yml @@ -1,9 +1,10 @@ +--- targets: station.intents: type: app-extension platform: iOS info: - path: intents/Info.plist + path: Info.plist properties: NSExtension: NSExtensionAttributes: @@ -19,7 +20,7 @@ targets: NSHumanReadableCopyright: Copyright © 2023 Ruuvi Innovations Oy. All rights reserved. settings: base: - CODE_SIGN_ENTITLEMENTS: station_intents.entitlements + CODE_SIGN_ENTITLEMENTS: Apps/RuuviStation/Intents/Sources/Intents.entitlements configs: Alpha: CODE_SIGN_IDENTITY: "iPhone Distribution" @@ -32,10 +33,15 @@ targets: CODE_SIGN_IDENTITY: "iPhone Distribution" PROVISIONING_PROFILE_SPECIFIER: "match AdHoc com.ruuvi.station.intents" sources: - - path: intents - - path: ruuvi-widgets - excludes: - - Info.plist + - path: Sources + name: Intents + excludes: + - "*.entitlements" + - Info.plist + - path: ../Widgets/Sources/ + excludes: + - "*.entitlements" + - Info.plist dependencies: - package: Swinject - package: BTKit diff --git a/pnservice/Info.plist b/Apps/RuuviStation/NotificationService/Info.plist similarity index 100% rename from pnservice/Info.plist rename to Apps/RuuviStation/NotificationService/Info.plist diff --git a/pnservice.entitlements b/Apps/RuuviStation/NotificationService/Sources/NotificationService.entitlements similarity index 100% rename from pnservice.entitlements rename to Apps/RuuviStation/NotificationService/Sources/NotificationService.entitlements diff --git a/pnservice/NotificationService.swift b/Apps/RuuviStation/NotificationService/Sources/NotificationService.swift similarity index 100% rename from pnservice/NotificationService.swift rename to Apps/RuuviStation/NotificationService/Sources/NotificationService.swift diff --git a/pnservice.yml b/Apps/RuuviStation/NotificationService/target.yml similarity index 76% rename from pnservice.yml rename to Apps/RuuviStation/NotificationService/target.yml index cac393f9b..9e36cde40 100644 --- a/pnservice.yml +++ b/Apps/RuuviStation/NotificationService/target.yml @@ -1,9 +1,10 @@ +--- targets: station.pnservice: type: app-extension platform: iOS info: - path: pnservice/Info.plist + path: Info.plist properties: NSExtension: NSExtensionPointIdentifier: com.apple.usernotifications.service @@ -15,7 +16,7 @@ targets: NSHumanReadableCopyright: Copyright © 2023 Ruuvi Innovations Oy. All rights reserved. settings: base: - CODE_SIGN_ENTITLEMENTS: pnservice.entitlements + CODE_SIGN_ENTITLEMENTS: Apps/RuuviStation/NotificationService/Sources/NotificationService.entitlements configs: Alpha: CODE_SIGN_IDENTITY: "iPhone Distribution" @@ -28,7 +29,11 @@ targets: CODE_SIGN_IDENTITY: "iPhone Distribution" PROVISIONING_PROFILE_SPECIFIER: "match AdHoc com.ruuvi.station.pnservice" sources: - - path: pnservice + - path: Sources + name: NotificationService + excludes: + - "*.entitlements" + - Info.plist resources: - - path: station/Resources/Strings/ - - path: station/Resources/Sounds/ \ No newline at end of file + - path: ../Sources/Resources/Strings/ + - path: ../Sources/Resources/Sounds/ \ No newline at end of file diff --git a/station/Classes/Application/AppAssembly.swift b/Apps/RuuviStation/Sources/Classes/Application/AppAssembly.swift similarity index 100% rename from station/Classes/Application/AppAssembly.swift rename to Apps/RuuviStation/Sources/Classes/Application/AppAssembly.swift diff --git a/station/Classes/Application/AppAssemblyConstants.swift b/Apps/RuuviStation/Sources/Classes/Application/AppAssemblyConstants.swift similarity index 84% rename from station/Classes/Application/AppAssemblyConstants.swift rename to Apps/RuuviStation/Sources/Classes/Application/AppAssemblyConstants.swift index a01aa429d..f5741582d 100644 --- a/station/Classes/Application/AppAssemblyConstants.swift +++ b/Apps/RuuviStation/Sources/Classes/Application/AppAssemblyConstants.swift @@ -1,7 +1,6 @@ import Foundation struct Networking: Codable { - var OpenWeatherMapAPIKey: String var RuuviCloudURL: String var RuuviCloudURLDev: String } @@ -11,7 +10,6 @@ enum AppAssemblyConstants { static let xml = FileManager.default.contents(atPath: networkingPath)! static let networkingPlist = try! PropertyListDecoder().decode(Networking.self, from: xml) - static let openWeatherMapApiKey = networkingPlist.OpenWeatherMapAPIKey static let ruuviCloudUrl = networkingPlist.RuuviCloudURL static let ruuviCloudUrlDev = networkingPlist.RuuviCloudURLDev static let simpleWidgetKindId = "ruuvi.simpleWidget" diff --git a/station/Classes/Application/AppDelegate.swift b/Apps/RuuviStation/Sources/Classes/Application/AppDelegate.swift similarity index 100% rename from station/Classes/Application/AppDelegate.swift rename to Apps/RuuviStation/Sources/Classes/Application/AppDelegate.swift diff --git a/station/Classes/Application/AppGroupConstants.swift b/Apps/RuuviStation/Sources/Classes/Application/AppGroupConstants.swift similarity index 100% rename from station/Classes/Application/AppGroupConstants.swift rename to Apps/RuuviStation/Sources/Classes/Application/AppGroupConstants.swift diff --git a/station/Classes/Application/AppState/AppStateService.swift b/Apps/RuuviStation/Sources/Classes/Application/AppState/AppStateService.swift similarity index 100% rename from station/Classes/Application/AppState/AppStateService.swift rename to Apps/RuuviStation/Sources/Classes/Application/AppState/AppStateService.swift diff --git a/station/Classes/Application/AppState/Impl/AppStateServiceImpl.swift b/Apps/RuuviStation/Sources/Classes/Application/AppState/Impl/AppStateServiceImpl.swift similarity index 100% rename from station/Classes/Application/AppState/Impl/AppStateServiceImpl.swift rename to Apps/RuuviStation/Sources/Classes/Application/AppState/Impl/AppStateServiceImpl.swift diff --git a/station/Classes/Application/Features/FeatureToggle.swift b/Apps/RuuviStation/Sources/Classes/Application/Features/FeatureToggle.swift similarity index 100% rename from station/Classes/Application/Features/FeatureToggle.swift rename to Apps/RuuviStation/Sources/Classes/Application/Features/FeatureToggle.swift diff --git a/station/Classes/Application/Features/FeatureToggleService.swift b/Apps/RuuviStation/Sources/Classes/Application/Features/FeatureToggleService.swift similarity index 100% rename from station/Classes/Application/Features/FeatureToggleService.swift rename to Apps/RuuviStation/Sources/Classes/Application/Features/FeatureToggleService.swift diff --git a/station/Classes/Application/Features/Providers/FallbackFeatureToggleProvider.swift b/Apps/RuuviStation/Sources/Classes/Application/Features/Providers/FallbackFeatureToggleProvider.swift similarity index 100% rename from station/Classes/Application/Features/Providers/FallbackFeatureToggleProvider.swift rename to Apps/RuuviStation/Sources/Classes/Application/Features/Providers/FallbackFeatureToggleProvider.swift diff --git a/station/Classes/Application/Features/Providers/FeatureToggleProvider.swift b/Apps/RuuviStation/Sources/Classes/Application/Features/Providers/FeatureToggleProvider.swift similarity index 100% rename from station/Classes/Application/Features/Providers/FeatureToggleProvider.swift rename to Apps/RuuviStation/Sources/Classes/Application/Features/Providers/FeatureToggleProvider.swift diff --git a/station/Classes/Application/Features/Providers/FirebaseFeatureToggleProvider.swift b/Apps/RuuviStation/Sources/Classes/Application/Features/Providers/FirebaseFeatureToggleProvider.swift similarity index 100% rename from station/Classes/Application/Features/Providers/FirebaseFeatureToggleProvider.swift rename to Apps/RuuviStation/Sources/Classes/Application/Features/Providers/FirebaseFeatureToggleProvider.swift diff --git a/station/Classes/Application/Features/Providers/LocalFeatureToggleProvider.swift b/Apps/RuuviStation/Sources/Classes/Application/Features/Providers/LocalFeatureToggleProvider.swift similarity index 100% rename from station/Classes/Application/Features/Providers/LocalFeatureToggleProvider.swift rename to Apps/RuuviStation/Sources/Classes/Application/Features/Providers/LocalFeatureToggleProvider.swift diff --git a/station/Classes/Application/Features/RemoteConfig/Firebase/FirebaseRemoteConfigService.swift b/Apps/RuuviStation/Sources/Classes/Application/Features/RemoteConfig/Firebase/FirebaseRemoteConfigService.swift similarity index 100% rename from station/Classes/Application/Features/RemoteConfig/Firebase/FirebaseRemoteConfigService.swift rename to Apps/RuuviStation/Sources/Classes/Application/Features/RemoteConfig/Firebase/FirebaseRemoteConfigService.swift diff --git a/station/Classes/Application/Features/RemoteConfig/RemoteConfigService.swift b/Apps/RuuviStation/Sources/Classes/Application/Features/RemoteConfig/RemoteConfigService.swift similarity index 100% rename from station/Classes/Application/Features/RemoteConfig/RemoteConfigService.swift rename to Apps/RuuviStation/Sources/Classes/Application/Features/RemoteConfig/RemoteConfigService.swift diff --git a/station/Classes/Application/Info/Impl/InfoProviderImpl.swift b/Apps/RuuviStation/Sources/Classes/Application/Info/Impl/InfoProviderImpl.swift similarity index 100% rename from station/Classes/Application/Info/Impl/InfoProviderImpl.swift rename to Apps/RuuviStation/Sources/Classes/Application/Info/Impl/InfoProviderImpl.swift diff --git a/station/Classes/Application/Info/InfoProvider.swift b/Apps/RuuviStation/Sources/Classes/Application/Info/InfoProvider.swift similarity index 100% rename from station/Classes/Application/Info/InfoProvider.swift rename to Apps/RuuviStation/Sources/Classes/Application/Info/InfoProvider.swift diff --git a/station/Classes/Application/UniversalLinks/Coordinator/Impl/UniversalLinkCoordinatormpl.swift b/Apps/RuuviStation/Sources/Classes/Application/UniversalLinks/Coordinator/Impl/UniversalLinkCoordinatormpl.swift similarity index 100% rename from station/Classes/Application/UniversalLinks/Coordinator/Impl/UniversalLinkCoordinatormpl.swift rename to Apps/RuuviStation/Sources/Classes/Application/UniversalLinks/Coordinator/Impl/UniversalLinkCoordinatormpl.swift diff --git a/station/Classes/Application/UniversalLinks/Coordinator/UniversalLinkCoordinator.swift b/Apps/RuuviStation/Sources/Classes/Application/UniversalLinks/Coordinator/UniversalLinkCoordinator.swift similarity index 100% rename from station/Classes/Application/UniversalLinks/Coordinator/UniversalLinkCoordinator.swift rename to Apps/RuuviStation/Sources/Classes/Application/UniversalLinks/Coordinator/UniversalLinkCoordinator.swift diff --git a/station/Classes/Application/UniversalLinks/Router/Impl/UniversalLinkRouterImpl.swift b/Apps/RuuviStation/Sources/Classes/Application/UniversalLinks/Router/Impl/UniversalLinkRouterImpl.swift similarity index 100% rename from station/Classes/Application/UniversalLinks/Router/Impl/UniversalLinkRouterImpl.swift rename to Apps/RuuviStation/Sources/Classes/Application/UniversalLinks/Router/Impl/UniversalLinkRouterImpl.swift diff --git a/station/Classes/Application/UniversalLinks/Router/UniversalLinkRouter.swift b/Apps/RuuviStation/Sources/Classes/Application/UniversalLinks/Router/UniversalLinkRouter.swift similarity index 100% rename from station/Classes/Application/UniversalLinks/Router/UniversalLinkRouter.swift rename to Apps/RuuviStation/Sources/Classes/Application/UniversalLinks/Router/UniversalLinkRouter.swift diff --git a/station/Classes/Presentation/Assembly/Presentation.plist b/Apps/RuuviStation/Sources/Classes/Presentation/Assembly/Presentation.plist similarity index 100% rename from station/Classes/Presentation/Assembly/Presentation.plist rename to Apps/RuuviStation/Sources/Classes/Presentation/Assembly/Presentation.plist diff --git a/station/Classes/Presentation/Assembly/PresentationAssembly.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Assembly/PresentationAssembly.swift similarity index 100% rename from station/Classes/Presentation/Assembly/PresentationAssembly.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Assembly/PresentationAssembly.swift diff --git a/station/Classes/Presentation/Assembly/PresentationConstants.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Assembly/PresentationConstants.swift similarity index 100% rename from station/Classes/Presentation/Assembly/PresentationConstants.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Assembly/PresentationConstants.swift diff --git a/station/Classes/Presentation/Binding/NSObject+Observable.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Binding/NSObject+Observable.swift similarity index 100% rename from station/Classes/Presentation/Binding/NSObject+Observable.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Binding/NSObject+Observable.swift diff --git a/station/Classes/Presentation/Binding/Observable.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Binding/Observable.swift similarity index 100% rename from station/Classes/Presentation/Binding/Observable.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Binding/Observable.swift diff --git a/station/Classes/Presentation/Binding/Optional.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Binding/Optional.swift similarity index 100% rename from station/Classes/Presentation/Binding/Optional.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Binding/Optional.swift diff --git a/station/Classes/Presentation/Colors/RuuviColor.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Colors/RuuviColor.swift similarity index 100% rename from station/Classes/Presentation/Colors/RuuviColor.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Colors/RuuviColor.swift diff --git a/station/Classes/Presentation/Contract/ViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Contract/ViewInput.swift similarity index 100% rename from station/Classes/Presentation/Contract/ViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Contract/ViewInput.swift diff --git a/station/Classes/Presentation/FLEX/FeatureTogglesViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/FLEX/FeatureTogglesViewController.swift similarity index 100% rename from station/Classes/Presentation/FLEX/FeatureTogglesViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/FLEX/FeatureTogglesViewController.swift diff --git a/station/Classes/Presentation/Launch/Base.lproj/LaunchScreen.storyboard b/Apps/RuuviStation/Sources/Classes/Presentation/Launch/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from station/Classes/Presentation/Launch/Base.lproj/LaunchScreen.storyboard rename to Apps/RuuviStation/Sources/Classes/Presentation/Launch/Base.lproj/LaunchScreen.storyboard diff --git a/station/Classes/Presentation/Launch/fr.lproj/LaunchScreen.strings b/Apps/RuuviStation/Sources/Classes/Presentation/Launch/fr.lproj/LaunchScreen.strings similarity index 100% rename from station/Classes/Presentation/Launch/fr.lproj/LaunchScreen.strings rename to Apps/RuuviStation/Sources/Classes/Presentation/Launch/fr.lproj/LaunchScreen.strings diff --git a/station/Classes/Presentation/Modules/About/About.storyboard b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/About.storyboard similarity index 100% rename from station/Classes/Presentation/Modules/About/About.storyboard rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/About.storyboard diff --git a/station/Classes/Presentation/Modules/About/Assembly/AboutConfigurator.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/Assembly/AboutConfigurator.swift similarity index 100% rename from station/Classes/Presentation/Modules/About/Assembly/AboutConfigurator.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/Assembly/AboutConfigurator.swift diff --git a/station/Classes/Presentation/Modules/About/Assembly/AboutInitializer.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/Assembly/AboutInitializer.swift similarity index 100% rename from station/Classes/Presentation/Modules/About/Assembly/AboutInitializer.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/Assembly/AboutInitializer.swift diff --git a/station/Classes/Presentation/Modules/About/Presenter/AboutModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/Presenter/AboutModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/About/Presenter/AboutModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/Presenter/AboutModuleInput.swift diff --git a/station/Classes/Presentation/Modules/About/Presenter/AboutPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/Presenter/AboutPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/About/Presenter/AboutPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/Presenter/AboutPresenter.swift diff --git a/station/Classes/Presentation/Modules/About/Router/AboutRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/Router/AboutRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/About/Router/AboutRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/Router/AboutRouter.swift diff --git a/station/Classes/Presentation/Modules/About/Router/AboutRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/Router/AboutRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/About/Router/AboutRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/Router/AboutRouterInput.swift diff --git a/station/Classes/Presentation/Modules/About/View/AboutViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/View/AboutViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/About/View/AboutViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/View/AboutViewController.swift diff --git a/station/Classes/Presentation/Modules/About/View/AboutViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/View/AboutViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/About/View/AboutViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/View/AboutViewInput.swift diff --git a/station/Classes/Presentation/Modules/About/View/AboutViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/View/AboutViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/About/View/AboutViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/View/AboutViewModel.swift diff --git a/station/Classes/Presentation/Modules/About/View/AboutViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/View/AboutViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/About/View/AboutViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/About/View/AboutViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Background/Assembly/BackgroundSelectionModuleFactory.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/Assembly/BackgroundSelectionModuleFactory.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Background/Assembly/BackgroundSelectionModuleFactory.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/Assembly/BackgroundSelectionModuleFactory.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Background/Presenter/BackgroundSelectionModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/Presenter/BackgroundSelectionModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Background/Presenter/BackgroundSelectionModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/Presenter/BackgroundSelectionModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Background/Presenter/BackgroundSelectionPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/Presenter/BackgroundSelectionPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Background/Presenter/BackgroundSelectionPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/Presenter/BackgroundSelectionPresenter.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Background/View/BackgroundSelectionViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/View/BackgroundSelectionViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Background/View/BackgroundSelectionViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/View/BackgroundSelectionViewInput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Background/View/BackgroundSelectionViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/View/BackgroundSelectionViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Background/View/BackgroundSelectionViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/View/BackgroundSelectionViewModel.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Background/View/BackgroundSelectionViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/View/BackgroundSelectionViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Background/View/BackgroundSelectionViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/View/BackgroundSelectionViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionButtonView.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionButtonView.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionButtonView.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionButtonView.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionUploadProgressView.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionUploadProgressView.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionUploadProgressView.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionUploadProgressView.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionViewCell.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionViewController.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionViewHeader.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionViewHeader.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionViewHeader.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Background/View/UI/BackgroundSelectionViewHeader.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Cards/Assembly/CardsViewModuleFactory.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Assembly/CardsViewModuleFactory.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Cards/Assembly/CardsViewModuleFactory.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Assembly/CardsViewModuleFactory.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Cards/Interactor/CardsInteractor.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Interactor/CardsInteractor.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Cards/Interactor/CardsInteractor.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Interactor/CardsInteractor.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Cards/Interactor/CardsInteractorInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Interactor/CardsInteractorInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Cards/Interactor/CardsInteractorInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Interactor/CardsInteractorInput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Cards/Presenter/CardsModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Presenter/CardsModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Cards/Presenter/CardsModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Presenter/CardsModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Cards/Presenter/CardsModuleOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Presenter/CardsModuleOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Cards/Presenter/CardsModuleOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Presenter/CardsModuleOutput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Cards/Presenter/CardsPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Presenter/CardsPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Cards/Presenter/CardsPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Presenter/CardsPresenter.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Cards/Router/CardsRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Router/CardsRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Cards/Router/CardsRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Router/CardsRouter.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Cards/Router/CardsRouterDelegate.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Router/CardsRouterDelegate.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Cards/Router/CardsRouterDelegate.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Router/CardsRouterDelegate.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Cards/Router/CardsRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Router/CardsRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Cards/Router/CardsRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/Router/CardsRouterInput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Cards/View/CardsViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/View/CardsViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Cards/View/CardsViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/View/CardsViewInput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Cards/View/CardsViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/View/CardsViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Cards/View/CardsViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/View/CardsViewModel.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Cards/View/CardsViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/View/CardsViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Cards/View/CardsViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/View/CardsViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Cards/View/UI/CardsBackgroundView.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/View/UI/CardsBackgroundView.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Cards/View/UI/CardsBackgroundView.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/View/UI/CardsBackgroundView.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Cards/View/UI/CardsIndicatorView.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/View/UI/CardsIndicatorView.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Cards/View/UI/CardsIndicatorView.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/View/UI/CardsIndicatorView.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Cards/View/UI/CardsLargeImageCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/View/UI/CardsLargeImageCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Cards/View/UI/CardsLargeImageCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/View/UI/CardsLargeImageCell.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Cards/View/UI/CardsViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/View/UI/CardsViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Cards/View/UI/CardsViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Cards/View/UI/CardsViewController.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/Assembly/TagChartsModuleFactory.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Assembly/TagChartsModuleFactory.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/Assembly/TagChartsModuleFactory.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Assembly/TagChartsModuleFactory.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/Assembly/TagChartsViewConfigurator.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Assembly/TagChartsViewConfigurator.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/Assembly/TagChartsViewConfigurator.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Assembly/TagChartsViewConfigurator.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/Helpers/CustomXAxisRenderer.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Helpers/CustomXAxisRenderer.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/Helpers/CustomXAxisRenderer.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Helpers/CustomXAxisRenderer.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/Helpers/CustomYAxisRenderer.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Helpers/CustomYAxisRenderer.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/Helpers/CustomYAxisRenderer.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Helpers/CustomYAxisRenderer.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/Helpers/TagChartsHelper.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Helpers/TagChartsHelper.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/Helpers/TagChartsHelper.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Helpers/TagChartsHelper.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/Helpers/XAxisValueFormatter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Helpers/XAxisValueFormatter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/Helpers/XAxisValueFormatter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Helpers/XAxisValueFormatter.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/Helpers/YAxisValueFormatter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Helpers/YAxisValueFormatter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/Helpers/YAxisValueFormatter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Helpers/YAxisValueFormatter.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/Interactor/TagChartsViewInteractor.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Interactor/TagChartsViewInteractor.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/Interactor/TagChartsViewInteractor.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Interactor/TagChartsViewInteractor.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/Interactor/TagChartsViewInteractorInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Interactor/TagChartsViewInteractorInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/Interactor/TagChartsViewInteractorInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Interactor/TagChartsViewInteractorInput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/Interactor/TagChartsViewInteractorOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Interactor/TagChartsViewInteractorOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/Interactor/TagChartsViewInteractorOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Interactor/TagChartsViewInteractorOutput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/Presenter/TagChartsViewModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Presenter/TagChartsViewModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/Presenter/TagChartsViewModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Presenter/TagChartsViewModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/Presenter/TagChartsViewModuleOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Presenter/TagChartsViewModuleOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/Presenter/TagChartsViewModuleOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Presenter/TagChartsViewModuleOutput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/Presenter/TagChartsViewPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Presenter/TagChartsViewPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/Presenter/TagChartsViewPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/Presenter/TagChartsViewPresenter.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/View/TagChartsViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/View/TagChartsViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/View/TagChartsViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/View/TagChartsViewInput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/View/TagChartsViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/View/TagChartsViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/View/TagChartsViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/View/TagChartsViewModel.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/View/TagChartsViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/View/TagChartsViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/View/TagChartsViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/View/TagChartsViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/View/UI/TagChartsMarkerView.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/View/UI/TagChartsMarkerView.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/View/UI/TagChartsMarkerView.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/View/UI/TagChartsMarkerView.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/View/UI/TagChartsView.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/View/UI/TagChartsView.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/View/UI/TagChartsView.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/View/UI/TagChartsView.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Charts/View/UI/TagChartsViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/View/UI/TagChartsViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Charts/View/UI/TagChartsViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Charts/View/UI/TagChartsViewController.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/Assembly/DashboardModuleFactory.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/Assembly/DashboardModuleFactory.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/Assembly/DashboardModuleFactory.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/Assembly/DashboardModuleFactory.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/Interactor/DashboardInteractor.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/Interactor/DashboardInteractor.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/Interactor/DashboardInteractor.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/Interactor/DashboardInteractor.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/Interactor/DashboardInteractorInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/Interactor/DashboardInteractorInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/Interactor/DashboardInteractorInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/Interactor/DashboardInteractorInput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/Presenter/DashboardModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/Presenter/DashboardModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/Presenter/DashboardModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/Presenter/DashboardModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/Presenter/DashboardPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/Presenter/DashboardPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/Presenter/DashboardPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/Presenter/DashboardPresenter.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/Router/DashboardRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/Router/DashboardRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/Router/DashboardRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/Router/DashboardRouter.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/Router/DashboardRouterDelegate.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/Router/DashboardRouterDelegate.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/Router/DashboardRouterDelegate.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/Router/DashboardRouterDelegate.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/Router/DashboardRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/Router/DashboardRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/Router/DashboardRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/Router/DashboardRouterInput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/View/DashboardCellDelegate.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/DashboardCellDelegate.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/View/DashboardCellDelegate.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/DashboardCellDelegate.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/View/DashboardImageCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/DashboardImageCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/View/DashboardImageCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/DashboardImageCell.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/View/DashboardIndicatorView.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/DashboardIndicatorView.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/View/DashboardIndicatorView.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/DashboardIndicatorView.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/View/DashboardPlainCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/DashboardPlainCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/View/DashboardPlainCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/DashboardPlainCell.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/View/DashboardViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/DashboardViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/View/DashboardViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/DashboardViewController.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/View/DashboardViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/DashboardViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/View/DashboardViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/DashboardViewInput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/View/DashboardViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/DashboardViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/View/DashboardViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/DashboardViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/View/LowBatteryView.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/LowBatteryView.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/View/LowBatteryView.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/LowBatteryView.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/View/NoSensorView.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/NoSensorView.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/View/NoSensorView.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/NoSensorView.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/View/RuuviContextMenuButton.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/RuuviContextMenuButton.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/View/RuuviContextMenuButton.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/RuuviContextMenuButton.swift diff --git a/station/Classes/Presentation/Modules/Dashboard/Home/View/RuuviSimpleViewCompositionalLayout.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/RuuviSimpleViewCompositionalLayout.swift similarity index 100% rename from station/Classes/Presentation/Modules/Dashboard/Home/View/RuuviSimpleViewCompositionalLayout.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Dashboard/Home/View/RuuviSimpleViewCompositionalLayout.swift diff --git a/station/Classes/Presentation/Modules/Menu/Assembly/Table/MenuTableConfigurator.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Assembly/Table/MenuTableConfigurator.swift similarity index 100% rename from station/Classes/Presentation/Modules/Menu/Assembly/Table/MenuTableConfigurator.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Assembly/Table/MenuTableConfigurator.swift diff --git a/station/Classes/Presentation/Modules/Menu/Assembly/Table/MenuTableInitializer.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Assembly/Table/MenuTableInitializer.swift similarity index 100% rename from station/Classes/Presentation/Modules/Menu/Assembly/Table/MenuTableInitializer.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Assembly/Table/MenuTableInitializer.swift diff --git a/station/Classes/Presentation/Modules/Menu/Menu.storyboard b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Menu.storyboard similarity index 100% rename from station/Classes/Presentation/Modules/Menu/Menu.storyboard rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Menu.storyboard diff --git a/station/Classes/Presentation/Modules/Menu/Presenter/MenuModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Presenter/MenuModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Menu/Presenter/MenuModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Presenter/MenuModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Menu/Presenter/MenuModuleOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Presenter/MenuModuleOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Menu/Presenter/MenuModuleOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Presenter/MenuModuleOutput.swift diff --git a/station/Classes/Presentation/Modules/Menu/Presenter/MenuPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Presenter/MenuPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Menu/Presenter/MenuPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Presenter/MenuPresenter.swift diff --git a/station/Classes/Presentation/Modules/Menu/Router/MenuRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Router/MenuRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Menu/Router/MenuRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Router/MenuRouter.swift diff --git a/station/Classes/Presentation/Modules/Menu/Router/MenuRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Router/MenuRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Menu/Router/MenuRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Router/MenuRouterInput.swift diff --git a/station/Classes/Presentation/Modules/Menu/Transition/Table/MenuTableDismissTransitionAnimation.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Transition/Table/MenuTableDismissTransitionAnimation.swift similarity index 100% rename from station/Classes/Presentation/Modules/Menu/Transition/Table/MenuTableDismissTransitionAnimation.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Transition/Table/MenuTableDismissTransitionAnimation.swift diff --git a/station/Classes/Presentation/Modules/Menu/Transition/Table/MenuTablePresentTransitionAnimation.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Transition/Table/MenuTablePresentTransitionAnimation.swift similarity index 100% rename from station/Classes/Presentation/Modules/Menu/Transition/Table/MenuTablePresentTransitionAnimation.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Transition/Table/MenuTablePresentTransitionAnimation.swift diff --git a/station/Classes/Presentation/Modules/Menu/Transition/Table/MenuTablePresentationController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Transition/Table/MenuTablePresentationController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Menu/Transition/Table/MenuTablePresentationController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Transition/Table/MenuTablePresentationController.swift diff --git a/station/Classes/Presentation/Modules/Menu/Transition/Table/MenuTableTransitionManager.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Transition/Table/MenuTableTransitionManager.swift similarity index 100% rename from station/Classes/Presentation/Modules/Menu/Transition/Table/MenuTableTransitionManager.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Transition/Table/MenuTableTransitionManager.swift diff --git a/station/Classes/Presentation/Modules/Menu/Transition/Table/MenuTableTransitioningDelegate.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Transition/Table/MenuTableTransitioningDelegate.swift similarity index 100% rename from station/Classes/Presentation/Modules/Menu/Transition/Table/MenuTableTransitioningDelegate.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/Transition/Table/MenuTableTransitioningDelegate.swift diff --git a/station/Classes/Presentation/Modules/Menu/View/MenuViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/View/MenuViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Menu/View/MenuViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/View/MenuViewInput.swift diff --git a/station/Classes/Presentation/Modules/Menu/View/MenuViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/View/MenuViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Menu/View/MenuViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/View/MenuViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Menu/View/Table/MenuTableEmbededViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/View/Table/MenuTableEmbededViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Menu/View/Table/MenuTableEmbededViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/View/Table/MenuTableEmbededViewController.swift diff --git a/station/Classes/Presentation/Modules/Menu/View/Table/MenuTableViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/View/Table/MenuTableViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Menu/View/Table/MenuTableViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Menu/View/Table/MenuTableViewController.swift diff --git a/station/Classes/Presentation/Modules/My Ruuvi/Assembly/MyRuuviAccountConfigurator.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/Assembly/MyRuuviAccountConfigurator.swift similarity index 100% rename from station/Classes/Presentation/Modules/My Ruuvi/Assembly/MyRuuviAccountConfigurator.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/Assembly/MyRuuviAccountConfigurator.swift diff --git a/station/Classes/Presentation/Modules/My Ruuvi/Assembly/MyRuuviAccountInitializer.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/Assembly/MyRuuviAccountInitializer.swift similarity index 100% rename from station/Classes/Presentation/Modules/My Ruuvi/Assembly/MyRuuviAccountInitializer.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/Assembly/MyRuuviAccountInitializer.swift diff --git a/station/Classes/Presentation/Modules/My Ruuvi/MyRuuvi.storyboard b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/MyRuuvi.storyboard similarity index 100% rename from station/Classes/Presentation/Modules/My Ruuvi/MyRuuvi.storyboard rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/MyRuuvi.storyboard diff --git a/station/Classes/Presentation/Modules/My Ruuvi/Presenter/MyRuuviAccountModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/Presenter/MyRuuviAccountModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/My Ruuvi/Presenter/MyRuuviAccountModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/Presenter/MyRuuviAccountModuleInput.swift diff --git a/station/Classes/Presentation/Modules/My Ruuvi/Presenter/MyRuuviAccountPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/Presenter/MyRuuviAccountPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/My Ruuvi/Presenter/MyRuuviAccountPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/Presenter/MyRuuviAccountPresenter.swift diff --git a/station/Classes/Presentation/Modules/My Ruuvi/Router/MyRuuviAccountRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/Router/MyRuuviAccountRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/My Ruuvi/Router/MyRuuviAccountRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/Router/MyRuuviAccountRouter.swift diff --git a/station/Classes/Presentation/Modules/My Ruuvi/Router/MyRuuviAccountRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/Router/MyRuuviAccountRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/My Ruuvi/Router/MyRuuviAccountRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/Router/MyRuuviAccountRouterInput.swift diff --git a/station/Classes/Presentation/Modules/My Ruuvi/View/MyRuuviAccountViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/View/MyRuuviAccountViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/My Ruuvi/View/MyRuuviAccountViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/View/MyRuuviAccountViewController.swift diff --git a/station/Classes/Presentation/Modules/My Ruuvi/View/MyRuuviAccountViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/View/MyRuuviAccountViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/My Ruuvi/View/MyRuuviAccountViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/View/MyRuuviAccountViewInput.swift diff --git a/station/Classes/Presentation/Modules/My Ruuvi/View/MyRuuviAccountViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/View/MyRuuviAccountViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/My Ruuvi/View/MyRuuviAccountViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/View/MyRuuviAccountViewModel.swift diff --git a/station/Classes/Presentation/Modules/My Ruuvi/View/MyRuuviAccountViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/View/MyRuuviAccountViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/My Ruuvi/View/MyRuuviAccountViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/My Ruuvi/View/MyRuuviAccountViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Module/Assembly/Table/SettingsTableConfigurator.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/Assembly/Table/SettingsTableConfigurator.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Module/Assembly/Table/SettingsTableConfigurator.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/Assembly/Table/SettingsTableConfigurator.swift diff --git a/station/Classes/Presentation/Modules/Settings/Module/Assembly/Table/SettingsTableInitializer.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/Assembly/Table/SettingsTableInitializer.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Module/Assembly/Table/SettingsTableInitializer.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/Assembly/Table/SettingsTableInitializer.swift diff --git a/station/Classes/Presentation/Modules/Settings/Module/Presenter/SettingsModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/Presenter/SettingsModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Module/Presenter/SettingsModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/Presenter/SettingsModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Module/Presenter/SettingsPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/Presenter/SettingsPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Module/Presenter/SettingsPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/Presenter/SettingsPresenter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Module/Router/SettingsRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/Router/SettingsRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Module/Router/SettingsRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/Router/SettingsRouter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Module/Router/SettingsRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/Router/SettingsRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Module/Router/SettingsRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/Router/SettingsRouterInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Module/Settings.storyboard b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/Settings.storyboard similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Module/Settings.storyboard rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/Settings.storyboard diff --git a/station/Classes/Presentation/Modules/Settings/Module/View/SettingsViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/View/SettingsViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Module/View/SettingsViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/View/SettingsViewInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Module/View/SettingsViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/View/SettingsViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Module/View/SettingsViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/View/SettingsViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Module/View/Table/SettingsTableViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/View/Table/SettingsTableViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Module/View/Table/SettingsTableViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Module/View/Table/SettingsTableViewController.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Assembly/AppearanceSettingsModuleFactory.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Assembly/AppearanceSettingsModuleFactory.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Assembly/AppearanceSettingsModuleFactory.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Assembly/AppearanceSettingsModuleFactory.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Presenter/AppearanceSettingsModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Presenter/AppearanceSettingsModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Presenter/AppearanceSettingsModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Presenter/AppearanceSettingsModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Presenter/AppearanceSettingsPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Presenter/AppearanceSettingsPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Presenter/AppearanceSettingsPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Presenter/AppearanceSettingsPresenter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Router/AppearanceSettingsRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Router/AppearanceSettingsRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Router/AppearanceSettingsRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Router/AppearanceSettingsRouter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Router/AppearanceSettingsRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Router/AppearanceSettingsRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Router/AppearanceSettingsRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Router/AppearanceSettingsRouterInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/Assembly/ASSelectionModuleFactory.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/Assembly/ASSelectionModuleFactory.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/Assembly/ASSelectionModuleFactory.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/Assembly/ASSelectionModuleFactory.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/Presenter/ASSelectionModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/Presenter/ASSelectionModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/Presenter/ASSelectionModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/Presenter/ASSelectionModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/Presenter/ASSelectionPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/Presenter/ASSelectionPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/Presenter/ASSelectionPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/Presenter/ASSelectionPresenter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/View/ASSelectionViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/View/ASSelectionViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/View/ASSelectionViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/View/ASSelectionViewInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/View/ASSelectionViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/View/ASSelectionViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/View/ASSelectionViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/View/ASSelectionViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/View/UI/ASSelectionTableViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/View/UI/ASSelectionTableViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/View/UI/ASSelectionTableViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/View/UI/ASSelectionTableViewCell.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/View/UI/ASSelectionTableViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/View/UI/ASSelectionTableViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/View/UI/ASSelectionTableViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/Selection/View/UI/ASSelectionTableViewController.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/AppearanceSettingsViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/AppearanceSettingsViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/AppearanceSettingsViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/AppearanceSettingsViewInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/AppearanceSettingsViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/AppearanceSettingsViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/AppearanceSettingsViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/AppearanceSettingsViewModel.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/AppearanceSettingsViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/AppearanceSettingsViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/AppearanceSettingsViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/AppearanceSettingsViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/UI/AppearanceSettingsTableViewBasicCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/UI/AppearanceSettingsTableViewBasicCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/UI/AppearanceSettingsTableViewBasicCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/UI/AppearanceSettingsTableViewBasicCell.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/UI/AppearanceSettingsTableViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/UI/AppearanceSettingsTableViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/UI/AppearanceSettingsTableViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Appearance/View/UI/AppearanceSettingsTableViewController.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Chart/Assembly/ChartSettingsConfigurator.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/Assembly/ChartSettingsConfigurator.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Chart/Assembly/ChartSettingsConfigurator.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/Assembly/ChartSettingsConfigurator.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Chart/Assembly/ChartSettingsInitializer.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/Assembly/ChartSettingsInitializer.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Chart/Assembly/ChartSettingsInitializer.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/Assembly/ChartSettingsInitializer.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Chart/ChartSettings.storyboard b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/ChartSettings.storyboard similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Chart/ChartSettings.storyboard rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/ChartSettings.storyboard diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Chart/Presenter/ChartModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/Presenter/ChartModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Chart/Presenter/ChartModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/Presenter/ChartModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Chart/Presenter/ChartSettingsPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/Presenter/ChartSettingsPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Chart/Presenter/ChartSettingsPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/Presenter/ChartSettingsPresenter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Chart/Router/ChartSettingsRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/Router/ChartSettingsRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Chart/Router/ChartSettingsRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/Router/ChartSettingsRouter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Chart/Router/ChartSettingsRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/Router/ChartSettingsRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Chart/Router/ChartSettingsRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/Router/ChartSettingsRouterInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Chart/View/ChartSettingsViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/View/ChartSettingsViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Chart/View/ChartSettingsViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/View/ChartSettingsViewInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Chart/View/ChartSettingsViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/View/ChartSettingsViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Chart/View/ChartSettingsViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/View/ChartSettingsViewModel.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Chart/View/ChartSettingsViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/View/ChartSettingsViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Chart/View/ChartSettingsViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/View/ChartSettingsViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Chart/View/Table/Cells/ChartSettingsDisclosureTableViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/View/Table/Cells/ChartSettingsDisclosureTableViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Chart/View/Table/Cells/ChartSettingsDisclosureTableViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/View/Table/Cells/ChartSettingsDisclosureTableViewCell.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Chart/View/Table/Cells/ChartSettingsStepperTableViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/View/Table/Cells/ChartSettingsStepperTableViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Chart/View/Table/Cells/ChartSettingsStepperTableViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/View/Table/Cells/ChartSettingsStepperTableViewCell.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Chart/View/Table/Cells/ChartSettingsSwitchTableViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/View/Table/Cells/ChartSettingsSwitchTableViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Chart/View/Table/Cells/ChartSettingsSwitchTableViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/View/Table/Cells/ChartSettingsSwitchTableViewCell.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Chart/View/Table/ChartSettingsTableViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/View/Table/ChartSettingsTableViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Chart/View/Table/ChartSettingsTableViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Chart/View/Table/ChartSettingsTableViewController.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/Assembly/DefaultsConfigurator.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/Assembly/DefaultsConfigurator.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/Assembly/DefaultsConfigurator.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/Assembly/DefaultsConfigurator.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/Assembly/DefaultsInitializer.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/Assembly/DefaultsInitializer.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/Assembly/DefaultsInitializer.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/Assembly/DefaultsInitializer.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/Defaults.storyboard b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/Defaults.storyboard similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/Defaults.storyboard rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/Defaults.storyboard diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/Presenter/DefaultsModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/Presenter/DefaultsModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/Presenter/DefaultsModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/Presenter/DefaultsModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/Presenter/DefaultsModuleOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/Presenter/DefaultsModuleOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/Presenter/DefaultsModuleOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/Presenter/DefaultsModuleOutput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/Presenter/DefaultsPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/Presenter/DefaultsPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/Presenter/DefaultsPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/Presenter/DefaultsPresenter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/Router/DefaultsRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/Router/DefaultsRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/Router/DefaultsRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/Router/DefaultsRouter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/Router/DefaultsRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/Router/DefaultsRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/Router/DefaultsRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/Router/DefaultsRouterInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/DefaultsViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/DefaultsViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/DefaultsViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/DefaultsViewController.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/DefaultsViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/DefaultsViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/DefaultsViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/DefaultsViewInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/DefaultsViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/DefaultsViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/DefaultsViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/DefaultsViewModel.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/DefaultsViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/DefaultsViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/DefaultsViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/DefaultsViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/SwiftUI/DefaultsEnvironmentObject.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/SwiftUI/DefaultsEnvironmentObject.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/SwiftUI/DefaultsEnvironmentObject.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/SwiftUI/DefaultsEnvironmentObject.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/SwiftUI/DefaultsList.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/SwiftUI/DefaultsList.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/SwiftUI/DefaultsList.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/SwiftUI/DefaultsList.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/Table/Cells/DefaultsPlainTableViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/Table/Cells/DefaultsPlainTableViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/Table/Cells/DefaultsPlainTableViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/Table/Cells/DefaultsPlainTableViewCell.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/Table/Cells/DefaultsStepperTableViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/Table/Cells/DefaultsStepperTableViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/Table/Cells/DefaultsStepperTableViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/Table/Cells/DefaultsStepperTableViewCell.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/Table/Cells/DefaultsSwitchTableViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/Table/Cells/DefaultsSwitchTableViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/Table/Cells/DefaultsSwitchTableViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/Table/Cells/DefaultsSwitchTableViewCell.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/Table/DefaultsTableViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/Table/DefaultsTableViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/Table/DefaultsTableViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Defaults/View/Table/DefaultsTableViewController.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Devices/Assembly/DevicesModuleFactory.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/Assembly/DevicesModuleFactory.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Devices/Assembly/DevicesModuleFactory.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/Assembly/DevicesModuleFactory.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Devices/Interactor/DevicesInteractor.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/Interactor/DevicesInteractor.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Devices/Interactor/DevicesInteractor.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/Interactor/DevicesInteractor.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Devices/Interactor/DevicesInteractorInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/Interactor/DevicesInteractorInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Devices/Interactor/DevicesInteractorInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/Interactor/DevicesInteractorInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Devices/Interactor/DevicesInteractorOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/Interactor/DevicesInteractorOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Devices/Interactor/DevicesInteractorOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/Interactor/DevicesInteractorOutput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Devices/Presenter/DevicesModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/Presenter/DevicesModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Devices/Presenter/DevicesModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/Presenter/DevicesModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Devices/Presenter/DevicesPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/Presenter/DevicesPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Devices/Presenter/DevicesPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/Presenter/DevicesPresenter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Devices/View/DevicesViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/View/DevicesViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Devices/View/DevicesViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/View/DevicesViewInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Devices/View/DevicesViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/View/DevicesViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Devices/View/DevicesViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/View/DevicesViewModel.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Devices/View/DevicesViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/View/DevicesViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Devices/View/DevicesViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/View/DevicesViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Devices/View/UI/DevicesTableViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/View/UI/DevicesTableViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Devices/View/UI/DevicesTableViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/View/UI/DevicesTableViewCell.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Devices/View/UI/DevicesTableViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/View/UI/DevicesTableViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Devices/View/UI/DevicesTableViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Devices/View/UI/DevicesTableViewController.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Assembly/HeartbeatConfigurator.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Assembly/HeartbeatConfigurator.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Assembly/HeartbeatConfigurator.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Assembly/HeartbeatConfigurator.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Assembly/HeartbeatInitializer.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Assembly/HeartbeatInitializer.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Assembly/HeartbeatInitializer.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Assembly/HeartbeatInitializer.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Heartbeat.storyboard b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Heartbeat.storyboard similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Heartbeat.storyboard rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Heartbeat.storyboard diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Presenter/HeartbeatModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Presenter/HeartbeatModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Presenter/HeartbeatModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Presenter/HeartbeatModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Presenter/HeartbeatPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Presenter/HeartbeatPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Presenter/HeartbeatPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Presenter/HeartbeatPresenter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Router/HeartbeatRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Router/HeartbeatRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Router/HeartbeatRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Router/HeartbeatRouter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Router/HeartbeatRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Router/HeartbeatRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Router/HeartbeatRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/Router/HeartbeatRouterInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/HeartbeatViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/HeartbeatViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/HeartbeatViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/HeartbeatViewController.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/HeartbeatViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/HeartbeatViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/HeartbeatViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/HeartbeatViewInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/HeartbeatViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/HeartbeatViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/HeartbeatViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/HeartbeatViewModel.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/HeartbeatViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/HeartbeatViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/HeartbeatViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/HeartbeatViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/SwiftUI/HeartbeatEnvironmentObject.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/SwiftUI/HeartbeatEnvironmentObject.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/SwiftUI/HeartbeatEnvironmentObject.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/SwiftUI/HeartbeatEnvironmentObject.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/SwiftUI/HeartbeatList.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/SwiftUI/HeartbeatList.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/SwiftUI/HeartbeatList.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/SwiftUI/HeartbeatList.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/Table/HeartbeatTableViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/Table/HeartbeatTableViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/Table/HeartbeatTableViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Heartbeat/View/Table/HeartbeatTableViewController.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Assembly/NotificationsSettingsModuleFactory.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Assembly/NotificationsSettingsModuleFactory.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Assembly/NotificationsSettingsModuleFactory.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Assembly/NotificationsSettingsModuleFactory.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Presenter/NotificationsSettingsModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Presenter/NotificationsSettingsModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Presenter/NotificationsSettingsModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Presenter/NotificationsSettingsModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Presenter/NotificationsSettingsPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Presenter/NotificationsSettingsPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Presenter/NotificationsSettingsPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Presenter/NotificationsSettingsPresenter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Router/NotificationsSettingsRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Router/NotificationsSettingsRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Router/NotificationsSettingsRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Router/NotificationsSettingsRouter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Router/NotificationsSettingsRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Router/NotificationsSettingsRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Router/NotificationsSettingsRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Router/NotificationsSettingsRouterInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/Assembly/PushAlertSoundSelectionModuleFactory.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/Assembly/PushAlertSoundSelectionModuleFactory.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/Assembly/PushAlertSoundSelectionModuleFactory.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/Assembly/PushAlertSoundSelectionModuleFactory.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/Presenter/PushAlertSoundSelectionModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/Presenter/PushAlertSoundSelectionModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/Presenter/PushAlertSoundSelectionModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/Presenter/PushAlertSoundSelectionModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/Presenter/PushAlertSoundSelectionPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/Presenter/PushAlertSoundSelectionPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/Presenter/PushAlertSoundSelectionPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/Presenter/PushAlertSoundSelectionPresenter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/PushAlertSoundSelectionViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/PushAlertSoundSelectionViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/PushAlertSoundSelectionViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/PushAlertSoundSelectionViewInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/PushAlertSoundSelectionViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/PushAlertSoundSelectionViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/PushAlertSoundSelectionViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/PushAlertSoundSelectionViewModel.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/PushAlertSoundSelectionViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/PushAlertSoundSelectionViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/PushAlertSoundSelectionViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/PushAlertSoundSelectionViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/UI/PushAlertSoundSelectionTableViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/UI/PushAlertSoundSelectionTableViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/UI/PushAlertSoundSelectionTableViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/UI/PushAlertSoundSelectionTableViewCell.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/UI/PushAlertSoundSelectionTableViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/UI/PushAlertSoundSelectionTableViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/UI/PushAlertSoundSelectionTableViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/Selection/View/UI/PushAlertSoundSelectionTableViewController.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/NotificationsSettingsViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/NotificationsSettingsViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/NotificationsSettingsViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/NotificationsSettingsViewInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/NotificationsSettingsViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/NotificationsSettingsViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/NotificationsSettingsViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/NotificationsSettingsViewModel.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/NotificationsSettingsViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/NotificationsSettingsViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/NotificationsSettingsViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/NotificationsSettingsViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/UI/NotificationsSettingsSwitchCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/UI/NotificationsSettingsSwitchCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/UI/NotificationsSettingsSwitchCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/UI/NotificationsSettingsSwitchCell.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/UI/NotificationsSettingsTableViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/UI/NotificationsSettingsTableViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/UI/NotificationsSettingsTableViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/UI/NotificationsSettingsTableViewController.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/UI/NotificationsSettingsTextCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/UI/NotificationsSettingsTextCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/UI/NotificationsSettingsTextCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Notifications/View/UI/NotificationsSettingsTextCell.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/Assembly/RuuviCloudModuleFactory.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/Assembly/RuuviCloudModuleFactory.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/Assembly/RuuviCloudModuleFactory.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/Assembly/RuuviCloudModuleFactory.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/Presenter/RuuviCloudModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/Presenter/RuuviCloudModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/Presenter/RuuviCloudModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/Presenter/RuuviCloudModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/Presenter/RuuviCloudPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/Presenter/RuuviCloudPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/Presenter/RuuviCloudPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/Presenter/RuuviCloudPresenter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/RuuviCloudViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/RuuviCloudViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/RuuviCloudViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/RuuviCloudViewInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/RuuviCloudViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/RuuviCloudViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/RuuviCloudViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/RuuviCloudViewModel.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/RuuviCloudViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/RuuviCloudViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/RuuviCloudViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/RuuviCloudViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/UI/RuuviCloudTableViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/UI/RuuviCloudTableViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/UI/RuuviCloudTableViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/UI/RuuviCloudTableViewCell.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/UI/RuuviCloudTableViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/UI/RuuviCloudTableViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/UI/RuuviCloudTableViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Ruuvi Cloud/View/UI/RuuviCloudTableViewController.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Selection/Assembly/Table/SelectionTableConfigurator.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Assembly/Table/SelectionTableConfigurator.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Selection/Assembly/Table/SelectionTableConfigurator.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Assembly/Table/SelectionTableConfigurator.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Selection/Assembly/Table/SelectionTableInitializer.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Assembly/Table/SelectionTableInitializer.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Selection/Assembly/Table/SelectionTableInitializer.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Assembly/Table/SelectionTableInitializer.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Selection/Model/SelectionItem.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Model/SelectionItem.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Selection/Model/SelectionItem.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Model/SelectionItem.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Selection/Presenter/SelectionModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Presenter/SelectionModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Selection/Presenter/SelectionModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Presenter/SelectionModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Selection/Presenter/SelectionModuleOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Presenter/SelectionModuleOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Selection/Presenter/SelectionModuleOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Presenter/SelectionModuleOutput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Selection/Presenter/SelectionPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Presenter/SelectionPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Selection/Presenter/SelectionPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Presenter/SelectionPresenter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Selection/Router/SelectionRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Router/SelectionRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Selection/Router/SelectionRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Router/SelectionRouter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Selection/Router/SelectionRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Router/SelectionRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Selection/Router/SelectionRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Router/SelectionRouterInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Selection/Selection.storyboard b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Selection.storyboard similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Selection/Selection.storyboard rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/Selection.storyboard diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Selection/View/SelectionViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/View/SelectionViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Selection/View/SelectionViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/View/SelectionViewInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Selection/View/SelectionViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/View/SelectionViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Selection/View/SelectionViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/View/SelectionViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Selection/View/Table/SelectionTableViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/View/Table/SelectionTableViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Selection/View/Table/SelectionTableViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/View/Table/SelectionTableViewCell.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Selection/View/Table/SelectionTableViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/View/Table/SelectionTableViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Selection/View/Table/SelectionTableViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Selection/View/Table/SelectionTableViewController.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Assembly/Table/UnitSettingsTableConfigurator.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Assembly/Table/UnitSettingsTableConfigurator.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Assembly/Table/UnitSettingsTableConfigurator.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Assembly/Table/UnitSettingsTableConfigurator.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Assembly/Table/UnitSettingsTableInitializer.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Assembly/Table/UnitSettingsTableInitializer.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Assembly/Table/UnitSettingsTableInitializer.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Assembly/Table/UnitSettingsTableInitializer.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Model/UnitSettingsItem.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Model/UnitSettingsItem.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Model/UnitSettingsItem.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Model/UnitSettingsItem.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Presenter/UnitSettingsModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Presenter/UnitSettingsModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Presenter/UnitSettingsModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Presenter/UnitSettingsModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Presenter/UnitSettingsModuleOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Presenter/UnitSettingsModuleOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Presenter/UnitSettingsModuleOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Presenter/UnitSettingsModuleOutput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Presenter/UnitSettingsPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Presenter/UnitSettingsPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Presenter/UnitSettingsPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Presenter/UnitSettingsPresenter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Router/UnitSettingsRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Router/UnitSettingsRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Router/UnitSettingsRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Router/UnitSettingsRouter.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Router/UnitSettingsRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Router/UnitSettingsRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Router/UnitSettingsRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/Router/UnitSettingsRouterInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/UnitSettings.storyboard b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/UnitSettings.storyboard similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/UnitSettings.storyboard rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/UnitSettings.storyboard diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/View/Table/UnitSettingsTableViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/View/Table/UnitSettingsTableViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/View/Table/UnitSettingsTableViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/View/Table/UnitSettingsTableViewCell.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/View/Table/UnitSettingsTableViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/View/Table/UnitSettingsTableViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/View/Table/UnitSettingsTableViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/View/Table/UnitSettingsTableViewController.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/View/UnitSettingsViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/View/UnitSettingsViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/View/UnitSettingsViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/View/UnitSettingsViewInput.swift diff --git a/station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/View/UnitSettingsViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/View/UnitSettingsViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/View/UnitSettingsViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Settings/Submodules/Unit Settings/View/UnitSettingsViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Share/Assembly/ShareConfigurator.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/Assembly/ShareConfigurator.swift similarity index 100% rename from station/Classes/Presentation/Modules/Share/Assembly/ShareConfigurator.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/Assembly/ShareConfigurator.swift diff --git a/station/Classes/Presentation/Modules/Share/Assembly/ShareInitializer.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/Assembly/ShareInitializer.swift similarity index 100% rename from station/Classes/Presentation/Modules/Share/Assembly/ShareInitializer.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/Assembly/ShareInitializer.swift diff --git a/station/Classes/Presentation/Modules/Share/Presenter/ShareModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/Presenter/ShareModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Share/Presenter/ShareModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/Presenter/ShareModuleInput.swift diff --git a/station/Classes/Presentation/Modules/Share/Presenter/ShareModuleOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/Presenter/ShareModuleOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Share/Presenter/ShareModuleOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/Presenter/ShareModuleOutput.swift diff --git a/station/Classes/Presentation/Modules/Share/Presenter/SharePresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/Presenter/SharePresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Share/Presenter/SharePresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/Presenter/SharePresenter.swift diff --git a/station/Classes/Presentation/Modules/Share/Router/ShareRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/Router/ShareRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/Share/Router/ShareRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/Router/ShareRouter.swift diff --git a/station/Classes/Presentation/Modules/Share/Router/ShareRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/Router/ShareRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Share/Router/ShareRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/Router/ShareRouterInput.swift diff --git a/station/Classes/Presentation/Modules/Share/Share.storyboard b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/Share.storyboard similarity index 100% rename from station/Classes/Presentation/Modules/Share/Share.storyboard rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/Share.storyboard diff --git a/station/Classes/Presentation/Modules/Share/View/Cells/ShareDescriptionTableViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/View/Cells/ShareDescriptionTableViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Share/View/Cells/ShareDescriptionTableViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/View/Cells/ShareDescriptionTableViewCell.swift diff --git a/station/Classes/Presentation/Modules/Share/View/Cells/ShareEmailInputTableViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/View/Cells/ShareEmailInputTableViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Share/View/Cells/ShareEmailInputTableViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/View/Cells/ShareEmailInputTableViewCell.swift diff --git a/station/Classes/Presentation/Modules/Share/View/Cells/ShareEmailTableViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/View/Cells/ShareEmailTableViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Share/View/Cells/ShareEmailTableViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/View/Cells/ShareEmailTableViewCell.swift diff --git a/station/Classes/Presentation/Modules/Share/View/Cells/ShareSendButtonTableViewCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/View/Cells/ShareSendButtonTableViewCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/Share/View/Cells/ShareSendButtonTableViewCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/View/Cells/ShareSendButtonTableViewCell.swift diff --git a/station/Classes/Presentation/Modules/Share/View/ShareViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/View/ShareViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Share/View/ShareViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/View/ShareViewInput.swift diff --git a/station/Classes/Presentation/Modules/Share/View/ShareViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/View/ShareViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/Share/View/ShareViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/View/ShareViewModel.swift diff --git a/station/Classes/Presentation/Modules/Share/View/ShareViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/View/ShareViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/Share/View/ShareViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/View/ShareViewOutput.swift diff --git a/station/Classes/Presentation/Modules/Share/View/ViewController/ShareViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/View/ViewController/ShareViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/Share/View/ViewController/ShareViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/Share/View/ViewController/ShareViewController.swift diff --git a/station/Classes/Presentation/Modules/SignIn/Assembly/SignInModuleFactory.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Assembly/SignInModuleFactory.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/Assembly/SignInModuleFactory.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Assembly/SignInModuleFactory.swift diff --git a/station/Classes/Presentation/Modules/SignIn/Presenter/SignInModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Presenter/SignInModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/Presenter/SignInModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Presenter/SignInModuleInput.swift diff --git a/station/Classes/Presentation/Modules/SignIn/Presenter/SignInModuleOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Presenter/SignInModuleOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/Presenter/SignInModuleOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Presenter/SignInModuleOutput.swift diff --git a/station/Classes/Presentation/Modules/SignIn/Presenter/SignInPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Presenter/SignInPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/Presenter/SignInPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Presenter/SignInPresenter.swift diff --git a/station/Classes/Presentation/Modules/SignIn/Router/SignInRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Router/SignInRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/Router/SignInRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Router/SignInRouter.swift diff --git a/station/Classes/Presentation/Modules/SignIn/Router/SignInRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Router/SignInRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/Router/SignInRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Router/SignInRouterInput.swift diff --git a/station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Assembly/SignInBenefitsModuleFactory.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Assembly/SignInBenefitsModuleFactory.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Assembly/SignInBenefitsModuleFactory.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Assembly/SignInBenefitsModuleFactory.swift diff --git a/station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Presenter/SignInBenefitsModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Presenter/SignInBenefitsModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Presenter/SignInBenefitsModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Presenter/SignInBenefitsModuleInput.swift diff --git a/station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Presenter/SignInBenefitsModuleOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Presenter/SignInBenefitsModuleOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Presenter/SignInBenefitsModuleOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Presenter/SignInBenefitsModuleOutput.swift diff --git a/station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Presenter/SignInBenefitsPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Presenter/SignInBenefitsPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Presenter/SignInBenefitsPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Presenter/SignInBenefitsPresenter.swift diff --git a/station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Router/SignInBenefitsRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Router/SignInBenefitsRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Router/SignInBenefitsRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Router/SignInBenefitsRouter.swift diff --git a/station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Router/SignInBenefitsRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Router/SignInBenefitsRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Router/SignInBenefitsRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/Router/SignInBenefitsRouterInput.swift diff --git a/station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/View/SignInBenefitsViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/View/SignInBenefitsViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/View/SignInBenefitsViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/View/SignInBenefitsViewController.swift diff --git a/station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/View/SignInBenefitsViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/View/SignInBenefitsViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/View/SignInBenefitsViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/View/SignInBenefitsViewInput.swift diff --git a/station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/View/SignInBenefitsViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/View/SignInBenefitsViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/View/SignInBenefitsViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/Submodules/Sign In Benefits/View/SignInBenefitsViewOutput.swift diff --git a/station/Classes/Presentation/Modules/SignIn/View/SignInViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/View/SignInViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/View/SignInViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/View/SignInViewInput.swift diff --git a/station/Classes/Presentation/Modules/SignIn/View/SignInViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/View/SignInViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/View/SignInViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/View/SignInViewModel.swift diff --git a/station/Classes/Presentation/Modules/SignIn/View/SignInViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/View/SignInViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/View/SignInViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/View/SignInViewOutput.swift diff --git a/station/Classes/Presentation/Modules/SignIn/View/UI/Helper/RuuviCodeTextField.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/View/UI/Helper/RuuviCodeTextField.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/View/UI/Helper/RuuviCodeTextField.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/View/UI/Helper/RuuviCodeTextField.swift diff --git a/station/Classes/Presentation/Modules/SignIn/View/UI/Helper/RuuviCodeView.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/View/UI/Helper/RuuviCodeView.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/View/UI/Helper/RuuviCodeView.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/View/UI/Helper/RuuviCodeView.swift diff --git a/station/Classes/Presentation/Modules/SignIn/View/UI/Helper/SignInVerifyView.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/View/UI/Helper/SignInVerifyView.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/View/UI/Helper/SignInVerifyView.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/View/UI/Helper/SignInVerifyView.swift diff --git a/station/Classes/Presentation/Modules/SignIn/View/UI/Helper/SignInView.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/View/UI/Helper/SignInView.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/View/UI/Helper/SignInView.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/View/UI/Helper/SignInView.swift diff --git a/station/Classes/Presentation/Modules/SignIn/View/UI/SignInViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/View/UI/SignInViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/SignIn/View/UI/SignInViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/SignIn/View/UI/SignInViewController.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Assembly/TagSettingsModuleFactory.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Assembly/TagSettingsModuleFactory.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Assembly/TagSettingsModuleFactory.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Assembly/TagSettingsModuleFactory.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Presenter/Debouncer.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Presenter/Debouncer.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Presenter/Debouncer.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Presenter/Debouncer.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Presenter/TagSettingsModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Presenter/TagSettingsModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Presenter/TagSettingsModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Presenter/TagSettingsModuleInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Presenter/TagSettingsModuleOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Presenter/TagSettingsModuleOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Presenter/TagSettingsModuleOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Presenter/TagSettingsModuleOutput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Presenter/TagSettingsPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Presenter/TagSettingsPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Presenter/TagSettingsPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Presenter/TagSettingsPresenter.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Router/TagSettingsRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Router/TagSettingsRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Router/TagSettingsRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Router/TagSettingsRouter.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Router/TagSettingsRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Router/TagSettingsRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Router/TagSettingsRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Router/TagSettingsRouterInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/DFU/DFUModuleFactory.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/DFU/DFUModuleFactory.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/DFU/DFUModuleFactory.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/DFU/DFUModuleFactory.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Interactor/DFUInteractor.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Interactor/DFUInteractor.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Interactor/DFUInteractor.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Interactor/DFUInteractor.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Interactor/DFUInteractorInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Interactor/DFUInteractorInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Interactor/DFUInteractorInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Interactor/DFUInteractorInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Interactor/LatestRelease.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Interactor/LatestRelease.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Interactor/LatestRelease.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Interactor/LatestRelease.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Presenter/DFUModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Presenter/DFUModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Presenter/DFUModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Presenter/DFUModuleInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Presenter/DFUPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Presenter/DFUPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Presenter/DFUPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/DFU/Presenter/DFUPresenter.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/DFU/View/DFUViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/DFU/View/DFUViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/DFU/View/DFUViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/DFU/View/DFUViewModel.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/DFU/View/SwiftUI/DFUUIView.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/DFU/View/SwiftUI/DFUUIView.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/DFU/View/SwiftUI/DFUUIView.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/DFU/View/SwiftUI/DFUUIView.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Assembly/SensorForceClaimModuleFactory.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Assembly/SensorForceClaimModuleFactory.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Assembly/SensorForceClaimModuleFactory.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Assembly/SensorForceClaimModuleFactory.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Presenter/SensorForceClaimModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Presenter/SensorForceClaimModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Presenter/SensorForceClaimModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Presenter/SensorForceClaimModuleInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Presenter/SensorForceClaimPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Presenter/SensorForceClaimPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Presenter/SensorForceClaimPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Presenter/SensorForceClaimPresenter.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Router/SensorForceClaimRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Router/SensorForceClaimRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Router/SensorForceClaimRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Router/SensorForceClaimRouter.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Router/SensorForceClaimRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Router/SensorForceClaimRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Router/SensorForceClaimRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/Router/SensorForceClaimRouterInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/View/SensorForceClaimViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/View/SensorForceClaimViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/View/SensorForceClaimViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/View/SensorForceClaimViewInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/View/SensorForceClaimViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/View/SensorForceClaimViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/View/SensorForceClaimViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/View/SensorForceClaimViewOutput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/View/UI/SensorForceClaimViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/View/UI/SensorForceClaimViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/View/UI/SensorForceClaimViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Force Claim/View/UI/SensorForceClaimViewController.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Assembly/Apple/OffsetCorrectionAppleInitializer.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Assembly/Apple/OffsetCorrectionAppleInitializer.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Assembly/Apple/OffsetCorrectionAppleInitializer.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Assembly/Apple/OffsetCorrectionAppleInitializer.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Assembly/Apple/OffsetCorrectionConfigurator.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Assembly/Apple/OffsetCorrectionConfigurator.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Assembly/Apple/OffsetCorrectionConfigurator.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Assembly/Apple/OffsetCorrectionConfigurator.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/OffsetCorrection.storyboard b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/OffsetCorrection.storyboard similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/OffsetCorrection.storyboard rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/OffsetCorrection.storyboard diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Presenter/OffsetCorrectionModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Presenter/OffsetCorrectionModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Presenter/OffsetCorrectionModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Presenter/OffsetCorrectionModuleInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Presenter/OffsetCorrectionModuleOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Presenter/OffsetCorrectionModuleOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Presenter/OffsetCorrectionModuleOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Presenter/OffsetCorrectionModuleOutput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Presenter/OffsetCorrectionPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Presenter/OffsetCorrectionPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Presenter/OffsetCorrectionPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Presenter/OffsetCorrectionPresenter.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Router/OffsetCorrectionRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Router/OffsetCorrectionRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Router/OffsetCorrectionRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Router/OffsetCorrectionRouter.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Router/OffsetCorrectionRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Router/OffsetCorrectionRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Router/OffsetCorrectionRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/Router/OffsetCorrectionRouterInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/View/Apple/OffsetCorrectionAppleViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/View/Apple/OffsetCorrectionAppleViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/View/Apple/OffsetCorrectionAppleViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/View/Apple/OffsetCorrectionAppleViewController.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/View/OffsetCorrectionViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/View/OffsetCorrectionViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/View/OffsetCorrectionViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/View/OffsetCorrectionViewInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/View/OffsetCorrectionViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/View/OffsetCorrectionViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/View/OffsetCorrectionViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/View/OffsetCorrectionViewModel.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/View/OffsetCorrectionViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/View/OffsetCorrectionViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/View/OffsetCorrectionViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/OffsetCorrection/View/OffsetCorrectionViewOutput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Assembly/OwnerConfigurator.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Assembly/OwnerConfigurator.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Assembly/OwnerConfigurator.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Assembly/OwnerConfigurator.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Assembly/OwnerInitializer.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Assembly/OwnerInitializer.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Assembly/OwnerInitializer.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Assembly/OwnerInitializer.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Owner.storyboard b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Owner.storyboard similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Owner.storyboard rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Owner.storyboard diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Presenter/OwnerModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Presenter/OwnerModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Presenter/OwnerModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Presenter/OwnerModuleInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Presenter/OwnerPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Presenter/OwnerPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Presenter/OwnerPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Presenter/OwnerPresenter.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Router/OwnerRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Router/OwnerRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Router/OwnerRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Router/OwnerRouter.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Router/OwnerRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Router/OwnerRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Router/OwnerRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/Router/OwnerRouterInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/View/OwnerViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/View/OwnerViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/View/OwnerViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/View/OwnerViewController.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/View/OwnerViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/View/OwnerViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/View/OwnerViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/View/OwnerViewInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/View/OwnerViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/View/OwnerViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Owner/View/OwnerViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Owner/View/OwnerViewOutput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Assembly/SensorRemovalModuleFactory.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Assembly/SensorRemovalModuleFactory.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Assembly/SensorRemovalModuleFactory.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Assembly/SensorRemovalModuleFactory.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Presenter/SensorRemovalModuleInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Presenter/SensorRemovalModuleInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Presenter/SensorRemovalModuleInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Presenter/SensorRemovalModuleInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Presenter/SensorRemovalModuleOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Presenter/SensorRemovalModuleOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Presenter/SensorRemovalModuleOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Presenter/SensorRemovalModuleOutput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Presenter/SensorRemovalPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Presenter/SensorRemovalPresenter.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Presenter/SensorRemovalPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Presenter/SensorRemovalPresenter.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Router/SensorRemovalRouter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Router/SensorRemovalRouter.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Router/SensorRemovalRouter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Router/SensorRemovalRouter.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Router/SensorRemovalRouterInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Router/SensorRemovalRouterInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Router/SensorRemovalRouterInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/Router/SensorRemovalRouterInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/View/SensorRemovalViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/View/SensorRemovalViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/View/SensorRemovalViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/View/SensorRemovalViewInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/View/SensorRemovalViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/View/SensorRemovalViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/View/SensorRemovalViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/View/SensorRemovalViewOutput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/View/UI/SensorRemovalViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/View/UI/SensorRemovalViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/Submodules/Removal/View/UI/SensorRemovalViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/Submodules/Removal/View/UI/SensorRemovalViewController.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/View/TagSettingsViewInput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/TagSettingsViewInput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/View/TagSettingsViewInput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/TagSettingsViewInput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/View/TagSettingsViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/TagSettingsViewModel.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/View/TagSettingsViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/TagSettingsViewModel.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/View/TagSettingsViewOutput.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/TagSettingsViewOutput.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/View/TagSettingsViewOutput.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/TagSettingsViewOutput.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/View/UI/RUAlertDetailsCellChildView/RUAlertDetailsCellChildView.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/RUAlertDetailsCellChildView/RUAlertDetailsCellChildView.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/View/UI/RUAlertDetailsCellChildView/RUAlertDetailsCellChildView.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/RUAlertDetailsCellChildView/RUAlertDetailsCellChildView.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/View/UI/RUAlertExpandButton/RUAlertExpandButton.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/RUAlertExpandButton/RUAlertExpandButton.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/View/UI/RUAlertExpandButton/RUAlertExpandButton.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/RUAlertExpandButton/RUAlertExpandButton.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/View/UI/RangeSeekSlider/RURangeSeekSlider.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/RangeSeekSlider/RURangeSeekSlider.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/View/UI/RangeSeekSlider/RURangeSeekSlider.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/RangeSeekSlider/RURangeSeekSlider.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsAlertConfigCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsAlertConfigCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsAlertConfigCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsAlertConfigCell.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsBackgroundSelectionView.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsBackgroundSelectionView.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsBackgroundSelectionView.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsBackgroundSelectionView.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsBasicCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsBasicCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsBasicCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsBasicCell.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsExpandableSectionHeader.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsExpandableSectionHeader.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsExpandableSectionHeader.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsExpandableSectionHeader.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsFooterCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsFooterCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsFooterCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsFooterCell.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsPlainCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsPlainCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsPlainCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsPlainCell.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsSimpleSectionHeader.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsSimpleSectionHeader.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsSimpleSectionHeader.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsSimpleSectionHeader.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsSwitchCell.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsSwitchCell.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsSwitchCell.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsSwitchCell.swift diff --git a/station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsViewController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsViewController.swift similarity index 100% rename from station/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsViewController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Modules/TagSettings/View/UI/TagSettingsViewController.swift diff --git a/station/Classes/Presentation/Presenters/Alert/AlertPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Presenters/Alert/AlertPresenter.swift similarity index 100% rename from station/Classes/Presentation/Presenters/Alert/AlertPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Presenters/Alert/AlertPresenter.swift diff --git a/station/Classes/Presentation/Presenters/Alert/Impl/AlertPresenterImpl.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Presenters/Alert/Impl/AlertPresenterImpl.swift similarity index 100% rename from station/Classes/Presentation/Presenters/Alert/Impl/AlertPresenterImpl.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Presenters/Alert/Impl/AlertPresenterImpl.swift diff --git a/station/Classes/Presentation/Presenters/Alert/ViewModel/AlertViewModel.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Presenters/Alert/ViewModel/AlertViewModel.swift similarity index 100% rename from station/Classes/Presentation/Presenters/Alert/ViewModel/AlertViewModel.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Presenters/Alert/ViewModel/AlertViewModel.swift diff --git a/station/Classes/Presentation/Presenters/MailComposer/MailComposerPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Presenters/MailComposer/MailComposerPresenter.swift similarity index 100% rename from station/Classes/Presentation/Presenters/MailComposer/MailComposerPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Presenters/MailComposer/MailComposerPresenter.swift diff --git a/station/Classes/Presentation/Presenters/MailComposer/MessageUI/MailComposerPresenterMessageUI.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Presenters/MailComposer/MessageUI/MailComposerPresenterMessageUI.swift similarity index 100% rename from station/Classes/Presentation/Presenters/MailComposer/MessageUI/MailComposerPresenterMessageUI.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Presenters/MailComposer/MessageUI/MailComposerPresenterMessageUI.swift diff --git a/station/Classes/Presentation/Presenters/PhotoPicker/PhotoPickerPresenter.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Presenters/PhotoPicker/PhotoPickerPresenter.swift similarity index 100% rename from station/Classes/Presentation/Presenters/PhotoPicker/PhotoPickerPresenter.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Presenters/PhotoPicker/PhotoPickerPresenter.swift diff --git a/station/Classes/Presentation/Presenters/PhotoPicker/Sheet/PhotoPickerPresenterSheet.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Presenters/PhotoPicker/Sheet/PhotoPickerPresenterSheet.swift similarity index 100% rename from station/Classes/Presentation/Presenters/PhotoPicker/Sheet/PhotoPickerPresenterSheet.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Presenters/PhotoPicker/Sheet/PhotoPickerPresenterSheet.swift diff --git a/station/Classes/Presentation/Transitions/SwipeDownToDismiss/SwipeDownToDismissInteractiveTransition.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Transitions/SwipeDownToDismiss/SwipeDownToDismissInteractiveTransition.swift similarity index 100% rename from station/Classes/Presentation/Transitions/SwipeDownToDismiss/SwipeDownToDismissInteractiveTransition.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Transitions/SwipeDownToDismiss/SwipeDownToDismissInteractiveTransition.swift diff --git a/station/Classes/Presentation/Transitions/SwipeDownToDismiss/SwipeDownToDismissNavigationController.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Transitions/SwipeDownToDismiss/SwipeDownToDismissNavigationController.swift similarity index 100% rename from station/Classes/Presentation/Transitions/SwipeDownToDismiss/SwipeDownToDismissNavigationController.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Transitions/SwipeDownToDismiss/SwipeDownToDismissNavigationController.swift diff --git a/station/Classes/Presentation/Transitions/SwipeDownToDismiss/SwipeDownToDismissTransitionAnimation.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Transitions/SwipeDownToDismiss/SwipeDownToDismissTransitionAnimation.swift similarity index 100% rename from station/Classes/Presentation/Transitions/SwipeDownToDismiss/SwipeDownToDismissTransitionAnimation.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Transitions/SwipeDownToDismiss/SwipeDownToDismissTransitionAnimation.swift diff --git a/station/Classes/Presentation/Transitions/SwipeDownToDismiss/SwipeDownToDismissTransitioningDelegate.swift b/Apps/RuuviStation/Sources/Classes/Presentation/Transitions/SwipeDownToDismiss/SwipeDownToDismissTransitioningDelegate.swift similarity index 100% rename from station/Classes/Presentation/Transitions/SwipeDownToDismiss/SwipeDownToDismissTransitioningDelegate.swift rename to Apps/RuuviStation/Sources/Classes/Presentation/Transitions/SwipeDownToDismiss/SwipeDownToDismissTransitioningDelegate.swift diff --git a/station/Classes/Routers/AppRouter.swift b/Apps/RuuviStation/Sources/Classes/Routers/AppRouter.swift similarity index 100% rename from station/Classes/Routers/AppRouter.swift rename to Apps/RuuviStation/Sources/Classes/Routers/AppRouter.swift diff --git a/station/Classes/Routers/DiscoverRouter.swift b/Apps/RuuviStation/Sources/Classes/Routers/DiscoverRouter.swift similarity index 100% rename from station/Classes/Routers/DiscoverRouter.swift rename to Apps/RuuviStation/Sources/Classes/Routers/DiscoverRouter.swift diff --git a/station/Classes/Routers/OnboardRouter.swift b/Apps/RuuviStation/Sources/Classes/Routers/OnboardRouter.swift similarity index 100% rename from station/Classes/Routers/OnboardRouter.swift rename to Apps/RuuviStation/Sources/Classes/Routers/OnboardRouter.swift diff --git a/station/Extensions/Array+AnyRuuviTagSensor.swift b/Apps/RuuviStation/Sources/Extensions/Array+AnyRuuviTagSensor.swift similarity index 100% rename from station/Extensions/Array+AnyRuuviTagSensor.swift rename to Apps/RuuviStation/Sources/Extensions/Array+AnyRuuviTagSensor.swift diff --git a/station/Extensions/CALayer+IB.swift b/Apps/RuuviStation/Sources/Extensions/CALayer+IB.swift similarity index 100% rename from station/Extensions/CALayer+IB.swift rename to Apps/RuuviStation/Sources/Extensions/CALayer+IB.swift diff --git a/station/Extensions/Classess/AppDateFormatter.swift b/Apps/RuuviStation/Sources/Extensions/Classess/AppDateFormatter.swift similarity index 100% rename from station/Extensions/Classess/AppDateFormatter.swift rename to Apps/RuuviStation/Sources/Extensions/Classess/AppDateFormatter.swift diff --git a/station/Extensions/Classess/RuuviCustomButton.swift b/Apps/RuuviStation/Sources/Extensions/Classess/RuuviCustomButton.swift similarity index 100% rename from station/Extensions/Classess/RuuviCustomButton.swift rename to Apps/RuuviStation/Sources/Extensions/Classess/RuuviCustomButton.swift diff --git a/station/Extensions/Classess/RuuviLinkTextView.swift b/Apps/RuuviStation/Sources/Extensions/Classess/RuuviLinkTextView.swift similarity index 100% rename from station/Extensions/Classess/RuuviLinkTextView.swift rename to Apps/RuuviStation/Sources/Extensions/Classess/RuuviLinkTextView.swift diff --git a/station/Extensions/Classess/RuuviUISwitch.swift b/Apps/RuuviStation/Sources/Extensions/Classess/RuuviUISwitch.swift similarity index 100% rename from station/Extensions/Classess/RuuviUISwitch.swift rename to Apps/RuuviStation/Sources/Extensions/Classess/RuuviUISwitch.swift diff --git a/station/Extensions/Color+Ruuvi.swift b/Apps/RuuviStation/Sources/Extensions/Color+Ruuvi.swift similarity index 100% rename from station/Extensions/Color+Ruuvi.swift rename to Apps/RuuviStation/Sources/Extensions/Color+Ruuvi.swift diff --git a/station/Extensions/Date+Ruuvi.swift b/Apps/RuuviStation/Sources/Extensions/Date+Ruuvi.swift similarity index 100% rename from station/Extensions/Date+Ruuvi.swift rename to Apps/RuuviStation/Sources/Extensions/Date+Ruuvi.swift diff --git a/station/Extensions/DfuFirmware+Log.swift b/Apps/RuuviStation/Sources/Extensions/DfuFirmware+Log.swift similarity index 100% rename from station/Extensions/DfuFirmware+Log.swift rename to Apps/RuuviStation/Sources/Extensions/DfuFirmware+Log.swift diff --git a/station/Extensions/Double+Extension.swift b/Apps/RuuviStation/Sources/Extensions/Double+Extension.swift similarity index 100% rename from station/Extensions/Double+Extension.swift rename to Apps/RuuviStation/Sources/Extensions/Double+Extension.swift diff --git a/station/Extensions/Double+Temperature.swift b/Apps/RuuviStation/Sources/Extensions/Double+Temperature.swift similarity index 100% rename from station/Extensions/Double+Temperature.swift rename to Apps/RuuviStation/Sources/Extensions/Double+Temperature.swift diff --git a/station/Extensions/Errors/RUError.swift b/Apps/RuuviStation/Sources/Extensions/Errors/RUError.swift similarity index 100% rename from station/Extensions/Errors/RUError.swift rename to Apps/RuuviStation/Sources/Extensions/Errors/RUError.swift diff --git a/station/Extensions/Errors/RuuviCloudApiError+LocalizedError.swift b/Apps/RuuviStation/Sources/Extensions/Errors/RuuviCloudApiError+LocalizedError.swift similarity index 100% rename from station/Extensions/Errors/RuuviCloudApiError+LocalizedError.swift rename to Apps/RuuviStation/Sources/Extensions/Errors/RuuviCloudApiError+LocalizedError.swift diff --git a/station/Extensions/Errors/RuuviCloudError+LocalizedError.swift b/Apps/RuuviStation/Sources/Extensions/Errors/RuuviCloudError+LocalizedError.swift similarity index 100% rename from station/Extensions/Errors/RuuviCloudError+LocalizedError.swift rename to Apps/RuuviStation/Sources/Extensions/Errors/RuuviCloudError+LocalizedError.swift diff --git a/station/Extensions/Errors/RuuviCoreError+LocalizedError.swift b/Apps/RuuviStation/Sources/Extensions/Errors/RuuviCoreError+LocalizedError.swift similarity index 100% rename from station/Extensions/Errors/RuuviCoreError+LocalizedError.swift rename to Apps/RuuviStation/Sources/Extensions/Errors/RuuviCoreError+LocalizedError.swift diff --git a/station/Extensions/Errors/RuuviDFUError+LocalizedError.swift b/Apps/RuuviStation/Sources/Extensions/Errors/RuuviDFUError+LocalizedError.swift similarity index 100% rename from station/Extensions/Errors/RuuviDFUError+LocalizedError.swift rename to Apps/RuuviStation/Sources/Extensions/Errors/RuuviDFUError+LocalizedError.swift diff --git a/station/Extensions/Errors/RuuviDaemonError+LocalizedError.swift b/Apps/RuuviStation/Sources/Extensions/Errors/RuuviDaemonError+LocalizedError.swift similarity index 100% rename from station/Extensions/Errors/RuuviDaemonError+LocalizedError.swift rename to Apps/RuuviStation/Sources/Extensions/Errors/RuuviDaemonError+LocalizedError.swift diff --git a/station/Extensions/Errors/RuuviLocalError+LocalizedError.swift b/Apps/RuuviStation/Sources/Extensions/Errors/RuuviLocalError+LocalizedError.swift similarity index 100% rename from station/Extensions/Errors/RuuviLocalError+LocalizedError.swift rename to Apps/RuuviStation/Sources/Extensions/Errors/RuuviLocalError+LocalizedError.swift diff --git a/station/Extensions/Errors/RuuviPersistenceError+LocalizedError.swift b/Apps/RuuviStation/Sources/Extensions/Errors/RuuviPersistenceError+LocalizedError.swift similarity index 100% rename from station/Extensions/Errors/RuuviPersistenceError+LocalizedError.swift rename to Apps/RuuviStation/Sources/Extensions/Errors/RuuviPersistenceError+LocalizedError.swift diff --git a/station/Extensions/Errors/RuuviPoolError+LocalizedError.swift b/Apps/RuuviStation/Sources/Extensions/Errors/RuuviPoolError+LocalizedError.swift similarity index 100% rename from station/Extensions/Errors/RuuviPoolError+LocalizedError.swift rename to Apps/RuuviStation/Sources/Extensions/Errors/RuuviPoolError+LocalizedError.swift diff --git a/station/Extensions/Errors/RuuviReactorError+LocalizedError.swift b/Apps/RuuviStation/Sources/Extensions/Errors/RuuviReactorError+LocalizedError.swift similarity index 100% rename from station/Extensions/Errors/RuuviReactorError+LocalizedError.swift rename to Apps/RuuviStation/Sources/Extensions/Errors/RuuviReactorError+LocalizedError.swift diff --git a/station/Extensions/Errors/RuuviRepositoryError+LocalizedError.swift b/Apps/RuuviStation/Sources/Extensions/Errors/RuuviRepositoryError+LocalizedError.swift similarity index 100% rename from station/Extensions/Errors/RuuviRepositoryError+LocalizedError.swift rename to Apps/RuuviStation/Sources/Extensions/Errors/RuuviRepositoryError+LocalizedError.swift diff --git a/station/Extensions/Errors/RuuviServiceError+LocalizedError.swift b/Apps/RuuviStation/Sources/Extensions/Errors/RuuviServiceError+LocalizedError.swift similarity index 100% rename from station/Extensions/Errors/RuuviServiceError+LocalizedError.swift rename to Apps/RuuviStation/Sources/Extensions/Errors/RuuviServiceError+LocalizedError.swift diff --git a/station/Extensions/Errors/RuuviStorageError+LocalizedError.swift b/Apps/RuuviStation/Sources/Extensions/Errors/RuuviStorageError+LocalizedError.swift similarity index 100% rename from station/Extensions/Errors/RuuviStorageError+LocalizedError.swift rename to Apps/RuuviStation/Sources/Extensions/Errors/RuuviStorageError+LocalizedError.swift diff --git a/station/Extensions/FileManager+Date.swift b/Apps/RuuviStation/Sources/Extensions/FileManager+Date.swift similarity index 100% rename from station/Extensions/FileManager+Date.swift rename to Apps/RuuviStation/Sources/Extensions/FileManager+Date.swift diff --git a/station/Extensions/Humidity+Offset.swift b/Apps/RuuviStation/Sources/Extensions/Humidity+Offset.swift similarity index 100% rename from station/Extensions/Humidity+Offset.swift rename to Apps/RuuviStation/Sources/Extensions/Humidity+Offset.swift diff --git a/station/Extensions/HumidityUnit+Localization.swift b/Apps/RuuviStation/Sources/Extensions/HumidityUnit+Localization.swift similarity index 100% rename from station/Extensions/HumidityUnit+Localization.swift rename to Apps/RuuviStation/Sources/Extensions/HumidityUnit+Localization.swift diff --git a/station/Extensions/Int+Extension.swift b/Apps/RuuviStation/Sources/Extensions/Int+Extension.swift similarity index 100% rename from station/Extensions/Int+Extension.swift rename to Apps/RuuviStation/Sources/Extensions/Int+Extension.swift diff --git a/station/Extensions/Language+Localization.swift b/Apps/RuuviStation/Sources/Extensions/Language+Localization.swift similarity index 100% rename from station/Extensions/Language+Localization.swift rename to Apps/RuuviStation/Sources/Extensions/Language+Localization.swift diff --git a/station/Extensions/MeasurementAccuracyType+Extension.swift b/Apps/RuuviStation/Sources/Extensions/MeasurementAccuracyType+Extension.swift similarity index 100% rename from station/Extensions/MeasurementAccuracyType+Extension.swift rename to Apps/RuuviStation/Sources/Extensions/MeasurementAccuracyType+Extension.swift diff --git a/station/Extensions/MeasurementType.swift b/Apps/RuuviStation/Sources/Extensions/MeasurementType.swift similarity index 100% rename from station/Extensions/MeasurementType.swift rename to Apps/RuuviStation/Sources/Extensions/MeasurementType.swift diff --git a/station/Extensions/NSObjectProtocol+Invalidation.swift b/Apps/RuuviStation/Sources/Extensions/NSObjectProtocol+Invalidation.swift similarity index 100% rename from station/Extensions/NSObjectProtocol+Invalidation.swift rename to Apps/RuuviStation/Sources/Extensions/NSObjectProtocol+Invalidation.swift diff --git a/station/Extensions/RuuviAlertSound+Extension.swift b/Apps/RuuviStation/Sources/Extensions/RuuviAlertSound+Extension.swift similarity index 100% rename from station/Extensions/RuuviAlertSound+Extension.swift rename to Apps/RuuviStation/Sources/Extensions/RuuviAlertSound+Extension.swift diff --git a/station/Extensions/RuuviTheme+Extension.swift b/Apps/RuuviStation/Sources/Extensions/RuuviTheme+Extension.swift similarity index 100% rename from station/Extensions/RuuviTheme+Extension.swift rename to Apps/RuuviStation/Sources/Extensions/RuuviTheme+Extension.swift diff --git a/station/Extensions/String+Characters.swift b/Apps/RuuviStation/Sources/Extensions/String+Characters.swift similarity index 100% rename from station/Extensions/String+Characters.swift rename to Apps/RuuviStation/Sources/Extensions/String+Characters.swift diff --git a/station/Extensions/String+Email.swift b/Apps/RuuviStation/Sources/Extensions/String+Email.swift similarity index 100% rename from station/Extensions/String+Email.swift rename to Apps/RuuviStation/Sources/Extensions/String+Email.swift diff --git a/station/Extensions/String+Replace.swift b/Apps/RuuviStation/Sources/Extensions/String+Replace.swift similarity index 100% rename from station/Extensions/String+Replace.swift rename to Apps/RuuviStation/Sources/Extensions/String+Replace.swift diff --git a/station/Extensions/Structs/AppStoreReviewHelper.swift b/Apps/RuuviStation/Sources/Extensions/Structs/AppStoreReviewHelper.swift similarity index 100% rename from station/Extensions/Structs/AppStoreReviewHelper.swift rename to Apps/RuuviStation/Sources/Extensions/Structs/AppStoreReviewHelper.swift diff --git a/station/Extensions/Structs/AppUtility.swift b/Apps/RuuviStation/Sources/Extensions/Structs/AppUtility.swift similarity index 100% rename from station/Extensions/Structs/AppUtility.swift rename to Apps/RuuviStation/Sources/Extensions/Structs/AppUtility.swift diff --git a/station/Extensions/Structs/ExportHeadersProvider.swift b/Apps/RuuviStation/Sources/Extensions/Structs/ExportHeadersProvider.swift similarity index 100% rename from station/Extensions/Structs/ExportHeadersProvider.swift rename to Apps/RuuviStation/Sources/Extensions/Structs/ExportHeadersProvider.swift diff --git a/station/Extensions/Structs/GlobalHelpers.swift b/Apps/RuuviStation/Sources/Extensions/Structs/GlobalHelpers.swift similarity index 100% rename from station/Extensions/Structs/GlobalHelpers.swift rename to Apps/RuuviStation/Sources/Extensions/Structs/GlobalHelpers.swift diff --git a/station/Extensions/Structs/HeartbeatDaemonTitles.swift b/Apps/RuuviStation/Sources/Extensions/Structs/HeartbeatDaemonTitles.swift similarity index 100% rename from station/Extensions/Structs/HeartbeatDaemonTitles.swift rename to Apps/RuuviStation/Sources/Extensions/Structs/HeartbeatDaemonTitles.swift diff --git a/station/Extensions/Structs/MeasurementAccuracyTitles.swift b/Apps/RuuviStation/Sources/Extensions/Structs/MeasurementAccuracyTitles.swift similarity index 100% rename from station/Extensions/Structs/MeasurementAccuracyTitles.swift rename to Apps/RuuviStation/Sources/Extensions/Structs/MeasurementAccuracyTitles.swift diff --git a/station/Extensions/Structs/RuuviNotifierTitlesImpl.swift b/Apps/RuuviStation/Sources/Extensions/Structs/RuuviNotifierTitlesImpl.swift similarity index 100% rename from station/Extensions/Structs/RuuviNotifierTitlesImpl.swift rename to Apps/RuuviStation/Sources/Extensions/Structs/RuuviNotifierTitlesImpl.swift diff --git a/station/Extensions/Structs/RuuviTagBatteryStatusProvider.swift b/Apps/RuuviStation/Sources/Extensions/Structs/RuuviTagBatteryStatusProvider.swift similarity index 100% rename from station/Extensions/Structs/RuuviTagBatteryStatusProvider.swift rename to Apps/RuuviStation/Sources/Extensions/Structs/RuuviTagBatteryStatusProvider.swift diff --git a/station/Extensions/TemperatureUnit+Localization.swift b/Apps/RuuviStation/Sources/Extensions/TemperatureUnit+Localization.swift similarity index 100% rename from station/Extensions/TemperatureUnit+Localization.swift rename to Apps/RuuviStation/Sources/Extensions/TemperatureUnit+Localization.swift diff --git a/station/Extensions/UIApplication+ViewController.swift b/Apps/RuuviStation/Sources/Extensions/UIApplication+ViewController.swift similarity index 100% rename from station/Extensions/UIApplication+ViewController.swift rename to Apps/RuuviStation/Sources/Extensions/UIApplication+ViewController.swift diff --git a/station/Extensions/UIButton+Extension.swift b/Apps/RuuviStation/Sources/Extensions/UIButton+Extension.swift similarity index 100% rename from station/Extensions/UIButton+Extension.swift rename to Apps/RuuviStation/Sources/Extensions/UIButton+Extension.swift diff --git a/station/Extensions/UICollectionView+Extension.swift b/Apps/RuuviStation/Sources/Extensions/UICollectionView+Extension.swift similarity index 100% rename from station/Extensions/UICollectionView+Extension.swift rename to Apps/RuuviStation/Sources/Extensions/UICollectionView+Extension.swift diff --git a/station/Extensions/UIColor+Extension.swift b/Apps/RuuviStation/Sources/Extensions/UIColor+Extension.swift similarity index 100% rename from station/Extensions/UIColor+Extension.swift rename to Apps/RuuviStation/Sources/Extensions/UIColor+Extension.swift diff --git a/station/Extensions/UIDevice+ReadableModel.swift b/Apps/RuuviStation/Sources/Extensions/UIDevice+ReadableModel.swift similarity index 100% rename from station/Extensions/UIDevice+ReadableModel.swift rename to Apps/RuuviStation/Sources/Extensions/UIDevice+ReadableModel.swift diff --git a/station/Extensions/UIFont+Extension.swift b/Apps/RuuviStation/Sources/Extensions/UIFont+Extension.swift similarity index 100% rename from station/Extensions/UIFont+Extension.swift rename to Apps/RuuviStation/Sources/Extensions/UIFont+Extension.swift diff --git a/station/Extensions/UIImage+Extension.swift b/Apps/RuuviStation/Sources/Extensions/UIImage+Extension.swift similarity index 100% rename from station/Extensions/UIImage+Extension.swift rename to Apps/RuuviStation/Sources/Extensions/UIImage+Extension.swift diff --git a/station/Extensions/UIImageView+Init.swift b/Apps/RuuviStation/Sources/Extensions/UIImageView+Init.swift similarity index 100% rename from station/Extensions/UIImageView+Init.swift rename to Apps/RuuviStation/Sources/Extensions/UIImageView+Init.swift diff --git a/station/Extensions/UINavigationController.swift b/Apps/RuuviStation/Sources/Extensions/UINavigationController.swift similarity index 100% rename from station/Extensions/UINavigationController.swift rename to Apps/RuuviStation/Sources/Extensions/UINavigationController.swift diff --git a/station/Extensions/UITableViewCell+ReusableView.swift b/Apps/RuuviStation/Sources/Extensions/UITableViewCell+ReusableView.swift similarity index 100% rename from station/Extensions/UITableViewCell+ReusableView.swift rename to Apps/RuuviStation/Sources/Extensions/UITableViewCell+ReusableView.swift diff --git a/station/Extensions/UITextField+Extension.swift b/Apps/RuuviStation/Sources/Extensions/UITextField+Extension.swift similarity index 100% rename from station/Extensions/UITextField+Extension.swift rename to Apps/RuuviStation/Sources/Extensions/UITextField+Extension.swift diff --git a/station/Extensions/UIView+Extension.swift b/Apps/RuuviStation/Sources/Extensions/UIView+Extension.swift similarity index 100% rename from station/Extensions/UIView+Extension.swift rename to Apps/RuuviStation/Sources/Extensions/UIView+Extension.swift diff --git a/station/Extensions/UIView+Init.swift b/Apps/RuuviStation/Sources/Extensions/UIView+Init.swift similarity index 100% rename from station/Extensions/UIView+Init.swift rename to Apps/RuuviStation/Sources/Extensions/UIView+Init.swift diff --git a/station/Extensions/UIView+Layout.swift b/Apps/RuuviStation/Sources/Extensions/UIView+Layout.swift similarity index 100% rename from station/Extensions/UIView+Layout.swift rename to Apps/RuuviStation/Sources/Extensions/UIView+Layout.swift diff --git a/station/Extensions/UIViewController+Alert.swift b/Apps/RuuviStation/Sources/Extensions/UIViewController+Alert.swift similarity index 100% rename from station/Extensions/UIViewController+Alert.swift rename to Apps/RuuviStation/Sources/Extensions/UIViewController+Alert.swift diff --git a/station/Extensions/UIWindow+Orientation.swift b/Apps/RuuviStation/Sources/Extensions/UIWindow+Orientation.swift similarity index 100% rename from station/Extensions/UIWindow+Orientation.swift rename to Apps/RuuviStation/Sources/Extensions/UIWindow+Orientation.swift diff --git a/station/Extensions/UIWindow+Shake.swift b/Apps/RuuviStation/Sources/Extensions/UIWindow+Shake.swift similarity index 100% rename from station/Extensions/UIWindow+Shake.swift rename to Apps/RuuviStation/Sources/Extensions/UIWindow+Shake.swift diff --git a/station/Extensions/UnitPressure+Extension.swift b/Apps/RuuviStation/Sources/Extensions/UnitPressure+Extension.swift similarity index 100% rename from station/Extensions/UnitPressure+Extension.swift rename to Apps/RuuviStation/Sources/Extensions/UnitPressure+Extension.swift diff --git a/station/Extensions/UnitSettingsType.swift b/Apps/RuuviStation/Sources/Extensions/UnitSettingsType.swift similarity index 100% rename from station/Extensions/UnitSettingsType.swift rename to Apps/RuuviStation/Sources/Extensions/UnitSettingsType.swift diff --git a/station/Extensions/UserDefaults+Optional.swift b/Apps/RuuviStation/Sources/Extensions/UserDefaults+Optional.swift similarity index 100% rename from station/Extensions/UserDefaults+Optional.swift rename to Apps/RuuviStation/Sources/Extensions/UserDefaults+Optional.swift diff --git a/station/Resources/Assets/RuuviAssets.swift b/Apps/RuuviStation/Sources/Resources/Assets/RuuviAssets.swift similarity index 100% rename from station/Resources/Assets/RuuviAssets.swift rename to Apps/RuuviStation/Sources/Resources/Assets/RuuviAssets.swift diff --git a/ruuvi-widgets/Assets.xcassets/Colors/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/Contents.json similarity index 100% rename from ruuvi-widgets/Assets.xcassets/Colors/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviDashboardBG.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviDashboardBG.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviDashboardBG.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviDashboardBG.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviDashboardCardBG.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviDashboardCardBG.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviDashboardCardBG.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviDashboardCardBG.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviDashboardIndicator.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviDashboardIndicator.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviDashboardIndicator.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviDashboardIndicator.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviDashboardIndicatorBig.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviDashboardIndicatorBig.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviDashboardIndicatorBig.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviDashboardIndicatorBig.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviDustyBlue.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviDustyBlue.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviDustyBlue.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviDustyBlue.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviGraphBGColor.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviGraphBGColor.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviGraphBGColor.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviGraphBGColor.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviGraphFillColor.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviGraphFillColor.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviGraphFillColor.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviGraphFillColor.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviGraphLineColor.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviGraphLineColor.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviGraphLineColor.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviGraphLineColor.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviGraphMarkerColor.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviGraphMarkerColor.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviGraphMarkerColor.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviGraphMarkerColor.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviGreen.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviGreen.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviGreen.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviGreen.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviLineColor.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviLineColor.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviLineColor.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviLineColor.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviLogoTintColor.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviLogoTintColor.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviLogoTintColor.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviLogoTintColor.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviMenuTextColor.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviMenuTextColor.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviMenuTextColor.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviMenuTextColor.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviMenuTintColor.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviMenuTintColor.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviMenuTintColor.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviMenuTintColor.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviOrangeColor.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviOrangeColor.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviOrangeColor.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviOrangeColor.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviPrimary.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviPrimary.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviPrimary.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviPrimary.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviPurple.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviPurple.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviPurple.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviPurple.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviSecondary.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviSecondary.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviSecondary.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviSecondary.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviSwitchDisabledThumbTint.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviSwitchDisabledThumbTint.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviSwitchDisabledThumbTint.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviSwitchDisabledThumbTint.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviSwitchDisabledTint.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviSwitchDisabledTint.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviSwitchDisabledTint.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviSwitchDisabledTint.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviSwitchEnabledTint.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviSwitchEnabledTint.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviSwitchEnabledTint.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviSwitchEnabledTint.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviTextColor.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviTextColor.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviTextColor.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviTextColor.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/RuuviTintColor.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviTintColor.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/RuuviTintColor.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/RuuviTintColor.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/TagSettingsItemHeaderColor.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/TagSettingsItemHeaderColor.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/TagSettingsItemHeaderColor.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/TagSettingsItemHeaderColor.colorset/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/TagSettingsSectionHeaderColor.colorset/Contents.json b/Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/TagSettingsSectionHeaderColor.colorset/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/TagSettingsSectionHeaderColor.colorset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Colors/Colors.xcassets/TagSettingsSectionHeaderColor.colorset/Contents.json diff --git a/ruuvi-widgets/Resources/Fonts/Montserrat-Bold.ttf b/Apps/RuuviStation/Sources/Resources/Fonts/Montserrat-Bold.ttf similarity index 100% rename from ruuvi-widgets/Resources/Fonts/Montserrat-Bold.ttf rename to Apps/RuuviStation/Sources/Resources/Fonts/Montserrat-Bold.ttf diff --git a/station/Resources/Fonts/Montserrat-ExtraBold.ttf b/Apps/RuuviStation/Sources/Resources/Fonts/Montserrat-ExtraBold.ttf similarity index 100% rename from station/Resources/Fonts/Montserrat-ExtraBold.ttf rename to Apps/RuuviStation/Sources/Resources/Fonts/Montserrat-ExtraBold.ttf diff --git a/ruuvi-widgets/Resources/Fonts/Montserrat-Regular.ttf b/Apps/RuuviStation/Sources/Resources/Fonts/Montserrat-Regular.ttf similarity index 100% rename from ruuvi-widgets/Resources/Fonts/Montserrat-Regular.ttf rename to Apps/RuuviStation/Sources/Resources/Fonts/Montserrat-Regular.ttf diff --git a/ruuvi-widgets/Resources/Fonts/Muli-Bold.ttf b/Apps/RuuviStation/Sources/Resources/Fonts/Muli-Bold.ttf similarity index 100% rename from ruuvi-widgets/Resources/Fonts/Muli-Bold.ttf rename to Apps/RuuviStation/Sources/Resources/Fonts/Muli-Bold.ttf diff --git a/station/Resources/Fonts/Muli-ExtraBold.ttf b/Apps/RuuviStation/Sources/Resources/Fonts/Muli-ExtraBold.ttf similarity index 100% rename from station/Resources/Fonts/Muli-ExtraBold.ttf rename to Apps/RuuviStation/Sources/Resources/Fonts/Muli-ExtraBold.ttf diff --git a/ruuvi-widgets/Resources/Fonts/Muli-Regular.ttf b/Apps/RuuviStation/Sources/Resources/Fonts/Muli-Regular.ttf similarity index 100% rename from ruuvi-widgets/Resources/Fonts/Muli-Regular.ttf rename to Apps/RuuviStation/Sources/Resources/Fonts/Muli-Regular.ttf diff --git a/station/Resources/Fonts/Muli-SemiBoldItalic.ttf b/Apps/RuuviStation/Sources/Resources/Fonts/Muli-SemiBoldItalic.ttf similarity index 100% rename from station/Resources/Fonts/Muli-SemiBoldItalic.ttf rename to Apps/RuuviStation/Sources/Resources/Fonts/Muli-SemiBoldItalic.ttf diff --git a/ruuvi-widgets/Resources/Fonts/Oswald-Bold.ttf b/Apps/RuuviStation/Sources/Resources/Fonts/Oswald-Bold.ttf similarity index 100% rename from ruuvi-widgets/Resources/Fonts/Oswald-Bold.ttf rename to Apps/RuuviStation/Sources/Resources/Fonts/Oswald-Bold.ttf diff --git a/ruuvi-widgets/Resources/Fonts/Oswald-ExtraLight.ttf b/Apps/RuuviStation/Sources/Resources/Fonts/Oswald-ExtraLight.ttf similarity index 100% rename from ruuvi-widgets/Resources/Fonts/Oswald-ExtraLight.ttf rename to Apps/RuuviStation/Sources/Resources/Fonts/Oswald-ExtraLight.ttf diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-20.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-20.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-20.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-20.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-20@2x-1.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-20@2x-1.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-20@2x-1.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-20@2x-1.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-20@2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-20@2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-20@2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-20@2x.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-20@3x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-20@3x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-20@3x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-20@3x.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-29.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-29.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-29.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-29.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-29@2x-1.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-29@2x-1.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-29@2x-1.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-29@2x-1.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-40.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-40.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-40.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-40.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-40@2x-1.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-40@2x-1.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-40@2x-1.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-40@2x-1.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-76.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-76.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-76.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-76.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png diff --git a/station/Resources/Images/Assets.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png diff --git a/ruuvi-widgets/Assets.xcassets/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Contents.json similarity index 100% rename from ruuvi-widgets/Assets.xcassets/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Contents.json diff --git a/station/Resources/Colors/Colors.xcassets/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/Contents.json similarity index 100% rename from station/Resources/Colors/Colors.xcassets/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg1.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg1.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg1.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg1.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg1.imageset/bg1.jpg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg1.imageset/bg1.jpg similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg1.imageset/bg1.jpg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg1.imageset/bg1.jpg diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg10.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg10.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg10.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg10.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg10.imageset/new_bg5.jpeg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg10.imageset/new_bg5.jpeg similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg10.imageset/new_bg5.jpeg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg10.imageset/new_bg5.jpeg diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg11.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg11.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg11.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg11.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg11.imageset/new_bg6.jpeg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg11.imageset/new_bg6.jpeg similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg11.imageset/new_bg6.jpeg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg11.imageset/new_bg6.jpeg diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg12.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg12.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg12.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg12.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg12.imageset/new_bg7.jpeg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg12.imageset/new_bg7.jpeg similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg12.imageset/new_bg7.jpeg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg12.imageset/new_bg7.jpeg diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg13.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg13.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg13.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg13.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg13.imageset/new_bg8.jpeg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg13.imageset/new_bg8.jpeg similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg13.imageset/new_bg8.jpeg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg13.imageset/new_bg8.jpeg diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg14.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg14.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg14.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg14.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg14.imageset/new_bg9.jpeg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg14.imageset/new_bg9.jpeg similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg14.imageset/new_bg9.jpeg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg14.imageset/new_bg9.jpeg diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg15.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg15.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg15.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg15.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg15.imageset/new_bg10.jpeg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg15.imageset/new_bg10.jpeg similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg15.imageset/new_bg10.jpeg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg15.imageset/new_bg10.jpeg diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg16.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg16.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg16.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg16.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg16.imageset/new_bg2.jpg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg16.imageset/new_bg2.jpg similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg16.imageset/new_bg2.jpg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg16.imageset/new_bg2.jpg diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg2.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg2.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg2.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg2.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg2.imageset/bg2.jpg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg2.imageset/bg2.jpg similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg2.imageset/bg2.jpg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg2.imageset/bg2.jpg diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg3.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg3.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg3.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg3.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg3.imageset/bg3.jpg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg3.imageset/bg3.jpg similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg3.imageset/bg3.jpg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg3.imageset/bg3.jpg diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg4.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg4.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg4.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg4.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg4.imageset/bg4.jpg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg4.imageset/bg4.jpg similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg4.imageset/bg4.jpg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg4.imageset/bg4.jpg diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg5.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg5.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg5.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg5.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg5.imageset/bg5.jpg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg5.imageset/bg5.jpg similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg5.imageset/bg5.jpg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg5.imageset/bg5.jpg diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg6.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg6.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg6.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg6.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg6.imageset/bg6.jpg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg6.imageset/bg6.jpg similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg6.imageset/bg6.jpg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg6.imageset/bg6.jpg diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg7.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg7.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg7.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg7.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg7.imageset/bg7.jpg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg7.imageset/bg7.jpg similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg7.imageset/bg7.jpg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg7.imageset/bg7.jpg diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg8.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg8.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg8.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg8.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg8.imageset/bg8.jpg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg8.imageset/bg8.jpg similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg8.imageset/bg8.jpg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg8.imageset/bg8.jpg diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg9.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg9.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg9.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg9.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/bg9.imageset/bg9.jpg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg9.imageset/bg9.jpg similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/bg9.imageset/bg9.jpg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/Default Backgrounds/bg9.imageset/bg9.jpg diff --git a/station/Resources/Images/Assets.xcassets/arrow_drop_down.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/arrow_drop_down.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/arrow_drop_down.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/arrow_drop_down.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/arrow_drop_down.imageset/arrow_drop_down.svg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/arrow_drop_down.imageset/arrow_drop_down.svg similarity index 100% rename from station/Resources/Images/Assets.xcassets/arrow_drop_down.imageset/arrow_drop_down.svg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/arrow_drop_down.imageset/arrow_drop_down.svg diff --git a/station/Resources/Images/Assets.xcassets/baseline_keyboard_backspace_white_48pt.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_keyboard_backspace_white_48pt.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/baseline_keyboard_backspace_white_48pt.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_keyboard_backspace_white_48pt.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/baseline_keyboard_backspace_white_48pt.imageset/baseline_keyboard_backspace_white_48pt_1x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_keyboard_backspace_white_48pt.imageset/baseline_keyboard_backspace_white_48pt_1x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/baseline_keyboard_backspace_white_48pt.imageset/baseline_keyboard_backspace_white_48pt_1x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_keyboard_backspace_white_48pt.imageset/baseline_keyboard_backspace_white_48pt_1x.png diff --git a/station/Resources/Images/Assets.xcassets/baseline_keyboard_backspace_white_48pt.imageset/baseline_keyboard_backspace_white_48pt_2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_keyboard_backspace_white_48pt.imageset/baseline_keyboard_backspace_white_48pt_2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/baseline_keyboard_backspace_white_48pt.imageset/baseline_keyboard_backspace_white_48pt_2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_keyboard_backspace_white_48pt.imageset/baseline_keyboard_backspace_white_48pt_2x.png diff --git a/station/Resources/Images/Assets.xcassets/baseline_keyboard_backspace_white_48pt.imageset/baseline_keyboard_backspace_white_48pt_3x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_keyboard_backspace_white_48pt.imageset/baseline_keyboard_backspace_white_48pt_3x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/baseline_keyboard_backspace_white_48pt.imageset/baseline_keyboard_backspace_white_48pt_3x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_keyboard_backspace_white_48pt.imageset/baseline_keyboard_backspace_white_48pt_3x.png diff --git a/station/Resources/Images/Assets.xcassets/baseline_menu_white_48pt.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_menu_white_48pt.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/baseline_menu_white_48pt.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_menu_white_48pt.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/baseline_menu_white_48pt.imageset/baseline_menu_white_48pt_1x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_menu_white_48pt.imageset/baseline_menu_white_48pt_1x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/baseline_menu_white_48pt.imageset/baseline_menu_white_48pt_1x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_menu_white_48pt.imageset/baseline_menu_white_48pt_1x.png diff --git a/station/Resources/Images/Assets.xcassets/baseline_menu_white_48pt.imageset/baseline_menu_white_48pt_2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_menu_white_48pt.imageset/baseline_menu_white_48pt_2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/baseline_menu_white_48pt.imageset/baseline_menu_white_48pt_2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_menu_white_48pt.imageset/baseline_menu_white_48pt_2x.png diff --git a/station/Resources/Images/Assets.xcassets/baseline_menu_white_48pt.imageset/baseline_menu_white_48pt_3x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_menu_white_48pt.imageset/baseline_menu_white_48pt_3x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/baseline_menu_white_48pt.imageset/baseline_menu_white_48pt_3x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_menu_white_48pt.imageset/baseline_menu_white_48pt_3x.png diff --git a/station/Resources/Images/Assets.xcassets/baseline_settings_white_48pt.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_settings_white_48pt.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/baseline_settings_white_48pt.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_settings_white_48pt.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/baseline_settings_white_48pt.imageset/baseline_settings_white_48pt_1x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_settings_white_48pt.imageset/baseline_settings_white_48pt_1x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/baseline_settings_white_48pt.imageset/baseline_settings_white_48pt_1x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_settings_white_48pt.imageset/baseline_settings_white_48pt_1x.png diff --git a/station/Resources/Images/Assets.xcassets/baseline_settings_white_48pt.imageset/baseline_settings_white_48pt_2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_settings_white_48pt.imageset/baseline_settings_white_48pt_2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/baseline_settings_white_48pt.imageset/baseline_settings_white_48pt_2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_settings_white_48pt.imageset/baseline_settings_white_48pt_2x.png diff --git a/station/Resources/Images/Assets.xcassets/baseline_settings_white_48pt.imageset/baseline_settings_white_48pt_3x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_settings_white_48pt.imageset/baseline_settings_white_48pt_3x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/baseline_settings_white_48pt.imageset/baseline_settings_white_48pt_3x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/baseline_settings_white_48pt.imageset/baseline_settings_white_48pt_3x.png diff --git a/station/Resources/Images/Assets.xcassets/beaver-mail.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/beaver-mail.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/beaver-mail.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/beaver-mail.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/beaver-mail.imageset/beaver-mail.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/beaver-mail.imageset/beaver-mail.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/beaver-mail.imageset/beaver-mail.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/beaver-mail.imageset/beaver-mail.png diff --git a/station/Resources/Images/Assets.xcassets/bluetooth-connected.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/bluetooth-connected.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/bluetooth-connected.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/bluetooth-connected.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/bluetooth-connected.imageset/bluetooth_connected-24px.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/bluetooth-connected.imageset/bluetooth_connected-24px.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/bluetooth-connected.imageset/bluetooth_connected-24px.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/bluetooth-connected.imageset/bluetooth_connected-24px.pdf diff --git a/station/Resources/Images/Assets.xcassets/bluetooth_disabled_icon.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/bluetooth_disabled_icon.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/bluetooth_disabled_icon.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/bluetooth_disabled_icon.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/bluetooth_disabled_icon.imageset/bluetooth_disabled_black_108x108.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/bluetooth_disabled_icon.imageset/bluetooth_disabled_black_108x108.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/bluetooth_disabled_icon.imageset/bluetooth_disabled_black_108x108.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/bluetooth_disabled_icon.imageset/bluetooth_disabled_black_108x108.png diff --git a/station/Resources/Images/Assets.xcassets/bluetooth_icon.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/bluetooth_icon.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/bluetooth_icon.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/bluetooth_icon.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/bluetooth_icon.imageset/bluetooth_white_108x108.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/bluetooth_icon.imageset/bluetooth_white_108x108.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/bluetooth_icon.imageset/bluetooth_white_108x108.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/bluetooth_icon.imageset/bluetooth_white_108x108.png diff --git a/station/Resources/Images/Assets.xcassets/checkmark_icon.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/checkmark_icon.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/checkmark_icon.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/checkmark_icon.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/checkmark_icon.imageset/baseline_check_circle_outline_black_18dp.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/checkmark_icon.imageset/baseline_check_circle_outline_black_18dp.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/checkmark_icon.imageset/baseline_check_circle_outline_black_18dp.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/checkmark_icon.imageset/baseline_check_circle_outline_black_18dp.png diff --git a/station/Resources/Images/Assets.xcassets/chevron.down.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/chevron.down.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/chevron.down.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/chevron.down.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/chevron.down.imageset/chevron.down.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/chevron.down.imageset/chevron.down.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/chevron.down.imageset/chevron.down.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/chevron.down.imageset/chevron.down.pdf diff --git a/station/Resources/Images/Assets.xcassets/chevron.up.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/chevron.up.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/chevron.up.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/chevron.up.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/chevron.up.imageset/chevron.up.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/chevron.up.imageset/chevron.up.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/chevron.up.imageset/chevron.up.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/chevron.up.imageset/chevron.up.pdf diff --git a/station/Resources/Images/Assets.xcassets/chevron_back.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/chevron_back.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/chevron_back.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/chevron_back.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/chevron_back.imageset/chevron_back.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/chevron_back.imageset/chevron_back.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/chevron_back.imageset/chevron_back.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/chevron_back.imageset/chevron_back.png diff --git a/station/Resources/Images/Assets.xcassets/chevron_back.imageset/chevron_back@2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/chevron_back.imageset/chevron_back@2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/chevron_back.imageset/chevron_back@2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/chevron_back.imageset/chevron_back@2x.png diff --git a/station/Resources/Images/Assets.xcassets/chevron_back.imageset/chevron_back@3x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/chevron_back.imageset/chevron_back@3x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/chevron_back.imageset/chevron_back@3x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/chevron_back.imageset/chevron_back@3x.png diff --git a/station/Resources/Images/Assets.xcassets/dismiss-modal-icon.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/dismiss-modal-icon.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/dismiss-modal-icon.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/dismiss-modal-icon.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/dismiss-modal-icon.imageset/down.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/dismiss-modal-icon.imageset/down.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/dismiss-modal-icon.imageset/down.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/dismiss-modal-icon.imageset/down.png diff --git a/station/Resources/Images/Assets.xcassets/dismiss-modal-icon.imageset/down@2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/dismiss-modal-icon.imageset/down@2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/dismiss-modal-icon.imageset/down@2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/dismiss-modal-icon.imageset/down@2x.png diff --git a/station/Resources/Images/Assets.xcassets/dismiss-modal-icon.imageset/down@3x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/dismiss-modal-icon.imageset/down@3x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/dismiss-modal-icon.imageset/down@3x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/dismiss-modal-icon.imageset/down@3x.png diff --git a/station/Resources/Images/Assets.xcassets/edit_pen.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/edit_pen.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/edit_pen.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/edit_pen.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/edit_pen.imageset/edit_pen.svg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/edit_pen.imageset/edit_pen.svg similarity index 100% rename from station/Resources/Images/Assets.xcassets/edit_pen.imageset/edit_pen.svg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/edit_pen.imageset/edit_pen.svg diff --git a/station/Resources/Images/Assets.xcassets/eye_circle.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/eye_circle.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/eye_circle.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/eye_circle.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/eye_circle.imageset/eye_circle.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/eye_circle.imageset/eye_circle.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/eye_circle.imageset/eye_circle.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/eye_circle.imageset/eye_circle.png diff --git a/station/Resources/Images/Assets.xcassets/gesture-assistant-hand.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/gesture-assistant-hand.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/gesture-assistant-hand.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/gesture-assistant-hand.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/gesture-assistant-hand.imageset/hand.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/gesture-assistant-hand.imageset/hand.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/gesture-assistant-hand.imageset/hand.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/gesture-assistant-hand.imageset/hand.pdf diff --git a/station/Resources/Images/Assets.xcassets/gradient_layer.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/gradient_layer.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/gradient_layer.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/gradient_layer.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/gradient_layer.imageset/gradient_layer.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/gradient_layer.imageset/gradient_layer.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/gradient_layer.imageset/gradient_layer.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/gradient_layer.imageset/gradient_layer.png diff --git a/station/Resources/Images/Assets.xcassets/ic_refresh.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ic_refresh.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/ic_refresh.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ic_refresh.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/ic_refresh.imageset/ic_refresh_24px.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ic_refresh.imageset/ic_refresh_24px.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/ic_refresh.imageset/ic_refresh_24px.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ic_refresh.imageset/ic_refresh_24px.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon-alert-active.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-alert-active.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-alert-active.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-alert-active.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-alert-active.imageset/active.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-alert-active.imageset/active.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-alert-active.imageset/active.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-alert-active.imageset/active.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon-alert-off.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-alert-off.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-alert-off.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-alert-off.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-alert-off.imageset/alert-off.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-alert-off.imageset/alert-off.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-alert-off.imageset/alert-off.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-alert-off.imageset/alert-off.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon-alert-on.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-alert-on.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-alert-on.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-alert-on.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-alert-on.imageset/alert-on.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-alert-on.imageset/alert-on.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-alert-on.imageset/alert-on.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-alert-on.imageset/alert-on.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon-bg-camera.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-bg-camera.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-bg-camera.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-bg-camera.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-bg-camera.imageset/icon-bg-camera-1.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-bg-camera.imageset/icon-bg-camera-1.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-bg-camera.imageset/icon-bg-camera-1.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-bg-camera.imageset/icon-bg-camera-1.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon-bluetooth-connected.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-bluetooth-connected.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-bluetooth-connected.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-bluetooth-connected.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-bluetooth-connected.imageset/icon-bluetooth-connected.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-bluetooth-connected.imageset/icon-bluetooth-connected.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-bluetooth-connected.imageset/icon-bluetooth-connected.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-bluetooth-connected.imageset/icon-bluetooth-connected.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon-bluetooth.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-bluetooth.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-bluetooth.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-bluetooth.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-bluetooth.imageset/icon-bluetooth.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-bluetooth.imageset/icon-bluetooth.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-bluetooth.imageset/icon-bluetooth.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-bluetooth.imageset/icon-bluetooth.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon-cards-button.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-cards-button.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-cards-button.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-cards-button.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-cards-button.imageset/vector.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-cards-button.imageset/vector.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-cards-button.imageset/vector.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-cards-button.imageset/vector.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon-charts-button.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-charts-button.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-charts-button.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-charts-button.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-charts-button.imageset/vector-3.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-charts-button.imageset/vector-3.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-charts-button.imageset/vector-3.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-charts-button.imageset/vector-3.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon-connectable.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connectable.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-connectable.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connectable.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-connectable.imageset/icons8-connected-1.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connectable.imageset/icons8-connected-1.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-connectable.imageset/icons8-connected-1.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connectable.imageset/icons8-connected-1.png diff --git a/station/Resources/Images/Assets.xcassets/icon-connectable.imageset/icons8-connected-2.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connectable.imageset/icons8-connected-2.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-connectable.imageset/icons8-connected-2.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connectable.imageset/icons8-connected-2.png diff --git a/station/Resources/Images/Assets.xcassets/icon-connectable.imageset/icons8-connected.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connectable.imageset/icons8-connected.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-connectable.imageset/icons8-connected.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connectable.imageset/icons8-connected.png diff --git a/station/Resources/Images/Assets.xcassets/icon-connection-1.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connection-1.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-connection-1.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connection-1.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-connection-1.imageset/icon-connection-1.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connection-1.imageset/icon-connection-1.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-connection-1.imageset/icon-connection-1.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connection-1.imageset/icon-connection-1.png diff --git a/station/Resources/Images/Assets.xcassets/icon-connection-2.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connection-2.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-connection-2.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connection-2.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-connection-2.imageset/icon-connection-2.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connection-2.imageset/icon-connection-2.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-connection-2.imageset/icon-connection-2.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connection-2.imageset/icon-connection-2.png diff --git a/station/Resources/Images/Assets.xcassets/icon-connection-3.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connection-3.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-connection-3.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connection-3.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-connection-3.imageset/icon-connection-3.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connection-3.imageset/icon-connection-3.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-connection-3.imageset/icon-connection-3.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-connection-3.imageset/icon-connection-3.png diff --git a/station/Resources/Images/Assets.xcassets/icon-delete-forever.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-delete-forever.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-delete-forever.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-delete-forever.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-delete-forever.imageset/delete_forever_48px.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-delete-forever.imageset/delete_forever_48px.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-delete-forever.imageset/delete_forever_48px.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-delete-forever.imageset/delete_forever_48px.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon-download.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-download.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-download.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-download.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-download.imageset/download.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-download.imageset/download.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-download.imageset/download.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-download.imageset/download.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon-gateway.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-gateway.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-gateway.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-gateway.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-gateway.imageset/icon-gateway.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-gateway.imageset/icon-gateway.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-gateway.imageset/icon-gateway.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-gateway.imageset/icon-gateway.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon-measure-humidity.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-humidity.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-measure-humidity.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-humidity.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-measure-humidity.imageset/icon-measure-humidity.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-humidity.imageset/icon-measure-humidity.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-measure-humidity.imageset/icon-measure-humidity.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-humidity.imageset/icon-measure-humidity.png diff --git a/station/Resources/Images/Assets.xcassets/icon-measure-location.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-location.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-measure-location.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-location.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-measure-location.imageset/icon-measure.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-location.imageset/icon-measure.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-measure-location.imageset/icon-measure.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-location.imageset/icon-measure.png diff --git a/station/Resources/Images/Assets.xcassets/icon-measure-location.imageset/icon-measure@2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-location.imageset/icon-measure@2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-measure-location.imageset/icon-measure@2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-location.imageset/icon-measure@2x.png diff --git a/station/Resources/Images/Assets.xcassets/icon-measure-location.imageset/icon_measure@3x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-location.imageset/icon_measure@3x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-measure-location.imageset/icon_measure@3x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-location.imageset/icon_measure@3x.png diff --git a/station/Resources/Images/Assets.xcassets/icon-measure-movement.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-movement.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-measure-movement.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-movement.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-measure-movement.imageset/icon-measure-movement.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-movement.imageset/icon-measure-movement.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-measure-movement.imageset/icon-measure-movement.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-movement.imageset/icon-measure-movement.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon-measure-pressure.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-pressure.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-measure-pressure.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-pressure.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-measure-pressure.imageset/icon-measure-pressure.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-pressure.imageset/icon-measure-pressure.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-measure-pressure.imageset/icon-measure-pressure.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-pressure.imageset/icon-measure-pressure.png diff --git a/station/Resources/Images/Assets.xcassets/icon-measure-signal.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-signal.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-measure-signal.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-signal.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-measure-signal.imageset/icon-measure-signal.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-signal.imageset/icon-measure-signal.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-measure-signal.imageset/icon-measure-signal.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-measure-signal.imageset/icon-measure-signal.png diff --git a/station/Resources/Images/Assets.xcassets/icon-refresh.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-refresh.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-refresh.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-refresh.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-refresh.imageset/sync_48px.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-refresh.imageset/sync_48px.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-refresh.imageset/sync_48px.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-refresh.imageset/sync_48px.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon-warning.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-warning.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-warning.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-warning.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-warning.imageset/warning-sign.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-warning.imageset/warning-sign.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-warning.imageset/warning-sign.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-warning.imageset/warning-sign.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon-weatherstation.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-weatherstation.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-weatherstation.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-weatherstation.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon-weatherstation.imageset/icon-weatherstation.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-weatherstation.imageset/icon-weatherstation.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon-weatherstation.imageset/icon-weatherstation.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon-weatherstation.imageset/icon-weatherstation.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon_back_arrow.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon_back_arrow.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon_back_arrow.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon_back_arrow.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon_back_arrow.imageset/icons8-back.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon_back_arrow.imageset/icons8-back.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon_back_arrow.imageset/icons8-back.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon_back_arrow.imageset/icons8-back.pdf diff --git a/station/Resources/Images/Assets.xcassets/icon_sync_bt.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon_sync_bt.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon_sync_bt.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon_sync_bt.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/icon_sync_bt.imageset/icon_sync_bt.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon_sync_bt.imageset/icon_sync_bt.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/icon_sync_bt.imageset/icon_sync_bt.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/icon_sync_bt.imageset/icon_sync_bt.png diff --git a/station/Resources/Images/Assets.xcassets/iphone_icon.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/iphone_icon.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/iphone_icon.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/iphone_icon.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/iphone_icon.imageset/phone_black.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/iphone_icon.imageset/phone_black.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/iphone_icon.imageset/phone_black.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/iphone_icon.imageset/phone_black.png diff --git a/station/Resources/Images/Assets.xcassets/location-picker-pin-icon.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/location-picker-pin-icon.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/location-picker-pin-icon.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/location-picker-pin-icon.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/location-picker-pin-icon.imageset/location-picker-pin-icon.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/location-picker-pin-icon.imageset/location-picker-pin-icon.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/location-picker-pin-icon.imageset/location-picker-pin-icon.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/location-picker-pin-icon.imageset/location-picker-pin-icon.png diff --git a/station/Resources/Images/Assets.xcassets/location-picker-pin-icon.imageset/location-picker-pin-icon@2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/location-picker-pin-icon.imageset/location-picker-pin-icon@2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/location-picker-pin-icon.imageset/location-picker-pin-icon@2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/location-picker-pin-icon.imageset/location-picker-pin-icon@2x.png diff --git a/station/Resources/Images/Assets.xcassets/location-picker-pin-icon.imageset/location-picker-pin-icon@3x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/location-picker-pin-icon.imageset/location-picker-pin-icon@3x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/location-picker-pin-icon.imageset/location-picker-pin-icon@3x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/location-picker-pin-icon.imageset/location-picker-pin-icon@3x.png diff --git a/station/Resources/Images/Assets.xcassets/more_3dot.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/more_3dot.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/more_3dot.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/more_3dot.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/more_3dot.imageset/more_3dot.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/more_3dot.imageset/more_3dot.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/more_3dot.imageset/more_3dot.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/more_3dot.imageset/more_3dot.pdf diff --git a/station/Resources/Images/Assets.xcassets/no-image.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/no-image.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/no-image.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/no-image.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/no-image.imageset/icons8-no_image.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/no-image.imageset/icons8-no_image.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/no-image.imageset/icons8-no_image.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/no-image.imageset/icons8-no_image.pdf diff --git a/station/Resources/Images/Assets.xcassets/plus_icon.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/plus_icon.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/plus_icon.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/plus_icon.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/plus_icon.imageset/icons8-plus-math-filled-100.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/plus_icon.imageset/icons8-plus-math-filled-100.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/plus_icon.imageset/icons8-plus-math-filled-100.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/plus_icon.imageset/icons8-plus-math-filled-100.png diff --git a/station/Resources/Images/Assets.xcassets/ruuvi_logo_.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ruuvi_logo_.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/ruuvi_logo_.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ruuvi_logo_.imageset/Contents.json diff --git a/ruuvi-widgets/Assets.xcassets/ruuvi_logo.imageset/ruuvi_logo.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ruuvi_logo_.imageset/ruuvi_logo.png similarity index 100% rename from ruuvi-widgets/Assets.xcassets/ruuvi_logo.imageset/ruuvi_logo.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ruuvi_logo_.imageset/ruuvi_logo.png diff --git a/station/Resources/Images/Assets.xcassets/ruuvi_logo_dark_bg_pdf.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ruuvi_logo_dark_bg_pdf.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/ruuvi_logo_dark_bg_pdf.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ruuvi_logo_dark_bg_pdf.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/ruuvi_logo_dark_bg_pdf.imageset/web-ruuvi-eye-nega.pdf b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ruuvi_logo_dark_bg_pdf.imageset/web-ruuvi-eye-nega.pdf similarity index 100% rename from station/Resources/Images/Assets.xcassets/ruuvi_logo_dark_bg_pdf.imageset/web-ruuvi-eye-nega.pdf rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ruuvi_logo_dark_bg_pdf.imageset/web-ruuvi-eye-nega.pdf diff --git a/station/Resources/Images/Assets.xcassets/ruuvi_station.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ruuvi_station.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/ruuvi_station.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ruuvi_station.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/ruuvi_station.imageset/ruuvi_station.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ruuvi_station.imageset/ruuvi_station.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/ruuvi_station.imageset/ruuvi_station.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ruuvi_station.imageset/ruuvi_station.png diff --git a/station/Resources/Images/Assets.xcassets/ruuvi_station.imageset/ruuvi_station_2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ruuvi_station.imageset/ruuvi_station_2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/ruuvi_station.imageset/ruuvi_station_2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ruuvi_station.imageset/ruuvi_station_2x.png diff --git a/station/Resources/Images/Assets.xcassets/ruuvi_station.imageset/ruuvi_station_3x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ruuvi_station.imageset/ruuvi_station_3x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/ruuvi_station.imageset/ruuvi_station_3x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/ruuvi_station.imageset/ruuvi_station_3x.png diff --git a/station/Resources/Images/Assets.xcassets/sign_in_bg_layer.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/sign_in_bg_layer.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/sign_in_bg_layer.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/sign_in_bg_layer.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/sign_in_bg_layer.imageset/bg_layer_dark.jpg b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/sign_in_bg_layer.imageset/bg_layer_dark.jpg similarity index 100% rename from station/Resources/Images/Assets.xcassets/sign_in_bg_layer.imageset/bg_layer_dark.jpg rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/sign_in_bg_layer.imageset/bg_layer_dark.jpg diff --git a/station/Resources/Images/Assets.xcassets/small-cross-clear-icon.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/small-cross-clear-icon.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/small-cross-clear-icon.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/small-cross-clear-icon.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/small-cross-clear-icon.imageset/baseline_clear_black_36pt_1x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/small-cross-clear-icon.imageset/baseline_clear_black_36pt_1x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/small-cross-clear-icon.imageset/baseline_clear_black_36pt_1x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/small-cross-clear-icon.imageset/baseline_clear_black_36pt_1x.png diff --git a/station/Resources/Images/Assets.xcassets/small-cross-clear-icon.imageset/baseline_clear_black_36pt_2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/small-cross-clear-icon.imageset/baseline_clear_black_36pt_2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/small-cross-clear-icon.imageset/baseline_clear_black_36pt_2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/small-cross-clear-icon.imageset/baseline_clear_black_36pt_2x.png diff --git a/station/Resources/Images/Assets.xcassets/small-cross-clear-icon.imageset/baseline_clear_black_36pt_3x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/small-cross-clear-icon.imageset/baseline_clear_black_36pt_3x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/small-cross-clear-icon.imageset/baseline_clear_black_36pt_3x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/small-cross-clear-icon.imageset/baseline_clear_black_36pt_3x.png diff --git a/station/Resources/Images/Assets.xcassets/tag-settings-info-icon.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/tag-settings-info-icon.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/tag-settings-info-icon.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/tag-settings-info-icon.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/tag-settings-info-icon.imageset/info_icon.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/tag-settings-info-icon.imageset/info_icon.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/tag-settings-info-icon.imageset/info_icon.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/tag-settings-info-icon.imageset/info_icon.png diff --git a/station/Resources/Images/Assets.xcassets/tag_bg_layer.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/tag_bg_layer.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/tag_bg_layer.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/tag_bg_layer.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/tag_bg_layer.imageset/tag_bg_layer.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/tag_bg_layer.imageset/tag_bg_layer.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/tag_bg_layer.imageset/tag_bg_layer.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/tag_bg_layer.imageset/tag_bg_layer.png diff --git a/station/Resources/Images/Assets.xcassets/welcome_friend.imageset/Contents.json b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/welcome_friend.imageset/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/welcome_friend.imageset/Contents.json rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/welcome_friend.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/welcome_friend.imageset/title-welcome1x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/welcome_friend.imageset/title-welcome1x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/welcome_friend.imageset/title-welcome1x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/welcome_friend.imageset/title-welcome1x.png diff --git a/station/Resources/Images/Assets.xcassets/welcome_friend.imageset/title-welcome2x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/welcome_friend.imageset/title-welcome2x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/welcome_friend.imageset/title-welcome2x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/welcome_friend.imageset/title-welcome2x.png diff --git a/station/Resources/Images/Assets.xcassets/welcome_friend.imageset/title-welcome3x.png b/Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/welcome_friend.imageset/title-welcome3x.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/welcome_friend.imageset/title-welcome3x.png rename to Apps/RuuviStation/Sources/Resources/Images/Assets.xcassets/welcome_friend.imageset/title-welcome3x.png diff --git a/station/Resources/Images/ruuvi_logo_splash.png b/Apps/RuuviStation/Sources/Resources/Images/ruuvi_logo_splash.png similarity index 100% rename from station/Resources/Images/ruuvi_logo_splash.png rename to Apps/RuuviStation/Sources/Resources/Images/ruuvi_logo_splash.png diff --git a/station/Resources/Images/splash_bg_layer_dark.jpg b/Apps/RuuviStation/Sources/Resources/Images/splash_bg_layer_dark.jpg similarity index 100% rename from station/Resources/Images/splash_bg_layer_dark.jpg rename to Apps/RuuviStation/Sources/Resources/Images/splash_bg_layer_dark.jpg diff --git a/station/Resources/JSONs/FeatureToggles.json b/Apps/RuuviStation/Sources/Resources/JSONs/FeatureToggles.json similarity index 100% rename from station/Resources/JSONs/FeatureToggles.json rename to Apps/RuuviStation/Sources/Resources/JSONs/FeatureToggles.json diff --git a/station/Resources/Plists/GoogleService-Info.plist b/Apps/RuuviStation/Sources/Resources/Plists/GoogleService-Info.plist similarity index 100% rename from station/Resources/Plists/GoogleService-Info.plist rename to Apps/RuuviStation/Sources/Resources/Plists/GoogleService-Info.plist diff --git a/station/Resources/Plists/Networking.plist b/Apps/RuuviStation/Sources/Resources/Plists/Networking.plist similarity index 81% rename from station/Resources/Plists/Networking.plist rename to Apps/RuuviStation/Sources/Resources/Plists/Networking.plist index 42fcbc762..33a933d9b 100644 --- a/station/Resources/Plists/Networking.plist +++ b/Apps/RuuviStation/Sources/Resources/Plists/Networking.plist @@ -2,8 +2,6 @@ - OpenWeatherMapAPIKey - { set your API key here } RuuviCloudURL https://network.ruuvi.com RuuviCloudURLDev diff --git a/station/Resources/Plists/iOSDeviceModelMapping.plist b/Apps/RuuviStation/Sources/Resources/Plists/iOSDeviceModelMapping.plist similarity index 100% rename from station/Resources/Plists/iOSDeviceModelMapping.plist rename to Apps/RuuviStation/Sources/Resources/Plists/iOSDeviceModelMapping.plist diff --git a/station/Resources/Sounds/ruuvi_speak.caf b/Apps/RuuviStation/Sources/Resources/Sounds/ruuvi_speak.caf similarity index 100% rename from station/Resources/Sounds/ruuvi_speak.caf rename to Apps/RuuviStation/Sources/Resources/Sounds/ruuvi_speak.caf diff --git a/station/Resources/Strings/de.lproj/InfoPlist.strings b/Apps/RuuviStation/Sources/Resources/Strings/de.lproj/InfoPlist.strings similarity index 100% rename from station/Resources/Strings/de.lproj/InfoPlist.strings rename to Apps/RuuviStation/Sources/Resources/Strings/de.lproj/InfoPlist.strings diff --git a/station/Resources/Strings/en.lproj/InfoPlist.strings b/Apps/RuuviStation/Sources/Resources/Strings/en.lproj/InfoPlist.strings similarity index 100% rename from station/Resources/Strings/en.lproj/InfoPlist.strings rename to Apps/RuuviStation/Sources/Resources/Strings/en.lproj/InfoPlist.strings diff --git a/station/Resources/Strings/fi.lproj/InfoPlist.strings b/Apps/RuuviStation/Sources/Resources/Strings/fi.lproj/InfoPlist.strings similarity index 100% rename from station/Resources/Strings/fi.lproj/InfoPlist.strings rename to Apps/RuuviStation/Sources/Resources/Strings/fi.lproj/InfoPlist.strings diff --git a/station/Resources/Strings/fr.lproj/InfoPlist.strings b/Apps/RuuviStation/Sources/Resources/Strings/fr.lproj/InfoPlist.strings similarity index 100% rename from station/Resources/Strings/fr.lproj/InfoPlist.strings rename to Apps/RuuviStation/Sources/Resources/Strings/fr.lproj/InfoPlist.strings diff --git a/station/Resources/Strings/ru.lproj/InfoPlist.strings b/Apps/RuuviStation/Sources/Resources/Strings/ru.lproj/InfoPlist.strings similarity index 100% rename from station/Resources/Strings/ru.lproj/InfoPlist.strings rename to Apps/RuuviStation/Sources/Resources/Strings/ru.lproj/InfoPlist.strings diff --git a/station/Resources/Strings/sv.lproj/InfoPlist.strings b/Apps/RuuviStation/Sources/Resources/Strings/sv.lproj/InfoPlist.strings similarity index 100% rename from station/Resources/Strings/sv.lproj/InfoPlist.strings rename to Apps/RuuviStation/Sources/Resources/Strings/sv.lproj/InfoPlist.strings diff --git a/station/station.entitlements b/Apps/RuuviStation/Sources/Station.entitlements similarity index 100% rename from station/station.entitlements rename to Apps/RuuviStation/Sources/Station.entitlements diff --git a/stationTests/Extensions/XCTest+Extension.swift b/Apps/RuuviStation/Tests/Unit/Extensions/XCTest+Extension.swift similarity index 100% rename from stationTests/Extensions/XCTest+Extension.swift rename to Apps/RuuviStation/Tests/Unit/Extensions/XCTest+Extension.swift diff --git a/stationTests/Info.plist b/Apps/RuuviStation/Tests/Unit/Info.plist similarity index 100% rename from stationTests/Info.plist rename to Apps/RuuviStation/Tests/Unit/Info.plist diff --git a/stationTests/MockAlertPersistence.swift b/Apps/RuuviStation/Tests/Unit/MockAlertPersistence.swift similarity index 100% rename from stationTests/MockAlertPersistence.swift rename to Apps/RuuviStation/Tests/Unit/MockAlertPersistence.swift diff --git a/stationTests/MockAlertServiceObserver.swift b/Apps/RuuviStation/Tests/Unit/MockAlertServiceObserver.swift similarity index 100% rename from stationTests/MockAlertServiceObserver.swift rename to Apps/RuuviStation/Tests/Unit/MockAlertServiceObserver.swift diff --git a/stationTests/MockCalibrationService.swift b/Apps/RuuviStation/Tests/Unit/MockCalibrationService.swift similarity index 100% rename from stationTests/MockCalibrationService.swift rename to Apps/RuuviStation/Tests/Unit/MockCalibrationService.swift diff --git a/stationTests/MockLocalNotificationsManager.swift b/Apps/RuuviStation/Tests/Unit/MockLocalNotificationsManager.swift similarity index 100% rename from stationTests/MockLocalNotificationsManager.swift rename to Apps/RuuviStation/Tests/Unit/MockLocalNotificationsManager.swift diff --git a/stationTests/MockRuuviTag.swift b/Apps/RuuviStation/Tests/Unit/MockRuuviTag.swift similarity index 100% rename from stationTests/MockRuuviTag.swift rename to Apps/RuuviStation/Tests/Unit/MockRuuviTag.swift diff --git a/stationTests/Services/Alert/AlertServiceSpec.swift b/Apps/RuuviStation/Tests/Unit/Services/Alert/AlertServiceSpec.swift similarity index 100% rename from stationTests/Services/Alert/AlertServiceSpec.swift rename to Apps/RuuviStation/Tests/Unit/Services/Alert/AlertServiceSpec.swift diff --git a/stationTests/Services/MeasurementsService/MeasurementsServiceEnSpec.swift b/Apps/RuuviStation/Tests/Unit/Services/MeasurementsService/MeasurementsServiceEnSpec.swift similarity index 100% rename from stationTests/Services/MeasurementsService/MeasurementsServiceEnSpec.swift rename to Apps/RuuviStation/Tests/Unit/Services/MeasurementsService/MeasurementsServiceEnSpec.swift diff --git a/stationTests/Services/MeasurementsService/MeasurementsServiceFiSpec.swift b/Apps/RuuviStation/Tests/Unit/Services/MeasurementsService/MeasurementsServiceFiSpec.swift similarity index 100% rename from stationTests/Services/MeasurementsService/MeasurementsServiceFiSpec.swift rename to Apps/RuuviStation/Tests/Unit/Services/MeasurementsService/MeasurementsServiceFiSpec.swift diff --git a/stationTests/Services/MeasurementsService/MeasurementsServiceRuSpec.swift b/Apps/RuuviStation/Tests/Unit/Services/MeasurementsService/MeasurementsServiceRuSpec.swift similarity index 100% rename from stationTests/Services/MeasurementsService/MeasurementsServiceRuSpec.swift rename to Apps/RuuviStation/Tests/Unit/Services/MeasurementsService/MeasurementsServiceRuSpec.swift diff --git a/stationTests/Services/MeasurementsService/MeasurementsServiceSvSpec.swift b/Apps/RuuviStation/Tests/Unit/Services/MeasurementsService/MeasurementsServiceSvSpec.swift similarity index 100% rename from stationTests/Services/MeasurementsService/MeasurementsServiceSvSpec.swift rename to Apps/RuuviStation/Tests/Unit/Services/MeasurementsService/MeasurementsServiceSvSpec.swift diff --git a/stationTests/StationTests.swift b/Apps/RuuviStation/Tests/Unit/StationTests.swift similarity index 100% rename from stationTests/StationTests.swift rename to Apps/RuuviStation/Tests/Unit/StationTests.swift diff --git a/ruuvi-widgets/Info.plist b/Apps/RuuviStation/Widgets/Info.plist similarity index 100% rename from ruuvi-widgets/Info.plist rename to Apps/RuuviStation/Widgets/Info.plist diff --git a/ruuvi-widgets/Assembly/WidgetAssembly.swift b/Apps/RuuviStation/Widgets/Sources/Assembly/WidgetAssembly.swift similarity index 100% rename from ruuvi-widgets/Assembly/WidgetAssembly.swift rename to Apps/RuuviStation/Widgets/Sources/Assembly/WidgetAssembly.swift diff --git a/ruuvi-widgets/Assets.xcassets/AccentColor.colorset/Contents.json b/Apps/RuuviStation/Widgets/Sources/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from ruuvi-widgets/Assets.xcassets/AccentColor.colorset/Contents.json rename to Apps/RuuviStation/Widgets/Sources/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/ruuvi-widgets/Assets.xcassets/AppIcon.appiconset/Contents.json b/Apps/RuuviStation/Widgets/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from ruuvi-widgets/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Apps/RuuviStation/Widgets/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/ruuvi-widgets/Assets.xcassets/Colors/BackgroundColor.colorset/Contents.json b/Apps/RuuviStation/Widgets/Sources/Assets.xcassets/Colors/BackgroundColor.colorset/Contents.json similarity index 100% rename from ruuvi-widgets/Assets.xcassets/Colors/BackgroundColor.colorset/Contents.json rename to Apps/RuuviStation/Widgets/Sources/Assets.xcassets/Colors/BackgroundColor.colorset/Contents.json diff --git a/ruuvi-widgets/Assets.xcassets/Colors/BodyTextColor.colorset/Contents.json b/Apps/RuuviStation/Widgets/Sources/Assets.xcassets/Colors/BodyTextColor.colorset/Contents.json similarity index 100% rename from ruuvi-widgets/Assets.xcassets/Colors/BodyTextColor.colorset/Contents.json rename to Apps/RuuviStation/Widgets/Sources/Assets.xcassets/Colors/BodyTextColor.colorset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Contents.json b/Apps/RuuviStation/Widgets/Sources/Assets.xcassets/Colors/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Contents.json rename to Apps/RuuviStation/Widgets/Sources/Assets.xcassets/Colors/Contents.json diff --git a/ruuvi-widgets/Assets.xcassets/Colors/LogoColor.colorset/Contents.json b/Apps/RuuviStation/Widgets/Sources/Assets.xcassets/Colors/LogoColor.colorset/Contents.json similarity index 100% rename from ruuvi-widgets/Assets.xcassets/Colors/LogoColor.colorset/Contents.json rename to Apps/RuuviStation/Widgets/Sources/Assets.xcassets/Colors/LogoColor.colorset/Contents.json diff --git a/ruuvi-widgets/Assets.xcassets/Colors/SensorNameColor1.colorset/Contents.json b/Apps/RuuviStation/Widgets/Sources/Assets.xcassets/Colors/SensorNameColor1.colorset/Contents.json similarity index 100% rename from ruuvi-widgets/Assets.xcassets/Colors/SensorNameColor1.colorset/Contents.json rename to Apps/RuuviStation/Widgets/Sources/Assets.xcassets/Colors/SensorNameColor1.colorset/Contents.json diff --git a/ruuvi-widgets/Assets.xcassets/Colors/SensorNameColor2.colorset/Contents.json b/Apps/RuuviStation/Widgets/Sources/Assets.xcassets/Colors/SensorNameColor2.colorset/Contents.json similarity index 100% rename from ruuvi-widgets/Assets.xcassets/Colors/SensorNameColor2.colorset/Contents.json rename to Apps/RuuviStation/Widgets/Sources/Assets.xcassets/Colors/SensorNameColor2.colorset/Contents.json diff --git a/ruuvi-widgets/Assets.xcassets/Colors/UnitTextColor.colorset/Contents.json b/Apps/RuuviStation/Widgets/Sources/Assets.xcassets/Colors/UnitTextColor.colorset/Contents.json similarity index 100% rename from ruuvi-widgets/Assets.xcassets/Colors/UnitTextColor.colorset/Contents.json rename to Apps/RuuviStation/Widgets/Sources/Assets.xcassets/Colors/UnitTextColor.colorset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/Default Backgrounds/Contents.json b/Apps/RuuviStation/Widgets/Sources/Assets.xcassets/Contents.json similarity index 100% rename from station/Resources/Images/Assets.xcassets/Default Backgrounds/Contents.json rename to Apps/RuuviStation/Widgets/Sources/Assets.xcassets/Contents.json diff --git a/ruuvi-widgets/Assets.xcassets/eye_circle.imageset/Contents.json b/Apps/RuuviStation/Widgets/Sources/Assets.xcassets/eye_circle.imageset/Contents.json similarity index 100% rename from ruuvi-widgets/Assets.xcassets/eye_circle.imageset/Contents.json rename to Apps/RuuviStation/Widgets/Sources/Assets.xcassets/eye_circle.imageset/Contents.json diff --git a/ruuvi-widgets/Assets.xcassets/eye_circle.imageset/web-ruuvi-eye-nega.png b/Apps/RuuviStation/Widgets/Sources/Assets.xcassets/eye_circle.imageset/web-ruuvi-eye-nega.png similarity index 100% rename from ruuvi-widgets/Assets.xcassets/eye_circle.imageset/web-ruuvi-eye-nega.png rename to Apps/RuuviStation/Widgets/Sources/Assets.xcassets/eye_circle.imageset/web-ruuvi-eye-nega.png diff --git a/ruuvi-widgets/Assets.xcassets/ruuvi_logo.imageset/Contents.json b/Apps/RuuviStation/Widgets/Sources/Assets.xcassets/ruuvi_logo.imageset/Contents.json similarity index 100% rename from ruuvi-widgets/Assets.xcassets/ruuvi_logo.imageset/Contents.json rename to Apps/RuuviStation/Widgets/Sources/Assets.xcassets/ruuvi_logo.imageset/Contents.json diff --git a/station/Resources/Images/Assets.xcassets/ruuvi_logo_.imageset/ruuvi_logo.png b/Apps/RuuviStation/Widgets/Sources/Assets.xcassets/ruuvi_logo.imageset/ruuvi_logo.png similarity index 100% rename from station/Resources/Images/Assets.xcassets/ruuvi_logo_.imageset/ruuvi_logo.png rename to Apps/RuuviStation/Widgets/Sources/Assets.xcassets/ruuvi_logo.imageset/ruuvi_logo.png diff --git a/ruuvi-widgets/Base.lproj/RuuviWidgetsConfiguration.intentdefinition b/Apps/RuuviStation/Widgets/Sources/Base.lproj/RuuviWidgetsConfiguration.intentdefinition similarity index 100% rename from ruuvi-widgets/Base.lproj/RuuviWidgetsConfiguration.intentdefinition rename to Apps/RuuviStation/Widgets/Sources/Base.lproj/RuuviWidgetsConfiguration.intentdefinition diff --git a/ruuvi-widgets/Enum/WidgetSensorEnum.swift b/Apps/RuuviStation/Widgets/Sources/Enum/WidgetSensorEnum.swift similarity index 100% rename from ruuvi-widgets/Enum/WidgetSensorEnum.swift rename to Apps/RuuviStation/Widgets/Sources/Enum/WidgetSensorEnum.swift diff --git a/ruuvi-widgets/Helper/Constants.swift b/Apps/RuuviStation/Widgets/Sources/Helper/Constants.swift similarity index 100% rename from ruuvi-widgets/Helper/Constants.swift rename to Apps/RuuviStation/Widgets/Sources/Helper/Constants.swift diff --git a/ruuvi-widgets/Helper/Extensions.swift b/Apps/RuuviStation/Widgets/Sources/Helper/Extensions.swift similarity index 100% rename from ruuvi-widgets/Helper/Extensions.swift rename to Apps/RuuviStation/Widgets/Sources/Helper/Extensions.swift diff --git a/ruuvi-widgets/Helper/MeasurementService.swift b/Apps/RuuviStation/Widgets/Sources/Helper/MeasurementService.swift similarity index 100% rename from ruuvi-widgets/Helper/MeasurementService.swift rename to Apps/RuuviStation/Widgets/Sources/Helper/MeasurementService.swift diff --git a/ruuvi-widgets/Helper/NetworkManager.swift b/Apps/RuuviStation/Widgets/Sources/Helper/NetworkManager.swift similarity index 100% rename from ruuvi-widgets/Helper/NetworkManager.swift rename to Apps/RuuviStation/Widgets/Sources/Helper/NetworkManager.swift diff --git a/Apps/RuuviStation/Widgets/Sources/Info.plist b/Apps/RuuviStation/Widgets/Sources/Info.plist new file mode 100644 index 000000000..df44555c2 --- /dev/null +++ b/Apps/RuuviStation/Widgets/Sources/Info.plist @@ -0,0 +1,40 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Ruuvi Station + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + $(MARKETING_VERSION) + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSExtension + + NSExtensionPointIdentifier + com.apple.widgetkit-extension + + NSHumanReadableCopyright + Copyright © 2023 Ruuvi Innovations Oy. All rights reserved. + UIAppFonts + + Oswald-Bold.ttf + Oswald-ExtraLight.ttf + Muli-Regular.ttf + Muli-Bold.ttf + Montserrat-Bold.ttf + Montserrat-Regular.ttf + + + diff --git a/ruuvi-widgets/Model/Model+Extension.swift b/Apps/RuuviStation/Widgets/Sources/Model/Model+Extension.swift similarity index 100% rename from ruuvi-widgets/Model/Model+Extension.swift rename to Apps/RuuviStation/Widgets/Sources/Model/Model+Extension.swift diff --git a/ruuvi-widgets/Model/WidgetEntry.swift b/Apps/RuuviStation/Widgets/Sources/Model/WidgetEntry.swift similarity index 100% rename from ruuvi-widgets/Model/WidgetEntry.swift rename to Apps/RuuviStation/Widgets/Sources/Model/WidgetEntry.swift diff --git a/ruuvi-widgets/Provider/WidgetProvider.swift b/Apps/RuuviStation/Widgets/Sources/Provider/WidgetProvider.swift similarity index 100% rename from ruuvi-widgets/Provider/WidgetProvider.swift rename to Apps/RuuviStation/Widgets/Sources/Provider/WidgetProvider.swift diff --git a/station/Resources/Fonts/Montserrat-Bold.ttf b/Apps/RuuviStation/Widgets/Sources/Resources/Fonts/Montserrat-Bold.ttf similarity index 100% rename from station/Resources/Fonts/Montserrat-Bold.ttf rename to Apps/RuuviStation/Widgets/Sources/Resources/Fonts/Montserrat-Bold.ttf diff --git a/station/Resources/Fonts/Montserrat-Regular.ttf b/Apps/RuuviStation/Widgets/Sources/Resources/Fonts/Montserrat-Regular.ttf similarity index 100% rename from station/Resources/Fonts/Montserrat-Regular.ttf rename to Apps/RuuviStation/Widgets/Sources/Resources/Fonts/Montserrat-Regular.ttf diff --git a/station/Resources/Fonts/Muli-Bold.ttf b/Apps/RuuviStation/Widgets/Sources/Resources/Fonts/Muli-Bold.ttf similarity index 100% rename from station/Resources/Fonts/Muli-Bold.ttf rename to Apps/RuuviStation/Widgets/Sources/Resources/Fonts/Muli-Bold.ttf diff --git a/station/Resources/Fonts/Muli-Regular.ttf b/Apps/RuuviStation/Widgets/Sources/Resources/Fonts/Muli-Regular.ttf similarity index 100% rename from station/Resources/Fonts/Muli-Regular.ttf rename to Apps/RuuviStation/Widgets/Sources/Resources/Fonts/Muli-Regular.ttf diff --git a/station/Resources/Fonts/Oswald-Bold.ttf b/Apps/RuuviStation/Widgets/Sources/Resources/Fonts/Oswald-Bold.ttf similarity index 100% rename from station/Resources/Fonts/Oswald-Bold.ttf rename to Apps/RuuviStation/Widgets/Sources/Resources/Fonts/Oswald-Bold.ttf diff --git a/station/Resources/Fonts/Oswald-ExtraLight.ttf b/Apps/RuuviStation/Widgets/Sources/Resources/Fonts/Oswald-ExtraLight.ttf similarity index 100% rename from station/Resources/Fonts/Oswald-ExtraLight.ttf rename to Apps/RuuviStation/Widgets/Sources/Resources/Fonts/Oswald-ExtraLight.ttf diff --git a/ruuvi-widgets/RuuviWidgets.swift b/Apps/RuuviStation/Widgets/Sources/RuuviWidgets.swift similarity index 100% rename from ruuvi-widgets/RuuviWidgets.swift rename to Apps/RuuviStation/Widgets/Sources/RuuviWidgets.swift diff --git a/ruuvi-widgets/View Model/WidgetViewModel.swift b/Apps/RuuviStation/Widgets/Sources/View Model/WidgetViewModel.swift similarity index 100% rename from ruuvi-widgets/View Model/WidgetViewModel.swift rename to Apps/RuuviStation/Widgets/Sources/View Model/WidgetViewModel.swift diff --git a/ruuvi-widgets/View/EmptyWidgetView.swift b/Apps/RuuviStation/Widgets/Sources/View/EmptyWidgetView.swift similarity index 100% rename from ruuvi-widgets/View/EmptyWidgetView.swift rename to Apps/RuuviStation/Widgets/Sources/View/EmptyWidgetView.swift diff --git a/ruuvi-widgets/View/SimpleWidgetView.swift b/Apps/RuuviStation/Widgets/Sources/View/SimpleWidgetView.swift similarity index 100% rename from ruuvi-widgets/View/SimpleWidgetView.swift rename to Apps/RuuviStation/Widgets/Sources/View/SimpleWidgetView.swift diff --git a/ruuvi-widgets/View/SimpleWidgetViewCircular.swift b/Apps/RuuviStation/Widgets/Sources/View/SimpleWidgetViewCircular.swift similarity index 100% rename from ruuvi-widgets/View/SimpleWidgetViewCircular.swift rename to Apps/RuuviStation/Widgets/Sources/View/SimpleWidgetViewCircular.swift diff --git a/ruuvi-widgets/View/SimpleWidgetViewInline.swift b/Apps/RuuviStation/Widgets/Sources/View/SimpleWidgetViewInline.swift similarity index 100% rename from ruuvi-widgets/View/SimpleWidgetViewInline.swift rename to Apps/RuuviStation/Widgets/Sources/View/SimpleWidgetViewInline.swift diff --git a/ruuvi-widgets/View/SimpleWidgetViewRectangle.swift b/Apps/RuuviStation/Widgets/Sources/View/SimpleWidgetViewRectangle.swift similarity index 100% rename from ruuvi-widgets/View/SimpleWidgetViewRectangle.swift rename to Apps/RuuviStation/Widgets/Sources/View/SimpleWidgetViewRectangle.swift diff --git a/ruuvi-widgets/View/UnauthorizedView.swift b/Apps/RuuviStation/Widgets/Sources/View/UnauthorizedView.swift similarity index 100% rename from ruuvi-widgets/View/UnauthorizedView.swift rename to Apps/RuuviStation/Widgets/Sources/View/UnauthorizedView.swift diff --git a/station_intents.entitlements b/Apps/RuuviStation/Widgets/Sources/Widgets.entitlements similarity index 100% rename from station_intents.entitlements rename to Apps/RuuviStation/Widgets/Sources/Widgets.entitlements diff --git a/ruuvi-widgets/de.lproj/RuuviWidgetsConfiguration.strings b/Apps/RuuviStation/Widgets/Sources/de.lproj/RuuviWidgetsConfiguration.strings similarity index 100% rename from ruuvi-widgets/de.lproj/RuuviWidgetsConfiguration.strings rename to Apps/RuuviStation/Widgets/Sources/de.lproj/RuuviWidgetsConfiguration.strings diff --git a/ruuvi-widgets/en.lproj/RuuviWidgetsConfiguration.strings b/Apps/RuuviStation/Widgets/Sources/en.lproj/RuuviWidgetsConfiguration.strings similarity index 100% rename from ruuvi-widgets/en.lproj/RuuviWidgetsConfiguration.strings rename to Apps/RuuviStation/Widgets/Sources/en.lproj/RuuviWidgetsConfiguration.strings diff --git a/ruuvi-widgets/fi.lproj/RuuviWidgetsConfiguration.strings b/Apps/RuuviStation/Widgets/Sources/fi.lproj/RuuviWidgetsConfiguration.strings similarity index 100% rename from ruuvi-widgets/fi.lproj/RuuviWidgetsConfiguration.strings rename to Apps/RuuviStation/Widgets/Sources/fi.lproj/RuuviWidgetsConfiguration.strings diff --git a/ruuvi-widgets/fr.lproj/RuuviWidgetsConfiguration.strings b/Apps/RuuviStation/Widgets/Sources/fr.lproj/RuuviWidgetsConfiguration.strings similarity index 100% rename from ruuvi-widgets/fr.lproj/RuuviWidgetsConfiguration.strings rename to Apps/RuuviStation/Widgets/Sources/fr.lproj/RuuviWidgetsConfiguration.strings diff --git a/ruuvi-widgets/sv.lproj/RuuviWidgetsConfiguration.strings b/Apps/RuuviStation/Widgets/Sources/sv.lproj/RuuviWidgetsConfiguration.strings similarity index 100% rename from ruuvi-widgets/sv.lproj/RuuviWidgetsConfiguration.strings rename to Apps/RuuviStation/Widgets/Sources/sv.lproj/RuuviWidgetsConfiguration.strings diff --git a/widget.yml b/Apps/RuuviStation/Widgets/target.yml similarity index 86% rename from widget.yml rename to Apps/RuuviStation/Widgets/target.yml index 86c6f773d..28fb675e5 100644 --- a/widget.yml +++ b/Apps/RuuviStation/Widgets/target.yml @@ -1,9 +1,10 @@ +--- targets: station.widgets: type: app-extension platform: iOS info: - path: ruuvi-widgets/Info.plist + path: Info.plist properties: NSExtension: NSExtensionPointIdentifier: com.apple.widgetkit-extension @@ -15,7 +16,7 @@ targets: NSHumanReadableCopyright: Copyright © 2023 Ruuvi Innovations Oy. All rights reserved. settings: base: - CODE_SIGN_ENTITLEMENTS: ruuvi_widgets.entitlements + CODE_SIGN_ENTITLEMENTS: Apps/RuuviStation/Widgets/Sources/Widgets.entitlements configs: Alpha: CODE_SIGN_IDENTITY: "iPhone Distribution" @@ -27,10 +28,14 @@ targets: CODE_SIGN_IDENTITY: "iPhone Distribution" PROVISIONING_PROFILE_SPECIFIER: "match AdHoc com.ruuvi.station.widgets" EXCLUDED_SOURCE_FILE_NAMES: "FLEX*" - sources: - - path: ruuvi-widgets + sources: + - path: Sources/ + name: Widgets + excludes: + - "*.entitlements" + - Info.plist resources: - - path: station/Resources/Strings/ + - path: ../Sources/Resources/Strings/ dependencies: - package: Swinject - package: BTKit diff --git a/Apps/RuuviStation/target.yml b/Apps/RuuviStation/target.yml new file mode 100644 index 000000000..d897952f5 --- /dev/null +++ b/Apps/RuuviStation/target.yml @@ -0,0 +1,138 @@ +--- +targets: + station: + type: application + platform: iOS + sources: + - path: Sources/ + name: Station + excludes: + - "*.entitlements" + - Info.plist + # - path: Widgets/Sources/Widgets.entitlements + # name: Widgets + # - path: Intents/Sources/Intents.entitlements + # name: Intents + # - path: NotificationService/Sources/NotificationService.entitlements + dependencies: + - target: "station.widgets" + - target: "station.intents" + - target: "station.pnservice" + - package: BTKit + - package: Charts + - package: GRDB + - package: LightRoute + - package: Swinject + - package: RangeSeekSlider + - package: NordicDFU + - package: GestureInstructions + - package: Firebase + product: FirebaseMessaging + - package: Firebase + product: FirebaseRemoteConfig + - package: KeychainAccess + - package: Humidity + - package: Future + - package: Realm + - package: Realm + product: RealmSwift + - package: FLEX + - target: RuuviAnalytics + - target: RuuviCloud + - target: RuuviContext + - target: RuuviCore + - target: RuuviDaemon + - target: RuuviDFU + - target: RuuviLocal + - target: RuuviMigration + - target: RuuviNotification + - target: RuuviNotifier + - target: RuuviOntology + - target: RuuviPersistence + - target: RuuviPool + - target: RuuviReactor + - target: RuuviRepository + - target: RuuviService + - target: RuuviStorage + - target: RuuviUser + - target: RuuviPresenters + - target: RuuviDiscover + - target: RuuviOnboard + - target: RuuviFirmware + - target: RuuviLocalization + info: + path: Info.plist + properties: + CFBundleDisplayName: Ruuvi Station + CFBundlePackageType: $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString: "$(MARKETING_VERSION)" + CFBundleVersion: $(CURRENT_PROJECT_VERSION) + UISupportedInterfaceOrientations: [UIInterfaceOrientationLandscapeLeft, UIInterfaceOrientationLandscapeRight, UIInterfaceOrientationPortrait] + UILaunchStoryboardName: LaunchScreen + BGTaskSchedulerPermittedIdentifiers: [com.ruuvi.station.BackgroundProcessServiceiOS13.dataPruning] + FirebaseMessagingAutoInitEnabled: false + LSApplicationQueriesSchemes: [https, http, mailto] + LSRequiresIPhoneOS: true + NFCReaderUsageDescription: Allows user to claim a RuuviTag using NFC when the user has physical access to the sensor + NSBluetoothAlwaysUsageDescription: The app uses Bluetooth LE to read data from Ruuvi Sensors + NSBluetoothPeripheralUsageDescription: The app uses Bluetooth LE to read data from RuuviTag sensors. + NSCameraUsageDescription: Ruuvi Station needs to access your camera in order to be able to capture photos and use them as sensor background. + NSLocationAlwaysAndWhenInUseUsageDescription: Ruuvi Station needs to access your location in order to determine your position and show weather parameters for you live location. + NSLocationAlwaysUsageDescription: Ruuvi Station needs to access your location while being in background in order to pull data for Virtual Sensors for your current location and display alerts. + NSLocationUsageDescription: Ruuvi Station needs to access your location in order to determine your position and show weather parameters for you live location. + NSLocationWhenInUseUsageDescription: Ruuvi Station needs to access your location in order to determine your position and show weather parameters for you live location. + NSPhotoLibraryUsageDescription: Ruuvi Station needs to access your camera roll to enable selecting the background for the sensor. + NSUserActivityTypes: [RuuviTagSelectionIntent] + UIAppFonts: [Oswald-Bold.ttf,Oswald-ExtraLight.ttf,Muli-Regular.ttf,Muli-Bold.ttf,Muli-SemiBoldItalic.ttf,Muli-ExtraBold.ttf,Montserrat-Bold.ttf,Montserrat-Regular.ttf,Montserrat-ExtraBold.ttf] + UIBackgroundModes: [bluetooth-central, processing, remote-notification] + UIRequiredDeviceCapabilities: [armv7] + UIRequiresFullScreen: true + UIStatusBarStyle: UIStatusBarStyleLightContent + UISupportedInterfaceOrientations~ipad: [UIInterfaceOrientationLandscapeLeft, UIInterfaceOrientationLandscapeRight,UIInterfaceOrientationPortrait, UIInterfaceOrientationPortraitUpsideDown] + UIViewControllerBasedStatusBarAppearance: true + settings: + base: + MERGED_BINARY_TYPE: "manual" + TARGETED_DEVICE_FAMILY: 1,2 + SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD: true + CODE_SIGN_ENTITLEMENTS: Apps/RuuviStation/Sources/Station.entitlements + configs: + Alpha: + CODE_SIGN_IDENTITY: "iPhone Distribution" + PROVISIONING_PROFILE_SPECIFIER: "match AdHoc com.ruuvi.station" + Debug: + CODE_SIGN_STYLE: Automatic + OTHER_LDFLAGS: -Xlinker -no_warn_duplicate_libraries + Release: + EXCLUDED_SOURCE_FILE_NAMES: "FLEX*" + CODE_SIGN_IDENTITY: "iPhone Distribution" + PROVISIONING_PROFILE_SPECIFIER: "match AdHoc com.ruuvi.station" + preBuildScripts: + - path: ../../scripts/build/generate_l10n.sh + name: Generate L10N + inputFiles: + - $(SRCROOT)/station.localization/station.localization.json + outputFiles: + - $(SRCROOT)/Apps/RuuviStation/Sources/Resources/Strings/en.lproj/Localizable.strings + - $(SRCROOT)/Apps/RuuviStation/Sources/Resources/Strings/sv.lproj/Localizable.strings + - $(SRCROOT)/Apps/RuuviStation/Sources/Resources/Strings/ru.lproj/Localizable.strings + - $(SRCROOT)/Apps/RuuviStation/Sources/Resources/Strings/fi.lproj/Localizable.strings + - $(SRCROOT)/Apps/RuuviStation/Sources/Resources/Strings/fr.lproj/Localizable.strings + - $(SRCROOT)/Apps/RuuviStation/Sources/Resources/Strings/de.lproj/Localizable.strings + postCompileScripts: + - path: ../../scripts/build/lint.sh + name: Lint + basedOnDependencyAnalysis: false + postBuildScripts: + - path: ../../scripts/build/load_keystore.sh + name: Load Keystore + inputFiles: + - $(SRCROOT)/Apps/RuuviStation/Sources/Classes/Networking/Assembly/Networking.plist + - $(SRCROOT)/Apps/RuuviStation/Sources/Resources/Plists/GoogleService-Info.plist + runOnlyWhenInstalling: true + basedOnDependencyAnalysis: false +schemes: + station: + build: + targets: + station: all \ No newline at end of file diff --git a/Common/RuuviLocalization/Sources/RuuviLocalization/RuuviLocalization.swift b/Common/RuuviLocalization/Sources/RuuviLocalization/RuuviLocalization.swift index ed5342077..3d3ae71ea 100644 --- a/Common/RuuviLocalization/Sources/RuuviLocalization/RuuviLocalization.swift +++ b/Common/RuuviLocalization/Sources/RuuviLocalization/RuuviLocalization.swift @@ -40,7 +40,6 @@ public enum RuuviLocalization { public static func alertCloudConnectionDescription(_ p1: Int) -> String { RuuviLocalization.tr("Localizable", "alert_cloud_connection_description", p1, fallback: "Alert if sensor data hasn't been updated to the cloud for longer than %d minutes.") } - /// Enter the desired delay to be used in minutes before alert is triggered. Minimum value is 2 minutes. public static let alertCloudConnectionDialogDescription = RuuviLocalization.tr("Localizable", "alert_cloud_connection_dialog_description", fallback: "Enter the desired delay to be used in minutes before alert is triggered. Minimum value is 2 minutes.") /// Set cloud connection alert @@ -51,42 +50,34 @@ public enum RuuviLocalization { public static func alertNotificationHumidityHighThreshold(_ p1: Any) -> String { RuuviLocalization.tr("Localizable", "alert_notification_humidity_high_threshold", String(describing: p1), fallback: "Air Humidity is above %@") } - /// Air Humidity is below %@ public static func alertNotificationHumidityLowThreshold(_ p1: Any) -> String { RuuviLocalization.tr("Localizable", "alert_notification_humidity_low_threshold", String(describing: p1), fallback: "Air Humidity is below %@") } - /// Air Pressure is above %@ public static func alertNotificationPressureHighThreshold(_ p1: Any) -> String { RuuviLocalization.tr("Localizable", "alert_notification_pressure_high_threshold", String(describing: p1), fallback: "Air Pressure is above %@") } - /// Air Pressure is below %@ public static func alertNotificationPressureLowThreshold(_ p1: Any) -> String { RuuviLocalization.tr("Localizable", "alert_notification_pressure_low_threshold", String(describing: p1), fallback: "Air Pressure is below %@") } - /// Signal strength is above %@ public static func alertNotificationRssiHighThreshold(_ p1: Any) -> String { RuuviLocalization.tr("Localizable", "alert_notification_rssi_high_threshold", String(describing: p1), fallback: "Signal strength is above %@") } - /// Signal strength is below %@ public static func alertNotificationRssiLowThreshold(_ p1: Any) -> String { RuuviLocalization.tr("Localizable", "alert_notification_rssi_low_threshold", String(describing: p1), fallback: "Signal strength is below %@") } - /// Temperature is above %@ public static func alertNotificationTemperatureHighThreshold(_ p1: Any) -> String { RuuviLocalization.tr("Localizable", "alert_notification_temperature_high_threshold", String(describing: p1), fallback: "Temperature is above %@") } - /// Temperature is below %@ public static func alertNotificationTemperatureLowThreshold(_ p1: Any) -> String { RuuviLocalization.tr("Localizable", "alert_notification_temperature_low_threshold", String(describing: p1), fallback: "Temperature is below %@") } - /// All public static let all = RuuviLocalization.tr("Localizable", "all", fallback: "All") /// App Theme @@ -166,7 +157,7 @@ public enum RuuviLocalization { /// Seems that you don't have any Ruuvi sensors added yet. public static let dashboardNoSensorsMessage = RuuviLocalization.tr("Localizable", "dashboard_no_sensors_message", fallback: "Seems that you don't have any Ruuvi sensors added yet.") /// You are not signed in. - /// + /// /// If you have an account and have already added Ruuvi sensors to it, they will automatically synchronise with Ruuvi Station mobile app when you sign in. public static let dashboardNoSensorsMessageSignedOut = RuuviLocalization.tr("Localizable", "dashboard_no_sensors_message_signed_out", fallback: "You are not signed in.\n\nIf you have an account and have already added Ruuvi sensors to it, they will automatically synchronise with Ruuvi Station mobile app when you sign in.") /// 1 day @@ -193,7 +184,6 @@ public enum RuuviLocalization { public static func dayX(_ p1: Float) -> String { RuuviLocalization.tr("Localizable", "day_x", p1, fallback: "%.0f days") } - /// dBm public static let dBm = RuuviLocalization.tr("Localizable", "dBm", fallback: "dBm") /// Are you sure? @@ -208,7 +198,7 @@ public enum RuuviLocalization { public static let done = RuuviLocalization.tr("Localizable", "Done", fallback: "Done") /// Download public static let download = RuuviLocalization.tr("Localizable", "download", fallback: "Download") - /// No data available + /// No data available /// in the selected history window. public static let emptyChartMessage = RuuviLocalization.tr("Localizable", "empty_chart_message", fallback: "No data available \nin the selected history window.") /// Enter Code @@ -228,17 +218,17 @@ public enum RuuviLocalization { /// This sensor has been claimed by another user. You can force the ownership to your account if you have physical access to this sensor. Each Ruuvi sensor can have only one owner. public static let forceClaimSensorDescription1 = RuuviLocalization.tr("Localizable", "force_claim_sensor_description1", fallback: "This sensor has been claimed by another user. You can force the ownership to your account if you have physical access to this sensor. Each Ruuvi sensor can have only one owner.") /// Force Claim is done by using Near-Field Communication (NFC). Make sure NFC is enabled on your mobile device. - /// + /// /// 1. Touch your Ruuvi sensor with your mobile device to start the claiming process. - /// + /// /// 2. When successfully claimed, you will be sent back to Sensor Settings. - /// + /// /// If claiming was unsuccessful or NFC is not available on your device: - /// + /// /// 1. Open the cover of your Ruuvi sensor. - /// + /// /// 2. Locate the round black button (or button "B" in case your sensor has 2 buttons) on the white circuit board and press it briefly, then tap on Use BT button to start the claiming process. - /// + /// /// 3. When successfully claimed you will be sent back to Sensor Settings. public static let forceClaimSensorDescription2 = RuuviLocalization.tr("Localizable", "force_claim_sensor_description2", fallback: "Force Claim is done by using Near-Field Communication (NFC). Make sure NFC is enabled on your mobile device.\n\n\t1. Touch your Ruuvi sensor with your mobile device to start the claiming process.\n\n\t2. When successfully claimed, you will be sent back to Sensor Settings.\n\nIf claiming was unsuccessful or NFC is not available on your device:\n\n\t1. Open the cover of your Ruuvi sensor.\n\n\t2. Locate the round black button (or button \"B\" in case your sensor has 2 buttons) on the white circuit board and press it briefly, then tap on Use BT button to start the claiming process.\n\n\t3. When successfully claimed you will be sent back to Sensor Settings.") /// Full image view @@ -248,7 +238,7 @@ public enum RuuviLocalization { /// g/m³ public static let gm³ = RuuviLocalization.tr("Localizable", "g/m³", fallback: "g/m³") /// Ruuvi Station downloads the internal history of the sensor for the last 10 days if the measurement history is available. - /// + /// /// The history is downloaded using a Bluetooth connection. Make sure you are near the sensor. public static let gattSyncDescription = RuuviLocalization.tr("Localizable", "gatt_sync_description", fallback: "Ruuvi Station downloads the internal history of the sensor for the last 10 days if the measurement history is available.\n\nThe history is downloaded using a Bluetooth connection. Make sure you are near the sensor.") /// Go to sensor card @@ -365,7 +355,6 @@ public enum RuuviLocalization { public static func readingHistoryX(_ p1: Float) -> String { RuuviLocalization.tr("Localizable", "reading_history_x", p1, fallback: "Reading Bluetooth: %.0f") } - /// Remove public static let remove = RuuviLocalization.tr("Localizable", "Remove", fallback: "Remove") /// By removing the sensor, your sensor ownership status will be revoked and sensor settings, such as name, background image, calibration settings and alert settings will be removed. After removal, someone else can claim ownership of the sensor. Each Ruuvi sensor can have only one owner. @@ -375,11 +364,11 @@ public enum RuuviLocalization { /// Remove cloud history public static let removeCloudHistoryTitle = RuuviLocalization.tr("Localizable", "remove_cloud_history_title", fallback: "Remove cloud history") /// If you choose to remove this sensor, it will result in the deletion of your locally stored measurement history, along with the removal of any related sensor settings like name, background image, calibration, and alert configurations. - /// + /// /// You can add this sensor later again, if needed. public static let removeLocalSensorDescription = RuuviLocalization.tr("Localizable", "remove_local_sensor_description", fallback: "If you choose to remove this sensor, it will result in the deletion of your locally stored measurement history, along with the removal of any related sensor settings like name, background image, calibration, and alert configurations.\n\nYou can add this sensor later again, if needed.") /// If you choose to remove this shared sensor, the owner of the sensor will be notified and you will not be able to access the sensor anymore. - /// + /// /// You will also lose any related sensor settings like name, background image and alert configurations. public static let removeSharedSensorDescription = RuuviLocalization.tr("Localizable", "remove_shared_sensor_description", fallback: "If you choose to remove this shared sensor, the owner of the sensor will be notified and you will not be able to access the sensor anymore.\n\nYou will also lose any related sensor settings like name, background image and alert configurations.") /// Rename @@ -440,7 +429,6 @@ public enum RuuviLocalization { public static func sharedToX(_ p1: Int, _ p2: Int) -> String { RuuviLocalization.tr("Localizable", "shared_to_x", p1, p2, fallback: "Shared to %d/%d") } - /// Continue public static let signInContinue = RuuviLocalization.tr("Localizable", "sign_in_continue", fallback: "Continue") /// Sign in or create a free Ruuvi account @@ -479,7 +467,6 @@ public enum RuuviLocalization { public static func uploadingProgress(_ p1: Float) -> String { RuuviLocalization.tr("Localizable", "uploading_progress", p1, fallback: "Uploading: %.0f") } - /// Use BT public static let useBluetooth = RuuviLocalization.tr("Localizable", "use_bluetooth", fallback: "Use BT") /// Use NFC @@ -499,2521 +486,2153 @@ public enum RuuviLocalization { /// °F public static let ºF = RuuviLocalization.tr("Localizable", "ºF", fallback: "°F") public enum About { - public enum AboutHelp { - /// Ruuvi Station is an easy-to-use application that allows you to monitor the measurement data of Ruuvi sensors. - public static let contents = RuuviLocalization.tr("Localizable", "About.AboutHelp.contents", fallback: "Ruuvi Station is an easy-to-use application that allows you to monitor the measurement data of Ruuvi sensors.") - /// About / Help - public static let header = RuuviLocalization.tr("Localizable", "About.AboutHelp.header", fallback: "About / Help") - } - - public enum DatabaseSize { - /// Database size: %@ - public static func text(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "About.DatabaseSize.text", String(describing: p1), fallback: "Database size: %@") - } - } - - public enum MeasurementsCount { - /// Number of locally stored measurements: %d - public static func text(_ p1: Int) -> String { - RuuviLocalization.tr("Localizable", "About.MeasurementsCount.text", p1, fallback: "Number of locally stored measurements: %d") - } - } - - public enum More { - /// Ruuvi's website: ruuvi.com - /// Ruuvi Forum: f.ruuvi.com - /// Ruuvi Blog: ruuvi.com/blog - /// Ruuvi on Twitter: twitter.com/ruuvicom - public static let contents = RuuviLocalization.tr("Localizable", "About.More.contents", fallback: "Ruuvi's website: ruuvi.com\nRuuvi Forum: f.ruuvi.com\nRuuvi Blog: ruuvi.com/blog\nRuuvi on Twitter: twitter.com/ruuvicom") - /// More to read - public static let header = RuuviLocalization.tr("Localizable", "About.More.header", fallback: "More to read") - } - - public enum OpenSource { - /// Just like Ruuvi sensors, Ruuvi Station apps are open source. Follow the development and contribute at: github.com/ruuvi - public static let contents = RuuviLocalization.tr("Localizable", "About.OpenSource.contents", fallback: "Just like Ruuvi sensors, Ruuvi Station apps are open source. Follow the development and contribute at: github.com/ruuvi") - /// Open-source - public static let header = RuuviLocalization.tr("Localizable", "About.OpenSource.header", fallback: "Open-source") - } - - public enum OperationsManual { - /// Get started using the Ruuvi Station mobile application with our online guides: ruuvi.com/support/station-mobile - public static let contents = RuuviLocalization.tr("Localizable", "About.OperationsManual.contents", fallback: "Get started using the Ruuvi Station mobile application with our online guides: ruuvi.com/support/station-mobile") - /// Operations manual - public static let header = RuuviLocalization.tr("Localizable", "About.OperationsManual.header", fallback: "Operations manual") - } - - public enum Privacy { - /// By using the application, you accept Ruuvi's standard terms and conditions: ruuvi.com/terms - public static let contents = RuuviLocalization.tr("Localizable", "About.Privacy.contents", fallback: "By using the application, you accept Ruuvi's standard terms and conditions: ruuvi.com/terms") - /// Privacy policy - public static let header = RuuviLocalization.tr("Localizable", "About.Privacy.header", fallback: "Privacy policy") - } - - public enum TagsCount { - /// Added sensors: %d - public static func text(_ p1: Int) -> String { - RuuviLocalization.tr("Localizable", "About.TagsCount.text", p1, fallback: "Added sensors: %d") - } - } - - public enum Troubleshooting { - /// Find help using the Ruuvi Station apps, Ruuvi products and Ruuvi Cloud service from our support center: ruuvi.com/support - public static let contents = RuuviLocalization.tr("Localizable", "About.Troubleshooting.contents", fallback: "Find help using the Ruuvi Station apps, Ruuvi products and Ruuvi Cloud service from our support center: ruuvi.com/support") - /// Troubleshooting - public static let header = RuuviLocalization.tr("Localizable", "About.Troubleshooting.header", fallback: "Troubleshooting") - } - - public enum Version { - /// Version - public static let text = RuuviLocalization.tr("Localizable", "About.Version.text", fallback: "Version") - } + public enum AboutHelp { + /// Ruuvi Station is an easy-to-use application that allows you to monitor the measurement data of Ruuvi sensors. + public static let contents = RuuviLocalization.tr("Localizable", "About.AboutHelp.contents", fallback: "Ruuvi Station is an easy-to-use application that allows you to monitor the measurement data of Ruuvi sensors.") + /// About / Help + public static let header = RuuviLocalization.tr("Localizable", "About.AboutHelp.header", fallback: "About / Help") + } + public enum DatabaseSize { + /// Database size: %@ + public static func text(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "About.DatabaseSize.text", String(describing: p1), fallback: "Database size: %@") + } + } + public enum MeasurementsCount { + /// Number of locally stored measurements: %d + public static func text(_ p1: Int) -> String { + RuuviLocalization.tr("Localizable", "About.MeasurementsCount.text", p1, fallback: "Number of locally stored measurements: %d") + } + } + public enum More { + /// Ruuvi's website: ruuvi.com + /// Ruuvi Forum: f.ruuvi.com + /// Ruuvi Blog: ruuvi.com/blog + /// Ruuvi on Twitter: twitter.com/ruuvicom + public static let contents = RuuviLocalization.tr("Localizable", "About.More.contents", fallback: "Ruuvi's website: ruuvi.com\nRuuvi Forum: f.ruuvi.com\nRuuvi Blog: ruuvi.com/blog\nRuuvi on Twitter: twitter.com/ruuvicom") + /// More to read + public static let header = RuuviLocalization.tr("Localizable", "About.More.header", fallback: "More to read") + } + public enum OpenSource { + /// Just like Ruuvi sensors, Ruuvi Station apps are open source. Follow the development and contribute at: github.com/ruuvi + public static let contents = RuuviLocalization.tr("Localizable", "About.OpenSource.contents", fallback: "Just like Ruuvi sensors, Ruuvi Station apps are open source. Follow the development and contribute at: github.com/ruuvi") + /// Open-source + public static let header = RuuviLocalization.tr("Localizable", "About.OpenSource.header", fallback: "Open-source") + } + public enum OperationsManual { + /// Get started using the Ruuvi Station mobile application with our online guides: ruuvi.com/support/station-mobile + public static let contents = RuuviLocalization.tr("Localizable", "About.OperationsManual.contents", fallback: "Get started using the Ruuvi Station mobile application with our online guides: ruuvi.com/support/station-mobile") + /// Operations manual + public static let header = RuuviLocalization.tr("Localizable", "About.OperationsManual.header", fallback: "Operations manual") + } + public enum Privacy { + /// By using the application, you accept Ruuvi's standard terms and conditions: ruuvi.com/terms + public static let contents = RuuviLocalization.tr("Localizable", "About.Privacy.contents", fallback: "By using the application, you accept Ruuvi's standard terms and conditions: ruuvi.com/terms") + /// Privacy policy + public static let header = RuuviLocalization.tr("Localizable", "About.Privacy.header", fallback: "Privacy policy") + } + public enum TagsCount { + /// Added sensors: %d + public static func text(_ p1: Int) -> String { + RuuviLocalization.tr("Localizable", "About.TagsCount.text", p1, fallback: "Added sensors: %d") + } + } + public enum Troubleshooting { + /// Find help using the Ruuvi Station apps, Ruuvi products and Ruuvi Cloud service from our support center: ruuvi.com/support + public static let contents = RuuviLocalization.tr("Localizable", "About.Troubleshooting.contents", fallback: "Find help using the Ruuvi Station apps, Ruuvi products and Ruuvi Cloud service from our support center: ruuvi.com/support") + /// Troubleshooting + public static let header = RuuviLocalization.tr("Localizable", "About.Troubleshooting.header", fallback: "Troubleshooting") + } + public enum Version { + /// Version + public static let text = RuuviLocalization.tr("Localizable", "About.Version.text", fallback: "Version") + } } - public enum Background { - public enum Interval { - public enum Every { - /// every - public static let string = RuuviLocalization.tr("Localizable", "Background.Interval.Every.string", fallback: "every") - } - - public enum Min { - /// min - public static let string = RuuviLocalization.tr("Localizable", "Background.Interval.Min.string", fallback: "min") - } - - public enum Sec { - /// sec - public static let string = RuuviLocalization.tr("Localizable", "Background.Interval.Sec.string", fallback: "sec") - } + public enum Interval { + public enum Every { + /// every + public static let string = RuuviLocalization.tr("Localizable", "Background.Interval.Every.string", fallback: "every") + } + public enum Min { + /// min + public static let string = RuuviLocalization.tr("Localizable", "Background.Interval.Min.string", fallback: "min") + } + public enum Sec { + /// sec + public static let string = RuuviLocalization.tr("Localizable", "Background.Interval.Sec.string", fallback: "sec") + } + } + public enum KeepConnection { + /// Keep the Connection + public static let title = RuuviLocalization.tr("Localizable", "Background.KeepConnection.title", fallback: "Keep the Connection") + } + public enum PresentNotifications { + /// Show Notifications + public static let title = RuuviLocalization.tr("Localizable", "Background.PresentNotifications.title", fallback: "Show Notifications") + } + public enum ReadRSSITitle { + /// Read RSSI + public static let title = RuuviLocalization.tr("Localizable", "Background.readRSSITitle.title", fallback: "Read RSSI") + } + } + public enum BluetoothError { + /// Disconnected + public static let disconnected = RuuviLocalization.tr("Localizable", "BluetoothError.disconnected", fallback: "Disconnected") + } + public enum Cards { + public enum Alert { + public enum AlreadyLoggedIn { + /// User %@ is already signed in. If you'd like to use a different account, please sign out first and then try again. + public static func message(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "Cards.Alert.AlreadyLoggedIn.message", String(describing: p1), fallback: "User %@ is already signed in. If you'd like to use a different account, please sign out first and then try again.") + } + } + } + public enum BluetoothDisabledAlert { + /// Ruuvi Station needs Bluetooth to be able to listen for sensors. Go to Settings and turn Bluetooth on. + public static let message = RuuviLocalization.tr("Localizable", "Cards.BluetoothDisabledAlert.message", fallback: "Ruuvi Station needs Bluetooth to be able to listen for sensors. Go to Settings and turn Bluetooth on.") + /// Bluetooth is not enabled + public static let title = RuuviLocalization.tr("Localizable", "Cards.BluetoothDisabledAlert.title", fallback: "Bluetooth is not enabled") + } + public enum Connected { + /// Connected + public static let title = RuuviLocalization.tr("Localizable", "Cards.Connected.title", fallback: "Connected") + } + public enum Error { + public enum ReverseGeocodingFailed { + /// Failed to load data for Virtual Sensor. Reverse geocode operation limit exceeded. + public static let message = RuuviLocalization.tr("Localizable", "Cards.Error.ReverseGeocodingFailed.message", fallback: "Failed to load data for Virtual Sensor. Reverse geocode operation limit exceeded.") + } + } + public enum KeepConnectionDialog { + /// Seems like you are running a connectable firmware on your Ruuvi device. Would you like to keep the connection open to this Ruuvi device in the background? This will allow histograms and alerts to work even when the application is minimised. + public static let message = RuuviLocalization.tr("Localizable", "Cards.KeepConnectionDialog.message", fallback: "Seems like you are running a connectable firmware on your Ruuvi device. Would you like to keep the connection open to this Ruuvi device in the background? This will allow histograms and alerts to work even when the application is minimised.") + public enum Dismiss { + /// Cancel + public static let title = RuuviLocalization.tr("Localizable", "Cards.KeepConnectionDialog.Dismiss.title", fallback: "Cancel") } - public enum KeepConnection { - /// Keep the Connection - public static let title = RuuviLocalization.tr("Localizable", "Background.KeepConnection.title", fallback: "Keep the Connection") + /// Keep the Connection + public static let title = RuuviLocalization.tr("Localizable", "Cards.KeepConnectionDialog.KeepConnection.title", fallback: "Keep the Connection") + } + } + public enum LegacyFirmwareUpdateDialog { + /// Looks like your sensor is using an old firmware software version. To access new features such as history graphs, alerts and cloud services, updating is mandatory. + public static let message = RuuviLocalization.tr("Localizable", "Cards.LegacyFirmwareUpdateDialog.message", fallback: "Looks like your sensor is using an old firmware software version. To access new features such as history graphs, alerts and cloud services, updating is mandatory.") + public enum CancelConfirmation { + /// Are you sure? Without updating, you won't be able to claim ownership of the sensor, download history graphs and set alerts. The update also includes bug fixes. If you cancel now, you can start the update process again from the sensor's settings page. + public static let message = RuuviLocalization.tr("Localizable", "Cards.LegacyFirmwareUpdateDialog.CancelConfirmation.message", fallback: "Are you sure? Without updating, you won't be able to claim ownership of the sensor, download history graphs and set alerts. The update also includes bug fixes. If you cancel now, you can start the update process again from the sensor's settings page.") + } + public enum CheckForUpdate { + /// Check for update + public static let title = RuuviLocalization.tr("Localizable", "Cards.LegacyFirmwareUpdateDialog.CheckForUpdate.title", fallback: "Check for update") + } + } + public enum Movements { + /// movements + public static let title = RuuviLocalization.tr("Localizable", "Cards.Movements.title", fallback: "movements") + } + public enum NoSensors { + /// No sensors added + /// Press here to add sensors + public static let title = RuuviLocalization.tr("Localizable", "Cards.NoSensors.title", fallback: "No sensors added\nPress here to add sensors") + } + public enum UpdatedLabel { + public enum NoData { + /// No data during the last 10 days + public static let message = RuuviLocalization.tr("Localizable", "Cards.UpdatedLabel.NoData.message", fallback: "No data during the last 10 days") + } + } + public enum WebTagAPILimitExcededError { + public enum Alert { + /// Please try again in 5 minutes + public static let message = RuuviLocalization.tr("Localizable", "Cards.WebTagAPILimitExcededError.Alert.message", fallback: "Please try again in 5 minutes") + /// Too many requests + public static let title = RuuviLocalization.tr("Localizable", "Cards.WebTagAPILimitExcededError.Alert.title", fallback: "Too many requests") } - - public enum PresentNotifications { - /// Show Notifications - public static let title = RuuviLocalization.tr("Localizable", "Background.PresentNotifications.title", fallback: "Show Notifications") + } + } + public enum ChartSettings { + public enum AllPoints { + /// Charts may be updated slowly when enabled. + public static let description = RuuviLocalization.tr("Localizable", "ChartSettings.AllPoints.description", fallback: "Charts may be updated slowly when enabled.") + /// Show all measurements + public static let title = RuuviLocalization.tr("Localizable", "ChartSettings.AllPoints.title", fallback: "Show all measurements") + } + public enum DrawDots { + /// Small dots will help to understand when measurements were collected. + public static let description = RuuviLocalization.tr("Localizable", "ChartSettings.DrawDots.description", fallback: "Small dots will help to understand when measurements were collected.") + /// Show datapoints + public static let title = RuuviLocalization.tr("Localizable", "ChartSettings.DrawDots.title", fallback: "Show datapoints") + } + public enum Duration { + /// Configure the period of history to be shown on chart from 1 to 10 days. + public static let description = RuuviLocalization.tr("Localizable", "ChartSettings.Duration.description", fallback: "Configure the period of history to be shown on chart from 1 to 10 days.") + /// Chart History View Period + public static let title = RuuviLocalization.tr("Localizable", "ChartSettings.Duration.title", fallback: "Chart History View Period") + } + } + public enum CoreError { + /// Failed to get current location + public static let failedToGetCurrentLocation = RuuviLocalization.tr("Localizable", "CoreError.failedToGetCurrentLocation", fallback: "Failed to get current location") + /// Failed to get data from response + public static let failedToGetDataFromResponse = RuuviLocalization.tr("Localizable", "CoreError.failedToGetDataFromResponse", fallback: "Failed to get data from response") + /// Failed to get background directory + public static let failedToGetDocumentsDirectory = RuuviLocalization.tr("Localizable", "CoreError.failedToGetDocumentsDirectory", fallback: "Failed to get background directory") + /// Failed to get PNG representation + public static let failedToGetPngRepresentation = RuuviLocalization.tr("Localizable", "CoreError.failedToGetPngRepresentation", fallback: "Failed to get PNG representation") + /// Missing permission for Location Services + public static let locationPermissionDenied = RuuviLocalization.tr("Localizable", "CoreError.locationPermissionDenied", fallback: "Missing permission for Location Services") + /// Location permission authorisation status is not determined + public static let locationPermissionNotDetermined = RuuviLocalization.tr("Localizable", "CoreError.locationPermissionNotDetermined", fallback: "Location permission authorisation status is not determined") + /// Object invalidated + public static let objectInvalidated = RuuviLocalization.tr("Localizable", "CoreError.objectInvalidated", fallback: "Object invalidated") + /// Object not found + public static let objectNotFound = RuuviLocalization.tr("Localizable", "CoreError.objectNotFound", fallback: "Object not found") + /// Unable to send email + public static let unableToSendEmail = RuuviLocalization.tr("Localizable", "CoreError.unableToSendEmail", fallback: "Unable to send email") + } + public enum DFUUIView { + /// You are running the latest firmware version, no need to update + public static let alreadyOnLatest = RuuviLocalization.tr("Localizable", "DFUUIView.alreadyOnLatest", fallback: "You are running the latest firmware version, no need to update") + /// Current version: + public static let currentTitle = RuuviLocalization.tr("Localizable", "DFUUIView.currentTitle", fallback: "Current version:") + /// Do not close the app or power off the sensor during the update. + public static let doNotCloseTitle = RuuviLocalization.tr("Localizable", "DFUUIView.doNotCloseTitle", fallback: "Do not close the app or power off the sensor during the update.") + /// Downloading the latest firmware to be updated... + public static let downloadingTitle = RuuviLocalization.tr("Localizable", "DFUUIView.downloadingTitle", fallback: "Downloading the latest firmware to be updated...") + /// Latest available Ruuvi Firmware version: + public static let latestTitle = RuuviLocalization.tr("Localizable", "DFUUIView.latestTitle", fallback: "Latest available Ruuvi Firmware version:") + /// 2. Locate the small round black buttons on the white circuit board; older Ruuvi sensors have 2 buttons labelled “R” and “B” while newer ones have only one button without a label. + public static let locateBootButtonTitle = RuuviLocalization.tr("Localizable", "DFUUIView.locateBootButtonTitle", fallback: "2. Locate the small round black buttons on the white circuit board; older Ruuvi sensors have 2 buttons labelled “R” and “B” while newer ones have only one button without a label.") + /// Firmware Update + public static let navigationTitle = RuuviLocalization.tr("Localizable", "DFUUIView.navigationTitle", fallback: "Firmware Update") + /// Your sensor doesn't report its current firmware version. Either you're not in its Bluetooth range, it's connected to another phone, or it's running a very old firmware version. + public static let notReportingDescription = RuuviLocalization.tr("Localizable", "DFUUIView.notReportingDescription", fallback: "Your sensor doesn't report its current firmware version. Either you're not in its Bluetooth range, it's connected to another phone, or it's running a very old firmware version.") + /// 1. Open the cover of your Ruuvi sensor + public static let openCoverTitle = RuuviLocalization.tr("Localizable", "DFUUIView.openCoverTitle", fallback: "1. Open the cover of your Ruuvi sensor") + /// Prepare your sensor + public static let prepareTitle = RuuviLocalization.tr("Localizable", "DFUUIView.prepareTitle", fallback: "Prepare your sensor") + /// Searching for a sensor + public static let searchingTitle = RuuviLocalization.tr("Localizable", "DFUUIView.searchingTitle", fallback: "Searching for a sensor") + /// 3. Set the sensor to updating mode: + public static let setUpdatingModeTitle = RuuviLocalization.tr("Localizable", "DFUUIView.setUpdatingModeTitle", fallback: "3. Set the sensor to updating mode:") + /// Start the update + public static let startTitle = RuuviLocalization.tr("Localizable", "DFUUIView.startTitle", fallback: "Start the update") + /// Start update process + public static let startUpdateProcess = RuuviLocalization.tr("Localizable", "DFUUIView.startUpdateProcess", fallback: "Start update process") + /// Update successful + public static let successfulTitle = RuuviLocalization.tr("Localizable", "DFUUIView.successfulTitle", fallback: "Update successful") + /// 3.2. If your sensor has a single button: keep the button pressed for 10 seconds. + public static let toBootModeOneButtonDescription = RuuviLocalization.tr("Localizable", "DFUUIView.toBootModeOneButtonDescription", fallback: "3.2. If your sensor has a single button: keep the button pressed for 10 seconds.") + /// 4. If set successfully, you will see a solid red light lit on the circuit board and the button in the app will change to “Start the update”. + public static let toBootModeSuccessTitle = RuuviLocalization.tr("Localizable", "DFUUIView.toBootModeSuccessTitle", fallback: "4. If set successfully, you will see a solid red light lit on the circuit board and the button in the app will change to “Start the update”.") + /// 3.1. If your sensor has 2 buttons: keep “B” button pressed while tapping button “R” momentarily. Release button “B”. + public static let toBootModeTwoButtonsDescription = RuuviLocalization.tr("Localizable", "DFUUIView.toBootModeTwoButtonsDescription", fallback: "3.1. If your sensor has 2 buttons: keep “B” button pressed while tapping button “R” momentarily. Release button “B”.") + /// Updating... + public static let updatingTitle = RuuviLocalization.tr("Localizable", "DFUUIView.updatingTitle", fallback: "Updating...") + public enum DBMigration { + public enum Error { + /// The update was successful, but an unexpected database migration error occurred. To continue using this sensor, please remove it from the app and then add it again. + public static let message = RuuviLocalization.tr("Localizable", "DFUUIView.DBMigration.Error.message", fallback: "The update was successful, but an unexpected database migration error occurred. To continue using this sensor, please remove it from the app and then add it again.") } - - public enum ReadRSSITitle { - /// Read RSSI - public static let title = RuuviLocalization.tr("Localizable", "Background.readRSSITitle.title", fallback: "Read RSSI") + } + public enum LowBattery { + public enum Warning { + /// Sensor's battery voltage seems to be low and the firmware update process may fail. We recommend to replace the battery before updating. + public static let message = RuuviLocalization.tr("Localizable", "DFUUIView.lowBattery.warning.message", fallback: "Sensor's battery voltage seems to be low and the firmware update process may fail. We recommend to replace the battery before updating.") } + } } - - public enum BluetoothError { - /// Disconnected - public static let disconnected = RuuviLocalization.tr("Localizable", "BluetoothError.disconnected", fallback: "Disconnected") + public enum Defaults { + public enum AlertsMuteInterval { + /// Alerts Mute Interval + public static let title = RuuviLocalization.tr("Localizable", "Defaults.AlertsMuteInterval.title", fallback: "Alerts Mute Interval") + } + public enum AlertsRepeatInterval { + /// Alerts Interval + public static let title = RuuviLocalization.tr("Localizable", "Defaults.AlertsRepeatInterval.title", fallback: "Alerts Interval") + } + public enum AppLaunchRequiredForReview { + public enum Count { + /// App launch count to ask for review for the first time + public static let title = RuuviLocalization.tr("Localizable", "Defaults.AppLaunchRequiredForReview.Count.title", fallback: "App launch count to ask for review for the first time") + } + } + public enum AskReviewIfLaunchDivisibleBy { + public enum Count { + /// Ask review if app launch divisible by + public static let title = RuuviLocalization.tr("Localizable", "Defaults.AskReviewIfLaunchDivisibleBy.Count.title", fallback: "Ask review if app launch divisible by") + } + } + public enum CardsSwipeHint { + /// Cards Swipe Hint Was Shown + public static let title = RuuviLocalization.tr("Localizable", "Defaults.CardsSwipeHint.title", fallback: "Cards Swipe Hint Was Shown") + } + public enum ChartDurationHours { + /// Chart Duration + public static let title = RuuviLocalization.tr("Localizable", "Defaults.ChartDurationHours.title", fallback: "Chart Duration") + } + public enum ChartIntervalSeconds { + /// Chart Interval + public static let title = RuuviLocalization.tr("Localizable", "Defaults.ChartIntervalSeconds.title", fallback: "Chart Interval") + } + public enum ChartsSwipeInstructionWasShown { + /// Charts Swipe Hint Was Shown + public static let title = RuuviLocalization.tr("Localizable", "Defaults.ChartsSwipeInstructionWasShown.title", fallback: "Charts Swipe Hint Was Shown") + } + public enum ConnectionTimeout { + /// Connection Timeout + public static let title = RuuviLocalization.tr("Localizable", "Defaults.ConnectionTimeout.title", fallback: "Connection Timeout") + } + public enum DashboardTapActionChart { + /// Show Chart on Dashboard Card Tap + public static let title = RuuviLocalization.tr("Localizable", "Defaults.DashboardTapActionChart.title", fallback: "Show Chart on Dashboard Card Tap") + } + public enum DevServer { + /// Changing Ruuvi Cloud endpoint requires signing out from current session and restart the app. Are you sure? + public static let message = RuuviLocalization.tr("Localizable", "Defaults.DevServer.message", fallback: "Changing Ruuvi Cloud endpoint requires signing out from current session and restart the app. Are you sure?") + /// Use Dev Server + public static let title = RuuviLocalization.tr("Localizable", "Defaults.DevServer.title", fallback: "Use Dev Server") + } + public enum HideNFC { + /// Hide NFC Option for sensor contest + public static let title = RuuviLocalization.tr("Localizable", "Defaults.HideNFC.title", fallback: "Hide NFC Option for sensor contest") + } + public enum Interval { + public enum Hour { + /// h + public static let string = RuuviLocalization.tr("Localizable", "Defaults.Interval.Hour.string", fallback: "h") + } + public enum Min { + /// min + public static let string = RuuviLocalization.tr("Localizable", "Defaults.Interval.Min.string", fallback: "min") + } + public enum Sec { + /// sec + public static let string = RuuviLocalization.tr("Localizable", "Defaults.Interval.Sec.string", fallback: "sec") + } + } + public enum PruningOffsetHours { + /// Pruning Offset Hours + public static let title = RuuviLocalization.tr("Localizable", "Defaults.PruningOffsetHours.title", fallback: "Pruning Offset Hours") + } + public enum ServiceTimeout { + /// Service Timeout + public static let title = RuuviLocalization.tr("Localizable", "Defaults.ServiceTimeout.title", fallback: "Service Timeout") + } + public enum ShowEmailAlertsSettings { + /// Show email alerts settings + public static let title = RuuviLocalization.tr("Localizable", "Defaults.ShowEmailAlertsSettings.title", fallback: "Show email alerts settings") + } + public enum ShowPushAlertsSettings { + /// Show push alerts settings + public static let title = RuuviLocalization.tr("Localizable", "Defaults.ShowPushAlertsSettings.title", fallback: "Show push alerts settings") + } + public enum UserAuthorized { + /// User Authorized + public static let title = RuuviLocalization.tr("Localizable", "Defaults.UserAuthorized.title", fallback: "User Authorized") + } + public enum WebPullInterval { + /// Web Alerts Interval + public static let title = RuuviLocalization.tr("Localizable", "Defaults.WebPullInterval.title", fallback: "Web Alerts Interval") + } + public enum WelcomeShown { + /// Welcome Displayed + public static let title = RuuviLocalization.tr("Localizable", "Defaults.WelcomeShown.title", fallback: "Welcome Displayed") + } + public enum NavigationItem { + /// Defaults + public static let title = RuuviLocalization.tr("Localizable", "Defaults.navigationItem.title", fallback: "Defaults") + } } - - public enum Cards { - public enum Alert { - public enum AlreadyLoggedIn { - /// User %@ is already signed in. If you'd like to use a different account, please sign out first and then try again. - public static func message(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "Cards.Alert.AlreadyLoggedIn.message", String(describing: p1), fallback: "User %@ is already signed in. If you'd like to use a different account, please sign out first and then try again.") - } - } + public enum Devices { + /// Token Id + public static let tokenId = RuuviLocalization.tr("Localizable", "Devices.tokenId", fallback: "Token Id") + } + public enum DfuDevicesScanner { + public enum BluetoothDisabled { + /// (Bluetooth is disabled) + public static let text = RuuviLocalization.tr("Localizable", "DfuDevicesScanner.BluetoothDisabled.text", fallback: "(Bluetooth is disabled)") + } + public enum BluetoothDisabledAlert { + /// Ruuvi Station needs Bluetooth to be able to listen for sensors. Go to Settings and turn Bluetooth on. + public static let message = RuuviLocalization.tr("Localizable", "DfuDevicesScanner.BluetoothDisabledAlert.message", fallback: "Ruuvi Station needs Bluetooth to be able to listen for sensors. Go to Settings and turn Bluetooth on.") + /// Bluetooth is not enabled + public static let title = RuuviLocalization.tr("Localizable", "DfuDevicesScanner.BluetoothDisabledAlert.title", fallback: "Bluetooth is not enabled") + } + public enum Description { + /// Find and select sensor "RuuviBoot". + public static let text = RuuviLocalization.tr("Localizable", "DfuDevicesScanner.Description.text", fallback: "Find and select sensor \"RuuviBoot\".") + } + public enum NoDevice { + /// (No sensors in Bluetooth range) + public static let text = RuuviLocalization.tr("Localizable", "DfuDevicesScanner.NoDevice.text", fallback: "(No sensors in Bluetooth range)") + } + public enum Title { + /// Devices + public static let text = RuuviLocalization.tr("Localizable", "DfuDevicesScanner.Title.text", fallback: "Devices") + } + } + public enum DfuFlash { + public enum Cancel { + /// CANCEL + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Cancel.text", fallback: "CANCEL") + } + public enum CancelAlert { + /// Are you sure you want to cancel the firmware update process? + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.CancelAlert.text", fallback: "Are you sure you want to cancel the firmware update process?") + } + public enum Finish { + /// FINISH + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Finish.text", fallback: "FINISH") + } + public enum FinishGuide { + /// Firmware update process has been completed successfully. + /// Your RuuviTag sensor is ready for use! + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.FinishGuide.text", fallback: "Firmware update process has been completed successfully.\nYour RuuviTag sensor is ready for use!") + } + public enum Firmware { + public enum BootloaderSize { + /// Bootloader size + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Firmware.BootloaderSize.text", fallback: "Bootloader size") + } + public enum FileName { + /// File name + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Firmware.FileName.text", fallback: "File name") + } + public enum Parts { + /// Parts + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Firmware.Parts.text", fallback: "Parts") + } + public enum Size { + /// Size + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Firmware.Size.text", fallback: "Size") + } + public enum SoftDeviceSize { + /// Soft Device size + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Firmware.SoftDeviceSize.text", fallback: "Soft Device size") + } + } + public enum FirmwareSelectionGuide { + /// Locate the previously downloaded ZIP file on your mobile device. + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.FirmwareSelectionGuide.text", fallback: "Locate the previously downloaded ZIP file on your mobile device.") + } + public enum OpenDocumentPicker { + /// OPEN DOCUMENT PICKER + public static let title = RuuviLocalization.tr("Localizable", "DfuFlash.OpenDocumentPicker.title", fallback: "OPEN DOCUMENT PICKER") + } + public enum Progress { + /// Progress + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Progress.text", fallback: "Progress") + } + public enum Start { + /// Start + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Start.text", fallback: "Start") + } + public enum Step { + /// Step + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Step.text", fallback: "Step") + } + public enum Steps { + public enum Completed { + /// Completed + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Steps.Completed.text", fallback: "Completed") + } + public enum PackageSelection { + /// Package selection + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Steps.PackageSelection.text", fallback: "Package selection") + } + public enum ReadyForUpload { + /// Ready For upload + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Steps.ReadyForUpload.text", fallback: "Ready For upload") + } + public enum Uploading { + /// Uploading + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Steps.Uploading.text", fallback: "Uploading") + } + } + public enum Title { + /// DFU Flash + public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Title.text", fallback: "DFU Flash") + } + } + public enum DiscoverTable { + public enum BluetoothDisabledAlert { + /// Ruuvi Station needs Bluetooth to be able to listen for sensors. Go to Settings and turn Bluetooth on. + public static let message = RuuviLocalization.tr("Localizable", "DiscoverTable.BluetoothDisabledAlert.message", fallback: "Ruuvi Station needs Bluetooth to be able to listen for sensors. Go to Settings and turn Bluetooth on.") + /// Bluetooth is not enabled + public static let title = RuuviLocalization.tr("Localizable", "DiscoverTable.BluetoothDisabledAlert.title", fallback: "Bluetooth is not enabled") + } + public enum GetMoreSensors { + public enum Button { + /// Buy Ruuvi Sensors + public static let title = RuuviLocalization.tr("Localizable", "DiscoverTable.GetMoreSensors.button.title", fallback: "Buy Ruuvi Sensors") + } + } + public enum NavigationItem { + /// Add a New Sensor + public static let title = RuuviLocalization.tr("Localizable", "DiscoverTable.NavigationItem.title", fallback: "Add a New Sensor") + } + public enum NoDevicesSection { + public enum BluetoothDisabled { + /// (Bluetooth is disabled) + public static let text = RuuviLocalization.tr("Localizable", "DiscoverTable.NoDevicesSection.BluetoothDisabled.text", fallback: "(Bluetooth is disabled)") + } + public enum NotFound { + /// (No sensors in Bluetooth range) + public static let text = RuuviLocalization.tr("Localizable", "DiscoverTable.NoDevicesSection.NotFound.text", fallback: "(No sensors in Bluetooth range)") + } + } + public enum RuuviDevice { + /// Ruuvi + public static let `prefix` = RuuviLocalization.tr("Localizable", "DiscoverTable.RuuviDevice.prefix", fallback: "Ruuvi") + } + public enum SectionTitle { + /// Nearby Ruuvi sensors + public static let devices = RuuviLocalization.tr("Localizable", "DiscoverTable.SectionTitle.Devices", fallback: "Nearby Ruuvi sensors") + /// Virtual sensors + public static let webTags = RuuviLocalization.tr("Localizable", "DiscoverTable.SectionTitle.WebTags", fallback: "Virtual sensors") + } + public enum WebTagsInfoDialog { + /// Virtual Sensors show public weather data provided by local weather stations. + public static let message = RuuviLocalization.tr("Localizable", "DiscoverTable.WebTagsInfoDialog.message", fallback: "Virtual Sensors show public weather data provided by local weather stations.") + } + } + public enum ErrorPresenterAlert { + /// Error + public static let error = RuuviLocalization.tr("Localizable", "ErrorPresenterAlert.Error", fallback: "Error") + /// OK + public static let ok = RuuviLocalization.tr("Localizable", "ErrorPresenterAlert.OK", fallback: "OK") + } + public enum ExpectedError { + /// Unable to remove a connected device that is not reachable. Please check your Bluetooth connection. + public static let failedToDeleteTag = RuuviLocalization.tr("Localizable", "ExpectedError.failedToDeleteTag", fallback: "Unable to remove a connected device that is not reachable. Please check your Bluetooth connection.") + /// App is already in the process of syncing logs with this sensor + public static let isAlreadySyncingLogsWithThisTag = RuuviLocalization.tr("Localizable", "ExpectedError.isAlreadySyncingLogsWithThisTag", fallback: "App is already in the process of syncing logs with this sensor") + /// Missing OpenWeatherMap API Key. Please get one from openweathermap.org website and enter it in the station/Classes/Networking/Assembly/Networking.plist file + public static let missingOpenWeatherMapAPIKey = RuuviLocalization.tr("Localizable", "ExpectedError.missingOpenWeatherMapAPIKey", fallback: "Missing OpenWeatherMap API Key. Please get one from openweathermap.org website and enter it in the station/Classes/Networking/Assembly/Networking.plist file") + } + public enum ExportService { + /// Acceleration X + public static let accelerationX = RuuviLocalization.tr("Localizable", "ExportService.AccelerationX", fallback: "Acceleration X") + /// Acceleration Y + public static let accelerationY = RuuviLocalization.tr("Localizable", "ExportService.AccelerationY", fallback: "Acceleration Y") + /// Acceleration Z + public static let accelerationZ = RuuviLocalization.tr("Localizable", "ExportService.AccelerationZ", fallback: "Acceleration Z") + /// Date + public static let date = RuuviLocalization.tr("Localizable", "ExportService.Date", fallback: "Date") + /// Dew point (%@) + public static func dewPoint(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "ExportService.DewPoint", String(describing: p1), fallback: "Dew point (%@)") + } + /// Humidity (%@) + public static func humidity(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "ExportService.Humidity", String(describing: p1), fallback: "Humidity (%@)") + } + /// ISO8601 + public static let iso8601 = RuuviLocalization.tr("Localizable", "ExportService.ISO8601", fallback: "ISO8601") + /// Measurement Sequence Number + public static let measurementSequenceNumber = RuuviLocalization.tr("Localizable", "ExportService.MeasurementSequenceNumber", fallback: "Measurement Sequence Number") + /// Movement Counter + public static let movementCounter = RuuviLocalization.tr("Localizable", "ExportService.MovementCounter", fallback: "Movement Counter") + /// Pressure (%@) + public static func pressure(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "ExportService.Pressure", String(describing: p1), fallback: "Pressure (%@)") + } + /// Temperature (%@) + public static func temperature(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "ExportService.Temperature", String(describing: p1), fallback: "Temperature (%@)") + } + /// TX Power + public static let txPower = RuuviLocalization.tr("Localizable", "ExportService.TXPower", fallback: "TX Power") + /// Voltage (V) + public static let voltage = RuuviLocalization.tr("Localizable", "ExportService.Voltage", fallback: "Voltage (V)") + } + public enum Foreground { + public enum Interval { + public enum All { + /// All + public static let string = RuuviLocalization.tr("Localizable", "Foreground.Interval.All.string", fallback: "All") } - - public enum BluetoothDisabledAlert { - /// Ruuvi Station needs Bluetooth to be able to listen for sensors. Go to Settings and turn Bluetooth on. - public static let message = RuuviLocalization.tr("Localizable", "Cards.BluetoothDisabledAlert.message", fallback: "Ruuvi Station needs Bluetooth to be able to listen for sensors. Go to Settings and turn Bluetooth on.") - /// Bluetooth is not enabled - public static let title = RuuviLocalization.tr("Localizable", "Cards.BluetoothDisabledAlert.title", fallback: "Bluetooth is not enabled") + public enum Every { + /// Every + public static let string = RuuviLocalization.tr("Localizable", "Foreground.Interval.Every.string", fallback: "Every") } - - public enum Connected { - /// Connected - public static let title = RuuviLocalization.tr("Localizable", "Cards.Connected.title", fallback: "Connected") + public enum Min { + /// min + public static let string = RuuviLocalization.tr("Localizable", "Foreground.Interval.Min.string", fallback: "min") } - - public enum Error { - public enum ReverseGeocodingFailed { - /// Failed to load data for Virtual Sensor. Reverse geocode operation limit exceeded. - public static let message = RuuviLocalization.tr("Localizable", "Cards.Error.ReverseGeocodingFailed.message", fallback: "Failed to load data for Virtual Sensor. Reverse geocode operation limit exceeded.") - } + } + public enum NavigationItem { + /// Foreground + public static let title = RuuviLocalization.tr("Localizable", "Foreground.navigationItem.title", fallback: "Foreground") + } + } + public enum ForegroundRow { + public enum Advertisement { + /// ADVERTISEMENTS + public static let section = RuuviLocalization.tr("Localizable", "ForegroundRow.advertisement.section", fallback: "ADVERTISEMENTS") + /// Save advertisements + public static let title = RuuviLocalization.tr("Localizable", "ForegroundRow.advertisement.title", fallback: "Save advertisements") + } + public enum Connection { + /// LOGS + public static let section = RuuviLocalization.tr("Localizable", "ForegroundRow.connection.section", fallback: "LOGS") + /// Connect and sync logs + public static let title = RuuviLocalization.tr("Localizable", "ForegroundRow.connection.title", fallback: "Connect and sync logs") + } + public enum WebTags { + /// VIRTUAL SENSORS + public static let section = RuuviLocalization.tr("Localizable", "ForegroundRow.webTags.section", fallback: "VIRTUAL SENSORS") + /// Load and save from web + public static let title = RuuviLocalization.tr("Localizable", "ForegroundRow.webTags.title", fallback: "Load and save from web") + } + } + public enum Heartbeat { + public enum Interval { + public enum All { + /// All + public static let string = RuuviLocalization.tr("Localizable", "Heartbeat.Interval.All.string", fallback: "All") } - - public enum KeepConnectionDialog { - /// Seems like you are running a connectable firmware on your Ruuvi device. Would you like to keep the connection open to this Ruuvi device in the background? This will allow histograms and alerts to work even when the application is minimised. - public static let message = RuuviLocalization.tr("Localizable", "Cards.KeepConnectionDialog.message", fallback: "Seems like you are running a connectable firmware on your Ruuvi device. Would you like to keep the connection open to this Ruuvi device in the background? This will allow histograms and alerts to work even when the application is minimised.") - public enum Dismiss { - /// Cancel - public static let title = RuuviLocalization.tr("Localizable", "Cards.KeepConnectionDialog.Dismiss.title", fallback: "Cancel") - } - - public enum KeepConnection { - /// Keep the Connection - public static let title = RuuviLocalization.tr("Localizable", "Cards.KeepConnectionDialog.KeepConnection.title", fallback: "Keep the Connection") - } + public enum Every { + /// every + public static let string = RuuviLocalization.tr("Localizable", "Heartbeat.Interval.Every.string", fallback: "every") } - - public enum LegacyFirmwareUpdateDialog { - /// Looks like your sensor is using an old firmware software version. To access new features such as history graphs, alerts and cloud services, updating is mandatory. - public static let message = RuuviLocalization.tr("Localizable", "Cards.LegacyFirmwareUpdateDialog.message", fallback: "Looks like your sensor is using an old firmware software version. To access new features such as history graphs, alerts and cloud services, updating is mandatory.") - public enum CancelConfirmation { - /// Are you sure? Without updating, you won't be able to claim ownership of the sensor, download history graphs and set alerts. The update also includes bug fixes. If you cancel now, you can start the update process again from the sensor's settings page. - public static let message = RuuviLocalization.tr("Localizable", "Cards.LegacyFirmwareUpdateDialog.CancelConfirmation.message", fallback: "Are you sure? Without updating, you won't be able to claim ownership of the sensor, download history graphs and set alerts. The update also includes bug fixes. If you cancel now, you can start the update process again from the sensor's settings page.") - } - - public enum CheckForUpdate { - /// Check for update - public static let title = RuuviLocalization.tr("Localizable", "Cards.LegacyFirmwareUpdateDialog.CheckForUpdate.title", fallback: "Check for update") - } + public enum Min { + /// min + public static let string = RuuviLocalization.tr("Localizable", "Heartbeat.Interval.Min.string", fallback: "min") } - - public enum Movements { - /// movements - public static let title = RuuviLocalization.tr("Localizable", "Cards.Movements.title", fallback: "movements") + public enum Sec { + /// sec + public static let string = RuuviLocalization.tr("Localizable", "Heartbeat.Interval.Sec.string", fallback: "sec") } - - public enum NoSensors { - /// No sensors added - /// Press here to add sensors - public static let title = RuuviLocalization.tr("Localizable", "Cards.NoSensors.title", fallback: "No sensors added\nPress here to add sensors") + } + public enum ReadRSSITitle { + /// Read RSSI + public static let title = RuuviLocalization.tr("Localizable", "Heartbeat.readRSSITitle.title", fallback: "Read RSSI") + } + } + public enum HumidityCalibration { + public enum Button { + public enum Calibrate { + /// Calibrate + public static let title = RuuviLocalization.tr("Localizable", "HumidityCalibration.Button.Calibrate.title", fallback: "Calibrate") } - - public enum UpdatedLabel { - public enum NoData { - /// No data during the last 10 days - public static let message = RuuviLocalization.tr("Localizable", "Cards.UpdatedLabel.NoData.message", fallback: "No data during the last 10 days") - } + public enum Clear { + /// Clear + public static let title = RuuviLocalization.tr("Localizable", "HumidityCalibration.Button.Clear.title", fallback: "Clear") + } + public enum Close { + /// Close + public static let title = RuuviLocalization.tr("Localizable", "HumidityCalibration.Button.Close.title", fallback: "Close") + } + } + public enum CalibrationConfirmationAlert { + /// You are going to calibrate humidity offset. Tap "Confirm" to continue + public static let message = RuuviLocalization.tr("Localizable", "HumidityCalibration.CalibrationConfirmationAlert.message", fallback: "You are going to calibrate humidity offset. Tap \"Confirm\" to continue") + /// Are you sure? + public static let title = RuuviLocalization.tr("Localizable", "HumidityCalibration.CalibrationConfirmationAlert.title", fallback: "Are you sure?") + } + public enum ClearCalibrationConfirmationAlert { + /// You are going to clear humidity offset. This can't be undone. Tap "Confirm" to continue. + public static let message = RuuviLocalization.tr("Localizable", "HumidityCalibration.ClearCalibrationConfirmationAlert.message", fallback: "You are going to clear humidity offset. This can't be undone. Tap \"Confirm\" to continue.") + /// Are you sure? + public static let title = RuuviLocalization.tr("Localizable", "HumidityCalibration.ClearCalibrationConfirmationAlert.title", fallback: "Are you sure?") + } + public enum Description { + /// In order to measure relative humidity as accurately as possible, a sodium chloride (salt) calibration is recommended. See video tutorials on how to easily do this at home. + public static let text = RuuviLocalization.tr("Localizable", "HumidityCalibration.Description.text", fallback: "In order to measure relative humidity as accurately as possible, a sodium chloride (salt) calibration is recommended. See video tutorials on how to easily do this at home.") + } + public enum Label { + public enum Note { + /// Note that calibration data will be stored locally in your mobile device. After Ruuvi Station uninstall and install, you may need to recalibrate. + public static let text = RuuviLocalization.tr("Localizable", "HumidityCalibration.Label.note.text", fallback: "Note that calibration data will be stored locally in your mobile device. After Ruuvi Station uninstall and install, you may need to recalibrate.") + } + } + public enum VideoTutorials { + /// video tutorials + public static let link = RuuviLocalization.tr("Localizable", "HumidityCalibration.VideoTutorials.link", fallback: "video tutorials") + } + public enum LastCalibrationDate { + /// Calibrated: %@ + public static func format(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "HumidityCalibration.lastCalibrationDate.format", String(describing: p1), fallback: "Calibrated: %@") + } + } + } + public enum HumidityUnit { + public enum Dew { + /// Dew point (%@) + public static func title(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "HumidityUnit.Dew.title", String(describing: p1), fallback: "Dew point (%@)") + } + } + public enum Percent { + /// Relative (%) + public static let title = RuuviLocalization.tr("Localizable", "HumidityUnit.Percent.title", fallback: "Relative (%)") + } + public enum Gm3 { + /// Absolute (g/m³) + public static let title = RuuviLocalization.tr("Localizable", "HumidityUnit.gm3.title", fallback: "Absolute (g/m³)") + } + } + public enum Interval { + public enum Day { + /// Day + public static let string = RuuviLocalization.tr("Localizable", "Interval.Day.string", fallback: "Day") + } + public enum Days { + /// Days + public static let string = RuuviLocalization.tr("Localizable", "Interval.Days.string", fallback: "Days") + } + } + public enum Language { + /// English + public static let english = RuuviLocalization.tr("Localizable", "Language.English", fallback: "English") + /// Suomi + public static let finnish = RuuviLocalization.tr("Localizable", "Language.Finnish", fallback: "Suomi") + /// Français + public static let french = RuuviLocalization.tr("Localizable", "Language.French", fallback: "Français") + /// Deutsch + public static let german = RuuviLocalization.tr("Localizable", "Language.German", fallback: "Deutsch") + /// Русский + public static let russian = RuuviLocalization.tr("Localizable", "Language.Russian", fallback: "Русский") + /// Svenska + public static let swedish = RuuviLocalization.tr("Localizable", "Language.Swedish", fallback: "Svenska") + } + public enum LocalNotificationsManager { + public enum DidConnect { + /// Connected + public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.DidConnect.title", fallback: "Connected") + } + public enum DidDisconnect { + /// Disconnected + public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.DidDisconnect.title", fallback: "Disconnected") + } + public enum DidMove { + /// Movement detected! + public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.DidMove.title", fallback: "Movement detected!") + } + public enum Disable { + /// Turn off + public static let button = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.Disable.button", fallback: "Turn off") + } + public enum HighDewPoint { + /// Dew Point is too high! + public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.HighDewPoint.title", fallback: "Dew Point is too high!") + } + public enum HighHumidity { + /// Air Humidity is too high! + public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.HighHumidity.title", fallback: "Air Humidity is too high!") + } + public enum HighPressure { + /// Air Pressure is too high! + public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.HighPressure.title", fallback: "Air Pressure is too high!") + } + public enum HighSignal { + /// Signal strength is too high! + public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.HighSignal.title", fallback: "Signal strength is too high!") + } + public enum HighTemperature { + /// Temperature is too high! + public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.HighTemperature.title", fallback: "Temperature is too high!") + } + public enum LowDewPoint { + /// Dew Point is too low! + public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.LowDewPoint.title", fallback: "Dew Point is too low!") + } + public enum LowHumidity { + /// Air Humidity is too low! + public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.LowHumidity.title", fallback: "Air Humidity is too low!") + } + public enum LowPressure { + /// Air Pressure is too low! + public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.LowPressure.title", fallback: "Air Pressure is too low!") + } + public enum LowSignal { + /// Signal strength is too low! + public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.LowSignal.title", fallback: "Signal strength is too low!") + } + public enum LowTemperature { + /// Temperature is too low! + public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.LowTemperature.title", fallback: "Temperature is too low!") + } + public enum Mute { + /// Mute for an hour + public static let button = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.Mute.button", fallback: "Mute for an hour") + } + } + public enum Menu { + public enum BuyGateway { + public enum Url { + /// https://ruuvi.com/gateway?utm_campaign=app_ua&utm_medium=referral&utm_source=ios + public static let ios = RuuviLocalization.tr("Localizable", "Menu.BuyGateway.URL.IOS", fallback: "https://ruuvi.com/gateway?utm_campaign=app_ua&utm_medium=referral&utm_source=ios") } - - public enum WebTagAPILimitExcededError { - public enum Alert { - /// Please try again in 5 minutes - public static let message = RuuviLocalization.tr("Localizable", "Cards.WebTagAPILimitExcededError.Alert.message", fallback: "Please try again in 5 minutes") - /// Too many requests - public static let title = RuuviLocalization.tr("Localizable", "Cards.WebTagAPILimitExcededError.Alert.title", fallback: "Too many requests") - } + } + public enum Label { + public enum AboutHelp { + /// About / Help + public static let text = RuuviLocalization.tr("Localizable", "Menu.Label.AboutHelp.text", fallback: "About / Help") } - } - - public enum ChartSettings { - public enum AllPoints { - /// Charts may be updated slowly when enabled. - public static let description = RuuviLocalization.tr("Localizable", "ChartSettings.AllPoints.description", fallback: "Charts may be updated slowly when enabled.") - /// Show all measurements - public static let title = RuuviLocalization.tr("Localizable", "ChartSettings.AllPoints.title", fallback: "Show all measurements") + public enum AddAnNewSensor { + /// Add a New Sensor + public static let text = RuuviLocalization.tr("Localizable", "Menu.Label.AddAnNewSensor.text", fallback: "Add a New Sensor") } - - public enum DrawDots { - /// Small dots will help to understand when measurements were collected. - public static let description = RuuviLocalization.tr("Localizable", "ChartSettings.DrawDots.description", fallback: "Small dots will help to understand when measurements were collected.") - /// Show datapoints - public static let title = RuuviLocalization.tr("Localizable", "ChartSettings.DrawDots.title", fallback: "Show datapoints") + public enum AppSettings { + /// App Settings + public static let text = RuuviLocalization.tr("Localizable", "Menu.Label.AppSettings.text", fallback: "App Settings") } - - public enum Duration { - /// Configure the period of history to be shown on chart from 1 to 10 days. - public static let description = RuuviLocalization.tr("Localizable", "ChartSettings.Duration.description", fallback: "Configure the period of history to be shown on chart from 1 to 10 days.") - /// Chart History View Period - public static let title = RuuviLocalization.tr("Localizable", "ChartSettings.Duration.title", fallback: "Chart History View Period") + public enum BuyRuuviGateway { + /// Buy Ruuvi Gateway + public static let text = RuuviLocalization.tr("Localizable", "Menu.Label.BuyRuuviGateway.text", fallback: "Buy Ruuvi Gateway") } + public enum Feedback { + /// Send Feedback + public static let text = RuuviLocalization.tr("Localizable", "Menu.Label.Feedback.text", fallback: "Send Feedback") + } + public enum GetMoreSensors { + /// Buy Ruuvi Sensors + public static let text = RuuviLocalization.tr("Localizable", "Menu.Label.GetMoreSensors.text", fallback: "Buy Ruuvi Sensors") + } + public enum MyRuuviAccount { + /// My Ruuvi Account + public static let text = RuuviLocalization.tr("Localizable", "Menu.Label.MyRuuviAccount.text", fallback: "My Ruuvi Account") + } + public enum WhatToMeasure { + /// What to measure with Ruuvi? + public static let text = RuuviLocalization.tr("Localizable", "Menu.Label.WhatToMeasure.text", fallback: "What to measure with Ruuvi?") + } + } + public enum LoggedIn { + /// Signed in: + public static let title = RuuviLocalization.tr("Localizable", "Menu.LoggedIn.title", fallback: "Signed in:") + } + public enum Measure { + public enum Url { + /// https://ruuvi.com/ideas?utm_campaign=app_ua&utm_medium=referral&utm_source=ios + public static let ios = RuuviLocalization.tr("Localizable", "Menu.Measure.URL.IOS", fallback: "https://ruuvi.com/ideas?utm_campaign=app_ua&utm_medium=referral&utm_source=ios") + } + } + public enum RuuviNetworkStatus { + /// Ruuvi Cloud status + public static let text = RuuviLocalization.tr("Localizable", "Menu.RuuviNetworkStatus.text", fallback: "Ruuvi Cloud status") + } + public enum SignOut { + /// Sign out + public static let text = RuuviLocalization.tr("Localizable", "Menu.SignOut.text", fallback: "Sign out") + } } - - public enum CoreError { - /// Failed to get current location - public static let failedToGetCurrentLocation = RuuviLocalization.tr("Localizable", "CoreError.failedToGetCurrentLocation", fallback: "Failed to get current location") - /// Failed to get data from response - public static let failedToGetDataFromResponse = RuuviLocalization.tr("Localizable", "CoreError.failedToGetDataFromResponse", fallback: "Failed to get data from response") - /// Failed to get background directory - public static let failedToGetDocumentsDirectory = RuuviLocalization.tr("Localizable", "CoreError.failedToGetDocumentsDirectory", fallback: "Failed to get background directory") - /// Failed to get PNG representation - public static let failedToGetPngRepresentation = RuuviLocalization.tr("Localizable", "CoreError.failedToGetPngRepresentation", fallback: "Failed to get PNG representation") - /// Missing permission for Location Services - public static let locationPermissionDenied = RuuviLocalization.tr("Localizable", "CoreError.locationPermissionDenied", fallback: "Missing permission for Location Services") - /// Location permission authorisation status is not determined - public static let locationPermissionNotDetermined = RuuviLocalization.tr("Localizable", "CoreError.locationPermissionNotDetermined", fallback: "Location permission authorisation status is not determined") - /// Object invalidated - public static let objectInvalidated = RuuviLocalization.tr("Localizable", "CoreError.objectInvalidated", fallback: "Object invalidated") - /// Object not found - public static let objectNotFound = RuuviLocalization.tr("Localizable", "CoreError.objectNotFound", fallback: "Object not found") - /// Unable to send email - public static let unableToSendEmail = RuuviLocalization.tr("Localizable", "CoreError.unableToSendEmail", fallback: "Unable to send email") + public enum MenuTableViewController { + /// none + public static let `none` = RuuviLocalization.tr("Localizable", "MenuTableViewController.None", fallback: "none") + /// User: %@ + public static func user(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "MenuTableViewController.User", String(describing: p1), fallback: "User: %@") + } } - - public enum DFUUIView { - /// You are running the latest firmware version, no need to update - public static let alreadyOnLatest = RuuviLocalization.tr("Localizable", "DFUUIView.alreadyOnLatest", fallback: "You are running the latest firmware version, no need to update") - /// Current version: - public static let currentTitle = RuuviLocalization.tr("Localizable", "DFUUIView.currentTitle", fallback: "Current version:") - /// Do not close the app or power off the sensor during the update. - public static let doNotCloseTitle = RuuviLocalization.tr("Localizable", "DFUUIView.doNotCloseTitle", fallback: "Do not close the app or power off the sensor during the update.") - /// Downloading the latest firmware to be updated... - public static let downloadingTitle = RuuviLocalization.tr("Localizable", "DFUUIView.downloadingTitle", fallback: "Downloading the latest firmware to be updated...") - /// Latest available Ruuvi Firmware version: - public static let latestTitle = RuuviLocalization.tr("Localizable", "DFUUIView.latestTitle", fallback: "Latest available Ruuvi Firmware version:") - /// 2. Locate the small round black buttons on the white circuit board; older Ruuvi sensors have 2 buttons labelled “R” and “B” while newer ones have only one button without a label. - public static let locateBootButtonTitle = RuuviLocalization.tr("Localizable", "DFUUIView.locateBootButtonTitle", fallback: "2. Locate the small round black buttons on the white circuit board; older Ruuvi sensors have 2 buttons labelled “R” and “B” while newer ones have only one button without a label.") - /// Firmware Update - public static let navigationTitle = RuuviLocalization.tr("Localizable", "DFUUIView.navigationTitle", fallback: "Firmware Update") - /// Your sensor doesn't report its current firmware version. Either you're not in its Bluetooth range, it's connected to another phone, or it's running a very old firmware version. - public static let notReportingDescription = RuuviLocalization.tr("Localizable", "DFUUIView.notReportingDescription", fallback: "Your sensor doesn't report its current firmware version. Either you're not in its Bluetooth range, it's connected to another phone, or it's running a very old firmware version.") - /// 1. Open the cover of your Ruuvi sensor - public static let openCoverTitle = RuuviLocalization.tr("Localizable", "DFUUIView.openCoverTitle", fallback: "1. Open the cover of your Ruuvi sensor") - /// Prepare your sensor - public static let prepareTitle = RuuviLocalization.tr("Localizable", "DFUUIView.prepareTitle", fallback: "Prepare your sensor") - /// Searching for a sensor - public static let searchingTitle = RuuviLocalization.tr("Localizable", "DFUUIView.searchingTitle", fallback: "Searching for a sensor") - /// 3. Set the sensor to updating mode: - public static let setUpdatingModeTitle = RuuviLocalization.tr("Localizable", "DFUUIView.setUpdatingModeTitle", fallback: "3. Set the sensor to updating mode:") - /// Start the update - public static let startTitle = RuuviLocalization.tr("Localizable", "DFUUIView.startTitle", fallback: "Start the update") - /// Start update process - public static let startUpdateProcess = RuuviLocalization.tr("Localizable", "DFUUIView.startUpdateProcess", fallback: "Start update process") - /// Update successful - public static let successfulTitle = RuuviLocalization.tr("Localizable", "DFUUIView.successfulTitle", fallback: "Update successful") - /// 3.2. If your sensor has a single button: keep the button pressed for 10 seconds. - public static let toBootModeOneButtonDescription = RuuviLocalization.tr("Localizable", "DFUUIView.toBootModeOneButtonDescription", fallback: "3.2. If your sensor has a single button: keep the button pressed for 10 seconds.") - /// 4. If set successfully, you will see a solid red light lit on the circuit board and the button in the app will change to “Start the update”. - public static let toBootModeSuccessTitle = RuuviLocalization.tr("Localizable", "DFUUIView.toBootModeSuccessTitle", fallback: "4. If set successfully, you will see a solid red light lit on the circuit board and the button in the app will change to “Start the update”.") - /// 3.1. If your sensor has 2 buttons: keep “B” button pressed while tapping button “R” momentarily. Release button “B”. - public static let toBootModeTwoButtonsDescription = RuuviLocalization.tr("Localizable", "DFUUIView.toBootModeTwoButtonsDescription", fallback: "3.1. If your sensor has 2 buttons: keep “B” button pressed while tapping button “R” momentarily. Release button “B”.") - /// Updating... - public static let updatingTitle = RuuviLocalization.tr("Localizable", "DFUUIView.updatingTitle", fallback: "Updating...") - public enum DBMigration { - public enum Error { - /// The update was successful, but an unexpected database migration error occurred. To continue using this sensor, please remove it from the app and then add it again. - public static let message = RuuviLocalization.tr("Localizable", "DFUUIView.DBMigration.Error.message", fallback: "The update was successful, but an unexpected database migration error occurred. To continue using this sensor, please remove it from the app and then add it again.") - } - } - - public enum LowBattery { - public enum Warning { - /// Sensor's battery voltage seems to be low and the firmware update process may fail. We recommend to replace the battery before updating. - public static let message = RuuviLocalization.tr("Localizable", "DFUUIView.lowBattery.warning.message", fallback: "Sensor's battery voltage seems to be low and the firmware update process may fail. We recommend to replace the battery before updating.") - } + public enum MyRuuvi { + public enum Settings { + public enum DeleteAccount { + /// Delete Account + public static let title = RuuviLocalization.tr("Localizable", "MyRuuvi.Settings.DeleteAccount.title", fallback: "Delete Account") + public enum Confirmation { + /// A confirmation has been sent to your email. To proceed with the deletion, please check your inbox and follow the instructions. + public static let message = RuuviLocalization.tr("Localizable", "MyRuuvi.Settings.DeleteAccount.Confirmation.message", fallback: "A confirmation has been sent to your email. To proceed with the deletion, please check your inbox and follow the instructions.") + } } + } } - - public enum Defaults { - public enum AlertsMuteInterval { - /// Alerts Mute Interval - public static let title = RuuviLocalization.tr("Localizable", "Defaults.AlertsMuteInterval.title", fallback: "Alerts Mute Interval") + public enum OWMError { + /// API limit exceeded + public static let apiLimitExceeded = RuuviLocalization.tr("Localizable", "OWMError.apiLimitExceeded", fallback: "API limit exceeded") + /// Failed to parse Open Weather Map response + public static let failedToParseOpenWeatherMapResponse = RuuviLocalization.tr("Localizable", "OWMError.failedToParseOpenWeatherMapResponse", fallback: "Failed to parse Open Weather Map response") + /// Invalid API Key + public static let invalidApiKey = RuuviLocalization.tr("Localizable", "OWMError.invalidApiKey", fallback: "Invalid API Key") + /// Not an HTTP response + public static let notAHttpResponse = RuuviLocalization.tr("Localizable", "OWMError.notAHttpResponse", fallback: "Not an HTTP response") + } + public enum OffsetCorrection { + public enum Calibrate { + /// Offset correction + public static let button = RuuviLocalization.tr("Localizable", "OffsetCorrection.Calibrate.button", fallback: "Offset correction") + } + public enum CalibrationDescription { + /// In normal use, it's not necessary to adjust the offset. + /// + /// If you're an advanced user and you'd like to manually configure the factory calibrated sensors, it's possible to do so. + /// + /// Calibration tips are available on ruuvi.com/support + public static let text = RuuviLocalization.tr("Localizable", "OffsetCorrection.CalibrationDescription.text", fallback: "In normal use, it's not necessary to adjust the offset.\n\nIf you're an advanced user and you'd like to manually configure the factory calibrated sensors, it's possible to do so.\n\nCalibration tips are available on ruuvi.com/support") + } + public enum CorrectedValue { + /// Corrected value + public static let title = RuuviLocalization.tr("Localizable", "OffsetCorrection.CorrectedValue.title", fallback: "Corrected value") + } + public enum Dialog { + public enum Calibration { + /// Clear calibration settings? + public static let clearConfirm = RuuviLocalization.tr("Localizable", "OffsetCorrection.Dialog.Calibration.ClearConfirm", fallback: "Clear calibration settings?") + /// Enter the expected humidity value from sensor under current conditions (%@): + public static func enterHumidity(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "OffsetCorrection.Dialog.Calibration.EnterHumidity", String(describing: p1), fallback: "Enter the expected humidity value from sensor under current conditions (%@): ") + } + /// Enter the expected pressure value from sensor under current conditions (%@): + public static func enterPressure(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "OffsetCorrection.Dialog.Calibration.EnterPressure", String(describing: p1), fallback: "Enter the expected pressure value from sensor under current conditions (%@): ") + } + /// Enter the expected temperature value from sensor under current conditions (%@): + public static func enterTemperature(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "OffsetCorrection.Dialog.Calibration.EnterTemperature", String(describing: p1), fallback: "Enter the expected temperature value from sensor under current conditions (%@): ") + } + /// Calibration setup + public static let title = RuuviLocalization.tr("Localizable", "OffsetCorrection.Dialog.Calibration.Title", fallback: "Calibration setup") + } + } + public enum Humidity { + /// Humidity offset + public static let title = RuuviLocalization.tr("Localizable", "OffsetCorrection.Humidity.Title", fallback: "Humidity offset") + } + public enum OriginalValue { + /// Original measured value + public static let title = RuuviLocalization.tr("Localizable", "OffsetCorrection.OriginalValue.title", fallback: "Original measured value") + } + public enum Pressure { + /// Pressure offset + public static let title = RuuviLocalization.tr("Localizable", "OffsetCorrection.Pressure.Title", fallback: "Pressure offset") + } + public enum Temperature { + /// Temperature offset + public static let title = RuuviLocalization.tr("Localizable", "OffsetCorrection.Temperature.Title", fallback: "Temperature offset") + } + } + public enum Owner { + /// Claim sensor + public static let title = RuuviLocalization.tr("Localizable", "Owner.title", fallback: "Claim sensor") + public enum Claim { + /// Do you own this sensor? If yes, please claim ownership of the sensor and it'll be added to your Ruuvi account. Each Ruuvi sensor can have only one owner. To claim ownership, you need to be signed in. + /// + /// Benefits: + /// + /// ● Sensor names, background images, offsets and alert settings will be securely stored on the cloud + /// + /// ● Access sensors remotely over the Internet (requires a Ruuvi Gateway) + /// + /// ● Share sensors with friends and family (requires a Ruuvi Gateway) + /// + /// ● Browse up to 2 years of history on station.ruuvi.com (requires a Ruuvi Gateway) + public static let description = RuuviLocalization.tr("Localizable", "Owner.Claim.description", fallback: "Do you own this sensor? If yes, please claim ownership of the sensor and it'll be added to your Ruuvi account. Each Ruuvi sensor can have only one owner. To claim ownership, you need to be signed in.\n\nBenefits:\n\n ● Sensor names, background images, offsets and alert settings will be securely stored on the cloud\n\n ● Access sensors remotely over the Internet (requires a Ruuvi Gateway)\n\n ● Share sensors with friends and family (requires a Ruuvi Gateway)\n\n ● Browse up to 2 years of history on station.ruuvi.com (requires a Ruuvi Gateway)") + } + public enum ClaimOwnership { + /// Claim ownership + public static let button = RuuviLocalization.tr("Localizable", "Owner.ClaimOwnership.button", fallback: "Claim ownership") + } + } + public enum PermissionPresenter { + /// Settings + public static let settings = RuuviLocalization.tr("Localizable", "PermissionPresenter.settings", fallback: "Settings") + public enum NoCameraAccess { + /// Ruuvi Station needs to access your camera to enable this feature. + public static let message = RuuviLocalization.tr("Localizable", "PermissionPresenter.NoCameraAccess.message", fallback: "Ruuvi Station needs to access your camera to enable this feature.") + } + public enum NoLocationAccess { + /// Ruuvi Station needs to access your location to enable this feature. + public static let message = RuuviLocalization.tr("Localizable", "PermissionPresenter.NoLocationAccess.message", fallback: "Ruuvi Station needs to access your location to enable this feature.") + } + public enum NoPhotoLibraryAccess { + /// Ruuvi Station needs to access your camera library to enable this feature. + public static let message = RuuviLocalization.tr("Localizable", "PermissionPresenter.NoPhotoLibraryAccess.message", fallback: "Ruuvi Station needs to access your camera library to enable this feature.") + } + public enum NoPushNotificationsPermission { + /// Ruuvi Station needs push notifications permission to enable this feature + public static let message = RuuviLocalization.tr("Localizable", "PermissionPresenter.NoPushNotificationsPermission.message", fallback: "Ruuvi Station needs push notifications permission to enable this feature") + } + } + public enum PhotoPicker { + public enum Sheet { + /// Take photo + public static let camera = RuuviLocalization.tr("Localizable", "PhotoPicker.Sheet.camera", fallback: "Take photo") + /// Choose from files + public static let files = RuuviLocalization.tr("Localizable", "PhotoPicker.Sheet.files", fallback: "Choose from files") + /// Choose from the library + public static let library = RuuviLocalization.tr("Localizable", "PhotoPicker.Sheet.library", fallback: "Choose from the library") + /// Pick a photo + public static let message = RuuviLocalization.tr("Localizable", "PhotoPicker.Sheet.message", fallback: "Pick a photo") + } + } + public enum Ruuvi { + public enum BuySensors { + public enum Menu { + public enum Url { + /// https://ruuvi.com/products?utm_campaign=app_ua_nav&utm_medium=referral&utm_source=ios + public static let ios = RuuviLocalization.tr("Localizable", "Ruuvi.BuySensors.Menu.URL.IOS", fallback: "https://ruuvi.com/products?utm_campaign=app_ua_nav&utm_medium=referral&utm_source=ios") + } } - - public enum AlertsRepeatInterval { - /// Alerts Interval - public static let title = RuuviLocalization.tr("Localizable", "Defaults.AlertsRepeatInterval.title", fallback: "Alerts Interval") + public enum Url { + /// https://ruuvi.com/products?utm_campaign=app_ua&utm_medium=referral&utm_source=ios + public static let ios = RuuviLocalization.tr("Localizable", "Ruuvi.BuySensors.URL.IOS", fallback: "https://ruuvi.com/products?utm_campaign=app_ua&utm_medium=referral&utm_source=ios") } - - public enum AppLaunchRequiredForReview { - public enum Count { - /// App launch count to ask for review for the first time - public static let title = RuuviLocalization.tr("Localizable", "Defaults.AppLaunchRequiredForReview.Count.title", fallback: "App launch count to ask for review for the first time") - } + } + } + public enum RuuviCloudApiError { + /// Empty response + public static let emptyResponse = RuuviLocalization.tr("Localizable", "RuuviCloudApiError.emptyResponse", fallback: "Empty response") + /// Failed to get data from response + public static let failedToGetDataFromResponse = RuuviLocalization.tr("Localizable", "RuuviCloudApiError.failedToGetDataFromResponse", fallback: "Failed to get data from response") + /// Unexpected HTTP status code + public static let unexpectedHTTPStatusCode = RuuviLocalization.tr("Localizable", "RuuviCloudApiError.unexpectedHTTPStatusCode", fallback: "Unexpected HTTP status code") + } + public enum RuuviCloudError { + /// Not authorised + public static let notAuthorized = RuuviLocalization.tr("Localizable", "RuuviCloudError.NotAuthorized", fallback: "Not authorised") + } + public enum RuuviDfuError { + /// Failed to construct UUID + public static let failedToConstructUUID = RuuviLocalization.tr("Localizable", "RuuviDfuError.failedToConstructUUID", fallback: "Failed to construct UUID") + /// Invalid firmware file + public static let invalidFirmwareFile = RuuviLocalization.tr("Localizable", "RuuviDfuError.invalidFirmwareFile", fallback: "Invalid firmware file") + } + public enum RuuviLocalError { + /// Failed to get background directory + public static let failedToGetDocumentsDirectory = RuuviLocalization.tr("Localizable", "RuuviLocalError.failedToGetDocumentsDirectory", fallback: "Failed to get background directory") + /// Failed to get JPG representation + public static let failedToGetJpegRepresentation = RuuviLocalization.tr("Localizable", "RuuviLocalError.failedToGetJpegRepresentation", fallback: "Failed to get JPG representation") + } + public enum RuuviOnboard { + public enum Access { + /// Access data for each linked sensor in real time and explore history graphs. + public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Access.title", fallback: "Access data for each linked sensor in real time and explore history graphs.") + } + public enum Alerts { + /// Set alerts and get notified whenever your limits are hit. + public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Alerts.title", fallback: "Set alerts and get notified whenever your limits are hit.") + } + public enum Cloud { + /// Claim ownership of your sensors with a free Ruuvi Cloud account. + public static let subtitle = RuuviLocalization.tr("Localizable", "RuuviOnboard.Cloud.subtitle", fallback: "Claim ownership of your sensors with a free Ruuvi Cloud account.") + /// Sign in to use the full potential of the app. + public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Cloud.title", fallback: "Sign in to use the full potential of the app.") + public enum Benefits { + /// Benefits: + /// + /// ● Sensor names, background images, offsets and alert settings will be securely stored on the cloud + /// + /// ● Access sensors remotely over the Internet (requires a Ruuvi Gateway) + /// + /// ● Share sensors with friends and family (requires a Ruuvi Gateway) + /// + /// ● Browse up to 2 years of history on station.ruuvi.com (requires a Ruuvi Gateway) + public static let message = RuuviLocalization.tr("Localizable", "RuuviOnboard.Cloud.Benefits.message", fallback: "Benefits:\n\n ● Sensor names, background images, offsets and alert settings will be securely stored on the cloud\n\n ● Access sensors remotely over the Internet (requires a Ruuvi Gateway)\n\n ● Share sensors with friends and family (requires a Ruuvi Gateway)\n\n ● Browse up to 2 years of history on station.ruuvi.com (requires a Ruuvi Gateway)") + } + public enum Details { + /// Details + public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Cloud.Details.title", fallback: "Details") + } + public enum Skip { + /// Are you sure you want to skip sign in? + public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Cloud.Skip.title", fallback: "Are you sure you want to skip sign in?") + public enum GoBack { + /// Go back + public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Cloud.Skip.GoBack.title", fallback: "Go back") + } + public enum Yes { + /// Yes, skip + public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Cloud.Skip.Yes.title", fallback: "Yes, skip") + } + } + public enum Subtitle { + /// Great! You already signed in! + public static let signed = RuuviLocalization.tr("Localizable", "RuuviOnboard.Cloud.subtitle.signed", fallback: "Great! You already signed in!") + } + } + public enum Measure { + /// Measure environmental data: temperature, relative humidity and air pressure. + public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Measure.title", fallback: "Measure environmental data: temperature, relative humidity and air pressure.") + } + public enum Start { + /// Press SCAN to find and add nearby sensors to your Ruuvi Station. + public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Start.title", fallback: "Press SCAN to find and add nearby sensors to your Ruuvi Station.") + } + public enum Welcome { + /// Swipe to see what Ruuvi Station can do for you. + public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Welcome.title", fallback: "Swipe to see what Ruuvi Station can do for you.") + } + } + public enum RuuviPersistenceError { + /// Failed to find sensor + public static let failedToFindRuuviTag = RuuviLocalization.tr("Localizable", "RuuviPersistenceError.failedToFindRuuviTag", fallback: "Failed to find sensor") + } + public enum RuuviServiceError { + /// Both local and MAC identifiers are nil + public static let bothLuidAndMacAreNil = RuuviLocalization.tr("Localizable", "RuuviServiceError.bothLuidAndMacAreNil", fallback: "Both local and MAC identifiers are nil") + /// Failed to find or generate background image + public static let failedToFindOrGenerateBackgroundImage = RuuviLocalization.tr("Localizable", "RuuviServiceError.failedToFindOrGenerateBackgroundImage", fallback: "Failed to find or generate background image") + /// Failed to get JPG representation + public static let failedToGetJpegRepresentation = RuuviLocalization.tr("Localizable", "RuuviServiceError.failedToGetJpegRepresentation", fallback: "Failed to get JPG representation") + /// Failed to parse response. + public static let failedToParseNetworkResponse = RuuviLocalization.tr("Localizable", "RuuviServiceError.failedToParseNetworkResponse", fallback: "Failed to parse response.") + /// MAC identifier is nil + public static let macIdIsNil = RuuviLocalization.tr("Localizable", "RuuviServiceError.macIdIsNil", fallback: "MAC identifier is nil") + /// Photo URL is nil + public static let pictureUrlIsNil = RuuviLocalization.tr("Localizable", "RuuviServiceError.pictureUrlIsNil", fallback: "Photo URL is nil") + } + public enum Settings { + public enum BackgroundScanning { + /// Data logging interval + public static let interval = RuuviLocalization.tr("Localizable", "Settings.BackgroundScanning.interval", fallback: "Data logging interval") + /// Background Scanning + public static let title = RuuviLocalization.tr("Localizable", "Settings.BackgroundScanning.title", fallback: "Background Scanning") + public enum Footer { + /// Important note: Bluetooth background history logging and Bluetooth alerts work only when background scanning is enabled. If you disable the background scanning, all paired Ruuvi sensors will be automatically unpaired and you need to pair them again from their settings pages. + public static let message = RuuviLocalization.tr("Localizable", "Settings.BackgroundScanning.Footer.message", fallback: "Important note: Bluetooth background history logging and Bluetooth alerts work only when background scanning is enabled. If you disable the background scanning, all paired Ruuvi sensors will be automatically unpaired and you need to pair them again from their settings pages.") + } + } + public enum ChooseHumidityUnit { + /// Choose the humidity unit you want to be displayed. + public static let text = RuuviLocalization.tr("Localizable", "Settings.ChooseHumidityUnit.text", fallback: "Choose the humidity unit you want to be displayed.") + } + public enum ChoosePressureUnit { + /// Choose the pressure unit you want to be displayed. + public static let text = RuuviLocalization.tr("Localizable", "Settings.ChoosePressureUnit.text", fallback: "Choose the pressure unit you want to be displayed.") + } + public enum ChooseTemperatureUnit { + /// Choose the temperature unit you want to be displayed. + public static let text = RuuviLocalization.tr("Localizable", "Settings.ChooseTemperatureUnit.text", fallback: "Choose the temperature unit you want to be displayed.") + } + public enum Humidity { + public enum Resolution { + /// Humidity Resolution + public static let title = RuuviLocalization.tr("Localizable", "Settings.Humidity.Resolution.title", fallback: "Humidity Resolution") + } + } + public enum Label { + /// Chart Settings + public static let chart = RuuviLocalization.tr("Localizable", "Settings.Label.Chart", fallback: "Chart Settings") + /// Cloud mode + public static let cloudMode = RuuviLocalization.tr("Localizable", "Settings.Label.CloudMode", fallback: "Cloud mode") + /// Defaults + public static let defaults = RuuviLocalization.tr("Localizable", "Settings.Label.Defaults", fallback: "Defaults") + /// Foreground + public static let foreground = RuuviLocalization.tr("Localizable", "Settings.Label.Foreground", fallback: "Foreground") + /// Humidity + public static let humidity = RuuviLocalization.tr("Localizable", "Settings.Label.Humidity", fallback: "Humidity") + /// Pressure + public static let pressure = RuuviLocalization.tr("Localizable", "Settings.Label.Pressure", fallback: "Pressure") + /// Temperature + public static let temperature = RuuviLocalization.tr("Localizable", "Settings.Label.Temperature", fallback: "Temperature") + public enum CloudMode { + /// Refresh nearby cloud sensors only from the cloud by ignoring their Bluetooth messages and receiving alerts only by email. Requires a Ruuvi Gateway router. + public static let description = RuuviLocalization.tr("Localizable", "Settings.Label.CloudMode.description", fallback: "Refresh nearby cloud sensors only from the cloud by ignoring their Bluetooth messages and receiving alerts only by email. Requires a Ruuvi Gateway router.") + } + public enum HumidityUnit { + /// Humidity Unit + public static let text = RuuviLocalization.tr("Localizable", "Settings.Label.HumidityUnit.text", fallback: "Humidity Unit") } - - public enum AskReviewIfLaunchDivisibleBy { - public enum Count { - /// Ask review if app launch divisible by - public static let title = RuuviLocalization.tr("Localizable", "Defaults.AskReviewIfLaunchDivisibleBy.Count.title", fallback: "Ask review if app launch divisible by") - } + public enum Language { + /// Language + public static let text = RuuviLocalization.tr("Localizable", "Settings.Label.Language.text", fallback: "Language") } - - public enum CardsSwipeHint { - /// Cards Swipe Hint Was Shown - public static let title = RuuviLocalization.tr("Localizable", "Defaults.CardsSwipeHint.title", fallback: "Cards Swipe Hint Was Shown") + public enum PressureUnit { + /// Pressure Unit + public static let text = RuuviLocalization.tr("Localizable", "Settings.Label.PressureUnit.text", fallback: "Pressure Unit") } - - public enum ChartDurationHours { - /// Chart Duration - public static let title = RuuviLocalization.tr("Localizable", "Defaults.ChartDurationHours.title", fallback: "Chart Duration") + public enum TemperatureUnit { + /// Temperature Unit + public static let text = RuuviLocalization.tr("Localizable", "Settings.Label.TemperatureUnit.text", fallback: "Temperature Unit") } - - public enum ChartIntervalSeconds { - /// Chart Interval - public static let title = RuuviLocalization.tr("Localizable", "Defaults.ChartIntervalSeconds.title", fallback: "Chart Interval") + } + public enum Language { + public enum Dialog { + /// Open settings and tap Language to change language of the app. + /// If you cannot see the Language option in the settings, make sure that you have at least one preferred language added in system settings: Settings -> General -> Language & Region. + public static let message = RuuviLocalization.tr("Localizable", "Settings.Language.Dialog.message", fallback: "Open settings and tap Language to change language of the app.\nIf you cannot see the Language option in the settings, make sure that you have at least one preferred language added in system settings: Settings -> General -> Language & Region.") + /// Select Language + public static let title = RuuviLocalization.tr("Localizable", "Settings.Language.Dialog.title", fallback: "Select Language") + } + } + public enum Measurement { + public enum Resolution { + /// Select how accurately you'd like to see the sensors' live measurement values in the app. This setting doesn't affect history charts or alerts. + public static let description = RuuviLocalization.tr("Localizable", "Settings.Measurement.Resolution.description", fallback: "Select how accurately you'd like to see the sensors' live measurement values in the app. This setting doesn't affect history charts or alerts.") + /// Resolution + public static let title = RuuviLocalization.tr("Localizable", "Settings.Measurement.Resolution.title", fallback: "Resolution") + } + public enum Unit { + /// Unit + public static let title = RuuviLocalization.tr("Localizable", "Settings.Measurement.Unit.title", fallback: "Unit") + } + } + public enum Pressure { + public enum Resolution { + /// Pressure Resolution + public static let title = RuuviLocalization.tr("Localizable", "Settings.Pressure.Resolution.title", fallback: "Pressure Resolution") + } + } + public enum SectionHeader { + public enum Application { + /// APPLICATION + public static let title = RuuviLocalization.tr("Localizable", "Settings.SectionHeader.Application.title", fallback: "APPLICATION") } - - public enum ChartsSwipeInstructionWasShown { - /// Charts Swipe Hint Was Shown - public static let title = RuuviLocalization.tr("Localizable", "Defaults.ChartsSwipeInstructionWasShown.title", fallback: "Charts Swipe Hint Was Shown") + public enum General { + /// GENERAL + public static let title = RuuviLocalization.tr("Localizable", "Settings.SectionHeader.General.title", fallback: "GENERAL") } - - public enum ConnectionTimeout { - /// Connection Timeout - public static let title = RuuviLocalization.tr("Localizable", "Defaults.ConnectionTimeout.title", fallback: "Connection Timeout") + } + public enum SegmentedControl { + public enum Humidity { + public enum Absolute { + /// Abs + public static let title = RuuviLocalization.tr("Localizable", "Settings.SegmentedControl.Humidity.Absolute.title", fallback: "Abs") + } + public enum DewPoint { + /// Dew + public static let title = RuuviLocalization.tr("Localizable", "Settings.SegmentedControl.Humidity.DewPoint.title", fallback: "Dew") + } + public enum Relative { + /// Rel + public static let title = RuuviLocalization.tr("Localizable", "Settings.SegmentedControl.Humidity.Relative.title", fallback: "Rel") + } + } + } + public enum Temperature { + public enum Resolution { + /// Temperature Resolution + public static let title = RuuviLocalization.tr("Localizable", "Settings.Temperature.Resolution.title", fallback: "Temperature Resolution") + } + } + public enum NavigationItem { + /// Settings + public static let title = RuuviLocalization.tr("Localizable", "Settings.navigationItem.title", fallback: "Settings") + } + } + public enum Share { + public enum Send { + /// Send + public static let button = RuuviLocalization.tr("Localizable", "Share.Send.button", fallback: "Send") + } + public enum Success { + /// Successfully shared sensor + public static let message = RuuviLocalization.tr("Localizable", "Share.Success.message", fallback: "Successfully shared sensor") + } + } + public enum SharePresenter { + public enum UnshareSensor { + /// Do you want to unshare sensor for %@? + public static func message(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "SharePresenter.UnshareSensor.Message", String(describing: p1), fallback: "Do you want to unshare sensor for %@?") } - - public enum DashboardTapActionChart { - /// Show Chart on Dashboard Card Tap - public static let title = RuuviLocalization.tr("Localizable", "Defaults.DashboardTapActionChart.title", fallback: "Show Chart on Dashboard Card Tap") + } + } + public enum ShareViewController { + /// You can share the sensor with friends and family if it's in range of a Ruuvi Gateway. + /// + /// Receiver will be notified by email. If the receiver doesn't have a Ruuvi account, a free Ruuvi account will automatically be created at first log in. + /// + /// Note that the sensor's custom name and background image will be shared. The name and image sync is one time only, and after this, they can be privately customised by the receiver. Offset values (if any) set by the owner, will be automatically synced, and the receiver will always see the final corrected values. + public static let description = RuuviLocalization.tr("Localizable", "ShareViewController.Description", fallback: "You can share the sensor with friends and family if it's in range of a Ruuvi Gateway.\n\nReceiver will be notified by email. If the receiver doesn't have a Ruuvi account, a free Ruuvi account will automatically be created at first log in.\n\nNote that the sensor's custom name and background image will be shared. The name and image sync is one time only, and after this, they can be privately customised by the receiver. Offset values (if any) set by the owner, will be automatically synced, and the receiver will always see the final corrected values.") + /// Share sensor + public static let title = RuuviLocalization.tr("Localizable", "ShareViewController.Title", fallback: "Share sensor") + public enum AddFriend { + /// Add friend + public static let title = RuuviLocalization.tr("Localizable", "ShareViewController.addFriend.Title", fallback: "Add friend") + } + public enum EmailTextField { + /// Type email + public static let placeholder = RuuviLocalization.tr("Localizable", "ShareViewController.emailTextField.placeholder", fallback: "Type email") + } + public enum SharedEmails { + /// You have used %d/%d of maximum shares of this sensor. The sensor has been shared to following users: + public static func title(_ p1: Int, _ p2: Int) -> String { + RuuviLocalization.tr("Localizable", "ShareViewController.sharedEmails.Title", p1, p2, fallback: "You have used %d/%d of maximum shares of this sensor. The sensor has been shared to following users:") + } + } + } + public enum SignIn { + /// We've sent a one-time password to your email %@. Sign in by entering it here: + public static func checkMailbox(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "SignIn.CheckMailbox", String(describing: p1), fallback: "We've sent a one-time password to your email %@. Sign in by entering it here:") + } + /// Code + public static let codeHint = RuuviLocalization.tr("Localizable", "SignIn.CodeHint", fallback: "Code") + /// Email + public static let emailPlaceholder = RuuviLocalization.tr("Localizable", "SignIn.EmailPlaceholder", fallback: "Email") + /// Email sent + public static let emailSent = RuuviLocalization.tr("Localizable", "SignIn.EmailSent", fallback: "Email sent") + /// Please enter verification code + public static let enterVerificationCode = RuuviLocalization.tr("Localizable", "SignIn.EnterVerificationCode", fallback: "Please enter verification code") + /// Request a code + public static let requestCode = RuuviLocalization.tr("Localizable", "SignIn.RequestCode", fallback: "Request a code") + /// Submit + public static let submitCode = RuuviLocalization.tr("Localizable", "SignIn.SubmitCode", fallback: "Submit") + /// verification code in format: CJSM + public static let verificationCodePlaceholder = RuuviLocalization.tr("Localizable", "SignIn.VerificationCodePlaceholder", fallback: "verification code in format: CJSM") + public enum EmailMismatch { + public enum Alert { + /// Oops, you've requested the code for %@, but used the code for %@. Please double check that you are using the code for %@ + public static func message(_ p1: Any, _ p2: Any, _ p3: Any) -> String { + RuuviLocalization.tr("Localizable", "SignIn.EmailMismatch.Alert.message", String(describing: p1), String(describing: p2), String(describing: p3), fallback: "Oops, you've requested the code for %@, but used the code for %@. Please double check that you are using the code for %@") + } } - - public enum DevServer { - /// Changing Ruuvi Cloud endpoint requires signing out from current session and restart the app. Are you sure? - public static let message = RuuviLocalization.tr("Localizable", "Defaults.DevServer.message", fallback: "Changing Ruuvi Cloud endpoint requires signing out from current session and restart the app. Are you sure?") - /// Use Dev Server - public static let title = RuuviLocalization.tr("Localizable", "Defaults.DevServer.title", fallback: "Use Dev Server") + } + public enum EmailMissing { + public enum Alert { + /// Oops, the email you've used to get the code was not saved. Please try to sign in again. + public static let message = RuuviLocalization.tr("Localizable", "SignIn.EmailMissing.Alert.message", fallback: "Oops, the email you've used to get the code was not saved. Please try to sign in again.") + } + } + public enum SubtitleLabel { + /// To enjoy all the features, create a free account or sign in to your existing Ruuvi account by entering your email address. + public static let text = RuuviLocalization.tr("Localizable", "SignIn.SubtitleLabel.text", fallback: "To enjoy all the features, create a free account or sign in to your existing Ruuvi account by entering your email address.") + } + public enum Sync { + /// Downloading content from the cloud. Please wait. + public static let message = RuuviLocalization.tr("Localizable", "SignIn.Sync.message", fallback: "Downloading content from the cloud. Please wait.") + } + public enum Title { + /// Sign in + public static let text = RuuviLocalization.tr("Localizable", "SignIn.Title.text", fallback: "Sign in") + } + public enum TitleLabel { + /// Sign in to + /// Ruuvi + /// Station + public static let text = RuuviLocalization.tr("Localizable", "SignIn.TitleLabel.text", fallback: "Sign in to\nRuuvi\nStation") + } + } + public enum TagCharts { + public enum AbortSync { + public enum Alert { + /// Sometimes the history download is slow due to the Bluetooth connectivity. Please wait a moment. + public static let message = RuuviLocalization.tr("Localizable", "TagCharts.AbortSync.Alert.message", fallback: "Sometimes the history download is slow due to the Bluetooth connectivity. Please wait a moment.") } - - public enum HideNFC { - /// Hide NFC Option for sensor contest - public static let title = RuuviLocalization.tr("Localizable", "Defaults.HideNFC.title", fallback: "Hide NFC Option for sensor contest") + public enum Button { + /// Abort download + public static let title = RuuviLocalization.tr("Localizable", "TagCharts.AbortSync.Button.title", fallback: "Abort download") + } + } + public enum BluetoothDisabledAlert { + /// Ruuvi Station needs Bluetooth to be able to listen for sensors. Go to Settings and turn Bluetooth on. + public static let message = RuuviLocalization.tr("Localizable", "TagCharts.BluetoothDisabledAlert.message", fallback: "Ruuvi Station needs Bluetooth to be able to listen for sensors. Go to Settings and turn Bluetooth on.") + /// Bluetooth is not enabled + public static let title = RuuviLocalization.tr("Localizable", "TagCharts.BluetoothDisabledAlert.title", fallback: "Bluetooth is not enabled") + } + public enum Clear { + /// Clear + public static let title = RuuviLocalization.tr("Localizable", "TagCharts.Clear.title", fallback: "Clear") + } + public enum DeleteHistoryConfirmationDialog { + /// Clear the local history data from the app? + public static let message = RuuviLocalization.tr("Localizable", "TagCharts.DeleteHistoryConfirmationDialog.message", fallback: "Clear the local history data from the app?") + /// Are you sure? + public static let title = RuuviLocalization.tr("Localizable", "TagCharts.DeleteHistoryConfirmationDialog.title", fallback: "Are you sure?") + public enum Button { + public enum Delete { + /// Delete + public static let title = RuuviLocalization.tr("Localizable", "TagCharts.DeleteHistoryConfirmationDialog.button.delete.title", fallback: "Delete") + } } - - public enum Interval { - public enum Hour { - /// h - public static let string = RuuviLocalization.tr("Localizable", "Defaults.Interval.Hour.string", fallback: "h") - } - - public enum Min { - /// min - public static let string = RuuviLocalization.tr("Localizable", "Defaults.Interval.Min.string", fallback: "min") - } - - public enum Sec { - /// sec - public static let string = RuuviLocalization.tr("Localizable", "Defaults.Interval.Sec.string", fallback: "sec") - } + } + public enum Dismiss { + public enum Alert { + /// The history download via Bluetooth connection is in progress. Please wait. + public static let message = RuuviLocalization.tr("Localizable", "TagCharts.Dismiss.Alert.message", fallback: "The history download via Bluetooth connection is in progress. Please wait.") + } + } + public enum Export { + /// EXPORT + public static let title = RuuviLocalization.tr("Localizable", "TagCharts.Export.title", fallback: "EXPORT") + } + public enum FailedToSyncDialog { + /// Bluetooth history download failed. Check that you're within Bluetooth range, your sensor has firmware that supports downloading and that the sensor is not simultaneously connected to another iOS device. Sensor connection is reserved for Ruuvi Station when using connected mode in iOS. + public static let message = RuuviLocalization.tr("Localizable", "TagCharts.FailedToSyncDialog.message", fallback: "Bluetooth history download failed. Check that you're within Bluetooth range, your sensor has firmware that supports downloading and that the sensor is not simultaneously connected to another iOS device. Sensor connection is reserved for Ruuvi Station when using connected mode in iOS.") + /// Download failed + public static let title = RuuviLocalization.tr("Localizable", "TagCharts.FailedToSyncDialog.title", fallback: "Download failed") + } + public enum NoChartData { + /// No chart data available + public static let text = RuuviLocalization.tr("Localizable", "TagCharts.NoChartData.text", fallback: "No chart data available") + } + public enum Status { + /// Connecting... + public static let connecting = RuuviLocalization.tr("Localizable", "TagCharts.Status.Connecting", fallback: "Connecting...") + /// Disconnecting... + public static let disconnecting = RuuviLocalization.tr("Localizable", "TagCharts.Status.Disconnecting", fallback: "Disconnecting...") + /// Error + public static let error = RuuviLocalization.tr("Localizable", "TagCharts.Status.Error", fallback: "Error") + /// Reading history + public static let readingHistory = RuuviLocalization.tr("Localizable", "TagCharts.Status.ReadingHistory", fallback: "Reading history") + /// Synchronising... + public static let serving = RuuviLocalization.tr("Localizable", "TagCharts.Status.Serving", fallback: "Synchronising...") + /// Success + public static let success = RuuviLocalization.tr("Localizable", "TagCharts.Status.Success", fallback: "Success") + } + public enum Sync { + /// Sync + public static let title = RuuviLocalization.tr("Localizable", "TagCharts.Sync.title", fallback: "Sync") + } + public enum SyncConfirmationDialog { + /// Download history data from the sensor? + public static let message = RuuviLocalization.tr("Localizable", "TagCharts.SyncConfirmationDialog.message", fallback: "Download history data from the sensor?") + /// Are you sure? + public static let title = RuuviLocalization.tr("Localizable", "TagCharts.SyncConfirmationDialog.title", fallback: "Are you sure?") + } + public enum TryAgain { + /// Try again + public static let title = RuuviLocalization.tr("Localizable", "TagCharts.TryAgain.title", fallback: "Try again") + } + } + public enum TagChartsPresenter { + /// Synchronised: %@ + public static func numberOfPointsSynchronizedOverNetwork(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "TagChartsPresenter.NumberOfPointsSynchronizedOverNetwork", String(describing: p1), fallback: "Synchronised: %@") + } + } + public enum TagSettings { + /// Share + public static let shareButton = RuuviLocalization.tr("Localizable", "TagSettings.ShareButton", fallback: "Share") + public enum AirHumidityAlert { + /// Air Humidity (%@) + public static func title(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "TagSettings.AirHumidityAlert.title", String(describing: p1), fallback: "Air Humidity (%@)") + } + } + public enum Alert { + public enum CustomDescription { + /// Set custom description... + public static let placeholder = RuuviLocalization.tr("Localizable", "TagSettings.Alert.CustomDescription.placeholder", fallback: "Set custom description...") + /// Alert custom description + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.Alert.CustomDescription.title", fallback: "Alert custom description") + } + public enum SetHumidity { + /// Set humidity alert + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.Alert.SetHumidity.title", fallback: "Set humidity alert") + } + public enum SetPressure { + /// Set pressure alert + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.Alert.SetPressure.title", fallback: "Set pressure alert") + } + public enum SetRSSI { + /// Set signal strength alert + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.Alert.SetRSSI.title", fallback: "Set signal strength alert") + } + public enum SetTemperature { + /// Set temperature alert + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.Alert.SetTemperature.title", fallback: "Set temperature alert") + } + } + public enum AlertSettings { + public enum Dialog { + /// Max (%.0f) + public static func max(_ p1: Float) -> String { + RuuviLocalization.tr("Localizable", "TagSettings.AlertSettings.Dialog.Max", p1, fallback: "Max (%.0f)") + } + /// Min (%.0f) + public static func min(_ p1: Float) -> String { + RuuviLocalization.tr("Localizable", "TagSettings.AlertSettings.Dialog.Min", p1, fallback: "Min (%.0f)") + } + } + } + public enum Alerts { + /// Off + public static let off = RuuviLocalization.tr("Localizable", "TagSettings.Alerts.Off", fallback: "Off") + public enum Connection { + /// Alert when connected/disconnected + public static let description = RuuviLocalization.tr("Localizable", "TagSettings.Alerts.Connection.description", fallback: "Alert when connected/disconnected") } - - public enum PruningOffsetHours { - /// Pruning Offset Hours - public static let title = RuuviLocalization.tr("Localizable", "Defaults.PruningOffsetHours.title", fallback: "Pruning Offset Hours") + public enum DewPoint { + /// Alert when less than %.0f or more than %.0f + public static func description(_ p1: Float, _ p2: Float) -> String { + RuuviLocalization.tr("Localizable", "TagSettings.Alerts.DewPoint.description", p1, p2, fallback: "Alert when less than %.0f or more than %.0f") + } } - - public enum ServiceTimeout { - /// Service Timeout - public static let title = RuuviLocalization.tr("Localizable", "Defaults.ServiceTimeout.title", fallback: "Service Timeout") + public enum Humidity { + /// Alert when less than %.0f or more than %.0f + public static func description(_ p1: Float, _ p2: Float) -> String { + RuuviLocalization.tr("Localizable", "TagSettings.Alerts.Humidity.description", p1, p2, fallback: "Alert when less than %.0f or more than %.0f") + } } - - public enum ShowEmailAlertsSettings { - /// Show email alerts settings - public static let title = RuuviLocalization.tr("Localizable", "Defaults.ShowEmailAlertsSettings.title", fallback: "Show email alerts settings") + public enum Movement { + /// Alert when sensor is moved + public static let description = RuuviLocalization.tr("Localizable", "TagSettings.Alerts.Movement.description", fallback: "Alert when sensor is moved") } - - public enum ShowPushAlertsSettings { - /// Show push alerts settings - public static let title = RuuviLocalization.tr("Localizable", "Defaults.ShowPushAlertsSettings.title", fallback: "Show push alerts settings") + public enum Pressure { + /// Alert when less than %.0f or more than %.0f + public static func description(_ p1: Float, _ p2: Float) -> String { + RuuviLocalization.tr("Localizable", "TagSettings.Alerts.Pressure.description", p1, p2, fallback: "Alert when less than %.0f or more than %.0f") + } } - - public enum UserAuthorized { - /// User Authorized - public static let title = RuuviLocalization.tr("Localizable", "Defaults.UserAuthorized.title", fallback: "User Authorized") + public enum Temperature { + /// Alert when less than %.0f or more than %.0f + public static func description(_ p1: Float, _ p2: Float) -> String { + RuuviLocalization.tr("Localizable", "TagSettings.Alerts.Temperature.description", p1, p2, fallback: "Alert when less than %.0f or more than %.0f") + } } - - public enum WebPullInterval { - /// Web Alerts Interval - public static let title = RuuviLocalization.tr("Localizable", "Defaults.WebPullInterval.title", fallback: "Web Alerts Interval") + } + public enum AlertsAreDisabled { + public enum Dialog { + public enum BothNotConnectedAndNoPNPermission { + /// Alerts are disabled because the device is not connected and missing push notification permission. Please connect to the device first. + public static let message = RuuviLocalization.tr("Localizable", "TagSettings.AlertsAreDisabled.Dialog.BothNotConnectedAndNoPNPermission.message", fallback: "Alerts are disabled because the device is not connected and missing push notification permission. Please connect to the device first.") + } + public enum Connect { + /// Connect + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.AlertsAreDisabled.Dialog.Connect.title", fallback: "Connect") + } + public enum NotConnected { + /// Alerts are disabled because you are not connected to the device. + public static let message = RuuviLocalization.tr("Localizable", "TagSettings.AlertsAreDisabled.Dialog.NotConnected.message", fallback: "Alerts are disabled because you are not connected to the device.") + } + } + } + public enum BatteryStatusLabel { + public enum Ok { + /// Battery OK + public static let message = RuuviLocalization.tr("Localizable", "TagSettings.BatteryStatusLabel.Ok.message", fallback: "Battery OK") + } + public enum Replace { + /// Low battery + public static let message = RuuviLocalization.tr("Localizable", "TagSettings.BatteryStatusLabel.Replace.message", fallback: "Low battery") + } + } + public enum ClaimTagButton { + /// Claim ownership + public static let claim = RuuviLocalization.tr("Localizable", "TagSettings.ClaimTagButton.Claim", fallback: "Claim ownership") + } + public enum ConnectStatus { + /// Disconnected + public static let disconnected = RuuviLocalization.tr("Localizable", "TagSettings.ConnectStatus.Disconnected", fallback: "Disconnected") + } + public enum ConnectionAlert { + /// Connection + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.ConnectionAlert.title", fallback: "Connection") + } + public enum DataSource { + public enum Advertisement { + /// Advertisement + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.DataSource.Advertisement.title", fallback: "Advertisement") + } + public enum Heartbeat { + /// Heartbeat + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.DataSource.Heartbeat.title", fallback: "Heartbeat") + } + public enum Network { + /// Cloud + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.DataSource.Network.title", fallback: "Cloud") + } + } + public enum EmptyValue { + /// - + public static let sign = RuuviLocalization.tr("Localizable", "TagSettings.EmptyValue.sign", fallback: "-") + } + public enum Firmware { + /// Current version + public static let currentVersion = RuuviLocalization.tr("Localizable", "TagSettings.Firmware.CurrentVersion", fallback: "Current version") + /// Update + public static let updateFirmware = RuuviLocalization.tr("Localizable", "TagSettings.Firmware.UpdateFirmware", fallback: "Update") + public enum CurrentVersion { + /// Very old + public static let veryOld = RuuviLocalization.tr("Localizable", "TagSettings.Firmware.CurrentVersion.VeryOld", fallback: "Very old") + } + } + public enum General { + public enum Owner { + /// No owner + public static let `none` = RuuviLocalization.tr("Localizable", "TagSettings.General.Owner.none", fallback: "No owner") + } + } + public enum HumidityIsClipped { + public enum Alert { + /// Humidity value is greater than 100% after calibration. This value doesn't make sense, so the value has been adjusted to 100%. + public static func message(_ p1: Float) -> String { + RuuviLocalization.tr("Localizable", "TagSettings.HumidityIsClipped.Alert.message", p1, fallback: "Humidity value is greater than 100% after calibration. This value doesn't make sense, so the value has been adjusted to 100%.") + } + /// Humidity is adjusted + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.HumidityIsClipped.Alert.title", fallback: "Humidity is adjusted") + public enum Fix { + /// Fix + public static let button = RuuviLocalization.tr("Localizable", "TagSettings.HumidityIsClipped.Alert.Fix.button", fallback: "Fix") + } + } + } + public enum Label { + public enum Alerts { + /// Alerts + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.Label.alerts.text", fallback: "Alerts") } - - public enum WelcomeShown { - /// Welcome Displayed - public static let title = RuuviLocalization.tr("Localizable", "Defaults.WelcomeShown.title", fallback: "Welcome Displayed") + public enum Disabled { + /// DISABLED? + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.Label.disabled.text", fallback: "DISABLED?") } - - public enum NavigationItem { - /// Defaults - public static let title = RuuviLocalization.tr("Localizable", "Defaults.navigationItem.title", fallback: "Defaults") + public enum MoreInfo { + /// More info + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.Label.moreInfo.text", fallback: "More info") } - } - - public enum Devices { - /// Token Id - public static let tokenId = RuuviLocalization.tr("Localizable", "Devices.tokenId", fallback: "Token Id") - } - - public enum DfuDevicesScanner { - public enum BluetoothDisabled { - /// (Bluetooth is disabled) - public static let text = RuuviLocalization.tr("Localizable", "DfuDevicesScanner.BluetoothDisabled.text", fallback: "(Bluetooth is disabled)") + public enum NoValues { + /// NO VALUES? + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.Label.noValues.text", fallback: "NO VALUES?") } - - public enum BluetoothDisabledAlert { - /// Ruuvi Station needs Bluetooth to be able to listen for sensors. Go to Settings and turn Bluetooth on. - public static let message = RuuviLocalization.tr("Localizable", "DfuDevicesScanner.BluetoothDisabledAlert.message", fallback: "Ruuvi Station needs Bluetooth to be able to listen for sensors. Go to Settings and turn Bluetooth on.") - /// Bluetooth is not enabled - public static let title = RuuviLocalization.tr("Localizable", "DfuDevicesScanner.BluetoothDisabledAlert.title", fallback: "Bluetooth is not enabled") + } + public enum Mac { + public enum Alert { + /// MAC Address + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.Mac.Alert.title", fallback: "MAC Address") + } + } + public enum MovementAlert { + /// Movement + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.MovementAlert.title", fallback: "Movement") + } + public enum NetworkInfo { + /// Owner + public static let owner = RuuviLocalization.tr("Localizable", "TagSettings.NetworkInfo.Owner", fallback: "Owner") + } + public enum NotShared { + /// Not shared + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.NotShared.title", fallback: "Not shared") + } + public enum OffsetCorrection { + /// Humidity + public static let humidity = RuuviLocalization.tr("Localizable", "TagSettings.OffsetCorrection.Humidity", fallback: "Humidity") + /// Pressure + public static let pressure = RuuviLocalization.tr("Localizable", "TagSettings.OffsetCorrection.Pressure", fallback: "Pressure") + /// Temperature + public static let temperature = RuuviLocalization.tr("Localizable", "TagSettings.OffsetCorrection.Temperature", fallback: "Temperature") + } + public enum PairAndBackgroundScan { + /// Alerts are not available over Bluetooth connection if background scanning is not enabled. Only one iOS device can be paired to a Ruuvi sensor at a time. + public static let description = RuuviLocalization.tr("Localizable", "TagSettings.PairAndBackgroundScan.description", fallback: "Alerts are not available over Bluetooth connection if background scanning is not enabled. Only one iOS device can be paired to a Ruuvi sensor at a time.") + public enum Paired { + /// Paired and background scan is on + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.PairAndBackgroundScan.Paired.title", fallback: "Paired and background scan is on") + } + public enum Pairing { + /// Connecting to the sensor + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.PairAndBackgroundScan.Pairing.title", fallback: "Connecting to the sensor") + } + public enum Unpaired { + /// Pair and use background scan + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.PairAndBackgroundScan.Unpaired.title", fallback: "Pair and use background scan") + } + } + public enum PairError { + public enum CloudMode { + /// The sensor cannot be connected to via Bluetooth when the cloud mode is active. You can re-enable the Bluetooth connection for the cloud sensors by disabling cloud mode in the app settings. + public static let description = RuuviLocalization.tr("Localizable", "TagSettings.PairError.CloudMode.description", fallback: "The sensor cannot be connected to via Bluetooth when the cloud mode is active. You can re-enable the Bluetooth connection for the cloud sensors by disabling cloud mode in the app settings.") + } + public enum Timeout { + /// Connection timed out. Pairing was unsuccessful. Please try again. + public static let description = RuuviLocalization.tr("Localizable", "TagSettings.PairError.Timeout.description", fallback: "Connection timed out. Pairing was unsuccessful. Please try again.") + } + } + public enum PressureAlert { + /// Air Pressure (%@) + public static func title(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "TagSettings.PressureAlert.title", String(describing: p1), fallback: "Air Pressure (%@)") + } + } + public enum RemoveThisSensor { + /// Remove this sensor + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.RemoveThisSensor.title", fallback: "Remove this sensor") + } + public enum SectionHeader { + public enum BTConnection { + /// BLUETOOTH CONNECTION + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.SectionHeader.BTConnection.title", fallback: "BLUETOOTH CONNECTION") + } + public enum Calibration { + /// CALIBRATION + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.SectionHeader.Calibration.title", fallback: "CALIBRATION") } - - public enum Description { - /// Find and select sensor "RuuviBoot". - public static let text = RuuviLocalization.tr("Localizable", "DfuDevicesScanner.Description.text", fallback: "Find and select sensor \"RuuviBoot\".") + public enum Firmware { + /// Firmware + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.SectionHeader.Firmware.title", fallback: "Firmware") } - - public enum NoDevice { - /// (No sensors in Bluetooth range) - public static let text = RuuviLocalization.tr("Localizable", "DfuDevicesScanner.NoDevice.text", fallback: "(No sensors in Bluetooth range)") + public enum General { + /// General + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.SectionHeader.General.title", fallback: "General") } - - public enum Title { - /// Devices - public static let text = RuuviLocalization.tr("Localizable", "DfuDevicesScanner.Title.text", fallback: "Devices") + public enum Name { + /// NAME + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.SectionHeader.Name.title", fallback: "NAME") } - } - - public enum DfuFlash { - public enum Cancel { - /// CANCEL - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Cancel.text", fallback: "CANCEL") + public enum NetworkInfo { + /// NETWORK INFO + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.SectionHeader.NetworkInfo.title", fallback: "NETWORK INFO") } - - public enum CancelAlert { - /// Are you sure you want to cancel the firmware update process? - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.CancelAlert.text", fallback: "Are you sure you want to cancel the firmware update process?") + public enum OffsetCorrection { + /// OFFSET CORRECTION + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.SectionHeader.OffsetCorrection.Title", fallback: "OFFSET CORRECTION") } - - public enum Finish { - /// FINISH - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Finish.text", fallback: "FINISH") + public enum Remove { + /// REMOVE + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.SectionHeader.Remove.title", fallback: "REMOVE") } - - public enum FinishGuide { - /// Firmware update process has been completed successfully. - /// Your RuuviTag sensor is ready for use! - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.FinishGuide.text", fallback: "Firmware update process has been completed successfully.\nYour RuuviTag sensor is ready for use!") - } - - public enum Firmware { - public enum BootloaderSize { - /// Bootloader size - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Firmware.BootloaderSize.text", fallback: "Bootloader size") - } - - public enum FileName { - /// File name - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Firmware.FileName.text", fallback: "File name") - } - - public enum Parts { - /// Parts - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Firmware.Parts.text", fallback: "Parts") - } - - public enum Size { - /// Size - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Firmware.Size.text", fallback: "Size") - } - - public enum SoftDeviceSize { - /// Soft Device size - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Firmware.SoftDeviceSize.text", fallback: "Soft Device size") - } - } - - public enum FirmwareSelectionGuide { - /// Locate the previously downloaded ZIP file on your mobile device. - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.FirmwareSelectionGuide.text", fallback: "Locate the previously downloaded ZIP file on your mobile device.") - } - - public enum OpenDocumentPicker { - /// OPEN DOCUMENT PICKER - public static let title = RuuviLocalization.tr("Localizable", "DfuFlash.OpenDocumentPicker.title", fallback: "OPEN DOCUMENT PICKER") - } - - public enum Progress { - /// Progress - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Progress.text", fallback: "Progress") - } - - public enum Start { - /// Start - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Start.text", fallback: "Start") - } - - public enum Step { - /// Step - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Step.text", fallback: "Step") - } - - public enum Steps { - public enum Completed { - /// Completed - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Steps.Completed.text", fallback: "Completed") - } - - public enum PackageSelection { - /// Package selection - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Steps.PackageSelection.text", fallback: "Package selection") - } - - public enum ReadyForUpload { - /// Ready For upload - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Steps.ReadyForUpload.text", fallback: "Ready For upload") - } - - public enum Uploading { - /// Uploading - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Steps.Uploading.text", fallback: "Uploading") - } - } - - public enum Title { - /// DFU Flash - public static let text = RuuviLocalization.tr("Localizable", "DfuFlash.Title.text", fallback: "DFU Flash") - } - } - - public enum DiscoverTable { - public enum BluetoothDisabledAlert { - /// Ruuvi Station needs Bluetooth to be able to listen for sensors. Go to Settings and turn Bluetooth on. - public static let message = RuuviLocalization.tr("Localizable", "DiscoverTable.BluetoothDisabledAlert.message", fallback: "Ruuvi Station needs Bluetooth to be able to listen for sensors. Go to Settings and turn Bluetooth on.") - /// Bluetooth is not enabled - public static let title = RuuviLocalization.tr("Localizable", "DiscoverTable.BluetoothDisabledAlert.title", fallback: "Bluetooth is not enabled") - } - - public enum GetMoreSensors { - public enum Button { - /// Buy Ruuvi Sensors - public static let title = RuuviLocalization.tr("Localizable", "DiscoverTable.GetMoreSensors.button.title", fallback: "Buy Ruuvi Sensors") - } - } - - public enum NavigationItem { - /// Add a New Sensor - public static let title = RuuviLocalization.tr("Localizable", "DiscoverTable.NavigationItem.title", fallback: "Add a New Sensor") - } - - public enum NoDevicesSection { - public enum BluetoothDisabled { - /// (Bluetooth is disabled) - public static let text = RuuviLocalization.tr("Localizable", "DiscoverTable.NoDevicesSection.BluetoothDisabled.text", fallback: "(Bluetooth is disabled)") - } - - public enum NotFound { - /// (No sensors in Bluetooth range) - public static let text = RuuviLocalization.tr("Localizable", "DiscoverTable.NoDevicesSection.NotFound.text", fallback: "(No sensors in Bluetooth range)") - } - } - - public enum RuuviDevice { - /// Ruuvi - public static let prefix = RuuviLocalization.tr("Localizable", "DiscoverTable.RuuviDevice.prefix", fallback: "Ruuvi") - } - - public enum SectionTitle { - /// Nearby Ruuvi sensors - public static let devices = RuuviLocalization.tr("Localizable", "DiscoverTable.SectionTitle.Devices", fallback: "Nearby Ruuvi sensors") - /// Virtual sensors - public static let webTags = RuuviLocalization.tr("Localizable", "DiscoverTable.SectionTitle.WebTags", fallback: "Virtual sensors") - } - - public enum WebTagsInfoDialog { - /// Virtual Sensors show public weather data provided by local weather stations. - public static let message = RuuviLocalization.tr("Localizable", "DiscoverTable.WebTagsInfoDialog.message", fallback: "Virtual Sensors show public weather data provided by local weather stations.") - } - } - - public enum ErrorPresenterAlert { - /// Error - public static let error = RuuviLocalization.tr("Localizable", "ErrorPresenterAlert.Error", fallback: "Error") - /// OK - public static let ok = RuuviLocalization.tr("Localizable", "ErrorPresenterAlert.OK", fallback: "OK") - } - - public enum ExpectedError { - /// Unable to remove a connected device that is not reachable. Please check your Bluetooth connection. - public static let failedToDeleteTag = RuuviLocalization.tr("Localizable", "ExpectedError.failedToDeleteTag", fallback: "Unable to remove a connected device that is not reachable. Please check your Bluetooth connection.") - /// App is already in the process of syncing logs with this sensor - public static let isAlreadySyncingLogsWithThisTag = RuuviLocalization.tr("Localizable", "ExpectedError.isAlreadySyncingLogsWithThisTag", fallback: "App is already in the process of syncing logs with this sensor") - /// Missing OpenWeatherMap API Key. Please get one from openweathermap.org website and enter it in the station/Classes/Networking/Assembly/Networking.plist file - public static let missingOpenWeatherMapAPIKey = RuuviLocalization.tr("Localizable", "ExpectedError.missingOpenWeatherMapAPIKey", fallback: "Missing OpenWeatherMap API Key. Please get one from openweathermap.org website and enter it in the station/Classes/Networking/Assembly/Networking.plist file") - } - - public enum ExportService { - /// Acceleration X - public static let accelerationX = RuuviLocalization.tr("Localizable", "ExportService.AccelerationX", fallback: "Acceleration X") - /// Acceleration Y - public static let accelerationY = RuuviLocalization.tr("Localizable", "ExportService.AccelerationY", fallback: "Acceleration Y") - /// Acceleration Z - public static let accelerationZ = RuuviLocalization.tr("Localizable", "ExportService.AccelerationZ", fallback: "Acceleration Z") - /// Date - public static let date = RuuviLocalization.tr("Localizable", "ExportService.Date", fallback: "Date") - /// Dew point (%@) - public static func dewPoint(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "ExportService.DewPoint", String(describing: p1), fallback: "Dew point (%@)") - } - - /// Humidity (%@) - public static func humidity(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "ExportService.Humidity", String(describing: p1), fallback: "Humidity (%@)") - } - - /// ISO8601 - public static let iso8601 = RuuviLocalization.tr("Localizable", "ExportService.ISO8601", fallback: "ISO8601") - /// Measurement Sequence Number - public static let measurementSequenceNumber = RuuviLocalization.tr("Localizable", "ExportService.MeasurementSequenceNumber", fallback: "Measurement Sequence Number") - /// Movement Counter - public static let movementCounter = RuuviLocalization.tr("Localizable", "ExportService.MovementCounter", fallback: "Movement Counter") - /// Pressure (%@) - public static func pressure(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "ExportService.Pressure", String(describing: p1), fallback: "Pressure (%@)") - } - - /// Temperature (%@) - public static func temperature(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "ExportService.Temperature", String(describing: p1), fallback: "Temperature (%@)") - } - - /// TX Power - public static let txPower = RuuviLocalization.tr("Localizable", "ExportService.TXPower", fallback: "TX Power") - /// Voltage (V) - public static let voltage = RuuviLocalization.tr("Localizable", "ExportService.Voltage", fallback: "Voltage (V)") - } - - public enum Foreground { - public enum Interval { - public enum All { - /// All - public static let string = RuuviLocalization.tr("Localizable", "Foreground.Interval.All.string", fallback: "All") - } - - public enum Every { - /// Every - public static let string = RuuviLocalization.tr("Localizable", "Foreground.Interval.Every.string", fallback: "Every") - } - - public enum Min { - /// min - public static let string = RuuviLocalization.tr("Localizable", "Foreground.Interval.Min.string", fallback: "min") - } - } - - public enum NavigationItem { - /// Foreground - public static let title = RuuviLocalization.tr("Localizable", "Foreground.navigationItem.title", fallback: "Foreground") - } - } - - public enum ForegroundRow { - public enum Advertisement { - /// ADVERTISEMENTS - public static let section = RuuviLocalization.tr("Localizable", "ForegroundRow.advertisement.section", fallback: "ADVERTISEMENTS") - /// Save advertisements - public static let title = RuuviLocalization.tr("Localizable", "ForegroundRow.advertisement.title", fallback: "Save advertisements") - } - - public enum Connection { - /// LOGS - public static let section = RuuviLocalization.tr("Localizable", "ForegroundRow.connection.section", fallback: "LOGS") - /// Connect and sync logs - public static let title = RuuviLocalization.tr("Localizable", "ForegroundRow.connection.title", fallback: "Connect and sync logs") - } - - public enum WebTags { - /// VIRTUAL SENSORS - public static let section = RuuviLocalization.tr("Localizable", "ForegroundRow.webTags.section", fallback: "VIRTUAL SENSORS") - /// Load and save from web - public static let title = RuuviLocalization.tr("Localizable", "ForegroundRow.webTags.title", fallback: "Load and save from web") - } - } - - public enum Heartbeat { - public enum Interval { - public enum All { - /// All - public static let string = RuuviLocalization.tr("Localizable", "Heartbeat.Interval.All.string", fallback: "All") - } - - public enum Every { - /// every - public static let string = RuuviLocalization.tr("Localizable", "Heartbeat.Interval.Every.string", fallback: "every") - } - - public enum Min { - /// min - public static let string = RuuviLocalization.tr("Localizable", "Heartbeat.Interval.Min.string", fallback: "min") - } - - public enum Sec { - /// sec - public static let string = RuuviLocalization.tr("Localizable", "Heartbeat.Interval.Sec.string", fallback: "sec") - } - } - - public enum ReadRSSITitle { - /// Read RSSI - public static let title = RuuviLocalization.tr("Localizable", "Heartbeat.readRSSITitle.title", fallback: "Read RSSI") - } - } - - public enum HumidityCalibration { - public enum Button { - public enum Calibrate { - /// Calibrate - public static let title = RuuviLocalization.tr("Localizable", "HumidityCalibration.Button.Calibrate.title", fallback: "Calibrate") - } - - public enum Clear { - /// Clear - public static let title = RuuviLocalization.tr("Localizable", "HumidityCalibration.Button.Clear.title", fallback: "Clear") - } - - public enum Close { - /// Close - public static let title = RuuviLocalization.tr("Localizable", "HumidityCalibration.Button.Close.title", fallback: "Close") - } - } - - public enum CalibrationConfirmationAlert { - /// You are going to calibrate humidity offset. Tap "Confirm" to continue - public static let message = RuuviLocalization.tr("Localizable", "HumidityCalibration.CalibrationConfirmationAlert.message", fallback: "You are going to calibrate humidity offset. Tap \"Confirm\" to continue") - /// Are you sure? - public static let title = RuuviLocalization.tr("Localizable", "HumidityCalibration.CalibrationConfirmationAlert.title", fallback: "Are you sure?") - } - - public enum ClearCalibrationConfirmationAlert { - /// You are going to clear humidity offset. This can't be undone. Tap "Confirm" to continue. - public static let message = RuuviLocalization.tr("Localizable", "HumidityCalibration.ClearCalibrationConfirmationAlert.message", fallback: "You are going to clear humidity offset. This can't be undone. Tap \"Confirm\" to continue.") - /// Are you sure? - public static let title = RuuviLocalization.tr("Localizable", "HumidityCalibration.ClearCalibrationConfirmationAlert.title", fallback: "Are you sure?") - } - - public enum Description { - /// In order to measure relative humidity as accurately as possible, a sodium chloride (salt) calibration is recommended. See video tutorials on how to easily do this at home. - public static let text = RuuviLocalization.tr("Localizable", "HumidityCalibration.Description.text", fallback: "In order to measure relative humidity as accurately as possible, a sodium chloride (salt) calibration is recommended. See video tutorials on how to easily do this at home.") - } - - public enum Label { - public enum Note { - /// Note that calibration data will be stored locally in your mobile device. After Ruuvi Station uninstall and install, you may need to recalibrate. - public static let text = RuuviLocalization.tr("Localizable", "HumidityCalibration.Label.note.text", fallback: "Note that calibration data will be stored locally in your mobile device. After Ruuvi Station uninstall and install, you may need to recalibrate.") - } - } - - public enum VideoTutorials { - /// video tutorials - public static let link = RuuviLocalization.tr("Localizable", "HumidityCalibration.VideoTutorials.link", fallback: "video tutorials") - } - - public enum LastCalibrationDate { - /// Calibrated: %@ - public static func format(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "HumidityCalibration.lastCalibrationDate.format", String(describing: p1), fallback: "Calibrated: %@") - } - } - } - - public enum HumidityUnit { - public enum Dew { - /// Dew point (%@) - public static func title(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "HumidityUnit.Dew.title", String(describing: p1), fallback: "Dew point (%@)") - } - } - - public enum Percent { - /// Relative (%) - public static let title = RuuviLocalization.tr("Localizable", "HumidityUnit.Percent.title", fallback: "Relative (%)") - } - - public enum Gm3 { - /// Absolute (g/m³) - public static let title = RuuviLocalization.tr("Localizable", "HumidityUnit.gm3.title", fallback: "Absolute (g/m³)") - } - } - - public enum Interval { - public enum Day { - /// Day - public static let string = RuuviLocalization.tr("Localizable", "Interval.Day.string", fallback: "Day") - } - - public enum Days { - /// Days - public static let string = RuuviLocalization.tr("Localizable", "Interval.Days.string", fallback: "Days") - } - } - - public enum Language { - /// English - public static let english = RuuviLocalization.tr("Localizable", "Language.English", fallback: "English") - /// Suomi - public static let finnish = RuuviLocalization.tr("Localizable", "Language.Finnish", fallback: "Suomi") - /// Français - public static let french = RuuviLocalization.tr("Localizable", "Language.French", fallback: "Français") - /// Deutsch - public static let german = RuuviLocalization.tr("Localizable", "Language.German", fallback: "Deutsch") - /// Русский - public static let russian = RuuviLocalization.tr("Localizable", "Language.Russian", fallback: "Русский") - /// Svenska - public static let swedish = RuuviLocalization.tr("Localizable", "Language.Swedish", fallback: "Svenska") - } - - public enum LocalNotificationsManager { - public enum DidConnect { - /// Connected - public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.DidConnect.title", fallback: "Connected") - } - - public enum DidDisconnect { - /// Disconnected - public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.DidDisconnect.title", fallback: "Disconnected") - } - - public enum DidMove { - /// Movement detected! - public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.DidMove.title", fallback: "Movement detected!") - } - - public enum Disable { - /// Turn off - public static let button = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.Disable.button", fallback: "Turn off") - } - - public enum HighDewPoint { - /// Dew Point is too high! - public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.HighDewPoint.title", fallback: "Dew Point is too high!") - } - - public enum HighHumidity { - /// Air Humidity is too high! - public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.HighHumidity.title", fallback: "Air Humidity is too high!") - } - - public enum HighPressure { - /// Air Pressure is too high! - public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.HighPressure.title", fallback: "Air Pressure is too high!") - } - - public enum HighSignal { - /// Signal strength is too high! - public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.HighSignal.title", fallback: "Signal strength is too high!") - } - - public enum HighTemperature { - /// Temperature is too high! - public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.HighTemperature.title", fallback: "Temperature is too high!") - } - - public enum LowDewPoint { - /// Dew Point is too low! - public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.LowDewPoint.title", fallback: "Dew Point is too low!") - } - - public enum LowHumidity { - /// Air Humidity is too low! - public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.LowHumidity.title", fallback: "Air Humidity is too low!") - } - - public enum LowPressure { - /// Air Pressure is too low! - public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.LowPressure.title", fallback: "Air Pressure is too low!") - } - - public enum LowSignal { - /// Signal strength is too low! - public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.LowSignal.title", fallback: "Signal strength is too low!") - } - - public enum LowTemperature { - /// Temperature is too low! - public static let title = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.LowTemperature.title", fallback: "Temperature is too low!") - } - - public enum Mute { - /// Mute for an hour - public static let button = RuuviLocalization.tr("Localizable", "LocalNotificationsManager.Mute.button", fallback: "Mute for an hour") - } - } - - public enum Menu { - public enum BuyGateway { - public enum Url { - /// https://ruuvi.com/gateway?utm_campaign=app_ua&utm_medium=referral&utm_source=ios - public static let ios = RuuviLocalization.tr("Localizable", "Menu.BuyGateway.URL.IOS", fallback: "https://ruuvi.com/gateway?utm_campaign=app_ua&utm_medium=referral&utm_source=ios") - } - } - - public enum Label { - public enum AboutHelp { - /// About / Help - public static let text = RuuviLocalization.tr("Localizable", "Menu.Label.AboutHelp.text", fallback: "About / Help") - } - - public enum AddAnNewSensor { - /// Add a New Sensor - public static let text = RuuviLocalization.tr("Localizable", "Menu.Label.AddAnNewSensor.text", fallback: "Add a New Sensor") - } - - public enum AppSettings { - /// App Settings - public static let text = RuuviLocalization.tr("Localizable", "Menu.Label.AppSettings.text", fallback: "App Settings") - } - - public enum BuyRuuviGateway { - /// Buy Ruuvi Gateway - public static let text = RuuviLocalization.tr("Localizable", "Menu.Label.BuyRuuviGateway.text", fallback: "Buy Ruuvi Gateway") - } - - public enum Feedback { - /// Send Feedback - public static let text = RuuviLocalization.tr("Localizable", "Menu.Label.Feedback.text", fallback: "Send Feedback") - } - - public enum GetMoreSensors { - /// Buy Ruuvi Sensors - public static let text = RuuviLocalization.tr("Localizable", "Menu.Label.GetMoreSensors.text", fallback: "Buy Ruuvi Sensors") - } - - public enum MyRuuviAccount { - /// My Ruuvi Account - public static let text = RuuviLocalization.tr("Localizable", "Menu.Label.MyRuuviAccount.text", fallback: "My Ruuvi Account") - } - - public enum WhatToMeasure { - /// What to measure with Ruuvi? - public static let text = RuuviLocalization.tr("Localizable", "Menu.Label.WhatToMeasure.text", fallback: "What to measure with Ruuvi?") - } - } - - public enum LoggedIn { - /// Signed in: - public static let title = RuuviLocalization.tr("Localizable", "Menu.LoggedIn.title", fallback: "Signed in:") - } - - public enum Measure { - public enum Url { - /// https://ruuvi.com/ideas?utm_campaign=app_ua&utm_medium=referral&utm_source=ios - public static let ios = RuuviLocalization.tr("Localizable", "Menu.Measure.URL.IOS", fallback: "https://ruuvi.com/ideas?utm_campaign=app_ua&utm_medium=referral&utm_source=ios") - } - } - - public enum RuuviNetworkStatus { - /// Ruuvi Cloud status - public static let text = RuuviLocalization.tr("Localizable", "Menu.RuuviNetworkStatus.text", fallback: "Ruuvi Cloud status") - } - - public enum SignOut { - /// Sign out - public static let text = RuuviLocalization.tr("Localizable", "Menu.SignOut.text", fallback: "Sign out") - } - } - - public enum MenuTableViewController { - /// none - public static let none = RuuviLocalization.tr("Localizable", "MenuTableViewController.None", fallback: "none") - /// User: %@ - public static func user(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "MenuTableViewController.User", String(describing: p1), fallback: "User: %@") - } - } - - public enum MyRuuvi { - public enum Settings { - public enum DeleteAccount { - /// Delete Account - public static let title = RuuviLocalization.tr("Localizable", "MyRuuvi.Settings.DeleteAccount.title", fallback: "Delete Account") - public enum Confirmation { - /// A confirmation has been sent to your email. To proceed with the deletion, please check your inbox and follow the instructions. - public static let message = RuuviLocalization.tr("Localizable", "MyRuuvi.Settings.DeleteAccount.Confirmation.message", fallback: "A confirmation has been sent to your email. To proceed with the deletion, please check your inbox and follow the instructions.") - } - } - } - } - - public enum OWMError { - /// API limit exceeded - public static let apiLimitExceeded = RuuviLocalization.tr("Localizable", "OWMError.apiLimitExceeded", fallback: "API limit exceeded") - /// Failed to parse Open Weather Map response - public static let failedToParseOpenWeatherMapResponse = RuuviLocalization.tr("Localizable", "OWMError.failedToParseOpenWeatherMapResponse", fallback: "Failed to parse Open Weather Map response") - /// Invalid API Key - public static let invalidApiKey = RuuviLocalization.tr("Localizable", "OWMError.invalidApiKey", fallback: "Invalid API Key") - /// Not an HTTP response - public static let notAHttpResponse = RuuviLocalization.tr("Localizable", "OWMError.notAHttpResponse", fallback: "Not an HTTP response") - } - - public enum OffsetCorrection { - public enum Calibrate { - /// Offset correction - public static let button = RuuviLocalization.tr("Localizable", "OffsetCorrection.Calibrate.button", fallback: "Offset correction") - } - - public enum CalibrationDescription { - /// In normal use, it's not necessary to adjust the offset. - /// - /// If you're an advanced user and you'd like to manually configure the factory calibrated sensors, it's possible to do so. - /// - /// Calibration tips are available on ruuvi.com/support - public static let text = RuuviLocalization.tr("Localizable", "OffsetCorrection.CalibrationDescription.text", fallback: "In normal use, it's not necessary to adjust the offset.\n\nIf you're an advanced user and you'd like to manually configure the factory calibrated sensors, it's possible to do so.\n\nCalibration tips are available on ruuvi.com/support") - } - - public enum CorrectedValue { - /// Corrected value - public static let title = RuuviLocalization.tr("Localizable", "OffsetCorrection.CorrectedValue.title", fallback: "Corrected value") - } - - public enum Dialog { - public enum Calibration { - /// Clear calibration settings? - public static let clearConfirm = RuuviLocalization.tr("Localizable", "OffsetCorrection.Dialog.Calibration.ClearConfirm", fallback: "Clear calibration settings?") - /// Enter the expected humidity value from sensor under current conditions (%@): - public static func enterHumidity(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "OffsetCorrection.Dialog.Calibration.EnterHumidity", String(describing: p1), fallback: "Enter the expected humidity value from sensor under current conditions (%@): ") - } - - /// Enter the expected pressure value from sensor under current conditions (%@): - public static func enterPressure(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "OffsetCorrection.Dialog.Calibration.EnterPressure", String(describing: p1), fallback: "Enter the expected pressure value from sensor under current conditions (%@): ") - } - - /// Enter the expected temperature value from sensor under current conditions (%@): - public static func enterTemperature(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "OffsetCorrection.Dialog.Calibration.EnterTemperature", String(describing: p1), fallback: "Enter the expected temperature value from sensor under current conditions (%@): ") - } - - /// Calibration setup - public static let title = RuuviLocalization.tr("Localizable", "OffsetCorrection.Dialog.Calibration.Title", fallback: "Calibration setup") - } - } - - public enum Humidity { - /// Humidity offset - public static let title = RuuviLocalization.tr("Localizable", "OffsetCorrection.Humidity.Title", fallback: "Humidity offset") - } - - public enum OriginalValue { - /// Original measured value - public static let title = RuuviLocalization.tr("Localizable", "OffsetCorrection.OriginalValue.title", fallback: "Original measured value") - } - - public enum Pressure { - /// Pressure offset - public static let title = RuuviLocalization.tr("Localizable", "OffsetCorrection.Pressure.Title", fallback: "Pressure offset") - } - - public enum Temperature { - /// Temperature offset - public static let title = RuuviLocalization.tr("Localizable", "OffsetCorrection.Temperature.Title", fallback: "Temperature offset") - } - } - - public enum Owner { - /// Claim sensor - public static let title = RuuviLocalization.tr("Localizable", "Owner.title", fallback: "Claim sensor") - public enum Claim { - /// Do you own this sensor? If yes, please claim ownership of the sensor and it'll be added to your Ruuvi account. Each Ruuvi sensor can have only one owner. To claim ownership, you need to be signed in. - /// - /// Benefits: - /// - /// ● Sensor names, background images, offsets and alert settings will be securely stored on the cloud - /// - /// ● Access sensors remotely over the Internet (requires a Ruuvi Gateway) - /// - /// ● Share sensors with friends and family (requires a Ruuvi Gateway) - /// - /// ● Browse up to 2 years of history on station.ruuvi.com (requires a Ruuvi Gateway) - public static let description = RuuviLocalization.tr("Localizable", "Owner.Claim.description", fallback: "Do you own this sensor? If yes, please claim ownership of the sensor and it'll be added to your Ruuvi account. Each Ruuvi sensor can have only one owner. To claim ownership, you need to be signed in.\n\nBenefits:\n\n ● Sensor names, background images, offsets and alert settings will be securely stored on the cloud\n\n ● Access sensors remotely over the Internet (requires a Ruuvi Gateway)\n\n ● Share sensors with friends and family (requires a Ruuvi Gateway)\n\n ● Browse up to 2 years of history on station.ruuvi.com (requires a Ruuvi Gateway)") - } - - public enum ClaimOwnership { - /// Claim ownership - public static let button = RuuviLocalization.tr("Localizable", "Owner.ClaimOwnership.button", fallback: "Claim ownership") - } - } - - public enum PermissionPresenter { - /// Settings - public static let settings = RuuviLocalization.tr("Localizable", "PermissionPresenter.settings", fallback: "Settings") - public enum NoCameraAccess { - /// Ruuvi Station needs to access your camera to enable this feature. - public static let message = RuuviLocalization.tr("Localizable", "PermissionPresenter.NoCameraAccess.message", fallback: "Ruuvi Station needs to access your camera to enable this feature.") - } - - public enum NoLocationAccess { - /// Ruuvi Station needs to access your location to enable this feature. - public static let message = RuuviLocalization.tr("Localizable", "PermissionPresenter.NoLocationAccess.message", fallback: "Ruuvi Station needs to access your location to enable this feature.") - } - - public enum NoPhotoLibraryAccess { - /// Ruuvi Station needs to access your camera library to enable this feature. - public static let message = RuuviLocalization.tr("Localizable", "PermissionPresenter.NoPhotoLibraryAccess.message", fallback: "Ruuvi Station needs to access your camera library to enable this feature.") - } - - public enum NoPushNotificationsPermission { - /// Ruuvi Station needs push notifications permission to enable this feature - public static let message = RuuviLocalization.tr("Localizable", "PermissionPresenter.NoPushNotificationsPermission.message", fallback: "Ruuvi Station needs push notifications permission to enable this feature") - } - } - - public enum PhotoPicker { - public enum Sheet { - /// Take photo - public static let camera = RuuviLocalization.tr("Localizable", "PhotoPicker.Sheet.camera", fallback: "Take photo") - /// Choose from files - public static let files = RuuviLocalization.tr("Localizable", "PhotoPicker.Sheet.files", fallback: "Choose from files") - /// Choose from the library - public static let library = RuuviLocalization.tr("Localizable", "PhotoPicker.Sheet.library", fallback: "Choose from the library") - /// Pick a photo - public static let message = RuuviLocalization.tr("Localizable", "PhotoPicker.Sheet.message", fallback: "Pick a photo") - } - } - - public enum Ruuvi { - public enum BuySensors { - public enum Menu { - public enum Url { - /// https://ruuvi.com/products?utm_campaign=app_ua_nav&utm_medium=referral&utm_source=ios - public static let ios = RuuviLocalization.tr("Localizable", "Ruuvi.BuySensors.Menu.URL.IOS", fallback: "https://ruuvi.com/products?utm_campaign=app_ua_nav&utm_medium=referral&utm_source=ios") - } - } - - public enum Url { - /// https://ruuvi.com/products?utm_campaign=app_ua&utm_medium=referral&utm_source=ios - public static let ios = RuuviLocalization.tr("Localizable", "Ruuvi.BuySensors.URL.IOS", fallback: "https://ruuvi.com/products?utm_campaign=app_ua&utm_medium=referral&utm_source=ios") - } - } - } - - public enum RuuviCloudApiError { - /// Empty response - public static let emptyResponse = RuuviLocalization.tr("Localizable", "RuuviCloudApiError.emptyResponse", fallback: "Empty response") - /// Failed to get data from response - public static let failedToGetDataFromResponse = RuuviLocalization.tr("Localizable", "RuuviCloudApiError.failedToGetDataFromResponse", fallback: "Failed to get data from response") - /// Unexpected HTTP status code - public static let unexpectedHTTPStatusCode = RuuviLocalization.tr("Localizable", "RuuviCloudApiError.unexpectedHTTPStatusCode", fallback: "Unexpected HTTP status code") - } - - public enum RuuviCloudError { - /// Not authorised - public static let notAuthorized = RuuviLocalization.tr("Localizable", "RuuviCloudError.NotAuthorized", fallback: "Not authorised") - } - - public enum RuuviDfuError { - /// Failed to construct UUID - public static let failedToConstructUUID = RuuviLocalization.tr("Localizable", "RuuviDfuError.failedToConstructUUID", fallback: "Failed to construct UUID") - /// Invalid firmware file - public static let invalidFirmwareFile = RuuviLocalization.tr("Localizable", "RuuviDfuError.invalidFirmwareFile", fallback: "Invalid firmware file") - } - - public enum RuuviLocalError { - /// Failed to get background directory - public static let failedToGetDocumentsDirectory = RuuviLocalization.tr("Localizable", "RuuviLocalError.failedToGetDocumentsDirectory", fallback: "Failed to get background directory") - /// Failed to get JPG representation - public static let failedToGetJpegRepresentation = RuuviLocalization.tr("Localizable", "RuuviLocalError.failedToGetJpegRepresentation", fallback: "Failed to get JPG representation") - } - - public enum RuuviOnboard { - public enum Access { - /// Access data for each linked sensor in real time and explore history graphs. - public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Access.title", fallback: "Access data for each linked sensor in real time and explore history graphs.") - } - - public enum Alerts { - /// Set alerts and get notified whenever your limits are hit. - public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Alerts.title", fallback: "Set alerts and get notified whenever your limits are hit.") - } - - public enum Cloud { - /// Claim ownership of your sensors with a free Ruuvi Cloud account. - public static let subtitle = RuuviLocalization.tr("Localizable", "RuuviOnboard.Cloud.subtitle", fallback: "Claim ownership of your sensors with a free Ruuvi Cloud account.") - /// Sign in to use the full potential of the app. - public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Cloud.title", fallback: "Sign in to use the full potential of the app.") - public enum Benefits { - /// Benefits: - /// - /// ● Sensor names, background images, offsets and alert settings will be securely stored on the cloud - /// - /// ● Access sensors remotely over the Internet (requires a Ruuvi Gateway) - /// - /// ● Share sensors with friends and family (requires a Ruuvi Gateway) - /// - /// ● Browse up to 2 years of history on station.ruuvi.com (requires a Ruuvi Gateway) - public static let message = RuuviLocalization.tr("Localizable", "RuuviOnboard.Cloud.Benefits.message", fallback: "Benefits:\n\n ● Sensor names, background images, offsets and alert settings will be securely stored on the cloud\n\n ● Access sensors remotely over the Internet (requires a Ruuvi Gateway)\n\n ● Share sensors with friends and family (requires a Ruuvi Gateway)\n\n ● Browse up to 2 years of history on station.ruuvi.com (requires a Ruuvi Gateway)") - } - - public enum Details { - /// Details - public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Cloud.Details.title", fallback: "Details") - } - - public enum Skip { - /// Are you sure you want to skip sign in? - public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Cloud.Skip.title", fallback: "Are you sure you want to skip sign in?") - public enum GoBack { - /// Go back - public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Cloud.Skip.GoBack.title", fallback: "Go back") - } - - public enum Yes { - /// Yes, skip - public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Cloud.Skip.Yes.title", fallback: "Yes, skip") - } - } - - public enum Subtitle { - /// Great! You already signed in! - public static let signed = RuuviLocalization.tr("Localizable", "RuuviOnboard.Cloud.subtitle.signed", fallback: "Great! You already signed in!") - } - } - - public enum Measure { - /// Measure environmental data: temperature, relative humidity and air pressure. - public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Measure.title", fallback: "Measure environmental data: temperature, relative humidity and air pressure.") - } - - public enum Start { - /// Press SCAN to find and add nearby sensors to your Ruuvi Station. - public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Start.title", fallback: "Press SCAN to find and add nearby sensors to your Ruuvi Station.") - } - - public enum Welcome { - /// Swipe to see what Ruuvi Station can do for you. - public static let title = RuuviLocalization.tr("Localizable", "RuuviOnboard.Welcome.title", fallback: "Swipe to see what Ruuvi Station can do for you.") - } - } - - public enum RuuviPersistenceError { - /// Failed to find sensor - public static let failedToFindRuuviTag = RuuviLocalization.tr("Localizable", "RuuviPersistenceError.failedToFindRuuviTag", fallback: "Failed to find sensor") - } - - public enum RuuviServiceError { - /// Both local and MAC identifiers are nil - public static let bothLuidAndMacAreNil = RuuviLocalization.tr("Localizable", "RuuviServiceError.bothLuidAndMacAreNil", fallback: "Both local and MAC identifiers are nil") - /// Failed to find or generate background image - public static let failedToFindOrGenerateBackgroundImage = RuuviLocalization.tr("Localizable", "RuuviServiceError.failedToFindOrGenerateBackgroundImage", fallback: "Failed to find or generate background image") - /// Failed to get JPG representation - public static let failedToGetJpegRepresentation = RuuviLocalization.tr("Localizable", "RuuviServiceError.failedToGetJpegRepresentation", fallback: "Failed to get JPG representation") - /// Failed to parse response. - public static let failedToParseNetworkResponse = RuuviLocalization.tr("Localizable", "RuuviServiceError.failedToParseNetworkResponse", fallback: "Failed to parse response.") - /// MAC identifier is nil - public static let macIdIsNil = RuuviLocalization.tr("Localizable", "RuuviServiceError.macIdIsNil", fallback: "MAC identifier is nil") - /// Photo URL is nil - public static let pictureUrlIsNil = RuuviLocalization.tr("Localizable", "RuuviServiceError.pictureUrlIsNil", fallback: "Photo URL is nil") - } - - public enum Settings { - public enum BackgroundScanning { - /// Data logging interval - public static let interval = RuuviLocalization.tr("Localizable", "Settings.BackgroundScanning.interval", fallback: "Data logging interval") - /// Background Scanning - public static let title = RuuviLocalization.tr("Localizable", "Settings.BackgroundScanning.title", fallback: "Background Scanning") - public enum Footer { - /// Important note: Bluetooth background history logging and Bluetooth alerts work only when background scanning is enabled. If you disable the background scanning, all paired Ruuvi sensors will be automatically unpaired and you need to pair them again from their settings pages. - public static let message = RuuviLocalization.tr("Localizable", "Settings.BackgroundScanning.Footer.message", fallback: "Important note: Bluetooth background history logging and Bluetooth alerts work only when background scanning is enabled. If you disable the background scanning, all paired Ruuvi sensors will be automatically unpaired and you need to pair them again from their settings pages.") - } - } - - public enum ChooseHumidityUnit { - /// Choose the humidity unit you want to be displayed. - public static let text = RuuviLocalization.tr("Localizable", "Settings.ChooseHumidityUnit.text", fallback: "Choose the humidity unit you want to be displayed.") - } - - public enum ChoosePressureUnit { - /// Choose the pressure unit you want to be displayed. - public static let text = RuuviLocalization.tr("Localizable", "Settings.ChoosePressureUnit.text", fallback: "Choose the pressure unit you want to be displayed.") - } - - public enum ChooseTemperatureUnit { - /// Choose the temperature unit you want to be displayed. - public static let text = RuuviLocalization.tr("Localizable", "Settings.ChooseTemperatureUnit.text", fallback: "Choose the temperature unit you want to be displayed.") - } - - public enum Humidity { - public enum Resolution { - /// Humidity Resolution - public static let title = RuuviLocalization.tr("Localizable", "Settings.Humidity.Resolution.title", fallback: "Humidity Resolution") - } - } - - public enum Label { - /// Chart Settings - public static let chart = RuuviLocalization.tr("Localizable", "Settings.Label.Chart", fallback: "Chart Settings") - /// Cloud mode - public static let cloudMode = RuuviLocalization.tr("Localizable", "Settings.Label.CloudMode", fallback: "Cloud mode") - /// Defaults - public static let defaults = RuuviLocalization.tr("Localizable", "Settings.Label.Defaults", fallback: "Defaults") - /// Foreground - public static let foreground = RuuviLocalization.tr("Localizable", "Settings.Label.Foreground", fallback: "Foreground") - /// Humidity - public static let humidity = RuuviLocalization.tr("Localizable", "Settings.Label.Humidity", fallback: "Humidity") - /// Pressure - public static let pressure = RuuviLocalization.tr("Localizable", "Settings.Label.Pressure", fallback: "Pressure") - /// Temperature - public static let temperature = RuuviLocalization.tr("Localizable", "Settings.Label.Temperature", fallback: "Temperature") - public enum CloudMode { - /// Refresh nearby cloud sensors only from the cloud by ignoring their Bluetooth messages and receiving alerts only by email. Requires a Ruuvi Gateway router. - public static let description = RuuviLocalization.tr("Localizable", "Settings.Label.CloudMode.description", fallback: "Refresh nearby cloud sensors only from the cloud by ignoring their Bluetooth messages and receiving alerts only by email. Requires a Ruuvi Gateway router.") - } - - public enum HumidityUnit { - /// Humidity Unit - public static let text = RuuviLocalization.tr("Localizable", "Settings.Label.HumidityUnit.text", fallback: "Humidity Unit") - } - - public enum Language { - /// Language - public static let text = RuuviLocalization.tr("Localizable", "Settings.Label.Language.text", fallback: "Language") - } - - public enum PressureUnit { - /// Pressure Unit - public static let text = RuuviLocalization.tr("Localizable", "Settings.Label.PressureUnit.text", fallback: "Pressure Unit") - } - - public enum TemperatureUnit { - /// Temperature Unit - public static let text = RuuviLocalization.tr("Localizable", "Settings.Label.TemperatureUnit.text", fallback: "Temperature Unit") - } - } - - public enum Language { - public enum Dialog { - /// Open settings and tap Language to change language of the app. - /// If you cannot see the Language option in the settings, make sure that you have at least one preferred language added in system settings: Settings -> General -> Language & Region. - public static let message = RuuviLocalization.tr("Localizable", "Settings.Language.Dialog.message", fallback: "Open settings and tap Language to change language of the app.\nIf you cannot see the Language option in the settings, make sure that you have at least one preferred language added in system settings: Settings -> General -> Language & Region.") - /// Select Language - public static let title = RuuviLocalization.tr("Localizable", "Settings.Language.Dialog.title", fallback: "Select Language") - } - } - - public enum Measurement { - public enum Resolution { - /// Select how accurately you'd like to see the sensors' live measurement values in the app. This setting doesn't affect history charts or alerts. - public static let description = RuuviLocalization.tr("Localizable", "Settings.Measurement.Resolution.description", fallback: "Select how accurately you'd like to see the sensors' live measurement values in the app. This setting doesn't affect history charts or alerts.") - /// Resolution - public static let title = RuuviLocalization.tr("Localizable", "Settings.Measurement.Resolution.title", fallback: "Resolution") - } - - public enum Unit { - /// Unit - public static let title = RuuviLocalization.tr("Localizable", "Settings.Measurement.Unit.title", fallback: "Unit") - } - } - - public enum Pressure { - public enum Resolution { - /// Pressure Resolution - public static let title = RuuviLocalization.tr("Localizable", "Settings.Pressure.Resolution.title", fallback: "Pressure Resolution") - } - } - - public enum SectionHeader { - public enum Application { - /// APPLICATION - public static let title = RuuviLocalization.tr("Localizable", "Settings.SectionHeader.Application.title", fallback: "APPLICATION") - } - - public enum General { - /// GENERAL - public static let title = RuuviLocalization.tr("Localizable", "Settings.SectionHeader.General.title", fallback: "GENERAL") - } - } - - public enum SegmentedControl { - public enum Humidity { - public enum Absolute { - /// Abs - public static let title = RuuviLocalization.tr("Localizable", "Settings.SegmentedControl.Humidity.Absolute.title", fallback: "Abs") - } - - public enum DewPoint { - /// Dew - public static let title = RuuviLocalization.tr("Localizable", "Settings.SegmentedControl.Humidity.DewPoint.title", fallback: "Dew") - } - - public enum Relative { - /// Rel - public static let title = RuuviLocalization.tr("Localizable", "Settings.SegmentedControl.Humidity.Relative.title", fallback: "Rel") - } - } - } - - public enum Temperature { - public enum Resolution { - /// Temperature Resolution - public static let title = RuuviLocalization.tr("Localizable", "Settings.Temperature.Resolution.title", fallback: "Temperature Resolution") - } - } - - public enum NavigationItem { - /// Settings - public static let title = RuuviLocalization.tr("Localizable", "Settings.navigationItem.title", fallback: "Settings") - } - } - - public enum Share { - public enum Send { - /// Send - public static let button = RuuviLocalization.tr("Localizable", "Share.Send.button", fallback: "Send") - } - - public enum Success { - /// Successfully shared sensor - public static let message = RuuviLocalization.tr("Localizable", "Share.Success.message", fallback: "Successfully shared sensor") - } - } - - public enum SharePresenter { - public enum UnshareSensor { - /// Do you want to unshare sensor for %@? - public static func message(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "SharePresenter.UnshareSensor.Message", String(describing: p1), fallback: "Do you want to unshare sensor for %@?") - } - } - } - - public enum ShareViewController { - /// You can share the sensor with friends and family if it's in range of a Ruuvi Gateway. - /// - /// Receiver will be notified by email. If the receiver doesn't have a Ruuvi account, a free Ruuvi account will automatically be created at first log in. - /// - /// Note that the sensor's custom name and background image will be shared. The name and image sync is one time only, and after this, they can be privately customised by the receiver. Offset values (if any) set by the owner, will be automatically synced, and the receiver will always see the final corrected values. - public static let description = RuuviLocalization.tr("Localizable", "ShareViewController.Description", fallback: "You can share the sensor with friends and family if it's in range of a Ruuvi Gateway.\n\nReceiver will be notified by email. If the receiver doesn't have a Ruuvi account, a free Ruuvi account will automatically be created at first log in.\n\nNote that the sensor's custom name and background image will be shared. The name and image sync is one time only, and after this, they can be privately customised by the receiver. Offset values (if any) set by the owner, will be automatically synced, and the receiver will always see the final corrected values.") - /// Share sensor - public static let title = RuuviLocalization.tr("Localizable", "ShareViewController.Title", fallback: "Share sensor") - public enum AddFriend { - /// Add friend - public static let title = RuuviLocalization.tr("Localizable", "ShareViewController.addFriend.Title", fallback: "Add friend") - } - - public enum EmailTextField { - /// Type email - public static let placeholder = RuuviLocalization.tr("Localizable", "ShareViewController.emailTextField.placeholder", fallback: "Type email") - } - - public enum SharedEmails { - /// You have used %d/%d of maximum shares of this sensor. The sensor has been shared to following users: - public static func title(_ p1: Int, _ p2: Int) -> String { - RuuviLocalization.tr("Localizable", "ShareViewController.sharedEmails.Title", p1, p2, fallback: "You have used %d/%d of maximum shares of this sensor. The sensor has been shared to following users:") - } - } - } - - public enum SignIn { - /// We've sent a one-time password to your email %@. Sign in by entering it here: - public static func checkMailbox(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "SignIn.CheckMailbox", String(describing: p1), fallback: "We've sent a one-time password to your email %@. Sign in by entering it here:") - } - - /// Code - public static let codeHint = RuuviLocalization.tr("Localizable", "SignIn.CodeHint", fallback: "Code") - /// Email - public static let emailPlaceholder = RuuviLocalization.tr("Localizable", "SignIn.EmailPlaceholder", fallback: "Email") - /// Email sent - public static let emailSent = RuuviLocalization.tr("Localizable", "SignIn.EmailSent", fallback: "Email sent") - /// Please enter verification code - public static let enterVerificationCode = RuuviLocalization.tr("Localizable", "SignIn.EnterVerificationCode", fallback: "Please enter verification code") - /// Request a code - public static let requestCode = RuuviLocalization.tr("Localizable", "SignIn.RequestCode", fallback: "Request a code") - /// Submit - public static let submitCode = RuuviLocalization.tr("Localizable", "SignIn.SubmitCode", fallback: "Submit") - /// verification code in format: CJSM - public static let verificationCodePlaceholder = RuuviLocalization.tr("Localizable", "SignIn.VerificationCodePlaceholder", fallback: "verification code in format: CJSM") - public enum EmailMismatch { - public enum Alert { - /// Oops, you've requested the code for %@, but used the code for %@. Please double check that you are using the code for %@ - public static func message(_ p1: Any, _ p2: Any, _ p3: Any) -> String { - RuuviLocalization.tr("Localizable", "SignIn.EmailMismatch.Alert.message", String(describing: p1), String(describing: p2), String(describing: p3), fallback: "Oops, you've requested the code for %@, but used the code for %@. Please double check that you are using the code for %@") - } - } - } - - public enum EmailMissing { - public enum Alert { - /// Oops, the email you've used to get the code was not saved. Please try to sign in again. - public static let message = RuuviLocalization.tr("Localizable", "SignIn.EmailMissing.Alert.message", fallback: "Oops, the email you've used to get the code was not saved. Please try to sign in again.") - } - } - - public enum SubtitleLabel { - /// To enjoy all the features, create a free account or sign in to your existing Ruuvi account by entering your email address. - public static let text = RuuviLocalization.tr("Localizable", "SignIn.SubtitleLabel.text", fallback: "To enjoy all the features, create a free account or sign in to your existing Ruuvi account by entering your email address.") - } - - public enum Sync { - /// Downloading content from the cloud. Please wait. - public static let message = RuuviLocalization.tr("Localizable", "SignIn.Sync.message", fallback: "Downloading content from the cloud. Please wait.") - } - - public enum Title { - /// Sign in - public static let text = RuuviLocalization.tr("Localizable", "SignIn.Title.text", fallback: "Sign in") - } - - public enum TitleLabel { - /// Sign in to - /// Ruuvi - /// Station - public static let text = RuuviLocalization.tr("Localizable", "SignIn.TitleLabel.text", fallback: "Sign in to\nRuuvi\nStation") - } - } - - public enum TagCharts { - public enum AbortSync { - public enum Alert { - /// Sometimes the history download is slow due to the Bluetooth connectivity. Please wait a moment. - public static let message = RuuviLocalization.tr("Localizable", "TagCharts.AbortSync.Alert.message", fallback: "Sometimes the history download is slow due to the Bluetooth connectivity. Please wait a moment.") - } - - public enum Button { - /// Abort download - public static let title = RuuviLocalization.tr("Localizable", "TagCharts.AbortSync.Button.title", fallback: "Abort download") - } - } - - public enum BluetoothDisabledAlert { - /// Ruuvi Station needs Bluetooth to be able to listen for sensors. Go to Settings and turn Bluetooth on. - public static let message = RuuviLocalization.tr("Localizable", "TagCharts.BluetoothDisabledAlert.message", fallback: "Ruuvi Station needs Bluetooth to be able to listen for sensors. Go to Settings and turn Bluetooth on.") - /// Bluetooth is not enabled - public static let title = RuuviLocalization.tr("Localizable", "TagCharts.BluetoothDisabledAlert.title", fallback: "Bluetooth is not enabled") - } - - public enum Clear { - /// Clear - public static let title = RuuviLocalization.tr("Localizable", "TagCharts.Clear.title", fallback: "Clear") - } - - public enum DeleteHistoryConfirmationDialog { - /// Clear the local history data from the app? - public static let message = RuuviLocalization.tr("Localizable", "TagCharts.DeleteHistoryConfirmationDialog.message", fallback: "Clear the local history data from the app?") - /// Are you sure? - public static let title = RuuviLocalization.tr("Localizable", "TagCharts.DeleteHistoryConfirmationDialog.title", fallback: "Are you sure?") - public enum Button { - public enum Delete { - /// Delete - public static let title = RuuviLocalization.tr("Localizable", "TagCharts.DeleteHistoryConfirmationDialog.button.delete.title", fallback: "Delete") - } - } - } - - public enum Dismiss { - public enum Alert { - /// The history download via Bluetooth connection is in progress. Please wait. - public static let message = RuuviLocalization.tr("Localizable", "TagCharts.Dismiss.Alert.message", fallback: "The history download via Bluetooth connection is in progress. Please wait.") - } - } - - public enum Export { - /// EXPORT - public static let title = RuuviLocalization.tr("Localizable", "TagCharts.Export.title", fallback: "EXPORT") - } - - public enum FailedToSyncDialog { - /// Bluetooth history download failed. Check that you're within Bluetooth range, your sensor has firmware that supports downloading and that the sensor is not simultaneously connected to another iOS device. Sensor connection is reserved for Ruuvi Station when using connected mode in iOS. - public static let message = RuuviLocalization.tr("Localizable", "TagCharts.FailedToSyncDialog.message", fallback: "Bluetooth history download failed. Check that you're within Bluetooth range, your sensor has firmware that supports downloading and that the sensor is not simultaneously connected to another iOS device. Sensor connection is reserved for Ruuvi Station when using connected mode in iOS.") - /// Download failed - public static let title = RuuviLocalization.tr("Localizable", "TagCharts.FailedToSyncDialog.title", fallback: "Download failed") - } - - public enum NoChartData { - /// No chart data available - public static let text = RuuviLocalization.tr("Localizable", "TagCharts.NoChartData.text", fallback: "No chart data available") - } - - public enum Status { - /// Connecting... - public static let connecting = RuuviLocalization.tr("Localizable", "TagCharts.Status.Connecting", fallback: "Connecting...") - /// Disconnecting... - public static let disconnecting = RuuviLocalization.tr("Localizable", "TagCharts.Status.Disconnecting", fallback: "Disconnecting...") - /// Error - public static let error = RuuviLocalization.tr("Localizable", "TagCharts.Status.Error", fallback: "Error") - /// Reading history - public static let readingHistory = RuuviLocalization.tr("Localizable", "TagCharts.Status.ReadingHistory", fallback: "Reading history") - /// Synchronising... - public static let serving = RuuviLocalization.tr("Localizable", "TagCharts.Status.Serving", fallback: "Synchronising...") - /// Success - public static let success = RuuviLocalization.tr("Localizable", "TagCharts.Status.Success", fallback: "Success") - } - - public enum Sync { - /// Sync - public static let title = RuuviLocalization.tr("Localizable", "TagCharts.Sync.title", fallback: "Sync") - } - - public enum SyncConfirmationDialog { - /// Download history data from the sensor? - public static let message = RuuviLocalization.tr("Localizable", "TagCharts.SyncConfirmationDialog.message", fallback: "Download history data from the sensor?") - /// Are you sure? - public static let title = RuuviLocalization.tr("Localizable", "TagCharts.SyncConfirmationDialog.title", fallback: "Are you sure?") - } - - public enum TryAgain { - /// Try again - public static let title = RuuviLocalization.tr("Localizable", "TagCharts.TryAgain.title", fallback: "Try again") - } - } - - public enum TagChartsPresenter { - /// Synchronised: %@ - public static func numberOfPointsSynchronizedOverNetwork(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "TagChartsPresenter.NumberOfPointsSynchronizedOverNetwork", String(describing: p1), fallback: "Synchronised: %@") - } - } - - public enum TagSettings { - /// Share - public static let shareButton = RuuviLocalization.tr("Localizable", "TagSettings.ShareButton", fallback: "Share") - public enum AirHumidityAlert { - /// Air Humidity (%@) - public static func title(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "TagSettings.AirHumidityAlert.title", String(describing: p1), fallback: "Air Humidity (%@)") - } - } - - public enum Alert { - public enum CustomDescription { - /// Set custom description... - public static let placeholder = RuuviLocalization.tr("Localizable", "TagSettings.Alert.CustomDescription.placeholder", fallback: "Set custom description...") - /// Alert custom description - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.Alert.CustomDescription.title", fallback: "Alert custom description") - } - - public enum SetHumidity { - /// Set humidity alert - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.Alert.SetHumidity.title", fallback: "Set humidity alert") - } - - public enum SetPressure { - /// Set pressure alert - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.Alert.SetPressure.title", fallback: "Set pressure alert") - } - - public enum SetRSSI { - /// Set signal strength alert - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.Alert.SetRSSI.title", fallback: "Set signal strength alert") - } - - public enum SetTemperature { - /// Set temperature alert - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.Alert.SetTemperature.title", fallback: "Set temperature alert") - } - } - - public enum AlertSettings { - public enum Dialog { - /// Max (%.0f) - public static func max(_ p1: Float) -> String { - RuuviLocalization.tr("Localizable", "TagSettings.AlertSettings.Dialog.Max", p1, fallback: "Max (%.0f)") - } - - /// Min (%.0f) - public static func min(_ p1: Float) -> String { - RuuviLocalization.tr("Localizable", "TagSettings.AlertSettings.Dialog.Min", p1, fallback: "Min (%.0f)") - } - } - } - - public enum Alerts { - /// Off - public static let off = RuuviLocalization.tr("Localizable", "TagSettings.Alerts.Off", fallback: "Off") - public enum Connection { - /// Alert when connected/disconnected - public static let description = RuuviLocalization.tr("Localizable", "TagSettings.Alerts.Connection.description", fallback: "Alert when connected/disconnected") - } - - public enum DewPoint { - /// Alert when less than %.0f or more than %.0f - public static func description(_ p1: Float, _ p2: Float) -> String { - RuuviLocalization.tr("Localizable", "TagSettings.Alerts.DewPoint.description", p1, p2, fallback: "Alert when less than %.0f or more than %.0f") - } - } - - public enum Humidity { - /// Alert when less than %.0f or more than %.0f - public static func description(_ p1: Float, _ p2: Float) -> String { - RuuviLocalization.tr("Localizable", "TagSettings.Alerts.Humidity.description", p1, p2, fallback: "Alert when less than %.0f or more than %.0f") - } - } - - public enum Movement { - /// Alert when sensor is moved - public static let description = RuuviLocalization.tr("Localizable", "TagSettings.Alerts.Movement.description", fallback: "Alert when sensor is moved") - } - - public enum Pressure { - /// Alert when less than %.0f or more than %.0f - public static func description(_ p1: Float, _ p2: Float) -> String { - RuuviLocalization.tr("Localizable", "TagSettings.Alerts.Pressure.description", p1, p2, fallback: "Alert when less than %.0f or more than %.0f") - } - } - - public enum Temperature { - /// Alert when less than %.0f or more than %.0f - public static func description(_ p1: Float, _ p2: Float) -> String { - RuuviLocalization.tr("Localizable", "TagSettings.Alerts.Temperature.description", p1, p2, fallback: "Alert when less than %.0f or more than %.0f") - } - } - } - - public enum AlertsAreDisabled { - public enum Dialog { - public enum BothNotConnectedAndNoPNPermission { - /// Alerts are disabled because the device is not connected and missing push notification permission. Please connect to the device first. - public static let message = RuuviLocalization.tr("Localizable", "TagSettings.AlertsAreDisabled.Dialog.BothNotConnectedAndNoPNPermission.message", fallback: "Alerts are disabled because the device is not connected and missing push notification permission. Please connect to the device first.") - } - - public enum Connect { - /// Connect - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.AlertsAreDisabled.Dialog.Connect.title", fallback: "Connect") - } - - public enum NotConnected { - /// Alerts are disabled because you are not connected to the device. - public static let message = RuuviLocalization.tr("Localizable", "TagSettings.AlertsAreDisabled.Dialog.NotConnected.message", fallback: "Alerts are disabled because you are not connected to the device.") - } - } - } - - public enum BatteryStatusLabel { - public enum Ok { - /// Battery OK - public static let message = RuuviLocalization.tr("Localizable", "TagSettings.BatteryStatusLabel.Ok.message", fallback: "Battery OK") - } - - public enum Replace { - /// Low battery - public static let message = RuuviLocalization.tr("Localizable", "TagSettings.BatteryStatusLabel.Replace.message", fallback: "Low battery") - } - } - - public enum ClaimTagButton { - /// Claim ownership - public static let claim = RuuviLocalization.tr("Localizable", "TagSettings.ClaimTagButton.Claim", fallback: "Claim ownership") - } - - public enum ConnectStatus { - /// Disconnected - public static let disconnected = RuuviLocalization.tr("Localizable", "TagSettings.ConnectStatus.Disconnected", fallback: "Disconnected") - } - - public enum ConnectionAlert { - /// Connection - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.ConnectionAlert.title", fallback: "Connection") - } - - public enum DataSource { - public enum Advertisement { - /// Advertisement - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.DataSource.Advertisement.title", fallback: "Advertisement") - } - - public enum Heartbeat { - /// Heartbeat - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.DataSource.Heartbeat.title", fallback: "Heartbeat") - } - - public enum Network { - /// Cloud - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.DataSource.Network.title", fallback: "Cloud") - } - } - - public enum EmptyValue { - /// - - public static let sign = RuuviLocalization.tr("Localizable", "TagSettings.EmptyValue.sign", fallback: "-") - } - - public enum Firmware { - /// Current version - public static let currentVersion = RuuviLocalization.tr("Localizable", "TagSettings.Firmware.CurrentVersion", fallback: "Current version") - /// Update - public static let updateFirmware = RuuviLocalization.tr("Localizable", "TagSettings.Firmware.UpdateFirmware", fallback: "Update") - public enum CurrentVersion { - /// Very old - public static let veryOld = RuuviLocalization.tr("Localizable", "TagSettings.Firmware.CurrentVersion.VeryOld", fallback: "Very old") - } - } - - public enum General { - public enum Owner { - /// No owner - public static let none = RuuviLocalization.tr("Localizable", "TagSettings.General.Owner.none", fallback: "No owner") - } - } - - public enum HumidityIsClipped { - public enum Alert { - /// Humidity value is greater than 100% after calibration. This value doesn't make sense, so the value has been adjusted to 100%. - public static func message(_ p1: Float) -> String { - RuuviLocalization.tr("Localizable", "TagSettings.HumidityIsClipped.Alert.message", p1, fallback: "Humidity value is greater than 100% after calibration. This value doesn't make sense, so the value has been adjusted to 100%.") - } - - /// Humidity is adjusted - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.HumidityIsClipped.Alert.title", fallback: "Humidity is adjusted") - public enum Fix { - /// Fix - public static let button = RuuviLocalization.tr("Localizable", "TagSettings.HumidityIsClipped.Alert.Fix.button", fallback: "Fix") - } - } - } - - public enum Label { - public enum Alerts { - /// Alerts - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.Label.alerts.text", fallback: "Alerts") - } - - public enum Disabled { - /// DISABLED? - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.Label.disabled.text", fallback: "DISABLED?") - } - - public enum MoreInfo { - /// More info - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.Label.moreInfo.text", fallback: "More info") - } - - public enum NoValues { - /// NO VALUES? - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.Label.noValues.text", fallback: "NO VALUES?") - } - } - - public enum Mac { - public enum Alert { - /// MAC Address - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.Mac.Alert.title", fallback: "MAC Address") - } - } - - public enum MovementAlert { - /// Movement - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.MovementAlert.title", fallback: "Movement") - } - - public enum NetworkInfo { - /// Owner - public static let owner = RuuviLocalization.tr("Localizable", "TagSettings.NetworkInfo.Owner", fallback: "Owner") - } - - public enum NotShared { - /// Not shared - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.NotShared.title", fallback: "Not shared") - } - - public enum OffsetCorrection { - /// Humidity - public static let humidity = RuuviLocalization.tr("Localizable", "TagSettings.OffsetCorrection.Humidity", fallback: "Humidity") - /// Pressure - public static let pressure = RuuviLocalization.tr("Localizable", "TagSettings.OffsetCorrection.Pressure", fallback: "Pressure") - /// Temperature - public static let temperature = RuuviLocalization.tr("Localizable", "TagSettings.OffsetCorrection.Temperature", fallback: "Temperature") - } - - public enum PairAndBackgroundScan { - /// Alerts are not available over Bluetooth connection if background scanning is not enabled. Only one iOS device can be paired to a Ruuvi sensor at a time. - public static let description = RuuviLocalization.tr("Localizable", "TagSettings.PairAndBackgroundScan.description", fallback: "Alerts are not available over Bluetooth connection if background scanning is not enabled. Only one iOS device can be paired to a Ruuvi sensor at a time.") - public enum Paired { - /// Paired and background scan is on - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.PairAndBackgroundScan.Paired.title", fallback: "Paired and background scan is on") - } - - public enum Pairing { - /// Connecting to the sensor - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.PairAndBackgroundScan.Pairing.title", fallback: "Connecting to the sensor") - } - - public enum Unpaired { - /// Pair and use background scan - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.PairAndBackgroundScan.Unpaired.title", fallback: "Pair and use background scan") - } - } - - public enum PairError { - public enum CloudMode { - /// The sensor cannot be connected to via Bluetooth when the cloud mode is active. You can re-enable the Bluetooth connection for the cloud sensors by disabling cloud mode in the app settings. - public static let description = RuuviLocalization.tr("Localizable", "TagSettings.PairError.CloudMode.description", fallback: "The sensor cannot be connected to via Bluetooth when the cloud mode is active. You can re-enable the Bluetooth connection for the cloud sensors by disabling cloud mode in the app settings.") - } - - public enum Timeout { - /// Connection timed out. Pairing was unsuccessful. Please try again. - public static let description = RuuviLocalization.tr("Localizable", "TagSettings.PairError.Timeout.description", fallback: "Connection timed out. Pairing was unsuccessful. Please try again.") - } - } - - public enum PressureAlert { - /// Air Pressure (%@) - public static func title(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "TagSettings.PressureAlert.title", String(describing: p1), fallback: "Air Pressure (%@)") - } - } - - public enum RemoveThisSensor { - /// Remove this sensor - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.RemoveThisSensor.title", fallback: "Remove this sensor") - } - - public enum SectionHeader { - public enum BTConnection { - /// BLUETOOTH CONNECTION - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.SectionHeader.BTConnection.title", fallback: "BLUETOOTH CONNECTION") - } - - public enum Calibration { - /// CALIBRATION - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.SectionHeader.Calibration.title", fallback: "CALIBRATION") - } - - public enum Firmware { - /// Firmware - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.SectionHeader.Firmware.title", fallback: "Firmware") - } - - public enum General { - /// General - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.SectionHeader.General.title", fallback: "General") - } - - public enum Name { - /// NAME - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.SectionHeader.Name.title", fallback: "NAME") - } - - public enum NetworkInfo { - /// NETWORK INFO - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.SectionHeader.NetworkInfo.title", fallback: "NETWORK INFO") - } - - public enum OffsetCorrection { - /// OFFSET CORRECTION - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.SectionHeader.OffsetCorrection.Title", fallback: "OFFSET CORRECTION") - } - - public enum Remove { - /// REMOVE - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.SectionHeader.Remove.title", fallback: "REMOVE") - } - } - - public enum Share { - /// Share - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.Share.title", fallback: "Share") - } - - public enum Shared { - /// Shared - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.Shared.title", fallback: "Shared") - } - - public enum Uuid { - public enum Alert { - /// UUID - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.UUID.Alert.title", fallback: "UUID") - } - } - - public enum UpdateFirmware { - public enum Alert { - /// In order to see missing values: - /// If you are using the latest firmware, set RAWv2 mode by pressing "B" on a sensor. - /// Or update your sensor with the latest firmware. - public static let message = RuuviLocalization.tr("Localizable", "TagSettings.UpdateFirmware.Alert.message", fallback: "In order to see missing values:\nIf you are using the latest firmware, set RAWv2 mode by pressing \"B\" on a sensor.\nOr update your sensor with the latest firmware.") - /// RAWv2 mode is required - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.UpdateFirmware.Alert.title", fallback: "RAWv2 mode is required") - public enum Buttons { - public enum LearnMore { - /// Learn more - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.UpdateFirmware.Alert.Buttons.LearnMore.title", fallback: "Learn more") - } - } - } - } - - public enum AccelerationXTitleLabel { - /// Acceleration X - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.accelerationXTitleLabel.text", fallback: "Acceleration X") - } - - public enum AccelerationYTitleLabel { - /// Acceleration Y - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.accelerationYTitleLabel.text", fallback: "Acceleration Y") - } - - public enum AccelerationZTitleLabel { - /// Acceleration Z - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.accelerationZTitleLabel.text", fallback: "Acceleration Z") - } - - public enum BackgroundImageLabel { - /// Background image - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.backgroundImageLabel.text", fallback: "Background image") - } - - public enum BatteryVoltageTitleLabel { - /// Battery Voltage - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.batteryVoltageTitleLabel.text", fallback: "Battery Voltage") - } - - public enum ConfirmSharedTagRemovalDialog { - /// If you remove the sensor, the owner of the sensor will be notified and you will not be able to access the sensor anymore. - public static let message = RuuviLocalization.tr("Localizable", "TagSettings.confirmSharedTagRemovalDialog.message", fallback: "If you remove the sensor, the owner of the sensor will be notified and you will not be able to access the sensor anymore.") - } - - public enum ConfirmTagRemovalDialog { - /// Do you want to remove the sensor? You can add it again later, if needed. - public static let message = RuuviLocalization.tr("Localizable", "TagSettings.confirmTagRemovalDialog.message", fallback: "Do you want to remove the sensor? You can add it again later, if needed.") - /// Remove sensor - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.confirmTagRemovalDialog.title", fallback: "Remove sensor") - } - - public enum ConfirmTagUnclaimAndRemoveDialog { - /// By removing the sensor, your sensor ownership status will be revoked. After removal, someone else can claim ownership of the sensor. Each Ruuvi sensor can have only one owner. - public static let message = RuuviLocalization.tr("Localizable", "TagSettings.confirmTagUnclaimAndRemoveDialog.message", fallback: "By removing the sensor, your sensor ownership status will be revoked. After removal, someone else can claim ownership of the sensor. Each Ruuvi sensor can have only one owner.") - } - - public enum DataFormatTitleLabel { - /// Data Format - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.dataFormatTitleLabel.text", fallback: "Data Format") - } - - public enum DataSourceTitleLabel { - /// Data Received Via - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.dataSourceTitleLabel.text", fallback: "Data Received Via") - } - - public enum DewPointAlertTitleLabel { - /// Dew Point - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.dewPointAlertTitleLabel.text", fallback: "Dew Point") - } - - public enum HumidityTitleLabel { - /// Humidity - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.humidityTitleLabel.text", fallback: "Humidity") - } - - public enum MacAddressTitleLabel { - /// MAC Address - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.macAddressTitleLabel.text", fallback: "MAC Address") - } - - public enum McTitleLabel { - /// Movement Counter - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.mcTitleLabel.text", fallback: "Movement Counter") - } - - public enum MsnTitleLabel { - /// Measurement Sequence Number - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.msnTitleLabel.text", fallback: "Measurement Sequence Number") - } - - public enum NavigationItem { - /// Sensor Settings - public static let title = RuuviLocalization.tr("Localizable", "TagSettings.navigationItem.title", fallback: "Sensor Settings") - } - - public enum RssiTitleLabel { - /// Signal Strength (RSSI) - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.rssiTitleLabel.text", fallback: "Signal Strength (RSSI)") - } - - public enum TagNameTitleLabel { - /// Name - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.tagNameTitleLabel.text", fallback: "Name") - public enum Rename { - /// Your sensors are displayed in alphabetical order. - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.tagNameTitleLabel.rename.text", fallback: "Your sensors are displayed in alphabetical order.") - } - } - - public enum TemperatureAlertTitleLabel { - /// Temperature (%@) - public static func text(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "TagSettings.temperatureAlertTitleLabel.text", String(describing: p1), fallback: "Temperature (%@)") - } - } - - public enum TxPowerTitleLabel { - /// Tx Power - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.txPowerTitleLabel.text", fallback: "Tx Power") - } - - public enum UuidTitleLabel { - /// UUID - public static let text = RuuviLocalization.tr("Localizable", "TagSettings.uuidTitleLabel.text", fallback: "UUID") + } + public enum Share { + /// Share + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.Share.title", fallback: "Share") + } + public enum Shared { + /// Shared + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.Shared.title", fallback: "Shared") + } + public enum Uuid { + public enum Alert { + /// UUID + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.UUID.Alert.title", fallback: "UUID") } + } + public enum UpdateFirmware { + public enum Alert { + /// In order to see missing values: + /// If you are using the latest firmware, set RAWv2 mode by pressing "B" on a sensor. + /// Or update your sensor with the latest firmware. + public static let message = RuuviLocalization.tr("Localizable", "TagSettings.UpdateFirmware.Alert.message", fallback: "In order to see missing values:\nIf you are using the latest firmware, set RAWv2 mode by pressing \"B\" on a sensor.\nOr update your sensor with the latest firmware.") + /// RAWv2 mode is required + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.UpdateFirmware.Alert.title", fallback: "RAWv2 mode is required") + public enum Buttons { + public enum LearnMore { + /// Learn more + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.UpdateFirmware.Alert.Buttons.LearnMore.title", fallback: "Learn more") + } + } + } + } + public enum AccelerationXTitleLabel { + /// Acceleration X + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.accelerationXTitleLabel.text", fallback: "Acceleration X") + } + public enum AccelerationYTitleLabel { + /// Acceleration Y + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.accelerationYTitleLabel.text", fallback: "Acceleration Y") + } + public enum AccelerationZTitleLabel { + /// Acceleration Z + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.accelerationZTitleLabel.text", fallback: "Acceleration Z") + } + public enum BackgroundImageLabel { + /// Background image + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.backgroundImageLabel.text", fallback: "Background image") + } + public enum BatteryVoltageTitleLabel { + /// Battery Voltage + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.batteryVoltageTitleLabel.text", fallback: "Battery Voltage") + } + public enum ConfirmSharedTagRemovalDialog { + /// If you remove the sensor, the owner of the sensor will be notified and you will not be able to access the sensor anymore. + public static let message = RuuviLocalization.tr("Localizable", "TagSettings.confirmSharedTagRemovalDialog.message", fallback: "If you remove the sensor, the owner of the sensor will be notified and you will not be able to access the sensor anymore.") + } + public enum ConfirmTagRemovalDialog { + /// Do you want to remove the sensor? You can add it again later, if needed. + public static let message = RuuviLocalization.tr("Localizable", "TagSettings.confirmTagRemovalDialog.message", fallback: "Do you want to remove the sensor? You can add it again later, if needed.") + /// Remove sensor + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.confirmTagRemovalDialog.title", fallback: "Remove sensor") + } + public enum ConfirmTagUnclaimAndRemoveDialog { + /// By removing the sensor, your sensor ownership status will be revoked. After removal, someone else can claim ownership of the sensor. Each Ruuvi sensor can have only one owner. + public static let message = RuuviLocalization.tr("Localizable", "TagSettings.confirmTagUnclaimAndRemoveDialog.message", fallback: "By removing the sensor, your sensor ownership status will be revoked. After removal, someone else can claim ownership of the sensor. Each Ruuvi sensor can have only one owner.") + } + public enum DataFormatTitleLabel { + /// Data Format + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.dataFormatTitleLabel.text", fallback: "Data Format") + } + public enum DataSourceTitleLabel { + /// Data Received Via + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.dataSourceTitleLabel.text", fallback: "Data Received Via") + } + public enum DewPointAlertTitleLabel { + /// Dew Point + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.dewPointAlertTitleLabel.text", fallback: "Dew Point") + } + public enum HumidityTitleLabel { + /// Humidity + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.humidityTitleLabel.text", fallback: "Humidity") + } + public enum MacAddressTitleLabel { + /// MAC Address + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.macAddressTitleLabel.text", fallback: "MAC Address") + } + public enum McTitleLabel { + /// Movement Counter + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.mcTitleLabel.text", fallback: "Movement Counter") + } + public enum MsnTitleLabel { + /// Measurement Sequence Number + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.msnTitleLabel.text", fallback: "Measurement Sequence Number") + } + public enum NavigationItem { + /// Sensor Settings + public static let title = RuuviLocalization.tr("Localizable", "TagSettings.navigationItem.title", fallback: "Sensor Settings") + } + public enum RssiTitleLabel { + /// Signal Strength (RSSI) + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.rssiTitleLabel.text", fallback: "Signal Strength (RSSI)") + } + public enum TagNameTitleLabel { + /// Name + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.tagNameTitleLabel.text", fallback: "Name") + public enum Rename { + /// Your sensors are displayed in alphabetical order. + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.tagNameTitleLabel.rename.text", fallback: "Your sensors are displayed in alphabetical order.") + } + } + public enum TemperatureAlertTitleLabel { + /// Temperature (%@) + public static func text(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "TagSettings.temperatureAlertTitleLabel.text", String(describing: p1), fallback: "Temperature (%@)") + } + } + public enum TxPowerTitleLabel { + /// Tx Power + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.txPowerTitleLabel.text", fallback: "Tx Power") + } + public enum UuidTitleLabel { + /// UUID + public static let text = RuuviLocalization.tr("Localizable", "TagSettings.uuidTitleLabel.text", fallback: "UUID") + } } - public enum TagsManagerPresenter { - public enum SignOutConfirmAlert { - /// When you sign out, sensors the ownerships of which you've claimed on the sensor Settings page will be automatically removed from the app. When you sign in again using the same email address, the sensors will be returned from the cloud. - /// - /// Do you want to sign out? - public static let message = RuuviLocalization.tr("Localizable", "TagsManagerPresenter.SignOutConfirmAlert.Message", fallback: "When you sign out, sensors the ownerships of which you've claimed on the sensor Settings page will be automatically removed from the app. When you sign in again using the same email address, the sensors will be returned from the cloud.\n\nDo you want to sign out?") - } + public enum SignOutConfirmAlert { + /// When you sign out, sensors the ownerships of which you've claimed on the sensor Settings page will be automatically removed from the app. When you sign in again using the same email address, the sensors will be returned from the cloud. + /// + /// Do you want to sign out? + public static let message = RuuviLocalization.tr("Localizable", "TagsManagerPresenter.SignOutConfirmAlert.Message", fallback: "When you sign out, sensors the ownerships of which you've claimed on the sensor Settings page will be automatically removed from the app. When you sign in again using the same email address, the sensors will be returned from the cloud.\n\nDo you want to sign out?") + } } - public enum TemperatureUnit { - public enum Celsius { - /// Celsius (℃) - public static let title = RuuviLocalization.tr("Localizable", "TemperatureUnit.Celsius.title", fallback: "Celsius (℃)") - } - - public enum Fahrenheit { - /// Fahrenheit (℉) - public static let title = RuuviLocalization.tr("Localizable", "TemperatureUnit.Fahrenheit.title", fallback: "Fahrenheit (℉)") - } - - public enum Kelvin { - /// Kelvin (K) - public static let title = RuuviLocalization.tr("Localizable", "TemperatureUnit.Kelvin.title", fallback: "Kelvin (K)") - } + public enum Celsius { + /// Celsius (℃) + public static let title = RuuviLocalization.tr("Localizable", "TemperatureUnit.Celsius.title", fallback: "Celsius (℃)") + } + public enum Fahrenheit { + /// Fahrenheit (℉) + public static let title = RuuviLocalization.tr("Localizable", "TemperatureUnit.Fahrenheit.title", fallback: "Fahrenheit (℉)") + } + public enum Kelvin { + /// Kelvin (K) + public static let title = RuuviLocalization.tr("Localizable", "TemperatureUnit.Kelvin.title", fallback: "Kelvin (K)") + } } - public enum UnexpectedError { - /// Attempt to read data from Realm without LUID - public static let attemptToReadDataFromRealmWithoutLUID = RuuviLocalization.tr("Localizable", "UnexpectedError.attemptToReadDataFromRealmWithoutLUID", fallback: "Attempt to read data from Realm without LUID") - /// Both local and MAC identifiers are nil - public static let bothLuidAndMacAreNil = RuuviLocalization.tr("Localizable", "UnexpectedError.bothLuidAndMacAreNil", fallback: "Both local and MAC identifiers are nil") - /// Both callback result and error are nil - public static let callbackErrorAndResultAreNil = RuuviLocalization.tr("Localizable", "UnexpectedError.callbackErrorAndResultAreNil", fallback: "Both callback result and error are nil") - /// Caller was deallocated during operation - public static let callerDeinitedDuringOperation = RuuviLocalization.tr("Localizable", "UnexpectedError.callerDeinitedDuringOperation", fallback: "Caller was deallocated during operation") - /// Failed to find logs for the sensor - public static let failedToFindLogsForTheTag = RuuviLocalization.tr("Localizable", "UnexpectedError.failedToFindLogsForTheTag", fallback: "Failed to find logs for the sensor") - /// Failed to find or generate background image - public static let failedToFindOrGenerateBackgroundImage = RuuviLocalization.tr("Localizable", "UnexpectedError.failedToFindOrGenerateBackgroundImage", fallback: "Failed to find or generate background image") - /// Failed to find sensor - public static let failedToFindRuuviTag = RuuviLocalization.tr("Localizable", "UnexpectedError.failedToFindRuuviTag", fallback: "Failed to find sensor") - /// Failed to find virtual sensor - public static let failedToFindVirtualTag = RuuviLocalization.tr("Localizable", "UnexpectedError.failedToFindVirtualTag", fallback: "Failed to find virtual sensor") - /// Failed to reverse geocode location - public static let failedToReverseGeocodeCoordinate = RuuviLocalization.tr("Localizable", "UnexpectedError.failedToReverseGeocodeCoordinate", fallback: "Failed to reverse geocode location") - /// View Model UUID is nil - public static let viewModelUUIDIsNil = RuuviLocalization.tr("Localizable", "UnexpectedError.viewModelUUIDIsNil", fallback: "View Model UUID is nil") + /// Attempt to read data from Realm without LUID + public static let attemptToReadDataFromRealmWithoutLUID = RuuviLocalization.tr("Localizable", "UnexpectedError.attemptToReadDataFromRealmWithoutLUID", fallback: "Attempt to read data from Realm without LUID") + /// Both local and MAC identifiers are nil + public static let bothLuidAndMacAreNil = RuuviLocalization.tr("Localizable", "UnexpectedError.bothLuidAndMacAreNil", fallback: "Both local and MAC identifiers are nil") + /// Both callback result and error are nil + public static let callbackErrorAndResultAreNil = RuuviLocalization.tr("Localizable", "UnexpectedError.callbackErrorAndResultAreNil", fallback: "Both callback result and error are nil") + /// Caller was deallocated during operation + public static let callerDeinitedDuringOperation = RuuviLocalization.tr("Localizable", "UnexpectedError.callerDeinitedDuringOperation", fallback: "Caller was deallocated during operation") + /// Failed to find logs for the sensor + public static let failedToFindLogsForTheTag = RuuviLocalization.tr("Localizable", "UnexpectedError.failedToFindLogsForTheTag", fallback: "Failed to find logs for the sensor") + /// Failed to find or generate background image + public static let failedToFindOrGenerateBackgroundImage = RuuviLocalization.tr("Localizable", "UnexpectedError.failedToFindOrGenerateBackgroundImage", fallback: "Failed to find or generate background image") + /// Failed to find sensor + public static let failedToFindRuuviTag = RuuviLocalization.tr("Localizable", "UnexpectedError.failedToFindRuuviTag", fallback: "Failed to find sensor") + /// Failed to find virtual sensor + public static let failedToFindVirtualTag = RuuviLocalization.tr("Localizable", "UnexpectedError.failedToFindVirtualTag", fallback: "Failed to find virtual sensor") + /// Failed to reverse geocode location + public static let failedToReverseGeocodeCoordinate = RuuviLocalization.tr("Localizable", "UnexpectedError.failedToReverseGeocodeCoordinate", fallback: "Failed to reverse geocode location") + /// View Model UUID is nil + public static let viewModelUUIDIsNil = RuuviLocalization.tr("Localizable", "UnexpectedError.viewModelUUIDIsNil", fallback: "View Model UUID is nil") } - public enum UnitPressure { - public enum Hectopascal { - /// Hectopascal (hPa) - public static let title = RuuviLocalization.tr("Localizable", "UnitPressure.hectopascal.title", fallback: "Hectopascal (hPa)") - } - - public enum InchOfMercury { - /// Inch of mercury (inHg) - public static let title = RuuviLocalization.tr("Localizable", "UnitPressure.inchOfMercury.title", fallback: "Inch of mercury (inHg)") - } - - public enum MillimetreOfMercury { - /// Millimetre of mercury (mmHg) - public static let title = RuuviLocalization.tr("Localizable", "UnitPressure.millimetreOfMercury.title", fallback: "Millimetre of mercury (mmHg)") - } + public enum Hectopascal { + /// Hectopascal (hPa) + public static let title = RuuviLocalization.tr("Localizable", "UnitPressure.hectopascal.title", fallback: "Hectopascal (hPa)") + } + public enum InchOfMercury { + /// Inch of mercury (inHg) + public static let title = RuuviLocalization.tr("Localizable", "UnitPressure.inchOfMercury.title", fallback: "Inch of mercury (inHg)") + } + public enum MillimetreOfMercury { + /// Millimetre of mercury (mmHg) + public static let title = RuuviLocalization.tr("Localizable", "UnitPressure.millimetreOfMercury.title", fallback: "Millimetre of mercury (mmHg)") + } } - public enum UpdateFirmware { - public enum Download { - /// To start with the update process, first download the latest software package on the device you're going to use for updates. Latest version is available on ruuvi.com/software-update - public static let content = RuuviLocalization.tr("Localizable", "UpdateFirmware.Download.content", fallback: "To start with the update process, first download the latest software package on the device you're going to use for updates. Latest version is available on ruuvi.com/software-update") - /// DOWNLOAD LATEST FIRMWARE - public static let header = RuuviLocalization.tr("Localizable", "UpdateFirmware.Download.header", fallback: "DOWNLOAD LATEST FIRMWARE") - } - - public enum NextButton { - /// NEXT - public static let title = RuuviLocalization.tr("Localizable", "UpdateFirmware.NextButton.title", fallback: "NEXT") - } - - public enum SetDfu { - /// Open the RuuviTag's enclosure by pulling it open with your fingers or gently with a flat head screw driver. - /// - /// Set RuuviTag to bootloader mode by holding down button B and pressing reset button R. Red indicator LED light will light up and stay on. If your device has only 1 button, keep it pressed 10 seconds to enter the bootloader. - public static let content = RuuviLocalization.tr("Localizable", "UpdateFirmware.SetDfu.content", fallback: "Open the RuuviTag's enclosure by pulling it open with your fingers or gently with a flat head screw driver.\n\nSet RuuviTag to bootloader mode by holding down button B and pressing reset button R. Red indicator LED light will light up and stay on. If your device has only 1 button, keep it pressed 10 seconds to enter the bootloader.") - /// SET RUUVI TAG TO DFU MODE - public static let header = RuuviLocalization.tr("Localizable", "UpdateFirmware.SetDfu.header", fallback: "SET RUUVI TAG TO DFU MODE") - } - - public enum Title { - /// Update Firmware - public static let text = RuuviLocalization.tr("Localizable", "UpdateFirmware.Title.text", fallback: "Update Firmware") - } + public enum Download { + /// To start with the update process, first download the latest software package on the device you're going to use for updates. Latest version is available on ruuvi.com/software-update + public static let content = RuuviLocalization.tr("Localizable", "UpdateFirmware.Download.content", fallback: "To start with the update process, first download the latest software package on the device you're going to use for updates. Latest version is available on ruuvi.com/software-update") + /// DOWNLOAD LATEST FIRMWARE + public static let header = RuuviLocalization.tr("Localizable", "UpdateFirmware.Download.header", fallback: "DOWNLOAD LATEST FIRMWARE") + } + public enum NextButton { + /// NEXT + public static let title = RuuviLocalization.tr("Localizable", "UpdateFirmware.NextButton.title", fallback: "NEXT") + } + public enum SetDfu { + /// Open the RuuviTag's enclosure by pulling it open with your fingers or gently with a flat head screw driver. + /// + /// Set RuuviTag to bootloader mode by holding down button B and pressing reset button R. Red indicator LED light will light up and stay on. If your device has only 1 button, keep it pressed 10 seconds to enter the bootloader. + public static let content = RuuviLocalization.tr("Localizable", "UpdateFirmware.SetDfu.content", fallback: "Open the RuuviTag's enclosure by pulling it open with your fingers or gently with a flat head screw driver.\n\nSet RuuviTag to bootloader mode by holding down button B and pressing reset button R. Red indicator LED light will light up and stay on. If your device has only 1 button, keep it pressed 10 seconds to enter the bootloader.") + /// SET RUUVI TAG TO DFU MODE + public static let header = RuuviLocalization.tr("Localizable", "UpdateFirmware.SetDfu.header", fallback: "SET RUUVI TAG TO DFU MODE") + } + public enum Title { + /// Update Firmware + public static let text = RuuviLocalization.tr("Localizable", "UpdateFirmware.Title.text", fallback: "Update Firmware") + } } - public enum UserApiError { - /// Maximum claim count for the user reached - public static let erClaimCountReached = RuuviLocalization.tr("Localizable", "UserApiError.ER_CLAIM_COUNT_REACHED", fallback: "Maximum claim count for the user reached") - /// Data already exists, cannot update - public static let erConflict = RuuviLocalization.tr("Localizable", "UserApiError.ER_CONFLICT", fallback: "Data already exists, cannot update") - /// Forbidden - public static let erForbidden = RuuviLocalization.tr("Localizable", "UserApiError.ER_FORBIDDEN", fallback: "Forbidden") - /// Gateway already whitelisted - public static let erGatewayAlreadyWhitelisted = RuuviLocalization.tr("Localizable", "UserApiError.ER_GATEWAY_ALREADY_WHITELISTED", fallback: "Gateway already whitelisted") - /// Gateway not found - public static let erGatewayNotFound = RuuviLocalization.tr("Localizable", "UserApiError.ER_GATEWAY_NOT_FOUND", fallback: "Gateway not found") - /// Gateway status report failed - public static let erGatewayStatusReportFailed = RuuviLocalization.tr("Localizable", "UserApiError.ER_GATEWAY_STATUS_REPORT_FAILED", fallback: "Gateway status report failed") - /// Internal error - public static let erInternal = RuuviLocalization.tr("Localizable", "UserApiError.ER_INTERNAL", fallback: "Internal error") - /// Invalid density mode - public static let erInvalidDensityMode = RuuviLocalization.tr("Localizable", "UserApiError.ER_INVALID_DENSITY_MODE", fallback: "Invalid density mode") - /// Invalid email address - public static let erInvalidEmailAddress = RuuviLocalization.tr("Localizable", "UserApiError.ER_INVALID_EMAIL_ADDRESS", fallback: "Invalid email address") - /// Invalid ENUM value given - public static let erInvalidEnumValue = RuuviLocalization.tr("Localizable", "UserApiError.ER_INVALID_ENUM_VALUE", fallback: "Invalid ENUM value given") - /// Invalid request format - public static let erInvalidFormat = RuuviLocalization.tr("Localizable", "UserApiError.ER_INVALID_FORMAT", fallback: "Invalid request format") - /// Invalid MAC-address - public static let erInvalidMacAddress = RuuviLocalization.tr("Localizable", "UserApiError.ER_INVALID_MAC_ADDRESS", fallback: "Invalid MAC-address") - /// Invalid sort mode - public static let erInvalidSortMode = RuuviLocalization.tr("Localizable", "UserApiError.ER_INVALID_SORT_MODE", fallback: "Invalid sort mode") - /// Invalid time range - public static let erInvalidTimeRange = RuuviLocalization.tr("Localizable", "UserApiError.ER_INVALID_TIME_RANGE", fallback: "Invalid time range") - /// Missing argument - public static let erMissingArgument = RuuviLocalization.tr("Localizable", "UserApiError.ER_MISSING_ARGUMENT", fallback: "Missing argument") - /// In order to share a sensor, it must have data - public static let erNoDataToShare = RuuviLocalization.tr("Localizable", "UserApiError.ER_NO_DATA_TO_SHARE", fallback: "In order to share a sensor, it must have data") - /// Newer data already exists, cannot update - public static let erOldEntry = RuuviLocalization.tr("Localizable", "UserApiError.ER_OLD_ENTRY", fallback: "Newer data already exists, cannot update") - /// Sensor already claimed by %@ - public static func erSensorAlreadyClaimed(_ p1: Any) -> String { - RuuviLocalization.tr("Localizable", "UserApiError.ER_SENSOR_ALREADY_CLAIMED", String(describing: p1), fallback: "Sensor already claimed by %@") - } - - /// Sensor already claimed - public static let erSensorAlreadyClaimedNoEmail = RuuviLocalization.tr("Localizable", "UserApiError.ER_SENSOR_ALREADY_CLAIMED_NO_EMAIL", fallback: "Sensor already claimed") - /// The sensor has already been registered - public static let erSensorAlreadyRegistered = RuuviLocalization.tr("Localizable", "UserApiError.ER_SENSOR_ALREADY_REGISTERED", fallback: "The sensor has already been registered") - /// This sensor is already shared - public static let erSensorAlreadyShared = RuuviLocalization.tr("Localizable", "UserApiError.ER_SENSOR_ALREADY_SHARED", fallback: "This sensor is already shared") - /// Sensor not found - public static let erSensorNotFound = RuuviLocalization.tr("Localizable", "UserApiError.ER_SENSOR_NOT_FOUND", fallback: "Sensor not found") - /// Maximum share count for the sensor reached - public static let erSensorShareCountReached = RuuviLocalization.tr("Localizable", "UserApiError.ER_SENSOR_SHARE_COUNT_REACHED", fallback: "Maximum share count for the sensor reached") - /// The share limit is reached - public static let erShareCountReached = RuuviLocalization.tr("Localizable", "UserApiError.ER_SHARE_COUNT_REACHED", fallback: "The share limit is reached") - /// Data storage error - public static let erSubDataStorageError = RuuviLocalization.tr("Localizable", "UserApiError.ER_SUB_DATA_STORAGE_ERROR", fallback: "Data storage error") - /// No user - public static let erSubNoUser = RuuviLocalization.tr("Localizable", "UserApiError.ER_SUB_NO_USER", fallback: "No user") - /// Tried to add duplicate subscription to a code - public static let erSubscriptionCodeExists = RuuviLocalization.tr("Localizable", "UserApiError.ER_SUBSCRIPTION_CODE_EXISTS", fallback: "Tried to add duplicate subscription to a code") - /// Tried to claim already used code - public static let erSubscriptionCodeUsed = RuuviLocalization.tr("Localizable", "UserApiError.ER_SUBSCRIPTION_CODE_USED", fallback: "Tried to claim already used code") - /// Subscription is not found - public static let erSubscriptionNotFound = RuuviLocalization.tr("Localizable", "UserApiError.ER_SUBSCRIPTION_NOT_FOUND", fallback: "Subscription is not found") - /// Too many requests - public static let erThrottled = RuuviLocalization.tr("Localizable", "UserApiError.ER_THROTTLED", fallback: "Too many requests") - /// Token is expired - public static let erTokenExpired = RuuviLocalization.tr("Localizable", "UserApiError.ER_TOKEN_EXPIRED", fallback: "Token is expired") - /// Unable to send email - public static let erUnableToSendEmail = RuuviLocalization.tr("Localizable", "UserApiError.ER_UNABLE_TO_SEND_EMAIL", fallback: "Unable to send email") - /// Unauthorised - public static let erUnauthorized = RuuviLocalization.tr("Localizable", "UserApiError.ER_UNAUTHORIZED", fallback: "Unauthorised") - /// User not found - public static let erUserNotFound = RuuviLocalization.tr("Localizable", "UserApiError.ER_USER_NOT_FOUND", fallback: "User not found") - /// Operation was successful - public static let ok = RuuviLocalization.tr("Localizable", "UserApiError.OK", fallback: "Operation was successful") + /// Maximum claim count for the user reached + public static let erClaimCountReached = RuuviLocalization.tr("Localizable", "UserApiError.ER_CLAIM_COUNT_REACHED", fallback: "Maximum claim count for the user reached") + /// Data already exists, cannot update + public static let erConflict = RuuviLocalization.tr("Localizable", "UserApiError.ER_CONFLICT", fallback: "Data already exists, cannot update") + /// Forbidden + public static let erForbidden = RuuviLocalization.tr("Localizable", "UserApiError.ER_FORBIDDEN", fallback: "Forbidden") + /// Gateway already whitelisted + public static let erGatewayAlreadyWhitelisted = RuuviLocalization.tr("Localizable", "UserApiError.ER_GATEWAY_ALREADY_WHITELISTED", fallback: "Gateway already whitelisted") + /// Gateway not found + public static let erGatewayNotFound = RuuviLocalization.tr("Localizable", "UserApiError.ER_GATEWAY_NOT_FOUND", fallback: "Gateway not found") + /// Gateway status report failed + public static let erGatewayStatusReportFailed = RuuviLocalization.tr("Localizable", "UserApiError.ER_GATEWAY_STATUS_REPORT_FAILED", fallback: "Gateway status report failed") + /// Internal error + public static let erInternal = RuuviLocalization.tr("Localizable", "UserApiError.ER_INTERNAL", fallback: "Internal error") + /// Invalid density mode + public static let erInvalidDensityMode = RuuviLocalization.tr("Localizable", "UserApiError.ER_INVALID_DENSITY_MODE", fallback: "Invalid density mode") + /// Invalid email address + public static let erInvalidEmailAddress = RuuviLocalization.tr("Localizable", "UserApiError.ER_INVALID_EMAIL_ADDRESS", fallback: "Invalid email address") + /// Invalid ENUM value given + public static let erInvalidEnumValue = RuuviLocalization.tr("Localizable", "UserApiError.ER_INVALID_ENUM_VALUE", fallback: "Invalid ENUM value given") + /// Invalid request format + public static let erInvalidFormat = RuuviLocalization.tr("Localizable", "UserApiError.ER_INVALID_FORMAT", fallback: "Invalid request format") + /// Invalid MAC-address + public static let erInvalidMacAddress = RuuviLocalization.tr("Localizable", "UserApiError.ER_INVALID_MAC_ADDRESS", fallback: "Invalid MAC-address") + /// Invalid sort mode + public static let erInvalidSortMode = RuuviLocalization.tr("Localizable", "UserApiError.ER_INVALID_SORT_MODE", fallback: "Invalid sort mode") + /// Invalid time range + public static let erInvalidTimeRange = RuuviLocalization.tr("Localizable", "UserApiError.ER_INVALID_TIME_RANGE", fallback: "Invalid time range") + /// Missing argument + public static let erMissingArgument = RuuviLocalization.tr("Localizable", "UserApiError.ER_MISSING_ARGUMENT", fallback: "Missing argument") + /// In order to share a sensor, it must have data + public static let erNoDataToShare = RuuviLocalization.tr("Localizable", "UserApiError.ER_NO_DATA_TO_SHARE", fallback: "In order to share a sensor, it must have data") + /// Newer data already exists, cannot update + public static let erOldEntry = RuuviLocalization.tr("Localizable", "UserApiError.ER_OLD_ENTRY", fallback: "Newer data already exists, cannot update") + /// Sensor already claimed by %@ + public static func erSensorAlreadyClaimed(_ p1: Any) -> String { + RuuviLocalization.tr("Localizable", "UserApiError.ER_SENSOR_ALREADY_CLAIMED", String(describing: p1), fallback: "Sensor already claimed by %@") + } + /// Sensor already claimed + public static let erSensorAlreadyClaimedNoEmail = RuuviLocalization.tr("Localizable", "UserApiError.ER_SENSOR_ALREADY_CLAIMED_NO_EMAIL", fallback: "Sensor already claimed") + /// The sensor has already been registered + public static let erSensorAlreadyRegistered = RuuviLocalization.tr("Localizable", "UserApiError.ER_SENSOR_ALREADY_REGISTERED", fallback: "The sensor has already been registered") + /// This sensor is already shared + public static let erSensorAlreadyShared = RuuviLocalization.tr("Localizable", "UserApiError.ER_SENSOR_ALREADY_SHARED", fallback: "This sensor is already shared") + /// Sensor not found + public static let erSensorNotFound = RuuviLocalization.tr("Localizable", "UserApiError.ER_SENSOR_NOT_FOUND", fallback: "Sensor not found") + /// Maximum share count for the sensor reached + public static let erSensorShareCountReached = RuuviLocalization.tr("Localizable", "UserApiError.ER_SENSOR_SHARE_COUNT_REACHED", fallback: "Maximum share count for the sensor reached") + /// The share limit is reached + public static let erShareCountReached = RuuviLocalization.tr("Localizable", "UserApiError.ER_SHARE_COUNT_REACHED", fallback: "The share limit is reached") + /// Data storage error + public static let erSubDataStorageError = RuuviLocalization.tr("Localizable", "UserApiError.ER_SUB_DATA_STORAGE_ERROR", fallback: "Data storage error") + /// No user + public static let erSubNoUser = RuuviLocalization.tr("Localizable", "UserApiError.ER_SUB_NO_USER", fallback: "No user") + /// Tried to add duplicate subscription to a code + public static let erSubscriptionCodeExists = RuuviLocalization.tr("Localizable", "UserApiError.ER_SUBSCRIPTION_CODE_EXISTS", fallback: "Tried to add duplicate subscription to a code") + /// Tried to claim already used code + public static let erSubscriptionCodeUsed = RuuviLocalization.tr("Localizable", "UserApiError.ER_SUBSCRIPTION_CODE_USED", fallback: "Tried to claim already used code") + /// Subscription is not found + public static let erSubscriptionNotFound = RuuviLocalization.tr("Localizable", "UserApiError.ER_SUBSCRIPTION_NOT_FOUND", fallback: "Subscription is not found") + /// Too many requests + public static let erThrottled = RuuviLocalization.tr("Localizable", "UserApiError.ER_THROTTLED", fallback: "Too many requests") + /// Token is expired + public static let erTokenExpired = RuuviLocalization.tr("Localizable", "UserApiError.ER_TOKEN_EXPIRED", fallback: "Token is expired") + /// Unable to send email + public static let erUnableToSendEmail = RuuviLocalization.tr("Localizable", "UserApiError.ER_UNABLE_TO_SEND_EMAIL", fallback: "Unable to send email") + /// Unauthorised + public static let erUnauthorized = RuuviLocalization.tr("Localizable", "UserApiError.ER_UNAUTHORIZED", fallback: "Unauthorised") + /// User not found + public static let erUserNotFound = RuuviLocalization.tr("Localizable", "UserApiError.ER_USER_NOT_FOUND", fallback: "User not found") + /// Operation was successful + public static let ok = RuuviLocalization.tr("Localizable", "UserApiError.OK", fallback: "Operation was successful") } - public enum WebTagLocationSource { - /// Your location - public static let current = RuuviLocalization.tr("Localizable", "WebTagLocationSource.current", fallback: "Your location") - /// Pick from the map - public static let manual = RuuviLocalization.tr("Localizable", "WebTagLocationSource.manual", fallback: "Pick from the map") + /// Your location + public static let current = RuuviLocalization.tr("Localizable", "WebTagLocationSource.current", fallback: "Your location") + /// Pick from the map + public static let manual = RuuviLocalization.tr("Localizable", "WebTagLocationSource.manual", fallback: "Pick from the map") } - public enum WebTagSettings { - public enum AirHumidityAlert { - /// Air Humidity - public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.AirHumidityAlert.title", fallback: "Air Humidity") + public enum AirHumidityAlert { + /// Air Humidity + public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.AirHumidityAlert.title", fallback: "Air Humidity") + } + public enum Alerts { + /// Off + public static let off = RuuviLocalization.tr("Localizable", "WebTagSettings.Alerts.Off", fallback: "Off") + public enum DewPoint { + /// Alert when less than %.0f or more than %.0f + public static func description(_ p1: Float, _ p2: Float) -> String { + RuuviLocalization.tr("Localizable", "WebTagSettings.Alerts.DewPoint.description", p1, p2, fallback: "Alert when less than %.0f or more than %.0f") + } } - - public enum Alerts { - /// Off - public static let off = RuuviLocalization.tr("Localizable", "WebTagSettings.Alerts.Off", fallback: "Off") - public enum DewPoint { - /// Alert when less than %.0f or more than %.0f - public static func description(_ p1: Float, _ p2: Float) -> String { - RuuviLocalization.tr("Localizable", "WebTagSettings.Alerts.DewPoint.description", p1, p2, fallback: "Alert when less than %.0f or more than %.0f") - } - } - - public enum Humidity { - /// Alert when less than %.0f or more than %.0f - public static func description(_ p1: Float, _ p2: Float) -> String { - RuuviLocalization.tr("Localizable", "WebTagSettings.Alerts.Humidity.description", p1, p2, fallback: "Alert when less than %.0f or more than %.0f") - } - } - - public enum Pressure { - /// Alert when less than %.0f or more than %.0f - public static func description(_ p1: Float, _ p2: Float) -> String { - RuuviLocalization.tr("Localizable", "WebTagSettings.Alerts.Pressure.description", p1, p2, fallback: "Alert when less than %.0f or more than %.0f") - } - } - - public enum Temperature { - /// Alert when less than %.0f or more than %.0f - public static func description(_ p1: Float, _ p2: Float) -> String { - RuuviLocalization.tr("Localizable", "WebTagSettings.Alerts.Temperature.description", p1, p2, fallback: "Alert when less than %.0f or more than %.0f") - } - } + public enum Humidity { + /// Alert when less than %.0f or more than %.0f + public static func description(_ p1: Float, _ p2: Float) -> String { + RuuviLocalization.tr("Localizable", "WebTagSettings.Alerts.Humidity.description", p1, p2, fallback: "Alert when less than %.0f or more than %.0f") + } } - - public enum AlertsAreDisabled { - public enum Dialog { - public enum BothNoPNPermissionAndNoLocationPermission { - /// In order to enable virtual sensor alerts please always grant location and notification permissions in Settings. - public static let message = RuuviLocalization.tr("Localizable", "WebTagSettings.AlertsAreDisabled.Dialog.BothNoPNPermissionAndNoLocationPermission.message", fallback: "In order to enable virtual sensor alerts please always grant location and notification permissions in Settings.") - } - - public enum Settings { - /// Settings - public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.AlertsAreDisabled.Dialog.Settings.title", fallback: "Settings") - } - } + public enum Pressure { + /// Alert when less than %.0f or more than %.0f + public static func description(_ p1: Float, _ p2: Float) -> String { + RuuviLocalization.tr("Localizable", "WebTagSettings.Alerts.Pressure.description", p1, p2, fallback: "Alert when less than %.0f or more than %.0f") + } } - - public enum Button { - public enum Remove { - /// REMOVE THIS VIRTUAL SENSOR - public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.Button.Remove.title", fallback: "REMOVE THIS VIRTUAL SENSOR") - } + public enum Temperature { + /// Alert when less than %.0f or more than %.0f + public static func description(_ p1: Float, _ p2: Float) -> String { + RuuviLocalization.tr("Localizable", "WebTagSettings.Alerts.Temperature.description", p1, p2, fallback: "Alert when less than %.0f or more than %.0f") + } } - - public enum Label { - public enum BackgroundImage { - /// BACKGROUND - /// IMAGE - public static let text = RuuviLocalization.tr("Localizable", "WebTagSettings.Label.BackgroundImage.text", fallback: "BACKGROUND\nIMAGE") - } - - public enum Location { - /// Location - public static let text = RuuviLocalization.tr("Localizable", "WebTagSettings.Label.Location.text", fallback: "Location") - } - - public enum TagName { - /// Sensor Name - public static let text = RuuviLocalization.tr("Localizable", "WebTagSettings.Label.TagName.text", fallback: "Sensor Name") - } - - public enum Alerts { - /// ALERTS - public static let text = RuuviLocalization.tr("Localizable", "WebTagSettings.Label.alerts.text", fallback: "ALERTS") - } - - public enum Disabled { - /// DISABLED? - public static let text = RuuviLocalization.tr("Localizable", "WebTagSettings.Label.disabled.text", fallback: "DISABLED?") - } + } + public enum AlertsAreDisabled { + public enum Dialog { + public enum BothNoPNPermissionAndNoLocationPermission { + /// In order to enable virtual sensor alerts please always grant location and notification permissions in Settings. + public static let message = RuuviLocalization.tr("Localizable", "WebTagSettings.AlertsAreDisabled.Dialog.BothNoPNPermissionAndNoLocationPermission.message", fallback: "In order to enable virtual sensor alerts please always grant location and notification permissions in Settings.") + } + public enum Settings { + /// Settings + public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.AlertsAreDisabled.Dialog.Settings.title", fallback: "Settings") + } + } + } + public enum Button { + public enum Remove { + /// REMOVE THIS VIRTUAL SENSOR + public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.Button.Remove.title", fallback: "REMOVE THIS VIRTUAL SENSOR") + } + } + public enum Label { + public enum BackgroundImage { + /// BACKGROUND + /// IMAGE + public static let text = RuuviLocalization.tr("Localizable", "WebTagSettings.Label.BackgroundImage.text", fallback: "BACKGROUND\nIMAGE") } - public enum Location { - /// Your location - public static let current = RuuviLocalization.tr("Localizable", "WebTagSettings.Location.Current", fallback: "Your location") - } - - public enum PressureAlert { - /// Air Pressure - public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.PressureAlert.title", fallback: "Air Pressure") - } - - public enum SectionHeader { - public enum MoreInfo { - /// MORE INFO - public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.SectionHeader.MoreInfo.title", fallback: "MORE INFO") - } - - public enum Name { - /// NAME - public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.SectionHeader.Name.title", fallback: "NAME") - } - } - - public enum ConfirmClearLocationDialog { - /// Are you sure you want to clear location for this virtual sensor? Current location will be used instead. - public static let message = RuuviLocalization.tr("Localizable", "WebTagSettings.confirmClearLocationDialog.message", fallback: "Are you sure you want to clear location for this virtual sensor? Current location will be used instead.") - /// Clear Location - public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.confirmClearLocationDialog.title", fallback: "Clear Location") - } - - public enum ConfirmTagRemovalDialog { - /// Are you sure you want to remove this virtual sensor? - public static let message = RuuviLocalization.tr("Localizable", "WebTagSettings.confirmTagRemovalDialog.message", fallback: "Are you sure you want to remove this virtual sensor?") - /// Remove virtual sensor - public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.confirmTagRemovalDialog.title", fallback: "Remove virtual sensor") + /// Location + public static let text = RuuviLocalization.tr("Localizable", "WebTagSettings.Label.Location.text", fallback: "Location") } - - public enum DewPointAlertTitleLabel { - /// Dew Point - public static let text = RuuviLocalization.tr("Localizable", "WebTagSettings.dewPointAlertTitleLabel.text", fallback: "Dew Point") + public enum TagName { + /// Sensor Name + public static let text = RuuviLocalization.tr("Localizable", "WebTagSettings.Label.TagName.text", fallback: "Sensor Name") } - - public enum NavigationItem { - /// Virtual Sensor Settings - public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.navigationItem.title", fallback: "Virtual Sensor Settings") + public enum Alerts { + /// ALERTS + public static let text = RuuviLocalization.tr("Localizable", "WebTagSettings.Label.alerts.text", fallback: "ALERTS") } - - public enum TemperatureAlertTitleLabel { - /// Temperature - public static let text = RuuviLocalization.tr("Localizable", "WebTagSettings.temperatureAlertTitleLabel.text", fallback: "Temperature") + public enum Disabled { + /// DISABLED? + public static let text = RuuviLocalization.tr("Localizable", "WebTagSettings.Label.disabled.text", fallback: "DISABLED?") } + } + public enum Location { + /// Your location + public static let current = RuuviLocalization.tr("Localizable", "WebTagSettings.Location.Current", fallback: "Your location") + } + public enum PressureAlert { + /// Air Pressure + public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.PressureAlert.title", fallback: "Air Pressure") + } + public enum SectionHeader { + public enum MoreInfo { + /// MORE INFO + public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.SectionHeader.MoreInfo.title", fallback: "MORE INFO") + } + public enum Name { + /// NAME + public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.SectionHeader.Name.title", fallback: "NAME") + } + } + public enum ConfirmClearLocationDialog { + /// Are you sure you want to clear location for this virtual sensor? Current location will be used instead. + public static let message = RuuviLocalization.tr("Localizable", "WebTagSettings.confirmClearLocationDialog.message", fallback: "Are you sure you want to clear location for this virtual sensor? Current location will be used instead.") + /// Clear Location + public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.confirmClearLocationDialog.title", fallback: "Clear Location") + } + public enum ConfirmTagRemovalDialog { + /// Are you sure you want to remove this virtual sensor? + public static let message = RuuviLocalization.tr("Localizable", "WebTagSettings.confirmTagRemovalDialog.message", fallback: "Are you sure you want to remove this virtual sensor?") + /// Remove virtual sensor + public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.confirmTagRemovalDialog.title", fallback: "Remove virtual sensor") + } + public enum DewPointAlertTitleLabel { + /// Dew Point + public static let text = RuuviLocalization.tr("Localizable", "WebTagSettings.dewPointAlertTitleLabel.text", fallback: "Dew Point") + } + public enum NavigationItem { + /// Virtual Sensor Settings + public static let title = RuuviLocalization.tr("Localizable", "WebTagSettings.navigationItem.title", fallback: "Virtual Sensor Settings") + } + public enum TemperatureAlertTitleLabel { + /// Temperature + public static let text = RuuviLocalization.tr("Localizable", "WebTagSettings.temperatureAlertTitleLabel.text", fallback: "Temperature") + } } - public enum Welcome { - public enum Description { - /// To find nearby sensors and receive live sensor data, press 'scan'. - public static let text = RuuviLocalization.tr("Localizable", "Welcome.description.text", fallback: "To find nearby sensors and receive live sensor data, press 'scan'.") - } - - public enum Scan { - /// SCAN - public static let title = RuuviLocalization.tr("Localizable", "Welcome.scan.title", fallback: "SCAN") - } + public enum Description { + /// To find nearby sensors and receive live sensor data, press 'scan'. + public static let text = RuuviLocalization.tr("Localizable", "Welcome.description.text", fallback: "To find nearby sensors and receive live sensor data, press 'scan'.") + } + public enum Scan { + /// SCAN + public static let title = RuuviLocalization.tr("Localizable", "Welcome.scan.title", fallback: "SCAN") + } } - public enum Widgets { - public enum Description { - /// Create widgets of your favourite Ruuvi sensors. Widgets update from the Ruuvi Cloud. A Ruuvi Gateway router is required. - public static let message = RuuviLocalization.tr("Localizable", "Widgets.Description.message", fallback: "Create widgets of your favourite Ruuvi sensors. Widgets update from the Ruuvi Cloud. A Ruuvi Gateway router is required.") + public enum Description { + /// Create widgets of your favourite Ruuvi sensors. Widgets update from the Ruuvi Cloud. A Ruuvi Gateway router is required. + public static let message = RuuviLocalization.tr("Localizable", "Widgets.Description.message", fallback: "Create widgets of your favourite Ruuvi sensors. Widgets update from the Ruuvi Cloud. A Ruuvi Gateway router is required.") + } + public enum Loading { + /// loading... + public static let message = RuuviLocalization.tr("Localizable", "Widgets.Loading.message", fallback: "loading...") + } + public enum Select { + public enum Sensor { + /// Selected Ruuvi sensor + public static let title = RuuviLocalization.tr("Localizable", "Widgets.Select.Sensor.title", fallback: "Selected Ruuvi sensor") } - - public enum Loading { - /// loading... - public static let message = RuuviLocalization.tr("Localizable", "Widgets.Loading.message", fallback: "loading...") + } + public enum Sensor { + public enum `Type` { + /// Selected sensor type + public static let title = RuuviLocalization.tr("Localizable", "Widgets.Sensor.Type.title", fallback: "Selected sensor type") } - - public enum Select { - public enum Sensor { - /// Selected Ruuvi sensor - public static let title = RuuviLocalization.tr("Localizable", "Widgets.Select.Sensor.title", fallback: "Selected Ruuvi sensor") - } + } + public enum Unauthorized { + public enum Inline { + /// Sign in to Ruuvi Station + public static let message = RuuviLocalization.tr("Localizable", "Widgets.Unauthorized.Inline.message", fallback: "Sign in to Ruuvi Station") } - - public enum Sensor { - public enum `Type` { - /// Selected sensor type - public static let title = RuuviLocalization.tr("Localizable", "Widgets.Sensor.Type.title", fallback: "Selected sensor type") - } + public enum Regular { + /// Sign in to use the widget. + public static let message = RuuviLocalization.tr("Localizable", "Widgets.Unauthorized.Regular.message", fallback: "Sign in to use the widget.") } - - public enum Unauthorized { - public enum Inline { - /// Sign in to Ruuvi Station - public static let message = RuuviLocalization.tr("Localizable", "Widgets.Unauthorized.Inline.message", fallback: "Sign in to Ruuvi Station") - } - - public enum Regular { - /// Sign in to use the widget. - public static let message = RuuviLocalization.tr("Localizable", "Widgets.Unauthorized.Regular.message", fallback: "Sign in to use the widget.") - } + } + public enum Unconfigured { + public enum Circular { + /// +Add + public static let message = RuuviLocalization.tr("Localizable", "Widgets.Unconfigured.Circular.message", fallback: "+Add") } - - public enum Unconfigured { - public enum Circular { - /// +Add - public static let message = RuuviLocalization.tr("Localizable", "Widgets.Unconfigured.Circular.message", fallback: "+Add") - } - - public enum Inline { - /// Add sensor to use Ruuvi Widget - public static let message = RuuviLocalization.tr("Localizable", "Widgets.Unconfigured.Inline.message", fallback: "Add sensor to use Ruuvi Widget") - } - - public enum Rectangular { - /// Add sensor to use Ruuvi Widget - public static let message = RuuviLocalization.tr("Localizable", "Widgets.Unconfigured.Rectangular.message", fallback: "Add sensor to use Ruuvi Widget") - } - - public enum Simple { - /// Force tap to edit the widget. - public static let message = RuuviLocalization.tr("Localizable", "Widgets.Unconfigured.Simple.message", fallback: "Force tap to edit the widget.") - } + public enum Inline { + /// Add sensor to use Ruuvi Widget + public static let message = RuuviLocalization.tr("Localizable", "Widgets.Unconfigured.Inline.message", fallback: "Add sensor to use Ruuvi Widget") } + public enum Rectangular { + /// Add sensor to use Ruuvi Widget + public static let message = RuuviLocalization.tr("Localizable", "Widgets.Unconfigured.Rectangular.message", fallback: "Add sensor to use Ruuvi Widget") + } + public enum Simple { + /// Force tap to edit the widget. + public static let message = RuuviLocalization.tr("Localizable", "Widgets.Unconfigured.Simple.message", fallback: "Force tap to edit the widget.") + } + } } } - // swiftlint:enable explicit_type_interface function_parameter_count identifier_name line_length // swiftlint:enable nesting type_body_length type_name vertical_whitespace_opening_braces @@ -3030,12 +2649,11 @@ extension RuuviLocalization { private final class BundleToken { static let bundle: Bundle = { #if SWIFT_PACKAGE - return Bundle.module + return Bundle.module #else - return Bundle(for: BundleToken.self) + return Bundle(for: BundleToken.self) #endif }() } - // swiftlint:enable convenience_type // swiftlint:enable all diff --git a/Common/RuuviLocalization/target.yml b/Common/RuuviLocalization/target.yml index 4ca8e70b3..0dab3ce6f 100644 --- a/Common/RuuviLocalization/target.yml +++ b/Common/RuuviLocalization/target.yml @@ -3,3 +3,6 @@ targets: RuuviLocalization: templates: - CommonFramework + sources: + - path: Sources + name: Localization diff --git a/Common/RuuviPresenters/target.yml b/Common/RuuviPresenters/target.yml index c4afef536..ab973ecd8 100644 --- a/Common/RuuviPresenters/target.yml +++ b/Common/RuuviPresenters/target.yml @@ -3,3 +3,6 @@ targets: RuuviPresenters: templates: - CommonFramework + sources: + - path: Sources + name: Presenters diff --git a/Modules/RuuviDiscover/target.yml b/Modules/RuuviDiscover/target.yml index 70b917c73..8d63f051f 100644 --- a/Modules/RuuviDiscover/target.yml +++ b/Modules/RuuviDiscover/target.yml @@ -3,6 +3,9 @@ targets: RuuviDiscover: templates: - Module + sources: + - path: Sources + name: Discover dependencies: - package: BTKit - package: Future diff --git a/Modules/RuuviFirmware/target.yml b/Modules/RuuviFirmware/target.yml index 5ef05adf0..58c77d97e 100644 --- a/Modules/RuuviFirmware/target.yml +++ b/Modules/RuuviFirmware/target.yml @@ -1,6 +1,9 @@ --- targets: RuuviFirmware: + sources: + - path: Sources + name: Firmware settings: base: MERGEABLE_LIBRARY: false diff --git a/Modules/RuuviOnboard/target.yml b/Modules/RuuviOnboard/target.yml index c5f993e98..498b7e522 100644 --- a/Modules/RuuviOnboard/target.yml +++ b/Modules/RuuviOnboard/target.yml @@ -1,6 +1,9 @@ --- targets: RuuviOnboard: + sources: + - path: Sources + name: Onboard templates: - Module dependencies: diff --git a/Packages/RuuviAnalytics/target.yml b/Packages/RuuviAnalytics/target.yml index 43153def0..c10b1294f 100644 --- a/Packages/RuuviAnalytics/target.yml +++ b/Packages/RuuviAnalytics/target.yml @@ -4,6 +4,9 @@ targets: name: RuuviAnalytics templates: - Framework + sources: + - path: Sources + name: Analytics dependencies: - package: Humidity - package: Future diff --git a/Packages/RuuviCloud/target.yml b/Packages/RuuviCloud/target.yml index 6222401c9..0e5614b89 100644 --- a/Packages/RuuviCloud/target.yml +++ b/Packages/RuuviCloud/target.yml @@ -3,6 +3,9 @@ targets: RuuviCloud: templates: - Framework + sources: + - path: Sources + name: Cloud dependencies: - package: Humidity - package: BTKit diff --git a/Packages/RuuviContext/target.yml b/Packages/RuuviContext/target.yml index ecb1f1d4a..aa7d0c8fa 100644 --- a/Packages/RuuviContext/target.yml +++ b/Packages/RuuviContext/target.yml @@ -7,6 +7,9 @@ targets: MERGEABLE_LIBRARY: false templates: - Framework + sources: + - path: Sources + name: Context dependencies: - package: Realm - package: Realm diff --git a/Packages/RuuviCore/target.yml b/Packages/RuuviCore/target.yml index d8c385aea..cb24ba24e 100644 --- a/Packages/RuuviCore/target.yml +++ b/Packages/RuuviCore/target.yml @@ -3,5 +3,8 @@ targets: RuuviCore: templates: - Framework + sources: + - path: Sources + name: Core dependencies: - package: Future diff --git a/Packages/RuuviDFU/target.yml b/Packages/RuuviDFU/target.yml index 6398a54b6..20cd7d52d 100644 --- a/Packages/RuuviDFU/target.yml +++ b/Packages/RuuviDFU/target.yml @@ -3,5 +3,8 @@ targets: RuuviDFU: templates: - Framework + sources: + - path: Sources + name: DFU dependencies: - package: NordicDFU diff --git a/Packages/RuuviDaemon/target.yml b/Packages/RuuviDaemon/target.yml index 57e3fcd05..2a7ade556 100644 --- a/Packages/RuuviDaemon/target.yml +++ b/Packages/RuuviDaemon/target.yml @@ -3,6 +3,9 @@ targets: RuuviDaemon: templates: - Framework + sources: + - path: Sources + name: Daemon dependencies: - package: BTKit - package: Future diff --git a/Packages/RuuviLocal/target.yml b/Packages/RuuviLocal/target.yml index e6b4115be..dec929954 100644 --- a/Packages/RuuviLocal/target.yml +++ b/Packages/RuuviLocal/target.yml @@ -3,6 +3,9 @@ targets: RuuviLocal: templates: - Framework + sources: + - path: Sources + name: Local dependencies: - package: Future - target: RuuviOntology diff --git a/Packages/RuuviMigration/target.yml b/Packages/RuuviMigration/target.yml index 232783118..b41702b76 100644 --- a/Packages/RuuviMigration/target.yml +++ b/Packages/RuuviMigration/target.yml @@ -3,6 +3,9 @@ targets: RuuviMigration: templates: - Framework + sources: + - path: Sources + name: Migration dependencies: - package: Humidity - package: Future diff --git a/Packages/RuuviNotification/target.yml b/Packages/RuuviNotification/target.yml index c16aefe28..f8530b012 100644 --- a/Packages/RuuviNotification/target.yml +++ b/Packages/RuuviNotification/target.yml @@ -3,6 +3,9 @@ targets: RuuviNotification: templates: - Framework + sources: + - path: Sources + name: Notification dependencies: - package: Future - package: Humidity diff --git a/Packages/RuuviNotifier/target.yml b/Packages/RuuviNotifier/target.yml index be981bd4d..5035c111a 100644 --- a/Packages/RuuviNotifier/target.yml +++ b/Packages/RuuviNotifier/target.yml @@ -3,6 +3,9 @@ targets: RuuviNotifier: templates: - Framework + sources: + - path: Sources + name: Notifier dependencies: - package: Humidity - target: RuuviOntology diff --git a/Packages/RuuviOntology/target.yml b/Packages/RuuviOntology/target.yml index c080d36b3..52fc3e669 100644 --- a/Packages/RuuviOntology/target.yml +++ b/Packages/RuuviOntology/target.yml @@ -7,6 +7,9 @@ targets: MERGEABLE_LIBRARY: false templates: - Framework + sources: + - path: Sources + name: Ontology dependencies: - package: Humidity - package: BTKit diff --git a/Packages/RuuviPersistence/target.yml b/Packages/RuuviPersistence/target.yml index 19cff3adc..12a583477 100644 --- a/Packages/RuuviPersistence/target.yml +++ b/Packages/RuuviPersistence/target.yml @@ -7,6 +7,9 @@ targets: MERGEABLE_LIBRARY: false templates: - Framework + sources: + - path: Sources + name: Persistence dependencies: - package: Humidity - package: Future diff --git a/Packages/RuuviPool/target.yml b/Packages/RuuviPool/target.yml index 7c4cac248..e1275fbff 100644 --- a/Packages/RuuviPool/target.yml +++ b/Packages/RuuviPool/target.yml @@ -3,6 +3,9 @@ targets: RuuviPool: templates: - Framework + sources: + - path: Sources + name: Pool dependencies: - package: Future - target: RuuviOntology diff --git a/Packages/RuuviReactor/target.yml b/Packages/RuuviReactor/target.yml index a30ebde46..409ac880d 100644 --- a/Packages/RuuviReactor/target.yml +++ b/Packages/RuuviReactor/target.yml @@ -7,6 +7,9 @@ targets: MERGEABLE_LIBRARY: false templates: - Framework + sources: + - path: Sources + name: Reactor dependencies: - package: Humidity - package: Future diff --git a/Packages/RuuviRepository/target.yml b/Packages/RuuviRepository/target.yml index 748bef85e..009aa9741 100644 --- a/Packages/RuuviRepository/target.yml +++ b/Packages/RuuviRepository/target.yml @@ -3,6 +3,9 @@ targets: RuuviRepository: templates: - Framework + sources: + - path: Sources + name: Repository dependencies: - package: Future - target: RuuviOntology diff --git a/Packages/RuuviService/target.yml b/Packages/RuuviService/target.yml index 115a14c07..afd71611d 100644 --- a/Packages/RuuviService/target.yml +++ b/Packages/RuuviService/target.yml @@ -3,6 +3,9 @@ targets: RuuviService: templates: - Framework + sources: + - path: Sources + name: Service dependencies: - package: Future - package: Humidity diff --git a/Packages/RuuviStorage/target.yml b/Packages/RuuviStorage/target.yml index c071f6683..e39b450bb 100644 --- a/Packages/RuuviStorage/target.yml +++ b/Packages/RuuviStorage/target.yml @@ -3,6 +3,9 @@ targets: RuuviStorage: templates: - Framework + sources: + - path: Sources + name: Storage dependencies: - package: Future - target: RuuviOntology diff --git a/Packages/RuuviUser/target.yml b/Packages/RuuviUser/target.yml index bec36bf60..bb1df5782 100644 --- a/Packages/RuuviUser/target.yml +++ b/Packages/RuuviUser/target.yml @@ -3,5 +3,8 @@ targets: RuuviUser: templates: - Framework + sources: + - path: Sources + name: User dependencies: - package: KeychainAccess diff --git a/README.md b/README.md index fe51a3401..b29cd7282 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # Ruuvi Station [![Swift Version][swift-image]][swift-url] -[![Build Status](https://travis-ci.org/ruuvi/com.ruuvi.station.ios.svg?branch=master)](https://travis-ci.org/ruuvi/com.ruuvi.station.ios) [![License][license-image]][license-url] [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) @@ -65,10 +64,8 @@ xed Ruuvi.xcodeproj
Optionally - -1. Obtain [OpenWeatherMap](https://openweathermap.org) API Key and put it into ```/station/Classes/Networking/Assembly/Networking.plist``` -2. Setup your [Firebase](https://firebase.google.com) project and replace ```station/Resources/Plists/GoogleService-Info.plist``` +Setup your [Firebase](https://firebase.google.com) project and replace ```station/Resources/Plists/GoogleService-Info.plist```
diff --git a/project.yml b/project.yml index 61c286b08..f40535fbd 100644 --- a/project.yml +++ b/project.yml @@ -1,6 +1,6 @@ BUILD_NUMBER: &BUILD_NUMBER 1 APP_VERSION: &APP_VERSION 2.5.2 -APP_NAME: &APP_NAME Ruuvi +PROJECT_NAME: &PROJECT_NAME Ruuvi DEVELOPMENT_TEAM: &DEVELOPMENT_TEAM 4MUYJ4YYH4 BUNDLE_ID_PREFIX: &BUNDLE_ID_PREFIX com.ruuvi @@ -13,7 +13,7 @@ settings: MARKETING_VERSION: *APP_VERSION DEVELOPMENT_TEAM: *DEVELOPMENT_TEAM -name: *APP_NAME +name: *PROJECT_NAME options: bundleIdPrefix: *BUNDLE_ID_PREFIX @@ -30,20 +30,6 @@ targetTemplates: path: Packages/${target_name}/Info.plist properties: CFBundleShortVersionString: "$(MARKETING_VERSION)" - sources: - - path: Packages/${target_name} - excludes: - - "*.stencil" - - target.yml - - Info.plist - - .swiftpm - - Package.swift - - Package.resolved - - .gitignore - - README.md - - "*.podspec" - - Tests - - Templates settings: base: DEVELOPMENT_TEAM: *DEVELOPMENT_TEAM @@ -66,20 +52,6 @@ targetTemplates: path: Modules/${target_name}/Info.plist properties: CFBundleShortVersionString: "$(MARKETING_VERSION)" - sources: - - path: Modules/${target_name} - excludes: - - "*.stencil" - - target.yml - - Info.plist - - .swiftpm - - Package.swift - - Package.resolved - - .gitignore - - README.md - - "*.podspec" - - Tests - - Templates settings: base: DEVELOPMENT_TEAM: *DEVELOPMENT_TEAM @@ -102,20 +74,6 @@ targetTemplates: path: Common/${target_name}/Info.plist properties: CFBundleShortVersionString: "$(MARKETING_VERSION)" - sources: - - path: Common/${target_name} - excludes: - - "*.stencil" - - target.yml - - Info.plist - - .swiftpm - - Package.swift - - Package.resolved - - .gitignore - - README.md - - "*.podspec" - - Tests - - Templates settings: base: DEVELOPMENT_TEAM: *DEVELOPMENT_TEAM @@ -199,143 +157,12 @@ include: - Modules/RuuviDiscover/target.yml - Modules/RuuviOnboard/target.yml - Modules/RuuviFirmware/target.yml -- widget.yml -- pnservice.yml -- intents.yml +- Apps/RuuviStation/target.yml +- Apps/RuuviStation/Widgets/target.yml +- Apps/RuuviStation/NotificationService/target.yml +- Apps/RuuviStation/Intents/target.yml configs: Alpha: debug Debug: debug - Release: release - -targets: - station: - type: application - platform: iOS - sources: - - path: station - - path: ruuvi_widgets.entitlements - - path: station_intents.entitlements - - path: pnservice.entitlements - dependencies: - - target: "station.widgets" - - target: "station.intents" - - target: "station.pnservice" - - package: BTKit - - package: Charts - - package: GRDB - - package: LightRoute - - package: Swinject - - package: RangeSeekSlider - - package: NordicDFU - - package: GestureInstructions - - package: Firebase - product: FirebaseMessaging - - package: Firebase - product: FirebaseRemoteConfig - - package: KeychainAccess - - package: Humidity - - package: Future - - package: Realm - - package: Realm - product: RealmSwift - - package: FLEX - - target: RuuviAnalytics - - target: RuuviCloud - - target: RuuviContext - - target: RuuviCore - - target: RuuviDaemon - - target: RuuviDFU - - target: RuuviLocal - - target: RuuviMigration - - target: RuuviNotification - - target: RuuviNotifier - - target: RuuviOntology - - target: RuuviPersistence - - target: RuuviPool - - target: RuuviReactor - - target: RuuviRepository - - target: RuuviService - - target: RuuviStorage - - target: RuuviUser - - target: RuuviPresenters - - target: RuuviDiscover - - target: RuuviOnboard - - target: RuuviFirmware - - target: RuuviLocalization - info: - path: station/Resources/Plists/Info.plist - properties: - CFBundleDisplayName: Ruuvi Station - CFBundlePackageType: $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString: "$(MARKETING_VERSION)" - CFBundleVersion: $(CURRENT_PROJECT_VERSION) - UISupportedInterfaceOrientations: [UIInterfaceOrientationLandscapeLeft, UIInterfaceOrientationLandscapeRight, UIInterfaceOrientationPortrait] - UILaunchStoryboardName: LaunchScreen - BGTaskSchedulerPermittedIdentifiers: [com.ruuvi.station.BackgroundProcessServiceiOS13.dataPruning] - FirebaseMessagingAutoInitEnabled: false - LSApplicationQueriesSchemes: [https, http, mailto] - LSRequiresIPhoneOS: true - NFCReaderUsageDescription: Allows user to claim a RuuviTag using NFC when the user has physical access to the sensor - NSBluetoothAlwaysUsageDescription: The app uses Bluetooth LE to read data from Ruuvi Sensors - NSBluetoothPeripheralUsageDescription: The app uses Bluetooth LE to read data from RuuviTag sensors. - NSCameraUsageDescription: Ruuvi Station needs to access your camera in order to be able to capture photos and use them as sensor background. - NSLocationAlwaysAndWhenInUseUsageDescription: Ruuvi Station needs to access your location in order to determine your position and show weather parameters for you live location. - NSLocationAlwaysUsageDescription: Ruuvi Station needs to access your location while being in background in order to pull data for Virtual Sensors for your current location and display alerts. - NSLocationUsageDescription: Ruuvi Station needs to access your location in order to determine your position and show weather parameters for you live location. - NSLocationWhenInUseUsageDescription: Ruuvi Station needs to access your location in order to determine your position and show weather parameters for you live location. - NSPhotoLibraryUsageDescription: Ruuvi Station needs to access your camera roll to enable selecting the background for the sensor. - NSUserActivityTypes: [RuuviTagSelectionIntent] - UIAppFonts: [Oswald-Bold.ttf,Oswald-ExtraLight.ttf,Muli-Regular.ttf,Muli-Bold.ttf,Muli-SemiBoldItalic.ttf,Muli-ExtraBold.ttf,Montserrat-Bold.ttf,Montserrat-Regular.ttf,Montserrat-ExtraBold.ttf] - UIBackgroundModes: [bluetooth-central, processing, remote-notification] - UIRequiredDeviceCapabilities: [armv7] - UIRequiresFullScreen: true - UIStatusBarStyle: UIStatusBarStyleLightContent - UISupportedInterfaceOrientations~ipad: [UIInterfaceOrientationLandscapeLeft, UIInterfaceOrientationLandscapeRight,UIInterfaceOrientationPortrait, UIInterfaceOrientationPortraitUpsideDown] - UIViewControllerBasedStatusBarAppearance: true - settings: - base: - MERGED_BINARY_TYPE: "manual" - TARGETED_DEVICE_FAMILY: 1,2 - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD: true - CODE_SIGN_ENTITLEMENTS: station/station.entitlements - configs: - Alpha: - CODE_SIGN_IDENTITY: "iPhone Distribution" - PROVISIONING_PROFILE_SPECIFIER: "match AdHoc com.ruuvi.station" - Debug: - CODE_SIGN_STYLE: Automatic - OTHER_LDFLAGS: -Xlinker -no_warn_duplicate_libraries - Release: - EXCLUDED_SOURCE_FILE_NAMES: "FLEX*" - CODE_SIGN_IDENTITY: "iPhone Distribution" - PROVISIONING_PROFILE_SPECIFIER: "match AdHoc com.ruuvi.station" - preBuildScripts: - - path: scripts/build/generate_l10n.sh - name: Generate L10N - inputFiles: - - $(SRCROOT)/station.localization/station.localization.json - outputFiles: - - $(SRCROOT)/station/Resources/Strings/en.lproj/Localizable.strings - - $(SRCROOT)/station/Resources/Strings/sv.lproj/Localizable.strings - - $(SRCROOT)/station/Resources/Strings/ru.lproj/Localizable.strings - - $(SRCROOT)/station/Resources/Strings/fi.lproj/Localizable.strings - - $(SRCROOT)/station/Resources/Strings/fr.lproj/Localizable.strings - - $(SRCROOT)/station/Resources/Strings/de.lproj/Localizable.strings - postCompileScripts: - - path: scripts/build/lint.sh - name: Lint - basedOnDependencyAnalysis: false - postBuildScripts: - - path: scripts/build/load_keystore.sh - name: Load Keystore - inputFiles: - - $(SRCROOT)/station/Classes/Networking/Assembly/Networking.plist - - $(SRCROOT)/station/Resources/Plists/GoogleService-Info.plist - runOnlyWhenInstalling: true - basedOnDependencyAnalysis: false -schemes: - station: - build: - targets: - station: all \ No newline at end of file + Release: release \ No newline at end of file diff --git a/station/Resources/Plists/DevInfo.plist b/station/Resources/Plists/DevInfo.plist deleted file mode 100644 index 727293828..000000000 --- a/station/Resources/Plists/DevInfo.plist +++ /dev/null @@ -1,97 +0,0 @@ - - - - - BGTaskSchedulerPermittedIdentifiers - - com.ruuvi.station.BackgroundProcessServiceiOS13.dataPruning - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - Ruuvi Station - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - $(MARKETING_VERSION) - CFBundleVersion - 421 - FirebaseMessagingAutoInitEnabled - - LSRequiresIPhoneOS - - NFCReaderUsageDescription - Allows user to claim a RuuviTag using NFC when the user has physical access to the sensor - NSBluetoothAlwaysUsageDescription - The app uses Bluetooth LE to read data from RuuviTag sensors. - NSBluetoothPeripheralUsageDescription - The app uses Bluetooth LE to read data from RuuviTag sensors. - NSCameraUsageDescription - Ruuvi Station needs to access your camera in order to be able to capture photos and use them as tag background. - NSLocationAlwaysAndWhenInUseUsageDescription - Ruuvi Station needs to access your location in order to determine your position and show weather parameters for you live location. - NSLocationAlwaysUsageDescription - Ruuvi Station needs to access your location while being in background in order to pull data for Virtual Sensors for your current location and display alerts. - NSLocationUsageDescription - Ruuvi Station needs to access your location in order to determine your position and show weather parameters for you live location. - NSLocationWhenInUseUsageDescription - Ruuvi Station needs to access your location in order to determine your position and show weather parameters for you live location. - NSPhotoLibraryUsageDescription - Ruuvi Station needs to access your camera roll to enable selecting the background for the tag. - NSUserActivityTypes - - RuuviTagSelectionIntent - - UIAppFonts - - Oswald-Bold.ttf - Oswald-ExtraLight.ttf - Muli-Regular.ttf - Muli-Bold.ttf - Muli-SemiBoldItalic.ttf - Muli-ExtraBold.ttf - Montserrat-Bold.ttf - Montserrat-Regular.ttf - Montserrat-ExtraBold.ttf - - UIBackgroundModes - - bluetooth-central - processing - remote-notification - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UIRequiresFullScreen - - UIStatusBarStyle - UIStatusBarStyleLightContent - UISupportedInterfaceOrientations - - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - UIInterfaceOrientationPortrait - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - - UIViewControllerBasedStatusBarAppearance - - - diff --git a/stationUITests/Info.plist b/stationUITests/Info.plist deleted file mode 100644 index 6c40a6cd0..000000000 --- a/stationUITests/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - - diff --git a/stationUITests/StationUITests.swift b/stationUITests/StationUITests.swift deleted file mode 100644 index 5734f1de0..000000000 --- a/stationUITests/StationUITests.swift +++ /dev/null @@ -1,9 +0,0 @@ -import XCTest - -class StationUITests: XCTestCase { - override func setUp() { - super.setUp() - continueAfterFailure = false - XCUIApplication().launch() - } -}