Ver código fonte

Onboarding scene removed

Ivan Valkou 4 anos atrás
pai
commit
b858ec9bdb
30 arquivos alterados com 3 adições e 458 exclusões
  1. 0 156
      FreeAPS.xcodeproj/project.pbxproj
  2. 0 1
      FreeAPS/Sources/Assemblies/NetworkAssembly.swift
  3. 0 3
      FreeAPS/Sources/Modules/AuthorizedRoot/AuthorizedRootBuilder.swift
  4. 0 7
      FreeAPS/Sources/Modules/AuthorizedRoot/AuthorizedRootDataFlow.swift
  5. 0 3
      FreeAPS/Sources/Modules/AuthorizedRoot/AuthorizedRootProvider.swift
  6. 0 10
      FreeAPS/Sources/Modules/AuthorizedRoot/AuthorizedRootViewModel.swift
  7. 0 13
      FreeAPS/Sources/Modules/AuthorizedRoot/View/AuthotizedRootRootView.swift
  8. 0 1
      FreeAPS/Sources/Modules/Base/BaseProvider.swift
  9. 0 3
      FreeAPS/Sources/Modules/Login/LoginBuilder.swift
  10. 0 11
      FreeAPS/Sources/Modules/Login/LoginDataFlow.swift
  11. 0 19
      FreeAPS/Sources/Modules/Login/LoginProvider.swift
  12. 0 23
      FreeAPS/Sources/Modules/Login/LoginViewModel.swift
  13. 0 24
      FreeAPS/Sources/Modules/Login/View/LoginRootView.swift
  14. 1 20
      FreeAPS/Sources/Modules/Main/MainDataFlow.swift
  15. 0 13
      FreeAPS/Sources/Modules/Main/MainViewModel.swift
  16. 1 1
      FreeAPS/Sources/Modules/Main/View/MainRootView.swift
  17. 0 3
      FreeAPS/Sources/Modules/Onboarding/OnboardingBuilder.swift
  18. 0 19
      FreeAPS/Sources/Modules/Onboarding/OnboardingDataFlow.swift
  19. 0 3
      FreeAPS/Sources/Modules/Onboarding/OnboardingProvider.swift
  20. 0 13
      FreeAPS/Sources/Modules/Onboarding/OnboardingViewModel.swift
  21. 0 11
      FreeAPS/Sources/Modules/Onboarding/View/OnboardingRootView.swift
  22. 0 3
      FreeAPS/Sources/Modules/RequestPermissions/RequestPermissionsBuilder.swift
  23. 0 5
      FreeAPS/Sources/Modules/RequestPermissions/RequestPermissionsDataFlow.swift
  24. 0 3
      FreeAPS/Sources/Modules/RequestPermissions/RequestPermissionsProvider.swift
  25. 0 5
      FreeAPS/Sources/Modules/RequestPermissions/RequestPermissionsViewModel.swift
  26. 0 13
      FreeAPS/Sources/Modules/RequestPermissions/View/RequestPermissionsRootView.swift
  27. 1 5
      FreeAPS/Sources/Modules/Settings/SettingsProvider.swift
  28. 0 6
      FreeAPS/Sources/Modules/Settings/SettingsViewModel.swift
  29. 0 12
      FreeAPS/Sources/Router/Screen.swift
  30. 0 49
      FreeAPS/Sources/Services/AuthorizationManager/AuthorizationManager.swift

+ 0 - 156
FreeAPS.xcodeproj/project.pbxproj

@@ -46,30 +46,10 @@
 		3811DE4125C9D4A100A708ED /* SettingsRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE3C25C9D4A100A708ED /* SettingsRootView.swift */; };
 		3811DE4225C9D4A100A708ED /* SettingsDataFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE3D25C9D4A100A708ED /* SettingsDataFlow.swift */; };
 		3811DE4325C9D4A100A708ED /* SettingsProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE3E25C9D4A100A708ED /* SettingsProvider.swift */; };
-		3811DE4C25C9D4B800A708ED /* AuthorizedRootBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE4625C9D4B800A708ED /* AuthorizedRootBuilder.swift */; };
-		3811DE4D25C9D4B800A708ED /* AuthorizedRootViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE4725C9D4B800A708ED /* AuthorizedRootViewModel.swift */; };
-		3811DE4E25C9D4B800A708ED /* AuthotizedRootRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE4925C9D4B800A708ED /* AuthotizedRootRootView.swift */; };
-		3811DE4F25C9D4B800A708ED /* AuthorizedRootDataFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE4A25C9D4B800A708ED /* AuthorizedRootDataFlow.swift */; };
-		3811DE5025C9D4B800A708ED /* AuthorizedRootProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE4B25C9D4B800A708ED /* AuthorizedRootProvider.swift */; };
 		3811DE5C25C9D4D500A708ED /* Formatters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE5425C9D4D500A708ED /* Formatters.swift */; };
 		3811DE5D25C9D4D500A708ED /* Publisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE5525C9D4D500A708ED /* Publisher.swift */; };
 		3811DE5F25C9D4D500A708ED /* ProgressBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE5725C9D4D500A708ED /* ProgressBar.swift */; };
 		3811DE6125C9D4D500A708ED /* ViewModifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE5925C9D4D500A708ED /* ViewModifiers.swift */; };
-		3811DE6A25C9D62600A708ED /* OnboardingBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE6425C9D62600A708ED /* OnboardingBuilder.swift */; };
-		3811DE6B25C9D62600A708ED /* OnboardingProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE6525C9D62600A708ED /* OnboardingProvider.swift */; };
-		3811DE6C25C9D62600A708ED /* OnboardingDataFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE6625C9D62600A708ED /* OnboardingDataFlow.swift */; };
-		3811DE6D25C9D62600A708ED /* OnboardingRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE6825C9D62600A708ED /* OnboardingRootView.swift */; };
-		3811DE6E25C9D62600A708ED /* OnboardingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE6925C9D62600A708ED /* OnboardingViewModel.swift */; };
-		3811DE7925C9D6D300A708ED /* LoginViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE7125C9D6D300A708ED /* LoginViewModel.swift */; };
-		3811DE7A25C9D6D300A708ED /* LoginDataFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE7225C9D6D300A708ED /* LoginDataFlow.swift */; };
-		3811DE7B25C9D6D300A708ED /* LoginProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE7325C9D6D300A708ED /* LoginProvider.swift */; };
-		3811DE7D25C9D6D300A708ED /* LoginRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE7625C9D6D300A708ED /* LoginRootView.swift */; };
-		3811DE7F25C9D6D300A708ED /* LoginBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE7825C9D6D300A708ED /* LoginBuilder.swift */; };
-		3811DE8825C9D6DD00A708ED /* RequestPermissionsDataFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE8225C9D6DD00A708ED /* RequestPermissionsDataFlow.swift */; };
-		3811DE8925C9D6DD00A708ED /* RequestPermissionsProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE8325C9D6DD00A708ED /* RequestPermissionsProvider.swift */; };
-		3811DE8A25C9D6DD00A708ED /* RequestPermissionsRootView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE8525C9D6DD00A708ED /* RequestPermissionsRootView.swift */; };
-		3811DE8B25C9D6DD00A708ED /* RequestPermissionsBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE8625C9D6DD00A708ED /* RequestPermissionsBuilder.swift */; };
-		3811DE8C25C9D6DD00A708ED /* RequestPermissionsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE8725C9D6DD00A708ED /* RequestPermissionsViewModel.swift */; };
 		3811DE8F25C9D80400A708ED /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE8E25C9D80400A708ED /* User.swift */; };
 		3811DEA925C9D88300A708ED /* AppearanceManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE9325C9D88200A708ED /* AppearanceManager.swift */; };
 		3811DEAB25C9D88300A708ED /* HTTPResponseStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE9625C9D88300A708ED /* HTTPResponseStatus.swift */; };
@@ -81,7 +61,6 @@
 		3811DEB125C9D88300A708ED /* Keychain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DE9F25C9D88300A708ED /* Keychain.swift */; };
 		3811DEB225C9D88300A708ED /* KeychainItemAccessibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DEA025C9D88300A708ED /* KeychainItemAccessibility.swift */; };
 		3811DEB625C9D88300A708ED /* UnlockManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DEA625C9D88300A708ED /* UnlockManager.swift */; };
-		3811DEB725C9D88300A708ED /* AuthorizationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DEA825C9D88300A708ED /* AuthorizationManager.swift */; };
 		3811DEE825CA063400A708ED /* Injected.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DEE425CA063400A708ED /* Injected.swift */; };
 		3811DEEA25CA063400A708ED /* SyncAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DEE625CA063400A708ED /* SyncAccess.swift */; };
 		3811DEEB25CA063400A708ED /* PersistedProperty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3811DEE725CA063400A708ED /* PersistedProperty.swift */; };
@@ -374,30 +353,10 @@
 		3811DE3C25C9D4A100A708ED /* SettingsRootView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsRootView.swift; sourceTree = "<group>"; };
 		3811DE3D25C9D4A100A708ED /* SettingsDataFlow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsDataFlow.swift; sourceTree = "<group>"; };
 		3811DE3E25C9D4A100A708ED /* SettingsProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsProvider.swift; sourceTree = "<group>"; };
-		3811DE4625C9D4B800A708ED /* AuthorizedRootBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizedRootBuilder.swift; sourceTree = "<group>"; };
-		3811DE4725C9D4B800A708ED /* AuthorizedRootViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizedRootViewModel.swift; sourceTree = "<group>"; };
-		3811DE4925C9D4B800A708ED /* AuthotizedRootRootView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthotizedRootRootView.swift; sourceTree = "<group>"; };
-		3811DE4A25C9D4B800A708ED /* AuthorizedRootDataFlow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizedRootDataFlow.swift; sourceTree = "<group>"; };
-		3811DE4B25C9D4B800A708ED /* AuthorizedRootProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizedRootProvider.swift; sourceTree = "<group>"; };
 		3811DE5425C9D4D500A708ED /* Formatters.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Formatters.swift; sourceTree = "<group>"; };
 		3811DE5525C9D4D500A708ED /* Publisher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Publisher.swift; sourceTree = "<group>"; };
 		3811DE5725C9D4D500A708ED /* ProgressBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProgressBar.swift; sourceTree = "<group>"; };
 		3811DE5925C9D4D500A708ED /* ViewModifiers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewModifiers.swift; sourceTree = "<group>"; };
-		3811DE6425C9D62600A708ED /* OnboardingBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OnboardingBuilder.swift; sourceTree = "<group>"; };
-		3811DE6525C9D62600A708ED /* OnboardingProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OnboardingProvider.swift; sourceTree = "<group>"; };
-		3811DE6625C9D62600A708ED /* OnboardingDataFlow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OnboardingDataFlow.swift; sourceTree = "<group>"; };
-		3811DE6825C9D62600A708ED /* OnboardingRootView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OnboardingRootView.swift; sourceTree = "<group>"; };
-		3811DE6925C9D62600A708ED /* OnboardingViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OnboardingViewModel.swift; sourceTree = "<group>"; };
-		3811DE7125C9D6D300A708ED /* LoginViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginViewModel.swift; sourceTree = "<group>"; };
-		3811DE7225C9D6D300A708ED /* LoginDataFlow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginDataFlow.swift; sourceTree = "<group>"; };
-		3811DE7325C9D6D300A708ED /* LoginProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginProvider.swift; sourceTree = "<group>"; };
-		3811DE7625C9D6D300A708ED /* LoginRootView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginRootView.swift; sourceTree = "<group>"; };
-		3811DE7825C9D6D300A708ED /* LoginBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginBuilder.swift; sourceTree = "<group>"; };
-		3811DE8225C9D6DD00A708ED /* RequestPermissionsDataFlow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestPermissionsDataFlow.swift; sourceTree = "<group>"; };
-		3811DE8325C9D6DD00A708ED /* RequestPermissionsProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestPermissionsProvider.swift; sourceTree = "<group>"; };
-		3811DE8525C9D6DD00A708ED /* RequestPermissionsRootView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestPermissionsRootView.swift; sourceTree = "<group>"; };
-		3811DE8625C9D6DD00A708ED /* RequestPermissionsBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestPermissionsBuilder.swift; sourceTree = "<group>"; };
-		3811DE8725C9D6DD00A708ED /* RequestPermissionsViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestPermissionsViewModel.swift; sourceTree = "<group>"; };
 		3811DE8E25C9D80400A708ED /* User.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = "<group>"; };
 		3811DE9325C9D88200A708ED /* AppearanceManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppearanceManager.swift; sourceTree = "<group>"; };
 		3811DE9625C9D88300A708ED /* HTTPResponseStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HTTPResponseStatus.swift; sourceTree = "<group>"; };
@@ -409,7 +368,6 @@
 		3811DE9F25C9D88300A708ED /* Keychain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Keychain.swift; sourceTree = "<group>"; };
 		3811DEA025C9D88300A708ED /* KeychainItemAccessibility.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeychainItemAccessibility.swift; sourceTree = "<group>"; };
 		3811DEA625C9D88300A708ED /* UnlockManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnlockManager.swift; sourceTree = "<group>"; };
-		3811DEA825C9D88300A708ED /* AuthorizationManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizationManager.swift; sourceTree = "<group>"; };
 		3811DEC725C9DA7300A708ED /* FreeAPS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = FreeAPS.entitlements; sourceTree = "<group>"; };
 		3811DEE425CA063400A708ED /* Injected.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Injected.swift; sourceTree = "<group>"; };
 		3811DEE625CA063400A708ED /* SyncAccess.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SyncAccess.swift; sourceTree = "<group>"; };
@@ -704,7 +662,6 @@
 			children = (
 				6DC5D590658EF8B8DF94F9F5 /* AddCarbs */,
 				A9A4C88374496B3C89058A89 /* AddTempTarget */,
-				3811DE4525C9D4B800A708ED /* AuthorizedRoot */,
 				672F63EEAE27400625E14BAD /* AutotuneConfig */,
 				A42F1FEDFFD0DDE00AAD54D3 /* BasalProfileEditor */,
 				3811DE0425C9D32E00A708ED /* Base */,
@@ -715,15 +672,12 @@
 				9E56E3626FAD933385101B76 /* DataTable */,
 				3811DE2725C9D49500A708ED /* Home */,
 				D8F047E14D567F2B5DBEFD96 /* ISFEditor */,
-				3811DE7025C9D6D300A708ED /* Login */,
 				3811DE1A25C9D48300A708ED /* Main */,
 				5031FE61F63C2A8A8B7674DD /* ManualTempBasal */,
 				D533BF261CDC1C3F871E7BFD /* NightscoutConfig */,
-				3811DE6325C9D62600A708ED /* Onboarding */,
 				3E1C41D9301B7058AA7BF5EA /* PreferencesEditor */,
 				99C01B871ACAB3F32CE755C7 /* PumpConfig */,
 				E493126EA71765130F64CCE5 /* PumpSettingsEditor */,
-				3811DE8125C9D6DD00A708ED /* RequestPermissions */,
 				3811DE3825C9D4A100A708ED /* Settings */,
 				6517011F19F244F64E1FF14B /* TargetsEditor */,
 			);
@@ -831,86 +785,6 @@
 			path = View;
 			sourceTree = "<group>";
 		};
-		3811DE4525C9D4B800A708ED /* AuthorizedRoot */ = {
-			isa = PBXGroup;
-			children = (
-				3811DE4625C9D4B800A708ED /* AuthorizedRootBuilder.swift */,
-				3811DE4A25C9D4B800A708ED /* AuthorizedRootDataFlow.swift */,
-				3811DE4B25C9D4B800A708ED /* AuthorizedRootProvider.swift */,
-				3811DE4725C9D4B800A708ED /* AuthorizedRootViewModel.swift */,
-				3811DE4825C9D4B800A708ED /* View */,
-			);
-			path = AuthorizedRoot;
-			sourceTree = "<group>";
-		};
-		3811DE4825C9D4B800A708ED /* View */ = {
-			isa = PBXGroup;
-			children = (
-				3811DE4925C9D4B800A708ED /* AuthotizedRootRootView.swift */,
-			);
-			path = View;
-			sourceTree = "<group>";
-		};
-		3811DE6325C9D62600A708ED /* Onboarding */ = {
-			isa = PBXGroup;
-			children = (
-				3811DE6425C9D62600A708ED /* OnboardingBuilder.swift */,
-				3811DE6525C9D62600A708ED /* OnboardingProvider.swift */,
-				3811DE6625C9D62600A708ED /* OnboardingDataFlow.swift */,
-				3811DE6725C9D62600A708ED /* View */,
-				3811DE6925C9D62600A708ED /* OnboardingViewModel.swift */,
-			);
-			path = Onboarding;
-			sourceTree = "<group>";
-		};
-		3811DE6725C9D62600A708ED /* View */ = {
-			isa = PBXGroup;
-			children = (
-				3811DE6825C9D62600A708ED /* OnboardingRootView.swift */,
-			);
-			path = View;
-			sourceTree = "<group>";
-		};
-		3811DE7025C9D6D300A708ED /* Login */ = {
-			isa = PBXGroup;
-			children = (
-				3811DE7825C9D6D300A708ED /* LoginBuilder.swift */,
-				3811DE7225C9D6D300A708ED /* LoginDataFlow.swift */,
-				3811DE7325C9D6D300A708ED /* LoginProvider.swift */,
-				3811DE7125C9D6D300A708ED /* LoginViewModel.swift */,
-				3811DE7425C9D6D300A708ED /* View */,
-			);
-			path = Login;
-			sourceTree = "<group>";
-		};
-		3811DE7425C9D6D300A708ED /* View */ = {
-			isa = PBXGroup;
-			children = (
-				3811DE7625C9D6D300A708ED /* LoginRootView.swift */,
-			);
-			path = View;
-			sourceTree = "<group>";
-		};
-		3811DE8125C9D6DD00A708ED /* RequestPermissions */ = {
-			isa = PBXGroup;
-			children = (
-				3811DE8225C9D6DD00A708ED /* RequestPermissionsDataFlow.swift */,
-				3811DE8325C9D6DD00A708ED /* RequestPermissionsProvider.swift */,
-				3811DE8425C9D6DD00A708ED /* View */,
-				3811DE8625C9D6DD00A708ED /* RequestPermissionsBuilder.swift */,
-				3811DE8725C9D6DD00A708ED /* RequestPermissionsViewModel.swift */,
-			);
-			path = RequestPermissions;
-			sourceTree = "<group>";
-		};
-		3811DE8425C9D6DD00A708ED /* View */ = {
-			isa = PBXGroup;
-			children = (
-				3811DE8525C9D6DD00A708ED /* RequestPermissionsRootView.swift */,
-			);
-			path = View;
-			sourceTree = "<group>";
-		};
 		3811DE9125C9D88200A708ED /* Services */ = {
 			isa = PBXGroup;
 			children = (
@@ -920,7 +794,6 @@
 				3811DE9425C9D88200A708ED /* Network */,
 				3811DE9825C9D88300A708ED /* Storage */,
 				3811DEA525C9D88300A708ED /* UnlockManager */,
-				3811DEA725C9D88300A708ED /* AuthorizationManager */,
 			);
 			path = Services;
 			sourceTree = "<group>";
@@ -983,14 +856,6 @@
 			path = UnlockManager;
 			sourceTree = "<group>";
 		};
-		3811DEA725C9D88300A708ED /* AuthorizationManager */ = {
-			isa = PBXGroup;
-			children = (
-				3811DEA825C9D88300A708ED /* AuthorizationManager.swift */,
-			);
-			path = AuthorizationManager;
-			sourceTree = "<group>";
-		};
 		3811DED425C9E1E300A708ED /* Resources */ = {
 			isa = PBXGroup;
 			children = (
@@ -1738,9 +1603,7 @@
 				3811DE2325C9D48300A708ED /* MainDataFlow.swift in Sources */,
 				3811DEEB25CA063400A708ED /* PersistedProperty.swift in Sources */,
 				388E5A6025B6F2310019842D /* Autosens.swift in Sources */,
-				3811DE8B25C9D6DD00A708ED /* RequestPermissionsBuilder.swift in Sources */,
 				38569351270B5E1D0002C50D /* CGMBuilder.swift in Sources */,
-				3811DE4C25C9D4B800A708ED /* AuthorizedRootBuilder.swift in Sources */,
 				3811DE8F25C9D80400A708ED /* User.swift in Sources */,
 				3811DEB225C9D88300A708ED /* KeychainItemAccessibility.swift in Sources */,
 				385CEAC425F2F154002D6D5B /* AnnouncementsStorage.swift in Sources */,
@@ -1748,7 +1611,6 @@
 				38FCF3FD25E997A80078B0D1 /* PumpHistoryStorage.swift in Sources */,
 				38D0B3B625EBE24900CB6E88 /* Battery.swift in Sources */,
 				38C4D33725E9A1A300D30B77 /* DispatchQueue+Extensions.swift in Sources */,
-				3811DE6B25C9D62600A708ED /* OnboardingProvider.swift in Sources */,
 				38B4F3C325E2A20B00E76A18 /* PumpSetupView.swift in Sources */,
 				382C134B25F14E3700715CE1 /* BGTargets.swift in Sources */,
 				38AEE75725F0F18E0013F05B /* CarbsStorage.swift in Sources */,
@@ -1757,9 +1619,7 @@
 				3894873A2614928B004DF424 /* DispatchTimer.swift in Sources */,
 				3895E4C625B9E00D00214B37 /* Preferences.swift in Sources */,
 				386A124F271707F000DDC61C /* DexcomSource.swift in Sources */,
-				3811DE6E25C9D62600A708ED /* OnboardingViewModel.swift in Sources */,
 				38B4F3CD25E5031100E76A18 /* Broadcaster.swift in Sources */,
-				3811DE6D25C9D62600A708ED /* OnboardingRootView.swift in Sources */,
 				383420D925FFEB3F002D46C1 /* Popup.swift in Sources */,
 				3811DE3025C9D49500A708ED /* HomeViewModel.swift in Sources */,
 				38BF021725E7CBBC00579895 /* PumpManagerExtensions.swift in Sources */,
@@ -1778,18 +1638,13 @@
 				38DAB280260CBB7F00F74C1A /* PumpView.swift in Sources */,
 				3811DEB125C9D88300A708ED /* Keychain.swift in Sources */,
 				382C133725F13A1E00715CE1 /* InsulinSensitivities.swift in Sources */,
-				3811DE7B25C9D6D300A708ED /* LoginProvider.swift in Sources */,
 				383948D625CD4D8900E91849 /* FileStorage.swift in Sources */,
 				3811DE4125C9D4A100A708ED /* SettingsRootView.swift in Sources */,
 				38192E04261B82FA0094D973 /* ReachabilityManager.swift in Sources */,
 				388E595C25AD948C0019842D /* FreeAPSApp.swift in Sources */,
-				3811DE8925C9D6DD00A708ED /* RequestPermissionsProvider.swift in Sources */,
 				38569348270B5DFB0002C50D /* GlucoseSource.swift in Sources */,
 				3811DE4225C9D4A100A708ED /* SettingsDataFlow.swift in Sources */,
-				3811DE8825C9D6DD00A708ED /* RequestPermissionsDataFlow.swift in Sources */,
-				3811DE8A25C9D6DD00A708ED /* RequestPermissionsRootView.swift in Sources */,
 				3811DE2525C9D48300A708ED /* MainRootView.swift in Sources */,
-				3811DE8C25C9D6DD00A708ED /* RequestPermissionsViewModel.swift in Sources */,
 				3811DE3125C9D49500A708ED /* HomeProvider.swift in Sources */,
 				388E5A5C25B6F0770019842D /* JSON.swift in Sources */,
 				3811DF0225CA9FEA00A708ED /* Credentials.swift in Sources */,
@@ -1806,8 +1661,6 @@
 				3811DEE825CA063400A708ED /* Injected.swift in Sources */,
 				3811DEAF25C9D88300A708ED /* KeyValueStorage.swift in Sources */,
 				38FE826D25CC8461001FF17A /* NightscoutAPI.swift in Sources */,
-				3811DE4E25C9D4B800A708ED /* AuthotizedRootRootView.swift in Sources */,
-				3811DE7D25C9D6D300A708ED /* LoginRootView.swift in Sources */,
 				3811DE4025C9D4A100A708ED /* SettingsBuilder.swift in Sources */,
 				388358C825EEF6D200E024B2 /* BasalProfileEntry.swift in Sources */,
 				3811DE0B25C9D32F00A708ED /* BaseView.swift in Sources */,
@@ -1815,7 +1668,6 @@
 				38569347270B5DFB0002C50D /* CGMType.swift in Sources */,
 				3821ED4C25DD18BA00BC42AD /* Constants.swift in Sources */,
 				384E803425C385E60086DB71 /* JavaScriptWorker.swift in Sources */,
-				3811DE7A25C9D6D300A708ED /* LoginDataFlow.swift in Sources */,
 				3811DE5D25C9D4D500A708ED /* Publisher.swift in Sources */,
 				E00EEC0727368630002FF094 /* APSAssembly.swift in Sources */,
 				38B4F3AF25E2979F00E76A18 /* IndexedCollection.swift in Sources */,
@@ -1826,7 +1678,6 @@
 				3811DE0C25C9D32F00A708ED /* BaseProvider.swift in Sources */,
 				3811DE5C25C9D4D500A708ED /* Formatters.swift in Sources */,
 				3871F39F25ED895A0013ECB5 /* Decimal+Extensions.swift in Sources */,
-				3811DE7F25C9D6D300A708ED /* LoginBuilder.swift in Sources */,
 				3811DE3525C9D49500A708ED /* HomeRootView.swift in Sources */,
 				38E98A2925F52C9300C0CED0 /* Error+Extensions.swift in Sources */,
 				38EA05DA261F6E7C0064E39B /* SimpleLogReporter.swift in Sources */,
@@ -1838,31 +1689,24 @@
 				38A9260525F012D8009E3739 /* CarbRatios.swift in Sources */,
 				3811DE2125C9D48300A708ED /* MainBuilder.swift in Sources */,
 				38FCF3D625E8FDF40078B0D1 /* MD5.swift in Sources */,
-				3811DE7925C9D6D300A708ED /* LoginViewModel.swift in Sources */,
 				3871F39C25ED892B0013ECB5 /* TempTarget.swift in Sources */,
 				3811DEAB25C9D88300A708ED /* HTTPResponseStatus.swift in Sources */,
 				3811DE5F25C9D4D500A708ED /* ProgressBar.swift in Sources */,
 				38BF021D25E7E3AF00579895 /* Reservoir.swift in Sources */,
 				38BF021B25E7D06400579895 /* PumpSettingsView.swift in Sources */,
 				3811DEEA25CA063400A708ED /* SyncAccess.swift in Sources */,
-				3811DE4F25C9D4B800A708ED /* AuthorizedRootDataFlow.swift in Sources */,
 				38BF021F25E7F0DE00579895 /* DeviceDataManager.swift in Sources */,
-				3811DE5025C9D4B800A708ED /* AuthorizedRootProvider.swift in Sources */,
 				38A504A425DD9C4000C5B9E8 /* UserDefaultsExtensions.swift in Sources */,
 				38FE826A25CC82DB001FF17A /* NetworkService.swift in Sources */,
 				3883581C25EE79BB00E024B2 /* DecimalTextField.swift in Sources */,
-				3811DE6C25C9D62600A708ED /* OnboardingDataFlow.swift in Sources */,
 				38DAB28A260D349500F74C1A /* FetchGlucoseManager.swift in Sources */,
 				3811DE2425C9D48300A708ED /* MainViewModel.swift in Sources */,
 				38F37828261260DC009DB701 /* Color+Extensions.swift in Sources */,
 				3811DE3F25C9D4A100A708ED /* SettingsViewModel.swift in Sources */,
 				38B4F3CB25E502E200E76A18 /* WeakObjectSet.swift in Sources */,
-				3811DEB725C9D88300A708ED /* AuthorizationManager.swift in Sources */,
 				38E989DD25F5021400C0CED0 /* PumpStatus.swift in Sources */,
 				38E98A2525F52C9300C0CED0 /* IssueReporter.swift in Sources */,
 				3811DEB025C9D88300A708ED /* BaseKeychain.swift in Sources */,
-				3811DE4D25C9D4B800A708ED /* AuthorizedRootViewModel.swift in Sources */,
-				3811DE6A25C9D62600A708ED /* OnboardingBuilder.swift in Sources */,
 				3811DE4325C9D4A100A708ED /* SettingsProvider.swift in Sources */,
 				E102DE9C3E9C8AEDCB3C61BB /* ConfigEditorBuilder.swift in Sources */,
 				45252C95D220E796FDB3B022 /* ConfigEditorDataFlow.swift in Sources */,

+ 0 - 1
FreeAPS/Sources/Assemblies/NetworkAssembly.swift

@@ -9,6 +9,5 @@ final class NetworkAssembly: Assembly {
         }.inObjectScope(.transient)
 
         container.register(NightscoutManager.self) { r in BaseNightscoutManager(resolver: r) }
-        container.register(AuthorizationManager.self) { r in BaseAuthorizationManager(resolver: r) }
     }
 }

+ 0 - 3
FreeAPS/Sources/Modules/AuthorizedRoot/AuthorizedRootBuilder.swift

@@ -1,3 +0,0 @@
-extension AuthorizedRoot {
-    final class Builder: BaseModuleBuilder<RootView, ViewModel<Provider>, Provider> {}
-}

+ 0 - 7
FreeAPS/Sources/Modules/AuthorizedRoot/AuthorizedRootDataFlow.swift

@@ -1,7 +0,0 @@
-import SwiftUI
-
-enum AuthorizedRoot {
-    enum Config {}
-}
-
-protocol AuthorizedRootProvider: Provider {}

+ 0 - 3
FreeAPS/Sources/Modules/AuthorizedRoot/AuthorizedRootProvider.swift

@@ -1,3 +0,0 @@
-extension AuthorizedRoot {
-    final class Provider: BaseProvider, AuthorizedRootProvider {}
-}

+ 0 - 10
FreeAPS/Sources/Modules/AuthorizedRoot/AuthorizedRootViewModel.swift

@@ -1,10 +0,0 @@
-import SwiftUI
-import Swinject
-
-extension AuthorizedRoot {
-    class ViewModel<Provider>: BaseViewModel<Provider>, ObservableObject where Provider: AuthorizedRootProvider {
-        override func subscribe() {}
-
-        lazy var rootView: some View = { router.view(for: .home) }()
-    }
-}

+ 0 - 13
FreeAPS/Sources/Modules/AuthorizedRoot/View/AuthotizedRootRootView.swift

@@ -1,13 +0,0 @@
-import SwiftUI
-
-extension AuthorizedRoot {
-    struct RootView: BaseView {
-        @EnvironmentObject var viewModel: ViewModel<Provider>
-
-        var body: some View {
-            NavigationView {
-                viewModel.rootView
-            }
-        }
-    }
-}

+ 0 - 1
FreeAPS/Sources/Modules/Base/BaseProvider.swift

@@ -8,7 +8,6 @@ protocol Provider {
 
 class BaseProvider: Provider, Injectable {
     var lifetime = Lifetime()
-    @Injected() var authorizationManager: AuthorizationManager!
     @Injected() var deviceManager: DeviceDataManager!
     @Injected() var storage: FileStorage!
 

+ 0 - 3
FreeAPS/Sources/Modules/Login/LoginBuilder.swift

@@ -1,3 +0,0 @@
-extension Login {
-    final class Builder: BaseModuleBuilder<RootView, ViewModel<Provider>, Provider> {}
-}

+ 0 - 11
FreeAPS/Sources/Modules/Login/LoginDataFlow.swift

@@ -1,11 +0,0 @@
-
-enum Login {
-    enum Config {
-        static let credentialsKey = "FreeAPS.Credentials"
-    }
-}
-
-protocol LoginProvider: Provider {
-    func authorize(credentials: Credentials)
-    var credentials: Credentials? { get }
-}

+ 0 - 19
FreeAPS/Sources/Modules/Login/LoginProvider.swift

@@ -1,19 +0,0 @@
-import AuthenticationServices
-
-extension Login {
-    final class Provider: BaseProvider, LoginProvider {
-        @Injected() private var keychain: Keychain!
-
-        func authorize(credentials: Credentials) {
-            authorizationManager.authorize(credentials: credentials)
-                .sink { _ in
-                    self.keychain.setValue(credentials, forKey: Config.credentialsKey)
-                }
-                .store(in: &lifetime)
-        }
-
-        var credentials: Credentials? {
-            keychain.getValue(Credentials.self, forKey: Config.credentialsKey)
-        }
-    }
-}

+ 0 - 23
FreeAPS/Sources/Modules/Login/LoginViewModel.swift

@@ -1,23 +0,0 @@
-import AuthenticationServices
-import SwiftUI
-
-extension Login {
-    class ViewModel<Provider>: BaseViewModel<Provider>, ObservableObject where Provider: LoginProvider {
-        @Published var credentials: Credentials?
-
-        override func subscribe() {
-            credentials = provider.credentials
-
-            $credentials
-                .compactMap { $0 }
-                .sink { [weak self] in
-                    self?.provider.authorize(credentials: $0)
-                }
-                .store(in: &lifetime)
-        }
-
-        func login() {
-            credentials = Credentials()
-        }
-    }
-}

+ 0 - 24
FreeAPS/Sources/Modules/Login/View/LoginRootView.swift

@@ -1,24 +0,0 @@
-import SwiftUI
-
-extension Login {
-    struct RootView: BaseView {
-        @EnvironmentObject var viewModel: ViewModel<Provider>
-
-        var body: some View {
-            VStack {
-                Text("Disclaimer").font(.title)
-                Spacer()
-                Text(
-                    "FreeAPS X is in an active development state. We do not recommend to use the system for everyday control of blood glucose! Use it for testing purposes only at your own risk. We are not responsible for your decisions and actions."
-                )
-                Spacer()
-                Button(action: viewModel.login) {
-                    Text("Agree and continue")
-                        .frame(maxWidth: .infinity)
-                        .foregroundColor(.white)
-                        .buttonBackground()
-                }
-            }.padding()
-        }
-    }
-}

+ 1 - 20
FreeAPS/Sources/Modules/Main/MainDataFlow.swift

@@ -9,25 +9,6 @@ enum Main {
 
         var id: Int { screen.id }
     }
-
-    enum Scene {
-        case loading
-        case authorized
-        case onboarding
-
-        var screen: Screen {
-            switch self {
-            case .loading:
-                return .loading
-            case .authorized:
-                return .authorizedRoot
-            case .onboarding:
-                return .onboarding
-            }
-        }
-    }
 }
 
-protocol MainProvider: Provider {
-    var authorizationManager: AuthorizationManager! { get }
-}
+protocol MainProvider: Provider {}

+ 0 - 13
FreeAPS/Sources/Modules/Main/MainViewModel.swift

@@ -9,7 +9,6 @@ extension Main {
         @Published var isModalPresented = false
         @Published var isAlertPresented = false
         @Published var alertMessage = ""
-        @Published private(set) var scene: Scene = .loading
 
         override func subscribe() {
             router.mainModalScreen
@@ -22,18 +21,6 @@ extension Main {
                 }
                 .store(in: &lifetime)
 
-            provider.authorizationManager
-                .authorizationPublisher
-                .receive(on: RunLoop.main)
-                .assign(to: \.isAuthotized, on: self)
-                .store(in: &lifetime)
-
-            $isAuthotized
-                .sink { isAuthotized in
-                    self.scene = isAuthotized ? .authorized : .onboarding
-                }
-                .store(in: &lifetime)
-
             $isModalPresented
                 .filter { !$0 }
                 .sink { _ in

+ 1 - 1
FreeAPS/Sources/Modules/Main/View/MainRootView.swift

@@ -5,7 +5,7 @@ extension Main {
         @EnvironmentObject var viewModel: ViewModel<Provider>
 
         @ViewBuilder func presentedView() -> some View {
-            viewModel.cachedView(for: viewModel.scene.screen)
+            viewModel.cachedView(for: .home)
         }
 
         var body: some View {

+ 0 - 3
FreeAPS/Sources/Modules/Onboarding/OnboardingBuilder.swift

@@ -1,3 +0,0 @@
-extension Onboarding {
-    final class Builder: BaseModuleBuilder<RootView, ViewModel<Provider>, Provider> {}
-}

+ 0 - 19
FreeAPS/Sources/Modules/Onboarding/OnboardingDataFlow.swift

@@ -1,19 +0,0 @@
-enum Onboarding {
-    enum Config {}
-
-    enum Stage {
-        case login
-        case requestPermissions
-
-        var screen: Screen {
-            switch self {
-            case .login:
-                return .login
-            case .requestPermissions:
-                return .requestPermissions
-            }
-        }
-    }
-}
-
-protocol OnboardingProvider: Provider {}

+ 0 - 3
FreeAPS/Sources/Modules/Onboarding/OnboardingProvider.swift

@@ -1,3 +0,0 @@
-extension Onboarding {
-    final class Provider: BaseProvider, OnboardingProvider {}
-}

+ 0 - 13
FreeAPS/Sources/Modules/Onboarding/OnboardingViewModel.swift

@@ -1,13 +0,0 @@
-import SwiftUI
-import Swinject
-
-extension Onboarding {
-    class ViewModel<Provider>: BaseViewModel<Provider>, ObservableObject where Provider: OnboardingProvider {
-        @Published var stage: Stage
-
-        required init(provider: Provider, resolver: Resolver) {
-            stage = .login
-            super.init(provider: provider, resolver: resolver)
-        }
-    }
-}

+ 0 - 11
FreeAPS/Sources/Modules/Onboarding/View/OnboardingRootView.swift

@@ -1,11 +0,0 @@
-import SwiftUI
-
-extension Onboarding {
-    struct RootView: BaseView {
-        @EnvironmentObject var viewModel: ViewModel<Provider>
-
-        var body: some View {
-            viewModel.view(for: viewModel.stage.screen)
-        }
-    }
-}

+ 0 - 3
FreeAPS/Sources/Modules/RequestPermissions/RequestPermissionsBuilder.swift

@@ -1,3 +0,0 @@
-extension RequestPermissions {
-    final class Builder: BaseModuleBuilder<RootView, ViewModel<Provider>, Provider> {}
-}

+ 0 - 5
FreeAPS/Sources/Modules/RequestPermissions/RequestPermissionsDataFlow.swift

@@ -1,5 +0,0 @@
-enum RequestPermissions {
-    enum Config {}
-}
-
-protocol RequestPermissionsProvider: Provider {}

+ 0 - 3
FreeAPS/Sources/Modules/RequestPermissions/RequestPermissionsProvider.swift

@@ -1,3 +0,0 @@
-extension RequestPermissions {
-    final class Provider: BaseProvider, RequestPermissionsProvider {}
-}

+ 0 - 5
FreeAPS/Sources/Modules/RequestPermissions/RequestPermissionsViewModel.swift

@@ -1,5 +0,0 @@
-import SwiftUI
-
-extension RequestPermissions {
-    class ViewModel<Provider>: BaseViewModel<Provider>, ObservableObject where Provider: RequestPermissionsProvider {}
-}

+ 0 - 13
FreeAPS/Sources/Modules/RequestPermissions/View/RequestPermissionsRootView.swift

@@ -1,13 +0,0 @@
-import SwiftUI
-
-extension RequestPermissions {
-    struct RootView: BaseView {
-        @EnvironmentObject var viewModel: ViewModel<Provider>
-
-        var body: some View {
-            Text("RequestPermissions screen")
-                .navigationBarTitle("RequestPermissions")
-                .navigationBarItems(leading: Button("Close", action: viewModel.hideModal))
-        }
-    }
-}

+ 1 - 5
FreeAPS/Sources/Modules/Settings/SettingsProvider.swift

@@ -1,7 +1,3 @@
 extension Settings {
-    final class Provider: BaseProvider, SettingsProvider {
-        func logout() {
-            authorizationManager.logout()
-        }
-    }
+    final class Provider: BaseProvider, SettingsProvider {}
 }

+ 0 - 6
FreeAPS/Sources/Modules/Settings/SettingsViewModel.swift

@@ -5,7 +5,6 @@ extension Settings {
         @Injected() private var settingsManager: SettingsManager!
         @Injected() private var broadcaster: Broadcaster!
         @Injected() private var fileManager: FileManager!
-        @Injected() private var authorizationManager: AuthorizationManager!
         @Published var closedLoop = false
 
         @Published var debugOptions = false
@@ -40,11 +39,6 @@ extension Settings {
 
             return items
         }
-
-        func logout() {
-            authorizationManager.logout()
-            showModal(for: nil)
-        }
     }
 }
 

+ 0 - 12
FreeAPS/Sources/Router/Screen.swift

@@ -5,10 +5,6 @@ enum Screen: Identifiable, Hashable {
     case loading
     case home
     case settings
-    case onboarding
-    case authorizedRoot
-    case login
-    case requestPermissions
     case configEditor(file: String)
     case nighscoutConfig
     case pumpConfig
@@ -38,14 +34,6 @@ extension Screen {
             return Home.Builder(resolver: resolver).buildView()
         case .settings:
             return Settings.Builder(resolver: resolver).buildView()
-        case .onboarding:
-            return Onboarding.Builder(resolver: resolver).buildView()
-        case .authorizedRoot:
-            return AuthorizedRoot.Builder(resolver: resolver).buildView()
-        case .login:
-            return Login.Builder(resolver: resolver).buildView()
-        case .requestPermissions:
-            return RequestPermissions.Builder(resolver: resolver).buildView()
         case let .configEditor(file):
             return ConfigEditor.Builder(resolver: resolver, file: file).buildView()
         case .nighscoutConfig:

+ 0 - 49
FreeAPS/Sources/Services/AuthorizationManager/AuthorizationManager.swift

@@ -1,49 +0,0 @@
-import AuthenticationServices
-import Combine
-import Swinject
-
-protocol AuthorizationManager {
-    var authorizationPublisher: AnyPublisher<Bool, Never> { get }
-    func authorize(credentials: Credentials) -> AnyPublisher<Void, Never>
-    func logout()
-}
-
-final class BaseAuthorizationManager: AuthorizationManager, Injectable {
-    private let isAuthorizedSubject = CurrentValueSubject<Bool?, Never>(nil)
-
-    var authorizationPublisher: AnyPublisher<Bool, Never> { isAuthorizedSubject.ignoreNil().eraseToAnyPublisher() }
-
-    let credentials = CurrentValueSubject<Credentials?, Never>(nil)
-
-    private var lifetime = Lifetime()
-
-    @Injected() private var keychain: Keychain!
-
-    init(resolver: Resolver) {
-        injectServices(resolver)
-        if let creds = keychain.getValue(Credentials.self, forKey: Login.Config.credentialsKey) {
-            credentials.send(creds)
-            isAuthorizedSubject.send(true)
-        } else {
-            isAuthorizedSubject.send(false)
-        }
-    }
-
-    func authorize(credentials: Credentials) -> AnyPublisher<Void, Never> {
-        isAuthorizedSubject.send(true)
-        self.credentials.send(credentials)
-        return Just(()).eraseToAnyPublisher()
-    }
-
-    func logout() {
-        keychain.removeObject(forKey: Login.Config.credentialsKey).publisher
-            .sink(
-                receiveCompletion: { _ in
-                    self.isAuthorizedSubject.send(false)
-                    self.credentials.send(nil)
-                },
-                receiveValue: {}
-            )
-            .store(in: &lifetime)
-    }
-}