|
531 | 531 | 7A6389EB2B7FAD7A008E77E1 /* SettingsFieldValidationErrorContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A6389EA2B7FAD7A008E77E1 /* SettingsFieldValidationErrorContentView.swift */; };
|
532 | 532 | 7A6389ED2B7FADA1008E77E1 /* SettingsFieldValidationErrorConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A6389EC2B7FADA1008E77E1 /* SettingsFieldValidationErrorConfiguration.swift */; };
|
533 | 533 | 7A6389F82B864CDF008E77E1 /* LocationNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A6389F72B864CDF008E77E1 /* LocationNode.swift */; };
|
| 534 | + 7A6652B82BB44C3E0042D848 /* LocationDiffableDataSourceProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A6652B62BB44B120042D848 /* LocationDiffableDataSourceProtocol.swift */; }; |
534 | 535 | 7A6B4F592AB8412E00123853 /* TunnelMonitorTimings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A6B4F582AB8412E00123853 /* TunnelMonitorTimings.swift */; };
|
535 | 536 | 7A6F2FA52AFA3CB2006D0856 /* AccountExpiryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A6F2FA42AFA3CB2006D0856 /* AccountExpiryTests.swift */; };
|
536 | 537 | 7A6F2FA72AFBB9AE006D0856 /* AccountExpiry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A6F2FA62AFBB9AE006D0856 /* AccountExpiry.swift */; };
|
|
818 | 819 | E1187ABD289BBB850024E748 /* OutOfTimeContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1187ABB289BBB850024E748 /* OutOfTimeContentView.swift */; };
|
819 | 820 | E158B360285381C60002F069 /* String+AccountFormatting.swift in Sources */ = {isa = PBXBuildFile; fileRef = E158B35F285381C60002F069 /* String+AccountFormatting.swift */; };
|
820 | 821 | E1FD0DF528AA7CE400299DB4 /* StatusActivityView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1FD0DF428AA7CE400299DB4 /* StatusActivityView.swift */; };
|
| 822 | + F006CCFC2B99CC8400C6C2AC /* EditLocationsCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F006CCFB2B99CC8400C6C2AC /* EditLocationsCoordinator.swift */; }; |
821 | 823 | F0164EBA2B4456D30020268D /* AccessMethodRepositoryStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0164EB92B4456D30020268D /* AccessMethodRepositoryStub.swift */; };
|
822 | 824 | F0164EBC2B482E430020268D /* AppStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0164EBB2B482E430020268D /* AppStorage.swift */; };
|
823 | 825 | F0164EBE2B4BFF940020268D /* ShadowsocksLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0164EBD2B4BFF940020268D /* ShadowsocksLoader.swift */; };
|
824 | 826 | F0164EC32B4C49D30020268D /* ShadowsocksLoaderStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0164EC22B4C49D30020268D /* ShadowsocksLoaderStub.swift */; };
|
825 | 827 | F0164ED12B4F2DCB0020268D /* AccessMethodIterator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0164ED02B4F2DCB0020268D /* AccessMethodIterator.swift */; };
|
826 | 828 | F028A56A2A34D4E700C0CAA3 /* RedeemVoucherViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F028A5692A34D4E700C0CAA3 /* RedeemVoucherViewController.swift */; };
|
827 | 829 | F028A56C2A34D8E600C0CAA3 /* AddCreditSucceededViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F028A56B2A34D8E600C0CAA3 /* AddCreditSucceededViewController.swift */; };
|
| 830 | + F02F41A02B9723AF00625A4F /* AddLocationsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F02F419A2B9723AE00625A4F /* AddLocationsViewController.swift */; }; |
| 831 | + F02F41A12B9723AF00625A4F /* AddLocationsDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = F02F419B2B9723AE00625A4F /* AddLocationsDataSource.swift */; }; |
| 832 | + F02F41A22B9723AF00625A4F /* AddLocationsCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F02F419C2B9723AF00625A4F /* AddLocationsCoordinator.swift */; }; |
828 | 833 | F03580252A13842C00E5DAFD /* IncreasedHitButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = F03580242A13842C00E5DAFD /* IncreasedHitButton.swift */; };
|
| 834 | + F04413612BA45CD70018A6EE /* CustomListLocationNodeBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = F04413602BA45CD70018A6EE /* CustomListLocationNodeBuilder.swift */; }; |
| 835 | + F04413622BA45CE30018A6EE /* CustomListLocationNodeBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = F04413602BA45CD70018A6EE /* CustomListLocationNodeBuilder.swift */; }; |
829 | 836 | F04F95A12B21D24400431E08 /* shadowsocks.h in Headers */ = {isa = PBXBuildFile; fileRef = F04F95A02B21D24400431E08 /* shadowsocks.h */; settings = {ATTRIBUTES = (Private, ); }; };
|
830 | 837 | F04FBE612A8379EE009278D7 /* AppPreferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = F04FBE602A8379EE009278D7 /* AppPreferences.swift */; };
|
831 | 838 | F050AE4E2B70D7F8003F4EDB /* LocationCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = F050AE4D2B70D7F8003F4EDB /* LocationCellViewModel.swift */; };
|
|
1789 | 1796 | 7A6389EA2B7FAD7A008E77E1 /* SettingsFieldValidationErrorContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsFieldValidationErrorContentView.swift; sourceTree = "<group>"; };
|
1790 | 1797 | 7A6389EC2B7FADA1008E77E1 /* SettingsFieldValidationErrorConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsFieldValidationErrorConfiguration.swift; sourceTree = "<group>"; };
|
1791 | 1798 | 7A6389F72B864CDF008E77E1 /* LocationNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationNode.swift; sourceTree = "<group>"; };
|
| 1799 | + 7A6652B62BB44B120042D848 /* LocationDiffableDataSourceProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationDiffableDataSourceProtocol.swift; sourceTree = "<group>"; }; |
1792 | 1800 | 7A6B4F582AB8412E00123853 /* TunnelMonitorTimings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TunnelMonitorTimings.swift; sourceTree = "<group>"; };
|
1793 | 1801 | 7A6F2FA42AFA3CB2006D0856 /* AccountExpiryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountExpiryTests.swift; sourceTree = "<group>"; };
|
1794 | 1802 | 7A6F2FA62AFBB9AE006D0856 /* AccountExpiry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountExpiry.swift; sourceTree = "<group>"; };
|
|
1972 | 1980 | E1187ABB289BBB850024E748 /* OutOfTimeContentView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OutOfTimeContentView.swift; sourceTree = "<group>"; };
|
1973 | 1981 | E158B35F285381C60002F069 /* String+AccountFormatting.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+AccountFormatting.swift"; sourceTree = "<group>"; };
|
1974 | 1982 | E1FD0DF428AA7CE400299DB4 /* StatusActivityView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusActivityView.swift; sourceTree = "<group>"; };
|
| 1983 | + F006CCFB2B99CC8400C6C2AC /* EditLocationsCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditLocationsCoordinator.swift; sourceTree = "<group>"; }; |
1975 | 1984 | F0164EB92B4456D30020268D /* AccessMethodRepositoryStub.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessMethodRepositoryStub.swift; sourceTree = "<group>"; };
|
1976 | 1985 | F0164EBB2B482E430020268D /* AppStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStorage.swift; sourceTree = "<group>"; };
|
1977 | 1986 | F0164EBD2B4BFF940020268D /* ShadowsocksLoader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowsocksLoader.swift; sourceTree = "<group>"; };
|
1978 | 1987 | F0164EC22B4C49D30020268D /* ShadowsocksLoaderStub.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowsocksLoaderStub.swift; sourceTree = "<group>"; };
|
1979 | 1988 | F0164ED02B4F2DCB0020268D /* AccessMethodIterator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessMethodIterator.swift; sourceTree = "<group>"; };
|
1980 | 1989 | F028A5692A34D4E700C0CAA3 /* RedeemVoucherViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RedeemVoucherViewController.swift; sourceTree = "<group>"; };
|
1981 | 1990 | F028A56B2A34D8E600C0CAA3 /* AddCreditSucceededViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddCreditSucceededViewController.swift; sourceTree = "<group>"; };
|
| 1991 | + F02F419A2B9723AE00625A4F /* AddLocationsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddLocationsViewController.swift; sourceTree = "<group>"; }; |
| 1992 | + F02F419B2B9723AE00625A4F /* AddLocationsDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddLocationsDataSource.swift; sourceTree = "<group>"; }; |
| 1993 | + F02F419C2B9723AF00625A4F /* AddLocationsCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddLocationsCoordinator.swift; sourceTree = "<group>"; }; |
1982 | 1994 | F03580242A13842C00E5DAFD /* IncreasedHitButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IncreasedHitButton.swift; sourceTree = "<group>"; };
|
| 1995 | + F04413602BA45CD70018A6EE /* CustomListLocationNodeBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomListLocationNodeBuilder.swift; sourceTree = "<group>"; }; |
1983 | 1996 | F04F95A02B21D24400431E08 /* shadowsocks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = shadowsocks.h; sourceTree = "<group>"; };
|
1984 | 1997 | F04FBE602A8379EE009278D7 /* AppPreferences.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppPreferences.swift; sourceTree = "<group>"; };
|
1985 | 1998 | F050AE4D2B70D7F8003F4EDB /* LocationCellViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationCellViewModel.swift; sourceTree = "<group>"; };
|
|
2430 | 2443 | isa = PBXGroup;
|
2431 | 2444 | children = (
|
2432 | 2445 | F050AE5F2B73A41E003F4EDB /* AllLocationDataSource.swift */,
|
| 2446 | + F04413602BA45CD70018A6EE /* CustomListLocationNodeBuilder.swift */, |
2433 | 2447 | F050AE612B74DBAC003F4EDB /* CustomListsDataSource.swift */,
|
2434 | 2448 | F0A92B3B2B8E44F900DC7B37 /* InMemoryCustomListRepository.swift */,
|
2435 | 2449 | 5888AD82227B11080051EB06 /* LocationCell.swift */,
|
2436 | 2450 | F050AE4D2B70D7F8003F4EDB /* LocationCellViewModel.swift */,
|
2437 | 2451 | 583DA21325FA4B5C00318683 /* LocationDataSource.swift */,
|
2438 | 2452 | F050AE5D2B739A73003F4EDB /* LocationDataSourceProtocol.swift */,
|
| 2453 | + 7A6652B62BB44B120042D848 /* LocationDiffableDataSourceProtocol.swift */, |
2439 | 2454 | 7A6389F72B864CDF008E77E1 /* LocationNode.swift */,
|
2440 | 2455 | F050AE512B70DFC0003F4EDB /* LocationSection.swift */,
|
2441 | 2456 | F0BE65362B9F136A005CC385 /* LocationSectionHeaderView.swift */,
|
|
3504 | 3519 | isa = PBXGroup;
|
3505 | 3520 | children = (
|
3506 | 3521 | 7A6389D72B7E3BD6008E77E1 /* AddCustomListCoordinator.swift */,
|
| 3522 | + F02F419C2B9723AF00625A4F /* AddLocationsCoordinator.swift */, |
| 3523 | + F02F419B2B9723AE00625A4F /* AddLocationsDataSource.swift */, |
| 3524 | + F02F419A2B9723AE00625A4F /* AddLocationsViewController.swift */, |
3507 | 3525 | 7A6389D22B7E3BD6008E77E1 /* CustomListCellConfiguration.swift */,
|
3508 | 3526 | 7A6389D42B7E3BD6008E77E1 /* CustomListDataSourceConfiguration.swift */,
|
3509 | 3527 | 7A6389DA2B7E3BD6008E77E1 /* CustomListInteractor.swift */,
|
|
3513 | 3531 | 7A6389E62B7E42BE008E77E1 /* CustomListViewController.swift */,
|
3514 | 3532 | 7A6389D32B7E3BD6008E77E1 /* CustomListViewModel.swift */,
|
3515 | 3533 | 7A6389E42B7E4247008E77E1 /* EditCustomListCoordinator.swift */,
|
| 3534 | + F006CCFB2B99CC8400C6C2AC /* EditLocationsCoordinator.swift */, |
3516 | 3535 | 7AB2B66F2BA1EB8C00B03E3B /* ListCustomListCoordinator.swift */,
|
3517 | 3536 | 7AB2B66E2BA1EB8C00B03E3B /* ListCustomListViewController.swift */,
|
3518 | 3537 | );
|
|
4951 | 4970 | A9A5FA2D2ACB05160083449F /* DurationTests.swift in Sources */,
|
4952 | 4971 | A9A5FA2E2ACB05160083449F /* FileCacheTests.swift in Sources */,
|
4953 | 4972 | A9A5FA2F2ACB05160083449F /* FixedWidthIntegerArithmeticsTests.swift in Sources */,
|
| 4973 | + F04413622BA45CE30018A6EE /* CustomListLocationNodeBuilder.swift in Sources */, |
4954 | 4974 | A9A5FA302ACB05160083449F /* InputTextFormatterTests.swift in Sources */,
|
4955 | 4975 | F0B0E6972AFE6E7E001DC66B /* XCTest+Async.swift in Sources */,
|
4956 | 4976 | 449EB9FF2B95FF2500DFA4EB /* AccountMock.swift in Sources */,
|
|
5224 | 5244 | 58EE2E3B272FF814003BFF93 /* SettingsDataSourceDelegate.swift in Sources */,
|
5225 | 5245 | 5823FA5426CE49F700283BF8 /* TunnelObserver.swift in Sources */,
|
5226 | 5246 | 5888AD87227B17950051EB06 /* LocationViewController.swift in Sources */,
|
| 5247 | + F006CCFC2B99CC8400C6C2AC /* EditLocationsCoordinator.swift in Sources */, |
5227 | 5248 | 58293FB3251241B4005D0BB5 /* CustomTextView.swift in Sources */,
|
5228 | 5249 | 586A950E290125F3007BAF2B /* ProductsRequestOperation.swift in Sources */,
|
5229 | 5250 | 7AF9BE902A39F26000DBFEDB /* Collection+Sorting.swift in Sources */,
|
|
5267 | 5288 | 7A28826A2BA8336600FD9F20 /* VPNSettingsCoordinator.swift in Sources */,
|
5268 | 5289 | 7A6389DE2B7E3BD6008E77E1 /* CustomListItemIdentifier.swift in Sources */,
|
5269 | 5290 | 58C76A082A33850E00100D75 /* ApplicationTarget.swift in Sources */,
|
| 5291 | + F04413612BA45CD70018A6EE /* CustomListLocationNodeBuilder.swift in Sources */, |
5270 | 5292 | 58CEB3042AFD36CE00E6E088 /* SwitchCellContentView.swift in Sources */,
|
5271 | 5293 | F07BF2622A26279100042943 /* RedeemVoucherOperation.swift in Sources */,
|
5272 | 5294 | 585E820327F3285E00939F0E /* SendStoreReceiptOperation.swift in Sources */,
|
|
5300 | 5322 | 5878A26F2907E7E00096FC88 /* ProblemReportInteractor.swift in Sources */,
|
5301 | 5323 | 7AB4CCBB2B691BBB006037F5 /* IPOverrideInteractor.swift in Sources */,
|
5302 | 5324 | 7A3353912AAA014400F0A71C /* SimulatorVPNConnection.swift in Sources */,
|
| 5325 | + F02F41A22B9723AF00625A4F /* AddLocationsCoordinator.swift in Sources */, |
5303 | 5326 | F028A56A2A34D4E700C0CAA3 /* RedeemVoucherViewController.swift in Sources */,
|
5304 | 5327 | 7A5869C52B5A899C00640D27 /* MethodSettingsCellConfiguration.swift in Sources */,
|
5305 | 5328 | 58E11188292FA11F009FCA84 /* SettingsMigrationUIHandler.swift in Sources */,
|
|
5329 | 5352 | 58607A4D2947287800BC467D /* AccountExpiryInAppNotificationProvider.swift in Sources */,
|
5330 | 5353 | 58C8191829FAA2C400DEB1B4 /* NotificationConfiguration.swift in Sources */,
|
5331 | 5354 | 58FF9FE82B07650A00E4C97D /* ButtonCellContentConfiguration.swift in Sources */,
|
| 5355 | + 7A6652B82BB44C3E0042D848 /* LocationDiffableDataSourceProtocol.swift in Sources */, |
5332 | 5356 | 5827B0A82B0F49EF00CCBBA1 /* ProxyConfigurationInteractorProtocol.swift in Sources */,
|
5333 | 5357 | 7A5869B92B56E7F000640D27 /* IPOverrideViewControllerDelegate.swift in Sources */,
|
5334 | 5358 | 586C0D7A2B039CE300E7CDD7 /* ShadowsocksCipherPicker.swift in Sources */,
|
|
5433 | 5457 | 5827B0C52B14D3E800CCBBA1 /* NSDiffableDataSourceSnapshot+Reconfigure.swift in Sources */,
|
5434 | 5458 | 58A8EE5E2976DB00009C0F8D /* StorePaymentManagerError+Display.swift in Sources */,
|
5435 | 5459 | 58A8EE5A2976BFBB009C0F8D /* SKError+Localized.swift in Sources */,
|
| 5460 | + F02F41A12B9723AF00625A4F /* AddLocationsDataSource.swift in Sources */, |
5436 | 5461 | 58EFC76E2AFB3BDA00E9F4CB /* ListAccessMethodCoordinator.swift in Sources */,
|
5437 | 5462 | 5827B0B92B14A1C700CCBBA1 /* MethodTestingStatusCellContentConfiguration.swift in Sources */,
|
5438 | 5463 | 7A42DEC92A05164100B209BE /* SettingsInputCell.swift in Sources */,
|
5439 | 5464 | 5803B4B22940A48700C23744 /* TunnelStore.swift in Sources */,
|
5440 | 5465 | 586A950F29012BEE007BAF2B /* AddressCacheTracker.swift in Sources */,
|
| 5466 | + F02F41A02B9723AF00625A4F /* AddLocationsViewController.swift in Sources */, |
5441 | 5467 | 587B753D2666468F00DEF7E9 /* NotificationController.swift in Sources */,
|
5442 | 5468 | );
|
5443 | 5469 | runOnlyForDeploymentPostprocessing = 0;
|
|
0 commit comments